From e488e947cddfe583009596d5f817df5d65a5fc54 Mon Sep 17 00:00:00 2001 From: echarp Date: Sun, 5 Apr 2020 17:14:27 +0200 Subject: [PATCH] Precompiled assets --- ...fest-1ecf1692b9cfa13c0271559a479b9688.json | 2 +- ...ed554d54349f5965b16351e8e2579e92d56c92.css | 4 + ...54d54349f5965b16351e8e2579e92d56c92.css.gz | Bin 0 -> 20847 bytes ...fdac0eaf627316c141c14e3c3f7822ff0d29384.js | 53877 ++++++++++++++++ ...c0eaf627316c141c14e3c3f7822ff0d29384.js.gz | Bin 0 -> 464862 bytes ...1d14b67001af54312558105f4ae25b683f967f6.js | 28718 ++++++++ ...4b67001af54312558105f4ae25b683f967f6.js.gz | Bin 0 -> 218281 bytes ...f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js | 9 + ...eba2dfd712642b6d238077b6ec45e6eb6f0b.js.gz | Bin 0 -> 1622 bytes .../assets/tinymce/plugins/advlist/plugin.js | 2 +- .../tinymce/plugins/advlist/plugin.js.gz | 2 +- ...f211b74900d1773d16a75e189a16bebd34bdf67.js | 9 + ...1b74900d1773d16a75e189a16bebd34bdf67.js.gz | Bin 0 -> 1083 bytes .../assets/tinymce/plugins/anchor/plugin.js | 2 +- .../tinymce/plugins/anchor/plugin.js.gz | 2 +- ...18bc77785d6e348ab85c722e3be4c0492a4584b.js | 9 + ...c77785d6e348ab85c722e3be4c0492a4584b.js.gz | Bin 0 -> 1238 bytes .../assets/tinymce/plugins/autolink/plugin.js | 2 +- .../tinymce/plugins/autolink/plugin.js.gz | 2 +- ...2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js | 9 + ...7e5929ed4eb7e111a233084f3f6c90e9ace6.js.gz | Bin 0 -> 1159 bytes .../tinymce/plugins/autoresize/plugin.js | 2 +- .../tinymce/plugins/autoresize/plugin.js.gz | 2 +- ...ada63b769a06c2f4acf926db87f66ff359c57e1.js | 9 + ...63b769a06c2f4acf926db87f66ff359c57e1.js.gz | Bin 0 -> 1493 bytes .../assets/tinymce/plugins/autosave/plugin.js | 2 +- .../tinymce/plugins/autosave/plugin.js.gz | 2 +- ...21e05262c69310dac0cd2ffe46ffc03f0203bd9.js | 9 + ...05262c69310dac0cd2ffe46ffc03f0203bd9.js.gz | Bin 0 -> 996 bytes .../assets/tinymce/plugins/bbcode/plugin.js | 2 +- .../tinymce/plugins/bbcode/plugin.js.gz | 2 +- ...38479e9943f1182617bfefa6e36e3d99d81dbfa.js | 9 + ...79e9943f1182617bfefa6e36e3d99d81dbfa.js.gz | Bin 0 -> 4573 bytes .../assets/tinymce/plugins/charmap/plugin.js | 2 +- .../tinymce/plugins/charmap/plugin.js.gz | 2 +- ...de0c9d15fd538ecf4d1352e1576e7803f28402f.js | 9 + ...c9d15fd538ecf4d1352e1576e7803f28402f.js.gz | Bin 0 -> 647 bytes public/assets/tinymce/plugins/code/plugin.js | 2 +- .../assets/tinymce/plugins/code/plugin.js.gz | 2 +- ...2cd18cae203ad95200edafe5d7f1aede3881a07.js | 9 + ...18cae203ad95200edafe5d7f1aede3881a07.js.gz | Bin 0 -> 11891 bytes .../tinymce/plugins/codesample/plugin.js | 2 +- .../tinymce/plugins/codesample/plugin.js.gz | 2 +- ...55fa040317fc836b731b2983957cf70fa20e2d9.js | 9 + ...a040317fc836b731b2983957cf70fa20e2d9.js.gz | Bin 0 -> 370 bytes .../tinymce/plugins/colorpicker/plugin.js | 2 +- .../tinymce/plugins/colorpicker/plugin.js.gz | 2 +- ...1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js | 9 + ...eef2cbd6456d85e1deac7b66b9d44e7b0440.js.gz | Bin 0 -> 370 bytes .../tinymce/plugins/contextmenu/plugin.js | 2 +- .../tinymce/plugins/contextmenu/plugin.js.gz | 2 +- ...cbab03a7150327ec44c006262948a2c07ebce08.js | 9 + ...b03a7150327ec44c006262948a2c07ebce08.js.gz | Bin 0 -> 1760 bytes .../tinymce/plugins/directionality/plugin.js | 2 +- .../plugins/directionality/plugin.js.gz | 2 +- ...23ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js | 9 + ...ce87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js.gz | Bin 0 -> 2869 bytes .../tinymce/plugins/emoticons/plugin.js | 2 +- .../tinymce/plugins/emoticons/plugin.js.gz | 2 +- ...e29a330cc77fbd7b12eb18b2cd94240da12550d.js | 9 + ...a330cc77fbd7b12eb18b2cd94240da12550d.js.gz | Bin 0 -> 3049 bytes .../assets/tinymce/plugins/fullpage/plugin.js | 2 +- .../tinymce/plugins/fullpage/plugin.js.gz | 2 +- ...b2b37f88db29d9e2ad4f15d93449a47353dcd74.js | 9 + ...37f88db29d9e2ad4f15d93449a47353dcd74.js.gz | Bin 0 -> 5389 bytes .../tinymce/plugins/fullscreen/plugin.js | 2 +- .../tinymce/plugins/fullscreen/plugin.js.gz | 2 +- ...44c3a69f6b928602d702539510f5d5bd34937e3.js | 9 + ...3a69f6b928602d702539510f5d5bd34937e3.js.gz | Bin 0 -> 5126 bytes public/assets/tinymce/plugins/help/plugin.js | 2 +- .../assets/tinymce/plugins/help/plugin.js.gz | 2 +- ...64ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js | 9 + ...b8bb2f2dfe3c14be7d0c67aecf98758b57ab.js.gz | Bin 0 -> 435 bytes public/assets/tinymce/plugins/hr/plugin.js | 2 +- public/assets/tinymce/plugins/hr/plugin.js.gz | 2 +- ...555af1203fd5640e710901107b16396df7c042c.js | 9 + ...af1203fd5640e710901107b16396df7c042c.js.gz | Bin 0 -> 10426 bytes public/assets/tinymce/plugins/image/plugin.js | 2 +- .../assets/tinymce/plugins/image/plugin.js.gz | 2 +- ...a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2.js | 9 + ...5dfe3e3d0bd51c7288ff539dbcb4761995c2.js.gz | Bin 0 -> 7740 bytes .../tinymce/plugins/imagetools/plugin.js | 2 +- .../tinymce/plugins/imagetools/plugin.js.gz | 2 +- ...c6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js | 9 + ...11c7b7d2e8e9aaddcf873b3bd735d9412fb8.js.gz | Bin 0 -> 2146 bytes .../tinymce/plugins/importcss/plugin.js | 2 +- .../tinymce/plugins/importcss/plugin.js.gz | 2 +- ...94b2ab5b3e2ee12c429c50377c305e532eaef71.js | 9 + ...2ab5b3e2ee12c429c50377c305e532eaef71.js.gz | Bin 0 -> 1360 bytes .../tinymce/plugins/insertdatetime/plugin.js | 2 +- .../plugins/insertdatetime/plugin.js.gz | 2 +- ...5332b8e3afa988533121e2b9345697db81d7942.js | 9 + ...2b8e3afa988533121e2b9345697db81d7942.js.gz | Bin 0 -> 1263 bytes .../tinymce/plugins/legacyoutput/plugin.js | 2 +- .../tinymce/plugins/legacyoutput/plugin.js.gz | 2 +- ...b1c6558f1c743b6dc964de404a1f83b147f02f0.js | 9 + ...6558f1c743b6dc964de404a1f83b147f02f0.js.gz | Bin 0 -> 7758 bytes public/assets/tinymce/plugins/link/plugin.js | 2 +- .../assets/tinymce/plugins/link/plugin.js.gz | 2 +- ...d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js | 9 + ...8e8cacddb6fad2453c337ebabdb7bfe6d019.js.gz | Bin 0 -> 9388 bytes public/assets/tinymce/plugins/lists/plugin.js | 2 +- .../assets/tinymce/plugins/lists/plugin.js.gz | 2 +- ...d5fb436594d2b82ad4dd66226011254840152b5.js | 9 + ...b436594d2b82ad4dd66226011254840152b5.js.gz | Bin 0 -> 6458 bytes public/assets/tinymce/plugins/media/plugin.js | 2 +- .../assets/tinymce/plugins/media/plugin.js.gz | 2 +- ...3ed632d4b2c9efa59147a8a18816f7b5953bc2b.js | 9 + ...632d4b2c9efa59147a8a18816f7b5953bc2b.js.gz | Bin 0 -> 778 bytes .../tinymce/plugins/nonbreaking/plugin.js | 2 +- .../tinymce/plugins/nonbreaking/plugin.js.gz | 2 +- ...0dd3065b455a12e702f0b7bae2ec1cf686c4164.js | 9 + ...3065b455a12e702f0b7bae2ec1cf686c4164.js.gz | Bin 0 -> 912 bytes .../tinymce/plugins/noneditable/plugin.js | 2 +- .../tinymce/plugins/noneditable/plugin.js.gz | 2 +- ...a06a006d665a19397715f9c0473cd598300481a.js | 9 + ...a006d665a19397715f9c0473cd598300481a.js.gz | Bin 0 -> 931 bytes .../tinymce/plugins/pagebreak/plugin.js | 2 +- .../tinymce/plugins/pagebreak/plugin.js.gz | 2 +- ...b07bc6701f2a5a8a6f0fabf9bf6d899c50added.js | 9 + ...bc6701f2a5a8a6f0fabf9bf6d899c50added.js.gz | Bin 0 -> 11503 bytes public/assets/tinymce/plugins/paste/plugin.js | 2 +- .../assets/tinymce/plugins/paste/plugin.js.gz | 2 +- ...b7af941bec58fce14267d33847c0327f166b0d0.js | 9 + ...f941bec58fce14267d33847c0327f166b0d0.js.gz | Bin 0 -> 1102 bytes .../assets/tinymce/plugins/preview/plugin.js | 2 +- .../tinymce/plugins/preview/plugin.js.gz | 2 +- ...ca59854e0b2d1c1a92fcc128c5efe855473aaeb.js | 9 + ...9854e0b2d1c1a92fcc128c5efe855473aaeb.js.gz | Bin 0 -> 467 bytes public/assets/tinymce/plugins/print/plugin.js | 2 +- .../assets/tinymce/plugins/print/plugin.js.gz | 2 +- ...3db40e107c0c1f7909f00d2a1e4f73335e69870.js | 9 + ...40e107c0c1f7909f00d2a1e4f73335e69870.js.gz | Bin 0 -> 4265 bytes .../tinymce/plugins/quickbars/plugin.js | 2 +- .../tinymce/plugins/quickbars/plugin.js.gz | 2 +- ...a317674bcd2e1087687e5e576b21ffe577f6165.js | 9 + ...7674bcd2e1087687e5e576b21ffe577f6165.js.gz | Bin 0 -> 819 bytes public/assets/tinymce/plugins/save/plugin.js | 2 +- .../assets/tinymce/plugins/save/plugin.js.gz | 2 +- ...e7a348dd46ce1987fddcd05ce66445175467ee1.js | 9 + ...348dd46ce1987fddcd05ce66445175467ee1.js.gz | Bin 0 -> 4668 bytes .../tinymce/plugins/searchreplace/plugin.js | 2 +- .../plugins/searchreplace/plugin.js.gz | 2 +- ...ec9e4ac88ff659fa0eebdb53710367338552859.js | 9 + ...e4ac88ff659fa0eebdb53710367338552859.js.gz | Bin 0 -> 4335 bytes .../tinymce/plugins/spellchecker/plugin.js | 2 +- .../tinymce/plugins/spellchecker/plugin.js.gz | 2 +- ...489805237c23051b2872c600655a97aac33997e.js | 9 + ...805237c23051b2872c600655a97aac33997e.js.gz | Bin 0 -> 976 bytes .../assets/tinymce/plugins/tabfocus/plugin.js | 2 +- .../tinymce/plugins/tabfocus/plugin.js.gz | 2 +- ...f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js | 9 + ...d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js.gz | Bin 0 -> 35177 bytes public/assets/tinymce/plugins/table/plugin.js | 2 +- .../assets/tinymce/plugins/table/plugin.js.gz | 2 +- ...2f65cf6c2c542bcadd4d80253e68600c4245029.js | 9 + ...5cf6c2c542bcadd4d80253e68600c4245029.js.gz | Bin 0 -> 3299 bytes .../assets/tinymce/plugins/template/plugin.js | 2 +- .../tinymce/plugins/template/plugin.js.gz | 2 +- ...e5d83446182a135b00cfe8db60ab61f8b67265c.js | 9 + ...83446182a135b00cfe8db60ab61f8b67265c.js.gz | Bin 0 -> 367 bytes .../tinymce/plugins/textcolor/plugin.js | 2 +- .../tinymce/plugins/textcolor/plugin.js.gz | 2 +- ...fca4609aa929f8627b91c4aba60191c334cc098.js | 9 + ...4609aa929f8627b91c4aba60191c334cc098.js.gz | Bin 0 -> 6154 bytes .../tinymce/plugins/textpattern/plugin.js | 2 +- .../tinymce/plugins/textpattern/plugin.js.gz | 2 +- ...b61e15c8b4b8479f4f112d65771def0f8a16aa7.js | 9 + ...e15c8b4b8479f4f112d65771def0f8a16aa7.js.gz | Bin 0 -> 1568 bytes public/assets/tinymce/plugins/toc/plugin.js | 2 +- .../assets/tinymce/plugins/toc/plugin.js.gz | 2 +- ...08cdcd147eae96f9786e54b73a9544e53117119.js | 9 + ...dcd147eae96f9786e54b73a9544e53117119.js.gz | Bin 0 -> 714 bytes .../tinymce/plugins/visualblocks/plugin.js | 2 +- .../tinymce/plugins/visualblocks/plugin.js.gz | 2 +- ...923ec77e688efa481c63b6810520cdffce98fac.js | 9 + ...ec77e688efa481c63b6810520cdffce98fac.js.gz | Bin 0 -> 2841 bytes .../tinymce/plugins/visualchars/plugin.js | 2 +- .../tinymce/plugins/visualchars/plugin.js.gz | 2 +- ...d204a80b62c31493731619033b0c54bd958d485.js | 9 + ...4a80b62c31493731619033b0c54bd958d485.js.gz | Bin 0 -> 5696 bytes .../tinymce/plugins/wordcount/plugin.js | 2 +- .../tinymce/plugins/wordcount/plugin.js.gz | 2 +- ...99b5276cd5056dca3d88f662c437aff3247983.css | 1 + ...5276cd5056dca3d88f662c437aff3247983.css.gz | Bin 0 -> 4684 bytes .../tinymce/skins/ui/oxide-dark/content.css | 2 +- .../skins/ui/oxide-dark/content.css.gz | 2 +- ...cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css | 1 + ...34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz | Bin 0 -> 4710 bytes .../skins/ui/oxide-dark/content.inline.css | 2 +- .../skins/ui/oxide-dark/content.inline.css.gz | 2 +- ...cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css | 1 + ...34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz | Bin 0 -> 4710 bytes .../ui/oxide-dark/content.inline.min.css | 2 +- .../ui/oxide-dark/content.inline.min.css.gz | 2 +- ...99b5276cd5056dca3d88f662c437aff3247983.css | 1 + ...5276cd5056dca3d88f662c437aff3247983.css.gz | Bin 0 -> 4684 bytes .../skins/ui/oxide-dark/content.min.css | 2 +- .../skins/ui/oxide-dark/content.min.css.gz | 2 +- ...46cab9bc1298d514c7ee97fe5a89cf314446a2.css | 1 + ...ab9bc1298d514c7ee97fe5a89cf314446a2.css.gz | Bin 0 -> 4731 bytes .../assets/tinymce/skins/ui/oxide/content.css | 2 +- .../tinymce/skins/ui/oxide/content.css.gz | 2 +- ...cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css | 1 + ...34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz | Bin 0 -> 4710 bytes .../tinymce/skins/ui/oxide/content.inline.css | 2 +- .../skins/ui/oxide/content.inline.css.gz | 2 +- ...cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css | 1 + ...34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz | Bin 0 -> 4710 bytes .../skins/ui/oxide/content.inline.min.css | 2 +- .../skins/ui/oxide/content.inline.min.css.gz | 2 +- ...46cab9bc1298d514c7ee97fe5a89cf314446a2.css | 1 + ...ab9bc1298d514c7ee97fe5a89cf314446a2.css.gz | Bin 0 -> 4731 bytes .../tinymce/skins/ui/oxide/content.min.css | 2 +- .../tinymce/skins/ui/oxide/content.min.css.gz | 2 +- ...854e40f7f2019d926f6ccae83f0fbf8239e92e3.js | 9 + ...e40f7f2019d926f6ccae83f0fbf8239e92e3.js.gz | Bin 0 -> 52945 bytes public/assets/tinymce/themes/mobile/theme.js | 2 +- .../assets/tinymce/themes/mobile/theme.js.gz | 2 +- ...16cc68522d978009119df89d9293018f9df6418.js | 9 + ...c68522d978009119df89d9293018f9df6418.js.gz | Bin 0 -> 120872 bytes public/assets/tinymce/themes/silver/theme.js | 2 +- .../assets/tinymce/themes/silver/theme.js.gz | 2 +- ...b7e9ee4a110acd66fbe79ae4a12806131333b3a.js | 9 + ...9ee4a110acd66fbe79ae4a12806131333b3a.js.gz | Bin 0 -> 142999 bytes public/assets/tinymce/tinymce.js | 2 +- public/assets/tinymce/tinymce.js.gz | 2 +- 227 files changed, 83141 insertions(+), 111 deletions(-) create mode 100644 public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css create mode 100644 public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css.gz create mode 100644 public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js create mode 100644 public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js.gz create mode 100644 public/assets/tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js create mode 100644 public/assets/tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js.gz create mode 100644 public/assets/tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js create mode 100644 public/assets/tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js.gz create mode 100644 public/assets/tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js create mode 100644 public/assets/tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js.gz create mode 100644 public/assets/tinymce/plugins/autolink/plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js create mode 100644 public/assets/tinymce/plugins/autolink/plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js.gz create mode 100644 public/assets/tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js create mode 100644 public/assets/tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js.gz create mode 100644 public/assets/tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js create mode 100644 public/assets/tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js.gz create mode 100644 public/assets/tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js create mode 100644 public/assets/tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js.gz create mode 100644 public/assets/tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js create mode 100644 public/assets/tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js.gz create mode 100644 public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js create mode 100644 public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js.gz create mode 100644 public/assets/tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js create mode 100644 public/assets/tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js.gz create mode 100644 public/assets/tinymce/plugins/colorpicker/plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js create mode 100644 public/assets/tinymce/plugins/colorpicker/plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js.gz create mode 100644 public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js create mode 100644 public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js.gz create mode 100644 public/assets/tinymce/plugins/directionality/plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js create mode 100644 public/assets/tinymce/plugins/directionality/plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js.gz create mode 100644 public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js create mode 100644 public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js.gz create mode 100644 public/assets/tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js create mode 100644 public/assets/tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js.gz create mode 100644 public/assets/tinymce/plugins/fullscreen/plugin-8d3a02b255cfee8716c47bd3db2b37f88db29d9e2ad4f15d93449a47353dcd74.js create mode 100644 public/assets/tinymce/plugins/fullscreen/plugin-8d3a02b255cfee8716c47bd3db2b37f88db29d9e2ad4f15d93449a47353dcd74.js.gz create mode 100644 public/assets/tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js create mode 100644 public/assets/tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js.gz create mode 100644 public/assets/tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js create mode 100644 public/assets/tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js.gz create mode 100644 public/assets/tinymce/plugins/image/plugin-30270ca828ff68dc5d2ecd275555af1203fd5640e710901107b16396df7c042c.js create mode 100644 public/assets/tinymce/plugins/image/plugin-30270ca828ff68dc5d2ecd275555af1203fd5640e710901107b16396df7c042c.js.gz create mode 100644 public/assets/tinymce/plugins/imagetools/plugin-fd5441053ef233cec7c8afc19a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2.js create mode 100644 public/assets/tinymce/plugins/imagetools/plugin-fd5441053ef233cec7c8afc19a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2.js.gz create mode 100644 public/assets/tinymce/plugins/importcss/plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js create mode 100644 public/assets/tinymce/plugins/importcss/plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js.gz create mode 100644 public/assets/tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js create mode 100644 public/assets/tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js.gz create mode 100644 public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js create mode 100644 public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js.gz create mode 100644 public/assets/tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js create mode 100644 public/assets/tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js.gz create mode 100644 public/assets/tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js create mode 100644 public/assets/tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js.gz create mode 100644 public/assets/tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js create mode 100644 public/assets/tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js.gz create mode 100644 public/assets/tinymce/plugins/nonbreaking/plugin-5310b607e28f57641e5f898203ed632d4b2c9efa59147a8a18816f7b5953bc2b.js create mode 100644 public/assets/tinymce/plugins/nonbreaking/plugin-5310b607e28f57641e5f898203ed632d4b2c9efa59147a8a18816f7b5953bc2b.js.gz create mode 100644 public/assets/tinymce/plugins/noneditable/plugin-e919091f40c8723a221721a200dd3065b455a12e702f0b7bae2ec1cf686c4164.js create mode 100644 public/assets/tinymce/plugins/noneditable/plugin-e919091f40c8723a221721a200dd3065b455a12e702f0b7bae2ec1cf686c4164.js.gz create mode 100644 public/assets/tinymce/plugins/pagebreak/plugin-425e13892a911bd92b168ae0aa06a006d665a19397715f9c0473cd598300481a.js create mode 100644 public/assets/tinymce/plugins/pagebreak/plugin-425e13892a911bd92b168ae0aa06a006d665a19397715f9c0473cd598300481a.js.gz create mode 100644 public/assets/tinymce/plugins/paste/plugin-90aee93f512530f8797f73814b07bc6701f2a5a8a6f0fabf9bf6d899c50added.js create mode 100644 public/assets/tinymce/plugins/paste/plugin-90aee93f512530f8797f73814b07bc6701f2a5a8a6f0fabf9bf6d899c50added.js.gz create mode 100644 public/assets/tinymce/plugins/preview/plugin-9dc8211e60b8b5f363d7600fab7af941bec58fce14267d33847c0327f166b0d0.js create mode 100644 public/assets/tinymce/plugins/preview/plugin-9dc8211e60b8b5f363d7600fab7af941bec58fce14267d33847c0327f166b0d0.js.gz create mode 100644 public/assets/tinymce/plugins/print/plugin-49de95ca9204468faec6e2558ca59854e0b2d1c1a92fcc128c5efe855473aaeb.js create mode 100644 public/assets/tinymce/plugins/print/plugin-49de95ca9204468faec6e2558ca59854e0b2d1c1a92fcc128c5efe855473aaeb.js.gz create mode 100644 public/assets/tinymce/plugins/quickbars/plugin-11325910d8049a6a06e4de6f63db40e107c0c1f7909f00d2a1e4f73335e69870.js create mode 100644 public/assets/tinymce/plugins/quickbars/plugin-11325910d8049a6a06e4de6f63db40e107c0c1f7909f00d2a1e4f73335e69870.js.gz create mode 100644 public/assets/tinymce/plugins/save/plugin-009ba0dd48a2b64da2a5cef25a317674bcd2e1087687e5e576b21ffe577f6165.js create mode 100644 public/assets/tinymce/plugins/save/plugin-009ba0dd48a2b64da2a5cef25a317674bcd2e1087687e5e576b21ffe577f6165.js.gz create mode 100644 public/assets/tinymce/plugins/searchreplace/plugin-4f6fffa4a5b4678dcd31d98b0e7a348dd46ce1987fddcd05ce66445175467ee1.js create mode 100644 public/assets/tinymce/plugins/searchreplace/plugin-4f6fffa4a5b4678dcd31d98b0e7a348dd46ce1987fddcd05ce66445175467ee1.js.gz create mode 100644 public/assets/tinymce/plugins/spellchecker/plugin-4b12f52ad986fb417c353268aec9e4ac88ff659fa0eebdb53710367338552859.js create mode 100644 public/assets/tinymce/plugins/spellchecker/plugin-4b12f52ad986fb417c353268aec9e4ac88ff659fa0eebdb53710367338552859.js.gz create mode 100644 public/assets/tinymce/plugins/tabfocus/plugin-33e37cc03477e58db19dee8fc489805237c23051b2872c600655a97aac33997e.js create mode 100644 public/assets/tinymce/plugins/tabfocus/plugin-33e37cc03477e58db19dee8fc489805237c23051b2872c600655a97aac33997e.js.gz create mode 100644 public/assets/tinymce/plugins/table/plugin-5751db5cfbd47e116bfcd5884f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js create mode 100644 public/assets/tinymce/plugins/table/plugin-5751db5cfbd47e116bfcd5884f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js.gz create mode 100644 public/assets/tinymce/plugins/template/plugin-2e39a3920418a7096b790f1452f65cf6c2c542bcadd4d80253e68600c4245029.js create mode 100644 public/assets/tinymce/plugins/template/plugin-2e39a3920418a7096b790f1452f65cf6c2c542bcadd4d80253e68600c4245029.js.gz create mode 100644 public/assets/tinymce/plugins/textcolor/plugin-e40462b7c4f244c7778fdf095e5d83446182a135b00cfe8db60ab61f8b67265c.js create mode 100644 public/assets/tinymce/plugins/textcolor/plugin-e40462b7c4f244c7778fdf095e5d83446182a135b00cfe8db60ab61f8b67265c.js.gz create mode 100644 public/assets/tinymce/plugins/textpattern/plugin-2bdf69fce6e568fa0326515edfca4609aa929f8627b91c4aba60191c334cc098.js create mode 100644 public/assets/tinymce/plugins/textpattern/plugin-2bdf69fce6e568fa0326515edfca4609aa929f8627b91c4aba60191c334cc098.js.gz create mode 100644 public/assets/tinymce/plugins/toc/plugin-2ca0272217e118278086c99e0b61e15c8b4b8479f4f112d65771def0f8a16aa7.js create mode 100644 public/assets/tinymce/plugins/toc/plugin-2ca0272217e118278086c99e0b61e15c8b4b8479f4f112d65771def0f8a16aa7.js.gz create mode 100644 public/assets/tinymce/plugins/visualblocks/plugin-8689e379488f2654703aca3c608cdcd147eae96f9786e54b73a9544e53117119.js create mode 100644 public/assets/tinymce/plugins/visualblocks/plugin-8689e379488f2654703aca3c608cdcd147eae96f9786e54b73a9544e53117119.js.gz create mode 100644 public/assets/tinymce/plugins/visualchars/plugin-8776757ac7546d487273dfb5e923ec77e688efa481c63b6810520cdffce98fac.js create mode 100644 public/assets/tinymce/plugins/visualchars/plugin-8776757ac7546d487273dfb5e923ec77e688efa481c63b6810520cdffce98fac.js.gz create mode 100644 public/assets/tinymce/plugins/wordcount/plugin-5b232a4307580068da1772d65d204a80b62c31493731619033b0c54bd958d485.js create mode 100644 public/assets/tinymce/plugins/wordcount/plugin-5b232a4307580068da1772d65d204a80b62c31493731619033b0c54bd958d485.js.gz create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.min-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css create mode 100644 public/assets/tinymce/skins/ui/oxide-dark/content.min-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide/content-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css create mode 100644 public/assets/tinymce/skins/ui/oxide/content-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css create mode 100644 public/assets/tinymce/skins/ui/oxide/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css create mode 100644 public/assets/tinymce/skins/ui/oxide/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css.gz create mode 100644 public/assets/tinymce/skins/ui/oxide/content.min-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css create mode 100644 public/assets/tinymce/skins/ui/oxide/content.min-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css.gz create mode 100644 public/assets/tinymce/themes/mobile/theme-62854f6e251123c4d8d2df90e854e40f7f2019d926f6ccae83f0fbf8239e92e3.js create mode 100644 public/assets/tinymce/themes/mobile/theme-62854f6e251123c4d8d2df90e854e40f7f2019d926f6ccae83f0fbf8239e92e3.js.gz create mode 100644 public/assets/tinymce/themes/silver/theme-1a82a451ff32104162e1b5f3f16cc68522d978009119df89d9293018f9df6418.js create mode 100644 public/assets/tinymce/themes/silver/theme-1a82a451ff32104162e1b5f3f16cc68522d978009119df89d9293018f9df6418.js.gz create mode 100644 public/assets/tinymce/tinymce-bf08240159b9833237a511082b7e9ee4a110acd66fbe79ae4a12806131333b3a.js create mode 100644 public/assets/tinymce/tinymce-bf08240159b9833237a511082b7e9ee4a110acd66fbe79ae4a12806131333b3a.js.gz diff --git a/public/assets/.sprockets-manifest-1ecf1692b9cfa13c0271559a479b9688.json b/public/assets/.sprockets-manifest-1ecf1692b9cfa13c0271559a479b9688.json index 612a8306..d81273fa 100644 --- a/public/assets/.sprockets-manifest-1ecf1692b9cfa13c0271559a479b9688.json +++ b/public/assets/.sprockets-manifest-1ecf1692b9cfa13c0271559a479b9688.json @@ -1 +1 @@ -{"files":{"active_admin-436f1e127c3c5bfcfd081ea8dc17dc0f907b763b9d8967182739d9b3257848e9.js":{"logical_path":"active_admin.js","mtime":"2020-01-16T20:20:11+01:00","size":961932,"digest":"436f1e127c3c5bfcfd081ea8dc17dc0f907b763b9d8967182739d9b3257848e9","integrity":"sha256-Q28eEnw8W/z9CB6o3BfcD5B7djudiWcYJznZsyV4SOk="},"tinymce-e887823f61aacbb4b0879737509c9fc001e27976aed4315081c6bdcfed3ea84f.js":{"logical_path":"tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":1071380,"digest":"e887823f61aacbb4b0879737509c9fc001e27976aed4315081c6bdcfed3ea84f","integrity":"sha256-6IeCP2Gqy7Swh5c3UJyfwAHieXau1DFQgca9z+0+qE8="},"modernizr-34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0.js":{"logical_path":"modernizr.js","mtime":"2020-02-25T22:08:25+01:00","size":51364,"digest":"34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0","integrity":"sha256-NPlYtWX4tiXQOpIWr+aeaBnU0LtetCPkjFMqqyfVM7A="},"font-awesome/fa-brands-400-e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16.eot":{"logical_path":"font-awesome/fa-brands-400.eot","mtime":"2020-02-25T22:08:25+01:00","size":131930,"digest":"e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16","integrity":"sha256-6f35R8OfBvG15jxY7qLy90hQQhtOMgR9rLnHt13UKhY="},"font-awesome/fa-regular-400-c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2.eot":{"logical_path":"font-awesome/fa-regular-400.eot","mtime":"2020-02-25T22:08:25+01:00","size":34390,"digest":"c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2","integrity":"sha256-wUZaa4dDYi91mwim1TNuV+tuq9uhtjk/um0w1FOC89I="},"font-awesome/fa-solid-900-f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe.eot":{"logical_path":"font-awesome/fa-solid-900.eot","mtime":"2020-02-25T22:08:25+01:00","size":194066,"digest":"f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe","integrity":"sha256-8p7vZus60ONXTY7bS55yoEaSoLK5LZnrfEuXdhHd1P4="},"font-awesome/fa-brands-400-36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9.svg":{"logical_path":"font-awesome/fa-brands-400.svg","mtime":"2020-02-25T22:08:25+01:00","size":708706,"digest":"36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9","integrity":"sha256-NrUfvmuHWHVBuRc815wWxrNZrSKhcrkiIE+aqHQRrNk="},"font-awesome/fa-regular-400-7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4.svg":{"logical_path":"font-awesome/fa-regular-400.svg","mtime":"2020-02-25T22:08:25+01:00","size":144322,"digest":"7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4","integrity":"sha256-erijn0xIt0O9asu/XqTHVH78tirZZum+8+QZlq/ET9Q="},"font-awesome/fa-solid-900-eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59.svg":{"logical_path":"font-awesome/fa-solid-900.svg","mtime":"2020-02-25T22:08:25+01:00","size":849145,"digest":"eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59","integrity":"sha256-6vDz0Mra0X7tEEXPaMMNt6v/tMjvTunLX0Am/e/Jmlk="},"font-awesome/fa-brands-400-6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71.ttf":{"logical_path":"font-awesome/fa-brands-400.ttf","mtime":"2020-02-25T22:08:25+01:00","size":131624,"digest":"6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71","integrity":"sha256-azR/8B5YiippCczX9/WGaydIQ5FUfp30UaubTCeSDHE="},"font-awesome/fa-regular-400-6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade.ttf":{"logical_path":"font-awesome/fa-regular-400.ttf","mtime":"2020-02-25T22:08:25+01:00","size":34092,"digest":"6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade","integrity":"sha256-ajNdHOFS8rWwK/gsxEWwLRq8zX9AiocRNCS1+Py7+t4="},"font-awesome/fa-solid-900-0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea.ttf":{"logical_path":"font-awesome/fa-solid-900.ttf","mtime":"2020-02-25T22:08:25+01:00","size":193780,"digest":"0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea","integrity":"sha256-A4mwYdsI1AZwTJu4gZ4Jw1WKyVYoez6dqOZkWnnVKOo="},"font-awesome/fa-brands-400-1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900.woff":{"logical_path":"font-awesome/fa-brands-400.woff","mtime":"2020-02-25T22:08:25+01:00","size":89100,"digest":"1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900","integrity":"sha256-GvgW25pob6p2v72ned+VnmIT3nFKlLh6pzdKFR9vSQA="},"font-awesome/fa-regular-400-864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64.woff":{"logical_path":"font-awesome/fa-regular-400.woff","mtime":"2020-02-25T22:08:25+01:00","size":16800,"digest":"864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64","integrity":"sha256-hkyPcCpeYxmLt27wJAtZnMBl1JBMKvxdpsiim78NbGQ="},"font-awesome/fa-solid-900-3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db.woff":{"logical_path":"font-awesome/fa-solid-900.woff","mtime":"2020-02-25T22:08:25+01:00","size":98996,"digest":"3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db","integrity":"sha256-O2DHfgyBwcnNya25at5tusfvK5QCoxYYWFXecSLlF9s="},"font-awesome/fa-brands-400-8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b.woff2":{"logical_path":"font-awesome/fa-brands-400.woff2","mtime":"2020-02-25T22:08:25+01:00","size":75936,"digest":"8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b","integrity":"sha256-jkVgwWx5cO+kdoBFCyzyOdSkgsBW0wis6hK7kCKQbIs="},"font-awesome/fa-regular-400-86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6.woff2":{"logical_path":"font-awesome/fa-regular-400.woff2","mtime":"2020-02-25T22:08:25+01:00","size":13576,"digest":"86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6","integrity":"sha256-huSWtTaya6YM22jfndkUOxmmO2XjDjc7AyGDOqsSldY="},"font-awesome/fa-solid-900-787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4.woff2":{"logical_path":"font-awesome/fa-solid-900.woff2","mtime":"2020-02-25T22:08:25+01:00","size":76084,"digest":"787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4","integrity":"sha256-eH12rW3qtnzPi6wbWEJgIF4RT1CPxVQrYS4/ddSaNOQ="},"active_admin/print-9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b.css":{"logical_path":"active_admin/print.css","mtime":"2020-02-25T22:08:25+01:00","size":7086,"digest":"9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b","integrity":"sha256-nKQQjmKLz8bkTEeYV8odt0h1/MnHlm0HD+gL57tQyYs="},"active_admin-a66a98d30794a1e442949420b34b0ad3e6806a3a365d75e5c729b21980a37fb7.css":{"logical_path":"active_admin.css","mtime":"2019-12-25T17:18:50+01:00","size":107541,"digest":"a66a98d30794a1e442949420b34b0ad3e6806a3a365d75e5c729b21980a37fb7","integrity":"sha256-pmqY0weUoeRClJQgs0sK0+aAajo2XXXlxymyGYCjf7c="},"manifest-39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f.js":{"logical_path":"manifest.js","mtime":"2020-02-25T22:08:25+01:00","size":6,"digest":"39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f","integrity":"sha256-OWJ9xS+xtIKWVMNV130wZwFHekiYiMoL4yNTUBAuhY8="},"agendadescommuns-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png":{"logical_path":"agendadescommuns.png","mtime":"2020-02-25T22:08:25+01:00","size":2760,"digest":"0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33","integrity":"sha256-ABe+9T9iYcs7+VLUt4DGQwc2lxSy4eLU659p39mGqzM="},"alert-762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906.png":{"logical_path":"alert.png","mtime":"2020-02-25T22:08:25+01:00","size":47876,"digest":"762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906","integrity":"sha256-dirOlHkygkOkQGE0a2TE1rmX6WPGjfxr3dnk0kEZKQY="},"baby_gnu_adl-463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc.png":{"logical_path":"baby_gnu_adl.png","mtime":"2020-02-25T22:08:25+01:00","size":7411,"digest":"463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc","integrity":"sha256-RjqBggqi1P/Y5yENvOGhn/ysZ+82KqewkigMb5XJA/w="},"baby_gnu_adl-97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e.svg":{"logical_path":"baby_gnu_adl.svg","mtime":"2020-02-25T22:08:25+01:00","size":109635,"digest":"97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e","integrity":"sha256-lyUQBdMiXPHVi4xJfWt5BdvJVgzIrNUBGPzOYNCiZ54="},"communs-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png":{"logical_path":"communs.png","mtime":"2020-02-25T22:08:25+01:00","size":2760,"digest":"0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33","integrity":"sha256-ABe+9T9iYcs7+VLUt4DGQwc2lxSy4eLU659p39mGqzM="},"lef-small-93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e.png":{"logical_path":"lef-small.png","mtime":"2020-02-25T22:08:25+01:00","size":1059,"digest":"93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e","integrity":"sha256-kyhdUxr0Y/h3lR1j/oRKbpYAt4LCyB94cjtzAHL6lC4="},"lef-7e9152b909c78144ff44ca2254c06709333bef0b8d4985deb1361aba5c63c86d.png":{"logical_path":"lef.png","mtime":"2020-01-16T20:20:11+01:00","size":15783,"digest":"7e9152b909c78144ff44ca2254c06709333bef0b8d4985deb1361aba5c63c86d","integrity":"sha256-fpFSuQnHgUT/RMoiVMBnCTM77wuNSYXesTYaulxjyG0="},"linux-presentation-day-863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1.png":{"logical_path":"linux-presentation-day.png","mtime":"2020-02-25T22:08:25+01:00","size":9358,"digest":"863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1","integrity":"sha256-hjswVikkUF3SGEEiCGH4NkPTEOC5Q6DmqQVGLd+shvE="},"osm_logo-0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3.svg":{"logical_path":"osm_logo.svg","mtime":"2020-02-25T22:08:25+01:00","size":89730,"digest":"0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3","integrity":"sha256-DpGorNCpLBvxQgQyIyLlfGXCp+MY/saQclL+2Sm31tM="},"priorite-logiciel-libre-je-soutiens-april_2_m-6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc.png":{"logical_path":"priorite-logiciel-libre-je-soutiens-april_2_m.png","mtime":"2020-02-25T22:08:25+01:00","size":16952,"digest":"6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc","integrity":"sha256-ZELkVOlu1FzB68QGc6bFC9KGucKOpqi1hXLpT31kWfw="},"regions/CA-QC-70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174.png":{"logical_path":"regions/CA-QC.png","mtime":"2020-02-25T22:08:25+01:00","size":469,"digest":"70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174","integrity":"sha256-cGmeam4lxpBAo/FUiwr9gpxJA8zKJ2C2wQ9JzIfV0XQ="},"team-65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa.png":{"logical_path":"team.png","mtime":"2020-02-25T22:08:25+01:00","size":3586,"digest":"65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa","integrity":"sha256-ZchgIc+KEVRJNmQJSur8vj5aoT3GdbuO80siBIHbmPo="},"application-6b11136e0676d3ceeafb180819ad6aa9b3241e58a605d1d1d76883366d7c2111.js":{"logical_path":"application.js","mtime":"2019-12-22T12:30:30+01:00","size":2001537,"digest":"6b11136e0676d3ceeafb180819ad6aa9b3241e58a605d1d1d76883366d7c2111","integrity":"sha256-axETbgZ2087q+xgIGa1qqbMkHlimBdHR12iDNm18IRE="},"application-2787d6ed87f3f83fc6325ce89dc84f7e80e3148c1224e41f9cc9e51509747d00.css":{"logical_path":"application.css","mtime":"2019-12-22T12:30:30+01:00","size":232252,"digest":"2787d6ed87f3f83fc6325ce89dc84f7e80e3148c1224e41f9cc9e51509747d00","integrity":"sha256-J4fW7Yfz+D/GMlzonchPfoDjFIwSJOQfnMnlFQl0fQA="},"flags/4x3/ad-f67c4e5a3f709ead53c04d9ff35614e6c67517c3d3289170f7a317390f661497.svg":{"logical_path":"flags/4x3/ad.svg","mtime":"2020-02-08T21:52:35+01:00","size":33972,"digest":"f67c4e5a3f709ead53c04d9ff35614e6c67517c3d3289170f7a317390f661497","integrity":"sha256-9nxOWj9wnq1TwE2f81YU5sZ1F8PTKJFw96MXOQ9mFJc="},"flags/1x1/ad-a315836ec2c9dcc11ef9bfd8b18aa7ccfc2d31435cbf46a2c31930836076e09c.svg":{"logical_path":"flags/1x1/ad.svg","mtime":"2020-02-08T21:52:35+01:00","size":32745,"digest":"a315836ec2c9dcc11ef9bfd8b18aa7ccfc2d31435cbf46a2c31930836076e09c","integrity":"sha256-oxWDbsLJ3MEe+b/YsYqnzPwtMUNcv0aiwxkwg2B24Jw="},"flags/4x3/ae-7a3b3dc0f50b5310014cfbcc8200a5f1ce568127bf43452e40e8158e0cff2d2e.svg":{"logical_path":"flags/4x3/ae.svg","mtime":"2020-02-08T21:52:35+01:00","size":257,"digest":"7a3b3dc0f50b5310014cfbcc8200a5f1ce568127bf43452e40e8158e0cff2d2e","integrity":"sha256-ejs9wPULUxABTPvMggCl8c5WgSe/Q0UuQOgVjgz/LS4="},"flags/1x1/ae-bcdd9a4da09598785f3e31db4ff431e22687b2ead18209a3e615600655068cd5.svg":{"logical_path":"flags/1x1/ae.svg","mtime":"2020-02-08T21:52:35+01:00","size":265,"digest":"bcdd9a4da09598785f3e31db4ff431e22687b2ead18209a3e615600655068cd5","integrity":"sha256-vN2aTaCVmHhfPjHbT/Qx4iaHsurRggmj5hVgBlUGjNU="},"flags/4x3/af-01601b521fa86582e32c39eed8c88480afec1f801b6de929b52ed7e49da47260.svg":{"logical_path":"flags/4x3/af.svg","mtime":"2020-02-08T21:52:35+01:00","size":21279,"digest":"01601b521fa86582e32c39eed8c88480afec1f801b6de929b52ed7e49da47260","integrity":"sha256-AWAbUh+oZYLjLDnu2MiEgK/sH4AbbekptS7X5J2kcmA="},"flags/1x1/af-6332cf754a5e2866db631923e1f7cfc52a0a554d32b97bcf19f8263819e4ca7d.svg":{"logical_path":"flags/1x1/af.svg","mtime":"2020-02-08T21:52:35+01:00","size":21145,"digest":"6332cf754a5e2866db631923e1f7cfc52a0a554d32b97bcf19f8263819e4ca7d","integrity":"sha256-YzLPdUpeKGbbYxkj4ffPxSoKVU0yuXvPGfgmOBnkyn0="},"flags/4x3/ag-cb6952d821bac7855231c2cb4d1c44f7c730f6b3621518ab20f30d2b9afe604b.svg":{"logical_path":"flags/4x3/ag.svg","mtime":"2020-02-08T21:52:35+01:00","size":748,"digest":"cb6952d821bac7855231c2cb4d1c44f7c730f6b3621518ab20f30d2b9afe604b","integrity":"sha256-y2lS2CG6x4VSMcLLTRxE98cw9rNiFRirIPMNK5r+YEs="},"flags/1x1/ag-14f7d9978487aaf4446b55167e85a711c48a13ff07edac175c172969a38650c4.svg":{"logical_path":"flags/1x1/ag.svg","mtime":"2020-02-08T21:52:35+01:00","size":764,"digest":"14f7d9978487aaf4446b55167e85a711c48a13ff07edac175c172969a38650c4","integrity":"sha256-FPfZl4SHqvREa1UWfoWnEcSKE/8H7awXXBcpaaOGUMQ="},"flags/4x3/ai-f07c6cc0646fdfa441b9a506e1d46e8dce0d97b37222292e9c6733c995dc89bc.svg":{"logical_path":"flags/4x3/ai.svg","mtime":"2020-02-08T21:52:35+01:00","size":42208,"digest":"f07c6cc0646fdfa441b9a506e1d46e8dce0d97b37222292e9c6733c995dc89bc","integrity":"sha256-8HxswGRv36RBuaUG4dRujc4Nl7NyIikunGczyZXcibw="},"flags/1x1/ai-95099e544de29bcea3ba735de535823f2e19aeb4043e82dbc1d9862f9262b810.svg":{"logical_path":"flags/1x1/ai.svg","mtime":"2020-02-08T21:52:35+01:00","size":47975,"digest":"95099e544de29bcea3ba735de535823f2e19aeb4043e82dbc1d9862f9262b810","integrity":"sha256-lQmeVE3im86junNd5TWCPy4ZrrQEPoLbwdmGL5JiuBA="},"flags/4x3/al-9b997f2720de861e1b0ccec8ddf42a2890795ebf50817f9223e1ceba712c9b03.svg":{"logical_path":"flags/4x3/al.svg","mtime":"2020-02-08T21:52:35+01:00","size":3221,"digest":"9b997f2720de861e1b0ccec8ddf42a2890795ebf50817f9223e1ceba712c9b03","integrity":"sha256-m5l/JyDehh4bDM7I3fQqKJB5Xr9QgX+SI+HOunEsmwM="},"flags/1x1/al-94852d2711fc23abf3423534b9edb950a0c6aabf1d2d98bf2643f3c7dadfac09.svg":{"logical_path":"flags/1x1/al.svg","mtime":"2020-02-08T21:52:35+01:00","size":3228,"digest":"94852d2711fc23abf3423534b9edb950a0c6aabf1d2d98bf2643f3c7dadfac09","integrity":"sha256-lIUtJxH8I6vzQjU0ue25UKDGqr8dLZi/JkPzx9rfrAk="},"flags/4x3/am-85a199ec21d1af74a256335ead0c1e38592bb603d8da81feda4678945e9e00e6.svg":{"logical_path":"flags/4x3/am.svg","mtime":"2020-02-08T21:52:35+01:00","size":226,"digest":"85a199ec21d1af74a256335ead0c1e38592bb603d8da81feda4678945e9e00e6","integrity":"sha256-haGZ7CHRr3SiVjNerQweOFkrtgPY2oH+2kZ4lF6eAOY="},"flags/1x1/am-869391b014ac299924d30777d72a4aba430752177290a90a1fc3255a7ad79ee7.svg":{"logical_path":"flags/1x1/am.svg","mtime":"2020-02-08T21:52:35+01:00","size":234,"digest":"869391b014ac299924d30777d72a4aba430752177290a90a1fc3255a7ad79ee7","integrity":"sha256-hpORsBSsKZkk0wd31ypKukMHUhdykKkKH8MlWnrXnuc="},"flags/4x3/ao-29224a61bf632826d530cda55d87c2615884bd2c2c3a322036ed468e34d85c75.svg":{"logical_path":"flags/4x3/ao.svg","mtime":"2020-02-08T21:52:35+01:00","size":1608,"digest":"29224a61bf632826d530cda55d87c2615884bd2c2c3a322036ed468e34d85c75","integrity":"sha256-KSJKYb9jKCbVMM2lXYfCYViEvSwsOjIgNu1GjjTYXHU="},"flags/1x1/ao-048eacbc862fe1868cf0ec73457b70a8b49a598c80dea049856f0e1fd6fec83e.svg":{"logical_path":"flags/1x1/ao.svg","mtime":"2020-02-08T21:52:35+01:00","size":1608,"digest":"048eacbc862fe1868cf0ec73457b70a8b49a598c80dea049856f0e1fd6fec83e","integrity":"sha256-BI6svIYv4YaM8OxzRXtwqLSaWYyA3qBJhW8OH9b+yD4="},"flags/4x3/aq-b401a776d2f1a7944170114f0aeeceab5e1d962df3de7ed1eff47d96824b73fd.svg":{"logical_path":"flags/4x3/aq.svg","mtime":"2020-02-08T21:52:35+01:00","size":2974,"digest":"b401a776d2f1a7944170114f0aeeceab5e1d962df3de7ed1eff47d96824b73fd","integrity":"sha256-tAGndtLxp5RBcBFPCu7Oq14dli3z3n7R7/R9loJLc/0="},"flags/1x1/aq-a8d7ce9bfb860b6e2b58608b50bf2cafc5220c77f6d049ab7770891f64334531.svg":{"logical_path":"flags/1x1/aq.svg","mtime":"2020-02-08T21:52:35+01:00","size":3183,"digest":"a8d7ce9bfb860b6e2b58608b50bf2cafc5220c77f6d049ab7770891f64334531","integrity":"sha256-qNfOm/uGC24rWGCLUL8sr8UiDHf20Emrd3CJH2QzRTE="},"flags/4x3/ar-bf73475bb707100874dec538ce4b7e1b5afc4ed67dc50a8a800ee519e51cc826.svg":{"logical_path":"flags/4x3/ar.svg","mtime":"2020-02-08T21:52:35+01:00","size":3430,"digest":"bf73475bb707100874dec538ce4b7e1b5afc4ed67dc50a8a800ee519e51cc826","integrity":"sha256-v3NHW7cHEAh03sU4zkt+G1r8TtZ9xQqKgA7lGeUcyCY="},"flags/1x1/ar-fc6582cc6d3ef0782805d8497ee77ab2d836c53422e91007e48f81a4a9fa2e60.svg":{"logical_path":"flags/1x1/ar.svg","mtime":"2020-02-08T21:52:35+01:00","size":3503,"digest":"fc6582cc6d3ef0782805d8497ee77ab2d836c53422e91007e48f81a4a9fa2e60","integrity":"sha256-/GWCzG0+8HgoBdhJfud6stg2xTQi6RAH5I+BpKn6LmA="},"flags/4x3/as-79d395190345206ea03475b67b44638e1111562411504b60646483c9c0b0f7d1.svg":{"logical_path":"flags/4x3/as.svg","mtime":"2020-02-08T21:52:35+01:00","size":8098,"digest":"79d395190345206ea03475b67b44638e1111562411504b60646483c9c0b0f7d1","integrity":"sha256-edOVGQNFIG6gNHW2e0RjjhERViQRUEtgZGSDycCw99E="},"flags/1x1/as-04f0db77c5d8610a55c69508b226a7c338924f8cf7d6577d5d6590e85ee57183.svg":{"logical_path":"flags/1x1/as.svg","mtime":"2020-02-08T21:52:35+01:00","size":7845,"digest":"04f0db77c5d8610a55c69508b226a7c338924f8cf7d6577d5d6590e85ee57183","integrity":"sha256-BPDbd8XYYQpVxpUIsianwziST4z31ld9XWWQ6F7lcYM="},"flags/4x3/at-3d197de8f1f0096a2b0d440b6fc7d80821585a6637e646c05487a87718bf6b5f.svg":{"logical_path":"flags/4x3/at.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"3d197de8f1f0096a2b0d440b6fc7d80821585a6637e646c05487a87718bf6b5f","integrity":"sha256-PRl96PHwCWorDUQLb8fYCCFYWmY35kbAVIeodxi/a18="},"flags/1x1/at-ec4db9aeac793827ac7c8e40c072a76f7675010058cc8c8dfd3a86bb5acfa6b8.svg":{"logical_path":"flags/1x1/at.svg","mtime":"2020-02-08T21:52:35+01:00","size":245,"digest":"ec4db9aeac793827ac7c8e40c072a76f7675010058cc8c8dfd3a86bb5acfa6b8","integrity":"sha256-7E25rqx5OCesfI5AwHKnb3Z1AQBYzIyN/TqGu1rPprg="},"flags/4x3/au-126fa2500a315287a5f847f4d958bb929f11da9b39f35912cc440c0fcffb8b12.svg":{"logical_path":"flags/4x3/au.svg","mtime":"2020-02-08T21:52:35+01:00","size":1335,"digest":"126fa2500a315287a5f847f4d958bb929f11da9b39f35912cc440c0fcffb8b12","integrity":"sha256-Em+iUAoxUoel+Ef02Vi7kp8R2ps581kSzEQMD8/7ixI="},"flags/1x1/au-bf990dcc957c9f74eb908e8ffa733f1731277bf6ec8b7301a6ea1ed92b59cc4b.svg":{"logical_path":"flags/1x1/au.svg","mtime":"2020-02-08T21:52:35+01:00","size":1320,"digest":"bf990dcc957c9f74eb908e8ffa733f1731277bf6ec8b7301a6ea1ed92b59cc4b","integrity":"sha256-v5kNzJV8n3TrkI6P+nM/FzEne/bsi3MBpuoe2StZzEs="},"flags/4x3/aw-4524643452423e95f3b0dbe6216b059a9e52126b34c73ae4b3c17b682f893aa6.svg":{"logical_path":"flags/4x3/aw.svg","mtime":"2020-02-08T21:52:35+01:00","size":9948,"digest":"4524643452423e95f3b0dbe6216b059a9e52126b34c73ae4b3c17b682f893aa6","integrity":"sha256-RSRkNFJCPpXzsNvmIWsFmp5SEms0xzrks8F7aC+JOqY="},"flags/1x1/aw-f7002bceef55486a442bf6bf433be0c60d0b15b2aa548b81c524c67ccf0565a8.svg":{"logical_path":"flags/1x1/aw.svg","mtime":"2020-02-08T21:52:35+01:00","size":12088,"digest":"f7002bceef55486a442bf6bf433be0c60d0b15b2aa548b81c524c67ccf0565a8","integrity":"sha256-9wArzu9VSGpEK/a/Qzvgxg0LFbKqVIuBxSTGfM8FZag="},"flags/4x3/ax-c297e0eb654ca62e58f5eb3abb70df9f245e4919490f29bd0f1d49c4fe052d90.svg":{"logical_path":"flags/4x3/ax.svg","mtime":"2020-02-08T21:52:35+01:00","size":556,"digest":"c297e0eb654ca62e58f5eb3abb70df9f245e4919490f29bd0f1d49c4fe052d90","integrity":"sha256-wpfg62VMpi5Y9es6u3DfnyReSRlJDym9Dx1JxP4FLZA="},"flags/1x1/ax-a1245689ecbf321c0a9e556bba17f3c9f2aeb8b1f63d14fcb591d76a87f12880.svg":{"logical_path":"flags/1x1/ax.svg","mtime":"2020-02-08T21:52:35+01:00","size":544,"digest":"a1245689ecbf321c0a9e556bba17f3c9f2aeb8b1f63d14fcb591d76a87f12880","integrity":"sha256-oSRWiey/MhwKnlVruhfzyfKuuLH2PRT8tZHXaofxKIA="},"flags/4x3/az-132e68d5e0386d3b9fa05b4288a0fd66f1414e2bc7af6b9d437b6935a7dfa00c.svg":{"logical_path":"flags/4x3/az.svg","mtime":"2020-02-08T21:52:35+01:00","size":515,"digest":"132e68d5e0386d3b9fa05b4288a0fd66f1414e2bc7af6b9d437b6935a7dfa00c","integrity":"sha256-Ey5o1eA4bTufoFtCiKD9ZvFBTivHr2udQ3tpNaffoAw="},"flags/1x1/az-3990c0526b933bd650285d821f2b93e432a73ba709869549b8ef75b051d3bd2d.svg":{"logical_path":"flags/1x1/az.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"3990c0526b933bd650285d821f2b93e432a73ba709869549b8ef75b051d3bd2d","integrity":"sha256-OZDAUmuTO9ZQKF2CHyuT5DKnO6cJhpVJuO91sFHTvS0="},"flags/4x3/ba-89dd0c1600d94741de7d667a487310193a0c48c4cf1a5159c3bf9dd37d65d2b5.svg":{"logical_path":"flags/4x3/ba.svg","mtime":"2020-02-08T21:52:35+01:00","size":1306,"digest":"89dd0c1600d94741de7d667a487310193a0c48c4cf1a5159c3bf9dd37d65d2b5","integrity":"sha256-id0MFgDZR0HefWZ6SHMQGToMSMTPGlFZw7+d031l0rU="},"flags/1x1/ba-2dbe90eb12b937f4a9ae8db95760930a3e318f4ce5829ac05e292ead698bae5a.svg":{"logical_path":"flags/1x1/ba.svg","mtime":"2020-02-08T21:52:35+01:00","size":1247,"digest":"2dbe90eb12b937f4a9ae8db95760930a3e318f4ce5829ac05e292ead698bae5a","integrity":"sha256-Lb6Q6xK5N/Spro25V2CTCj4xj0zlgprAXikurWmLrlo="},"flags/4x3/bb-16f8249ff958bfbc18fb1f23a5282000347bffdb5769ac620966185b1dcb57f6.svg":{"logical_path":"flags/4x3/bb.svg","mtime":"2020-02-08T21:52:35+01:00","size":613,"digest":"16f8249ff958bfbc18fb1f23a5282000347bffdb5769ac620966185b1dcb57f6","integrity":"sha256-Fvgkn/lYv7wY+x8jpSggADR7/9tXaaxiCWYYWx3LV/Y="},"flags/1x1/bb-fae92d8426196ae24ffa561aca72613fae651a5e9c0bcda63ecc877add05b060.svg":{"logical_path":"flags/1x1/bb.svg","mtime":"2020-02-08T21:52:35+01:00","size":616,"digest":"fae92d8426196ae24ffa561aca72613fae651a5e9c0bcda63ecc877add05b060","integrity":"sha256-+ukthCYZauJP+lYaynJhP65lGl6cC82mPsyHet0FsGA="},"flags/4x3/bd-8dac0547e73ee25a04148a3f0fd026a90e56c23b7e92921565d4263050ba77a6.svg":{"logical_path":"flags/4x3/bd.svg","mtime":"2020-02-08T21:52:35+01:00","size":193,"digest":"8dac0547e73ee25a04148a3f0fd026a90e56c23b7e92921565d4263050ba77a6","integrity":"sha256-jawFR+c+4loEFIo/D9AmqQ5Wwjt+kpIVZdQmMFC6d6Y="},"flags/1x1/bd-ecc3c3e87d4cc59c8350f2b4d7dca8f5cf46bdb26319db0ee80b744482af50c1.svg":{"logical_path":"flags/1x1/bd.svg","mtime":"2020-02-08T21:52:35+01:00","size":195,"digest":"ecc3c3e87d4cc59c8350f2b4d7dca8f5cf46bdb26319db0ee80b744482af50c1","integrity":"sha256-7MPD6H1MxZyDUPK019yo9c9GvbJjGdsO6At0RIKvUME="},"flags/4x3/be-a180ca68521188017bb5367f19e503d9599d6cbecd61bf054e59a57f58e648ae.svg":{"logical_path":"flags/4x3/be.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"a180ca68521188017bb5367f19e503d9599d6cbecd61bf054e59a57f58e648ae","integrity":"sha256-oYDKaFIRiAF7tTZ/GeUD2VmdbL7NYb8FTlmlf1jmSK4="},"flags/1x1/be-c8d4194137bd01955285b329dfdf996490d16c3116a92ce2f322e354b6d7494e.svg":{"logical_path":"flags/1x1/be.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"c8d4194137bd01955285b329dfdf996490d16c3116a92ce2f322e354b6d7494e","integrity":"sha256-yNQZQTe9AZVShbMp39+ZZJDRbDEWqSzi8yLjVLbXSU4="},"flags/4x3/bf-6b214936ef89f19133d4a84e99cdf0cfdb99d6409f2f373f6d18694423013313.svg":{"logical_path":"flags/4x3/bf.svg","mtime":"2020-02-08T21:52:35+01:00","size":360,"digest":"6b214936ef89f19133d4a84e99cdf0cfdb99d6409f2f373f6d18694423013313","integrity":"sha256-ayFJNu+J8ZEz1KhOmc3wz9uZ1kCfLzc/bRhpRCMBMxM="},"flags/1x1/bf-04c7d61aa314adab5a41bd79d77aa780c10136bb6b8f4c62423e61e23e3851ee.svg":{"logical_path":"flags/1x1/bf.svg","mtime":"2020-02-08T21:52:35+01:00","size":386,"digest":"04c7d61aa314adab5a41bd79d77aa780c10136bb6b8f4c62423e61e23e3851ee","integrity":"sha256-BMfWGqMUrataQb1513qngMEBNrtrj0xiQj5h4j44Ue4="},"flags/4x3/bg-dd3985ba746942b0e65bc52a280cc4d28fb24fd2c7d9e22ac9afd2d75ee7bfc4.svg":{"logical_path":"flags/4x3/bg.svg","mtime":"2020-02-08T21:52:35+01:00","size":289,"digest":"dd3985ba746942b0e65bc52a280cc4d28fb24fd2c7d9e22ac9afd2d75ee7bfc4","integrity":"sha256-3TmFunRpQrDmW8UqKAzE0o+yT9LH2eIqya/S117nv8Q="},"flags/1x1/bg-f59294a736d5bdc0f102b58d70dbe45d02bd92df822820bf95336840f75a0746.svg":{"logical_path":"flags/1x1/bg.svg","mtime":"2020-02-08T21:52:35+01:00","size":297,"digest":"f59294a736d5bdc0f102b58d70dbe45d02bd92df822820bf95336840f75a0746","integrity":"sha256-9ZKUpzbVvcDxArWNcNvkXQK9kt+CKCC/lTNoQPdaB0Y="},"flags/4x3/bh-7c82c4a6ba963172c6c1b4423f39a0ebe9c999449cc7dd87018917943db4735c.svg":{"logical_path":"flags/4x3/bh.svg","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"7c82c4a6ba963172c6c1b4423f39a0ebe9c999449cc7dd87018917943db4735c","integrity":"sha256-fILEprqWMXLGwbRCPzmg6+nJmUScx92HAYkXlD20c1w="},"flags/1x1/bh-6893aac3e55c6480e9dac0c023ec2179f6c12a0da82a0bc2717134384c097e88.svg":{"logical_path":"flags/1x1/bh.svg","mtime":"2020-02-08T21:52:35+01:00","size":572,"digest":"6893aac3e55c6480e9dac0c023ec2179f6c12a0da82a0bc2717134384c097e88","integrity":"sha256-aJOqw+VcZIDp2sDAI+whefbBKg2oKgvCcXE0OEwJfog="},"flags/4x3/bi-4fcd0116f7f93c0564c6955806f3c3563d0ea7334ae406f29a897255845c923c.svg":{"logical_path":"flags/4x3/bi.svg","mtime":"2020-02-08T21:52:35+01:00","size":1074,"digest":"4fcd0116f7f93c0564c6955806f3c3563d0ea7334ae406f29a897255845c923c","integrity":"sha256-T80BFvf5PAVkxpVYBvPDVj0OpzNK5AbymolyVYRckjw="},"flags/1x1/bi-91c34eb431b26be67852782a0b93e1d7d577a925454d6c8cea00a0d872d2de8a.svg":{"logical_path":"flags/1x1/bi.svg","mtime":"2020-02-08T21:52:35+01:00","size":1048,"digest":"91c34eb431b26be67852782a0b93e1d7d577a925454d6c8cea00a0d872d2de8a","integrity":"sha256-kcNOtDGya+Z4UngqC5Ph19V3qSVFTWyM6gCg2HLS3oo="},"flags/4x3/bj-63bddb4268f5f8c2ed867041bcf058fb18fcd9d1e0799e01286fca2d5e961c7f.svg":{"logical_path":"flags/4x3/bj.svg","mtime":"2020-02-08T21:52:35+01:00","size":499,"digest":"63bddb4268f5f8c2ed867041bcf058fb18fcd9d1e0799e01286fca2d5e961c7f","integrity":"sha256-Y73bQmj1+MLthnBBvPBY+xj82dHgeZ4BKG/KLV6WHH8="},"flags/1x1/bj-e2606c5a8498c474a6b6708626b88108fcb73840344766566dc56f804279cdfc.svg":{"logical_path":"flags/1x1/bj.svg","mtime":"2020-02-08T21:52:35+01:00","size":502,"digest":"e2606c5a8498c474a6b6708626b88108fcb73840344766566dc56f804279cdfc","integrity":"sha256-4mBsWoSYxHSmtnCGJriBCPy3OEA0R2ZWbcVvgEJ5zfw="},"flags/4x3/bl-824a7265f48789d5e1ad5c5b0042a13a7d2d4357210e5bd8124fca19931e8c74.svg":{"logical_path":"flags/4x3/bl.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"824a7265f48789d5e1ad5c5b0042a13a7d2d4357210e5bd8124fca19931e8c74","integrity":"sha256-gkpyZfSHidXhrVxbAEKhOn0tQ1chDlvYEk/KGZMejHQ="},"flags/1x1/bl-ba6a7881b0ca72ac57aee4d823ae611ab4ad24a938ee9e01a7a4d5ae04cfccf6.svg":{"logical_path":"flags/1x1/bl.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"ba6a7881b0ca72ac57aee4d823ae611ab4ad24a938ee9e01a7a4d5ae04cfccf6","integrity":"sha256-ump4gbDKcqxXruTYI65hGrStJKk47p4Bp6TVrgTPzPY="},"flags/4x3/bm-2e2f09e5a4edf4b18afff581656f50b0b4c37783db29591ff00ca768f7f755bc.svg":{"logical_path":"flags/4x3/bm.svg","mtime":"2020-02-08T21:52:35+01:00","size":22650,"digest":"2e2f09e5a4edf4b18afff581656f50b0b4c37783db29591ff00ca768f7f755bc","integrity":"sha256-Li8J5aTt9LGK//WBZW9QsLTDd4PbKVkf8AynaPf3Vbw="},"flags/1x1/bm-f553f953f8784ea4d67a5197f5d808a67747eb8a1cb56990d6838e690090d2d6.svg":{"logical_path":"flags/1x1/bm.svg","mtime":"2020-02-08T21:52:35+01:00","size":22337,"digest":"f553f953f8784ea4d67a5197f5d808a67747eb8a1cb56990d6838e690090d2d6","integrity":"sha256-9VP5U/h4TqTWelGX9dgIpndH64octWmQ1oOOaQCQ0tY="},"flags/4x3/bn-bcf9967c12eb6397346cb5b960ae92efa41f314f780d09a3d7c81f5dacac4180.svg":{"logical_path":"flags/4x3/bn.svg","mtime":"2020-02-08T21:52:35+01:00","size":14387,"digest":"bcf9967c12eb6397346cb5b960ae92efa41f314f780d09a3d7c81f5dacac4180","integrity":"sha256-vPmWfBLrY5c0bLW5YK6S76QfMU94DQmj18gfXaysQYA="},"flags/1x1/bn-1d1aad3fe9fd33ce922eba33c9ae6047a5646349239c20d1bc7307ec6d19a043.svg":{"logical_path":"flags/1x1/bn.svg","mtime":"2020-02-08T21:52:35+01:00","size":14521,"digest":"1d1aad3fe9fd33ce922eba33c9ae6047a5646349239c20d1bc7307ec6d19a043","integrity":"sha256-HRqtP+n9M86SLrozya5gR6VkY0kjnCDRvHMH7G0ZoEM="},"flags/4x3/bo-fa423f2bb4ab6e8e9dd399ad73781ea8d9cbafd30f1b7ee0bcecfb9e7b75581e.svg":{"logical_path":"flags/4x3/bo.svg","mtime":"2020-02-08T21:52:35+01:00","size":118272,"digest":"fa423f2bb4ab6e8e9dd399ad73781ea8d9cbafd30f1b7ee0bcecfb9e7b75581e","integrity":"sha256-+kI/K7Srbo6d05mtc3geqNnLr9MPG37gvOz7nnt1WB4="},"flags/1x1/bo-f5faa29e40191e0c76070ac1a1d2a1f2b18e9cd358b8a77cefaed8efc49a265e.svg":{"logical_path":"flags/1x1/bo.svg","mtime":"2020-02-08T21:52:35+01:00","size":119850,"digest":"f5faa29e40191e0c76070ac1a1d2a1f2b18e9cd358b8a77cefaed8efc49a265e","integrity":"sha256-9fqinkAZHgx2BwrBodKh8rGOnNNYuKd8767Y78SaJl4="},"flags/4x3/bq-493c92ab19204c3ad319e6caba021df050132b99bd57a8f9b74131b78229c29e.svg":{"logical_path":"flags/4x3/bq.svg","mtime":"2020-02-08T21:52:35+01:00","size":227,"digest":"493c92ab19204c3ad319e6caba021df050132b99bd57a8f9b74131b78229c29e","integrity":"sha256-STySqxkgTDrTGebKugId8FATK5m9V6j5t0Ext4Ipwp4="},"flags/1x1/bq-6e30bbeabc2aa097f657a411984b3c23278a8fcce2fc016b1cd6d2262f672d33.svg":{"logical_path":"flags/1x1/bq.svg","mtime":"2020-02-08T21:52:35+01:00","size":231,"digest":"6e30bbeabc2aa097f657a411984b3c23278a8fcce2fc016b1cd6d2262f672d33","integrity":"sha256-bjC76rwqoJf2V6QRmEs8IyeKj8zi/AFrHNbSJi9nLTM="},"flags/4x3/br-cf3ba80ec2c9fd4d3c845c3a3c43a2b9d81cf90707a2918789e8b1f596833e01.svg":{"logical_path":"flags/4x3/br.svg","mtime":"2020-02-08T21:52:35+01:00","size":8244,"digest":"cf3ba80ec2c9fd4d3c845c3a3c43a2b9d81cf90707a2918789e8b1f596833e01","integrity":"sha256-zzuoDsLJ/U08hFw6PEOiudgc+QcHopGHieix9ZaDPgE="},"flags/1x1/br-7bf4e4b31650ac25f0bc6c86eb87491a7e5a8eac13acccfcbde44346c88728f6.svg":{"logical_path":"flags/1x1/br.svg","mtime":"2020-02-08T21:52:35+01:00","size":7852,"digest":"7bf4e4b31650ac25f0bc6c86eb87491a7e5a8eac13acccfcbde44346c88728f6","integrity":"sha256-e/TksxZQrCXwvGyG64dJGn5ajqwTrMz8veRDRsiHKPY="},"flags/4x3/bs-69f60b5fea96b67dd939e597099994921bb3dc3bcf31b8dee7cc45be2885c836.svg":{"logical_path":"flags/4x3/bs.svg","mtime":"2020-02-08T21:52:35+01:00","size":549,"digest":"69f60b5fea96b67dd939e597099994921bb3dc3bcf31b8dee7cc45be2885c836","integrity":"sha256-afYLX+qWtn3ZOeWXCZmUkhuz3DvPMbje58xFviiFyDY="},"flags/1x1/bs-f5d6acf7ef7a240dc09ac88710fd77fd3494501104392db74d5c540d482f2262.svg":{"logical_path":"flags/1x1/bs.svg","mtime":"2020-02-08T21:52:35+01:00","size":571,"digest":"f5d6acf7ef7a240dc09ac88710fd77fd3494501104392db74d5c540d482f2262","integrity":"sha256-9das9+96JA3AmsiHEP13/TSUUBEEOS23TVxUDUgvImI="},"flags/4x3/bt-6c20b0c00e12d5898be0239a0c66ce775debd0bd536de56a271859a0285a039e.svg":{"logical_path":"flags/4x3/bt.svg","mtime":"2020-02-08T21:52:35+01:00","size":25345,"digest":"6c20b0c00e12d5898be0239a0c66ce775debd0bd536de56a271859a0285a039e","integrity":"sha256-bCCwwA4S1YmL4COaDGbOd13r0L1TbeVqJxhZoChaA54="},"flags/1x1/bt-58de3ca9438811ef1920e2f84c4ba4ce32d01069f4d197ab5d577de6acbe0c85.svg":{"logical_path":"flags/1x1/bt.svg","mtime":"2020-02-08T21:52:35+01:00","size":25172,"digest":"58de3ca9438811ef1920e2f84c4ba4ce32d01069f4d197ab5d577de6acbe0c85","integrity":"sha256-WN48qUOIEe8ZIOL4TEukzjLQEGn00ZerXVd95qy+DIU="},"flags/4x3/bv-ff173190fc339b3cb8b6e8235bc5e373853d7127fd94cbc32ac737e839aeb586.svg":{"logical_path":"flags/4x3/bv.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"ff173190fc339b3cb8b6e8235bc5e373853d7127fd94cbc32ac737e839aeb586","integrity":"sha256-/xcxkPwzmzy4tugjW8Xjc4U9cSf9lMvDKsc36DmutYY="},"flags/1x1/bv-59616ff1a722959064c83927ca2e49c1fce42a9b18e91b9ecbb74f62527aff43.svg":{"logical_path":"flags/1x1/bv.svg","mtime":"2020-02-08T21:52:35+01:00","size":585,"digest":"59616ff1a722959064c83927ca2e49c1fce42a9b18e91b9ecbb74f62527aff43","integrity":"sha256-WWFv8acilZBkyDknyi5JwfzkKpsY6Ruey7dPYlJ6/0M="},"flags/4x3/bw-4bb1d3131b88c65b5decc67f7b44903e931bca2fcac841942591c599f0cbb850.svg":{"logical_path":"flags/4x3/bw.svg","mtime":"2020-02-08T21:52:35+01:00","size":255,"digest":"4bb1d3131b88c65b5decc67f7b44903e931bca2fcac841942591c599f0cbb850","integrity":"sha256-S7HTExuIxltd7MZ/e0SQPpMbyi/KyEGUJZHFmfDLuFA="},"flags/1x1/bw-e08f50c0836ca5858aed7b0526aed6fb630da8dc6b6b96bd9a476af599dc89d6.svg":{"logical_path":"flags/1x1/bw.svg","mtime":"2020-02-08T21:52:35+01:00","size":257,"digest":"e08f50c0836ca5858aed7b0526aed6fb630da8dc6b6b96bd9a476af599dc89d6","integrity":"sha256-4I9QwINspYWK7XsFJq7W+2MNqNxra5a9mkdq9ZncidY="},"flags/4x3/by-324ac96bfbe075781c664be3b9e2ac6b4d2a46dd2b418ca0920284f64394c7d4.svg":{"logical_path":"flags/4x3/by.svg","mtime":"2020-02-08T21:52:35+01:00","size":5998,"digest":"324ac96bfbe075781c664be3b9e2ac6b4d2a46dd2b418ca0920284f64394c7d4","integrity":"sha256-MkrJa/vgdXgcZkvjueKsa00qRt0rQYygkgKE9kOUx9Q="},"flags/1x1/by-37b80e8bf7e51fef99a8307d6dffb04ee164790ceeafef606d516ca333e9488a.svg":{"logical_path":"flags/1x1/by.svg","mtime":"2020-02-08T21:52:35+01:00","size":6105,"digest":"37b80e8bf7e51fef99a8307d6dffb04ee164790ceeafef606d516ca333e9488a","integrity":"sha256-N7gOi/flH++ZqDB9bf+wTuFkeQzur+9gbVFsozPpSIo="},"flags/4x3/bz-156fdc45f8c15c9520a1ea9fc0f395f294f02077408ea1938c222a37cfbb7f1d.svg":{"logical_path":"flags/4x3/bz.svg","mtime":"2020-02-08T21:52:35+01:00","size":46916,"digest":"156fdc45f8c15c9520a1ea9fc0f395f294f02077408ea1938c222a37cfbb7f1d","integrity":"sha256-FW/cRfjBXJUgoeqfwPOV8pTwIHdAjqGTjCIqN8+7fx0="},"flags/1x1/bz-24577d4e7b29b33ab3b1d37914c8479889baa7e8c8399c6d1c99faed31ab053a.svg":{"logical_path":"flags/1x1/bz.svg","mtime":"2020-02-08T21:52:35+01:00","size":47160,"digest":"24577d4e7b29b33ab3b1d37914c8479889baa7e8c8399c6d1c99faed31ab053a","integrity":"sha256-JFd9TnspszqzsdN5FMhHmIm6p+jIOZxtHJn67TGrBTo="},"flags/4x3/ca-0d57cab46d5dbb0012a5e4ae0a9efee3baee90d5d157950a6c5d67edf2daa58f.svg":{"logical_path":"flags/4x3/ca.svg","mtime":"2020-02-08T21:52:35+01:00","size":731,"digest":"0d57cab46d5dbb0012a5e4ae0a9efee3baee90d5d157950a6c5d67edf2daa58f","integrity":"sha256-DVfKtG1duwASpeSuCp7+47rukNXRV5UKbF1n7fLapY8="},"flags/1x1/ca-192a6fb0544e5a6f33a32149d62f1e7ac0a1d61c5c5afa57f3a42346ca8e8c90.svg":{"logical_path":"flags/1x1/ca.svg","mtime":"2020-02-08T21:52:35+01:00","size":712,"digest":"192a6fb0544e5a6f33a32149d62f1e7ac0a1d61c5c5afa57f3a42346ca8e8c90","integrity":"sha256-GSpvsFROWm8zoyFJ1i8eesCh1hxcWvpX86QjRsqOjJA="},"flags/4x3/cc-a35f2a9e10a28d6918ced65e0623b03bb2fbf1f20670b581bc0a409d33b4e843.svg":{"logical_path":"flags/4x3/cc.svg","mtime":"2020-02-08T21:52:35+01:00","size":3144,"digest":"a35f2a9e10a28d6918ced65e0623b03bb2fbf1f20670b581bc0a409d33b4e843","integrity":"sha256-o18qnhCijWkYztZeBiOwO7L78fIGcLWBvApAnTO06EM="},"flags/1x1/cc-d2025eefc9d30f724f3fcd95c0fd9f7938930ecb01af7e0cd6ee6553d7358eb6.svg":{"logical_path":"flags/1x1/cc.svg","mtime":"2020-02-08T21:52:35+01:00","size":3092,"digest":"d2025eefc9d30f724f3fcd95c0fd9f7938930ecb01af7e0cd6ee6553d7358eb6","integrity":"sha256-0gJe78nTD3JPP82VwP2feTiTDssBr34M1u5lU9c1jrY="},"flags/4x3/cd-5d2127c991b30522ae0a29d05facbc88728c050d7e333a60d614af1545459c5c.svg":{"logical_path":"flags/4x3/cd.svg","mtime":"2020-02-08T21:52:35+01:00","size":352,"digest":"5d2127c991b30522ae0a29d05facbc88728c050d7e333a60d614af1545459c5c","integrity":"sha256-XSEnyZGzBSKuCinQX6y8iHKMBQ1+Mzpg1hSvFUVFnFw="},"flags/1x1/cd-59dacf424d1c8c779db66c5b7f2a93a3c8f14976c2975ccfb07639676a1602e3.svg":{"logical_path":"flags/1x1/cd.svg","mtime":"2020-02-08T21:52:35+01:00","size":510,"digest":"59dacf424d1c8c779db66c5b7f2a93a3c8f14976c2975ccfb07639676a1602e3","integrity":"sha256-WdrPQk0cjHedtmxbfyqTo8jxSXbCl1zPsHY5Z2oWAuM="},"flags/4x3/cf-ac0aaffba354d848eba2501a402ee81dc96a56ad0acd3741ec9905e76c372e1e.svg":{"logical_path":"flags/4x3/cf.svg","mtime":"2020-02-08T21:52:35+01:00","size":689,"digest":"ac0aaffba354d848eba2501a402ee81dc96a56ad0acd3741ec9905e76c372e1e","integrity":"sha256-rAqv+6NU2EjrolAaQC7oHclqVq0KzTdB7JkF52w3Lh4="},"flags/1x1/cf-e637674faf7edcdad37182192d038448c157421ab0c69377d9b8e56ab2c0249d.svg":{"logical_path":"flags/1x1/cf.svg","mtime":"2020-02-08T21:52:35+01:00","size":635,"digest":"e637674faf7edcdad37182192d038448c157421ab0c69377d9b8e56ab2c0249d","integrity":"sha256-5jdnT69+3NrTcYIZLQOESMFXQhqwxpN32bjlarLAJJ0="},"flags/4x3/cg-3729f717c83c9df7d0543a1a5d4a506efe184bdfeb39f9260b4b63edf19d2538.svg":{"logical_path":"flags/4x3/cg.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"3729f717c83c9df7d0543a1a5d4a506efe184bdfeb39f9260b4b63edf19d2538","integrity":"sha256-Nyn3F8g8nffQVDoaXUpQbv4YS9/rOfkmC0tj7fGdJTg="},"flags/1x1/cg-8353ff1f251714b1b8905eec1722378426719955d0637d206d35d1dcfa68ddcf.svg":{"logical_path":"flags/1x1/cg.svg","mtime":"2020-02-08T21:52:35+01:00","size":472,"digest":"8353ff1f251714b1b8905eec1722378426719955d0637d206d35d1dcfa68ddcf","integrity":"sha256-g1P/HyUXFLG4kF7sFyI3hCZxmVXQY30gbTXR3Ppo3c8="},"flags/4x3/ch-6739edee6d1ef72c4ed97cfe723d3bb7f17e4df5390f3a4ae234f1ffdeece0cf.svg":{"logical_path":"flags/4x3/ch.svg","mtime":"2020-02-08T21:52:35+01:00","size":300,"digest":"6739edee6d1ef72c4ed97cfe723d3bb7f17e4df5390f3a4ae234f1ffdeece0cf","integrity":"sha256-Zznt7m0e9yxO2Xz+cj07t/F+TfU5DzpK4jTx/97s4M8="},"flags/1x1/ch-7c3dec465228981c57a90a3a7b3a6c42dd3e699230663e770b55008ce6d14208.svg":{"logical_path":"flags/1x1/ch.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"7c3dec465228981c57a90a3a7b3a6c42dd3e699230663e770b55008ce6d14208","integrity":"sha256-fD3sRlIomBxXqQo6ezpsQt0+aZIwZj53C1UAjObRQgg="},"flags/4x3/ci-3e076d13c9524149508c442f8f727424660124e3591280d8ae9bddf9d8272a1e.svg":{"logical_path":"flags/4x3/ci.svg","mtime":"2020-02-08T21:52:35+01:00","size":283,"digest":"3e076d13c9524149508c442f8f727424660124e3591280d8ae9bddf9d8272a1e","integrity":"sha256-PgdtE8lSQUlQjEQvj3J0JGYBJONZEoDYrpvd+dgnKh4="},"flags/1x1/ci-691a0a8577b7d555fc90dc7170adc9ec7571191cb3507c46c0e8516fd1778a91.svg":{"logical_path":"flags/1x1/ci.svg","mtime":"2020-02-08T21:52:35+01:00","size":286,"digest":"691a0a8577b7d555fc90dc7170adc9ec7571191cb3507c46c0e8516fd1778a91","integrity":"sha256-aRoKhXe31VX8kNxxcK3J7HVxGRyzUHxGwOhRb9F3ipE="},"flags/4x3/ck-9cff098e505afde9bf5166cb7b0c409178575633b913ce08c1c700d08c477db6.svg":{"logical_path":"flags/4x3/ck.svg","mtime":"2020-02-08T21:52:35+01:00","size":1887,"digest":"9cff098e505afde9bf5166cb7b0c409178575633b913ce08c1c700d08c477db6","integrity":"sha256-nP8JjlBa/em/UWbLewxAkXhXVjO5E84IwccA0IxHfbY="},"flags/1x1/ck-9c8dffa3bd5953d8a121780831f25b58738e67f3be71961894c56dfd25848c88.svg":{"logical_path":"flags/1x1/ck.svg","mtime":"2020-02-08T21:52:35+01:00","size":1846,"digest":"9c8dffa3bd5953d8a121780831f25b58738e67f3be71961894c56dfd25848c88","integrity":"sha256-nI3/o71ZU9ihIXgIMfJbWHOOZ/O+cZYYlMVt/SWEjIg="},"flags/4x3/cl-a4c57ec2bb9adcb67e1850256e5165227b764187d6941a38d95d0def5144699b.svg":{"logical_path":"flags/4x3/cl.svg","mtime":"2020-02-08T21:52:35+01:00","size":560,"digest":"a4c57ec2bb9adcb67e1850256e5165227b764187d6941a38d95d0def5144699b","integrity":"sha256-pMV+wrua3LZ+GFAlblFlInt2QYfWlBo42V0N71FEaZs="},"flags/1x1/cl-5a3e95cf63358e3911c97404818c2cddfd46414d8445e47d6976ee166c48926c.svg":{"logical_path":"flags/1x1/cl.svg","mtime":"2020-02-08T21:52:35+01:00","size":577,"digest":"5a3e95cf63358e3911c97404818c2cddfd46414d8445e47d6976ee166c48926c","integrity":"sha256-Wj6Vz2M1jjkRyXQEgYws3f1GQU2EReR9aXbuFmxIkmw="},"flags/4x3/cm-5dce9f36d92a61bdc0c482141bdb4f55bfcec0a2ecc745db643a7953e2e5a722.svg":{"logical_path":"flags/4x3/cm.svg","mtime":"2020-02-08T21:52:35+01:00","size":827,"digest":"5dce9f36d92a61bdc0c482141bdb4f55bfcec0a2ecc745db643a7953e2e5a722","integrity":"sha256-Xc6fNtkqYb3AxIIUG9tPVb/OwKLsx0XbZDp5U+LlpyI="},"flags/1x1/cm-d8d21f54c44df5df9edef227691384a4ad37c15ff57c8aa0dead684d19eac8cd.svg":{"logical_path":"flags/1x1/cm.svg","mtime":"2020-02-08T21:52:35+01:00","size":827,"digest":"d8d21f54c44df5df9edef227691384a4ad37c15ff57c8aa0dead684d19eac8cd","integrity":"sha256-2NIfVMRN9d+e3vInaROEpK03wV/1fIqg3q1oTRnqyM0="},"flags/4x3/cn-48ce1c2837bb806a6aaf8b7a9878b6d040c0d069a0ffca9a8a49e7a31aa30e7f.svg":{"logical_path":"flags/4x3/cn.svg","mtime":"2020-02-08T21:52:35+01:00","size":804,"digest":"48ce1c2837bb806a6aaf8b7a9878b6d040c0d069a0ffca9a8a49e7a31aa30e7f","integrity":"sha256-SM4cKDe7gGpqr4t6mHi20EDA0Gmg/8qaiknnoxqjDn8="},"flags/1x1/cn-e6be64c6c4a976e64d39bfe8a6ae4a5b1d38a6aa1b138ddcacf34a942dff50bc.svg":{"logical_path":"flags/1x1/cn.svg","mtime":"2020-02-08T21:52:35+01:00","size":746,"digest":"e6be64c6c4a976e64d39bfe8a6ae4a5b1d38a6aa1b138ddcacf34a942dff50bc","integrity":"sha256-5r5kxsSpduZNOb/opq5KWx04pqobE43crPNKlC3/ULw="},"flags/4x3/co-648d3ff596a0ecf3e85ac17c53abe1d7ca4759688e10a7a3a8b56f096ba6b6f7.svg":{"logical_path":"flags/4x3/co.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"648d3ff596a0ecf3e85ac17c53abe1d7ca4759688e10a7a3a8b56f096ba6b6f7","integrity":"sha256-ZI0/9Zag7PPoWsF8U6vh18pHWWiOEKejqLVvCWumtvc="},"flags/1x1/co-d3c16180c6bce630f762aff789104d10e9dbc949e740535a61396cd0ec34c1a1.svg":{"logical_path":"flags/1x1/co.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"d3c16180c6bce630f762aff789104d10e9dbc949e740535a61396cd0ec34c1a1","integrity":"sha256-08FhgMa85jD3Yq/3iRBNEOnbyUnnQFNaYTls0Ow0waE="},"flags/4x3/cr-84aec60f19bd33e1ac1a209155fec8d372e17cb59dc1346bb9124e5cc867375d.svg":{"logical_path":"flags/4x3/cr.svg","mtime":"2020-02-08T21:52:35+01:00","size":296,"digest":"84aec60f19bd33e1ac1a209155fec8d372e17cb59dc1346bb9124e5cc867375d","integrity":"sha256-hK7GDxm9M+GsGiCRVf7I03LhfLWdwTRruRJOXMhnN10="},"flags/1x1/cr-5371cf8bc5ad1a805155c1b3065e420a0a418c8d63b472bc545890289a365b35.svg":{"logical_path":"flags/1x1/cr.svg","mtime":"2020-02-08T21:52:35+01:00","size":296,"digest":"5371cf8bc5ad1a805155c1b3065e420a0a418c8d63b472bc545890289a365b35","integrity":"sha256-U3HPi8WtGoBRVcGzBl5CCgpBjI1jtHK8VFiQKJo2WzU="},"flags/4x3/cu-bb3f857e02aeab606120d9f164283f07a44b227f12aad7d6d344c7579f7b3ff0.svg":{"logical_path":"flags/4x3/cu.svg","mtime":"2020-02-08T21:52:35+01:00","size":619,"digest":"bb3f857e02aeab606120d9f164283f07a44b227f12aad7d6d344c7579f7b3ff0","integrity":"sha256-uz+FfgKuq2BhINnxZCg/B6RLIn8SqtfW00THV597P/A="},"flags/1x1/cu-02c0054169b874a8d231de1f45b2d0884de48848157734e0ddcd0f684c05c18d.svg":{"logical_path":"flags/1x1/cu.svg","mtime":"2020-02-08T21:52:35+01:00","size":576,"digest":"02c0054169b874a8d231de1f45b2d0884de48848157734e0ddcd0f684c05c18d","integrity":"sha256-AsAFQWm4dKjSMd4fRbLQiE3kiEgVdzTg3c0PaEwFwY0="},"flags/4x3/cv-90ee90ab59713454a218d8c300c71139e62655de80bfbea81df93142a529b81f.svg":{"logical_path":"flags/4x3/cv.svg","mtime":"2020-02-08T21:52:35+01:00","size":1414,"digest":"90ee90ab59713454a218d8c300c71139e62655de80bfbea81df93142a529b81f","integrity":"sha256-kO6Qq1lxNFSiGNjDAMcROeYmVd6Av76oHfkxQqUpuB8="},"flags/1x1/cv-2cf3eede97a468d28459ccc2271c28bb5b6029af2388b0301f6203be55e49308.svg":{"logical_path":"flags/1x1/cv.svg","mtime":"2020-02-08T21:52:35+01:00","size":1362,"digest":"2cf3eede97a468d28459ccc2271c28bb5b6029af2388b0301f6203be55e49308","integrity":"sha256-LPPu3pekaNKEWczCJxwou1tgKa8jiLAwH2IDvlXkkwg="},"flags/4x3/cw-d46beb7b10b40fa82cfd40eb86a3b3879f59f5da2a2f5ef91d121ab9b16c0aad.svg":{"logical_path":"flags/4x3/cw.svg","mtime":"2020-02-08T21:52:35+01:00","size":678,"digest":"d46beb7b10b40fa82cfd40eb86a3b3879f59f5da2a2f5ef91d121ab9b16c0aad","integrity":"sha256-1GvrexC0D6gs/UDrhqOzh59Z9doqL175HRIaubFsCq0="},"flags/1x1/cw-ba78c834e61b24a8a2b6bc7c80ab9f14e42c3c69415941ddb7c8c1f652ccd8b5.svg":{"logical_path":"flags/1x1/cw.svg","mtime":"2020-02-08T21:52:35+01:00","size":685,"digest":"ba78c834e61b24a8a2b6bc7c80ab9f14e42c3c69415941ddb7c8c1f652ccd8b5","integrity":"sha256-unjINOYbJKiitrx8gKufFOQsPGlBWUHdt8jB9lLM2LU="},"flags/4x3/cx-28187fb9d91bedc6f239b107d26eb6ec1cc2a0c7730810306c5a6b313c14f2b2.svg":{"logical_path":"flags/4x3/cx.svg","mtime":"2020-02-08T21:52:35+01:00","size":2469,"digest":"28187fb9d91bedc6f239b107d26eb6ec1cc2a0c7730810306c5a6b313c14f2b2","integrity":"sha256-KBh/udkb7cbyObEH0m627BzCoMdzCBAwbFprMTwU8rI="},"flags/1x1/cx-8ebe073d997f93d092a493300ea1d234c91aef80c6e8f431e88aa7f8e724f9a6.svg":{"logical_path":"flags/1x1/cx.svg","mtime":"2020-02-08T21:52:35+01:00","size":2508,"digest":"8ebe073d997f93d092a493300ea1d234c91aef80c6e8f431e88aa7f8e724f9a6","integrity":"sha256-jr4HPZl/k9CSpJMwDqHSNMka74DG6PQx6Iqn+Ock+aY="},"flags/4x3/cy-8d633ecabc7968bb8a869c62545f122aacbbc3e108c25ceb421bb8bc8734b9be.svg":{"logical_path":"flags/4x3/cy.svg","mtime":"2020-02-08T21:52:35+01:00","size":5949,"digest":"8d633ecabc7968bb8a869c62545f122aacbbc3e108c25ceb421bb8bc8734b9be","integrity":"sha256-jWM+yrx5aLuKhpxiVF8SKqy7w+EIwlzrQhu4vIc0ub4="},"flags/1x1/cy-6ef37fdd7518f18727bec1ed9741bb4d1f854dde7ef1a7e9fd2f4ba6291a7790.svg":{"logical_path":"flags/1x1/cy.svg","mtime":"2020-02-08T21:52:35+01:00","size":6053,"digest":"6ef37fdd7518f18727bec1ed9741bb4d1f854dde7ef1a7e9fd2f4ba6291a7790","integrity":"sha256-bvN/3XUY8YcnvsHtl0G7TR+FTd5+8afp/S9Lpikad5A="},"flags/4x3/cz-6c94e3d53fc1ae5982d8eb058b76d86f07d3fb4cd325698fea3291fa35504c56.svg":{"logical_path":"flags/4x3/cz.svg","mtime":"2020-02-08T21:52:35+01:00","size":481,"digest":"6c94e3d53fc1ae5982d8eb058b76d86f07d3fb4cd325698fea3291fa35504c56","integrity":"sha256-bJTj1T/BrlmC2OsFi3bYbwfT+0zTJWmP6jKR+jVQTFY="},"flags/1x1/cz-af9898ebd32559cdbea2fd17b351e5eedafccada6fbc6a2b7952cad78369817e.svg":{"logical_path":"flags/1x1/cz.svg","mtime":"2020-02-08T21:52:35+01:00","size":483,"digest":"af9898ebd32559cdbea2fd17b351e5eedafccada6fbc6a2b7952cad78369817e","integrity":"sha256-r5iY69MlWc2+ov0Xs1Hl7tr8ytpvvGoreVLK14NpgX4="},"flags/4x3/de-e7323083675d25107c85f0cea6534bd21d21e77e6d524d92e1b2d0a4e21117a1.svg":{"logical_path":"flags/4x3/de.svg","mtime":"2020-02-08T21:52:35+01:00","size":216,"digest":"e7323083675d25107c85f0cea6534bd21d21e77e6d524d92e1b2d0a4e21117a1","integrity":"sha256-5zIwg2ddJRB8hfDOplNL0h0h535tUk2S4bLQpOIRF6E="},"flags/1x1/de-fdb60146952d3b2d104310b28882a0ecde44d808240c3bab2cd6c302a538b266.svg":{"logical_path":"flags/1x1/de.svg","mtime":"2020-02-08T21:52:35+01:00","size":224,"digest":"fdb60146952d3b2d104310b28882a0ecde44d808240c3bab2cd6c302a538b266","integrity":"sha256-/bYBRpUtOy0QQxCyiIKg7N5E2AgkDDurLNbDAqU4smY="},"flags/4x3/dj-546da4a0dae9b1ab74dc6ac6076d0c706f37ef2a0d799342dd0345e11f770f03.svg":{"logical_path":"flags/4x3/dj.svg","mtime":"2020-02-08T21:52:35+01:00","size":588,"digest":"546da4a0dae9b1ab74dc6ac6076d0c706f37ef2a0d799342dd0345e11f770f03","integrity":"sha256-VG2koNrpsat03GrGB20McG837yoNeZNC3QNF4R93DwM="},"flags/1x1/dj-c0481b667f003d9d5a3c93861023a97a98224227ac19aa7e07b5b6edd35fe900.svg":{"logical_path":"flags/1x1/dj.svg","mtime":"2020-02-08T21:52:35+01:00","size":588,"digest":"c0481b667f003d9d5a3c93861023a97a98224227ac19aa7e07b5b6edd35fe900","integrity":"sha256-wEgbZn8APZ1aPJOGECOpepgiQiesGap+B7W27dNf6QA="},"flags/4x3/dk-a13735c0337ab4679cd8679508bf5e8067637ab611ca5c54172c621d740420e5.svg":{"logical_path":"flags/4x3/dk.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"a13735c0337ab4679cd8679508bf5e8067637ab611ca5c54172c621d740420e5","integrity":"sha256-oTc1wDN6tGec2GeVCL9egGdjerYRylxUFyxiHXQEIOU="},"flags/1x1/dk-822a3b8b6948f49aa81fe7620bd173453d9a45406a9680f24bad7e714e58cb7c.svg":{"logical_path":"flags/1x1/dk.svg","mtime":"2020-02-08T21:52:35+01:00","size":238,"digest":"822a3b8b6948f49aa81fe7620bd173453d9a45406a9680f24bad7e714e58cb7c","integrity":"sha256-gio7i2lI9JqoH+diC9FzRT2aRUBqloDyS61+cU5Yy3w="},"flags/4x3/dm-7713fabd3cf341694b4c1ef5d1379820773722b61c190234ac7416f2872e3940.svg":{"logical_path":"flags/4x3/dm.svg","mtime":"2020-02-08T21:52:35+01:00","size":16026,"digest":"7713fabd3cf341694b4c1ef5d1379820773722b61c190234ac7416f2872e3940","integrity":"sha256-dxP6vTzzQWlLTB710TeYIHc3IrYcGQI0rHQW8ocuOUA="},"flags/1x1/dm-33d984fc9897bb2a3bd16c6672b876effc1a8adc0c57ad122a16db54061e4e46.svg":{"logical_path":"flags/1x1/dm.svg","mtime":"2020-02-08T21:52:35+01:00","size":16514,"digest":"33d984fc9897bb2a3bd16c6672b876effc1a8adc0c57ad122a16db54061e4e46","integrity":"sha256-M9mE/JiXuyo70Wxmcrh27/waitwMV60SKhbbVAYeTkY="},"flags/4x3/do-714b6f307ea3a9c3d30348684b8574e8b7f5078f51649dfa97ae2a69a7108b4a.svg":{"logical_path":"flags/4x3/do.svg","mtime":"2020-02-08T21:52:35+01:00","size":394146,"digest":"714b6f307ea3a9c3d30348684b8574e8b7f5078f51649dfa97ae2a69a7108b4a","integrity":"sha256-cUtvMH6jqcPTA0hoS4V06Lf1B49RZJ36l64qaacQi0o="},"flags/1x1/do-d37306c4b346f89ea14739144374caad69652be31e8ce8e2504c9a0d422a4857.svg":{"logical_path":"flags/1x1/do.svg","mtime":"2020-02-08T21:52:35+01:00","size":391714,"digest":"d37306c4b346f89ea14739144374caad69652be31e8ce8e2504c9a0d422a4857","integrity":"sha256-03MGxLNG+J6hRzkUQ3TKrWllK+MejOjiUEyaDUIqSFc="},"flags/4x3/dz-a96e943c830558fe9823044aac2bfb3f6a4caf3bd3c57943352280a7f6b68cb1.svg":{"logical_path":"flags/4x3/dz.svg","mtime":"2020-02-08T21:52:35+01:00","size":301,"digest":"a96e943c830558fe9823044aac2bfb3f6a4caf3bd3c57943352280a7f6b68cb1","integrity":"sha256-qW6UPIMFWP6YIwRKrCv7P2pMrzvTxXlDNSKAp/a2jLE="},"flags/1x1/dz-09400d3b2c58e641a1641a687b81476761d05f9d0ff65861aeaa33c7f508cda4.svg":{"logical_path":"flags/1x1/dz.svg","mtime":"2020-02-08T21:52:35+01:00","size":312,"digest":"09400d3b2c58e641a1641a687b81476761d05f9d0ff65861aeaa33c7f508cda4","integrity":"sha256-CUANOyxY5kGhZBpoe4FHZ2HQX50P9lhhrqozx/UIzaQ="},"flags/4x3/ec-6762ba85ea0f7bb289b0aa6219c797e5243103d281b1462c61b61030fa329d5e.svg":{"logical_path":"flags/4x3/ec.svg","mtime":"2020-02-08T21:52:35+01:00","size":29417,"digest":"6762ba85ea0f7bb289b0aa6219c797e5243103d281b1462c61b61030fa329d5e","integrity":"sha256-Z2K6heoPe7KJsKpiGceX5SQxA9KBsUYsYbYQMPoynV4="},"flags/1x1/ec-7410a75a013738fbb8cbd756d967380e02ae54ca74e9ef9a41c4b583c2c2794f.svg":{"logical_path":"flags/1x1/ec.svg","mtime":"2020-02-08T21:52:35+01:00","size":29972,"digest":"7410a75a013738fbb8cbd756d967380e02ae54ca74e9ef9a41c4b583c2c2794f","integrity":"sha256-dBCnWgE3OPu4y9dW2Wc4DgKuVMp06e+aQcS1g8LCeU8="},"flags/4x3/ee-ce3b622214bd9eefb43373cae2811ea8cf6ef6a16bb6afbaa5bcaaea34024da0.svg":{"logical_path":"flags/4x3/ee.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"ce3b622214bd9eefb43373cae2811ea8cf6ef6a16bb6afbaa5bcaaea34024da0","integrity":"sha256-zjtiIhS9nu+0M3PK4oEeqM9u9qFrtq+6pbyq6jQCTaA="},"flags/1x1/ee-a207a8363b4dde44f59951501c2cb539419e92b0814b25d6448710ced52226f8.svg":{"logical_path":"flags/1x1/ee.svg","mtime":"2020-02-08T21:52:35+01:00","size":355,"digest":"a207a8363b4dde44f59951501c2cb539419e92b0814b25d6448710ced52226f8","integrity":"sha256-ogeoNjtN3kT1mVFQHCy1OUGekrCBSyXWRIcQztUiJvg="},"flags/4x3/eg-16a11fa93856ddc5fd46f8811adfc93660175724b20eaab55ff046855a352d2c.svg":{"logical_path":"flags/4x3/eg.svg","mtime":"2020-02-08T21:52:35+01:00","size":9978,"digest":"16a11fa93856ddc5fd46f8811adfc93660175724b20eaab55ff046855a352d2c","integrity":"sha256-FqEfqThW3cX9RviBGt/JNmAXVySyDqq1X/BGhVo1LSw="},"flags/1x1/eg-9f4d098c604326bbc3692f9e2f335dbc9b34bdf2706565bf448380f0a889d1e2.svg":{"logical_path":"flags/1x1/eg.svg","mtime":"2020-02-08T21:52:35+01:00","size":9992,"digest":"9f4d098c604326bbc3692f9e2f335dbc9b34bdf2706565bf448380f0a889d1e2","integrity":"sha256-n00JjGBDJrvDaS+eLzNdvJs0vfJwZWW/RIOA8KiJ0eI="},"flags/4x3/eh-9cf4a74d29c1a1afc4137deeb5b678d55c8fbdf8d181217267f3a5cce6a76a97.svg":{"logical_path":"flags/4x3/eh.svg","mtime":"2020-02-08T21:52:35+01:00","size":878,"digest":"9cf4a74d29c1a1afc4137deeb5b678d55c8fbdf8d181217267f3a5cce6a76a97","integrity":"sha256-nPSnTSnBoa/EE33utbZ41VyPvfjRgSFyZ/OlzOanapc="},"flags/1x1/eh-16c3327dbcf3483e634b3536b056324b5478212dae6d060f2ffb2ec961cd382f.svg":{"logical_path":"flags/1x1/eh.svg","mtime":"2020-02-08T21:52:35+01:00","size":828,"digest":"16c3327dbcf3483e634b3536b056324b5478212dae6d060f2ffb2ec961cd382f","integrity":"sha256-FsMyfbzzSD5jSzU2sFYyS1R4IS2ubQYPL/suyWHNOC8="},"flags/4x3/er-69a1e1e45289d1282df4b1e5ce5e712d69fbe314abd0c922353fce90814c543e.svg":{"logical_path":"flags/4x3/er.svg","mtime":"2020-02-08T21:52:35+01:00","size":3207,"digest":"69a1e1e45289d1282df4b1e5ce5e712d69fbe314abd0c922353fce90814c543e","integrity":"sha256-aaHh5FKJ0Sgt9LHlzl5xLWn74xSr0MkiNT/OkIFMVD4="},"flags/1x1/er-90d49408e58955cf1cf3185b0193e03c4a107042d47ef5e975dbbe10c6ef7f4a.svg":{"logical_path":"flags/1x1/er.svg","mtime":"2020-02-08T21:52:35+01:00","size":3395,"digest":"90d49408e58955cf1cf3185b0193e03c4a107042d47ef5e975dbbe10c6ef7f4a","integrity":"sha256-kNSUCOWJVc8c8xhbAZPgPEoQcELUfvXpddu+EMbvf0o="},"flags/4x3/es-50e59681c6b6412498bd9cbfc473abedc713db75c54c538b839db3c394d64499.svg":{"logical_path":"flags/4x3/es.svg","mtime":"2020-02-08T21:52:35+01:00","size":92574,"digest":"50e59681c6b6412498bd9cbfc473abedc713db75c54c538b839db3c394d64499","integrity":"sha256-UOWWgca2QSSYvZy/xHOr7ccT23XFTFOLg52zw5TWRJk="},"flags/1x1/es-29c68fa3c9c8c2adacdc2eb0162e9c2fa998faa408836900ec6285000476800d.svg":{"logical_path":"flags/1x1/es.svg","mtime":"2020-02-08T21:52:35+01:00","size":94269,"digest":"29c68fa3c9c8c2adacdc2eb0162e9c2fa998faa408836900ec6285000476800d","integrity":"sha256-KcaPo8nIwq2s3C6wFi6cL6mY+qQIg2kA7GKFAAR2gA0="},"flags/4x3/et-14263ba7ea890fd0a4d89a2791343ecb7acc89aab1fc2593e00a6093b22251df.svg":{"logical_path":"flags/4x3/et.svg","mtime":"2020-02-08T21:52:35+01:00","size":1243,"digest":"14263ba7ea890fd0a4d89a2791343ecb7acc89aab1fc2593e00a6093b22251df","integrity":"sha256-FCY7p+qJD9Ck2JonkTQ+y3rMiaqx/CWT4Apgk7IiUd8="},"flags/1x1/et-086eefb70e9adad537cc1c640a72cc0fa843ec7a9b06b2778aa98b2db055bfe6.svg":{"logical_path":"flags/1x1/et.svg","mtime":"2020-02-08T21:52:35+01:00","size":1242,"digest":"086eefb70e9adad537cc1c640a72cc0fa843ec7a9b06b2778aa98b2db055bfe6","integrity":"sha256-CG7vtw6a2tU3zBxkCnLMD6hD7HqbBrJ3iqmLLbBVv+Y="},"flags/4x3/fi-a4c41caa02a4f6803ea0d6c36de4beebf20d150e3df742b1369a4099c2ff648e.svg":{"logical_path":"flags/4x3/fi.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"a4c41caa02a4f6803ea0d6c36de4beebf20d150e3df742b1369a4099c2ff648e","integrity":"sha256-pMQcqgKk9oA+oNbDbeS+6/INFQ4990KxNppAmcL/ZI4="},"flags/1x1/fi-c5fdf318fac5fdfc94fe54268618e58a2bc5933617ead09992900f90cc25de9a.svg":{"logical_path":"flags/1x1/fi.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"c5fdf318fac5fdfc94fe54268618e58a2bc5933617ead09992900f90cc25de9a","integrity":"sha256-xf3zGPrF/fyU/lQmhhjliivFkzYX6tCZkpAPkMwl3po="},"flags/4x3/fj-cb0cc4b3b5c202f07487ee519f48b3eadb47035f5f2d5d3f99d20f81e48d6b79.svg":{"logical_path":"flags/4x3/fj.svg","mtime":"2020-02-08T21:52:35+01:00","size":27388,"digest":"cb0cc4b3b5c202f07487ee519f48b3eadb47035f5f2d5d3f99d20f81e48d6b79","integrity":"sha256-ywzEs7XCAvB0h+5Rn0iz6ttHA19fLV0/mdIPgeSNa3k="},"flags/1x1/fj-c2c7fd536841925e7647b2d510d6a0c58700e2a8ded0e42008fb93ffacde101f.svg":{"logical_path":"flags/1x1/fj.svg","mtime":"2020-02-08T21:52:35+01:00","size":27519,"digest":"c2c7fd536841925e7647b2d510d6a0c58700e2a8ded0e42008fb93ffacde101f","integrity":"sha256-wsf9U2hBkl52R7LVENagxYcA4qje0OQgCPuT/6zeEB8="},"flags/4x3/fk-cb61eaa0d7221823f7d17de59ea88ed16b506f9585ab0c7291cf839449d82968.svg":{"logical_path":"flags/4x3/fk.svg","mtime":"2020-02-08T21:52:35+01:00","size":30453,"digest":"cb61eaa0d7221823f7d17de59ea88ed16b506f9585ab0c7291cf839449d82968","integrity":"sha256-y2HqoNciGCP30X3lnqiO0WtQb5WFqwxykc+DlEnYKWg="},"flags/1x1/fk-a871742380ae157d1211a63cc35cd3621b1bf6de6d67e4a8e3565ad200b1d8cf.svg":{"logical_path":"flags/1x1/fk.svg","mtime":"2020-02-08T21:52:35+01:00","size":30648,"digest":"a871742380ae157d1211a63cc35cd3621b1bf6de6d67e4a8e3565ad200b1d8cf","integrity":"sha256-qHF0I4CuFX0SEaY8w1zTYhsb9t5tZ+So41Za0gCx2M8="},"flags/4x3/fm-079b937562a9a412aae8fb762b571ddb49bf23627943c97247b6a9bbdb768153.svg":{"logical_path":"flags/4x3/fm.svg","mtime":"2020-02-08T21:52:35+01:00","size":773,"digest":"079b937562a9a412aae8fb762b571ddb49bf23627943c97247b6a9bbdb768153","integrity":"sha256-B5uTdWKppBKq6Pt2K1cd20m/I2J5Q8lyR7apu9t2gVM="},"flags/1x1/fm-dbec73633ecd8a6c50f56d54df36bbe6a2f8fb534ac7658477c82cad14a806a8.svg":{"logical_path":"flags/1x1/fm.svg","mtime":"2020-02-08T21:52:35+01:00","size":763,"digest":"dbec73633ecd8a6c50f56d54df36bbe6a2f8fb534ac7658477c82cad14a806a8","integrity":"sha256-2+xzYz7NimxQ9W1U3za75qL4+1NKx2WEd8gsrRSoBqg="},"flags/4x3/fo-27279c2481bb1cb3e44850a948987d6a8411acffa770c3aecd1b76d4c5853413.svg":{"logical_path":"flags/4x3/fo.svg","mtime":"2020-02-08T21:52:35+01:00","size":567,"digest":"27279c2481bb1cb3e44850a948987d6a8411acffa770c3aecd1b76d4c5853413","integrity":"sha256-JyecJIG7HLPkSFCpSJh9aoQRrP+ncMOuzRt21MWFNBM="},"flags/1x1/fo-7cb4fdbba1c7223702d843cb0709ddc799f89f909dfe101e3e36d6bf36c3e67f.svg":{"logical_path":"flags/1x1/fo.svg","mtime":"2020-02-08T21:52:35+01:00","size":537,"digest":"7cb4fdbba1c7223702d843cb0709ddc799f89f909dfe101e3e36d6bf36c3e67f","integrity":"sha256-fLT9u6HHIjcC2EPLBwndx5n4n5Cd/hAePjbWvzbD5n8="},"flags/4x3/fr-30ed2f68dc9a17927643640f48f3d2a858bd041770547035349c6e79713cd84e.svg":{"logical_path":"flags/4x3/fr.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"30ed2f68dc9a17927643640f48f3d2a858bd041770547035349c6e79713cd84e","integrity":"sha256-MO0vaNyaF5J2Q2QPSPPSqFi9BBdwVHA1NJxueXE82E4="},"flags/1x1/fr-6b849151204c66fa661c30b34e62919a13b9e66b7cd37a4fc8962e8e0baf9bdc.svg":{"logical_path":"flags/1x1/fr.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"6b849151204c66fa661c30b34e62919a13b9e66b7cd37a4fc8962e8e0baf9bdc","integrity":"sha256-a4SRUSBMZvpmHDCzTmKRmhO55mt803pPyJYujguvm9w="},"flags/4x3/ga-e3840f9d5bd6ee08db748d37a534500b837bee0f8ce65987b2f099a6afd2cc63.svg":{"logical_path":"flags/4x3/ga.svg","mtime":"2020-02-08T21:52:35+01:00","size":277,"digest":"e3840f9d5bd6ee08db748d37a534500b837bee0f8ce65987b2f099a6afd2cc63","integrity":"sha256-44QPnVvW7gjbdI03pTRQC4N77g+M5lmHsvCZpq/SzGM="},"flags/1x1/ga-9eafd5388042b3d2258ac6223075b726426210136b9851b637973105721b64d9.svg":{"logical_path":"flags/1x1/ga.svg","mtime":"2020-02-08T21:52:35+01:00","size":281,"digest":"9eafd5388042b3d2258ac6223075b726426210136b9851b637973105721b64d9","integrity":"sha256-nq/VOIBCs9IlisYiMHW3JkJiEBNrmFG2N5cxBXIbZNk="},"flags/4x3/gb-ce93c8a6b974d63998e263f6d25f898fc20580a28464457f2f4463b687e4fe8d.svg":{"logical_path":"flags/4x3/gb.svg","mtime":"2020-02-08T21:52:35+01:00","size":834,"digest":"ce93c8a6b974d63998e263f6d25f898fc20580a28464457f2f4463b687e4fe8d","integrity":"sha256-zpPIprl01jmY4mP20l+Jj8IFgKKEZEV/L0Rjtofk/o0="},"flags/1x1/gb-1d93e1ce2e2e10c1709e4dc50ac956c007b2c1a63a4bc22ddfd64354f79ad457.svg":{"logical_path":"flags/1x1/gb.svg","mtime":"2020-02-08T21:52:35+01:00","size":792,"digest":"1d93e1ce2e2e10c1709e4dc50ac956c007b2c1a63a4bc22ddfd64354f79ad457","integrity":"sha256-HZPhzi4uEMFwnk3FCslWwAeywaY6S8It39ZDVPea1Fc="},"flags/4x3/gd-7c3a6b6068bbd9a6abc98c2297dd4acd5e31022e5a4210fc0e1205ec28498fa2.svg":{"logical_path":"flags/4x3/gd.svg","mtime":"2020-02-08T21:52:35+01:00","size":1694,"digest":"7c3a6b6068bbd9a6abc98c2297dd4acd5e31022e5a4210fc0e1205ec28498fa2","integrity":"sha256-fDprYGi72aaryYwil91KzV4xAi5aQhD8DhIF7ChJj6I="},"flags/1x1/gd-2310bc03d9e8ddc8599b40891bfb10b812b07023881599a7e02e3028d1bc9ca8.svg":{"logical_path":"flags/1x1/gd.svg","mtime":"2020-02-08T21:52:35+01:00","size":1834,"digest":"2310bc03d9e8ddc8599b40891bfb10b812b07023881599a7e02e3028d1bc9ca8","integrity":"sha256-IxC8A9no3chZm0CJG/sQuBKwcCOIFZmn4C4wKNG8nKg="},"flags/4x3/ge-501c0135fb8c377dbd2859ff6290b47ef4907a8e2ab2ae1e39116b716db6795f.svg":{"logical_path":"flags/4x3/ge.svg","mtime":"2020-02-08T21:52:35+01:00","size":1400,"digest":"501c0135fb8c377dbd2859ff6290b47ef4907a8e2ab2ae1e39116b716db6795f","integrity":"sha256-UBwBNfuMN329KFn/YpC0fvSQeo4qsq4eORFrcW22eV8="},"flags/1x1/ge-ca9ee36883ec12048fbb7fbbfaf231c0d4848ae0b07dab74a46d53b7b34d8114.svg":{"logical_path":"flags/1x1/ge.svg","mtime":"2020-02-08T21:52:35+01:00","size":1544,"digest":"ca9ee36883ec12048fbb7fbbfaf231c0d4848ae0b07dab74a46d53b7b34d8114","integrity":"sha256-yp7jaIPsEgSPu3+7+vIxwNSEiuCwfat0pG1Tt7NNgRQ="},"flags/4x3/gf-7c165f90bfe6ac3674903632182221a992f017ff706354b1761002382e89c2c2.svg":{"logical_path":"flags/4x3/gf.svg","mtime":"2020-02-08T21:52:35+01:00","size":261,"digest":"7c165f90bfe6ac3674903632182221a992f017ff706354b1761002382e89c2c2","integrity":"sha256-fBZfkL/mrDZ0kDYyGCIhqZLwF/9wY1SxdhACOC6JwsI="},"flags/1x1/gf-8838337b15cdcf143fac16c714e8dbf2d893d2ea8f1c8ef06dadcb652dfec41c.svg":{"logical_path":"flags/1x1/gf.svg","mtime":"2020-02-08T21:52:35+01:00","size":264,"digest":"8838337b15cdcf143fac16c714e8dbf2d893d2ea8f1c8ef06dadcb652dfec41c","integrity":"sha256-iDgzexXNzxQ/rBbHFOjb8tiT0uqPHI7wba3LZS3+xBw="},"flags/4x3/gg-2c7bfc50d5bcd374b5f6107974d06af24e70edba31ad71a225e0c2ecc2d6e778.svg":{"logical_path":"flags/4x3/gg.svg","mtime":"2020-02-08T21:52:35+01:00","size":598,"digest":"2c7bfc50d5bcd374b5f6107974d06af24e70edba31ad71a225e0c2ecc2d6e778","integrity":"sha256-LHv8UNW803S19hB5dNBq8k5w7boxrXGiJeDC7MLW53g="},"flags/1x1/gg-509489b1792831bb27d6975c76aa0a2ac2fa2c3906bcf844f616de5e0fbbc359.svg":{"logical_path":"flags/1x1/gg.svg","mtime":"2020-02-08T21:52:35+01:00","size":628,"digest":"509489b1792831bb27d6975c76aa0a2ac2fa2c3906bcf844f616de5e0fbbc359","integrity":"sha256-UJSJsXkoMbsn1pdcdqoKKsL6LDkGvPhE9hbeXg+7w1k="},"flags/4x3/gh-79c187756e93df22fae571ad9419629c5247c016e32a74471e0d461048fdf5cf.svg":{"logical_path":"flags/4x3/gh.svg","mtime":"2020-02-08T21:52:35+01:00","size":286,"digest":"79c187756e93df22fae571ad9419629c5247c016e32a74471e0d461048fdf5cf","integrity":"sha256-ecGHdW6T3yL65XGtlBlinFJHwBbjKnRHHg1GEEj99c8="},"flags/1x1/gh-e7bf18e6337982ee31e3673ab93e722b3410b7a4c202656a4bc3887d8656286b.svg":{"logical_path":"flags/1x1/gh.svg","mtime":"2020-02-08T21:52:35+01:00","size":299,"digest":"e7bf18e6337982ee31e3673ab93e722b3410b7a4c202656a4bc3887d8656286b","integrity":"sha256-578Y5jN5gu4x42c6uT5yKzQQt6TCAmVqS8OIfYZWKGs="},"flags/4x3/gi-ed99b369c8c77e64abd59fab1f28155d71b4378b49625c66ab0ab6dff4f88087.svg":{"logical_path":"flags/4x3/gi.svg","mtime":"2020-02-08T21:52:35+01:00","size":2972,"digest":"ed99b369c8c77e64abd59fab1f28155d71b4378b49625c66ab0ab6dff4f88087","integrity":"sha256-7ZmzacjHfmSr1Z+rHygVXXG0N4tJYlxmqwq23/T4gIc="},"flags/1x1/gi-2e563e96e766e13c0a9c5a3a372059a44739bb696e853d71a6f6b08c491dfb9a.svg":{"logical_path":"flags/1x1/gi.svg","mtime":"2020-02-08T21:52:35+01:00","size":2964,"digest":"2e563e96e766e13c0a9c5a3a372059a44739bb696e853d71a6f6b08c491dfb9a","integrity":"sha256-LlY+ludm4TwKnFo6NyBZpEc5u2luhT1xpvawjEkd+5o="},"flags/4x3/gl-612e560dbad68d540be672b80e22c54db43d6e2070523e81c156ccd6b3fc4260.svg":{"logical_path":"flags/4x3/gl.svg","mtime":"2020-02-08T21:52:35+01:00","size":229,"digest":"612e560dbad68d540be672b80e22c54db43d6e2070523e81c156ccd6b3fc4260","integrity":"sha256-YS5WDbrWjVQL5nK4DiLFTbQ9biBwUj6BwVbM1rP8QmA="},"flags/1x1/gl-a9bb35d2b9ff27638658d9ad6b9e2c4f452072b9a80b508d32e76d37bf62cf6e.svg":{"logical_path":"flags/1x1/gl.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"a9bb35d2b9ff27638658d9ad6b9e2c4f452072b9a80b508d32e76d37bf62cf6e","integrity":"sha256-qbs10rn/J2OGWNmta54sT0UgcrmoC1CNMudtN79iz24="},"flags/4x3/gm-4a6f9670a41548cceaced2b728e4bc56acbc4a3ba5544e7a097f7dae7a8bb045.svg":{"logical_path":"flags/4x3/gm.svg","mtime":"2020-02-08T21:52:35+01:00","size":543,"digest":"4a6f9670a41548cceaced2b728e4bc56acbc4a3ba5544e7a097f7dae7a8bb045","integrity":"sha256-Sm+WcKQVSMzqztK3KOS8Vqy8SjulVE56CX99rnqLsEU="},"flags/1x1/gm-b67f9f6bce2f8c8700c198de8bfafac72d01b8a1e55b77f71e8cafdc58f8af5c.svg":{"logical_path":"flags/1x1/gm.svg","mtime":"2020-02-08T21:52:35+01:00","size":385,"digest":"b67f9f6bce2f8c8700c198de8bfafac72d01b8a1e55b77f71e8cafdc58f8af5c","integrity":"sha256-tn+fa84vjIcAwZjei/r6xy0BuKHlW3f3Hoyv3Fj4r1w="},"flags/4x3/gn-873b4eb52f34c7558bef93cfd1b82117b5c32c9fbc0610f8821ccd22f28abe28.svg":{"logical_path":"flags/4x3/gn.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"873b4eb52f34c7558bef93cfd1b82117b5c32c9fbc0610f8821ccd22f28abe28","integrity":"sha256-hztOtS80x1WL75PP0bghF7XDLJ+8BhD4ghzNIvKKvig="},"flags/1x1/gn-72f51dc30cf0ed5459ad0f239cf3043eac05ece75945bcaf4ea6653af868c504.svg":{"logical_path":"flags/1x1/gn.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"72f51dc30cf0ed5459ad0f239cf3043eac05ece75945bcaf4ea6653af868c504","integrity":"sha256-cvUdwwzw7VRZrQ8jnPMEPqwF7OdZRbyvTqZlOvhoxQQ="},"flags/4x3/gp-4559cad3eb2d173214161d16b0237c68f5c817749a39c862fa7b23dfb4aee923.svg":{"logical_path":"flags/4x3/gp.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"4559cad3eb2d173214161d16b0237c68f5c817749a39c862fa7b23dfb4aee923","integrity":"sha256-RVnK0+stFzIUFh0WsCN8aPXIF3SaOchi+nsj37Su6SM="},"flags/1x1/gp-d6669532054db5b7e441f4858c28920246a65ca3e8a15518c64c7bbb4f9c6416.svg":{"logical_path":"flags/1x1/gp.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d6669532054db5b7e441f4858c28920246a65ca3e8a15518c64c7bbb4f9c6416","integrity":"sha256-1maVMgVNtbfkQfSFjCiSAkamXKPooVUYxkx7u0+cZBY="},"flags/4x3/gq-0c8dfe7f9543307056bbe6d6e44a16c17201228e5344d5afec1ccf1b9a5eb2f9.svg":{"logical_path":"flags/4x3/gq.svg","mtime":"2020-02-08T21:52:35+01:00","size":5188,"digest":"0c8dfe7f9543307056bbe6d6e44a16c17201228e5344d5afec1ccf1b9a5eb2f9","integrity":"sha256-DI3+f5VDMHBWu+bW5EoWwXIBIo5TRNWv7BzPG5pesvk="},"flags/1x1/gq-ecb761e6db59b9bf8ba37533eaf0c60b7fcc7c0dfa2fcf281ee84c970dcb10f8.svg":{"logical_path":"flags/1x1/gq.svg","mtime":"2020-02-08T21:52:35+01:00","size":5280,"digest":"ecb761e6db59b9bf8ba37533eaf0c60b7fcc7c0dfa2fcf281ee84c970dcb10f8","integrity":"sha256-7Ldh5ttZub+Lo3Uz6vDGC3/MfA36L88oHuhMlw3LEPg="},"flags/4x3/gr-4a4086310397bffa682d439be8650a9e28d94e32963b6411b61435292ac4cf80.svg":{"logical_path":"flags/4x3/gr.svg","mtime":"2020-02-08T21:52:35+01:00","size":818,"digest":"4a4086310397bffa682d439be8650a9e28d94e32963b6411b61435292ac4cf80","integrity":"sha256-SkCGMQOXv/poLUOb6GUKnijZTjKWO2QRthQ1KSrEz4A="},"flags/1x1/gr-0cbd171892c0568b055d3b6585d58ac13dd60dfbcfad16eda1f4f9ead11dd16f.svg":{"logical_path":"flags/1x1/gr.svg","mtime":"2020-02-08T21:52:35+01:00","size":875,"digest":"0cbd171892c0568b055d3b6585d58ac13dd60dfbcfad16eda1f4f9ead11dd16f","integrity":"sha256-DL0XGJLAVosFXTtlhdWKwT3WDfvPrRbtofT56tEd0W8="},"flags/4x3/gs-e45169a93a9e94c15f5cb765a6c863319171fb9b4dce56094411829cd688d486.svg":{"logical_path":"flags/4x3/gs.svg","mtime":"2020-02-08T21:52:35+01:00","size":34658,"digest":"e45169a93a9e94c15f5cb765a6c863319171fb9b4dce56094411829cd688d486","integrity":"sha256-5FFpqTqelMFfXLdlpshjMZFx+5tNzlYJRBGCnNaI1IY="},"flags/1x1/gs-3efc9e1b32961f9aa9d7faa2626e596282b63d049f6717c2378b28e3f508e79a.svg":{"logical_path":"flags/1x1/gs.svg","mtime":"2020-02-08T21:52:35+01:00","size":35151,"digest":"3efc9e1b32961f9aa9d7faa2626e596282b63d049f6717c2378b28e3f508e79a","integrity":"sha256-PvyeGzKWH5qp1/qiYm5ZYoK2PQSfZxfCN4so4/UI55o="},"flags/4x3/gt-64a7345cf66facf7f323d2142aebb4172191108a78ac7493b1a6077b78ac8ec5.svg":{"logical_path":"flags/4x3/gt.svg","mtime":"2020-02-08T21:52:35+01:00","size":37857,"digest":"64a7345cf66facf7f323d2142aebb4172191108a78ac7493b1a6077b78ac8ec5","integrity":"sha256-ZKc0XPZvrPfzI9IUKuu0FyGREIp4rHSTsaYHe3isjsU="},"flags/1x1/gt-436a2af3d95cf3cb13ded897f319cfd6e2c087d678ad0e971c198b0d2c029911.svg":{"logical_path":"flags/1x1/gt.svg","mtime":"2020-02-08T21:52:35+01:00","size":37857,"digest":"436a2af3d95cf3cb13ded897f319cfd6e2c087d678ad0e971c198b0d2c029911","integrity":"sha256-Q2oq89lc88sT3tiX8xnP1uLAh9Z4rQ6XHBmLDSwCmRE="},"flags/4x3/gu-f560822ee237e5277829e63613a615a2ee3d8cc6196dffffe0f0d56a49b11c53.svg":{"logical_path":"flags/4x3/gu.svg","mtime":"2020-02-08T21:52:35+01:00","size":4859,"digest":"f560822ee237e5277829e63613a615a2ee3d8cc6196dffffe0f0d56a49b11c53","integrity":"sha256-9WCCLuI35Sd4KeY2E6YVou49jMYZbf//4PDVakmxHFM="},"flags/1x1/gu-a71c9d290c66c1a0929b05436dc6a8229b1147d7cc62336e04c9adf697030450.svg":{"logical_path":"flags/1x1/gu.svg","mtime":"2020-02-08T21:52:35+01:00","size":4644,"digest":"a71c9d290c66c1a0929b05436dc6a8229b1147d7cc62336e04c9adf697030450","integrity":"sha256-pxydKQxmwaCSmwVDbcaoIpsRR9fMYjNuBMmt9pcDBFA="},"flags/4x3/gw-0dc9ec17735ed605b68672947ce55c49a4ec1551491ccd121f482c1875cdf219.svg":{"logical_path":"flags/4x3/gw.svg","mtime":"2020-02-08T21:52:35+01:00","size":816,"digest":"0dc9ec17735ed605b68672947ce55c49a4ec1551491ccd121f482c1875cdf219","integrity":"sha256-DcnsF3Ne1gW2hnKUfOVcSaTsFVFJHM0SH0gsGHXN8hk="},"flags/1x1/gw-7868c305e4a64b0d8ebfd3f7cb8c881841d71a7e0c3ead2683fe503c80de0674.svg":{"logical_path":"flags/1x1/gw.svg","mtime":"2020-02-08T21:52:35+01:00","size":892,"digest":"7868c305e4a64b0d8ebfd3f7cb8c881841d71a7e0c3ead2683fe503c80de0674","integrity":"sha256-eGjDBeSmSw2Ov9P3y4yIGEHXGn4MPq0mg/5QPIDeBnQ="},"flags/4x3/gy-c9126e544c62508abfb898f0af0bd79c46f4c767c9ed6f928418a24b0f246d85.svg":{"logical_path":"flags/4x3/gy.svg","mtime":"2020-02-08T21:52:35+01:00","size":491,"digest":"c9126e544c62508abfb898f0af0bd79c46f4c767c9ed6f928418a24b0f246d85","integrity":"sha256-yRJuVExiUIq/uJjwrwvXnEb0x2fJ7W+ShBiiSw8kbYU="},"flags/1x1/gy-0e3b849ce460f8ab1ec7cf66a25be1ba91e89b72d8b0aa679a0553464f37a972.svg":{"logical_path":"flags/1x1/gy.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"0e3b849ce460f8ab1ec7cf66a25be1ba91e89b72d8b0aa679a0553464f37a972","integrity":"sha256-DjuEnORg+Ksex89molvhupHom3LYsKpnmgVTRk83qXI="},"flags/4x3/hk-cece9126ccbf9151feadfed75791ebf32d4a16beab12f182404519d0cc24eec7.svg":{"logical_path":"flags/4x3/hk.svg","mtime":"2020-02-08T21:52:35+01:00","size":3511,"digest":"cece9126ccbf9151feadfed75791ebf32d4a16beab12f182404519d0cc24eec7","integrity":"sha256-zs6RJsy/kVH+rf7XV5Hr8y1KFr6rEvGCQEUZ0Mwk7sc="},"flags/1x1/hk-9fad00e06f9034877149394914baa2bc3292223b0e32df2b1f9399d4de6e167d.svg":{"logical_path":"flags/1x1/hk.svg","mtime":"2020-02-08T21:52:35+01:00","size":3561,"digest":"9fad00e06f9034877149394914baa2bc3292223b0e32df2b1f9399d4de6e167d","integrity":"sha256-n60A4G+QNIdxSTlJFLqivDKSIjsOMt8rH5OZ1N5uFn0="},"flags/4x3/hm-4b4923b81da24d62ebf31a9bc0addf76beef84593374b1cbd03ba19f3b12e3e9.svg":{"logical_path":"flags/4x3/hm.svg","mtime":"2020-02-08T21:52:35+01:00","size":1328,"digest":"4b4923b81da24d62ebf31a9bc0addf76beef84593374b1cbd03ba19f3b12e3e9","integrity":"sha256-S0kjuB2iTWLr8xqbwK3fdr7vhFkzdLHL0DuhnzsS4+k="},"flags/1x1/hm-776c822113a22e83581234d05f40bfc0ed38b60648d87f513f3da3fff96ffb61.svg":{"logical_path":"flags/1x1/hm.svg","mtime":"2020-02-08T21:52:35+01:00","size":1312,"digest":"776c822113a22e83581234d05f40bfc0ed38b60648d87f513f3da3fff96ffb61","integrity":"sha256-d2yCIROiLoNYEjTQX0C/wO04tgZI2H9RPz2j//lv+2E="},"flags/4x3/hn-855c830786283862a5f399e0d69dffe52b6223b91b32e31b55d55c82f2fa32c9.svg":{"logical_path":"flags/4x3/hn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1115,"digest":"855c830786283862a5f399e0d69dffe52b6223b91b32e31b55d55c82f2fa32c9","integrity":"sha256-hVyDB4YoOGKl85ng1p3/5StiI7kbMuMbVdVcgvL6Msk="},"flags/1x1/hn-64c38bac9403417c4e276bf5536d284fc5410fc04b80acd39a961d298f430dbd.svg":{"logical_path":"flags/1x1/hn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1119,"digest":"64c38bac9403417c4e276bf5536d284fc5410fc04b80acd39a961d298f430dbd","integrity":"sha256-ZMOLrJQDQXxOJ2v1U20oT8VBD8BLgKzTmpYdKY9DDb0="},"flags/4x3/hr-c8cad861f7398a22b9d27ea682d2778df0dde8e146d30142b5294daf988854af.svg":{"logical_path":"flags/4x3/hr.svg","mtime":"2020-02-08T21:52:35+01:00","size":41617,"digest":"c8cad861f7398a22b9d27ea682d2778df0dde8e146d30142b5294daf988854af","integrity":"sha256-yMrYYfc5iiK50n6mgtJ3jfDd6OFG0wFCtSlNr5iIVK8="},"flags/1x1/hr-60c093df6760e4cc6abe26c37a52be3b51458f02712f18e11f08b07dc623b489.svg":{"logical_path":"flags/1x1/hr.svg","mtime":"2020-02-08T21:52:35+01:00","size":41808,"digest":"60c093df6760e4cc6abe26c37a52be3b51458f02712f18e11f08b07dc623b489","integrity":"sha256-YMCT32dg5MxqvibDelK+O1FFjwJxLxjhHwiwfcYjtIk="},"flags/4x3/ht-fe81da06228fa36e7f211bec0d9f0c020f5b9c7f81534b4cb2251848aa276b16.svg":{"logical_path":"flags/4x3/ht.svg","mtime":"2020-02-08T21:52:35+01:00","size":15231,"digest":"fe81da06228fa36e7f211bec0d9f0c020f5b9c7f81534b4cb2251848aa276b16","integrity":"sha256-/oHaBiKPo25/IRvsDZ8MAg9bnH+BU0tMsiUYSKonaxY="},"flags/1x1/ht-dd0197c078859c5a66ff3a51d3a3f92809768e36bfabdec0fc0ab60d068afcd9.svg":{"logical_path":"flags/1x1/ht.svg","mtime":"2020-02-08T21:52:35+01:00","size":15317,"digest":"dd0197c078859c5a66ff3a51d3a3f92809768e36bfabdec0fc0ab60d068afcd9","integrity":"sha256-3QGXwHiFnFpm/zpR06P5KAl2jja/q97A/Aq2DQaK/Nk="},"flags/4x3/hu-9aa998e636687aede491e307f3d068dbe58f2d90bfdfaec0e7ad03baa5b36344.svg":{"logical_path":"flags/4x3/hu.svg","mtime":"2020-02-08T21:52:35+01:00","size":277,"digest":"9aa998e636687aede491e307f3d068dbe58f2d90bfdfaec0e7ad03baa5b36344","integrity":"sha256-mqmY5jZoeu3kkeMH89Bo2+WPLZC/367A560DuqWzY0Q="},"flags/1x1/hu-06858d0fbd4320496e849010e35c8fe82eb618188cf6ec329aef93f5e7af1c23.svg":{"logical_path":"flags/1x1/hu.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"06858d0fbd4320496e849010e35c8fe82eb618188cf6ec329aef93f5e7af1c23","integrity":"sha256-BoWND71DIEluhJAQ41yP6C62GBiM9uwymu+T9eevHCM="},"flags/4x3/id-775dbfedd6533afdf5bd017ccc1ad4f8f4238cbe87393d9c837a669196f17293.svg":{"logical_path":"flags/4x3/id.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"775dbfedd6533afdf5bd017ccc1ad4f8f4238cbe87393d9c837a669196f17293","integrity":"sha256-d12/7dZTOv31vQF8zBrU+PQjjL6HOT2cg3pmkZbxcpM="},"flags/1x1/id-3920ce662a7ea937b2c11707d8e1f53db52611dd004edf753b0389ed490d9d29.svg":{"logical_path":"flags/1x1/id.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"3920ce662a7ea937b2c11707d8e1f53db52611dd004edf753b0389ed490d9d29","integrity":"sha256-OSDOZip+qTeywRcH2OH1PbUmEd0ATt91OwOJ7UkNnSk="},"flags/4x3/ie-6368a1c92440fcf80d3c35607543bcaa2d4662d6e0bc7acf6749ddbc418a72c0.svg":{"logical_path":"flags/4x3/ie.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"6368a1c92440fcf80d3c35607543bcaa2d4662d6e0bc7acf6749ddbc418a72c0","integrity":"sha256-Y2ihySRA/PgNPDVgdUO8qi1GYtbgvHrPZ0ndvEGKcsA="},"flags/1x1/ie-1997e9de640fa764677aa8f5d52f7888bb24a029160e8f67b06dbd043b4f11b3.svg":{"logical_path":"flags/1x1/ie.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"1997e9de640fa764677aa8f5d52f7888bb24a029160e8f67b06dbd043b4f11b3","integrity":"sha256-GZfp3mQPp2Rneqj11S94iLskoCkWDo9nsG29BDtPEbM="},"flags/4x3/il-d76883a2330f9a05a4a64990ba955fc1be90bb46bcb19ae548c21816e7e74178.svg":{"logical_path":"flags/4x3/il.svg","mtime":"2020-02-08T21:52:35+01:00","size":898,"digest":"d76883a2330f9a05a4a64990ba955fc1be90bb46bcb19ae548c21816e7e74178","integrity":"sha256-12iDojMPmgWkpkmQupVfwb6Qu0a8sZrlSMIYFufnQXg="},"flags/1x1/il-f5e643d0e10169a438119dc441ea3100b52a2ff569bbb3a3ad6d1131b47602d8.svg":{"logical_path":"flags/1x1/il.svg","mtime":"2020-02-08T21:52:35+01:00","size":851,"digest":"f5e643d0e10169a438119dc441ea3100b52a2ff569bbb3a3ad6d1131b47602d8","integrity":"sha256-9eZD0OEBaaQ4EZ3EQeoxALUqL/Vpu7OjrW0RMbR2Atg="},"flags/4x3/im-bbae8aa9dd129f8446556afe4904194ad43377d882f9a705fcf1da2bdbfabccf.svg":{"logical_path":"flags/4x3/im.svg","mtime":"2020-02-08T21:52:35+01:00","size":9948,"digest":"bbae8aa9dd129f8446556afe4904194ad43377d882f9a705fcf1da2bdbfabccf","integrity":"sha256-u66Kqd0Sn4RGVWr+SQQZStQzd9iC+acF/PHaK9v6vM8="},"flags/1x1/im-767d72c2e72d732d65c9b016adad983778dfbbb2b5b52e71830f4e41297728d3.svg":{"logical_path":"flags/1x1/im.svg","mtime":"2020-02-08T21:52:35+01:00","size":10295,"digest":"767d72c2e72d732d65c9b016adad983778dfbbb2b5b52e71830f4e41297728d3","integrity":"sha256-dn1ywuctcy1lybAWra2YN3jfu7K1tS5xgw9OQSl3KNM="},"flags/4x3/in-519e33321b8b2ba70a0b7557d66c62d7efdc9723896c49f82528b107028ffe29.svg":{"logical_path":"flags/4x3/in.svg","mtime":"2020-02-08T21:52:35+01:00","size":1077,"digest":"519e33321b8b2ba70a0b7557d66c62d7efdc9723896c49f82528b107028ffe29","integrity":"sha256-UZ4zMhuLK6cKC3VX1mxi1+/clyOJbEn4JSixBwKP/ik="},"flags/1x1/in-27831f76dc6a218a529b6e5d0eafc4c19c999461327b7c013f59226c0601a361.svg":{"logical_path":"flags/1x1/in.svg","mtime":"2020-02-08T21:52:35+01:00","size":1091,"digest":"27831f76dc6a218a529b6e5d0eafc4c19c999461327b7c013f59226c0601a361","integrity":"sha256-J4MfdtxqIYpSm25dDq/EwZyZlGEye3wBP1kibAYBo2E="},"flags/4x3/io-8d25a8e98f682199b413adfbcb6898c37058c9bae085e427fbab03d56e8c0de6.svg":{"logical_path":"flags/4x3/io.svg","mtime":"2020-02-08T21:52:35+01:00","size":27446,"digest":"8d25a8e98f682199b413adfbcb6898c37058c9bae085e427fbab03d56e8c0de6","integrity":"sha256-jSWo6Y9oIZm0E637y2iYw3BYybrgheQn+6sD1W6MDeY="},"flags/1x1/io-627f3b0cef72fd91ff426d74a007dc32d74c9fe677cf2c8355cba84359e16fde.svg":{"logical_path":"flags/1x1/io.svg","mtime":"2020-02-08T21:52:35+01:00","size":27497,"digest":"627f3b0cef72fd91ff426d74a007dc32d74c9fe677cf2c8355cba84359e16fde","integrity":"sha256-Yn87DO9y/ZH/Qm10oAfcMtdMn+Z3zyyDVcuoQ1nhb94="},"flags/4x3/iq-96b24d1439184d0a4c35ca7cea65e5f20469a0e8c8438963aad016e59c399cc6.svg":{"logical_path":"flags/4x3/iq.svg","mtime":"2020-02-08T21:52:35+01:00","size":1479,"digest":"96b24d1439184d0a4c35ca7cea65e5f20469a0e8c8438963aad016e59c399cc6","integrity":"sha256-lrJNFDkYTQpMNcp86mXl8gRpoOjIQ4ljqtAW5Zw5nMY="},"flags/1x1/iq-af04db139f8c44cfe0c612e2c05e848ccfad88fbbfcb58e88cdb7c80db365669.svg":{"logical_path":"flags/1x1/iq.svg","mtime":"2020-02-08T21:52:35+01:00","size":1484,"digest":"af04db139f8c44cfe0c612e2c05e848ccfad88fbbfcb58e88cdb7c80db365669","integrity":"sha256-rwTbE5+MRM/gxhLiwF6EjM+tiPu/y1jojNt8gNs2Vmk="},"flags/4x3/ir-db2c230d355ade2b1ac235ec647bb1535e4703c639a44f9ce112473272ee1019.svg":{"logical_path":"flags/4x3/ir.svg","mtime":"2020-02-08T21:52:35+01:00","size":15484,"digest":"db2c230d355ade2b1ac235ec647bb1535e4703c639a44f9ce112473272ee1019","integrity":"sha256-2ywjDTVa3isawjXsZHuxU15HA8Y5pE+c4RJHMnLuEBk="},"flags/1x1/ir-c648cbf56fc8f324fda477ea816783c9df8a7d398f45f5f94acc1c16c8877b63.svg":{"logical_path":"flags/1x1/ir.svg","mtime":"2020-02-08T21:52:35+01:00","size":15387,"digest":"c648cbf56fc8f324fda477ea816783c9df8a7d398f45f5f94acc1c16c8877b63","integrity":"sha256-xkjL9W/I8yT9pHfqgWeDyd+KfTmPRfX5SswcFsiHe2M="},"flags/4x3/is-29508693138977229758b0f322ba34e90dbcd7a8a74e8820729933d24051d9a7.svg":{"logical_path":"flags/4x3/is.svg","mtime":"2020-02-08T21:52:35+01:00","size":521,"digest":"29508693138977229758b0f322ba34e90dbcd7a8a74e8820729933d24051d9a7","integrity":"sha256-KVCGkxOJdyKXWLDzIro06Q2816inToggcpkz0kBR2ac="},"flags/1x1/is-b1c5db1d4b4853b8144f1d88ababbf14fc88752340457ba3e2c94ab5d54c9c01.svg":{"logical_path":"flags/1x1/is.svg","mtime":"2020-02-08T21:52:35+01:00","size":529,"digest":"b1c5db1d4b4853b8144f1d88ababbf14fc88752340457ba3e2c94ab5d54c9c01","integrity":"sha256-scXbHUtIU7gUTx2Iq6u/FPyIdSNARXuj4slKtdVMnAE="},"flags/4x3/it-d2c168050fc509adac1163b097b0ed409217560735b27802ae9259587c146562.svg":{"logical_path":"flags/4x3/it.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d2c168050fc509adac1163b097b0ed409217560735b27802ae9259587c146562","integrity":"sha256-0sFoBQ/FCa2sEWOwl7DtQJIXVgc1sngCrpJZWHwUZWI="},"flags/1x1/it-592d34fb666430fa00f98d333623d5efa3c8e0e65ac4eee06bbc4c1de7ce4bea.svg":{"logical_path":"flags/1x1/it.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"592d34fb666430fa00f98d333623d5efa3c8e0e65ac4eee06bbc4c1de7ce4bea","integrity":"sha256-WS00+2ZkMPoA+Y0zNiPV76PI4OZaxO7ga7xMHefOS+o="},"flags/4x3/je-b363a4e3a21630f10791c2ebeb7f918320816ef87c155d4fd29ce37982f4df35.svg":{"logical_path":"flags/4x3/je.svg","mtime":"2020-02-08T21:52:35+01:00","size":4776,"digest":"b363a4e3a21630f10791c2ebeb7f918320816ef87c155d4fd29ce37982f4df35","integrity":"sha256-s2Ok46IWMPEHkcLr63+RgyCBbvh8FV1P0pzjeYL03zU="},"flags/1x1/je-6d43f74e30e099bc056da925ec34c0200708f0a6e90da34db1e59d54ce10cfd9.svg":{"logical_path":"flags/1x1/je.svg","mtime":"2020-02-08T21:52:35+01:00","size":4757,"digest":"6d43f74e30e099bc056da925ec34c0200708f0a6e90da34db1e59d54ce10cfd9","integrity":"sha256-bUP3TjDgmbwFbakl7DTAIAcI8KbpDaNNseWdVM4Qz9k="},"flags/4x3/jm-3d133fbc2564f29e036855e8be224d1579fe66fe49e0f5a2ba0bdcf3cb272823.svg":{"logical_path":"flags/4x3/jm.svg","mtime":"2020-02-08T21:52:35+01:00","size":392,"digest":"3d133fbc2564f29e036855e8be224d1579fe66fe49e0f5a2ba0bdcf3cb272823","integrity":"sha256-PRM/vCVk8p4DaFXoviJNFXn+Zv5J4PWiugvc88snKCM="},"flags/1x1/jm-1aea8ea5d8cbc717fa3ef331d8caa9a1421c88a7bd076e40f8276a5b6f8d0467.svg":{"logical_path":"flags/1x1/jm.svg","mtime":"2020-02-08T21:52:35+01:00","size":392,"digest":"1aea8ea5d8cbc717fa3ef331d8caa9a1421c88a7bd076e40f8276a5b6f8d0467","integrity":"sha256-GuqOpdjLxxf6PvMx2MqpoUIciKe9B25A+CdqW2+NBGc="},"flags/4x3/jo-eee432339f8ea6750987e1121187eb4b53ec537dd7ccb240c018de63f7a92db6.svg":{"logical_path":"flags/4x3/jo.svg","mtime":"2020-02-08T21:52:35+01:00","size":717,"digest":"eee432339f8ea6750987e1121187eb4b53ec537dd7ccb240c018de63f7a92db6","integrity":"sha256-7uQyM5+OpnUJh+ESEYfrS1PsU33XzLJAwBjeY/epLbY="},"flags/1x1/jo-7969b2083c535c85b7e714b755459a6606940e0b5ddb1b71e24daf0a180d14aa.svg":{"logical_path":"flags/1x1/jo.svg","mtime":"2020-02-08T21:52:35+01:00","size":694,"digest":"7969b2083c535c85b7e714b755459a6606940e0b5ddb1b71e24daf0a180d14aa","integrity":"sha256-eWmyCDxTXIW35xS3VUWaZgaUDgtd2xtx4k2vChgNFKo="},"flags/4x3/jp-2eadcfc67ba8cd50c1da86e08e6778e0102c3072865dab8c312cc88006da0abe.svg":{"logical_path":"flags/4x3/jp.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"2eadcfc67ba8cd50c1da86e08e6778e0102c3072865dab8c312cc88006da0abe","integrity":"sha256-Lq3PxnuozVDB2obgjmd44BAsMHKGXauMMSzIgAbaCr4="},"flags/1x1/jp-551281a75e6c6fd64eb65b39f56102b52c182f6c38ee045c9422f6592f0f65c5.svg":{"logical_path":"flags/1x1/jp.svg","mtime":"2020-02-08T21:52:35+01:00","size":500,"digest":"551281a75e6c6fd64eb65b39f56102b52c182f6c38ee045c9422f6592f0f65c5","integrity":"sha256-VRKBp15sb9ZOtls59WECtSwYL2w47gRclCL2WS8PZcU="},"flags/4x3/ke-45790bc3ec1ed8ed0124777a7c9e09163353b5af4ff70ae6604a61b53712df4b.svg":{"logical_path":"flags/4x3/ke.svg","mtime":"2020-02-08T21:52:35+01:00","size":1383,"digest":"45790bc3ec1ed8ed0124777a7c9e09163353b5af4ff70ae6604a61b53712df4b","integrity":"sha256-RXkLw+we2O0BJHd6fJ4JFjNTta9P9wrmYEphtTcS30s="},"flags/1x1/ke-2cca24ecf024b801543c0572efc9969ffdaf25cec313e2149c64961839bc301b.svg":{"logical_path":"flags/1x1/ke.svg","mtime":"2020-02-08T21:52:35+01:00","size":1495,"digest":"2cca24ecf024b801543c0572efc9969ffdaf25cec313e2149c64961839bc301b","integrity":"sha256-LMok7PAkuAFUPAVy78mWn/2vJc7DE+IUnGSWGDm8MBs="},"flags/4x3/kg-3879f8931d74cc9c5927261f4095b2bb786f3d62c803b2a96ec550a23fae9f49.svg":{"logical_path":"flags/4x3/kg.svg","mtime":"2020-02-08T21:52:35+01:00","size":3387,"digest":"3879f8931d74cc9c5927261f4095b2bb786f3d62c803b2a96ec550a23fae9f49","integrity":"sha256-OHn4kx10zJxZJyYfQJWyu3hvPWLIA7KpbsVQoj+un0k="},"flags/1x1/kg-74318932808f85b72df308358f2f2699ab0cb7ab4f7ad3c84c4be4024f0fb140.svg":{"logical_path":"flags/1x1/kg.svg","mtime":"2020-02-08T21:52:35+01:00","size":3337,"digest":"74318932808f85b72df308358f2f2699ab0cb7ab4f7ad3c84c4be4024f0fb140","integrity":"sha256-dDGJMoCPhbct8wg1jy8mmasMt6tPetPITEvkAk8PsUA="},"flags/4x3/kh-7409fab4ba4e676db7b5c61020b97893b1735fe0b8e39e9b4f96108400be704e.svg":{"logical_path":"flags/4x3/kh.svg","mtime":"2020-02-08T21:52:35+01:00","size":7295,"digest":"7409fab4ba4e676db7b5c61020b97893b1735fe0b8e39e9b4f96108400be704e","integrity":"sha256-dAn6tLpOZ223tcYQILl4k7FzX+C4456bT5YQhAC+cE4="},"flags/1x1/kh-2603f6a61b400cb12b87397eeba60ae1707511467d5e0c430c05809bf89e5042.svg":{"logical_path":"flags/1x1/kh.svg","mtime":"2020-02-08T21:52:35+01:00","size":7296,"digest":"2603f6a61b400cb12b87397eeba60ae1707511467d5e0c430c05809bf89e5042","integrity":"sha256-JgP2phtADLErhzl+66YK4XB1EUZ9XgxDDAWAm/ieUEI="},"flags/4x3/ki-617c1b52f3d9aee99d094edbd1775cae77aade266a1318eb4671b2bb1620ded5.svg":{"logical_path":"flags/4x3/ki.svg","mtime":"2020-02-08T21:52:35+01:00","size":5818,"digest":"617c1b52f3d9aee99d094edbd1775cae77aade266a1318eb4671b2bb1620ded5","integrity":"sha256-YXwbUvPZrumdCU7b0Xdcrneq3iZqExjrRnGyuxYg3tU="},"flags/1x1/ki-74615266b440a24f09abdeae3853d7e1111f0eba77df71ccd176d83fbd1fd9ad.svg":{"logical_path":"flags/1x1/ki.svg","mtime":"2020-02-08T21:52:35+01:00","size":5955,"digest":"74615266b440a24f09abdeae3853d7e1111f0eba77df71ccd176d83fbd1fd9ad","integrity":"sha256-dGFSZrRAok8Jq96uOFPX4REfDrp333HM0XbYP70f2a0="},"flags/4x3/km-0c9bcbf7e677a541fc8dff6f848c9d92b6982ac2934ae75faa56a2b846bb5698.svg":{"logical_path":"flags/4x3/km.svg","mtime":"2020-02-08T21:52:35+01:00","size":1061,"digest":"0c9bcbf7e677a541fc8dff6f848c9d92b6982ac2934ae75faa56a2b846bb5698","integrity":"sha256-DJvL9+Z3pUH8jf9vhIydkraYKsKTSudfqlaiuEa7Vpg="},"flags/1x1/km-81b0fbe53d09194270e8ed4cbe9be8eb1ae727e77957005369ad8bdc651dd1c8.svg":{"logical_path":"flags/1x1/km.svg","mtime":"2020-02-08T21:52:35+01:00","size":1044,"digest":"81b0fbe53d09194270e8ed4cbe9be8eb1ae727e77957005369ad8bdc651dd1c8","integrity":"sha256-gbD75T0JGUJw6O1Mvpvo6xrnJ+d5VwBTaa2L3GUd0cg="},"flags/4x3/kn-0442f55f81cd3b1057c609301f0af2b503d89a895a954af8c970df997e92bd03.svg":{"logical_path":"flags/4x3/kn.svg","mtime":"2020-02-08T21:52:35+01:00","size":816,"digest":"0442f55f81cd3b1057c609301f0af2b503d89a895a954af8c970df997e92bd03","integrity":"sha256-BEL1X4HNOxBXxgkwHwrytQPYmolalUr4yXDfmX6SvQM="},"flags/1x1/kn-897c34ef54bee486f0d24d2191e2400f49a19d98efb19f8c3f1a27fb0b97131a.svg":{"logical_path":"flags/1x1/kn.svg","mtime":"2020-02-08T21:52:35+01:00","size":820,"digest":"897c34ef54bee486f0d24d2191e2400f49a19d98efb19f8c3f1a27fb0b97131a","integrity":"sha256-iXw071S+5Ibw0k0hkeJAD0mhnZjvsZ+MPxon+wuXExo="},"flags/4x3/kp-a54f7201982b29530381b71a5e2a11c1153860f22c04c0a2d91bb0d20fedf78e.svg":{"logical_path":"flags/4x3/kp.svg","mtime":"2020-02-08T21:52:35+01:00","size":792,"digest":"a54f7201982b29530381b71a5e2a11c1153860f22c04c0a2d91bb0d20fedf78e","integrity":"sha256-pU9yAZgrKVMDgbcaXioRwRU4YPIsBMCi2Ruw0g/t944="},"flags/1x1/kp-758eccd89ef3707808fb68d931f086e49333904f4cc67c88468f3c96fb43b7b6.svg":{"logical_path":"flags/1x1/kp.svg","mtime":"2020-02-08T21:52:35+01:00","size":855,"digest":"758eccd89ef3707808fb68d931f086e49333904f4cc67c88468f3c96fb43b7b6","integrity":"sha256-dY7M2J7zcHgI+2jZMfCG5JMzkE9MxnyIRo88lvtDt7Y="},"flags/4x3/kr-c0b9b2c854133410c0ad9cadbc10b1e0bacf0305519883126d55bfa3214f9d06.svg":{"logical_path":"flags/4x3/kr.svg","mtime":"2020-02-08T21:52:35+01:00","size":1827,"digest":"c0b9b2c854133410c0ad9cadbc10b1e0bacf0305519883126d55bfa3214f9d06","integrity":"sha256-wLmyyFQTNBDArZytvBCx4LrPAwVRmIMSbVW/oyFPnQY="},"flags/1x1/kr-7c0457ac5d284b28b742ea2e061a1aa2a35f63171e464b3a7eb501a48756ce7b.svg":{"logical_path":"flags/1x1/kr.svg","mtime":"2020-02-08T21:52:35+01:00","size":1733,"digest":"7c0457ac5d284b28b742ea2e061a1aa2a35f63171e464b3a7eb501a48756ce7b","integrity":"sha256-fARXrF0oSyi3QuouBhoaoqNfYxceRks6frUBpIdWzns="},"flags/4x3/kw-81c3d5d25c7b840ef14783b51d18c6b7cfc61f94932c664bbc9e5879fef020eb.svg":{"logical_path":"flags/4x3/kw.svg","mtime":"2020-02-08T21:52:35+01:00","size":506,"digest":"81c3d5d25c7b840ef14783b51d18c6b7cfc61f94932c664bbc9e5879fef020eb","integrity":"sha256-gcPV0lx7hA7xR4O1HRjGt8/GH5STLGZLvJ5Yef7wIOs="},"flags/1x1/kw-66670211a67a4e61d4652a19d821dc5195f01a28a3a9b28b7e4c6048cd86b19c.svg":{"logical_path":"flags/1x1/kw.svg","mtime":"2020-02-08T21:52:35+01:00","size":510,"digest":"66670211a67a4e61d4652a19d821dc5195f01a28a3a9b28b7e4c6048cd86b19c","integrity":"sha256-ZmcCEaZ6TmHUZSoZ2CHcUZXwGiijqbKLfkxgSM2GsZw="},"flags/4x3/ky-0f4ab66d951ae33f800d680aaa5704804ba9c8844d4d80e5bee2e3fa0e100af3.svg":{"logical_path":"flags/4x3/ky.svg","mtime":"2020-02-08T21:52:35+01:00","size":21886,"digest":"0f4ab66d951ae33f800d680aaa5704804ba9c8844d4d80e5bee2e3fa0e100af3","integrity":"sha256-D0q2bZUa4z+ADWgKqlcEgEupyIRNTYDlvuLj+g4QCvM="},"flags/1x1/ky-fb5f57bb58b74d23377bad9954a75ab88d1587af68546ce137a6ae7a88a7701e.svg":{"logical_path":"flags/1x1/ky.svg","mtime":"2020-02-08T21:52:35+01:00","size":22495,"digest":"fb5f57bb58b74d23377bad9954a75ab88d1587af68546ce137a6ae7a88a7701e","integrity":"sha256-+19Xu1i3TSM3e62ZVKdauI0Vh69oVGzhN6aueoincB4="},"flags/4x3/kz-39edc952c598c71be2c9510944a8faf708d8e4b367b5ad78a688d1cd37f522eb.svg":{"logical_path":"flags/4x3/kz.svg","mtime":"2020-02-08T21:52:35+01:00","size":11339,"digest":"39edc952c598c71be2c9510944a8faf708d8e4b367b5ad78a688d1cd37f522eb","integrity":"sha256-Oe3JUsWYxxviyVEJRKj69wjY5LNnta14pojRzTf1Ius="},"flags/1x1/kz-924c04dc19267b049f35213af0e2b0c540933c06389433cb4aacd8dda33b286c.svg":{"logical_path":"flags/1x1/kz.svg","mtime":"2020-02-08T21:52:35+01:00","size":11433,"digest":"924c04dc19267b049f35213af0e2b0c540933c06389433cb4aacd8dda33b286c","integrity":"sha256-kkwE3BkmewSfNSE68OKwxUCTPAY4lDPLSqzY3aM7KGw="},"flags/4x3/la-e3a36a3bd0003442c3a21d3a192995fa6fb3b3c08a2daadc8f38f62736b5b1e3.svg":{"logical_path":"flags/4x3/la.svg","mtime":"2020-02-08T21:52:35+01:00","size":457,"digest":"e3a36a3bd0003442c3a21d3a192995fa6fb3b3c08a2daadc8f38f62736b5b1e3","integrity":"sha256-46NqO9AANELDoh06GSmV+m+zs8CKLarcjzj2Jza1seM="},"flags/1x1/la-c9d4223a897e5e2938a4892bbc593d3828093b9439fc3f6de21520e4013ddbc5.svg":{"logical_path":"flags/1x1/la.svg","mtime":"2020-02-08T21:52:35+01:00","size":507,"digest":"c9d4223a897e5e2938a4892bbc593d3828093b9439fc3f6de21520e4013ddbc5","integrity":"sha256-ydQiOol+Xik4pIkrvFk9OCgJO5Q5/D9t4hUg5AE928U="},"flags/4x3/lb-508c2a5a9b50d604895675b9f1c1e5914c394a7f468f5d823eb0476acaacbc7f.svg":{"logical_path":"flags/4x3/lb.svg","mtime":"2020-02-08T21:52:35+01:00","size":2814,"digest":"508c2a5a9b50d604895675b9f1c1e5914c394a7f468f5d823eb0476acaacbc7f","integrity":"sha256-UIwqWptQ1gSJVnW58cHlkUw5Sn9Gj12CPrBHasqsvH8="},"flags/1x1/lb-10c9ba8ea7aa3189f16a7273c837982a887fc4ddfc9d514d8f5a660d72356f7f.svg":{"logical_path":"flags/1x1/lb.svg","mtime":"2020-02-08T21:52:35+01:00","size":2754,"digest":"10c9ba8ea7aa3189f16a7273c837982a887fc4ddfc9d514d8f5a660d72356f7f","integrity":"sha256-EMm6jqeqMYnxanJzyDeYKoh/xN38nVFNj1pmDXI1b38="},"flags/4x3/lc-04ccd92fb1578654181febaea30ebd6b6620f56115730b2a2d673c712307bf5c.svg":{"logical_path":"flags/4x3/lc.svg","mtime":"2020-02-08T21:52:35+01:00","size":373,"digest":"04ccd92fb1578654181febaea30ebd6b6620f56115730b2a2d673c712307bf5c","integrity":"sha256-BMzZL7FXhlQYH+uuow69a2Yg9WEVcwsqLWc8cSMHv1w="},"flags/1x1/lc-4ffb53afb8bd296d526ac26fd8007afc74855e92833a893d3c934a5d12eb152a.svg":{"logical_path":"flags/1x1/lc.svg","mtime":"2020-02-08T21:52:35+01:00","size":373,"digest":"4ffb53afb8bd296d526ac26fd8007afc74855e92833a893d3c934a5d12eb152a","integrity":"sha256-T/tTr7i9KW1SasJv2AB6/HSFXpKDOok9PJNKXRLrFSo="},"flags/4x3/li-3058dc4aeaf2bd2da8cb910892137d732b56e5e9d342e565a4059de1a8e40e40.svg":{"logical_path":"flags/4x3/li.svg","mtime":"2020-02-08T21:52:35+01:00","size":8327,"digest":"3058dc4aeaf2bd2da8cb910892137d732b56e5e9d342e565a4059de1a8e40e40","integrity":"sha256-MFjcSuryvS2oy5EIkhN9cytW5enTQuVlpAWd4ajkDkA="},"flags/1x1/li-0780a4f218b9ee466e33d14274b8a01575a86b3787b347e3269a3b301c220d5f.svg":{"logical_path":"flags/1x1/li.svg","mtime":"2020-02-08T21:52:35+01:00","size":8350,"digest":"0780a4f218b9ee466e33d14274b8a01575a86b3787b347e3269a3b301c220d5f","integrity":"sha256-B4Ck8hi57kZuM9FCdLigFXWoazeHs0fjJpo7MBwiDV8="},"flags/4x3/lk-a13d6ab1da51be3b1d2c5b80f4d866c923d42b017e197469e1bfc0dd021c4bfe.svg":{"logical_path":"flags/4x3/lk.svg","mtime":"2020-02-08T21:52:35+01:00","size":11333,"digest":"a13d6ab1da51be3b1d2c5b80f4d866c923d42b017e197469e1bfc0dd021c4bfe","integrity":"sha256-oT1qsdpRvjsdLFuA9NhmySPUKwF+GXRp4b/A3QIcS/4="},"flags/1x1/lk-99759363f0df6b868fd1398bf05666c680bafe1eeec8b859b64d450930213e02.svg":{"logical_path":"flags/1x1/lk.svg","mtime":"2020-02-08T21:52:35+01:00","size":11345,"digest":"99759363f0df6b868fd1398bf05666c680bafe1eeec8b859b64d450930213e02","integrity":"sha256-mXWTY/Dfa4aP0TmL8FZmxoC6/h7uyLhZtk1FCTAhPgI="},"flags/4x3/lr-b06a1d70899826b305ce387fa31e1fa0bdb3bcb17c1392f15f995ce1dba723cf.svg":{"logical_path":"flags/4x3/lr.svg","mtime":"2020-02-08T21:52:35+01:00","size":724,"digest":"b06a1d70899826b305ce387fa31e1fa0bdb3bcb17c1392f15f995ce1dba723cf","integrity":"sha256-sGodcImYJrMFzjh/ox4foL2zvLF8E5LxX5lc4dunI88="},"flags/1x1/lr-820a9d023e5b1e68ed640bfaba8f84ad4379c42a6c5c982cb76b0390dd2bcbdd.svg":{"logical_path":"flags/1x1/lr.svg","mtime":"2020-02-08T21:52:35+01:00","size":697,"digest":"820a9d023e5b1e68ed640bfaba8f84ad4379c42a6c5c982cb76b0390dd2bcbdd","integrity":"sha256-ggqdAj5bHmjtZAv6uo+ErUN5xCpsXJgst2sDkN0ry90="},"flags/4x3/ls-d02bcefe7c298c153665f35c33eedb08e2e2b345350e4bf1714a87abf86b2d0e.svg":{"logical_path":"flags/4x3/ls.svg","mtime":"2020-02-08T21:52:35+01:00","size":1222,"digest":"d02bcefe7c298c153665f35c33eedb08e2e2b345350e4bf1714a87abf86b2d0e","integrity":"sha256-0CvO/nwpjBU2ZfNcM+7bCOLis0U1DkvxcUqHq/hrLQ4="},"flags/1x1/ls-85c731c313a46db12bdb27fe229e9f7d052b447c624663b73ffa1dbab97f03fb.svg":{"logical_path":"flags/1x1/ls.svg","mtime":"2020-02-08T21:52:35+01:00","size":1245,"digest":"85c731c313a46db12bdb27fe229e9f7d052b447c624663b73ffa1dbab97f03fb","integrity":"sha256-hccxwxOkbbEr2yf+Ip6ffQUrRHxiRmO3P/odurl/A/s="},"flags/4x3/lt-c08eb18a15d2003cb544432b11c5081d3d5741370669b4df306d1c6bce14cb51.svg":{"logical_path":"flags/4x3/lt.svg","mtime":"2020-02-08T21:52:35+01:00","size":445,"digest":"c08eb18a15d2003cb544432b11c5081d3d5741370669b4df306d1c6bce14cb51","integrity":"sha256-wI6xihXSADy1REMrEcUIHT1XQTcGabTfMG0ca84Uy1E="},"flags/1x1/lt-c1bd7e3d289ac9b0df06d47237780eaf4d30f01281ed50a7df9a22bc3a2489c5.svg":{"logical_path":"flags/1x1/lt.svg","mtime":"2020-02-08T21:52:35+01:00","size":445,"digest":"c1bd7e3d289ac9b0df06d47237780eaf4d30f01281ed50a7df9a22bc3a2489c5","integrity":"sha256-wb1+PSiaybDfBtRyN3gOr00w8BKB7VCn35oivDokicU="},"flags/4x3/lu-99e7b6adb3a9e0f867b17eb3b1f0f33db92fd27cfd7b651f62453f359bace22f.svg":{"logical_path":"flags/4x3/lu.svg","mtime":"2020-02-08T21:52:35+01:00","size":231,"digest":"99e7b6adb3a9e0f867b17eb3b1f0f33db92fd27cfd7b651f62453f359bace22f","integrity":"sha256-mee2rbOp4PhnsX6zsfDzPbkv0nz9e2UfYkU/NZus4i8="},"flags/1x1/lu-ab544445f16afa450549288ac86c2cc9a458a9d7747b3a89d5ecef7db9c83ce7.svg":{"logical_path":"flags/1x1/lu.svg","mtime":"2020-02-08T21:52:35+01:00","size":235,"digest":"ab544445f16afa450549288ac86c2cc9a458a9d7747b3a89d5ecef7db9c83ce7","integrity":"sha256-q1RERfFq+kUFSSiKyGwsyaRYqdd0ezqJ1ezvfbnIPOc="},"flags/4x3/lv-f8844d50b89f0369f73d580d3676553e7e55dd8ab2460e592a29a530d9bed886.svg":{"logical_path":"flags/4x3/lv.svg","mtime":"2020-02-08T21:52:35+01:00","size":236,"digest":"f8844d50b89f0369f73d580d3676553e7e55dd8ab2460e592a29a530d9bed886","integrity":"sha256-+IRNULifA2n3PVgNNnZVPn5V3YqyRg5ZKimlMNm+2IY="},"flags/1x1/lv-baeced49dd4249e36a25b0f23a5c601a69e9dee3137627cd4450194b85a99dd4.svg":{"logical_path":"flags/1x1/lv.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"baeced49dd4249e36a25b0f23a5c601a69e9dee3137627cd4450194b85a99dd4","integrity":"sha256-uuztSd1CSeNqJbDyOlxgGmnp3uMTdifNRFAZS4WpndQ="},"flags/4x3/ly-03209121483967f9d74849fb9261de23e9ff2e02c4e40b29f1cda0631b8a5fae.svg":{"logical_path":"flags/4x3/ly.svg","mtime":"2020-02-08T21:52:35+01:00","size":534,"digest":"03209121483967f9d74849fb9261de23e9ff2e02c4e40b29f1cda0631b8a5fae","integrity":"sha256-AyCRIUg5Z/nXSEn7kmHeI+n/LgLE5Asp8c2gYxuKX64="},"flags/1x1/ly-1e6e070aaa4bfc97a5a446a39bf746ab3c4c81d9f62c975cab164e16de3a3ffe.svg":{"logical_path":"flags/1x1/ly.svg","mtime":"2020-02-08T21:52:35+01:00","size":533,"digest":"1e6e070aaa4bfc97a5a446a39bf746ab3c4c81d9f62c975cab164e16de3a3ffe","integrity":"sha256-Hm4HCqpL/JelpEajm/dGqzxMgdn2LJdcqxZOFt46P/4="},"flags/4x3/ma-9a25cc7c2868fa45b251dd1b99a0be3b583df69732146142020fe9c6c0c95b63.svg":{"logical_path":"flags/4x3/ma.svg","mtime":"2020-02-08T21:52:35+01:00","size":253,"digest":"9a25cc7c2868fa45b251dd1b99a0be3b583df69732146142020fe9c6c0c95b63","integrity":"sha256-miXMfCho+kWyUd0bmaC+O1g99pcyFGFCAg/pxsDJW2M="},"flags/1x1/ma-4f18b9c355b8b8bf0db69badb235a183dbd558deb6439bf03b4f18e56837a7f3.svg":{"logical_path":"flags/1x1/ma.svg","mtime":"2020-02-08T21:52:35+01:00","size":253,"digest":"4f18b9c355b8b8bf0db69badb235a183dbd558deb6439bf03b4f18e56837a7f3","integrity":"sha256-Txi5w1W4uL8NtputsjWhg9vVWN62Q5vwO08Y5Wg3p/M="},"flags/4x3/mc-b0c50599ea2a550680a6a867579930e0b47d3e05193a7294a26b7849a7ad35e2.svg":{"logical_path":"flags/4x3/mc.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"b0c50599ea2a550680a6a867579930e0b47d3e05193a7294a26b7849a7ad35e2","integrity":"sha256-sMUFmeoqVQaApqhnV5kw4LR9PgUZOnKUomt4SaetNeI="},"flags/1x1/mc-8f1fe6210338399d8791d91f39234b1a09acf2aa5e0387696048dc7068534a28.svg":{"logical_path":"flags/1x1/mc.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"8f1fe6210338399d8791d91f39234b1a09acf2aa5e0387696048dc7068534a28","integrity":"sha256-jx/mIQM4OZ2HkdkfOSNLGgms8qpeA4dpYEjccGhTSig="},"flags/4x3/md-8849eef7bdf916e962f7bb31af87c8d47aef33f9f4a2017b2ce55c4166e79643.svg":{"logical_path":"flags/4x3/md.svg","mtime":"2020-02-08T21:52:35+01:00","size":11283,"digest":"8849eef7bdf916e962f7bb31af87c8d47aef33f9f4a2017b2ce55c4166e79643","integrity":"sha256-iEnu9735Fuli97sxr4fI1HrvM/n0ogF7LOVcQWbnlkM="},"flags/1x1/md-43f1bb4157545abe6e79215459efb548d913bbe7922078cd40cb722a4e19d9b4.svg":{"logical_path":"flags/1x1/md.svg","mtime":"2020-02-08T21:52:35+01:00","size":11387,"digest":"43f1bb4157545abe6e79215459efb548d913bbe7922078cd40cb722a4e19d9b4","integrity":"sha256-Q/G7QVdUWr5ueSFUWe+1SNkTu+eSIHjNQMtyKk4Z2bQ="},"flags/4x3/me-983d452d43cfb8d628bfc5c0cf4991c2ba3cf0e39e70aa5353cfd4e9ec3da62d.svg":{"logical_path":"flags/4x3/me.svg","mtime":"2020-02-08T21:52:35+01:00","size":63177,"digest":"983d452d43cfb8d628bfc5c0cf4991c2ba3cf0e39e70aa5353cfd4e9ec3da62d","integrity":"sha256-mD1FLUPPuNYov8XAz0mRwro88OOecKpTU8/U6ew9pi0="},"flags/1x1/me-104d6a96038ef06d3d8b89c9221996f3649b5b821139b11b2e07695b0f6fda2f.svg":{"logical_path":"flags/1x1/me.svg","mtime":"2020-02-08T21:52:35+01:00","size":64191,"digest":"104d6a96038ef06d3d8b89c9221996f3649b5b821139b11b2e07695b0f6fda2f","integrity":"sha256-EE1qlgOO8G09i4nJIhmW82SbW4IRObEbLgdpWw9v2i8="},"flags/4x3/mf-31fb851bfcc2340d2fa43e86a099cc7becfc8e7f996a4d2ca56bd050e6537086.svg":{"logical_path":"flags/4x3/mf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"31fb851bfcc2340d2fa43e86a099cc7becfc8e7f996a4d2ca56bd050e6537086","integrity":"sha256-MfuFG/zCNA0vpD6GoJnMe+z8jn+Zak0spWvQUOZTcIY="},"flags/1x1/mf-fe20ce9bf911631d6e79edf21c8cff0716f2dc1ffded39515735444d9a66fa55.svg":{"logical_path":"flags/1x1/mf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"fe20ce9bf911631d6e79edf21c8cff0716f2dc1ffded39515735444d9a66fa55","integrity":"sha256-/iDOm/kRYx1uee3yHIz/Bxby3B/97TlRVzVETZpm+lU="},"flags/4x3/mg-5effe963e29f804a26f95dbbc9519add454a0fd9eb918ddfeb55e1e99a1a2701.svg":{"logical_path":"flags/4x3/mg.svg","mtime":"2020-02-08T21:52:35+01:00","size":305,"digest":"5effe963e29f804a26f95dbbc9519add454a0fd9eb918ddfeb55e1e99a1a2701","integrity":"sha256-Xv/pY+KfgEom+V27yVGa3UVKD9nrkY3f61Xh6ZoaJwE="},"flags/1x1/mg-9e546cfb78810d9b25c814a84aadd6907880b8e0cdd2e4e30738b519e7c1ac91.svg":{"logical_path":"flags/1x1/mg.svg","mtime":"2020-02-08T21:52:35+01:00","size":305,"digest":"9e546cfb78810d9b25c814a84aadd6907880b8e0cdd2e4e30738b519e7c1ac91","integrity":"sha256-nlRs+3iBDZslyBSoSq3WkHiAuODN0uTjBzi1GefBrJE="},"flags/4x3/mh-d8cfd123007dbb99aa700c335957926a6d5e877ab49680c79629a32716d7a782.svg":{"logical_path":"flags/4x3/mh.svg","mtime":"2020-02-08T21:52:35+01:00","size":744,"digest":"d8cfd123007dbb99aa700c335957926a6d5e877ab49680c79629a32716d7a782","integrity":"sha256-2M/RIwB9u5mqcAwzWVeSam1eh3q0loDHlimjJxbXp4I="},"flags/1x1/mh-3fe03d4d063a4729fc8b68fd5e9d7d2eef6e65c4e82954c83f76b138cea2eb45.svg":{"logical_path":"flags/1x1/mh.svg","mtime":"2020-02-08T21:52:35+01:00","size":767,"digest":"3fe03d4d063a4729fc8b68fd5e9d7d2eef6e65c4e82954c83f76b138cea2eb45","integrity":"sha256-P+A9TQY6Ryn8i2j9Xp19Lu9uZcToKVTIP3axOM6i60U="},"flags/4x3/mk-6e8071d15f2ff125d30bf89d000dcb47db9545cf9b7ff04f1474650ec2f4d25c.svg":{"logical_path":"flags/4x3/mk.svg","mtime":"2020-02-08T21:52:35+01:00","size":385,"digest":"6e8071d15f2ff125d30bf89d000dcb47db9545cf9b7ff04f1474650ec2f4d25c","integrity":"sha256-boBx0V8v8SXTC/idAA3LR9uVRc+bf/BPFHRlDsL00lw="},"flags/1x1/mk-fdc9212f9f311cbface56b6587468a2e845111b697edc11b7edda9fcf100c1d5.svg":{"logical_path":"flags/1x1/mk.svg","mtime":"2020-02-08T21:52:35+01:00","size":413,"digest":"fdc9212f9f311cbface56b6587468a2e845111b697edc11b7edda9fcf100c1d5","integrity":"sha256-/ckhL58xHL+s5Wtlh0aKLoRREbaX7cEbft2p/PEAwdU="},"flags/4x3/ml-a730102e0c6f6362de9c10ef8da6cf7b123465d01a297e7a89808b01fa4771cd.svg":{"logical_path":"flags/4x3/ml.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"a730102e0c6f6362de9c10ef8da6cf7b123465d01a297e7a89808b01fa4771cd","integrity":"sha256-pzAQLgxvY2LenBDvjabPexI0ZdAaKX56iYCLAfpHcc0="},"flags/1x1/ml-a661355da206b0cb7ac4c84b6cdf7e411fbca8fcb271ae999fa60d5c67578192.svg":{"logical_path":"flags/1x1/ml.svg","mtime":"2020-02-08T21:52:35+01:00","size":282,"digest":"a661355da206b0cb7ac4c84b6cdf7e411fbca8fcb271ae999fa60d5c67578192","integrity":"sha256-pmE1XaIGsMt6xMhLbN9+QR+8qPyyca6Zn6YNXGdXgZI="},"flags/4x3/mm-6d0d207d662477110f2b863488088818d8400386358dcbc669a2d8c54d1bae16.svg":{"logical_path":"flags/4x3/mm.svg","mtime":"2020-02-08T21:52:35+01:00","size":851,"digest":"6d0d207d662477110f2b863488088818d8400386358dcbc669a2d8c54d1bae16","integrity":"sha256-bQ0gfWYkdxEPK4Y0iAiIGNhAA4Y1jcvGaaLYxU0brhY="},"flags/1x1/mm-de7d46b6543343af61ba997045cb41a707bd0db1e7a5879971ca8fddcbdf9e99.svg":{"logical_path":"flags/1x1/mm.svg","mtime":"2020-02-08T21:52:35+01:00","size":868,"digest":"de7d46b6543343af61ba997045cb41a707bd0db1e7a5879971ca8fddcbdf9e99","integrity":"sha256-3n1GtlQzQ69huplwRctBpwe9DbHnpYeZccqP3cvfnpk="},"flags/4x3/mn-656eb51e88bfce82401e4080eb791ddf16d571cbba102cdd4316c5de4711ac65.svg":{"logical_path":"flags/4x3/mn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1256,"digest":"656eb51e88bfce82401e4080eb791ddf16d571cbba102cdd4316c5de4711ac65","integrity":"sha256-ZW61Hoi/zoJAHkCA63kd3xbVccu6ECzdQxbF3kcRrGU="},"flags/1x1/mn-ad22cb2c195a7d8ca8e4174db011d5f58238ee25039b5b2da2649d8ca8b00123.svg":{"logical_path":"flags/1x1/mn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1263,"digest":"ad22cb2c195a7d8ca8e4174db011d5f58238ee25039b5b2da2649d8ca8b00123","integrity":"sha256-rSLLLBlafYyo5BdNsBHV9YI47iUDm1stomSdjKiwASM="},"flags/4x3/mo-37a1088aa687af13951bc93886e3e51cb246eccfde1b56528f189327ea291792.svg":{"logical_path":"flags/4x3/mo.svg","mtime":"2020-02-08T21:52:35+01:00","size":1516,"digest":"37a1088aa687af13951bc93886e3e51cb246eccfde1b56528f189327ea291792","integrity":"sha256-N6EIiqaHrxOVG8k4huPlHLJG7M/eG1ZSjxiTJ+opF5I="},"flags/1x1/mo-b463a1c37b69131d662e3fb2ae937583458824a09bcf68fc7ed2d7fd729138d1.svg":{"logical_path":"flags/1x1/mo.svg","mtime":"2020-02-08T21:52:35+01:00","size":1550,"digest":"b463a1c37b69131d662e3fb2ae937583458824a09bcf68fc7ed2d7fd729138d1","integrity":"sha256-tGOhw3tpEx1mLj+yrpN1g0WIJKCbz2j8ftLX/XKRONE="},"flags/4x3/mp-ecd12cadc358fdf293e856c0a3ffc09409123cabd3c7201225b2d21b59551e14.svg":{"logical_path":"flags/4x3/mp.svg","mtime":"2020-02-08T21:52:35+01:00","size":23425,"digest":"ecd12cadc358fdf293e856c0a3ffc09409123cabd3c7201225b2d21b59551e14","integrity":"sha256-7NEsrcNY/fKT6FbAo//AlAkSPKvTxyASJbLSG1lVHhQ="},"flags/1x1/mp-d1f4ba10c1409e713253f1fbb107eeccbd4ec1a8f9036663f1ac1991aee53835.svg":{"logical_path":"flags/1x1/mp.svg","mtime":"2020-02-08T21:52:35+01:00","size":23663,"digest":"d1f4ba10c1409e713253f1fbb107eeccbd4ec1a8f9036663f1ac1991aee53835","integrity":"sha256-0fS6EMFAnnEyU/H7sQfuzL1Owaj5A2Zj8awZka7lODU="},"flags/4x3/mq-b4e1b08a93c1364c79e6d61f95b16fca5b884da6e77835bc0e0adfff8ecc2d7f.svg":{"logical_path":"flags/4x3/mq.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"b4e1b08a93c1364c79e6d61f95b16fca5b884da6e77835bc0e0adfff8ecc2d7f","integrity":"sha256-tOGwipPBNkx55tYflbFvyluITabneDW8Dgrf/47MLX8="},"flags/1x1/mq-19cb6f7cb7354c3fd40e987c93a2d76329d34b2ed3873c3f25fe56802f251ea8.svg":{"logical_path":"flags/1x1/mq.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"19cb6f7cb7354c3fd40e987c93a2d76329d34b2ed3873c3f25fe56802f251ea8","integrity":"sha256-GctvfLc1TD/UDph8k6LXYynTSy7Thzw/Jf5WgC8lHqg="},"flags/4x3/mr-9f64af3ed5c6d8d1f68b5cb09fd1aa9d28c3c95107e063f64a0ef95f0cb9429a.svg":{"logical_path":"flags/4x3/mr.svg","mtime":"2020-02-08T21:52:35+01:00","size":450,"digest":"9f64af3ed5c6d8d1f68b5cb09fd1aa9d28c3c95107e063f64a0ef95f0cb9429a","integrity":"sha256-n2SvPtXG2NH2i1ywn9GqnSjDyVEH4GP2Sg75Xwy5Qpo="},"flags/1x1/mr-0e79b7bcc669bb871d94021db2b78b162b9867c7eaf934d8f7a3025fd5903576.svg":{"logical_path":"flags/1x1/mr.svg","mtime":"2020-02-08T21:52:35+01:00","size":438,"digest":"0e79b7bcc669bb871d94021db2b78b162b9867c7eaf934d8f7a3025fd5903576","integrity":"sha256-Dnm3vMZpu4cdlAIdsreLFiuYZ8fq+TTY96MCX9WQNXY="},"flags/4x3/ms-32620dd70353777b2ee62951556976f398cd38ae359b5a8c97311a1dc61eb8bc.svg":{"logical_path":"flags/4x3/ms.svg","mtime":"2020-02-08T21:52:35+01:00","size":6792,"digest":"32620dd70353777b2ee62951556976f398cd38ae359b5a8c97311a1dc61eb8bc","integrity":"sha256-MmIN1wNTd3su5ilRVWl285jNOK41m1qMlzEaHcYeuLw="},"flags/1x1/ms-4104d4f36cb5cf1c6de78e52e90bc3c5b8bfa262617b16a737673feb8c30a00c.svg":{"logical_path":"flags/1x1/ms.svg","mtime":"2020-02-08T21:52:35+01:00","size":6700,"digest":"4104d4f36cb5cf1c6de78e52e90bc3c5b8bfa262617b16a737673feb8c30a00c","integrity":"sha256-QQTU82y1zxxt545S6QvDxbi/omJhexanN2c/64wwoAw="},"flags/4x3/mt-0c9819aa69b34b84c1ee43620922737122eb38f107be9864a0690ac66ef8aa64.svg":{"logical_path":"flags/4x3/mt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8807,"digest":"0c9819aa69b34b84c1ee43620922737122eb38f107be9864a0690ac66ef8aa64","integrity":"sha256-DJgZqmmzS4TB7kNiCSJzcSLrOPEHvphkoGkKxm74qmQ="},"flags/1x1/mt-3c3fe71f2a2bf0d961fd145ad7e48ca1e9d3a05cce514354714ba4568503d106.svg":{"logical_path":"flags/1x1/mt.svg","mtime":"2020-02-08T21:52:35+01:00","size":10519,"digest":"3c3fe71f2a2bf0d961fd145ad7e48ca1e9d3a05cce514354714ba4568503d106","integrity":"sha256-PD/nHyor8Nlh/RRa1+SMoenToFzOUUNUcUukVoUD0QY="},"flags/4x3/mu-c78c23f1499756b9db762ae434ca354d1481447fa94c66bc10aca9443b399059.svg":{"logical_path":"flags/4x3/mu.svg","mtime":"2020-02-08T21:52:35+01:00","size":322,"digest":"c78c23f1499756b9db762ae434ca354d1481447fa94c66bc10aca9443b399059","integrity":"sha256-x4wj8UmXVrnbdirkNMo1TRSBRH+pTGa8EKypRDs5kFk="},"flags/1x1/mu-91ebc79d0fa306127ea8b7a33f77d5b28f35c516ea91ff0468c7344dc838db69.svg":{"logical_path":"flags/1x1/mu.svg","mtime":"2020-02-08T21:52:35+01:00","size":322,"digest":"91ebc79d0fa306127ea8b7a33f77d5b28f35c516ea91ff0468c7344dc838db69","integrity":"sha256-kevHnQ+jBhJ+qLejP3fVso81xRbqkf8EaMc0Tcg422k="},"flags/4x3/mv-a17c947e17adae6aacef01a3e131c4150aa094911b53fbaead41783683e008eb.svg":{"logical_path":"flags/4x3/mv.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"a17c947e17adae6aacef01a3e131c4150aa094911b53fbaead41783683e008eb","integrity":"sha256-oXyUfhetrmqs7wGj4THEFQqglJEbU/uurUF4NoPgCOs="},"flags/1x1/mv-d138e94d9d2ed093ef1425c1164493b780202f9a7f7937241a7b081b79ff8b01.svg":{"logical_path":"flags/1x1/mv.svg","mtime":"2020-02-08T21:52:35+01:00","size":310,"digest":"d138e94d9d2ed093ef1425c1164493b780202f9a7f7937241a7b081b79ff8b01","integrity":"sha256-0TjpTZ0u0JPvFCXBFkSTt4AgL5p/eTckGnsIG3n/iwE="},"flags/4x3/mw-21f116afdf71df80e3c59084c6ba640814fa5389430328ff55c9403b5c239632.svg":{"logical_path":"flags/4x3/mw.svg","mtime":"2020-02-08T21:52:35+01:00","size":3721,"digest":"21f116afdf71df80e3c59084c6ba640814fa5389430328ff55c9403b5c239632","integrity":"sha256-IfEWr99x34DjxZCExrpkCBT6U4lDAyj/VclAO1wjljI="},"flags/1x1/mw-5c2228d3f1cf1f9cf8cb158e813202981828c11e8caf117836fc57fa6bc1c788.svg":{"logical_path":"flags/1x1/mw.svg","mtime":"2020-02-08T21:52:35+01:00","size":3930,"digest":"5c2228d3f1cf1f9cf8cb158e813202981828c11e8caf117836fc57fa6bc1c788","integrity":"sha256-XCIo0/HPH5z4yxWOgTICmBgowR6MrxF4NvxX+mvBx4g="},"flags/4x3/mx-a235f9b16921590b7e78caa6f76339361356946eaf0046badd10732b4647c0b6.svg":{"logical_path":"flags/4x3/mx.svg","mtime":"2020-02-08T21:52:35+01:00","size":95864,"digest":"a235f9b16921590b7e78caa6f76339361356946eaf0046badd10732b4647c0b6","integrity":"sha256-ojX5sWkhWQt+eMqm92M5NhNWlG6vAEa63RBzK0ZHwLY="},"flags/1x1/mx-cdab01ebcdccc020ca16e1355ef1fd18ca0043b501f399ca8edc48adfa8c7292.svg":{"logical_path":"flags/1x1/mx.svg","mtime":"2020-02-08T21:52:35+01:00","size":91341,"digest":"cdab01ebcdccc020ca16e1355ef1fd18ca0043b501f399ca8edc48adfa8c7292","integrity":"sha256-zasB683MwCDKFuE1XvH9GMoAQ7UB85nKjtxIrfqMcpI="},"flags/4x3/my-0ed63574cf5f20c0663ab8cd1f700e150fb641fd0b93602ba013abbfaae5ee59.svg":{"logical_path":"flags/4x3/my.svg","mtime":"2020-02-08T21:52:35+01:00","size":1284,"digest":"0ed63574cf5f20c0663ab8cd1f700e150fb641fd0b93602ba013abbfaae5ee59","integrity":"sha256-DtY1dM9fIMBmOrjNH3AOFQ+2Qf0Lk2AroBOrv6rl7lk="},"flags/1x1/my-5e8d31ef06ffc8af33a5616d760592ecd022c52afc8ba33c721f1e4989da0628.svg":{"logical_path":"flags/1x1/my.svg","mtime":"2020-02-08T21:52:35+01:00","size":1275,"digest":"5e8d31ef06ffc8af33a5616d760592ecd022c52afc8ba33c721f1e4989da0628","integrity":"sha256-Xo0x7wb/yK8zpWFtdgWS7NAixSr8i6M8ch8eSYnaBig="},"flags/4x3/mz-752e2293917b1d2ece3f097104caeadf6a679054a779e9d3be8e49dc324bb88a.svg":{"logical_path":"flags/4x3/mz.svg","mtime":"2020-02-08T21:52:35+01:00","size":2623,"digest":"752e2293917b1d2ece3f097104caeadf6a679054a779e9d3be8e49dc324bb88a","integrity":"sha256-dS4ik5F7HS7OPwlxBMrq32pnkFSneenTvo5J3DJLuIo="},"flags/1x1/mz-300cba975ad43c962ceca0d266ded1fe3d21d6b4d701d657fb42b27268ea2964.svg":{"logical_path":"flags/1x1/mz.svg","mtime":"2020-02-08T21:52:35+01:00","size":2604,"digest":"300cba975ad43c962ceca0d266ded1fe3d21d6b4d701d657fb42b27268ea2964","integrity":"sha256-MAy6l1rUPJYs7KDSZt7R/j0h1rTXAdZX+0KycmjqKWQ="},"flags/4x3/na-a0655a2e70751278e6a60d31e818f672864a6e68e8b3d3361b2fbb70fa9bfef8.svg":{"logical_path":"flags/4x3/na.svg","mtime":"2020-02-08T21:52:35+01:00","size":1005,"digest":"a0655a2e70751278e6a60d31e818f672864a6e68e8b3d3361b2fbb70fa9bfef8","integrity":"sha256-oGVaLnB1Enjmpg0x6Bj2coZKbmjos9M2Gy+7cPqb/vg="},"flags/1x1/na-1ce089a189db5be15eb05df8155f9bd017b61fc1a497e5b3021ff2ca664e122d.svg":{"logical_path":"flags/1x1/na.svg","mtime":"2020-02-08T21:52:35+01:00","size":983,"digest":"1ce089a189db5be15eb05df8155f9bd017b61fc1a497e5b3021ff2ca664e122d","integrity":"sha256-HOCJoYnbW+FesF34FV+b0Be2H8Gkl+WzAh/yymZOEi0="},"flags/4x3/nc-0c7171d91c44414ed69808611db588f1283ee7e34ea8a74a9a5101ba4b1cb305.svg":{"logical_path":"flags/4x3/nc.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"0c7171d91c44414ed69808611db588f1283ee7e34ea8a74a9a5101ba4b1cb305","integrity":"sha256-DHFx2RxEQU7WmAhhHbWI8Sg+5+NOqKdKmlEBukscswU="},"flags/1x1/nc-d3a1629f06dc3200af7669f2d895fce1908d2c1ca02d71e530bdfa6646a9516c.svg":{"logical_path":"flags/1x1/nc.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d3a1629f06dc3200af7669f2d895fce1908d2c1ca02d71e530bdfa6646a9516c","integrity":"sha256-06FinwbcMgCvdmny2JX84ZCNLBygLXHlML36ZkapUWw="},"flags/4x3/ne-2b61d30a6cb4554535538e3b753926853e8c629a494a347286b9731c803548e4.svg":{"logical_path":"flags/4x3/ne.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"2b61d30a6cb4554535538e3b753926853e8c629a494a347286b9731c803548e4","integrity":"sha256-K2HTCmy0VUU1U447dTkmhT6MYppJSjRyhrlzHIA1SOQ="},"flags/1x1/ne-9c5f798ccd7d3dd3771ae628b4a39dfb2a4578fefd2e006f3ce89c3e494d0cb1.svg":{"logical_path":"flags/1x1/ne.svg","mtime":"2020-02-08T21:52:35+01:00","size":285,"digest":"9c5f798ccd7d3dd3771ae628b4a39dfb2a4578fefd2e006f3ce89c3e494d0cb1","integrity":"sha256-nF95jM19PdN3GuYotKOd+ypFeP79LgBvPOicPklNDLE="},"flags/4x3/nf-4e615baa83a8b4db3e39fe1d251ab913943d64e0cd320f251d619ab54e7512d3.svg":{"logical_path":"flags/4x3/nf.svg","mtime":"2020-02-08T21:52:35+01:00","size":5845,"digest":"4e615baa83a8b4db3e39fe1d251ab913943d64e0cd320f251d619ab54e7512d3","integrity":"sha256-TmFbqoOotNs+Of4dJRq5E5Q9ZODNMg8lHWGatU51EtM="},"flags/1x1/nf-45403247c90050484813acf23c50f543779528e346317274373c3c24fd830103.svg":{"logical_path":"flags/1x1/nf.svg","mtime":"2020-02-08T21:52:35+01:00","size":5598,"digest":"45403247c90050484813acf23c50f543779528e346317274373c3c24fd830103","integrity":"sha256-RUAyR8kAUEhIE6zyPFD1Q3eVKONGMXJ0Nzw8JP2DAQM="},"flags/4x3/ng-d52fd188be973f31dd34e5a0b3fed0de68fe736c8a41c6028d9c248c038c8641.svg":{"logical_path":"flags/4x3/ng.svg","mtime":"2020-02-08T21:52:35+01:00","size":263,"digest":"d52fd188be973f31dd34e5a0b3fed0de68fe736c8a41c6028d9c248c038c8641","integrity":"sha256-1S/RiL6XPzHdNOWgs/7Q3mj+c2yKQcYCjZwkjAOMhkE="},"flags/1x1/ng-f22edcc5867554d69ecbe15add0fbbb1389631f3ced07a4f820065c7770c65f5.svg":{"logical_path":"flags/1x1/ng.svg","mtime":"2020-02-08T21:52:35+01:00","size":263,"digest":"f22edcc5867554d69ecbe15add0fbbb1389631f3ced07a4f820065c7770c65f5","integrity":"sha256-8i7cxYZ1VNaey+Fa3Q+7sTiWMfPO0HpPggBlx3cMZfU="},"flags/4x3/ni-2fbb883e46fbe3b2ecfed9dac004ceb546f25c77a84a5966eea224674aebc610.svg":{"logical_path":"flags/4x3/ni.svg","mtime":"2020-02-08T21:52:35+01:00","size":18584,"digest":"2fbb883e46fbe3b2ecfed9dac004ceb546f25c77a84a5966eea224674aebc610","integrity":"sha256-L7uIPkb747Ls/tnawATOtUbyXHeoSllm7qIkZ0rrxhA="},"flags/1x1/ni-214aed148b615c4846f842b47f99cf178ac62a96cf18c5dd6b23467184b56680.svg":{"logical_path":"flags/1x1/ni.svg","mtime":"2020-02-08T21:52:35+01:00","size":18664,"digest":"214aed148b615c4846f842b47f99cf178ac62a96cf18c5dd6b23467184b56680","integrity":"sha256-IUrtFIthXEhG+EK0f5nPF4rGKpbPGMXdayNGcYS1ZoA="},"flags/4x3/nl-4f0ecea529dd4c0099dd41a7801fa5ac44aa04cd872ca31e11efd58b5a813774.svg":{"logical_path":"flags/4x3/nl.svg","mtime":"2020-02-08T21:52:35+01:00","size":367,"digest":"4f0ecea529dd4c0099dd41a7801fa5ac44aa04cd872ca31e11efd58b5a813774","integrity":"sha256-Tw7OpSndTACZ3UGngB+lrESqBM2HLKMeEe/Vi1qBN3Q="},"flags/1x1/nl-9c8f60e638879d642487818975e58c61cd3102f0e68c360708243c076436ff68.svg":{"logical_path":"flags/1x1/nl.svg","mtime":"2020-02-08T21:52:35+01:00","size":375,"digest":"9c8f60e638879d642487818975e58c61cd3102f0e68c360708243c076436ff68","integrity":"sha256-nI9g5jiHnWQkh4GJdeWMYc0xAvDmjDYHCCQ8B2Q2/2g="},"flags/4x3/no-270f7ee9d1d2efa6abf16f693faba8586adae842d79d8aad9e3f37e96c27cbce.svg":{"logical_path":"flags/4x3/no.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"270f7ee9d1d2efa6abf16f693faba8586adae842d79d8aad9e3f37e96c27cbce","integrity":"sha256-Jw9+6dHS76ar8W9pP6uoWGra6ELXnYqtnj836Wwny84="},"flags/1x1/no-7d377325e8c5ec4de0376e9f4c13463f183af637e6c443716f22020c7a313979.svg":{"logical_path":"flags/1x1/no.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"7d377325e8c5ec4de0376e9f4c13463f183af637e6c443716f22020c7a313979","integrity":"sha256-fTdzJejF7E3gN26fTBNGPxg69jfmxENxbyICDHoxOXk="},"flags/4x3/np-69637ddb3a173c4522a71598278aa32462e1762e34dd99c9dc99a515433a6cf8.svg":{"logical_path":"flags/4x3/np.svg","mtime":"2020-02-08T21:52:35+01:00","size":1061,"digest":"69637ddb3a173c4522a71598278aa32462e1762e34dd99c9dc99a515433a6cf8","integrity":"sha256-aWN92zoXPEUipxWYJ4qjJGLhdi403ZnJ3JmlFUM6bPg="},"flags/1x1/np-44ead118cce3a1fcbb720cc8d6eab6ecb6b62292315f61ae5963a40262ee11d2.svg":{"logical_path":"flags/1x1/np.svg","mtime":"2020-02-08T21:52:35+01:00","size":1199,"digest":"44ead118cce3a1fcbb720cc8d6eab6ecb6b62292315f61ae5963a40262ee11d2","integrity":"sha256-ROrRGMzjofy7cgzI1uq27La2IpIxX2GuWWOkAmLuEdI="},"flags/4x3/nr-0bd3c0ba7bbac4bd5985b838096eeebd67711d39065619ef092fa4bb55b22a6d.svg":{"logical_path":"flags/4x3/nr.svg","mtime":"2020-02-08T21:52:35+01:00","size":648,"digest":"0bd3c0ba7bbac4bd5985b838096eeebd67711d39065619ef092fa4bb55b22a6d","integrity":"sha256-C9PAunu6xL1Zhbg4CW7uvWdxHTkGVhnvCS+ku1WyKm0="},"flags/1x1/nr-63b9c44e5dd66a59895f52707dc24db5bd1eab6e535298d24e414c0f2dafcb3c.svg":{"logical_path":"flags/1x1/nr.svg","mtime":"2020-02-08T21:52:35+01:00","size":671,"digest":"63b9c44e5dd66a59895f52707dc24db5bd1eab6e535298d24e414c0f2dafcb3c","integrity":"sha256-Y7nETl3WalmJX1JwfcJNtb0eq25TUpjSTkFMDy2vyzw="},"flags/4x3/nu-259989e1eea0cbf6b41a33176a4c9c1eaa2e7ae6571ad80a324c6309bd5aa5fc.svg":{"logical_path":"flags/4x3/nu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1748,"digest":"259989e1eea0cbf6b41a33176a4c9c1eaa2e7ae6571ad80a324c6309bd5aa5fc","integrity":"sha256-JZmJ4e6gy/a0GjMXakycHqoueuZXGtgKMkxjCb1apfw="},"flags/1x1/nu-1cb535708f64ed8b386a245e571e677e935009af92f2b214760a2832c1ee1b53.svg":{"logical_path":"flags/1x1/nu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1736,"digest":"1cb535708f64ed8b386a245e571e677e935009af92f2b214760a2832c1ee1b53","integrity":"sha256-HLU1cI9k7Ys4aiReVx5nfpNQCa+S8rIUdgooMsHuG1M="},"flags/4x3/nz-90ceca2a683fbec395a91b77b0880cea99c3b2cbdb24caa5474925cbdcc3675e.svg":{"logical_path":"flags/4x3/nz.svg","mtime":"2020-02-08T21:52:35+01:00","size":3019,"digest":"90ceca2a683fbec395a91b77b0880cea99c3b2cbdb24caa5474925cbdcc3675e","integrity":"sha256-kM7KKmg/vsOVqRt3sIgM6pnDssvbJMqlR0kly9zDZ14="},"flags/1x1/nz-b0d78f165a72edd46599222a2ea5f6a91a8252975cb03e33c4ca08e389859aac.svg":{"logical_path":"flags/1x1/nz.svg","mtime":"2020-02-08T21:52:35+01:00","size":3045,"digest":"b0d78f165a72edd46599222a2ea5f6a91a8252975cb03e33c4ca08e389859aac","integrity":"sha256-sNePFlpy7dRlmSIqLqX2qRqCUpdcsD4zxMoI44mFmqw="},"flags/4x3/om-aadcca7bc7ad318400097b84849dd64c4744306cd9b4f152fba34f2e84116965.svg":{"logical_path":"flags/4x3/om.svg","mtime":"2020-02-08T21:52:35+01:00","size":22891,"digest":"aadcca7bc7ad318400097b84849dd64c4744306cd9b4f152fba34f2e84116965","integrity":"sha256-qtzKe8etMYQACXuEhJ3WTEdEMGzZtPFS+6NPLoQRaWU="},"flags/1x1/om-705e2bd2b2fc7d13c152aa06bfb9e6ee4ad8b299f8c06ca16adad0b18b2b18ed.svg":{"logical_path":"flags/1x1/om.svg","mtime":"2020-02-08T21:52:35+01:00","size":22875,"digest":"705e2bd2b2fc7d13c152aa06bfb9e6ee4ad8b299f8c06ca16adad0b18b2b18ed","integrity":"sha256-cF4r0rL8fRPBUqoGv7nm7krYspn4wGyhatrQsYsrGO0="},"flags/4x3/pa-027e679bd65dcaa2c53145a14669c1e674a467a889ef702cbe2a260f7ca8ad38.svg":{"logical_path":"flags/4x3/pa.svg","mtime":"2020-02-08T21:52:35+01:00","size":746,"digest":"027e679bd65dcaa2c53145a14669c1e674a467a889ef702cbe2a260f7ca8ad38","integrity":"sha256-An5nm9ZdyqLFMUWhRmnB5nSkZ6iJ73AsviomD3yorTg="},"flags/1x1/pa-edeb4faeadaa286de7fdc667e25d38ad0cdbccaec5023182fed6a3c74e8b09eb.svg":{"logical_path":"flags/1x1/pa.svg","mtime":"2020-02-08T21:52:35+01:00","size":662,"digest":"edeb4faeadaa286de7fdc667e25d38ad0cdbccaec5023182fed6a3c74e8b09eb","integrity":"sha256-7etPrq2qKG3n/cZn4l04rQzbzK7FAjGC/tajx06LCes="},"flags/4x3/pe-7ec59842737c90d6ff543f1831fd69b51e1e7ee1b068c3ac6259cbf2c214d611.svg":{"logical_path":"flags/4x3/pe.svg","mtime":"2020-02-08T21:52:35+01:00","size":74343,"digest":"7ec59842737c90d6ff543f1831fd69b51e1e7ee1b068c3ac6259cbf2c214d611","integrity":"sha256-fsWYQnN8kNb/VD8YMf1ptR4efuGwaMOsYlnL8sIU1hE="},"flags/1x1/pe-97d1b8ed1d4ed5e5f0348a731ca4a3a4b9abc7d440447dc87a521f229f375ed3.svg":{"logical_path":"flags/1x1/pe.svg","mtime":"2020-02-08T21:52:35+01:00","size":73629,"digest":"97d1b8ed1d4ed5e5f0348a731ca4a3a4b9abc7d440447dc87a521f229f375ed3","integrity":"sha256-l9G47R1O1eXwNIpzHKSjpLmrx9RARH3IelIfIp83XtM="},"flags/4x3/pf-27955c73c5be4043c5b7ddf64c8f46d11c6648e3b1fc0efe028b8afea21a40e1.svg":{"logical_path":"flags/4x3/pf.svg","mtime":"2020-02-08T21:52:35+01:00","size":4292,"digest":"27955c73c5be4043c5b7ddf64c8f46d11c6648e3b1fc0efe028b8afea21a40e1","integrity":"sha256-J5Vcc8W+QEPFt932TI9G0RxmSOOx/A7+AouK/qIaQOE="},"flags/1x1/pf-83e3e1d36fba45e015c62f938e6d182029edc05ebfdc50bcb33860f36f96d73a.svg":{"logical_path":"flags/1x1/pf.svg","mtime":"2020-02-08T21:52:35+01:00","size":4235,"digest":"83e3e1d36fba45e015c62f938e6d182029edc05ebfdc50bcb33860f36f96d73a","integrity":"sha256-g+Ph02+6ReAVxi+Tjm0YICntwF6/3FC8szhg82+W1zo="},"flags/4x3/pg-c2fdd2551f9044c461eccfae2d7ba0a347a99143f6002b71a429942af0217897.svg":{"logical_path":"flags/4x3/pg.svg","mtime":"2020-02-08T21:52:35+01:00","size":1671,"digest":"c2fdd2551f9044c461eccfae2d7ba0a347a99143f6002b71a429942af0217897","integrity":"sha256-wv3SVR+QRMRh7M+uLXugo0epkUP2ACtxpCmUKvAheJc="},"flags/1x1/pg-cf60257fa85f9270b1e9980e703435186110167f76c153bc460c10ee8b2d4b09.svg":{"logical_path":"flags/1x1/pg.svg","mtime":"2020-02-08T21:52:35+01:00","size":2111,"digest":"cf60257fa85f9270b1e9980e703435186110167f76c153bc460c10ee8b2d4b09","integrity":"sha256-z2Alf6hfknCx6ZgOcDQ1GGEQFn92wVO8RgwQ7ostSwk="},"flags/4x3/ph-bf3394850a6cec6a535420eabce263e7f8193413e4af1fb317c76da025388c1b.svg":{"logical_path":"flags/4x3/ph.svg","mtime":"2020-02-08T21:52:35+01:00","size":1303,"digest":"bf3394850a6cec6a535420eabce263e7f8193413e4af1fb317c76da025388c1b","integrity":"sha256-vzOUhQps7GpTVCDqvOJj5/gZNBPkrx+zF8dtoCU4jBs="},"flags/1x1/ph-006c3218effe4269252cb9638de82ea339eb2894951705c630533ceffa842169.svg":{"logical_path":"flags/1x1/ph.svg","mtime":"2020-02-08T21:52:35+01:00","size":1303,"digest":"006c3218effe4269252cb9638de82ea339eb2894951705c630533ceffa842169","integrity":"sha256-AGwyGO/+QmklLLljjeguoznrKJSVFwXGMFM87/qEIWk="},"flags/4x3/pk-b64f6a32e5bb598f57cfe49c4899c2021f2d153653f3d92101e6e11b2158e500.svg":{"logical_path":"flags/4x3/pk.svg","mtime":"2020-02-08T21:52:35+01:00","size":743,"digest":"b64f6a32e5bb598f57cfe49c4899c2021f2d153653f3d92101e6e11b2158e500","integrity":"sha256-tk9qMuW7WY9Xz+ScSJnCAh8tFTZT89khAebhGyFY5QA="},"flags/1x1/pk-d2d58def913c9081c5eeeda5f0b6895068ec13c955694e359531e23422145e60.svg":{"logical_path":"flags/1x1/pk.svg","mtime":"2020-02-08T21:52:35+01:00","size":694,"digest":"d2d58def913c9081c5eeeda5f0b6895068ec13c955694e359531e23422145e60","integrity":"sha256-0tWN75E8kIHF7u2l8LaJUGjsE8lVaU41lTHiNCIUXmA="},"flags/4x3/pl-f55a710991a94c2e6c2f9f1a7a4a36ebb84b24b7c9d9df4e1ffe86d61321fa6f.svg":{"logical_path":"flags/4x3/pl.svg","mtime":"2020-02-08T21:52:35+01:00","size":228,"digest":"f55a710991a94c2e6c2f9f1a7a4a36ebb84b24b7c9d9df4e1ffe86d61321fa6f","integrity":"sha256-9VpxCZGpTC5sL58aeko267hLJLfJ2d9OH/6G1hMh+m8="},"flags/1x1/pl-fafb539259385f2b99df910cff085710a9b4d9706b74e4e0f8a6ef627615c4e7.svg":{"logical_path":"flags/1x1/pl.svg","mtime":"2020-02-08T21:52:35+01:00","size":228,"digest":"fafb539259385f2b99df910cff085710a9b4d9706b74e4e0f8a6ef627615c4e7","integrity":"sha256-+vtTklk4XyuZ35EM/whXEKm02XBrdOTg+KbvYnYVxOc="},"flags/4x3/pm-8f6338d2ae3e0e42adc9754720ca21ad4979095cf6d7467a8db5a5a1c3e0b2a5.svg":{"logical_path":"flags/4x3/pm.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"8f6338d2ae3e0e42adc9754720ca21ad4979095cf6d7467a8db5a5a1c3e0b2a5","integrity":"sha256-j2M40q4+DkKtyXVHIMohrUl5CVz210Z6jbWlocPgsqU="},"flags/1x1/pm-63029c6198dc42c404ec39807a99528b1d198eeeea6f9a1e309548242480140b.svg":{"logical_path":"flags/1x1/pm.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"63029c6198dc42c404ec39807a99528b1d198eeeea6f9a1e309548242480140b","integrity":"sha256-YwKcYZjcQsQE7DmAeplSix0Zju7qb5oeMJVIJCSAFAs="},"flags/4x3/pn-4006c11ca83011c0dd60a13ac30b27da0578b9f1368bd8c6de5aab423f6662d8.svg":{"logical_path":"flags/4x3/pn.svg","mtime":"2020-02-08T21:52:35+01:00","size":10953,"digest":"4006c11ca83011c0dd60a13ac30b27da0578b9f1368bd8c6de5aab423f6662d8","integrity":"sha256-QAbBHKgwEcDdYKE6wwsn2gV4ufE2i9jG3lqrQj9mYtg="},"flags/1x1/pn-6c433f7f9cb79c6d5ed7bbeade8a495e3b26ca2604f4fd3995096109684ac5dd.svg":{"logical_path":"flags/1x1/pn.svg","mtime":"2020-02-08T21:52:35+01:00","size":8624,"digest":"6c433f7f9cb79c6d5ed7bbeade8a495e3b26ca2604f4fd3995096109684ac5dd","integrity":"sha256-bEM/f5y3nG1e17vq3opJXjsmyiYE9P05lQlhCWhKxd0="},"flags/4x3/pr-6287e1515fa80e2d05133ed93f14ca03a1be6909a9ef6c736fd60f9c9fe73132.svg":{"logical_path":"flags/4x3/pr.svg","mtime":"2020-02-08T21:52:35+01:00","size":634,"digest":"6287e1515fa80e2d05133ed93f14ca03a1be6909a9ef6c736fd60f9c9fe73132","integrity":"sha256-YofhUV+oDi0FEz7ZPxTKA6G+aQmp72xzb9YPnJ/nMTI="},"flags/1x1/pr-526985b3a6d2d6de577ed0ed92d0b49ce854667e3ff630304813fd5af15527cd.svg":{"logical_path":"flags/1x1/pr.svg","mtime":"2020-02-08T21:52:35+01:00","size":622,"digest":"526985b3a6d2d6de577ed0ed92d0b49ce854667e3ff630304813fd5af15527cd","integrity":"sha256-UmmFs6bS1t5XftDtktC0nOhUZn4/9jAwSBP9WvFVJ80="},"flags/4x3/ps-31f50e1fcb44b9aa6e9ce4473c3085f744e70ea0fa1fd8d85787f4e7b0c4a69b.svg":{"logical_path":"flags/4x3/ps.svg","mtime":"2020-02-08T21:52:35+01:00","size":558,"digest":"31f50e1fcb44b9aa6e9ce4473c3085f744e70ea0fa1fd8d85787f4e7b0c4a69b","integrity":"sha256-MfUOH8tEuapunORHPDCF90TnDqD6H9jYV4f057DEpps="},"flags/1x1/ps-c43918bc71bef71b24dd46e8cacc53e0df53e02dcce6199d06d11a4637f08a04.svg":{"logical_path":"flags/1x1/ps.svg","mtime":"2020-02-08T21:52:35+01:00","size":544,"digest":"c43918bc71bef71b24dd46e8cacc53e0df53e02dcce6199d06d11a4637f08a04","integrity":"sha256-xDkYvHG+9xsk3UboysxT4N9T4C3M5hmdBtEaRjfwigQ="},"flags/4x3/pt-9aab20caed714ee47fc408f017037aea94a649b3ba4d87e2da37870ee31e4f92.svg":{"logical_path":"flags/4x3/pt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8393,"digest":"9aab20caed714ee47fc408f017037aea94a649b3ba4d87e2da37870ee31e4f92","integrity":"sha256-mqsgyu1xTuR/xAjwFwN66pSmSbO6TYfi2jeHDuMeT5I="},"flags/1x1/pt-a309869e5018c9690a65ebdf8a2d69d61f82772068a7920f9680ed0581ae5966.svg":{"logical_path":"flags/1x1/pt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8775,"digest":"a309869e5018c9690a65ebdf8a2d69d61f82772068a7920f9680ed0581ae5966","integrity":"sha256-owmGnlAYyWkKZevfii1p1h+CdyBop5IPloDtBYGuWWY="},"flags/4x3/pw-9262037d114d0f61571c74f9a5455809709b43e6565443ae2667981eecb5f12a.svg":{"logical_path":"flags/4x3/pw.svg","mtime":"2020-02-08T21:52:35+01:00","size":467,"digest":"9262037d114d0f61571c74f9a5455809709b43e6565443ae2667981eecb5f12a","integrity":"sha256-kmIDfRFND2FXHHT5pUVYCXCbQ+ZWVEOuJmeYHuy18So="},"flags/1x1/pw-a6f42019653ae26d43c6e9b7bef83fc98cff8ec5e8d0c50ad7cb0a17d5e565a6.svg":{"logical_path":"flags/1x1/pw.svg","mtime":"2020-02-08T21:52:35+01:00","size":511,"digest":"a6f42019653ae26d43c6e9b7bef83fc98cff8ec5e8d0c50ad7cb0a17d5e565a6","integrity":"sha256-pvQgGWU64m1Dxum3vvg/yYz/jsXo0MUK18sKF9XlZaY="},"flags/4x3/py-5bc9e9f0dee94ae3d9bd80ae6fb1aac297dc81a1c592d0a73bc3383bce73af74.svg":{"logical_path":"flags/4x3/py.svg","mtime":"2020-02-08T21:52:35+01:00","size":17312,"digest":"5bc9e9f0dee94ae3d9bd80ae6fb1aac297dc81a1c592d0a73bc3383bce73af74","integrity":"sha256-W8np8N7pSuPZvYCub7GqwpfcgaHFktCnO8M4O85zr3Q="},"flags/1x1/py-182eff300f4507fd9399fb6310d1cd3b45adadd7924ad2814003c7111ec5c0de.svg":{"logical_path":"flags/1x1/py.svg","mtime":"2020-02-08T21:52:35+01:00","size":17478,"digest":"182eff300f4507fd9399fb6310d1cd3b45adadd7924ad2814003c7111ec5c0de","integrity":"sha256-GC7/MA9FB/2TmftjENHNO0WtrdeSStKBQAPHER7FwN4="},"flags/4x3/qa-32c93970f8e521850eddfaf2a89dfff987f0ae3b0b73a253c301b61cf547cf9e.svg":{"logical_path":"flags/4x3/qa.svg","mtime":"2020-02-08T21:52:35+01:00","size":362,"digest":"32c93970f8e521850eddfaf2a89dfff987f0ae3b0b73a253c301b61cf547cf9e","integrity":"sha256-Msk5cPjlIYUO3fryqJ3/+YfwrjsLc6JTwwG2HPVHz54="},"flags/1x1/qa-182e4d8ace2607d0c02d3c29d65eb084af71092357006bc41cd601981ec3b81c.svg":{"logical_path":"flags/1x1/qa.svg","mtime":"2020-02-08T21:52:35+01:00","size":359,"digest":"182e4d8ace2607d0c02d3c29d65eb084af71092357006bc41cd601981ec3b81c","integrity":"sha256-GC5Nis4mB9DALTwp1l6whK9xCSNXAGvEHNYBmB7DuBw="},"flags/4x3/re-8b2ea1f2727c266a2b80cb12a9b7195f6b656f521552b67893b6761a07f9bc92.svg":{"logical_path":"flags/4x3/re.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"8b2ea1f2727c266a2b80cb12a9b7195f6b656f521552b67893b6761a07f9bc92","integrity":"sha256-iy6h8nJ8JmorgMsSqbcZX2tlb1IVUrZ4k7Z2Ggf5vJI="},"flags/1x1/re-07eb7d855022bc678b47b0ce5fd05da5044d6dde86ad3697d4ae55c68ff447c1.svg":{"logical_path":"flags/1x1/re.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"07eb7d855022bc678b47b0ce5fd05da5044d6dde86ad3697d4ae55c68ff447c1","integrity":"sha256-B+t9hVAivGeLR7DOX9BdpQRNbd6GrTaX1K5Vxo/0R8E="},"flags/4x3/ro-4ab797571e1d9eb326486f75654a4590fd33f20444f85b77ba0997eb6138c21f.svg":{"logical_path":"flags/4x3/ro.svg","mtime":"2020-02-08T21:52:35+01:00","size":308,"digest":"4ab797571e1d9eb326486f75654a4590fd33f20444f85b77ba0997eb6138c21f","integrity":"sha256-SreXVx4dnrMmSG91ZUpFkP0z8gRE+Ft3ugmX62E4wh8="},"flags/1x1/ro-ddfcbaec04d11bf7f95abebd1d3a42b2862b1af8fca9b02764a6ed0e409a1d75.svg":{"logical_path":"flags/1x1/ro.svg","mtime":"2020-02-08T21:52:35+01:00","size":308,"digest":"ddfcbaec04d11bf7f95abebd1d3a42b2862b1af8fca9b02764a6ed0e409a1d75","integrity":"sha256-3fy67ATRG/f5Wr69HTpCsoYrGvj8qbAnZKbtDkCaHXU="},"flags/4x3/rs-dd8a52473ea40e23b393b5f4a30d1edd91865aab167f0c1835ae84b15dcce585.svg":{"logical_path":"flags/4x3/rs.svg","mtime":"2020-02-08T21:52:35+01:00","size":187640,"digest":"dd8a52473ea40e23b393b5f4a30d1edd91865aab167f0c1835ae84b15dcce585","integrity":"sha256-3YpSRz6kDiOzk7X0ow0e3ZGGWqsWfwwYNa6EsV3M5YU="},"flags/1x1/rs-42bf40209c92e4e7169daf29fbcb7253b2804eee7a463051529327f38851f865.svg":{"logical_path":"flags/1x1/rs.svg","mtime":"2020-02-08T21:52:35+01:00","size":187503,"digest":"42bf40209c92e4e7169daf29fbcb7253b2804eee7a463051529327f38851f865","integrity":"sha256-Qr9AIJyS5OcWna8p+8tyU7KATu56RjBRUpMn84hR+GU="},"flags/4x3/ru-13f4525a4caad6e31afa523d2bc4a0c1e6377c0bef1bfd872682130d3f199d1d.svg":{"logical_path":"flags/4x3/ru.svg","mtime":"2020-02-08T21:52:35+01:00","size":289,"digest":"13f4525a4caad6e31afa523d2bc4a0c1e6377c0bef1bfd872682130d3f199d1d","integrity":"sha256-E/RSWkyq1uMa+lI9K8SgweY3fAvvG/2HJoITDT8ZnR0="},"flags/1x1/ru-b9792a963faf667447e0456dba5be80a3b37c197a4284d1539a3433721d9e2fe.svg":{"logical_path":"flags/1x1/ru.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"b9792a963faf667447e0456dba5be80a3b37c197a4284d1539a3433721d9e2fe","integrity":"sha256-uXkqlj+vZnRH4EVtulvoCjs3wZekKE0VOaNDNyHZ4v4="},"flags/4x3/rw-bc38bcd6e19d2941839b253af6e863b13338cde1174874f9674471026c15e422.svg":{"logical_path":"flags/4x3/rw.svg","mtime":"2020-02-08T21:52:35+01:00","size":750,"digest":"bc38bcd6e19d2941839b253af6e863b13338cde1174874f9674471026c15e422","integrity":"sha256-vDi81uGdKUGDmyU69uhjsTM4zeEXSHT5Z0RxAmwV5CI="},"flags/1x1/rw-456698123775b83d2b0fa1b9fe073f9ccdba0b6bf39a703b8979dcce158eb32c.svg":{"logical_path":"flags/1x1/rw.svg","mtime":"2020-02-08T21:52:35+01:00","size":751,"digest":"456698123775b83d2b0fa1b9fe073f9ccdba0b6bf39a703b8979dcce158eb32c","integrity":"sha256-RWaYEjd1uD0rD6G5/gc/nM26C2vzmnA7iXnczhWOsyw="},"flags/4x3/sa-2b2fd6abb48415d5407c576c24a24fbd80af5877ef06cf2d026452f6c67f5f4d.svg":{"logical_path":"flags/4x3/sa.svg","mtime":"2020-02-08T21:52:35+01:00","size":10303,"digest":"2b2fd6abb48415d5407c576c24a24fbd80af5877ef06cf2d026452f6c67f5f4d","integrity":"sha256-Ky/Wq7SEFdVAfFdsJKJPvYCvWHfvBs8tAmRS9sZ/X00="},"flags/1x1/sa-d9ebc73e7957f86604164dd5054fb32601ad14d7dfd4bfe73da5bdd10bb2f8ae.svg":{"logical_path":"flags/1x1/sa.svg","mtime":"2020-02-08T21:52:35+01:00","size":10233,"digest":"d9ebc73e7957f86604164dd5054fb32601ad14d7dfd4bfe73da5bdd10bb2f8ae","integrity":"sha256-2evHPnlX+GYEFk3VBU+zJgGtFNff1L/nPaW90Quy+K4="},"flags/4x3/sb-37761927039d0a37ba0995c59fd31bbe36c8a0ca161e5b72b8131e3659f8dddf.svg":{"logical_path":"flags/4x3/sb.svg","mtime":"2020-02-08T21:52:35+01:00","size":950,"digest":"37761927039d0a37ba0995c59fd31bbe36c8a0ca161e5b72b8131e3659f8dddf","integrity":"sha256-N3YZJwOdCje6CZXFn9MbvjbIoMoWHltyuBMeNln43d8="},"flags/1x1/sb-bedbf8464cd82f391bfe6178c63055b650d0cf3aee60c37fa79a586f95783b79.svg":{"logical_path":"flags/1x1/sb.svg","mtime":"2020-02-08T21:52:35+01:00","size":956,"digest":"bedbf8464cd82f391bfe6178c63055b650d0cf3aee60c37fa79a586f95783b79","integrity":"sha256-vtv4RkzYLzkb/mF4xjBVtlDQzzruYMN/p5pYb5V4O3k="},"flags/4x3/sc-f6a2f8f37be93f07600b491b52cb58d80d74b92d8ace0af313f4ce081b0d1345.svg":{"logical_path":"flags/4x3/sc.svg","mtime":"2020-02-08T21:52:35+01:00","size":568,"digest":"f6a2f8f37be93f07600b491b52cb58d80d74b92d8ace0af313f4ce081b0d1345","integrity":"sha256-9qL483vpPwdgC0kbUstY2A10uS2KzgrzE/TOCBsNE0U="},"flags/1x1/sc-5dcd01b98c34460c9624280fb5047811fbae7d976620cd0a70ad4263a9085b60.svg":{"logical_path":"flags/1x1/sc.svg","mtime":"2020-02-08T21:52:35+01:00","size":573,"digest":"5dcd01b98c34460c9624280fb5047811fbae7d976620cd0a70ad4263a9085b60","integrity":"sha256-Xc0BuYw0RgyWJCgPtQR4EfuufZdmIM0KcK1CY6kIW2A="},"flags/4x3/sd-cc9cf97e8a37622b9e1bad28811d46c4471595afa448dc055e0e3aae7687fe4b.svg":{"logical_path":"flags/4x3/sd.svg","mtime":"2020-02-08T21:52:35+01:00","size":494,"digest":"cc9cf97e8a37622b9e1bad28811d46c4471595afa448dc055e0e3aae7687fe4b","integrity":"sha256-zJz5foo3YiueG60ogR1GxEcVla+kSNwFXg46rnaH/ks="},"flags/1x1/sd-1f5d13f9780085acbaad13d959b1918c796ba7b0450954b15d145e87cebe045c.svg":{"logical_path":"flags/1x1/sd.svg","mtime":"2020-02-08T21:52:35+01:00","size":496,"digest":"1f5d13f9780085acbaad13d959b1918c796ba7b0450954b15d145e87cebe045c","integrity":"sha256-H10T+XgAhay6rRPZWbGRjHlrp7BFCVSxXRReh86+BFw="},"flags/4x3/se-84b06bcd5bd90ea8dd6d1c3c8d2799a843c47b0256ce098aef75414964618286.svg":{"logical_path":"flags/4x3/se.svg","mtime":"2020-02-08T21:52:35+01:00","size":688,"digest":"84b06bcd5bd90ea8dd6d1c3c8d2799a843c47b0256ce098aef75414964618286","integrity":"sha256-hLBrzVvZDqjdbRw8jSeZqEPEewJWzgmK73VBSWRhgoY="},"flags/1x1/se-39f128686652cf914f8601110fcc9ac879bca204407013b93aff4ca4fb2ed9bc.svg":{"logical_path":"flags/1x1/se.svg","mtime":"2020-02-08T21:52:35+01:00","size":701,"digest":"39f128686652cf914f8601110fcc9ac879bca204407013b93aff4ca4fb2ed9bc","integrity":"sha256-OfEoaGZSz5FPhgERD8yayHm8ogRAcBO5Ov9MpPsu2bw="},"flags/4x3/sg-a82acd90077e76318ddb0be96999d9695b9a9f4627e8a0f341d3987a62747dcc.svg":{"logical_path":"flags/4x3/sg.svg","mtime":"2020-02-08T21:52:35+01:00","size":890,"digest":"a82acd90077e76318ddb0be96999d9695b9a9f4627e8a0f341d3987a62747dcc","integrity":"sha256-qCrNkAd+djGN2wvpaZnZaVuan0Yn6KDzQdOYemJ0fcw="},"flags/1x1/sg-c22e093634568aae249bf35f9ddcaa6796b5f27d76c39ff5336abf7f1b8a47d4.svg":{"logical_path":"flags/1x1/sg.svg","mtime":"2020-02-08T21:52:35+01:00","size":954,"digest":"c22e093634568aae249bf35f9ddcaa6796b5f27d76c39ff5336abf7f1b8a47d4","integrity":"sha256-wi4JNjRWiq4km/NfndyqZ5a18n12w5/1M2q/fxuKR9Q="},"flags/4x3/sh-57470d9a75955f0fac605a94e853bab524c7461a4c025e809fb09db762ebe46f.svg":{"logical_path":"flags/4x3/sh.svg","mtime":"2020-02-08T21:52:35+01:00","size":29702,"digest":"57470d9a75955f0fac605a94e853bab524c7461a4c025e809fb09db762ebe46f","integrity":"sha256-V0cNmnWVXw+sYFqU6FO6tSTHRhpMAl6An7Cdt2Lr5G8="},"flags/1x1/sh-8d06a0fff61e51eb65357d138e00736545835b8649aa2694152f4cdc9f941c16.svg":{"logical_path":"flags/1x1/sh.svg","mtime":"2020-02-08T21:52:35+01:00","size":30308,"digest":"8d06a0fff61e51eb65357d138e00736545835b8649aa2694152f4cdc9f941c16","integrity":"sha256-jQag//YeUetlNX0TjgBzZUWDW4ZJqiaUFS9M3J+UHBY="},"flags/4x3/si-289d6417f154323e7922df09ffc0f49ded31548c7ee8020c39cb85724ffbcea8.svg":{"logical_path":"flags/4x3/si.svg","mtime":"2020-02-08T21:52:35+01:00","size":2055,"digest":"289d6417f154323e7922df09ffc0f49ded31548c7ee8020c39cb85724ffbcea8","integrity":"sha256-KJ1kF/FUMj55It8J/8D0ne0xVIx+6AIMOcuFck/7zqg="},"flags/1x1/si-ca40a5f4f38119d6f52ffd3ddb36af95951a2aa1fadcd897f5bc1641bb2e0051.svg":{"logical_path":"flags/1x1/si.svg","mtime":"2020-02-08T21:52:35+01:00","size":2068,"digest":"ca40a5f4f38119d6f52ffd3ddb36af95951a2aa1fadcd897f5bc1641bb2e0051","integrity":"sha256-ykCl9POBGdb1L/092zavlZUaKqH63NiX9bwWQbsuAFE="},"flags/4x3/sj-67d4cdd268d0c0cd93fc561b506cb5646cb508385c93ed350d11f94aa1c83833.svg":{"logical_path":"flags/4x3/sj.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"67d4cdd268d0c0cd93fc561b506cb5646cb508385c93ed350d11f94aa1c83833","integrity":"sha256-Z9TN0mjQwM2T/FYbUGy1ZGy1CDhck+01DRH5SqHIODM="},"flags/1x1/sj-f7c489607033138039612d6abe7f4b0b4b6dada5cac75d78204f404a0d292b1c.svg":{"logical_path":"flags/1x1/sj.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"f7c489607033138039612d6abe7f4b0b4b6dada5cac75d78204f404a0d292b1c","integrity":"sha256-98SJYHAzE4A5YS1qvn9LC0ttraXKx114IE9ASg0pKxw="},"flags/4x3/sk-a0bdbb7f5d6998ffe9fcbc80bbdf0e6cff3629740d2ce1b8d61025e0a8b322b5.svg":{"logical_path":"flags/4x3/sk.svg","mtime":"2020-02-08T21:52:35+01:00","size":1208,"digest":"a0bdbb7f5d6998ffe9fcbc80bbdf0e6cff3629740d2ce1b8d61025e0a8b322b5","integrity":"sha256-oL27f11pmP/p/LyAu98ObP82KXQNLOG41hAl4KizIrU="},"flags/1x1/sk-a82a813b2d81af9be1aa775f22b2c2457d11e870e072d7e23957a11d0878faed.svg":{"logical_path":"flags/1x1/sk.svg","mtime":"2020-02-08T21:52:35+01:00","size":1187,"digest":"a82a813b2d81af9be1aa775f22b2c2457d11e870e072d7e23957a11d0878faed","integrity":"sha256-qCqBOy2Br5vhqndfIrLCRX0R6HDgctfiOVehHQh4+u0="},"flags/4x3/sl-be265bed24cfe0b25778201f251e52e4e721e3d319795875913805d1aea84ebb.svg":{"logical_path":"flags/4x3/sl.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"be265bed24cfe0b25778201f251e52e4e721e3d319795875913805d1aea84ebb","integrity":"sha256-viZb7STP4LJXeCAfJR5S5Och49MZeVh1kTgF0a6oTrs="},"flags/1x1/sl-cb8bccbaa21957f006ed4ae0144da81c999e93bd8014023b16b500fdcdc397d3.svg":{"logical_path":"flags/1x1/sl.svg","mtime":"2020-02-08T21:52:35+01:00","size":441,"digest":"cb8bccbaa21957f006ed4ae0144da81c999e93bd8014023b16b500fdcdc397d3","integrity":"sha256-y4vMuqIZV/AG7UrgFE2oHJmek72AFAI7FrUA/c3Dl9M="},"flags/4x3/sm-d7818df3f8f2d5dbed27dc5a0a80b1e41cdcd6130eeff221da58f0321e925f27.svg":{"logical_path":"flags/4x3/sm.svg","mtime":"2020-02-08T21:52:35+01:00","size":15960,"digest":"d7818df3f8f2d5dbed27dc5a0a80b1e41cdcd6130eeff221da58f0321e925f27","integrity":"sha256-14GN8/jy1dvtJ9xaCoCx5Bzc1hMO7/Ih2ljwMh6SXyc="},"flags/1x1/sm-6f87660dcac925bbdb036c79a0e20d3b208215d327be4c4764ae1069d6464efd.svg":{"logical_path":"flags/1x1/sm.svg","mtime":"2020-02-08T21:52:35+01:00","size":15881,"digest":"6f87660dcac925bbdb036c79a0e20d3b208215d327be4c4764ae1069d6464efd","integrity":"sha256-b4dmDcrJJbvbA2x5oOINOyCCFdMnvkxHZK4QadZGTv0="},"flags/4x3/sn-b131b17a374bcfbd00d442d282fa52f0e4e0e448cda1cdfaac25a95ff56443c0.svg":{"logical_path":"flags/4x3/sn.svg","mtime":"2020-02-08T21:52:35+01:00","size":427,"digest":"b131b17a374bcfbd00d442d282fa52f0e4e0e448cda1cdfaac25a95ff56443c0","integrity":"sha256-sTGxejdLz70A1ELSgvpS8OTg5EjNoc36rCWpX/VkQ8A="},"flags/1x1/sn-d180d3ce9846966dee6a3d9433ede7d24801dc4311636aabd470ec5b8765d772.svg":{"logical_path":"flags/1x1/sn.svg","mtime":"2020-02-08T21:52:35+01:00","size":418,"digest":"d180d3ce9846966dee6a3d9433ede7d24801dc4311636aabd470ec5b8765d772","integrity":"sha256-0YDTzphGlm3uaj2UM+3n0kgB3EMRY2qr1HDsW4dl13I="},"flags/4x3/so-3b5b77b371299478144a94b60c99524fb6b99bfedb3dcc976ab70185e07f399e.svg":{"logical_path":"flags/4x3/so.svg","mtime":"2020-02-08T21:52:35+01:00","size":494,"digest":"3b5b77b371299478144a94b60c99524fb6b99bfedb3dcc976ab70185e07f399e","integrity":"sha256-O1t3s3EplHgUSpS2DJlST7a5m/7bPcyXarcBheB/OZ4="},"flags/1x1/so-50aa941f2d2954285ef9e5ac260cdd264a73cf2e4b0c627677f04141fff2afd3.svg":{"logical_path":"flags/1x1/so.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"50aa941f2d2954285ef9e5ac260cdd264a73cf2e4b0c627677f04141fff2afd3","integrity":"sha256-UKqUHy0pVChe+eWsJgzdJkpzzy5LDGJ2d/BBQf/yr9M="},"flags/4x3/sr-94d0f0aefcbdea8d7ba35648eda5037e99bf4126723ce36416582ea43b08d3e2.svg":{"logical_path":"flags/4x3/sr.svg","mtime":"2020-02-08T21:52:35+01:00","size":318,"digest":"94d0f0aefcbdea8d7ba35648eda5037e99bf4126723ce36416582ea43b08d3e2","integrity":"sha256-lNDwrvy96o17o1ZI7aUDfpm/QSZyPONkFlgupDsI0+I="},"flags/1x1/sr-3944d683068d437471725d22fd71ccbe6a63ae307ff9775690417d3bf262cf82.svg":{"logical_path":"flags/1x1/sr.svg","mtime":"2020-02-08T21:52:35+01:00","size":323,"digest":"3944d683068d437471725d22fd71ccbe6a63ae307ff9775690417d3bf262cf82","integrity":"sha256-OUTWgwaNQ3Rxcl0i/XHMvmpjrjB/+XdWkEF9O/Jiz4I="},"flags/4x3/ss-f391e5002cbce83f97f7d1a11c284fa2e36a7d6dc734757d733656801ab17d0a.svg":{"logical_path":"flags/4x3/ss.svg","mtime":"2020-02-08T21:52:35+01:00","size":389,"digest":"f391e5002cbce83f97f7d1a11c284fa2e36a7d6dc734757d733656801ab17d0a","integrity":"sha256-85HlACy86D+X99GhHChPouNqfW3HNHV9czZWgBqxfQo="},"flags/1x1/ss-853bd9f713d2f6b1fe540a82e8bf4754912da21575b3fe756b8741767f318f7a.svg":{"logical_path":"flags/1x1/ss.svg","mtime":"2020-02-08T21:52:35+01:00","size":400,"digest":"853bd9f713d2f6b1fe540a82e8bf4754912da21575b3fe756b8741767f318f7a","integrity":"sha256-hTvZ9xPS9rH+VAqC6L9HVJEtohV1s/51a4dBdn8xj3o="},"flags/4x3/st-b52bb48a2c0800f5cb4b07bdd93c3908f77bcb6800be883ebf943bbd3d99d42c.svg":{"logical_path":"flags/4x3/st.svg","mtime":"2020-02-08T21:52:35+01:00","size":919,"digest":"b52bb48a2c0800f5cb4b07bdd93c3908f77bcb6800be883ebf943bbd3d99d42c","integrity":"sha256-tSu0iiwIAPXLSwe92Tw5CPd7y2gAvog+v5Q7vT2Z1Cw="},"flags/1x1/st-d8b5b1c8b9fe947086a4d277d2ac5d6b9cff188dfd37bda66c8bf5e02c5facc8.svg":{"logical_path":"flags/1x1/st.svg","mtime":"2020-02-08T21:52:35+01:00","size":923,"digest":"d8b5b1c8b9fe947086a4d277d2ac5d6b9cff188dfd37bda66c8bf5e02c5facc8","integrity":"sha256-2LWxyLn+lHCGpNJ30qxda5z/GI39N72mbIv14CxfrMg="},"flags/4x3/sv-6d02d63c7f04c9388e98f892cc43d8daa2110fc84242758d5627fcd247bfd09b.svg":{"logical_path":"flags/4x3/sv.svg","mtime":"2020-02-08T21:52:35+01:00","size":84037,"digest":"6d02d63c7f04c9388e98f892cc43d8daa2110fc84242758d5627fcd247bfd09b","integrity":"sha256-bQLWPH8EyTiOmPiSzEPY2qIRD8hCQnWNVif80ke/0Js="},"flags/1x1/sv-fb4c8d7eb98396a93c5b9c37195d70e809e0d71d8b8f9316e842121f95bb82ea.svg":{"logical_path":"flags/1x1/sv.svg","mtime":"2020-02-08T21:52:35+01:00","size":84509,"digest":"fb4c8d7eb98396a93c5b9c37195d70e809e0d71d8b8f9316e842121f95bb82ea","integrity":"sha256-+0yNfrmDlqk8W5w3GV1w6Ang1x2Lj5MW6EISH5W7guo="},"flags/4x3/sx-fb6a7b1cbc5b29eeeb39a5aec64ef7aad432c37bbe848d29955a3786b9763224.svg":{"logical_path":"flags/4x3/sx.svg","mtime":"2020-02-08T21:52:35+01:00","size":13306,"digest":"fb6a7b1cbc5b29eeeb39a5aec64ef7aad432c37bbe848d29955a3786b9763224","integrity":"sha256-+2p7HLxbKe7rOaWuxk73qtQyw3u+hI0plVo3hrl2MiQ="},"flags/1x1/sx-a37b124212f8530b921aef7657cfb35c2895a731c7a06f333faee4c93f32806a.svg":{"logical_path":"flags/1x1/sx.svg","mtime":"2020-02-08T21:52:35+01:00","size":13115,"digest":"a37b124212f8530b921aef7657cfb35c2895a731c7a06f333faee4c93f32806a","integrity":"sha256-o3sSQhL4UwuSGu92V8+zXCiVpzHHoG8zP67kyT8ygGo="},"flags/4x3/sy-e35f8d88c864ed4f38edb2f9f96d5bd69f6df078b50515b8c5467bf6b1689f50.svg":{"logical_path":"flags/4x3/sy.svg","mtime":"2020-02-08T21:52:35+01:00","size":568,"digest":"e35f8d88c864ed4f38edb2f9f96d5bd69f6df078b50515b8c5467bf6b1689f50","integrity":"sha256-41+NiMhk7U847bL5+W1b1p9t8Hi1BRW4xUZ79rFon1A="},"flags/1x1/sy-5d537bd5b42b58f6e8a7e33fbe5942a16126abb639edf9cb58b88938c57ebaa9.svg":{"logical_path":"flags/1x1/sy.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"5d537bd5b42b58f6e8a7e33fbe5942a16126abb639edf9cb58b88938c57ebaa9","integrity":"sha256-XVN71bQrWPbop+M/vllCoWEmq7Y57fnLWLiJOMV+uqk="},"flags/4x3/sz-c65ae592e943217787848364bdb4c57335869f4626ce705adabdc2620669c1c6.svg":{"logical_path":"flags/4x3/sz.svg","mtime":"2020-02-08T21:52:35+01:00","size":6755,"digest":"c65ae592e943217787848364bdb4c57335869f4626ce705adabdc2620669c1c6","integrity":"sha256-xlrlkulDIXeHhINkvbTFczWGn0YmznBa2r3CYgZpwcY="},"flags/1x1/sz-dd3d1c65bdf09317553f205e588e3dc7336acec1cb9315bfbe0f5bd8ca5bba3f.svg":{"logical_path":"flags/1x1/sz.svg","mtime":"2020-02-08T21:52:35+01:00","size":6706,"digest":"dd3d1c65bdf09317553f205e588e3dc7336acec1cb9315bfbe0f5bd8ca5bba3f","integrity":"sha256-3T0cZb3wkxdVPyBeWI49xzNqzsHLkxW/vg9b2Mpbuj8="},"flags/4x3/tc-594b6cc87040836c6d6777afb5833d565d3e5e75f404350a51443ec4588a1ccb.svg":{"logical_path":"flags/4x3/tc.svg","mtime":"2020-02-08T21:52:35+01:00","size":14585,"digest":"594b6cc87040836c6d6777afb5833d565d3e5e75f404350a51443ec4588a1ccb","integrity":"sha256-WUtsyHBAg2xtZ3evtYM9Vl0+XnX0BDUKUUQ+xFiKHMs="},"flags/1x1/tc-34a37006252eea340488220585c31d047b57e3e7934c77180d930972aaceadc3.svg":{"logical_path":"flags/1x1/tc.svg","mtime":"2020-02-08T21:52:35+01:00","size":14843,"digest":"34a37006252eea340488220585c31d047b57e3e7934c77180d930972aaceadc3","integrity":"sha256-NKNwBiUu6jQEiCIFhcMdBHtX4+eTTHcYDZMJcqrOrcM="},"flags/4x3/td-b67a1978e3badb895ff640c80bb6c0e33eac354220c08cf3fc93d62bf5d685a3.svg":{"logical_path":"flags/4x3/td.svg","mtime":"2020-02-08T21:52:35+01:00","size":270,"digest":"b67a1978e3badb895ff640c80bb6c0e33eac354220c08cf3fc93d62bf5d685a3","integrity":"sha256-tnoZeOO624lf9kDIC7bA4z6sNUIgwIzz/JPWK/XWhaM="},"flags/1x1/td-556b3a7991c17010cb7e1ff23c4edcc2dcdb8c406a128d407fd165ea8a19d311.svg":{"logical_path":"flags/1x1/td.svg","mtime":"2020-02-08T21:52:35+01:00","size":282,"digest":"556b3a7991c17010cb7e1ff23c4edcc2dcdb8c406a128d407fd165ea8a19d311","integrity":"sha256-VWs6eZHBcBDLfh/yPE7cwtzbjEBqEo1Af9Fl6ooZ0xE="},"flags/4x3/tf-35cd83351521f3022a43e01f0c40f34663a66ac1e92045979f31d3fd65c16d02.svg":{"logical_path":"flags/4x3/tf.svg","mtime":"2020-02-08T21:52:35+01:00","size":1091,"digest":"35cd83351521f3022a43e01f0c40f34663a66ac1e92045979f31d3fd65c16d02","integrity":"sha256-Nc2DNRUh8wIqQ+AfDEDzRmOmasHpIEWXnzHT/WXBbQI="},"flags/1x1/tf-485e71f61ff577735dbc4ba1025515c22a83c48ee7f3a2ed49804766c35f6ea5.svg":{"logical_path":"flags/1x1/tf.svg","mtime":"2020-02-08T21:52:35+01:00","size":1199,"digest":"485e71f61ff577735dbc4ba1025515c22a83c48ee7f3a2ed49804766c35f6ea5","integrity":"sha256-SF5x9h/1d3NdvEuhAlUVwiqDxI7n86LtSYBHZsNfbqU="},"flags/4x3/tg-24b25f4c2213fe35e5f5586d7ab23abf0c25ad2049708cd52ba72e1ec7b754ff.svg":{"logical_path":"flags/4x3/tg.svg","mtime":"2020-02-08T21:52:35+01:00","size":725,"digest":"24b25f4c2213fe35e5f5586d7ab23abf0c25ad2049708cd52ba72e1ec7b754ff","integrity":"sha256-JLJfTCIT/jXl9VhterI6vwwlrSBJcIzVK6cuHse3VP8="},"flags/1x1/tg-05f3d98392a5ec3e4aecf8f629d3d03f05ac55abb7d9d84187d599acfe271374.svg":{"logical_path":"flags/1x1/tg.svg","mtime":"2020-02-08T21:52:35+01:00","size":736,"digest":"05f3d98392a5ec3e4aecf8f629d3d03f05ac55abb7d9d84187d599acfe271374","integrity":"sha256-BfPZg5Kl7D5K7Pj2KdPQPwWsVau32dhBh9WZrP4nE3Q="},"flags/4x3/th-cc936bacd84dddd15454ef06bc64e357f83854af34692fc37363272d61f637d4.svg":{"logical_path":"flags/4x3/th.svg","mtime":"2020-02-08T21:52:35+01:00","size":287,"digest":"cc936bacd84dddd15454ef06bc64e357f83854af34692fc37363272d61f637d4","integrity":"sha256-zJNrrNhN3dFUVO8GvGTjV/g4VK80aS/Dc2MnLWH2N9Q="},"flags/1x1/th-de82cbd770db2be53a8e3d59d86e2b748a5d3f96eb8584f7b9364cefbd06a172.svg":{"logical_path":"flags/1x1/th.svg","mtime":"2020-02-08T21:52:35+01:00","size":288,"digest":"de82cbd770db2be53a8e3d59d86e2b748a5d3f96eb8584f7b9364cefbd06a172","integrity":"sha256-3oLL13DbK+U6jj1Z2G4rdIpdP5brhYT3uTZM770GoXI="},"flags/4x3/tj-b90bf3e2dd63265d55b67962b160df65f021c42b6ea304e2943c10b9e2a8749d.svg":{"logical_path":"flags/4x3/tj.svg","mtime":"2020-02-08T21:52:35+01:00","size":1831,"digest":"b90bf3e2dd63265d55b67962b160df65f021c42b6ea304e2943c10b9e2a8749d","integrity":"sha256-uQvz4t1jJl1VtnlisWDfZfAhxCtuowTilDwQueKodJ0="},"flags/1x1/tj-5f6571e74b1f8720f9ecc2d3aa2098ca45d2e7ad6602b2a57c206384719b9f36.svg":{"logical_path":"flags/1x1/tj.svg","mtime":"2020-02-08T21:52:35+01:00","size":1788,"digest":"5f6571e74b1f8720f9ecc2d3aa2098ca45d2e7ad6602b2a57c206384719b9f36","integrity":"sha256-X2Vx50sfhyD57MLTqiCYykXS561mArKlfCBjhHGbnzY="},"flags/4x3/tk-602520b29b909c96baea17a38eb654d6c6fbc7088f46a0cb8d8fe34ff92e3cb8.svg":{"logical_path":"flags/4x3/tk.svg","mtime":"2020-02-08T21:52:35+01:00","size":791,"digest":"602520b29b909c96baea17a38eb654d6c6fbc7088f46a0cb8d8fe34ff92e3cb8","integrity":"sha256-YCUgspuQnJa66hejjrZU1sb7xwiPRqDLjY/jT/kuPLg="},"flags/1x1/tk-fe1dc8aaa0643a45a74ecec8aec09f0fe2207d104bb3c28c0b84405f1275aeba.svg":{"logical_path":"flags/1x1/tk.svg","mtime":"2020-02-08T21:52:35+01:00","size":781,"digest":"fe1dc8aaa0643a45a74ecec8aec09f0fe2207d104bb3c28c0b84405f1275aeba","integrity":"sha256-/h3IqqBkOkWnTs7IrsCfD+IgfRBLs8KMC4RAXxJ1rro="},"flags/4x3/tl-ebdb862aa5ae5de1a72242571deaa70bfb222f488a93b70e304f2075b474d54b.svg":{"logical_path":"flags/4x3/tl.svg","mtime":"2020-02-08T21:52:35+01:00","size":600,"digest":"ebdb862aa5ae5de1a72242571deaa70bfb222f488a93b70e304f2075b474d54b","integrity":"sha256-69uGKqWuXeGnIkJXHeqnC/siL0iKk7cOME8gdbR01Us="},"flags/1x1/tl-485f02183bdb192ba3ce6e5f076e184112739f883ae0a8fde33c454377b848d6.svg":{"logical_path":"flags/1x1/tl.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"485f02183bdb192ba3ce6e5f076e184112739f883ae0a8fde33c454377b848d6","integrity":"sha256-SF8CGDvbGSujzm5fB24YQRJzn4g64Kj94zxFQ3e4SNY="},"flags/4x3/tm-5ddb4128bf0becd7c60413d5418027f5f01ca4bc72561d54b94febfee7a5a24b.svg":{"logical_path":"flags/4x3/tm.svg","mtime":"2020-02-08T21:52:35+01:00","size":32579,"digest":"5ddb4128bf0becd7c60413d5418027f5f01ca4bc72561d54b94febfee7a5a24b","integrity":"sha256-XdtBKL8L7NfGBBPVQYAn9fAcpLxyVh1UuU/r/ueloks="},"flags/1x1/tm-3521ad569a4095aa8d4166d5d9094fccfdbb3ea411207ad685b6dd5814ef3392.svg":{"logical_path":"flags/1x1/tm.svg","mtime":"2020-02-08T21:52:35+01:00","size":31884,"digest":"3521ad569a4095aa8d4166d5d9094fccfdbb3ea411207ad685b6dd5814ef3392","integrity":"sha256-NSGtVppAlaqNQWbV2QlPzP27PqQRIHrWhbbdWBTvM5I="},"flags/4x3/tn-ca27eb50d88b11d20b5b09e2bbecb7753267222489920c526608e5d2acd22d79.svg":{"logical_path":"flags/4x3/tn.svg","mtime":"2020-02-08T21:52:35+01:00","size":753,"digest":"ca27eb50d88b11d20b5b09e2bbecb7753267222489920c526608e5d2acd22d79","integrity":"sha256-yifrUNiLEdILWwniu+y3dTJnIiSJkgxSZgjl0qzSLXk="},"flags/1x1/tn-222c6cd4742c558f48ebcacb47ea334057642fffa3456a1c75e0fad9e728d09b.svg":{"logical_path":"flags/1x1/tn.svg","mtime":"2020-02-08T21:52:35+01:00","size":743,"digest":"222c6cd4742c558f48ebcacb47ea334057642fffa3456a1c75e0fad9e728d09b","integrity":"sha256-Iixs1HQsVY9I68rLR+ozQFdkL/+jRWocdeD62eco0Js="},"flags/4x3/to-c9c509fc24f591fbe52bbf732c44291384c787796e1fc9c703a973587c3f8ad1.svg":{"logical_path":"flags/4x3/to.svg","mtime":"2020-02-08T21:52:35+01:00","size":358,"digest":"c9c509fc24f591fbe52bbf732c44291384c787796e1fc9c703a973587c3f8ad1","integrity":"sha256-ycUJ/CT1kfvlK79zLEQpE4THh3luH8nHA6lzWHw/itE="},"flags/1x1/to-cf26dfb44b56b915b2f11896355cb778b938ed54423311d69d7cda9626887dda.svg":{"logical_path":"flags/1x1/to.svg","mtime":"2020-02-08T21:52:35+01:00","size":364,"digest":"cf26dfb44b56b915b2f11896355cb778b938ed54423311d69d7cda9626887dda","integrity":"sha256-zybftEtWuRWy8RiWNVy3eLk47VRCMxHWnXzaliaIfdo="},"flags/4x3/tr-c40f697070cf8d8358785b9203d1c8f438976e3cd644a87d9ee16fa9960deaa4.svg":{"logical_path":"flags/4x3/tr.svg","mtime":"2020-02-08T21:52:35+01:00","size":557,"digest":"c40f697070cf8d8358785b9203d1c8f438976e3cd644a87d9ee16fa9960deaa4","integrity":"sha256-xA9pcHDPjYNYeFuSA9HI9DiXbjzWRKh9nuFvqZYN6qQ="},"flags/1x1/tr-627dcf91a1e5153c045e33a3459b5d56002530fddd3fc53927f4d0fb7ea004a5.svg":{"logical_path":"flags/1x1/tr.svg","mtime":"2020-02-08T21:52:35+01:00","size":578,"digest":"627dcf91a1e5153c045e33a3459b5d56002530fddd3fc53927f4d0fb7ea004a5","integrity":"sha256-Yn3PkaHlFTwEXjOjRZtdVgAlMP3dP8U5J/TQ+36gBKU="},"flags/4x3/tt-04786ffedbde2c96a30ad1cbf4db000848f14bd700324651fc88364e5f3c2fd0.svg":{"logical_path":"flags/4x3/tt.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"04786ffedbde2c96a30ad1cbf4db000848f14bd700324651fc88364e5f3c2fd0","integrity":"sha256-BHhv/tveLJajCtHL9NsACEjxS9cAMkZR/Ig2Tl88L9A="},"flags/1x1/tt-6a3c73bfa7782366d95e673d847ef8f84c0475b364d359def1efd264297bac30.svg":{"logical_path":"flags/1x1/tt.svg","mtime":"2020-02-08T21:52:35+01:00","size":323,"digest":"6a3c73bfa7782366d95e673d847ef8f84c0475b364d359def1efd264297bac30","integrity":"sha256-ajxzv6d4I2bZXmc9hH74+EwEdbNk01ne8e/SZCl7rDA="},"flags/4x3/tv-20b56e7c0a2fbaa2a0b7b1bd87afc6368440f175fb3a0589de5e34e99d163fd7.svg":{"logical_path":"flags/4x3/tv.svg","mtime":"2020-02-08T21:52:35+01:00","size":2299,"digest":"20b56e7c0a2fbaa2a0b7b1bd87afc6368440f175fb3a0589de5e34e99d163fd7","integrity":"sha256-ILVufAovuqKgt7G9h6/GNoRA8XX7OgWJ3l406Z0WP9c="},"flags/1x1/tv-8bce1d7bde2e20dcc473ed3a33c66e4bedcf1acf2d2fff6d54353a480b8cafbc.svg":{"logical_path":"flags/1x1/tv.svg","mtime":"2020-02-08T21:52:35+01:00","size":2166,"digest":"8bce1d7bde2e20dcc473ed3a33c66e4bedcf1acf2d2fff6d54353a480b8cafbc","integrity":"sha256-i84de94uINzEc+06M8ZuS+3PGs8tL/9tVDU6SAuMr7w="},"flags/4x3/tw-36070ac0a15ab1f4811478da62e7678756a9aa266b141ed0549aba1c0e04333a.svg":{"logical_path":"flags/4x3/tw.svg","mtime":"2020-02-08T21:52:35+01:00","size":945,"digest":"36070ac0a15ab1f4811478da62e7678756a9aa266b141ed0549aba1c0e04333a","integrity":"sha256-NgcKwKFasfSBFHjaYudnh1apqiZrFB7QVJq6HA4EMzo="},"flags/1x1/tw-fd7a0db2f3808842ca99176f097356fe9e6f3c120d6aa9e8c4a9c2dd4c3943ba.svg":{"logical_path":"flags/1x1/tw.svg","mtime":"2020-02-08T21:52:35+01:00","size":960,"digest":"fd7a0db2f3808842ca99176f097356fe9e6f3c120d6aa9e8c4a9c2dd4c3943ba","integrity":"sha256-/XoNsvOAiELKmRdvCXNW/p5vPBINaqnoxKnC3Uw5Q7o="},"flags/4x3/tz-51ad7d69f059075df61b9226468af0d78642af4ad34a7540f64c5bea82e803d7.svg":{"logical_path":"flags/4x3/tz.svg","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"51ad7d69f059075df61b9226468af0d78642af4ad34a7540f64c5bea82e803d7","integrity":"sha256-Ua19afBZB132G5ImRorw14ZCr0rTSnVA9kxb6oLoA9c="},"flags/1x1/tz-0703f29a7ae02a9a1753cb1726dd2934d75ed3a12e8d63faa9fa866e1fe61440.svg":{"logical_path":"flags/1x1/tz.svg","mtime":"2020-02-08T21:52:35+01:00","size":605,"digest":"0703f29a7ae02a9a1753cb1726dd2934d75ed3a12e8d63faa9fa866e1fe61440","integrity":"sha256-BwPymnrgKpoXU8sXJt0pNNde06EujWP6qfqGbh/mFEA="},"flags/4x3/ua-7f7db03c3b492aaacd11b0abac70d543a7c0ec5265a36d529bbb80a7c432d81a.svg":{"logical_path":"flags/4x3/ua.svg","mtime":"2020-02-08T21:52:35+01:00","size":241,"digest":"7f7db03c3b492aaacd11b0abac70d543a7c0ec5265a36d529bbb80a7c432d81a","integrity":"sha256-f32wPDtJKqrNEbCrrHDVQ6fA7FJlo21Sm7uAp8Qy2Bo="},"flags/1x1/ua-25192fa80f120edb1dd1c4757fd7b79ef38f5e1729238f4135003e6a1501bf28.svg":{"logical_path":"flags/1x1/ua.svg","mtime":"2020-02-08T21:52:35+01:00","size":241,"digest":"25192fa80f120edb1dd1c4757fd7b79ef38f5e1729238f4135003e6a1501bf28","integrity":"sha256-JRkvqA8SDtsd0cR1f9e3nvOPXhcpI49BNQA+ahUBvyg="},"flags/4x3/ug-7635df53eafdf411be0809df835bfbcffd61badd6c4df3db0909c8b3188015a0.svg":{"logical_path":"flags/4x3/ug.svg","mtime":"2020-02-08T21:52:35+01:00","size":3959,"digest":"7635df53eafdf411be0809df835bfbcffd61badd6c4df3db0909c8b3188015a0","integrity":"sha256-djXfU+r99BG+CAnfg1v7z/1hut1sTfPbCQnIsxiAFaA="},"flags/1x1/ug-537f34f64e723fbe7cb7902ea0e61303f1ada79214197efc39ebe2c52ce24186.svg":{"logical_path":"flags/1x1/ug.svg","mtime":"2020-02-08T21:52:35+01:00","size":4038,"digest":"537f34f64e723fbe7cb7902ea0e61303f1ada79214197efc39ebe2c52ce24186","integrity":"sha256-U3809k5yP758t5AuoOYTA/Gtp5IUGX78OevixSziQYY="},"flags/4x3/um-a0ae80e34bbf94677dd6052ea87cc0090aba747dab5440e5ca6e231f7f07c96d.svg":{"logical_path":"flags/4x3/um.svg","mtime":"2020-02-08T21:52:35+01:00","size":4524,"digest":"a0ae80e34bbf94677dd6052ea87cc0090aba747dab5440e5ca6e231f7f07c96d","integrity":"sha256-oK6A40u/lGd91gUuqHzACQq6dH2rVEDlym4jH38HyW0="},"flags/1x1/um-3f1bc09babe7fdcf32518bb49d1aac3a66d0204f955eacca291c58d4f4ef895a.svg":{"logical_path":"flags/1x1/um.svg","mtime":"2020-02-08T21:52:35+01:00","size":3975,"digest":"3f1bc09babe7fdcf32518bb49d1aac3a66d0204f955eacca291c58d4f4ef895a","integrity":"sha256-PxvAm6vn/c8yUYu0nRqsOmbQIE+VXqzKKRxY1PTviVo="},"flags/4x3/us-aefd8f7e57d11f7b0416d01d9c665ab3848b10af849f35a4d772d58d24d83329.svg":{"logical_path":"flags/4x3/us.svg","mtime":"2020-02-08T21:52:35+01:00","size":4468,"digest":"aefd8f7e57d11f7b0416d01d9c665ab3848b10af849f35a4d772d58d24d83329","integrity":"sha256-rv2PflfRH3sEFtAdnGZas4SLEK+EnzWk13LVjSTYMyk="},"flags/1x1/us-87af45be9346e8c820312976abe332ee11f8931e29fa361328d28660a711b1e2.svg":{"logical_path":"flags/1x1/us.svg","mtime":"2020-02-08T21:52:35+01:00","size":3924,"digest":"87af45be9346e8c820312976abe332ee11f8931e29fa361328d28660a711b1e2","integrity":"sha256-h69FvpNG6MggMSl2q+My7hH4kx4p+jYTKNKGYKcRseI="},"flags/4x3/uy-9f636c8283abf56cc930746fd427c1d1644dcf8736c537629df13f760da96ebc.svg":{"logical_path":"flags/4x3/uy.svg","mtime":"2020-02-08T21:52:35+01:00","size":1721,"digest":"9f636c8283abf56cc930746fd427c1d1644dcf8736c537629df13f760da96ebc","integrity":"sha256-n2NsgoOr9WzJMHRv1CfB0WRNz4c2xTdinfE/dg2pbrw="},"flags/1x1/uy-e216b762a93ec55bf9b4ae3d35b7febe0b192a12246fd66c45139ce77fb2095e.svg":{"logical_path":"flags/1x1/uy.svg","mtime":"2020-02-08T21:52:35+01:00","size":1718,"digest":"e216b762a93ec55bf9b4ae3d35b7febe0b192a12246fd66c45139ce77fb2095e","integrity":"sha256-4ha3Yqk+xVv5tK49Nbf+vgsZKhIkb9ZsRROc53+yCV4="},"flags/4x3/uz-697d596705372323beddccb3626d1ce405b36249315c6b006ff1529e24909ceb.svg":{"logical_path":"flags/4x3/uz.svg","mtime":"2020-02-08T21:52:35+01:00","size":1457,"digest":"697d596705372323beddccb3626d1ce405b36249315c6b006ff1529e24909ceb","integrity":"sha256-aX1ZZwU3IyO+3cyzYm0c5AWzYkkxXGsAb/FSniSQnOs="},"flags/1x1/uz-aa34cbe4f6f0e4b5d890975578d28cc9b1e88ebd503d3bdca693748eb29b3353.svg":{"logical_path":"flags/1x1/uz.svg","mtime":"2020-02-08T21:52:35+01:00","size":1457,"digest":"aa34cbe4f6f0e4b5d890975578d28cc9b1e88ebd503d3bdca693748eb29b3353","integrity":"sha256-qjTL5Pbw5LXYkJdVeNKMybHojr1QPTvcppN0jrKbM1M="},"flags/4x3/va-d24d3c5bee108c396997c3d5b2bd2273433752d8c222eb531650e51551a4afd0.svg":{"logical_path":"flags/4x3/va.svg","mtime":"2020-02-08T21:52:35+01:00","size":91241,"digest":"d24d3c5bee108c396997c3d5b2bd2273433752d8c222eb531650e51551a4afd0","integrity":"sha256-0k08W+4QjDlpl8PVsr0ic0M3UtjCIutTFlDlFVGkr9A="},"flags/1x1/va-01160c1bffda12f0b94554ba0c50162a88da807943617334bd4c57a030985e95.svg":{"logical_path":"flags/1x1/va.svg","mtime":"2020-02-08T21:52:35+01:00","size":90876,"digest":"01160c1bffda12f0b94554ba0c50162a88da807943617334bd4c57a030985e95","integrity":"sha256-ARYMG//aEvC5RVS6DFAWKojagHlDYXM0vUxXoDCYXpU="},"flags/4x3/vc-ddf979bee2889414e5a05ac55f39a9c93f34e0aff0d35f007605049a2d8b5afb.svg":{"logical_path":"flags/4x3/vc.svg","mtime":"2020-02-08T21:52:35+01:00","size":454,"digest":"ddf979bee2889414e5a05ac55f39a9c93f34e0aff0d35f007605049a2d8b5afb","integrity":"sha256-3fl5vuKIlBTloFrFXzmpyT804K/w018AdgUEmi2LWvs="},"flags/1x1/vc-ac776e16dec19ff2e2d9238f541dae5d977282b451a83ab3d4122efed2392be9.svg":{"logical_path":"flags/1x1/vc.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"ac776e16dec19ff2e2d9238f541dae5d977282b451a83ab3d4122efed2392be9","integrity":"sha256-rHduFt7Bn/Li2SOPVB2uXZdygrRRqDqz1BIu/tI5K+k="},"flags/4x3/ve-e23abd006cc75a8c4f9ec1cb122b46f9b52e26c5606532d2c868277d4ccd523b.svg":{"logical_path":"flags/4x3/ve.svg","mtime":"2020-02-08T21:52:35+01:00","size":1171,"digest":"e23abd006cc75a8c4f9ec1cb122b46f9b52e26c5606532d2c868277d4ccd523b","integrity":"sha256-4jq9AGzHWoxPnsHLEitG+bUuJsVgZTLSyGgnfUzNUjs="},"flags/1x1/ve-1480713f28719e0a83da2c5f1333407dbfa5bcc0de8c9ba718fcf47273ee95ef.svg":{"logical_path":"flags/1x1/ve.svg","mtime":"2020-02-08T21:52:35+01:00","size":1191,"digest":"1480713f28719e0a83da2c5f1333407dbfa5bcc0de8c9ba718fcf47273ee95ef","integrity":"sha256-FIBxPyhxngqD2ixfEzNAfb+lvMDejJunGPz0cnPule8="},"flags/4x3/vg-7f8f24a4d6995e4dd39e3d9098dad5e14649821fa12ffc200edf0a586285ee15.svg":{"logical_path":"flags/4x3/vg.svg","mtime":"2020-02-08T21:52:35+01:00","size":24818,"digest":"7f8f24a4d6995e4dd39e3d9098dad5e14649821fa12ffc200edf0a586285ee15","integrity":"sha256-f48kpNaZXk3Tnj2QmNrV4UZJgh+hL/wgDt8KWGKF7hU="},"flags/1x1/vg-b464b6a78e46c29df9e4bdadc2646208f11c59168706456075f970552a24efa8.svg":{"logical_path":"flags/1x1/vg.svg","mtime":"2020-02-08T21:52:35+01:00","size":24997,"digest":"b464b6a78e46c29df9e4bdadc2646208f11c59168706456075f970552a24efa8","integrity":"sha256-tGS2p45Gwp355L2twmRiCPEcWRaHBkVgdflwVSok76g="},"flags/4x3/vi-58311325a293b046044976d899f288ce0fbe9bfd705a23947a9b38d7991983d7.svg":{"logical_path":"flags/4x3/vi.svg","mtime":"2020-02-08T21:52:35+01:00","size":8775,"digest":"58311325a293b046044976d899f288ce0fbe9bfd705a23947a9b38d7991983d7","integrity":"sha256-WDETJaKTsEYESXbYmfKIzg++m/1wWiOUeps415kZg9c="},"flags/1x1/vi-1c132d2cff66cdbdb7b6acf504bb0cd9d7579595d80c3fa6604ff24ca7a0184d.svg":{"logical_path":"flags/1x1/vi.svg","mtime":"2020-02-08T21:52:35+01:00","size":8730,"digest":"1c132d2cff66cdbdb7b6acf504bb0cd9d7579595d80c3fa6604ff24ca7a0184d","integrity":"sha256-HBMtLP9mzb23tqz1BLsM2ddXlZXYDD+mYE/yTKegGE0="},"flags/4x3/vn-a918d3c9cdc368b1d2ff9614d58cbcd1d43b725889b0ba18f5d4e693071e389a.svg":{"logical_path":"flags/4x3/vn.svg","mtime":"2020-02-08T21:52:35+01:00","size":492,"digest":"a918d3c9cdc368b1d2ff9614d58cbcd1d43b725889b0ba18f5d4e693071e389a","integrity":"sha256-qRjTyc3DaLHS/5YU1Yy80dQ7cliJsLoY9dTmkwceOJo="},"flags/1x1/vn-895e428ae3d98c99dbb02088cf8ef040bfb031df6f16c3c8fc3678505d869791.svg":{"logical_path":"flags/1x1/vn.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"895e428ae3d98c99dbb02088cf8ef040bfb031df6f16c3c8fc3678505d869791","integrity":"sha256-iV5CiuPZjJnbsCCIz47wQL+wMd9vFsPI/DZ4UF2Gl5E="},"flags/4x3/vu-2c286c778a7bed03cb603ab24b68dc91868f4f054cf4f851bdd17aa16731571c.svg":{"logical_path":"flags/4x3/vu.svg","mtime":"2020-02-08T21:52:35+01:00","size":3771,"digest":"2c286c778a7bed03cb603ab24b68dc91868f4f054cf4f851bdd17aa16731571c","integrity":"sha256-LChsd4p77QPLYDqyS2jckYaPTwVM9PhRvdF6oWcxVxw="},"flags/1x1/vu-51ef23121e2641ebeeac50d31c4e52b7d00d3ab1bc9fc0ad95ea86fd3631975a.svg":{"logical_path":"flags/1x1/vu.svg","mtime":"2020-02-08T21:52:35+01:00","size":3740,"digest":"51ef23121e2641ebeeac50d31c4e52b7d00d3ab1bc9fc0ad95ea86fd3631975a","integrity":"sha256-Ue8jEh4mQevurFDTHE5St9ANOrG8n8CtleqG/TYxl1o="},"flags/4x3/wf-f7e9ac5edac196ac32d7bafa04b5c0d924b89e9d7e4f3535a6a26c6c1523639c.svg":{"logical_path":"flags/4x3/wf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"f7e9ac5edac196ac32d7bafa04b5c0d924b89e9d7e4f3535a6a26c6c1523639c","integrity":"sha256-9+msXtrBlqwy17r6BLXA2SS4np1+TzU1pqJsbBUjY5w="},"flags/1x1/wf-95a920a79aa32d92f8a362321aae4230e17025ac04d976593f4423d0c37c1aee.svg":{"logical_path":"flags/1x1/wf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"95a920a79aa32d92f8a362321aae4230e17025ac04d976593f4423d0c37c1aee","integrity":"sha256-lakgp5qjLZL4o2IyGq5CMOFwJawE2XZZP0Qj0MN8Gu4="},"flags/4x3/ws-efc6505a802a3fa2018bc102fc2e11db8c738464c619381b6edc32d0a89341a3.svg":{"logical_path":"flags/4x3/ws.svg","mtime":"2020-02-08T21:52:35+01:00","size":663,"digest":"efc6505a802a3fa2018bc102fc2e11db8c738464c619381b6edc32d0a89341a3","integrity":"sha256-78ZQWoAqP6IBi8EC/C4R24xzhGTGGTgbbtwy0KiTQaM="},"flags/1x1/ws-e3afb81c037c814620027bf61ac5e266683cab7ba5796ecf10b64c110cfcb932.svg":{"logical_path":"flags/1x1/ws.svg","mtime":"2020-02-08T21:52:35+01:00","size":645,"digest":"e3afb81c037c814620027bf61ac5e266683cab7ba5796ecf10b64c110cfcb932","integrity":"sha256-46+4HAN8gUYgAnv2GsXiZmg8q3uleW7PELZMEQz8uTI="},"flags/4x3/ye-fd88856e70d66b01b4f0f608936a61cf3b1d9dad40a2932fc5da4d01f72a447b.svg":{"logical_path":"flags/4x3/ye.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"fd88856e70d66b01b4f0f608936a61cf3b1d9dad40a2932fc5da4d01f72a447b","integrity":"sha256-/YiFbnDWawG08PYIk2phzzsdna1AopMvxdpNAfcqRHs="},"flags/1x1/ye-0c0e32330871e6d83af54affb7dadbbe736f9799068508211fbae54db9bbdcc6.svg":{"logical_path":"flags/1x1/ye.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"0c0e32330871e6d83af54affb7dadbbe736f9799068508211fbae54db9bbdcc6","integrity":"sha256-DA4yMwhx5tg69Ur/t9rbvnNvl5kGhQghH7rlTbm73MY="},"flags/4x3/yt-2eef17b543424082d9f9b42a67e84c20b52e7f7eae8c4326d60711158da51d5b.svg":{"logical_path":"flags/4x3/yt.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"2eef17b543424082d9f9b42a67e84c20b52e7f7eae8c4326d60711158da51d5b","integrity":"sha256-Lu8XtUNCQILZ+bQqZ+hMILUuf36ujEMm1gcRFY2lHVs="},"flags/1x1/yt-911da8075337fd8f75ecc8a338c294cb771c6b9a08576f96c9de1437888cd2a7.svg":{"logical_path":"flags/1x1/yt.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"911da8075337fd8f75ecc8a338c294cb771c6b9a08576f96c9de1437888cd2a7","integrity":"sha256-kR2oB1M3/Y917MijOMKUy3cca5oIV2+Wyd4UN4iM0qc="},"flags/4x3/za-45991a2aee307198510e56bf92523070aac4241cafe6c3ddb8f89b20a61d6371.svg":{"logical_path":"flags/4x3/za.svg","mtime":"2020-02-08T21:52:35+01:00","size":856,"digest":"45991a2aee307198510e56bf92523070aac4241cafe6c3ddb8f89b20a61d6371","integrity":"sha256-RZkaKu4wcZhRDla/klIwcKrEJByv5sPduPibIKYdY3E="},"flags/1x1/za-bc09a89b29311ea7e582ef60bf4e18aff7c29de6fbefe309463ca765723a0ce8.svg":{"logical_path":"flags/1x1/za.svg","mtime":"2020-02-08T21:52:35+01:00","size":875,"digest":"bc09a89b29311ea7e582ef60bf4e18aff7c29de6fbefe309463ca765723a0ce8","integrity":"sha256-vAmomykxHqflgu9gv04Yr/fCneb77+MJRjynZXI6DOg="},"flags/4x3/zm-07c0f30d86e66d0cad9d66cd9c9384d9cce1844f159d245deff6717101fe49c2.svg":{"logical_path":"flags/4x3/zm.svg","mtime":"2020-02-08T21:52:35+01:00","size":5508,"digest":"07c0f30d86e66d0cad9d66cd9c9384d9cce1844f159d245deff6717101fe49c2","integrity":"sha256-B8DzDYbmbQytnWbNnJOE2czhhE8VnSRd7/ZxcQH+ScI="},"flags/1x1/zm-fc5bce3834c71fe36617ea5f57f0bd1dcf3880a7c6aa515dcf92ae067f796241.svg":{"logical_path":"flags/1x1/zm.svg","mtime":"2020-02-08T21:52:35+01:00","size":5429,"digest":"fc5bce3834c71fe36617ea5f57f0bd1dcf3880a7c6aa515dcf92ae067f796241","integrity":"sha256-/FvOODTHH+NmF+pfV/C9Hc84gKfGqlFdz5KuBn95YkE="},"flags/4x3/zw-5217c74f14d9fdda244b69c5982bbabee052ac0f1cc0704926e8b1e621e50f9a.svg":{"logical_path":"flags/4x3/zw.svg","mtime":"2020-02-08T21:52:35+01:00","size":6791,"digest":"5217c74f14d9fdda244b69c5982bbabee052ac0f1cc0704926e8b1e621e50f9a","integrity":"sha256-UhfHTxTZ/dokS2nFmCu6vuBSrA8cwHBJJuix5iHlD5o="},"flags/1x1/zw-a33b191c631709b9e1d85e06f5b15535fb544d4668c8bef865ede2a0b6a88ed9.svg":{"logical_path":"flags/1x1/zw.svg","mtime":"2020-02-08T21:52:35+01:00","size":6770,"digest":"a33b191c631709b9e1d85e06f5b15535fb544d4668c8bef865ede2a0b6a88ed9","integrity":"sha256-ozsZHGMXCbnh2F4G9bFVNftUTUZoyL74Ze3ioLaojtk="},"flags/4x3/es-ct-bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d.svg":{"logical_path":"flags/4x3/es-ct.svg","mtime":"2020-02-08T21:52:35+01:00","size":261,"digest":"bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d","integrity":"sha256-vLtFSlDJpkfv1D3PBBRF8V6N1wZUveUwv2JAHU+3c40="},"flags/1x1/es-ct-7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef.svg":{"logical_path":"flags/1x1/es-ct.svg","mtime":"2020-02-08T21:52:35+01:00","size":260,"digest":"7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef","integrity":"sha256-fxPrKy9cEdzNcEMoa+11QNTa1LGoNnsKyhuEBaNRsu8="},"flags/4x3/eu-5f129db64306353251b78f998d531d2f1019404cfa890ae63ed70dc316c7f240.svg":{"logical_path":"flags/4x3/eu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1252,"digest":"5f129db64306353251b78f998d531d2f1019404cfa890ae63ed70dc316c7f240","integrity":"sha256-XxKdtkMGNTJRt4+ZjVMdLxAZQEz6iQrmPtcNwxbH8kA="},"flags/1x1/eu-ec59ac8daf2a63ea8e299ad63a208445d68a96affe6a10a7328acb6799d44127.svg":{"logical_path":"flags/1x1/eu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1253,"digest":"ec59ac8daf2a63ea8e299ad63a208445d68a96affe6a10a7328acb6799d44127","integrity":"sha256-7Fmsja8qY+qOKZrWOiCERdaKlq/+ahCnMorLZ5nUQSc="},"flags/4x3/gb-eng-1895f4e35ae299f5d869da2462ffcf98df4b08dcddc531c8f175e49720001a14.svg":{"logical_path":"flags/4x3/gb-eng.svg","mtime":"2020-02-08T21:52:35+01:00","size":245,"digest":"1895f4e35ae299f5d869da2462ffcf98df4b08dcddc531c8f175e49720001a14","integrity":"sha256-GJX041rimfXYadokYv/PmN9LCNzdxTHI8XXklyAAGhQ="},"flags/1x1/gb-eng-d11afb87f40f35acda435a886ea044bd5e0b6f363ba0c7319f1d0181551fecf3.svg":{"logical_path":"flags/1x1/gb-eng.svg","mtime":"2020-02-08T21:52:35+01:00","size":235,"digest":"d11afb87f40f35acda435a886ea044bd5e0b6f363ba0c7319f1d0181551fecf3","integrity":"sha256-0Rr7h/QPNazaQ1qIbqBEvV4LbzY7oMcxnx0BgVUf7PM="},"flags/4x3/gb-nir-b280f09c787f495c1074376cd67537b40216f672917e7d204bb12b8e7c72afaf.svg":{"logical_path":"flags/4x3/gb-nir.svg","mtime":"2020-02-08T21:52:35+01:00","size":23738,"digest":"b280f09c787f495c1074376cd67537b40216f672917e7d204bb12b8e7c72afaf","integrity":"sha256-soDwnHh/SVwQdDds1nU3tAIW9nKRfn0gS7Erjnxyr68="},"flags/1x1/gb-nir-2e516e72e0e8e244ef430e6608322f8c4fb276807ab033279b2a6570dd68fd41.svg":{"logical_path":"flags/1x1/gb-nir.svg","mtime":"2020-02-08T21:52:35+01:00","size":25263,"digest":"2e516e72e0e8e244ef430e6608322f8c4fb276807ab033279b2a6570dd68fd41","integrity":"sha256-LlFucuDo4kTvQw5mCDIvjE+ydoB6sDMnmyplcN1o/UE="},"flags/4x3/gb-sct-1b9e407802ae901cf8da740c382ec2b19821837d76271a73346e0c63c2244506.svg":{"logical_path":"flags/4x3/gb-sct.svg","mtime":"2020-02-08T21:52:35+01:00","size":234,"digest":"1b9e407802ae901cf8da740c382ec2b19821837d76271a73346e0c63c2244506","integrity":"sha256-G55AeAKukBz42nQMOC7CsZghg312JxpzNG4MY8IkRQY="},"flags/1x1/gb-sct-d01e8a06a340e30ce52e8a3aba7ca6207afb96fdb238a815cc6cb92df8fa5df3.svg":{"logical_path":"flags/1x1/gb-sct.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"d01e8a06a340e30ce52e8a3aba7ca6207afb96fdb238a815cc6cb92df8fa5df3","integrity":"sha256-0B6KBqNA4wzlLoo6unymIHr7lv2yOKgVzGy5Lfj6XfM="},"flags/4x3/gb-wls-5232b3e376a19866cddec8225cba242783b2a48063811957f1ce5a2c347c5bc9.svg":{"logical_path":"flags/4x3/gb-wls.svg","mtime":"2020-02-08T21:52:35+01:00","size":9188,"digest":"5232b3e376a19866cddec8225cba242783b2a48063811957f1ce5a2c347c5bc9","integrity":"sha256-UjKz43ahmGbN3sgiXLokJ4OypIBjgRlX8c5aLDR8W8k="},"flags/1x1/gb-wls-126615bc3597fda1ca4ee931ef24f6c2cf2547998c06db9c1ded69fe66c479e9.svg":{"logical_path":"flags/1x1/gb-wls.svg","mtime":"2020-02-08T21:52:35+01:00","size":9083,"digest":"126615bc3597fda1ca4ee931ef24f6c2cf2547998c06db9c1ded69fe66c479e9","integrity":"sha256-EmYVvDWX/aHKTukx7yT2ws8lR5mMBtucHe1p/mbEeek="},"flags/4x3/un-31dece22ae18c3e01e86648ef3ef45f2f5b3d9d28a1e2bbbcdb1d87c37af55af.svg":{"logical_path":"flags/4x3/un.svg","mtime":"2020-02-08T21:52:35+01:00","size":20268,"digest":"31dece22ae18c3e01e86648ef3ef45f2f5b3d9d28a1e2bbbcdb1d87c37af55af","integrity":"sha256-Md7OIq4Yw+AehmSO8+9F8vWz2dKKHiu7zbHYfDevVa8="},"flags/1x1/un-455b5f3173ca9ac64f2135fac4ead7217d7fbe07551d0d2cc60216f83208f798.svg":{"logical_path":"flags/1x1/un.svg","mtime":"2020-02-08T21:52:35+01:00","size":20476,"digest":"455b5f3173ca9ac64f2135fac4ead7217d7fbe07551d0d2cc60216f83208f798","integrity":"sha256-RVtfMXPKmsZPITX6xOrXIX1/vgdVHQ0sxgIW+DII95g="},"leaflet/dist/images/layers-1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6.png":{"logical_path":"leaflet/dist/images/layers.png","mtime":"2020-02-25T22:08:25+01:00","size":696,"digest":"1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6","integrity":"sha256-Hbvp0CjikvNvy6j4s6KNXokydU/CIVuaxp5M3s9RB8Y="},"leaflet/dist/images/layers-2x-066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf.png":{"logical_path":"leaflet/dist/images/layers-2x.png","mtime":"2020-02-25T22:08:25+01:00","size":1259,"digest":"066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf","integrity":"sha256-Bm2sqFDY/77wB68AsG6sABVyje4nnFHzy2xxbffELt8="},"leaflet/dist/images/marker-icon-574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437.png":{"logical_path":"leaflet/dist/images/marker-icon.png","mtime":"2020-02-25T22:08:25+01:00","size":1466,"digest":"574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437","integrity":"sha256-V0w6XMqF9BFAhbaEFZbWLwDXyJLHsD8oy/owHesdxDc="},"markers-soft-e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739.png":{"logical_path":"markers-soft.png","mtime":"2020-02-25T22:08:25+01:00","size":41226,"digest":"e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739","integrity":"sha256-54eE5O1wqv/d1zwxX6tZAjPMTntyOI191HoUeW/Hxzk="},"markers-shadow-8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20.png":{"logical_path":"markers-shadow.png","mtime":"2020-02-25T22:08:25+01:00","size":535,"digest":"8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20","integrity":"sha256-hwOiJicQ9ePSnmXSrN+Q1lEuFZ4RnSe4I0cx2KYgiiA="},"markers-soft@2x-c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf.png":{"logical_path":"markers-soft@2x.png","mtime":"2020-02-25T22:08:25+01:00","size":66408,"digest":"c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf","integrity":"sha256-wedyU6i/vjDOwkiF1wRvRDt267ZvTJYfdwg7A/Sly68="},"markers-shadow@2x-b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a.png":{"logical_path":"markers-shadow@2x.png","mtime":"2020-02-25T22:08:25+01:00","size":1469,"digest":"b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a","integrity":"sha256-shpTa+JzE/tQT2n1iZ/wsSRbJ2VxdprAjWwyw1Z25Ho="},"events-f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315.js":{"logical_path":"events.js","mtime":"2020-02-25T22:08:25+01:00","size":1220,"digest":"f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315","integrity":"sha256-8SoWxoyEdnz8Iix2PVbiIJvE1a1RnwUJXy1EKcCxoxU="},"filter-2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca.js":{"logical_path":"filter.js","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca","integrity":"sha256-LslrnQxlDIgJQdfp/VaN7NHVh9wDfRBhRKB60QOw4Mo="},"flash-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js":{"logical_path":"flash.js","mtime":"2020-02-25T22:08:25+01:00","size":82,"digest":"41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7","integrity":"sha256-QfW5Ugb3poS4nrmXhGoBFV+UqwtlaLQnVwTT8oX1mdc="},"frTypo-fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836.js":{"logical_path":"frTypo.js","mtime":"2020-02-25T22:08:25+01:00","size":1962,"digest":"fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836","integrity":"sha256-/tmLfSzhh8Kjz/kVOsaqLb97kdM4Cdp3xlYf800b6DY="},"list-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js":{"logical_path":"list.js","mtime":"2020-01-16T20:20:11+01:00","size":82,"digest":"41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7","integrity":"sha256-QfW5Ugb3poS4nrmXhGoBFV+UqwtlaLQnVwTT8oX1mdc="},"maps-e86261c3df6f4ff292d786ab7261c98c408f466557b2f4915ae6dc25c1a05819.js":{"logical_path":"maps.js","mtime":"2020-01-07T21:15:22+01:00","size":3970,"digest":"e86261c3df6f4ff292d786ab7261c98c408f466557b2f4915ae6dc25c1a05819","integrity":"sha256-6GJhw99vT/KS14arcmHJjECPRmVXsvSRWubcJcGgWBk="},"moderations-c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380.js":{"logical_path":"moderations.js","mtime":"2020-02-25T22:08:25+01:00","size":377,"digest":"c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380","integrity":"sha256-xUca/ddRI/27Nu4UuF5mM8gSfQwRXjWTFhbDKahgU4A="},"notes-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js":{"logical_path":"notes.js","mtime":"2020-02-25T22:08:25+01:00","size":31,"digest":"85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb","integrity":"sha256-hYGcc4kg1P4+a4lxZ4hZDSey20sRgCwKDN1Iuu+xj8s="},"orgas-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js":{"logical_path":"orgas.js","mtime":"2020-02-25T22:08:25+01:00","size":31,"digest":"85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb","integrity":"sha256-hYGcc4kg1P4+a4lxZ4hZDSey20sRgCwKDN1Iuu+xj8s="},"pages-9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084.js":{"logical_path":"pages.js","mtime":"2020-02-25T22:08:25+01:00","size":694,"digest":"9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084","integrity":"sha256-ncyMs2JqnxmKuV+eZLtNJpFnp0Bd0H+UFA9extMrYIQ="},"pagination-ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5.js":{"logical_path":"pagination.js","mtime":"2020-01-16T20:20:11+01:00","size":728,"digest":"ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5","integrity":"sha256-q2uK+r49U3ZCh+2dDunUtwksq5jN+0U6VEcQZv7QWqU="},"setup_tinymce-f15efe5d488b3807165ccb6d0b237be3ba234c67200d309a1fa9dc4bf0d2ee08.js":{"logical_path":"setup_tinymce.js","mtime":"2019-12-22T12:30:30+01:00","size":1033,"digest":"f15efe5d488b3807165ccb6d0b237be3ba234c67200d309a1fa9dc4bf0d2ee08","integrity":"sha256-8V7+XUiLOAcWXMttCyN747ojTGcgDTCaH6ncS/DS7gg="},"stats-40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400.js":{"logical_path":"stats.js","mtime":"2020-02-25T22:08:25+01:00","size":908,"digest":"40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400","integrity":"sha256-QCldZH5hRHFbyftF9gCW3f+ROv3fEYRK6s2kfL7WhAA="},"_variables-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css":{"logical_path":"_variables.css","mtime":"2020-02-25T22:08:25+01:00","size":0,"digest":"d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6","integrity":"sha256-0P9ZdLaqUs9WK+pZIYQMAyqGCpGjUS9/6Pdo9rvgBfY="},"agendadescommuns-734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55.css":{"logical_path":"agendadescommuns.css","mtime":"2020-02-25T22:08:25+01:00","size":939,"digest":"734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55","integrity":"sha256-c00kiEr3buFn/PEC29vsQ+Wycm5l9Aw1CtOAD37pn1U="},"all-a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27.css":{"logical_path":"all.css","mtime":"2020-02-25T22:08:25+01:00","size":2745,"digest":"a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27","integrity":"sha256-pVqe12L4NE7NdDRjCK5wZqKD00MC+84e9ZJK1c4Zuyc="},"digest-e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3.css":{"logical_path":"digest.css","mtime":"2020-02-25T22:08:25+01:00","size":304,"digest":"e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3","integrity":"sha256-4T3QOnIWXO9QJ7gad09Fj+GmkQ0rqq6EuuVgsxmad8M="},"events-bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6.css":{"logical_path":"events.css","mtime":"2020-02-25T22:08:25+01:00","size":3191,"digest":"bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6","integrity":"sha256-u1ZkmoxbEdC4AFqOI+dWDzTXt5/MzM/+ShQHECz//tY="},"form-f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988.css":{"logical_path":"form.css","mtime":"2020-02-25T22:08:25+01:00","size":65684,"digest":"f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988","integrity":"sha256-8dpfZfNa9Eic95Bn9cBAmuXZ5BqoKG/P7xNyf9RqqYg="},"frTypo-ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512.css":{"logical_path":"frTypo.css","mtime":"2020-02-25T22:08:25+01:00","size":76,"digest":"ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512","integrity":"sha256-68qkX6fAv3gh0FlZqs7aY9JqMNMAeecGGZMrDh1J9RI="},"list-2a097a62ec89bc6d4d544dc4a4e4a1258b470b755ad0ad694b9f5b3cf4782f67.css":{"logical_path":"list.css","mtime":"2019-12-25T17:18:51+01:00","size":923,"digest":"2a097a62ec89bc6d4d544dc4a4e4a1258b470b755ad0ad694b9f5b3cf4782f67","integrity":"sha256-Kgl6YuyJvG1NVE3EpOShJYtHC3Va0K1pS59bPPR4L2c="},"maps-644829bf7b14b0c1b73efb7b2d44049969271bd969174b5bf7c53d0159cf424c.css":{"logical_path":"maps.css","mtime":"2020-01-17T21:34:48+01:00","size":536,"digest":"644829bf7b14b0c1b73efb7b2d44049969271bd969174b5bf7c53d0159cf424c","integrity":"sha256-ZEgpv3sUsMG3Pvt7LUQEmWknG9lpF0tb98U9AVnPQkw="},"mobile-59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36.css":{"logical_path":"mobile.css","mtime":"2020-02-25T22:08:25+01:00","size":2414,"digest":"59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36","integrity":"sha256-Wbeu7Y5+5uLO17t6byaunk4u08UUpYTA5wYSi0rX/jY="},"moderations-f561bf2c27715b6015b7dce1af2ce2358f05ca4d62794d199e3b2cdaec0be8f4.css":{"logical_path":"moderations.css","mtime":"2019-12-22T12:30:30+01:00","size":898,"digest":"f561bf2c27715b6015b7dce1af2ce2358f05ca4d62794d199e3b2cdaec0be8f4","integrity":"sha256-9WG/LCdxW2AVt9zhryziNY8Fyk1ieU0Znjss2uwL6PQ="},"notes-e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f.css":{"logical_path":"notes.css","mtime":"2020-02-25T22:08:25+01:00","size":37,"digest":"e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f","integrity":"sha256-5gclC5zvAjp2LACazGXDMg7B9tWBSjCqPBupB7T4y18="},"orgas-dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80.css":{"logical_path":"orgas.css","mtime":"2020-02-25T22:08:25+01:00","size":672,"digest":"dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80","integrity":"sha256-3XoqP8Z+n6FGdeG1kmO4+D4FInTWuQCHWw7kSUFDrYA="},"pages-5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2.css":{"logical_path":"pages.css","mtime":"2020-02-25T22:08:25+01:00","size":75,"digest":"5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2","integrity":"sha256-Xu2RR8nP6E6xKZvAyg2LDIH7DAfss44mlJ59Tkg3RuI="},"region-d285b5ecdf6d5b5ee68faac92854e4868a609e5509b90e90047178ac45649153.css":{"logical_path":"region.css","mtime":"2019-12-22T12:30:30+01:00","size":1903,"digest":"d285b5ecdf6d5b5ee68faac92854e4868a609e5509b90e90047178ac45649153","integrity":"sha256-0oW17N9tW17mj6rJKFTkhopgnlUJuQ6QBHF4rEVkkVM="},"scaffolds-c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b.css":{"logical_path":"scaffolds.css","mtime":"2020-02-25T22:08:25+01:00","size":430,"digest":"c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b","integrity":"sha256-wm/uVRCHw7clQcrlKhzGtFTxU+LQTAHUs1uewa5s8Js="},"sessions-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css":{"logical_path":"sessions.css","mtime":"2020-02-25T22:08:25+01:00","size":0,"digest":"d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6","integrity":"sha256-0P9ZdLaqUs9WK+pZIYQMAyqGCpGjUS9/6Pdo9rvgBfY="},"stats-b4f6f94d2f8dc057ec80c9ceeeaca31517882a8fd0b9f09d5f285896414c8685.css":{"logical_path":"stats.css","mtime":"2019-12-22T12:30:30+01:00","size":371,"digest":"b4f6f94d2f8dc057ec80c9ceeeaca31517882a8fd0b9f09d5f285896414c8685","integrity":"sha256-tPb5TS+NwFfsgMnO7qyjFReIKo/QufCdXyhYlkFMhoU="},"tags-c338d658bc3a1e40d8c6694d1fab6a633686ccc2c626563f890384fab38c20f0.css":{"logical_path":"tags.css","mtime":"2020-02-08T21:52:35+01:00","size":1399,"digest":"c338d658bc3a1e40d8c6694d1fab6a633686ccc2c626563f890384fab38c20f0","integrity":"sha256-wzjWWLw6HkDYxmlNH6tqYzaGzMLGJlY/iQOE+rOMIPA="},"versions-3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb.css":{"logical_path":"versions.css","mtime":"2020-02-25T22:08:25+01:00","size":47,"digest":"3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb","integrity":"sha256-Pipv/cb3cosOXlF6IIxNGnIWem1NprxNNttJQRUJJrs="},"application-6b0077e2b1b028a9968bff6fdbdebe5b37dd002896e7d4347fbf021c89927562.js":{"logical_path":"application.js","mtime":"2019-12-25T17:18:50+01:00","size":2001537,"digest":"6b0077e2b1b028a9968bff6fdbdebe5b37dd002896e7d4347fbf021c89927562","integrity":"sha256-awB34rGwKKmWi/9v296+WzfdACiW59Q0f78CHImSdWI="},"application-1026d28c200fb525d92a5552bc812bd5f0277f5a854b5d3cf9ac3d6fe66bc465.css":{"logical_path":"application.css","mtime":"2019-12-25T17:18:51+01:00","size":232293,"digest":"1026d28c200fb525d92a5552bc812bd5f0277f5a854b5d3cf9ac3d6fe66bc465","integrity":"sha256-ECbSjCAPtSXZKlVSvIEr1fAnf1qFS108+aw9b+ZrxGU="},"setup_tinymce-4e26b56d48453796509fb70dc4176cac5d18aa582260cd665efe0f192886ca4c.js":{"logical_path":"setup_tinymce.js","mtime":"2019-12-25T17:18:51+01:00","size":1033,"digest":"4e26b56d48453796509fb70dc4176cac5d18aa582260cd665efe0f192886ca4c","integrity":"sha256-Tia1bUhFN5ZQn7cNxBdsrF0YqlgiYM1mXv4PGSiGykw="},"moderations-d96d93c516d69b280e4d312ec96d2c13f3650e03c57cc08bf582b2d26bf2882e.css":{"logical_path":"moderations.css","mtime":"2019-12-25T17:18:51+01:00","size":939,"digest":"d96d93c516d69b280e4d312ec96d2c13f3650e03c57cc08bf582b2d26bf2882e","integrity":"sha256-2W2TxRbWmygOTTEuyW0sE/NlDgPFfMCL9YKy0mvyiC4="},"region-0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e.css":{"logical_path":"region.css","mtime":"2020-02-25T22:08:25+01:00","size":1871,"digest":"0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e","integrity":"sha256-DUFsYXGliOtqGkBkLymE8IsLIF0uqwd7Er2Fn9YM7z4="},"stats-e46b6e6ffdd66de16d29c029216debae3fc6f81d83e21bc8be2700df34cb4f20.css":{"logical_path":"stats.css","mtime":"2019-12-25T17:18:51+01:00","size":403,"digest":"e46b6e6ffdd66de16d29c029216debae3fc6f81d83e21bc8be2700df34cb4f20","integrity":"sha256-5Gtub/3WbeFtKcApIW3rrj/G+B2D4hvIvicA3zTLTyA="},"active_admin-dec69308746afc6dbd02775421aa3e1f79637faf69ee5142205b51e446e82b71.css":{"logical_path":"active_admin.css","mtime":"2020-01-16T20:20:11+01:00","size":107471,"digest":"dec69308746afc6dbd02775421aa3e1f79637faf69ee5142205b51e446e82b71","integrity":"sha256-3saTCHRq/G29AndUIao+H3ljf69p7lFCIFtR5EboK3E="},"application-fb731c41db1a05bf805327a9592adeebe78029f52947b9410e3cf935ee82fbd0.js":{"logical_path":"application.js","mtime":"2020-01-07T21:15:21+01:00","size":2001537,"digest":"fb731c41db1a05bf805327a9592adeebe78029f52947b9410e3cf935ee82fbd0","integrity":"sha256-+3McQdsaBb+AUyepWSre6+eAKfUpR7lBDjz5Ne6C+9A="},"application-8002eadc07c8d58b56bad6f45a5e2607344c903abacfe94121bd35aa25f764a8.css":{"logical_path":"application.css","mtime":"2020-01-16T20:20:11+01:00","size":232365,"digest":"8002eadc07c8d58b56bad6f45a5e2607344c903abacfe94121bd35aa25f764a8","integrity":"sha256-gALq3AfI1YtWutb0Wl4mBzRMkDq6z+lBIb01qiX3ZKg="},"setup_tinymce-d8387e12966ef5097652a4d0a20baeea770fe700706c5bb25be979bcd361aa4b.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-16T20:20:11+01:00","size":1033,"digest":"d8387e12966ef5097652a4d0a20baeea770fe700706c5bb25be979bcd361aa4b","integrity":"sha256-2Dh+EpZu9Ql2UqTQoguu6ncP5wBwbFuyW+l5vNNhqks="},"list-d5aed2f96e49ce444974d43fb9d53d43f2ae1f5bb5b1716e5dc245447fd64316.css":{"logical_path":"list.css","mtime":"2020-01-16T20:20:11+01:00","size":853,"digest":"d5aed2f96e49ce444974d43fb9d53d43f2ae1f5bb5b1716e5dc245447fd64316","integrity":"sha256-1a7S+W5JzkRJdNQ/udU9Q/KuH1u1sXFuXcJFRH/WQxY="},"moderations-ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895.css":{"logical_path":"moderations.css","mtime":"2020-02-25T22:08:25+01:00","size":979,"digest":"ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895","integrity":"sha256-7ej08oCKtXKQh4Dy2uoupOdrHQsMVzXXRLt8xR+2mJU="},"stats-a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45.css":{"logical_path":"stats.css","mtime":"2020-02-25T22:08:25+01:00","size":505,"digest":"a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45","integrity":"sha256-oirTSyGE5jxu5g91gp3K5owqPpCUoK9BngYwa1tor0U="},"tinymce/jquery.tinymce.js":{"logical_path":"tinymce/jquery.tinymce.js","mtime":"2019-12-21T20:51:18+01:00","size":6635,"digest":null},"tinymce/langs/readme.md":{"logical_path":"tinymce/langs/readme.md","mtime":"2019-12-21T20:51:18+01:00","size":151,"digest":null},"tinymce/license.txt":{"logical_path":"tinymce/license.txt","mtime":"2019-12-21T20:51:18+01:00","size":26441,"digest":null},"tinymce/plugins/advlist/plugin.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3994,"digest":null},"tinymce/plugins/anchor/plugin.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2119,"digest":null},"tinymce/plugins/autolink/plugin.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2535,"digest":null},"tinymce/plugins/autoresize/plugin.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2451,"digest":null},"tinymce/plugins/autosave/plugin.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3492,"digest":null},"tinymce/plugins/bbcode/plugin.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3116,"digest":null},"tinymce/plugins/charmap/plugin.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":11947,"digest":null},"tinymce/plugins/code/plugin.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1225,"digest":null},"tinymce/plugins/codesample/plugin.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":21027,"digest":null},"tinymce/plugins/colorpicker/plugin.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":549,"digest":null},"tinymce/plugins/contextmenu/plugin.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":549,"digest":null},"tinymce/plugins/directionality/plugin.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":4314,"digest":null},"tinymce/plugins/emoticons/js/emojis.js":{"logical_path":"tinymce/plugins/emoticons/js/emojis.js","mtime":"2019-12-21T20:51:18+01:00","size":193222,"digest":null},"tinymce/plugins/emoticons/plugin.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":6920,"digest":null},"tinymce/plugins/fullpage/plugin.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":8195,"digest":null},"tinymce/plugins/fullscreen/plugin.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":14305,"digest":null},"tinymce/plugins/help/plugin.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":14519,"digest":null},"tinymce/plugins/hr/plugin.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":840,"digest":null},"tinymce/plugins/image/plugin.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":29770,"digest":null},"tinymce/plugins/imagetools/plugin.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":22210,"digest":null},"tinymce/plugins/importcss/plugin.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":5007,"digest":null},"tinymce/plugins/insertdatetime/plugin.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3211,"digest":null},"tinymce/plugins/legacyoutput/plugin.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2975,"digest":null},"tinymce/plugins/link/plugin.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":22689,"digest":null},"tinymce/plugins/lists/plugin.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":28086,"digest":null},"tinymce/plugins/media/plugin.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":18041,"digest":null},"tinymce/plugins/nonbreaking/plugin.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1584,"digest":null},"tinymce/plugins/noneditable/plugin.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1841,"digest":null},"tinymce/plugins/pagebreak/plugin.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1841,"digest":null},"tinymce/plugins/paste/plugin.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":31656,"digest":null},"tinymce/plugins/preview/plugin.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2200,"digest":null},"tinymce/plugins/print/plugin.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":888,"digest":null},"tinymce/plugins/quickbars/plugin.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":11082,"digest":null},"tinymce/plugins/save/plugin.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1822,"digest":null},"tinymce/plugins/searchreplace/plugin.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":10440,"digest":null},"tinymce/plugins/spellchecker/plugin.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":10403,"digest":null},"tinymce/plugins/tabfocus/plugin.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1937,"digest":null},"tinymce/plugins/table/plugin.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":124407,"digest":null},"tinymce/plugins/template/plugin.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":8076,"digest":null},"tinymce/plugins/textcolor/plugin.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":545,"digest":null},"tinymce/plugins/textpattern/plugin.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":18705,"digest":null},"tinymce/plugins/toc/plugin.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3591,"digest":null},"tinymce/plugins/visualblocks/plugin.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1651,"digest":null},"tinymce/plugins/visualchars/plugin.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":7080,"digest":null},"tinymce/plugins/wordcount/plugin.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":13185,"digest":null},"tinymce/skins/content/dark/content.css":{"logical_path":"tinymce/skins/content/dark/content.css","mtime":"2019-12-21T20:51:18+01:00","size":1082,"digest":null},"tinymce/skins/content/dark/content.min.css":{"logical_path":"tinymce/skins/content/dark/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":1082,"digest":null},"tinymce/skins/content/default/content.css":{"logical_path":"tinymce/skins/content/default/content.css","mtime":"2019-12-21T20:51:18+01:00","size":957,"digest":null},"tinymce/skins/content/default/content.min.css":{"logical_path":"tinymce/skins/content/default/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":957,"digest":null},"tinymce/skins/content/document/content.css":{"logical_path":"tinymce/skins/content/document/content.css","mtime":"2019-12-21T20:51:18+01:00","size":1040,"digest":null},"tinymce/skins/content/document/content.min.css":{"logical_path":"tinymce/skins/content/document/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":1040,"digest":null},"tinymce/skins/content/writer/content.css":{"logical_path":"tinymce/skins/content/writer/content.css","mtime":"2019-12-21T20:51:18+01:00","size":978,"digest":null},"tinymce/skins/content/writer/content.min.css":{"logical_path":"tinymce/skins/content/writer/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":978,"digest":null},"tinymce/skins/ui/oxide-dark/content.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2019-12-21T20:51:18+01:00","size":17510,"digest":null},"tinymce/skins/ui/oxide-dark/content.inline.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide-dark/content.inline.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide-dark/content.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17510,"digest":null},"tinymce/skins/ui/oxide-dark/content.mobile.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide-dark/content.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff":{"logical_path":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff","mtime":"2019-12-21T20:51:18+01:00","size":4624,"digest":null},"tinymce/skins/ui/oxide-dark/skin.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2019-12-21T20:51:18+01:00","size":54904,"digest":null},"tinymce/skins/ui/oxide-dark/skin.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2019-12-21T20:51:18+01:00","size":54904,"digest":null},"tinymce/skins/ui/oxide-dark/skin.mobile.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide-dark/skin.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide/content.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2019-12-21T20:51:18+01:00","size":17883,"digest":null},"tinymce/skins/ui/oxide/content.inline.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide/content.inline.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide/content.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17883,"digest":null},"tinymce/skins/ui/oxide/content.mobile.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide/content.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff":{"logical_path":"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff","mtime":"2019-12-21T20:51:18+01:00","size":4624,"digest":null},"tinymce/skins/ui/oxide/skin.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2019-12-21T20:51:18+01:00","size":55044,"digest":null},"tinymce/skins/ui/oxide/skin.min.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2019-12-21T20:51:18+01:00","size":55044,"digest":null},"tinymce/skins/ui/oxide/skin.mobile.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide/skin.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/themes/mobile/theme.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2019-12-21T20:51:18+01:00","size":181729,"digest":null},"tinymce/themes/silver/theme.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2019-12-21T20:51:18+01:00","size":406030,"digest":null},"tinymce/tinymce.js":{"logical_path":"tinymce/tinymce.js","mtime":"2019-12-21T20:51:18+01:00","size":439628,"digest":null},"tinymce-rails.manifest-e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04.js":{"logical_path":"tinymce-rails.manifest.js","mtime":"2020-02-25T22:08:25+01:00","size":3,"digest":"e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04","integrity":"sha256-52GIRSKpyi2sR1tousGUbJkPua+LZ207a0VpKpIMjQQ="},"tinymce/jquery.tinymce-288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2.js":{"logical_path":"tinymce/jquery.tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":6636,"digest":"288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2","integrity":"sha256-KIkRdxxxZ6ue/jyGsuxa3hzqUQ3BAmlD34RoXDjZHvI="},"tinymce/plugins/advlist/plugin-9d5f181c8b89a6d3fd79e5773920a8702a818e3503f2d2225538b1024e22c881.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3995,"digest":"9d5f181c8b89a6d3fd79e5773920a8702a818e3503f2d2225538b1024e22c881","integrity":"sha256-nV8YHIuJptP9eeV3OSCocCqBjjUD8tIiVTixAk4iyIE="},"tinymce/plugins/anchor/plugin-1101283820b4b9031320d224dd162327bb6ad406925efba1b0712b448ffae72c.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2120,"digest":"1101283820b4b9031320d224dd162327bb6ad406925efba1b0712b448ffae72c","integrity":"sha256-EQEoOCC0uQMTINIk3RYjJ7tq1AaSXvuhsHErRI/65yw="},"tinymce/plugins/autolink/plugin-ea3267031e438e98832047c8265fbc070407a0ffbc93e8d2c3a48bd752b1e336.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2536,"digest":"ea3267031e438e98832047c8265fbc070407a0ffbc93e8d2c3a48bd752b1e336","integrity":"sha256-6jJnAx5DjpiDIEfIJl+8BwQHoP+8k+jSw6SL11Kx4zY="},"tinymce/plugins/autoresize/plugin-debda956b34a60a1b4bc427cdfc19a87e2b41ff10438a945371c7f93d731ed77.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2452,"digest":"debda956b34a60a1b4bc427cdfc19a87e2b41ff10438a945371c7f93d731ed77","integrity":"sha256-3r2pVrNKYKG0vEJ838Gah+K0H/EEOKlFNxx/k9cx7Xc="},"tinymce/plugins/autosave/plugin-5d7b50830029e2fcbec55cca0328d8142fa0d8f46757c9019a4cb28be4e3fee5.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3493,"digest":"5d7b50830029e2fcbec55cca0328d8142fa0d8f46757c9019a4cb28be4e3fee5","integrity":"sha256-XXtQgwAp4vy+xVzKAyjYFC+g2PRnV8kBmkyyi+Tj/uU="},"tinymce/plugins/bbcode/plugin-d4ea4957fd10a1e6e2956954d47b39e019705163bc4da5dfcaaac5fc7c3c763d.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3117,"digest":"d4ea4957fd10a1e6e2956954d47b39e019705163bc4da5dfcaaac5fc7c3c763d","integrity":"sha256-1OpJV/0QoebilWlU1Hs54BlwUWO8TaXfyqrF/Hw8dj0="},"tinymce/plugins/charmap/plugin-3e427c5d66327507030644fed56edbce588cee62648ee8af86ac06e26873d758.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":11948,"digest":"3e427c5d66327507030644fed56edbce588cee62648ee8af86ac06e26873d758","integrity":"sha256-PkJ8XWYydQcDBkT+1W7bzliM7mJkjuivhqwG4mhz11g="},"tinymce/plugins/code/plugin-a1e4ee3ef429e49b5d6bf2505813b0ab804e6b72dd5ca733be0b661e4608e37a.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1226,"digest":"a1e4ee3ef429e49b5d6bf2505813b0ab804e6b72dd5ca733be0b661e4608e37a","integrity":"sha256-oeTuPvQp5Jtda/JQWBOwq4BOa3LdXKczvgtmHkYI43o="},"tinymce/plugins/codesample/plugin-ec16e82f1cf7c8759aa18ad9677b1c828c7d779758d4f803c7b6a1374d79f5d0.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":21028,"digest":"ec16e82f1cf7c8759aa18ad9677b1c828c7d779758d4f803c7b6a1374d79f5d0","integrity":"sha256-7BboLxz3yHWaoYrZZ3scgox9d5dY1PgDx7ahN0159dA="},"tinymce/plugins/colorpicker/plugin-397300b6bbf064534c66e500cc76f04974a8b3148ff8527696952f6e66904ff4.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":550,"digest":"397300b6bbf064534c66e500cc76f04974a8b3148ff8527696952f6e66904ff4","integrity":"sha256-OXMAtrvwZFNMZuUAzHbwSXSosxSP+FJ2lpUvbmaQT/Q="},"tinymce/plugins/contextmenu/plugin-854c81b98b7c49b727ef2838a12496df12c17eb532e75c0b136587d5319dfeb4.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":550,"digest":"854c81b98b7c49b727ef2838a12496df12c17eb532e75c0b136587d5319dfeb4","integrity":"sha256-hUyBuYt8Sbcn7yg4oSSW3xLBfrUy51wLE2WH1TGd/rQ="},"tinymce/plugins/directionality/plugin-51daac61c7bb784b21fd9e7bb7ece6faec999a23cfc1235fd738e6b7b535d0c7.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":4315,"digest":"51daac61c7bb784b21fd9e7bb7ece6faec999a23cfc1235fd738e6b7b535d0c7","integrity":"sha256-UdqsYce7eEsh/Z57t+zm+uyZmiPPwSNf1zjmt7U10Mc="},"tinymce/plugins/emoticons/js/emojis-a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a.js":{"logical_path":"tinymce/plugins/emoticons/js/emojis.js","mtime":"2020-02-25T22:08:25+01:00","size":193223,"digest":"a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a","integrity":"sha256-oHNolrl60zN3QH34UmlHAuWk31yZdDc/j43j4UepxXo="},"tinymce/plugins/emoticons/plugin-0a616a34a40aaf42639751775cd0c8a7a07c253dc2d50d6fd259aff0494af6dc.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":6921,"digest":"0a616a34a40aaf42639751775cd0c8a7a07c253dc2d50d6fd259aff0494af6dc","integrity":"sha256-CmFqNKQKr0Jjl1F3XNDIp6B8JT3C1Q1v0lmv8ElK9tw="},"tinymce/plugins/fullpage/plugin-950be265f2e1f9463176d4d371603e745dafe60b20d085d3fdb7dfc731851abf.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":8196,"digest":"950be265f2e1f9463176d4d371603e745dafe60b20d085d3fdb7dfc731851abf","integrity":"sha256-lQviZfLh+UYxdtTTcWA+dF2v5gsg0IXT/bffxzGFGr8="},"tinymce/plugins/fullscreen/plugin-2c24621819d483ae03f863ffac123332dacb13aaf4bc37462e076b3f1b416dd7.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":14306,"digest":"2c24621819d483ae03f863ffac123332dacb13aaf4bc37462e076b3f1b416dd7","integrity":"sha256-LCRiGBnUg64D+GP/rBIzMtrLE6r0vDdGLgdrPxtBbdc="},"tinymce/plugins/help/plugin-256c84a454287673fa4c4a88785948aff7d88baa7087ec78323989144bc8009a.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":14520,"digest":"256c84a454287673fa4c4a88785948aff7d88baa7087ec78323989144bc8009a","integrity":"sha256-JWyEpFQodnP6TEqIeFlIr/fYi6pwh+x4MjmJFEvIAJo="},"tinymce/plugins/hr/plugin-98aae8ceed7e478997882f091ff4ab9b7c6361ebf4a4c1a5d42e5066510dad36.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":841,"digest":"98aae8ceed7e478997882f091ff4ab9b7c6361ebf4a4c1a5d42e5066510dad36","integrity":"sha256-mKrozu1+R4mXiC8JH/Srm3xjYev0pMGl1C5QZlENrTY="},"tinymce/plugins/image/plugin-bedbb33580f5c7191faeca7f057f6f86737a62b661706c09bd910259eac36724.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":29771,"digest":"bedbb33580f5c7191faeca7f057f6f86737a62b661706c09bd910259eac36724","integrity":"sha256-vtuzNYD1xxkfrsp/BX9vhnN6YrZhcGwJvZECWerDZyQ="},"tinymce/plugins/imagetools/plugin-2c6afa5dc81bff9d4aed443e0d8c14d2a73d5bd2528943289223bf843b3caac4.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":22211,"digest":"2c6afa5dc81bff9d4aed443e0d8c14d2a73d5bd2528943289223bf843b3caac4","integrity":"sha256-LGr6Xcgb/51K7UQ+DYwU0qc9W9JSiUMokiO/hDs8qsQ="},"tinymce/plugins/importcss/plugin-f4e599c94612b273a8dacf94ad1622adcff633a5fd4387ae5121f7d5722247ff.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":5008,"digest":"f4e599c94612b273a8dacf94ad1622adcff633a5fd4387ae5121f7d5722247ff","integrity":"sha256-9OWZyUYSsnOo2s+UrRYirc/2M6X9Q4euUSH31XIiR/8="},"tinymce/plugins/insertdatetime/plugin-3f37e3a0ba1506ff8ad6dd835cde7ed3d2db3e9ece51733ea2950f666cec11c2.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3212,"digest":"3f37e3a0ba1506ff8ad6dd835cde7ed3d2db3e9ece51733ea2950f666cec11c2","integrity":"sha256-PzfjoLoVBv+K1t2DXN5+09LbPp7OUXM+opUPZmzsEcI="},"tinymce/plugins/legacyoutput/plugin-9cbb8dd8733fc043c2825f7f62590d5e8fd3ee73badfbbec677c04a0e21c3ec3.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2976,"digest":"9cbb8dd8733fc043c2825f7f62590d5e8fd3ee73badfbbec677c04a0e21c3ec3","integrity":"sha256-nLuN2HM/wEPCgl9/YlkNXo/T7nO637vsZ3wEoOIcPsM="},"tinymce/plugins/link/plugin-178cc5b94ecc34fe0658a51b3dca57fcc70b554a959dcadd6c4031ca854b337a.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":22690,"digest":"178cc5b94ecc34fe0658a51b3dca57fcc70b554a959dcadd6c4031ca854b337a","integrity":"sha256-F4zFuU7MNP4GWKUbPcpX/McLVUqVncrdbEAxyoVLM3o="},"tinymce/plugins/lists/plugin-48983439cc63cb4a8fea18c9bfe9879f14f8ae6a73c9c66f35432fbc09c514ea.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":28087,"digest":"48983439cc63cb4a8fea18c9bfe9879f14f8ae6a73c9c66f35432fbc09c514ea","integrity":"sha256-SJg0Ocxjy0qP6hjJv+mHnxT4rmpzycZvNUMvvAnFFOo="},"tinymce/plugins/media/plugin-14c054e4fcb51f19c4d4485a42ba6cc0c8455e8162bdbdd5ea97b09368afcc9e.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":18042,"digest":"14c054e4fcb51f19c4d4485a42ba6cc0c8455e8162bdbdd5ea97b09368afcc9e","integrity":"sha256-FMBU5Py1HxnE1EhaQrpswMhFXoFivb3V6pewk2ivzJ4="},"tinymce/plugins/nonbreaking/plugin-85b41dad44751eb9c762fc9873ab21e3d7fe279c0ec4ff7447e82fd51b7d37a4.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1585,"digest":"85b41dad44751eb9c762fc9873ab21e3d7fe279c0ec4ff7447e82fd51b7d37a4","integrity":"sha256-hbQdrUR1HrnHYvyYc6sh49f+J5wOxP90R+gv1Rt9N6Q="},"tinymce/plugins/noneditable/plugin-a27d05cbf2a672f92224d78d1ad31c6e4662a5aae17fb661ccbcacd51e943fd7.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1842,"digest":"a27d05cbf2a672f92224d78d1ad31c6e4662a5aae17fb661ccbcacd51e943fd7","integrity":"sha256-on0Fy/KmcvkiJNeNGtMcbkZiparhf7ZhzLys1R6UP9c="},"tinymce/plugins/pagebreak/plugin-749e5872ed39a1f09961b49bb255fac0f6360f01c7f0b4ec1b5f38f5e2ef3d01.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1842,"digest":"749e5872ed39a1f09961b49bb255fac0f6360f01c7f0b4ec1b5f38f5e2ef3d01","integrity":"sha256-dJ5Ycu05ofCZYbSbslX6wPY2DwHH8LTsG1849eLvPQE="},"tinymce/plugins/paste/plugin-0b77edd91b1c76af73aacd79e6dad100aa11ef7c5c03f0333d26df1750dd45e7.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":31657,"digest":"0b77edd91b1c76af73aacd79e6dad100aa11ef7c5c03f0333d26df1750dd45e7","integrity":"sha256-C3ft2Rscdq9zqs155trRAKoR73xcA/AzPSbfF1DdRec="},"tinymce/plugins/preview/plugin-f03537c1c398cca4e649bdeeb6ea907e006158a53cfe04ba36cd72c3e6a62180.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2201,"digest":"f03537c1c398cca4e649bdeeb6ea907e006158a53cfe04ba36cd72c3e6a62180","integrity":"sha256-8DU3wcOYzKTmSb3utuqQfgBhWKU8/gS6Ns1yw+amIYA="},"tinymce/plugins/print/plugin-138e832a86ceeb9d70d7b2a0e4441ef63f6c67543c2e80768f30ca21644f3ece.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":889,"digest":"138e832a86ceeb9d70d7b2a0e4441ef63f6c67543c2e80768f30ca21644f3ece","integrity":"sha256-E46DKobO651w17Kg5EQe9j9sZ1Q8LoB2jzDKIWRPPs4="},"tinymce/plugins/quickbars/plugin-c22bae775a23ec4f8d5c1ccd0c22a4879431dcfc3cfc4a9beda56643e63c3847.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":11083,"digest":"c22bae775a23ec4f8d5c1ccd0c22a4879431dcfc3cfc4a9beda56643e63c3847","integrity":"sha256-wiuud1oj7E+NXBzNDCKkh5Qx3Pw8/Eqb7aVmQ+Y8OEc="},"tinymce/plugins/save/plugin-69fa49b662035a24756176359a3fa2c75a81bdb72c7273b02adf3f049522f759.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1823,"digest":"69fa49b662035a24756176359a3fa2c75a81bdb72c7273b02adf3f049522f759","integrity":"sha256-afpJtmIDWiR1YXY1mj+ix1qBvbcscnOwKt8/BJUi91k="},"tinymce/plugins/searchreplace/plugin-dcc69f2da3c72a7333e92f3388d6b95586d8654fe7806cfcabf37ea72658dd28.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":10441,"digest":"dcc69f2da3c72a7333e92f3388d6b95586d8654fe7806cfcabf37ea72658dd28","integrity":"sha256-3MafLaPHKnMz6S8ziNa5VYbYZU/ngGz8q/N+pyZY3Sg="},"tinymce/plugins/spellchecker/plugin-ce68d7606345e0306c571efe4943281c791210c94150762cda68995dbddf4ffe.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":10404,"digest":"ce68d7606345e0306c571efe4943281c791210c94150762cda68995dbddf4ffe","integrity":"sha256-zmjXYGNF4DBsVx7+SUMoHHkSEMlBUHYs2miZXb3fT/4="},"tinymce/plugins/tabfocus/plugin-e9208621ad5eac8e846dc63b1147e34d5bc88e58071ebcff8507ac0584fa49e1.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1938,"digest":"e9208621ad5eac8e846dc63b1147e34d5bc88e58071ebcff8507ac0584fa49e1","integrity":"sha256-6SCGIa1erI6EbcY7EUfjTVvIjlgHHrz/hQesBYT6SeE="},"tinymce/plugins/table/plugin-6f3d2766a8dba93298aeec2fbef24b09f9f06276201d9bff3b6398f8b88ef2e0.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":124408,"digest":"6f3d2766a8dba93298aeec2fbef24b09f9f06276201d9bff3b6398f8b88ef2e0","integrity":"sha256-bz0nZqjbqTKYruwvvvJLCfnwYnYgHZv/O2OY+LiO8uA="},"tinymce/plugins/template/plugin-b83aef186cd1fee1c5db5c21c929528cef7d1a33485d58a444f99b70b2f63b01.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":8077,"digest":"b83aef186cd1fee1c5db5c21c929528cef7d1a33485d58a444f99b70b2f63b01","integrity":"sha256-uDrvGGzR/uHF21whySlSjO99GjNIXVikRPmbcLL2OwE="},"tinymce/plugins/textcolor/plugin-28ab395ea6dfbe3ca00cc85474556006e3d299c82f20ac9e83f67a6db6a15242.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":546,"digest":"28ab395ea6dfbe3ca00cc85474556006e3d299c82f20ac9e83f67a6db6a15242","integrity":"sha256-KKs5XqbfvjygDMhUdFVgBuPSmcgvIKyeg/Z6bbahUkI="},"tinymce/plugins/textpattern/plugin-e08737496fb339132b7e08dd96bce0887392031353e206aecfecdd80665a0403.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":18706,"digest":"e08737496fb339132b7e08dd96bce0887392031353e206aecfecdd80665a0403","integrity":"sha256-4Ic3SW+zORMrfgjdlrzgiHOSAxNT4gauz+zdgGZaBAM="},"tinymce/plugins/toc/plugin-4d1c388ae94827bd4daa04db25c7fc86abef34ee4ae3b3f7c23c5895bc6a078f.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3592,"digest":"4d1c388ae94827bd4daa04db25c7fc86abef34ee4ae3b3f7c23c5895bc6a078f","integrity":"sha256-TRw4iulIJ71NqgTbJcf8hqvvNO5K47P3wjxYlbxqB48="},"tinymce/plugins/visualblocks/plugin-6a108188d2b0f1fb88f097e369d9cb67cc213944d7b11f16501a51b825ea62da.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1652,"digest":"6a108188d2b0f1fb88f097e369d9cb67cc213944d7b11f16501a51b825ea62da","integrity":"sha256-ahCBiNKw8fuI8JfjadnLZ8whOUTXsR8WUBpRuCXqYto="},"tinymce/plugins/visualchars/plugin-38fdc7742fa0f36b65af47d47d91f74a0f0c976c18d6b029b70f4e54c58c34a5.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":7081,"digest":"38fdc7742fa0f36b65af47d47d91f74a0f0c976c18d6b029b70f4e54c58c34a5","integrity":"sha256-OP3HdC+g82tlr0fUfZH3Sg8Ml2wY1rAptw9OVMWMNKU="},"tinymce/plugins/wordcount/plugin-7b30653d1524deab208a452ce81b800a4de426cc91fceae4eca5c686b060ba78.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":13186,"digest":"7b30653d1524deab208a452ce81b800a4de426cc91fceae4eca5c686b060ba78","integrity":"sha256-ezBlPRUk3qsgikUs6BuACk3kJsyR/Ork7KXGhrBgung="},"tinymce/themes/mobile/theme-3b6cfd8e85aa4cd48d541a0a41e6150e356ae1c0465fb62adafca1ce83629949.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-01-17T21:34:48+01:00","size":181730,"digest":"3b6cfd8e85aa4cd48d541a0a41e6150e356ae1c0465fb62adafca1ce83629949","integrity":"sha256-O2z9joWqTNSNVBoKQeYVDjVq4cBGX7Yq2vyhzoNimUk="},"tinymce/themes/silver/theme-74965ba198307e513a8b8ab9c75bf7afceab2aab3db185c520de06bae6e0bc24.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-01-17T21:34:48+01:00","size":406031,"digest":"74965ba198307e513a8b8ab9c75bf7afceab2aab3db185c520de06bae6e0bc24","integrity":"sha256-dJZboZgwflE6i4q5x1v3r86rKqs9sYXFIN4GuubgvCQ="},"tinymce/tinymce-d8d7d4ca47f6ef4ce19ed7d5ded0ca20723a967cc368279a3f6417682a422371.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":439629,"digest":"d8d7d4ca47f6ef4ce19ed7d5ded0ca20723a967cc368279a3f6417682a422371","integrity":"sha256-2NfUykf270zhntfV3tDKIHI6lnzDaCeaP2QXaCpCI3E="},"tinymce/skins/content/dark/content-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css":{"logical_path":"tinymce/skins/content/dark/content.css","mtime":"2020-02-25T22:08:25+01:00","size":832,"digest":"6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af","integrity":"sha256-bRDQxKY6sC+PtdNSaYMroeJtTnTkGdAfTGbFKC090a8="},"tinymce/skins/content/dark/content.min-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css":{"logical_path":"tinymce/skins/content/dark/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":832,"digest":"6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af","integrity":"sha256-bRDQxKY6sC+PtdNSaYMroeJtTnTkGdAfTGbFKC090a8="},"tinymce/skins/content/default/content-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css":{"logical_path":"tinymce/skins/content/default/content.css","mtime":"2020-02-25T22:08:25+01:00","size":707,"digest":"6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528","integrity":"sha256-bIdWuj4C+XRR1cVb6FU3w/x12m6e3qcSHIueZKqQNSg="},"tinymce/skins/content/default/content.min-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css":{"logical_path":"tinymce/skins/content/default/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":707,"digest":"6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528","integrity":"sha256-bIdWuj4C+XRR1cVb6FU3w/x12m6e3qcSHIueZKqQNSg="},"tinymce/skins/content/document/content-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css":{"logical_path":"tinymce/skins/content/document/content.css","mtime":"2020-02-25T22:08:25+01:00","size":791,"digest":"cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f","integrity":"sha256-zvJYC5g/1XB2jsk77TJUTP1POutcxx2piOWsqoA8J28="},"tinymce/skins/content/document/content.min-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css":{"logical_path":"tinymce/skins/content/document/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":791,"digest":"cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f","integrity":"sha256-zvJYC5g/1XB2jsk77TJUTP1POutcxx2piOWsqoA8J28="},"tinymce/skins/content/writer/content-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css":{"logical_path":"tinymce/skins/content/writer/content.css","mtime":"2020-02-25T22:08:25+01:00","size":728,"digest":"eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622","integrity":"sha256-645I0XXzfuOk3rT6+0zeX1eUILS6YsFOluban9k3tiI="},"tinymce/skins/content/writer/content.min-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css":{"logical_path":"tinymce/skins/content/writer/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":728,"digest":"eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622","integrity":"sha256-645I0XXzfuOk3rT6+0zeX1eUILS6YsFOluban9k3tiI="},"tinymce/skins/ui/oxide-dark/content-81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2020-02-08T21:52:35+01:00","size":17265,"digest":"81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef","integrity":"sha256-gcYI64qZEeo899YCbpcUAIPb1VlnBr4PYzAFxvgBde8="},"tinymce/skins/ui/oxide-dark/content.inline-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide-dark/content.inline.min-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide-dark/content.min-81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17265,"digest":"81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef","integrity":"sha256-gcYI64qZEeo899YCbpcUAIPb1VlnBr4PYzAFxvgBde8="},"tinymce/skins/ui/oxide-dark/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.css","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide-dark/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.min.css","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide-dark/skin-8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2020-02-08T21:52:35+01:00","size":54738,"digest":"8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11","integrity":"sha256-j1YgUO3ElR0I3ExC2au9yYlEw6UUhHaGcSeJ6l+I3hE="},"tinymce/skins/ui/oxide-dark/skin.min-8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2020-02-08T21:52:35+01:00","size":54738,"digest":"8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11","integrity":"sha256-j1YgUO3ElR0I3ExC2au9yYlEw6UUhHaGcSeJ6l+I3hE="},"tinymce/skins/ui/oxide-dark/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.css","mtime":"2020-02-25T22:08:25+01:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide-dark/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.min.css","mtime":"2020-02-25T22:08:25+01:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide/content-38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2020-02-08T21:52:35+01:00","size":17640,"digest":"38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd","integrity":"sha256-OLdd/kTKwKuhx4rOvEImHBMNdzbLTbiZ3jU1eTyKTr0="},"tinymce/skins/ui/oxide/content.inline-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide/content.inline.min-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide/content.min-38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17640,"digest":"38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd","integrity":"sha256-OLdd/kTKwKuhx4rOvEImHBMNdzbLTbiZ3jU1eTyKTr0="},"tinymce/skins/ui/oxide/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.css","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.min.css","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide/skin-c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2020-02-08T21:52:35+01:00","size":54885,"digest":"c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc","integrity":"sha256-wwsVSO52UM+f12uRZQWTSoKhMw4OiLb7LsbAI2vorLw="},"tinymce/skins/ui/oxide/skin.min-c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2020-02-08T21:52:35+01:00","size":54885,"digest":"c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc","integrity":"sha256-wwsVSO52UM+f12uRZQWTSoKhMw4OiLb7LsbAI2vorLw="},"tinymce/skins/ui/oxide/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.css","mtime":"2020-02-25T22:08:25+01:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.min.css","mtime":"2020-02-25T22:08:25+01:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff":{"logical_path":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff","mtime":"2020-02-25T22:08:25+01:00","size":4624,"digest":"e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213","integrity":"sha256-5kvxVqQy1j9bNLRWe1E9wNNRtJFhx/YI+4JXS/3Z0hM="},"tinymce/skins/ui/oxide/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff":{"logical_path":"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff","mtime":"2020-02-25T22:08:25+01:00","size":4624,"digest":"e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213","integrity":"sha256-5kvxVqQy1j9bNLRWe1E9wNNRtJFhx/YI+4JXS/3Z0hM="},"application-f67418bb3060e9d47b29b9cc3d2e69b47e1a280c8f63d50bd4db03d259588c89.js":{"logical_path":"application.js","mtime":"2020-01-16T20:20:11+01:00","size":2001327,"digest":"f67418bb3060e9d47b29b9cc3d2e69b47e1a280c8f63d50bd4db03d259588c89","integrity":"sha256-9nQYuzBg6dR7KbnMPS5ptH4aKAyPY9UL1NsD0llYjIk="},"maps-81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25.js":{"logical_path":"maps.js","mtime":"2020-02-25T22:08:25+01:00","size":3760,"digest":"81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25","integrity":"sha256-gc+ulY75JIyrL2ZsxTyKADzx4RvLC5ApfAHIf95VfiU="},"active_admin-ad543d02b7d2dce00391924ee525cf826fc94211134de030049066f7ed1a9c51.css":{"logical_path":"active_admin.css","mtime":"2020-01-17T20:47:28+01:00","size":107575,"digest":"ad543d02b7d2dce00391924ee525cf826fc94211134de030049066f7ed1a9c51","integrity":"sha256-rVQ9ArfS3OADkZJO5SXPgm/JQhETTeAwBJBm9+0anFE="},"active_admin-41eeb6d55edd4a2349b162361a1b7a1d1e4fdd88878771bdbcdba4c2367c5aec.js":{"logical_path":"active_admin.js","mtime":"2020-01-17T20:47:28+01:00","size":962936,"digest":"41eeb6d55edd4a2349b162361a1b7a1d1e4fdd88878771bdbcdba4c2367c5aec","integrity":"sha256-Qe621V7dSiNJsWI2Ght6HR5P3YiHh3G9vNukwjZ8Wuw="},"lef-6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee.png":{"logical_path":"lef.png","mtime":"2020-02-25T22:08:25+01:00","size":24674,"digest":"6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee","integrity":"sha256-ZQh5f1oCDYeqDbJ9zd2QS6PMnkOK2xyQ9RY6+Dd6yu4="},"application-df0ebef8401fd93b23d18e0ca1dde74c5dbb9dd9dcc10032920e657eabcd3f74.js":{"logical_path":"application.js","mtime":"2020-01-17T20:47:28+01:00","size":2001603,"digest":"df0ebef8401fd93b23d18e0ca1dde74c5dbb9dd9dcc10032920e657eabcd3f74","integrity":"sha256-3w6++EAf2Tsj0Y4Mod3nTF27ndncwQAykg5lfqvNP3Q="},"application-d166db475e5c4ea1dd596d7609be81f95c7dd54dfe51f8710ae8b48cf722f84e.css":{"logical_path":"application.css","mtime":"2020-01-17T20:47:28+01:00","size":232469,"digest":"d166db475e5c4ea1dd596d7609be81f95c7dd54dfe51f8710ae8b48cf722f84e","integrity":"sha256-0WbbR15cTqHdWW12Cb6B+Vx91U3+UfhxCui0jPci+E4="},"list-4ca74e54c3fadf9ea4be4c99d2fafc29dc946c3d9952cd88933dbded7f6f2b1b.js":{"logical_path":"list.js","mtime":"2020-01-17T20:47:28+01:00","size":1086,"digest":"4ca74e54c3fadf9ea4be4c99d2fafc29dc946c3d9952cd88933dbded7f6f2b1b","integrity":"sha256-TKdOVMP6356kvkyZ0vr8KdyUbD2ZUs2Ikz297X9vKxs="},"setup_tinymce-e6e39597a403d30aa4d04576d58207da97063c81a43750f3e41559f860a741a0.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-17T20:47:28+01:00","size":1033,"digest":"e6e39597a403d30aa4d04576d58207da97063c81a43750f3e41559f860a741a0","integrity":"sha256-5uOVl6QD0wqk0EV21YIH2pcGPIGkN1Dz5BVZ+GCnQaA="},"list-5585bb8537e7da38afae4b48b9d702ccb895df7552c14ce69277ec177ee2eca4.css":{"logical_path":"list.css","mtime":"2020-01-17T20:47:28+01:00","size":957,"digest":"5585bb8537e7da38afae4b48b9d702ccb895df7552c14ce69277ec177ee2eca4","integrity":"sha256-VYW7hTfn2jivrktIudcCzLiV33VSwUzmknfsF37i7KQ="},"active_admin-f6632bfe39653d00fd5f390bf251c9344960cc1bed7cea08b0b82fb8c6735b42.css":{"logical_path":"active_admin.css","mtime":"2020-02-04T21:23:23+01:00","size":107569,"digest":"f6632bfe39653d00fd5f390bf251c9344960cc1bed7cea08b0b82fb8c6735b42","integrity":"sha256-9mMr/jllPQD9XzkL8lHJNElgzBvtfOoIsLgvuMZzW0I="},"active_admin-49a68901507c104dca8f1ff5b8f896d66ff3f01c6548fa97b35458682cc87258.js":{"logical_path":"active_admin.js","mtime":"2020-02-04T18:01:42+01:00","size":962953,"digest":"49a68901507c104dca8f1ff5b8f896d66ff3f01c6548fa97b35458682cc87258","integrity":"sha256-SaaJAVB8EE3Kjx/1uPiW1m/z8BxlSPqXs1RYaCzIclg="},"application-e50171310a954b929b1a5b1ebb0e0ee81ba69b73ed1b78aa610199832fe3504b.js":{"logical_path":"application.js","mtime":"2020-01-17T21:34:48+01:00","size":2001620,"digest":"e50171310a954b929b1a5b1ebb0e0ee81ba69b73ed1b78aa610199832fe3504b","integrity":"sha256-5QFxMQqVS5KbGlseuw4O6Bumm3PtG3iqYQGZgy/jUEs="},"application-a4d60dccf0d297932b53e26946beba02cd345bb4e3a19f00389c6cc5bfc7d86f.css":{"logical_path":"application.css","mtime":"2020-01-17T21:34:48+01:00","size":232463,"digest":"a4d60dccf0d297932b53e26946beba02cd345bb4e3a19f00389c6cc5bfc7d86f","integrity":"sha256-pNYNzPDSl5MrU+JpRr66As00W7TjoZ8AOJxsxb/H2G8="},"list-36f999a19ad2efdd776921f8c8a1cbcc168ab9735fec39326a040907b72f6f2c.js":{"logical_path":"list.js","mtime":"2020-02-04T18:01:42+01:00","size":1103,"digest":"36f999a19ad2efdd776921f8c8a1cbcc168ab9735fec39326a040907b72f6f2c","integrity":"sha256-NvmZoZrS7913aSH4yKHLzBaKuXNf7DkyagQJB7cvbyw="},"setup_tinymce-4d67f72c3f9907bfab45a284c184ed519af90e54f68ffe472bfb30fbe125f1e6.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":1033,"digest":"4d67f72c3f9907bfab45a284c184ed519af90e54f68ffe472bfb30fbe125f1e6","integrity":"sha256-TWf3LD+ZB7+rRaKEwYTtUZr5DlT2j/5HK/sw++El8eY="},"list-23ebe2149035b2adc455ae97b811ad1b615cc5ab5b0b8046dcf590c120012281.css":{"logical_path":"list.css","mtime":"2020-02-04T21:23:23+01:00","size":951,"digest":"23ebe2149035b2adc455ae97b811ad1b615cc5ab5b0b8046dcf590c120012281","integrity":"sha256-I+viFJA1sq3EVa6XuBGtG2FcxatbC4BG3PWQwSABIoE="},"tinymce-2acc0b42a2fa6adca185d7fa2c60f52e1807a056332c43e85a8b3a7d94280297.js":{"logical_path":"tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":1071377,"digest":"2acc0b42a2fa6adca185d7fa2c60f52e1807a056332c43e85a8b3a7d94280297","integrity":"sha256-KswLQqL6atyhhdf6LGD1LhgHoFYzLEPoWos6fZQoApc="},"tinymce/plugins/advlist/plugin-d6326b5a6ac7f2a46c2e5bdbb562365272d4019a155e3a38bb41c3e92f4fbf25.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3995,"digest":"d6326b5a6ac7f2a46c2e5bdbb562365272d4019a155e3a38bb41c3e92f4fbf25","integrity":"sha256-1jJrWmrH8qRsLlvbtWI2UnLUAZoVXjo4u0HD6S9PvyU="},"tinymce/plugins/anchor/plugin-75573ca76ed15637213d63942f2d3596dce2bce9d336ea55af1ca799a82df3e7.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2120,"digest":"75573ca76ed15637213d63942f2d3596dce2bce9d336ea55af1ca799a82df3e7","integrity":"sha256-dVc8p27RVjchPWOULy01ltzivOnTNupVrxynmagt8+c="},"tinymce/plugins/autolink/plugin-1679e9f152b692f4c01f8ae9dc0b9e6e92872fce8828e3a406ee0cc3eddf5821.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2536,"digest":"1679e9f152b692f4c01f8ae9dc0b9e6e92872fce8828e3a406ee0cc3eddf5821","integrity":"sha256-Fnnp8VK2kvTAH4rp3AuebpKHL86IKOOkBu4Mw+3fWCE="},"tinymce/plugins/autoresize/plugin-145dd1caf9ddbee6399c7a3dfb1786794c78c25a79cbf57d8dcfd495a0406d44.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2452,"digest":"145dd1caf9ddbee6399c7a3dfb1786794c78c25a79cbf57d8dcfd495a0406d44","integrity":"sha256-FF3RyvndvuY5nHo9+xeGeUx4wlp5y/V9jc/UlaBAbUQ="},"tinymce/plugins/autosave/plugin-d4f61664f1fc9b86b4e7db8da355d7fc3fb4cde2339b3743a2cdd3f7db3b55cc.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3493,"digest":"d4f61664f1fc9b86b4e7db8da355d7fc3fb4cde2339b3743a2cdd3f7db3b55cc","integrity":"sha256-1PYWZPH8m4a059uNo1XX/D+0zeIzmzdDos3T99s7Vcw="},"tinymce/plugins/bbcode/plugin-650c26a9f904350c455713f9ac757327e86846910c6d206869266a090cb41dde.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3117,"digest":"650c26a9f904350c455713f9ac757327e86846910c6d206869266a090cb41dde","integrity":"sha256-ZQwmqfkENQxFVxP5rHVzJ+hoRpEMbSBoaSZqCQy0Hd4="},"tinymce/plugins/charmap/plugin-27ed885db21b2f6e4d347cc1056794aae453b87fcc7698a7bfa3d8ab00a6661d.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":11957,"digest":"27ed885db21b2f6e4d347cc1056794aae453b87fcc7698a7bfa3d8ab00a6661d","integrity":"sha256-J+2IXbIbL25NNHzBBWeUquRTuH/Mdpinv6PYqwCmZh0="},"tinymce/plugins/code/plugin-c0a064f3c64274ab8d015de5de4fbea1e83ec57b4bebfe07e5248f8c6963f29a.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1226,"digest":"c0a064f3c64274ab8d015de5de4fbea1e83ec57b4bebfe07e5248f8c6963f29a","integrity":"sha256-wKBk88ZCdKuNAV3l3k++oeg+xXtL6/4H5SSPjGlj8po="},"tinymce/plugins/codesample/plugin-fb585bbec3ade4255e128ad2447197bc4dcd705966554ccbaa762dfb9dad1f35.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":21028,"digest":"fb585bbec3ade4255e128ad2447197bc4dcd705966554ccbaa762dfb9dad1f35","integrity":"sha256-+1hbvsOt5CVeEorSRHGXvE3NcFlmVUzLqnYt+52tHzU="},"tinymce/plugins/colorpicker/plugin-d61a32ee5d23044ec61b956663152dd86bdb7c1105b519e26cb6ee56d5b3f6d3.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":550,"digest":"d61a32ee5d23044ec61b956663152dd86bdb7c1105b519e26cb6ee56d5b3f6d3","integrity":"sha256-1hoy7l0jBE7GG5VmYxUt2GvbfBEFtRnibLbuVtWz9tM="},"tinymce/plugins/contextmenu/plugin-cd3e3d3e0759f17cd7463f0f69a3aa81957340f1a165f865b6ecd8187621e4fd.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":550,"digest":"cd3e3d3e0759f17cd7463f0f69a3aa81957340f1a165f865b6ecd8187621e4fd","integrity":"sha256-zT49PgdZ8XzXRj8PaaOqgZVzQPGhZfhltuzYGHYh5P0="},"tinymce/plugins/directionality/plugin-68ad6f45909af3673014c9ed27082470509c0c93592d8c10a0a72ac415865ffb.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":4315,"digest":"68ad6f45909af3673014c9ed27082470509c0c93592d8c10a0a72ac415865ffb","integrity":"sha256-aK1vRZCa82cwFMntJwgkcFCcDJNZLYwQoKcqxBWGX/s="},"tinymce/plugins/emoticons/plugin-98638daa91f33e79cba541a0c1d30e8987a83261751300e0accc7fac8b6be4d4.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":6921,"digest":"98638daa91f33e79cba541a0c1d30e8987a83261751300e0accc7fac8b6be4d4","integrity":"sha256-mGONqpHzPnnLpUGgwdMOiYeoMmF1EwDgrMx/rItr5NQ="},"tinymce/plugins/fullpage/plugin-e487975e8508e35ee8975e76c64b63e9649ced4829f4d3fe41a7d999318f21fa.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":8196,"digest":"e487975e8508e35ee8975e76c64b63e9649ced4829f4d3fe41a7d999318f21fa","integrity":"sha256-5IeXXoUI417ol152xktj6WSc7Ugp9NP+QafZmTGPIfo="},"tinymce/plugins/fullscreen/plugin-c3c99155b1402777ff3b63923fc4d4068b503af20ca10c07c2511020cfe2486a.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":14306,"digest":"c3c99155b1402777ff3b63923fc4d4068b503af20ca10c07c2511020cfe2486a","integrity":"sha256-w8mRVbFAJ3f/O2OSP8TUBotQOvIMoQwHwlEQIM/iSGo="},"tinymce/plugins/help/plugin-09696ee0948772aa4ebb18bb7ce27c5fd86ea74894561dbdae5494b8fb64d418.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":14520,"digest":"09696ee0948772aa4ebb18bb7ce27c5fd86ea74894561dbdae5494b8fb64d418","integrity":"sha256-CWlu4JSHcqpOuxi7fOJ8X9hup0iUVh29rlSUuPtk1Bg="},"tinymce/plugins/hr/plugin-4c9d1bc137d91a428c118be5cba74fcafecb3cb1ea2deb5c88837628266b7feb.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":841,"digest":"4c9d1bc137d91a428c118be5cba74fcafecb3cb1ea2deb5c88837628266b7feb","integrity":"sha256-TJ0bwTfZGkKMEYvly6dPyv7LPLHqLetciIN2KCZrf+s="},"tinymce/plugins/image/plugin-ba1e56168fd5f23b968e5b60cea2486409d3084762237dc773098caec7f1b9ac.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":29771,"digest":"ba1e56168fd5f23b968e5b60cea2486409d3084762237dc773098caec7f1b9ac","integrity":"sha256-uh5WFo/V8juWjltgzqJIZAnTCEdiI33HcwmMrsfxuaw="},"tinymce/plugins/imagetools/plugin-21a09b0c29659b4fb6dfefa981159c67eeec2001154003796743b2d38cd2a2f6.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":22211,"digest":"21a09b0c29659b4fb6dfefa981159c67eeec2001154003796743b2d38cd2a2f6","integrity":"sha256-IaCbDCllm0+23++pgRWcZ+7sIAEVQAN5Z0Oy04zSovY="},"tinymce/plugins/importcss/plugin-b61a592eee6358d5ec18bd2d746c42a0504f65f3ed396d2b9098621a3270e933.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":5008,"digest":"b61a592eee6358d5ec18bd2d746c42a0504f65f3ed396d2b9098621a3270e933","integrity":"sha256-thpZLu5jWNXsGL0tdGxCoFBPZfPtOW0rkJhiGjJw6TM="},"tinymce/plugins/insertdatetime/plugin-280fc64cacabd96a94de55cfa02331bb3478816565084e24e5b939c6e5347752.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3212,"digest":"280fc64cacabd96a94de55cfa02331bb3478816565084e24e5b939c6e5347752","integrity":"sha256-KA/GTKyr2WqU3lXPoCMxuzR4gWVlCE4k5bk5xuU0d1I="},"tinymce/plugins/legacyoutput/plugin-3f55878a8789aa11422faa07310a0512fa14a4dc3474fcba72276541d6cd07ed.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2976,"digest":"3f55878a8789aa11422faa07310a0512fa14a4dc3474fcba72276541d6cd07ed","integrity":"sha256-P1WHioeJqhFCL6oHMQoFEvoUpNw0dPy6cidlQdbNB+0="},"tinymce/plugins/link/plugin-4a85fd6258c1ed37f0929e6a081330e98b897848983d5916ef1273b504acb2fa.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":22690,"digest":"4a85fd6258c1ed37f0929e6a081330e98b897848983d5916ef1273b504acb2fa","integrity":"sha256-SoX9YljB7Tfwkp5qCBMw6YuJeEiYPVkW7xJztQSssvo="},"tinymce/plugins/lists/plugin-b4812a8ec6081341f5f939773037d3ace7754cceb253fe4acc3551a60a7d9872.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":28087,"digest":"b4812a8ec6081341f5f939773037d3ace7754cceb253fe4acc3551a60a7d9872","integrity":"sha256-tIEqjsYIE0H1+Tl3MDfTrOd1TM6yU/5KzDVRpgp9mHI="},"tinymce/plugins/media/plugin-96fdddb1954dadf1c18a286fea194fc0d7362043020d2fc97d8d39e2b7c5b2dc.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":18042,"digest":"96fdddb1954dadf1c18a286fea194fc0d7362043020d2fc97d8d39e2b7c5b2dc","integrity":"sha256-lv3dsZVNrfHBiihv6hlPwNc2IEMCDS/JfY054rfFstw="},"tinymce/plugins/nonbreaking/plugin-035673784f377448c4c1549936a87924dc1ce27ac45b2c89d99109083791e03b.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1585,"digest":"035673784f377448c4c1549936a87924dc1ce27ac45b2c89d99109083791e03b","integrity":"sha256-A1ZzeE83dEjEwVSZNqh5JNwc4nrEWyyJ2ZEJCDeR4Ds="},"tinymce/plugins/noneditable/plugin-6997001f1fbe4ff0cbe75e97a42388573efe5e7e7792e7bdb409893481b71209.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1842,"digest":"6997001f1fbe4ff0cbe75e97a42388573efe5e7e7792e7bdb409893481b71209","integrity":"sha256-aZcAHx++T/DL516XpCOIVz7+Xn53kue9tAmJNIG3Egk="},"tinymce/plugins/pagebreak/plugin-0733f1086cddcdb89ad607732ad51696799405ced8b5787e5258a593c5f0b8eb.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1842,"digest":"0733f1086cddcdb89ad607732ad51696799405ced8b5787e5258a593c5f0b8eb","integrity":"sha256-BzPxCGzdzbia1gdzKtUWlnmUBc7YtXh+Ulilk8XwuOs="},"tinymce/plugins/paste/plugin-0237928e3ace67e06790d5fdbf396c5e154a0ce6d373719a6790e0025c052baa.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":31726,"digest":"0237928e3ace67e06790d5fdbf396c5e154a0ce6d373719a6790e0025c052baa","integrity":"sha256-AjeSjjrOZ+BnkNX9vzlsXhVKDObTc3GaZ5DgAlwFK6o="},"tinymce/plugins/preview/plugin-4b4b984f290af4550ad46778f58a62dc118b63294928e607f9a0e47a008ab2ae.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2201,"digest":"4b4b984f290af4550ad46778f58a62dc118b63294928e607f9a0e47a008ab2ae","integrity":"sha256-S0uYTykK9FUK1Gd49Ypi3BGLYylJKOYH+aDkegCKsq4="},"tinymce/plugins/print/plugin-6e57b5e1048b632b3171af5f287e1a97b60ecf5d580370e58d7bb29b08900dad.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":889,"digest":"6e57b5e1048b632b3171af5f287e1a97b60ecf5d580370e58d7bb29b08900dad","integrity":"sha256-ble14QSLYysxca9fKH4al7YOz11YA3DljXuymwiQDa0="},"tinymce/plugins/quickbars/plugin-8fbb0f2cd4ec62f2d3012effdf6f83d358d57382c17af9089799f1c35fc603f5.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":11083,"digest":"8fbb0f2cd4ec62f2d3012effdf6f83d358d57382c17af9089799f1c35fc603f5","integrity":"sha256-j7sPLNTsYvLTAS7/32+D01jVc4LBevkIl5nxw1/GA/U="},"tinymce/plugins/save/plugin-3877efedfc410f70e0f25992f73bad631d7ad45d70507d77a1310688b6f619c9.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1823,"digest":"3877efedfc410f70e0f25992f73bad631d7ad45d70507d77a1310688b6f619c9","integrity":"sha256-OHfv7fxBD3Dg8lmS9zutYx161F1wUH13oTEGiLb2Gck="},"tinymce/plugins/searchreplace/plugin-67c250c32ca2b71a0ac58be21182d4e9c8559e9847476c7c258b8a9b41b0b327.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":10441,"digest":"67c250c32ca2b71a0ac58be21182d4e9c8559e9847476c7c258b8a9b41b0b327","integrity":"sha256-Z8JQwyyitxoKxYviEYLU6chVnphHR2x8JYuKm0Gwsyc="},"tinymce/plugins/spellchecker/plugin-70ba21f3d6dcc385b246893b9ffc3d9c40ddf242c57976835a4bcfcd8cfaebf8.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":10404,"digest":"70ba21f3d6dcc385b246893b9ffc3d9c40ddf242c57976835a4bcfcd8cfaebf8","integrity":"sha256-cLoh89bcw4WyRok7n/w9nEDd8kLFeXaDWkvPzYz66/g="},"tinymce/plugins/tabfocus/plugin-00211ebb30fb18bb1a0035722ed04178d29721a8de2a4ec455392721a9cc332c.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1938,"digest":"00211ebb30fb18bb1a0035722ed04178d29721a8de2a4ec455392721a9cc332c","integrity":"sha256-ACEeuzD7GLsaADVyLtBBeNKXIajeKk7EVTknIanMMyw="},"tinymce/plugins/table/plugin-b6c7a5055d4d10bc6423164ef7c94d583420aa6522add0266576f3d55f4fc266.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":124408,"digest":"b6c7a5055d4d10bc6423164ef7c94d583420aa6522add0266576f3d55f4fc266","integrity":"sha256-tselBV1NELxkIxZO98lNWDQgqmUirdAmZXbz1V9PwmY="},"tinymce/plugins/template/plugin-3fc09028fa2506ecff38bb686231a59674c603adefcb836ea87800972d058d07.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":8077,"digest":"3fc09028fa2506ecff38bb686231a59674c603adefcb836ea87800972d058d07","integrity":"sha256-P8CQKPolBuz/OLtoYjGllnTGA63vy4NuqHgAly0FjQc="},"tinymce/plugins/textcolor/plugin-603e3dc13cda914a9121e122685c526d1ec9b3693f73194336fcfe3635ab0f72.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"603e3dc13cda914a9121e122685c526d1ec9b3693f73194336fcfe3635ab0f72","integrity":"sha256-YD49wTzakUqRIeEiaFxSbR7Js2k/cxlDNvz+NjWrD3I="},"tinymce/plugins/textpattern/plugin-e62bfb24b7253f67f488ebfde37f434a5db739851b476fe8be120c4b5cef4690.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":18706,"digest":"e62bfb24b7253f67f488ebfde37f434a5db739851b476fe8be120c4b5cef4690","integrity":"sha256-5iv7JLclP2f0iOv9439DSl23OYUbR2/ovhIMS1zvRpA="},"tinymce/plugins/toc/plugin-3c9a2894e64afd60435f643cbdea6f386bb768953f1e5d2277617ec2af2181e6.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3592,"digest":"3c9a2894e64afd60435f643cbdea6f386bb768953f1e5d2277617ec2af2181e6","integrity":"sha256-PJoolOZK/WBDX2Q8vepvOGu3aJU/Hl0id2F+wq8hgeY="},"tinymce/plugins/visualblocks/plugin-ff51aade18b498b7fb005531cf3f6f4e2f1bd1625848866f22bd8f1f4fc33f52.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1652,"digest":"ff51aade18b498b7fb005531cf3f6f4e2f1bd1625848866f22bd8f1f4fc33f52","integrity":"sha256-/1Gq3hi0mLf7AFUxzz9vTi8b0WJYSIZvIr2PH0/DP1I="},"tinymce/plugins/visualchars/plugin-bf2df47d3130e13ebd66dca0cec5c74e6234aa05391246e1426327760c726a70.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":7081,"digest":"bf2df47d3130e13ebd66dca0cec5c74e6234aa05391246e1426327760c726a70","integrity":"sha256-vy30fTEw4T69ZtygzsXHTmI0qgU5EkbhQmMndgxyanA="},"tinymce/plugins/wordcount/plugin-8cca2fd66f0c5e4f1a7c6edece9a7b745c864c77d782d18905732aa5d9821f9a.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":13186,"digest":"8cca2fd66f0c5e4f1a7c6edece9a7b745c864c77d782d18905732aa5d9821f9a","integrity":"sha256-jMov1m8MXk8afG7ezpp7dFyGTHfXgtGJBXMqpdmCH5o="},"tinymce/themes/mobile/theme-1fd827799842591565cdb4f23c31c50d49622005820df47ea7e8763f186b2fbe.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-02-08T21:52:35+01:00","size":181443,"digest":"1fd827799842591565cdb4f23c31c50d49622005820df47ea7e8763f186b2fbe","integrity":"sha256-H9gneZhCWRVlzbTyPDHFDUliIAWCDfR+p+h2PxhrL74="},"tinymce/themes/silver/theme-0d591b15f2acdb3f20d4e4591282186867c34d195e9eb7afb1e9eda7a9dcadc7.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-02-08T21:52:35+01:00","size":405619,"digest":"0d591b15f2acdb3f20d4e4591282186867c34d195e9eb7afb1e9eda7a9dcadc7","integrity":"sha256-DVkbFfKs2z8g1ORZEoIYaGfDTRlenrevsentp6ncrcc="},"tinymce/tinymce-349eba3f09fc3d85b97150b778731081561d768a31b5dd21179c1fa406cf894d.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":439626,"digest":"349eba3f09fc3d85b97150b778731081561d768a31b5dd21179c1fa406cf894d","integrity":"sha256-NJ66Pwn8PYW5cVC3eHMQgVYddooxtd0hF5wfpAbPiU0="},"application-67028a91c853f53f10798304baa59e456665fb430cd62a8ec9574e798c022828.js":{"logical_path":"application.js","mtime":"2020-02-04T18:01:42+01:00","size":2001617,"digest":"67028a91c853f53f10798304baa59e456665fb430cd62a8ec9574e798c022828","integrity":"sha256-ZwKKkchT9T8QeYMEuqWeRWZl+0MM1iqOyVdOeYwCKCg="},"application-9208c94b0440026e95b0226ee1d6b98cca5c07fc8fec6370ec6682a7829f1f54.css":{"logical_path":"application.css","mtime":"2020-02-04T21:23:23+01:00","size":232451,"digest":"9208c94b0440026e95b0226ee1d6b98cca5c07fc8fec6370ec6682a7829f1f54","integrity":"sha256-kgjJSwRAAm6VsCJu4da5jMpcB/yP7GNw7GaCp4KfH1Q="},"setup_tinymce-624899c2b70fae7d7551be90c104cde8224f9605d74eb1dc49a172f5667cce08.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-04T21:23:23+01:00","size":1033,"digest":"624899c2b70fae7d7551be90c104cde8224f9605d74eb1dc49a172f5667cce08","integrity":"sha256-YkiZwrcPrn11Ub6QwQTN6CJPlgXXTrHcSaFy9WZ8zgg="},"maps-2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba.css":{"logical_path":"maps.css","mtime":"2020-02-25T22:08:25+01:00","size":524,"digest":"2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba","integrity":"sha256-LL6Sa7+63EjQjuYaf61d/Z1WVz/wcNlMQEXPedqpGbo="},"active_admin-2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342.js":{"logical_path":"active_admin.js","mtime":"2020-02-25T22:08:25+01:00","size":963122,"digest":"2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342","integrity":"sha256-LjoEAxV6jtaBQc2CkNO8y8pa99muDSUM7rP46nbd40I="},"application-57a330c5f72fa5562b83ffbdd4a93d88a7cb9063c65ae842a6602939d6b44224.js":{"logical_path":"application.js","mtime":"2020-02-04T21:23:23+01:00","size":2001786,"digest":"57a330c5f72fa5562b83ffbdd4a93d88a7cb9063c65ae842a6602939d6b44224","integrity":"sha256-V6MwxfcvpVYrg/+91Kk9iKfLkGPGWuhCpmApOda0QiQ="},"list-e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd.js":{"logical_path":"list.js","mtime":"2020-02-25T22:08:25+01:00","size":1272,"digest":"e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd","integrity":"sha256-4x9nRHb098W0ZLHuPGgy9Nx9BYhZejg6b7NyEnsrJ70="},"active_admin-955847d711d68a8234b0311555aaabe8ce79d0b0138207a10eb43b8715bfbc6f.css":{"logical_path":"active_admin.css","mtime":"2020-02-25T22:08:25+01:00","size":107558,"digest":"955847d711d68a8234b0311555aaabe8ce79d0b0138207a10eb43b8715bfbc6f","integrity":"sha256-lVhH1xHWioI0sDEVVaqr6M550LATggehDrQ7hxW/vG8="},"application-9779c21d0fae3f6f9cfe4f4f15227545423187e274d4a95009bdab5dd75c9706.js":{"logical_path":"application.js","mtime":"2020-02-08T21:52:35+01:00","size":2001786,"digest":"9779c21d0fae3f6f9cfe4f4f15227545423187e274d4a95009bdab5dd75c9706","integrity":"sha256-l3nCHQ+uP2+c/k9PFSJ1RUIxh+J01KlQCb2rXddclwY="},"application-fffac4f8dc2466271b1e210e8c876b665a819c7d6b3b3ef39f9efd570298dc2e.css":{"logical_path":"application.css","mtime":"2020-02-08T21:52:35+01:00","size":232440,"digest":"fffac4f8dc2466271b1e210e8c876b665a819c7d6b3b3ef39f9efd570298dc2e","integrity":"sha256-//rE+NwkZicbHiEOjIdrZlqBnH1rOz7zn579VwKY3C4="},"setup_tinymce-2ee45c3c0978fadc1ccd3c7f2cc8265cb5390086545987a36dab7a924281c153.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":1033,"digest":"2ee45c3c0978fadc1ccd3c7f2cc8265cb5390086545987a36dab7a924281c153","integrity":"sha256-LuRcPAl4+twczTx/LMgmXLU5AIZUWYejbat6kkKBwVM="},"list-efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7.css":{"logical_path":"list.css","mtime":"2020-02-25T22:08:25+01:00","size":940,"digest":"efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7","integrity":"sha256-7/8lFT4PlPKvNTsC4jnFHaZeOhJQNpqZYMo1ZIkl2fc="},"tinymce-ece97ae71addfb3837df22d939917cc34192192b302409235bedb2f17162d83d.js":{"logical_path":"tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":1085705,"digest":"ece97ae71addfb3837df22d939917cc34192192b302409235bedb2f17162d83d","integrity":"sha256-7Ol65xrd+zg33yLZOZF8w0GSGSswJAkjW+2y8XFi2D0="},"tinymce/plugins/advlist/plugin-ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3995,"digest":"ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa","integrity":"sha256-7zl3EmCZFq3nhPj8PCigepyvw7V+yswUERNpX2Cp3/o="},"tinymce/plugins/anchor/plugin-e1a281e6b5110e207af9dbaaf52083080a6d590aee286fc8b1eac466d5db25f2.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2120,"digest":"e1a281e6b5110e207af9dbaaf52083080a6d590aee286fc8b1eac466d5db25f2","integrity":"sha256-4aKB5rURDiB6+duq9SCDCAptWQruKG/IserEZtXbJfI="},"tinymce/plugins/autolink/plugin-fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2619,"digest":"fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef","integrity":"sha256-/etapPoMQ4aBkDSITZzZqzGcNZshIaWrNUH8PyXRXu8="},"tinymce/plugins/autoresize/plugin-c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2452,"digest":"c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626","integrity":"sha256-wfB3PifW6gvklL30jCytQU9yNKGefpOCfmUmRe8utiY="},"tinymce/plugins/autosave/plugin-3caa7909c1d9d22a1494afe442155a915098ac763c628898a83ff351b8a99bb6.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3493,"digest":"3caa7909c1d9d22a1494afe442155a915098ac763c628898a83ff351b8a99bb6","integrity":"sha256-PKp5CcHZ0ioUlK/kQhVakVCYrHY8YoiYqD/zUbipm7Y="},"tinymce/plugins/bbcode/plugin-0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3117,"digest":"0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3","integrity":"sha256-BUTdfIZk3YVvdxckoYFsQmsr9MzQEPfw9dpwcJRnc/M="},"tinymce/plugins/charmap/plugin-ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11957,"digest":"ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed","integrity":"sha256-7iby1/9yodKWfZ5XaScosfMbbIgv3ZJF5iiO3pereu0="},"tinymce/plugins/code/plugin-9ec6e1d7abda5f2576da4c5ad6c97318589daf0c8ecf38a54cc2982465991d15.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1226,"digest":"9ec6e1d7abda5f2576da4c5ad6c97318589daf0c8ecf38a54cc2982465991d15","integrity":"sha256-nsbh16vaXyV22kxa1slzGFidrwyOzzilTMKYJGWZHRU="},"tinymce/plugins/codesample/plugin-51877540fd6cc721e3385e0a7e283c238182b8d9d38e21dee1be85bf8cd5cd18.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":34548,"digest":"51877540fd6cc721e3385e0a7e283c238182b8d9d38e21dee1be85bf8cd5cd18","integrity":"sha256-UYd1QP1sxyHjOF4Kfig8I4GCuNnTjiHe4b6Fv4zVzRg="},"tinymce/plugins/colorpicker/plugin-c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":550,"digest":"c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852","integrity":"sha256-wJPvxNlJQ0AyPpGubrGkcd8fRHzkXrSn2X9crYkJyFI="},"tinymce/plugins/contextmenu/plugin-d29ea7477a0ea4ed816f8056d5faf9563c0682372d5305d0ad5895db39296e3d.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":550,"digest":"d29ea7477a0ea4ed816f8056d5faf9563c0682372d5305d0ad5895db39296e3d","integrity":"sha256-0p6nR3oOpO2Bb4BW1fr5VjwGgjctUwXQrViV2zkpbj0="},"tinymce/plugins/directionality/plugin-791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":4315,"digest":"791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171","integrity":"sha256-eRvgBKrldEsd7jHn1uhdEmeZG89GkegZEfiKjjQFoXE="},"tinymce/plugins/emoticons/plugin-3443af28675ef4abc8b57aba397c62cc9bf469ec8c4c56a8622fa8ab1c7f2ee3.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":7128,"digest":"3443af28675ef4abc8b57aba397c62cc9bf469ec8c4c56a8622fa8ab1c7f2ee3","integrity":"sha256-NEOvKGde9KvItXq6OXxizJv0aeyMTFaoYi+oqxx/LuM="},"tinymce/plugins/fullpage/plugin-c21647cef8ecc48cfb1fbe68d31d704aaa55c22f83ffd157619e693fef0a63ea.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":8112,"digest":"c21647cef8ecc48cfb1fbe68d31d704aaa55c22f83ffd157619e693fef0a63ea","integrity":"sha256-whZHzvjsxIz7H75o0x1wSqpVwi+D/9FXYZ5pP+8KY+o="},"tinymce/plugins/fullscreen/plugin-880660f477d1447103b4a00768c5279aee8c002c520d9a3684814eaf89f91ca2.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":15300,"digest":"880660f477d1447103b4a00768c5279aee8c002c520d9a3684814eaf89f91ca2","integrity":"sha256-iAZg9HfRRHEDtKAHaMUnmu6MACxSDZo2hIFOr4n5HKI="},"tinymce/plugins/help/plugin-86a13d52eccdd14ca7b75357e1da835637f9edbafdecc227292260a313c5fc9c.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":14507,"digest":"86a13d52eccdd14ca7b75357e1da835637f9edbafdecc227292260a313c5fc9c","integrity":"sha256-hqE9UuzN0Uynt1NX4dqDVjf57br97MInKSJgoxPF/Jw="},"tinymce/plugins/hr/plugin-21fd32a758ffbcb33bbba889889a1343b4d9d0ed4798760090575db4afa7d3f2.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":841,"digest":"21fd32a758ffbcb33bbba889889a1343b4d9d0ed4798760090575db4afa7d3f2","integrity":"sha256-If0yp1j/vLM7u6iJiJoTQ7TZ0O1HmHYAkFddtK+n0/I="},"tinymce/plugins/image/plugin-23e1db85c5ae7840030aa4d47c842b33d9638b154c5962492dca83625b0fb498.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":32433,"digest":"23e1db85c5ae7840030aa4d47c842b33d9638b154c5962492dca83625b0fb498","integrity":"sha256-I+HbhcWueEADCqTUfIQrM9ljixVMWWJJLcqDYlsPtJg="},"tinymce/plugins/imagetools/plugin-2cbf06b6ff65bf39fb84b7352bececcbe7542cfb1b129b71b8cbba39e8f2a02e.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":22356,"digest":"2cbf06b6ff65bf39fb84b7352bececcbe7542cfb1b129b71b8cbba39e8f2a02e","integrity":"sha256-LL8Gtv9lvzn7hLc1K+zsy+dULPsbEptxuMu6OejyoC4="},"tinymce/plugins/importcss/plugin-a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":5008,"digest":"a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5","integrity":"sha256-o430iSOBGfh8h58OG91mvQG5N+IWzG2J0dODhV62w+U="},"tinymce/plugins/insertdatetime/plugin-d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3212,"digest":"d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6","integrity":"sha256-1e4rNkdlvrYWgd48spKPWrLmG8BNx6eVX1MxQA9A/vY="},"tinymce/plugins/legacyoutput/plugin-0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2984,"digest":"0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f","integrity":"sha256-DU+7U4OJGQ4ibNmhXx7BBSMdcCFSJc1BjzimAbCwgj8="},"tinymce/plugins/link/plugin-07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":22818,"digest":"07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1","integrity":"sha256-B90vBY6WKNYgOz1y4GSQiTSzot4MwLaBz1puNWVl57E="},"tinymce/plugins/lists/plugin-1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":28144,"digest":"1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d","integrity":"sha256-HinCKHqYzSr/oGRF5X2qo1uyeE/3qgxTYehrmnmlpT0="},"tinymce/plugins/media/plugin-503d4a44c549474fc28490f1b74202fb564cc60118ab661928ad85a1a5c05eec.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":18373,"digest":"503d4a44c549474fc28490f1b74202fb564cc60118ab661928ad85a1a5c05eec","integrity":"sha256-UD1KRMVJR0/ChJDxt0IC+1ZMxgEYq2YZKK2FoaXAXuw="},"tinymce/plugins/nonbreaking/plugin-4f6785c9462fa2f91c09f28af66a132a05e80883d6ed18972e2afdeb5f05310a.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1585,"digest":"4f6785c9462fa2f91c09f28af66a132a05e80883d6ed18972e2afdeb5f05310a","integrity":"sha256-T2eFyUYvovkcCfKK9moTKgXoCIPW7RiXLir9618FMQo="},"tinymce/plugins/noneditable/plugin-5eadae63f3180758ee175a8f7210456f18c06a8c584d6f494f327015c9cb2f6f.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1842,"digest":"5eadae63f3180758ee175a8f7210456f18c06a8c584d6f494f327015c9cb2f6f","integrity":"sha256-Xq2uY/MYB1juF1qPchBFbxjAaoxYTW9JTzJwFcnLL28="},"tinymce/plugins/pagebreak/plugin-2d87f90ecdc9061deb429b906d4f56f50534310700f06f04021e3b7ca86a5ab6.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1842,"digest":"2d87f90ecdc9061deb429b906d4f56f50534310700f06f04021e3b7ca86a5ab6","integrity":"sha256-LYf5Ds3JBh3rQpuQbU9W9QU0MQcA8G8EAh47fKhqWrY="},"tinymce/plugins/paste/plugin-bb72ecd04e765f7420b9d8b1f3ce4c08b0a1a706d981f6790a0e3f6b921aee48.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":31726,"digest":"bb72ecd04e765f7420b9d8b1f3ce4c08b0a1a706d981f6790a0e3f6b921aee48","integrity":"sha256-u3Ls0E52X3Qgudix885MCLChpwbZgfZ5Cg4/a5Ia7kg="},"tinymce/plugins/preview/plugin-ba4156a0908b3dcea426fac6e92b77e318f06347e435e8067807fb94ba4bf8e1.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2201,"digest":"ba4156a0908b3dcea426fac6e92b77e318f06347e435e8067807fb94ba4bf8e1","integrity":"sha256-ukFWoJCLPc6kJvrG6St34xjwY0fkNegGeAf7lLpL+OE="},"tinymce/plugins/print/plugin-a5f32f46b8f4d88f004fb2794760c28ad820785da94878458b9579fcbede28d4.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":889,"digest":"a5f32f46b8f4d88f004fb2794760c28ad820785da94878458b9579fcbede28d4","integrity":"sha256-pfMvRrj02I8AT7J5R2DCitggeF2pSHhFi5V5/L7eKNQ="},"tinymce/plugins/quickbars/plugin-4b1679721b31f39711fb9a9ced7eafa4835d480f09c306941cc6b496a7a29ded.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11424,"digest":"4b1679721b31f39711fb9a9ced7eafa4835d480f09c306941cc6b496a7a29ded","integrity":"sha256-SxZ5chsx85cR+5qc7X6vpINdSA8JwwaUHMa0lqeine0="},"tinymce/plugins/save/plugin-2d89fe696a668dbf704512f34efb5d1b52043ecd0caf9f2cc45201e0119d4717.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1823,"digest":"2d89fe696a668dbf704512f34efb5d1b52043ecd0caf9f2cc45201e0119d4717","integrity":"sha256-LYn+aWpmjb9wRRLzTvtdG1IEPs0Mr58sxFIB4BGdRxc="},"tinymce/plugins/searchreplace/plugin-0e483238f599a65128f08a8b604770b3ce90c497336a0f903f20f72e930bf4b0.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":10441,"digest":"0e483238f599a65128f08a8b604770b3ce90c497336a0f903f20f72e930bf4b0","integrity":"sha256-DkgyOPWZplEo8IqLYEdws86QxJczag+QPyD3LpML9LA="},"tinymce/plugins/spellchecker/plugin-d3c9ea5666447a3c6a69aed0962193b93ef78e96d0d1804441fa4d8a9fb50139.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11033,"digest":"d3c9ea5666447a3c6a69aed0962193b93ef78e96d0d1804441fa4d8a9fb50139","integrity":"sha256-08nqVmZEejxqaa7QliGTuT73jpbQ0YBEQfpNip+1ATk="},"tinymce/plugins/tabfocus/plugin-bd4a092faf82ce40e57f38518c52af362d20ad972f3a38d4b1ee16e11dd44c9a.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1938,"digest":"bd4a092faf82ce40e57f38518c52af362d20ad972f3a38d4b1ee16e11dd44c9a","integrity":"sha256-vUoJL6+CzkDlfzhRjFKvNi0grZcvOjjUse4W4R3UTJo="},"tinymce/plugins/table/plugin-2ea548314081a1cb752795c39348a5ba0591174474895bebafd7c23e11b514b3.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":124408,"digest":"2ea548314081a1cb752795c39348a5ba0591174474895bebafd7c23e11b514b3","integrity":"sha256-LqVIMUCBoct1J5XDk0ilugWRF0R0iVvrr9fCPhG1FLM="},"tinymce/plugins/template/plugin-6766aba21cbf0e5af59b41b572a97b26538f362f5b6dcdc1fc06be3a573ee0cc.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":8340,"digest":"6766aba21cbf0e5af59b41b572a97b26538f362f5b6dcdc1fc06be3a573ee0cc","integrity":"sha256-Z2arohy/Dlr1m0G1cql7JlOPNi9bbc3B/Aa+Olc+4Mw="},"tinymce/plugins/textcolor/plugin-3ddf1445eb3e7b65fe3814d0ed94ee42b790a1442f39214bfedc39fb9cd71fa3.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":546,"digest":"3ddf1445eb3e7b65fe3814d0ed94ee42b790a1442f39214bfedc39fb9cd71fa3","integrity":"sha256-Pd8URes+e2X+OBTQ7ZTuQreQoUQvOSFL/tw5+5zXH6M="},"tinymce/plugins/textpattern/plugin-b7467b960b1dd5d13cd65c8ac9d149ff945a7ae589a9ced046d680b5d0c30755.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":18625,"digest":"b7467b960b1dd5d13cd65c8ac9d149ff945a7ae589a9ced046d680b5d0c30755","integrity":"sha256-t0Z7lgsd1dE81lyKydFJ/5RaeuWJqc7QRtaAtdDDB1U="},"tinymce/plugins/toc/plugin-b0f62b316120140d532b4176a2fcb4ecc1ee539ee575dfdf3ec4d52654feecbb.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3592,"digest":"b0f62b316120140d532b4176a2fcb4ecc1ee539ee575dfdf3ec4d52654feecbb","integrity":"sha256-sPYrMWEgFA1TK0F2ovy07MHuU57ldd/fPsTVJlT+7Ls="},"tinymce/plugins/visualblocks/plugin-3d4d1ecfab518dbd1ca471a91aec162c1e4ec8392c1c4ec6a33e32f64842a703.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1652,"digest":"3d4d1ecfab518dbd1ca471a91aec162c1e4ec8392c1c4ec6a33e32f64842a703","integrity":"sha256-PU0ez6tRjb0cpHGpGuwWLB5OyDksHE7Goz4y9khCpwM="},"tinymce/plugins/visualchars/plugin-75f145c166b94615af38608585d0a8f6aa3971fdead38f4b395d966c763c1c00.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":7081,"digest":"75f145c166b94615af38608585d0a8f6aa3971fdead38f4b395d966c763c1c00","integrity":"sha256-dfFFwWa5RhWvOGCFhdCo9qo5cf3q049LOV2WbHY8HAA="},"tinymce/plugins/wordcount/plugin-20f61579df72da1abfd62b395a584095c4ff757552fdcce494bc9f937e8b73ed.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":13186,"digest":"20f61579df72da1abfd62b395a584095c4ff757552fdcce494bc9f937e8b73ed","integrity":"sha256-IPYVed9y2hq/1is5WlhAlcT/dXVS/czklLyfk36Lc+0="},"tinymce/themes/mobile/theme-2d06d5421ce0b9c54b77566e62d9a84555ee4d3bc4477688f62513a57049679e.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-02-25T22:08:25+01:00","size":179682,"digest":"2d06d5421ce0b9c54b77566e62d9a84555ee4d3bc4477688f62513a57049679e","integrity":"sha256-LQbVQhzgucVLd1ZuYtmoRVXuTTvER3aI9iUTpXBJZ54="},"tinymce/themes/silver/theme-102eed9f74a53ac362b232e2f646a80c7d72b6d06f6b84b778e77298bd8f8fc5.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-02-25T22:08:25+01:00","size":408264,"digest":"102eed9f74a53ac362b232e2f646a80c7d72b6d06f6b84b778e77298bd8f8fc5","integrity":"sha256-EC7tn3SlOsNisjLi9kaoDH1yttBva4S3eOdymL2Pj8U="},"tinymce/tinymce-c34044666f0c63798d74e00fbf9f187156da82a87e1f59db5778d92f0e2eeecf.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":445763,"digest":"c34044666f0c63798d74e00fbf9f187156da82a87e1f59db5778d92f0e2eeecf","integrity":"sha256-w0BEZm8MY3mNdOAPv58YcVbagqh+H1nbV3jZLw4u7s8="},"tinymce/skins/ui/oxide-dark/content-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2020-02-25T22:08:25+01:00","size":17478,"digest":"3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118","integrity":"sha256-Pz4MsjN3+2bVjtVmnooszsNC8M4tlfUeVPkWbrkqkRg="},"tinymce/skins/ui/oxide-dark/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide-dark/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide-dark/content.min-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17478,"digest":"3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118","integrity":"sha256-Pz4MsjN3+2bVjtVmnooszsNC8M4tlfUeVPkWbrkqkRg="},"tinymce/skins/ui/oxide-dark/skin-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2020-02-25T22:08:25+01:00","size":56280,"digest":"d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f","integrity":"sha256-0tIcJ+15Jrq9R9siLxlzPQV/JXTneed9K+jHS/PAqp8="},"tinymce/skins/ui/oxide-dark/skin.min-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2020-02-25T22:08:25+01:00","size":56280,"digest":"d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f","integrity":"sha256-0tIcJ+15Jrq9R9siLxlzPQV/JXTneed9K+jHS/PAqp8="},"tinymce/skins/ui/oxide/content-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2020-02-25T22:08:25+01:00","size":17853,"digest":"32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4","integrity":"sha256-MvZ6cEJnGbKIBA5v/s9LhyHF+tqPgfxhwTZTzAYhqOQ="},"tinymce/skins/ui/oxide/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide/content.min-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17853,"digest":"32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4","integrity":"sha256-MvZ6cEJnGbKIBA5v/s9LhyHF+tqPgfxhwTZTzAYhqOQ="},"tinymce/skins/ui/oxide/skin-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2020-02-25T22:08:25+01:00","size":56403,"digest":"43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a","integrity":"sha256-Q0EvtU3nKyWH8XpV+WozJRbcZEl0gbI/wfZan6QJNSo="},"tinymce/skins/ui/oxide/skin.min-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2020-02-25T22:08:25+01:00","size":56403,"digest":"43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a","integrity":"sha256-Q0EvtU3nKyWH8XpV+WozJRbcZEl0gbI/wfZan6QJNSo="},"application-fbeae76b41fa288902e940b06c442da8259beba25ea00824357f6e6a22f018fe.js":{"logical_path":"application.js","mtime":"2020-02-24T22:43:55+01:00","size":2016114,"digest":"fbeae76b41fa288902e940b06c442da8259beba25ea00824357f6e6a22f018fe","integrity":"sha256-++rna0H6KIkC6UCwbEQtqCWb66JeoAgkNX9uaiLwGP4="},"application-7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837.css":{"logical_path":"application.css","mtime":"2020-02-25T22:08:25+01:00","size":232688,"digest":"7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837","integrity":"sha256-dnaBCosfcjVMiCHDijyHKfVLuO1a52fpQVm5j0q3SDc="},"flags/4x3/ad-af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c.svg":{"logical_path":"flags/4x3/ad.svg","mtime":"2020-02-25T22:08:25+01:00","size":33473,"digest":"af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c","integrity":"sha256-ryG8UPEuYHb3nb3bYEnqMr90fkqdv2KHgerynoHGIyw="},"flags/1x1/ad-5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839.svg":{"logical_path":"flags/1x1/ad.svg","mtime":"2020-02-25T22:08:25+01:00","size":32253,"digest":"5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839","integrity":"sha256-XzAe7mJjHFBFlQeilhesAsyBBjWdoiuXBdO3PlDcuDk="},"flags/4x3/ae-660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4.svg":{"logical_path":"flags/4x3/ae.svg","mtime":"2020-02-25T22:08:25+01:00","size":254,"digest":"660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4","integrity":"sha256-Zg9gAYn3f7rNIJn1uJiGTgimfQz+OQXDkNz2uGSJ2+Q="},"flags/1x1/ae-09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d.svg":{"logical_path":"flags/1x1/ae.svg","mtime":"2020-02-25T22:08:25+01:00","size":262,"digest":"09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d","integrity":"sha256-CZQ+NVlE1ocPdAk9hYUD3iBPAsp49wEipafXSJcTS20="},"flags/4x3/af-c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0.svg":{"logical_path":"flags/4x3/af.svg","mtime":"2020-02-25T22:08:25+01:00","size":21066,"digest":"c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0","integrity":"sha256-x7/YPbGu/AiXKgk6yogoUZT+sFq4f7Xt5ErLEHovhOA="},"flags/1x1/af-f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0.svg":{"logical_path":"flags/1x1/af.svg","mtime":"2020-02-25T22:08:25+01:00","size":20928,"digest":"f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0","integrity":"sha256-8P5n1rGQOBtLegORc8jXSi3I93c8pqx53iWwsUyLgPA="},"flags/4x3/ag-a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50.svg":{"logical_path":"flags/4x3/ag.svg","mtime":"2020-02-25T22:08:25+01:00","size":749,"digest":"a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50","integrity":"sha256-qYbPm1eQDM+ax1zzm19Rk4XoDcYxn79YTDPgjluRPVA="},"flags/1x1/ag-b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06.svg":{"logical_path":"flags/1x1/ag.svg","mtime":"2020-02-25T22:08:25+01:00","size":761,"digest":"b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06","integrity":"sha256-sO6NxVctuQbzdlaWxB+67z33JlH+Dqowas+qMQq4DQY="},"flags/4x3/ai-efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6.svg":{"logical_path":"flags/4x3/ai.svg","mtime":"2020-02-25T22:08:25+01:00","size":48259,"digest":"efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6","integrity":"sha256-79DCdO3Yzn/JtmXHg/H8KXIYtpmWVnfqB2L+RsDM7/Y="},"flags/1x1/ai-b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f.svg":{"logical_path":"flags/1x1/ai.svg","mtime":"2020-02-25T22:08:25+01:00","size":48199,"digest":"b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f","integrity":"sha256-trqFaOh5o8eOGcaqcStHYXyeyRqwPeZW9DpBu7wc8C8="},"flags/4x3/al-87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485.svg":{"logical_path":"flags/4x3/al.svg","mtime":"2020-02-25T22:08:25+01:00","size":3206,"digest":"87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485","integrity":"sha256-h0duTEszmYO82nFjenGO7RZwvtHjnXQZ20G4+ds6lIU="},"flags/1x1/al-b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217.svg":{"logical_path":"flags/1x1/al.svg","mtime":"2020-02-25T22:08:25+01:00","size":3205,"digest":"b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217","integrity":"sha256-uMZsnY93/mKS5SQWTIBy/a8nKNquA2/lLPVB3I3Oohc="},"flags/4x3/am-8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e.svg":{"logical_path":"flags/4x3/am.svg","mtime":"2020-02-25T22:08:25+01:00","size":223,"digest":"8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e","integrity":"sha256-gkSWbfJv+Woj5NHsVBHH+P3SuTXEgYnfsuJYvalemG4="},"flags/1x1/am-48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b.svg":{"logical_path":"flags/1x1/am.svg","mtime":"2020-02-25T22:08:25+01:00","size":231,"digest":"48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b","integrity":"sha256-SNPJtg8/n0gtg81URZcD52CxqVJKKQpJEpBYjrZWOHs="},"flags/4x3/ao-7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36.svg":{"logical_path":"flags/4x3/ao.svg","mtime":"2020-02-25T22:08:25+01:00","size":1588,"digest":"7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36","integrity":"sha256-esRuHNDH02wyKZETduOPep9Xj2J72InyOrXVyVl8vDY="},"flags/1x1/ao-b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63.svg":{"logical_path":"flags/1x1/ao.svg","mtime":"2020-02-25T22:08:25+01:00","size":1588,"digest":"b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63","integrity":"sha256-tL28QRPKgORcb5bPYgpGOKT+otvRQ3gMwIZTG7lo7mM="},"flags/4x3/aq-62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4.svg":{"logical_path":"flags/4x3/aq.svg","mtime":"2020-02-25T22:08:25+01:00","size":6143,"digest":"62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4","integrity":"sha256-Yu4ZiBQN7oS3yN1f+ifbZ7MkJQW5rBapGYHNBVmcSbQ="},"flags/1x1/aq-2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93.svg":{"logical_path":"flags/1x1/aq.svg","mtime":"2020-02-25T22:08:25+01:00","size":5958,"digest":"2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93","integrity":"sha256-L9knm7T+e9bLU66rGRdk42AsqeUyTjBt0XjpsimrbZM="},"flags/4x3/ar-036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8.svg":{"logical_path":"flags/4x3/ar.svg","mtime":"2020-02-25T22:08:25+01:00","size":3402,"digest":"036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8","integrity":"sha256-A22cNASZWIs3w/+FPafqEF6zX66HbXz+A06+PMN2TNg="},"flags/1x1/ar-3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4.svg":{"logical_path":"flags/1x1/ar.svg","mtime":"2020-02-25T22:08:25+01:00","size":3473,"digest":"3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4","integrity":"sha256-PHqGbZFu/ZqxF769llHazu4ZbuleQg9v1r6MiDnAZ9Q="},"flags/4x3/as-3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a.svg":{"logical_path":"flags/4x3/as.svg","mtime":"2020-02-25T22:08:25+01:00","size":8068,"digest":"3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a","integrity":"sha256-MZOrIihNv+O4gEnQfeeLQ76L2EH/AOcehOPJV8va7mo="},"flags/1x1/as-e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81.svg":{"logical_path":"flags/1x1/as.svg","mtime":"2020-02-25T22:08:25+01:00","size":7828,"digest":"e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81","integrity":"sha256-6M5YHXXU1iYtzRq91XcnPLsG0rFeE98XQnyIgXddXIE="},"flags/4x3/at-1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176.svg":{"logical_path":"flags/4x3/at.svg","mtime":"2020-02-25T22:08:25+01:00","size":240,"digest":"1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176","integrity":"sha256-HlE+Wc+VnTgoetcu3G8HzadUt2Ie+wTtdMMz33P/QXY="},"flags/1x1/at-73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179.svg":{"logical_path":"flags/1x1/at.svg","mtime":"2020-02-25T22:08:25+01:00","size":242,"digest":"73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179","integrity":"sha256-c65rPAN45oVdovbxZGaCGEhRFzNBddaORPiKOEah4Xk="},"flags/4x3/au-213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9.svg":{"logical_path":"flags/4x3/au.svg","mtime":"2020-02-25T22:08:25+01:00","size":1546,"digest":"213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9","integrity":"sha256-ITvMXowMfe/M2W8ZHznlP4c9qBKeVdIw+q/daD1BaPk="},"flags/1x1/au-dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a.svg":{"logical_path":"flags/1x1/au.svg","mtime":"2020-02-25T22:08:25+01:00","size":1483,"digest":"dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a","integrity":"sha256-38mE06ic/cr0QXSCr4ae4ExtA5mqKQXH07XQnVr0qlo="},"flags/4x3/aw-424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637.svg":{"logical_path":"flags/4x3/aw.svg","mtime":"2020-02-25T22:08:25+01:00","size":9951,"digest":"424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637","integrity":"sha256-Qk2yn2TzxydXvFVCFEojR9MBAtF66zCul3VZ/Wjm9jc="},"flags/1x1/aw-b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac.svg":{"logical_path":"flags/1x1/aw.svg","mtime":"2020-02-25T22:08:25+01:00","size":12084,"digest":"b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac","integrity":"sha256-tRYtuidxl/iaqOo2obUOwFfTiy6Ncinq2+VfzH+uIKw="},"flags/4x3/ax-e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811.svg":{"logical_path":"flags/4x3/ax.svg","mtime":"2020-02-25T22:08:25+01:00","size":559,"digest":"e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811","integrity":"sha256-4Lf23VXyYR0qaenxEdw5xTQgacMoVfcpM/9T5vdIiBE="},"flags/1x1/ax-952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3.svg":{"logical_path":"flags/1x1/ax.svg","mtime":"2020-02-25T22:08:25+01:00","size":541,"digest":"952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3","integrity":"sha256-lSdxsx/FnP/lwzZ35tcBvLeCJi6GoB56WR6rWhHkfrM="},"flags/4x3/az-3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78.svg":{"logical_path":"flags/4x3/az.svg","mtime":"2020-02-25T22:08:25+01:00","size":512,"digest":"3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78","integrity":"sha256-Ohb/In2KApXPB8nz/Kt+QATwxLbxjFhY3BYzz2sW/ng="},"flags/1x1/az-ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17.svg":{"logical_path":"flags/1x1/az.svg","mtime":"2020-02-25T22:08:25+01:00","size":498,"digest":"ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17","integrity":"sha256-znardEAZ6ZgNC53adLZk6TNGHPlu6zBahYo5uaOLmxc="},"flags/4x3/ba-0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e.svg":{"logical_path":"flags/4x3/ba.svg","mtime":"2020-02-25T22:08:25+01:00","size":1310,"digest":"0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e","integrity":"sha256-AUWlaw8tfiWFayxi/O9aji1iJX7GfAgG+g6SkzCCUD4="},"flags/1x1/ba-b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1.svg":{"logical_path":"flags/1x1/ba.svg","mtime":"2020-02-25T22:08:25+01:00","size":1242,"digest":"b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1","integrity":"sha256-tEZqCLcXJfi1BX7wlGsZ13pNI+7QuB/Rq+Q4Ddbd48E="},"flags/4x3/bb-667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673.svg":{"logical_path":"flags/4x3/bb.svg","mtime":"2020-02-25T22:08:25+01:00","size":609,"digest":"667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673","integrity":"sha256-Znt5yiZYAuF5z9yKsGKV6eIzAWWfYQ6hEAW3QVrphnM="},"flags/1x1/bb-2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c.svg":{"logical_path":"flags/1x1/bb.svg","mtime":"2020-02-25T22:08:25+01:00","size":609,"digest":"2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c","integrity":"sha256-LODE9VuoUGmJf6FTN7B+EEcMmEZpgle+qFlx1DB7QXw="},"flags/4x3/bd-d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e.svg":{"logical_path":"flags/4x3/bd.svg","mtime":"2020-02-25T22:08:25+01:00","size":190,"digest":"d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e","integrity":"sha256-1e52K6aUSNtfrdahj1ITypIsDwT+fUe8ppg6+7MB/i4="},"flags/1x1/bd-749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce.svg":{"logical_path":"flags/1x1/bd.svg","mtime":"2020-02-25T22:08:25+01:00","size":192,"digest":"749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce","integrity":"sha256-dJtjqpNyAYQ/Y87f19DbMBnd+VuTG0voBpNxb9K4TM4="},"flags/4x3/be-b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae.svg":{"logical_path":"flags/4x3/be.svg","mtime":"2020-02-25T22:08:25+01:00","size":290,"digest":"b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae","integrity":"sha256-s98rlIFbufOIRu6b+Y4T9wzumfmwjYC5X5YRclW7FK4="},"flags/1x1/be-b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc.svg":{"logical_path":"flags/1x1/be.svg","mtime":"2020-02-25T22:08:25+01:00","size":290,"digest":"b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc","integrity":"sha256-uZi9+mlqqikbXJfreDw7UlCCRi3B+mnTLe06PfdY6sw="},"flags/4x3/bf-bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066.svg":{"logical_path":"flags/4x3/bf.svg","mtime":"2020-02-25T22:08:25+01:00","size":357,"digest":"bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066","integrity":"sha256-u1ALB3Lbpypko87ekomMKAO7n71ydDgmWQzOKo9N0GY="},"flags/1x1/bf-8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244.svg":{"logical_path":"flags/1x1/bf.svg","mtime":"2020-02-25T22:08:25+01:00","size":383,"digest":"8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244","integrity":"sha256-j3lezHTOBDG3NQlHCbU1/i9v/Envwyl2EGujMnQcIkQ="},"flags/4x3/bg-c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5.svg":{"logical_path":"flags/4x3/bg.svg","mtime":"2020-02-25T22:08:25+01:00","size":286,"digest":"c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5","integrity":"sha256-xn4Emp8APwmOVUgI504zWZcOTfmtz7abM9y3v9W3qMU="},"flags/1x1/bg-9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205.svg":{"logical_path":"flags/1x1/bg.svg","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205","integrity":"sha256-ndvHtnT/IcvywNgq5ecB+JkCxM6IQVheJdjlzjaQIgU="},"flags/4x3/bh-b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e.svg":{"logical_path":"flags/4x3/bh.svg","mtime":"2020-02-25T22:08:25+01:00","size":517,"digest":"b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e","integrity":"sha256-uJsd0fQLWbEZo3iGUxgjF4Wek7flBroIUW3pe4WQgD4="},"flags/1x1/bh-9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8.svg":{"logical_path":"flags/1x1/bh.svg","mtime":"2020-02-25T22:08:25+01:00","size":538,"digest":"9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8","integrity":"sha256-mm9TrzrydoBK8WWm31JTZKsHdUheIJ8/hKNRqchTffg="},"flags/4x3/bi-d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532.svg":{"logical_path":"flags/4x3/bi.svg","mtime":"2020-02-25T22:08:25+01:00","size":1074,"digest":"d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532","integrity":"sha256-2cwLWN3Wx6EUeZn5b/JdT9gOAKcWNvLg26lS8MV3FTI="},"flags/1x1/bi-78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3.svg":{"logical_path":"flags/1x1/bi.svg","mtime":"2020-02-25T22:08:25+01:00","size":1042,"digest":"78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3","integrity":"sha256-eEdsZoL9D9ydYhl0pujaq2QDg9svlWA6ms2/vB2Ov8M="},"flags/4x3/bj-9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2.svg":{"logical_path":"flags/4x3/bj.svg","mtime":"2020-02-25T22:08:25+01:00","size":502,"digest":"9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2","integrity":"sha256-kIXi3I6ZHg3B4BkpecoZ243Z4izY7HIo9iieK4IxqcI="},"flags/1x1/bj-126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb.svg":{"logical_path":"flags/1x1/bj.svg","mtime":"2020-02-25T22:08:25+01:00","size":499,"digest":"126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb","integrity":"sha256-Em9hA9gakw2NjhheEGTGUC6Z0XCeYi43G1Ufaw9GDMs="},"flags/4x3/bl-1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2.svg":{"logical_path":"flags/4x3/bl.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2","integrity":"sha256-HA/A3AOrx2CRtum4dKuUl1tPtomP853Y/EcF+BsclPI="},"flags/1x1/bl-b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3.svg":{"logical_path":"flags/1x1/bl.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3","integrity":"sha256-tB6wbr6amtgXayR75ohLLSViJhqshbFIu0/JU0d3AbM="},"flags/4x3/bm-13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a.svg":{"logical_path":"flags/4x3/bm.svg","mtime":"2020-02-25T22:08:25+01:00","size":22569,"digest":"13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a","integrity":"sha256-E8tRHdT2ObywewhJnGpZbvSjAHRadA9RWOcL75gjkTo="},"flags/1x1/bm-1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125.svg":{"logical_path":"flags/1x1/bm.svg","mtime":"2020-02-25T22:08:25+01:00","size":22270,"digest":"1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125","integrity":"sha256-GvB+U+OK+FmUYU0OOh7fro9cdAkagsY6BRrBroieUSU="},"flags/4x3/bn-7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6.svg":{"logical_path":"flags/4x3/bn.svg","mtime":"2020-02-25T22:08:25+01:00","size":14213,"digest":"7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6","integrity":"sha256-fF6v2Q8isUMBpXhBZ+cDJlV+hzLelecC2XgK+5ujUfY="},"flags/1x1/bn-58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e.svg":{"logical_path":"flags/1x1/bn.svg","mtime":"2020-02-25T22:08:25+01:00","size":14359,"digest":"58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e","integrity":"sha256-WJMMJQjxreQCQLyT5PrX3iKeH3tso+X4vbl/7NpU8k4="},"flags/4x3/bo-4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc.svg":{"logical_path":"flags/4x3/bo.svg","mtime":"2020-02-25T22:08:25+01:00","size":117062,"digest":"4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc","integrity":"sha256-SrNXldc+xcx854S+29HHLHq1QC82ZZmNmYwbbiRL9Lw="},"flags/1x1/bo-2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294.svg":{"logical_path":"flags/1x1/bo.svg","mtime":"2020-02-25T22:08:25+01:00","size":118659,"digest":"2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294","integrity":"sha256-Kgka+UBBhvrlsqUESwYazo/6U6h0GHyvAHhCynC7QpQ="},"flags/4x3/bq-4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07.svg":{"logical_path":"flags/4x3/bq.svg","mtime":"2020-02-25T22:08:25+01:00","size":224,"digest":"4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07","integrity":"sha256-T2ngSsNlG5ES0UEaCFvW1jJUTFk/rZ0gwnYW2Al0bwc="},"flags/1x1/bq-21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab.svg":{"logical_path":"flags/1x1/bq.svg","mtime":"2020-02-25T22:08:25+01:00","size":228,"digest":"21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab","integrity":"sha256-IeTGFtXNXASGZAtmQA2chVnKsIZQ52AeKRxPWxZDpqs="},"flags/4x3/br-5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8.svg":{"logical_path":"flags/4x3/br.svg","mtime":"2020-02-25T22:08:25+01:00","size":8097,"digest":"5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8","integrity":"sha256-ViZUUnTebejk4sD4ALe2ZLw1IfDum8mFR/PL7D7/4tg="},"flags/1x1/br-38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e.svg":{"logical_path":"flags/1x1/br.svg","mtime":"2020-02-25T22:08:25+01:00","size":7686,"digest":"38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e","integrity":"sha256-OOURTJkS609fGUS05D7rlnke9VLYVaLxbhd8584UXV4="},"flags/4x3/bs-d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838.svg":{"logical_path":"flags/4x3/bs.svg","mtime":"2020-02-25T22:08:25+01:00","size":552,"digest":"d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838","integrity":"sha256-1FVAwfMzrWtwrpmLMX1sVFsvYIuJbcOE2gaUWd1vCDg="},"flags/1x1/bs-f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf.svg":{"logical_path":"flags/1x1/bs.svg","mtime":"2020-02-25T22:08:25+01:00","size":568,"digest":"f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf","integrity":"sha256-8Q1khWxX7+4PJ7Pnlg3ngvOOAmqlVALoAfEL1atQXc8="},"flags/4x3/bt-6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063.svg":{"logical_path":"flags/4x3/bt.svg","mtime":"2020-02-25T22:08:25+01:00","size":25227,"digest":"6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063","integrity":"sha256-bxCebgRldCuaEy8p01a6t35H+EKSYwVtTdd/H2za4GM="},"flags/1x1/bt-569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36.svg":{"logical_path":"flags/1x1/bt.svg","mtime":"2020-02-25T22:08:25+01:00","size":25045,"digest":"569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36","integrity":"sha256-Vp4TQS7eTwANMnrCnCHEmwUdYENxn9rRnqvsOgTUTzY="},"flags/4x3/bv-f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e.svg":{"logical_path":"flags/4x3/bv.svg","mtime":"2020-02-25T22:08:25+01:00","size":585,"digest":"f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e","integrity":"sha256-8lF1UZbxceXXqyaEoJzm3+8gN8wnO7FEYJNOGiwcU44="},"flags/1x1/bv-6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f.svg":{"logical_path":"flags/1x1/bv.svg","mtime":"2020-02-25T22:08:25+01:00","size":582,"digest":"6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f","integrity":"sha256-a+KsXCt7NT3n3TYe/TpVwii6AMpgreC2ZNF34xgrvo8="},"flags/4x3/bw-115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262.svg":{"logical_path":"flags/4x3/bw.svg","mtime":"2020-02-25T22:08:25+01:00","size":252,"digest":"115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262","integrity":"sha256-EVshZf4MH4gaRUCaJLw7z9Qt6aHNrVaG7TawbA1kYmI="},"flags/1x1/bw-df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86.svg":{"logical_path":"flags/1x1/bw.svg","mtime":"2020-02-25T22:08:25+01:00","size":254,"digest":"df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86","integrity":"sha256-35Lk1g+c0QwWB91guLENY7EMnb4w4KAmrQRnDcBqDoY="},"flags/4x3/by-91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047.svg":{"logical_path":"flags/4x3/by.svg","mtime":"2020-02-25T22:08:25+01:00","size":5962,"digest":"91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047","integrity":"sha256-kbJt16lyweupo4flIbtNuUyJFjW7DdK1UjjkVSyjkEc="},"flags/1x1/by-b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc.svg":{"logical_path":"flags/1x1/by.svg","mtime":"2020-02-25T22:08:25+01:00","size":6086,"digest":"b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc","integrity":"sha256-t62o0ftGSHyDuCfBa2n1EnTkLGVfpTen//+ksgRoyvw="},"flags/4x3/bz-173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a.svg":{"logical_path":"flags/4x3/bz.svg","mtime":"2020-02-25T22:08:25+01:00","size":46427,"digest":"173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a","integrity":"sha256-Fz7PexrPsj5Wm38wVjC/4aOZQ+v1BK1mrD9dYT4SHJo="},"flags/1x1/bz-1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249.svg":{"logical_path":"flags/1x1/bz.svg","mtime":"2020-02-25T22:08:25+01:00","size":46678,"digest":"1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249","integrity":"sha256-HQU0nVpJe+NnFVMQtpLnrsQugHlzeNdIF4tw03naEkk="},"flags/4x3/ca-5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331.svg":{"logical_path":"flags/4x3/ca.svg","mtime":"2020-02-25T22:08:25+01:00","size":728,"digest":"5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331","integrity":"sha256-W9qQVpP/7TLflfeajurB+/BiYw3gX0iHXhCcNWgeIzE="},"flags/1x1/ca-85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad.svg":{"logical_path":"flags/1x1/ca.svg","mtime":"2020-02-25T22:08:25+01:00","size":708,"digest":"85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad","integrity":"sha256-he6J+mmMLvytSBdyP6xEMRylINo75j9SoQ4hw/Zej60="},"flags/4x3/cc-d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6.svg":{"logical_path":"flags/4x3/cc.svg","mtime":"2020-02-25T22:08:25+01:00","size":3123,"digest":"d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6","integrity":"sha256-1J6zcwssvj6qcCjVvV9CXKr9gxVM9HUjwnJ5wQJX0/Y="},"flags/1x1/cc-7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970.svg":{"logical_path":"flags/1x1/cc.svg","mtime":"2020-02-25T22:08:25+01:00","size":3083,"digest":"7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970","integrity":"sha256-fEa184RJ8zIK5F+VEaNuGxwiiU+El3wjUgjr+43qmXA="},"flags/4x3/cd-3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248.svg":{"logical_path":"flags/4x3/cd.svg","mtime":"2020-02-25T22:08:25+01:00","size":349,"digest":"3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248","integrity":"sha256-PleZ/++R2Msw3GuEeGfiCegsv/4ndEUgLF8pHTbvAkg="},"flags/1x1/cd-600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e.svg":{"logical_path":"flags/1x1/cd.svg","mtime":"2020-02-25T22:08:25+01:00","size":507,"digest":"600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e","integrity":"sha256-YA5zaWMhSp9nAUYzRfkbVp2rnmj3ZoMX3y9A3viOLW4="},"flags/4x3/cf-44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f.svg":{"logical_path":"flags/4x3/cf.svg","mtime":"2020-02-25T22:08:25+01:00","size":691,"digest":"44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f","integrity":"sha256-ROaP6CVxmFTJKoKFlE5hkojV9lH9F/h0FTCBRJwQDR8="},"flags/1x1/cf-b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175.svg":{"logical_path":"flags/1x1/cf.svg","mtime":"2020-02-25T22:08:25+01:00","size":632,"digest":"b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175","integrity":"sha256-s6YeIvfYvcYR1TJyDPjtKS6rM2BjxWmQNnVdwWAVQXU="},"flags/4x3/cg-7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2.svg":{"logical_path":"flags/4x3/cg.svg","mtime":"2020-02-25T22:08:25+01:00","size":487,"digest":"7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2","integrity":"sha256-fk+e/DeSA7nMlncELeTAe9QRMIyAB0kZA1wI/hMdvKI="},"flags/1x1/cg-20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d.svg":{"logical_path":"flags/1x1/cg.svg","mtime":"2020-02-25T22:08:25+01:00","size":469,"digest":"20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d","integrity":"sha256-IKdCoheJ/AQ0TpBGPAWzXuL+hqYk07ZDK07da9P+ZR0="},"flags/4x3/ch-4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5.svg":{"logical_path":"flags/4x3/ch.svg","mtime":"2020-02-25T22:08:25+01:00","size":297,"digest":"4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5","integrity":"sha256-TpTlw6UkNF58JPOAerLKgSIl6mzNtZ7GcSWw6j7QLNU="},"flags/1x1/ch-a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106.svg":{"logical_path":"flags/1x1/ch.svg","mtime":"2020-02-25T22:08:25+01:00","size":295,"digest":"a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106","integrity":"sha256-oGYPc3HEKh6L4pmp/w12LtErV46kON8ziQqujrpDEQY="},"flags/4x3/ci-d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992.svg":{"logical_path":"flags/4x3/ci.svg","mtime":"2020-02-25T22:08:25+01:00","size":280,"digest":"d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992","integrity":"sha256-1/1BJMuPTZzC1wvSyHVD/SeXUL1wgtUeWRb+plhH6ZI="},"flags/1x1/ci-ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc.svg":{"logical_path":"flags/1x1/ci.svg","mtime":"2020-02-25T22:08:25+01:00","size":283,"digest":"ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc","integrity":"sha256-un92NUfKG5JD/PZE2D8xAFRvf+VX8i+zgLX83e9+Arw="},"flags/4x3/ck-95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8.svg":{"logical_path":"flags/4x3/ck.svg","mtime":"2020-02-25T22:08:25+01:00","size":2097,"digest":"95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8","integrity":"sha256-lehQsCfhmOJ1hAoslv3ovgBvfEtQ0nTC2hDc+tUNPPg="},"flags/1x1/ck-a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754.svg":{"logical_path":"flags/1x1/ck.svg","mtime":"2020-02-25T22:08:25+01:00","size":2020,"digest":"a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754","integrity":"sha256-pg7Ejf0pG89uAyNF/c9y7cmV7663SVNKONGS2BiRt1Q="},"flags/4x3/cl-b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde.svg":{"logical_path":"flags/4x3/cl.svg","mtime":"2020-02-25T22:08:25+01:00","size":563,"digest":"b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde","integrity":"sha256-sMP0MyF6A5JHssfz+GlNBSN7poRya2BKM8EC0Q8nn94="},"flags/1x1/cl-250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0.svg":{"logical_path":"flags/1x1/cl.svg","mtime":"2020-02-25T22:08:25+01:00","size":574,"digest":"250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0","integrity":"sha256-JQ9An1WP4X8B8yYU6/YnXC/M53bOUOyVlkK6u8ZwNuA="},"flags/4x3/cm-1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f.svg":{"logical_path":"flags/4x3/cm.svg","mtime":"2020-02-25T22:08:25+01:00","size":824,"digest":"1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f","integrity":"sha256-Gy5StZYvOOWNoZc7I3lszvrg6CMhhWxhvaaL0/J36m8="},"flags/1x1/cm-809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4.svg":{"logical_path":"flags/1x1/cm.svg","mtime":"2020-02-25T22:08:25+01:00","size":824,"digest":"809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4","integrity":"sha256-gJ6lq1FsTlnuX5DEsFFTZcPUHXdUT/EKux3qiMnzd+Q="},"flags/4x3/cn-e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8.svg":{"logical_path":"flags/4x3/cn.svg","mtime":"2020-02-25T22:08:25+01:00","size":801,"digest":"e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8","integrity":"sha256-6A1xRICnlWF5ktcz0GeOWtUCX4hSs10gpAKnj85Myvg="},"flags/1x1/cn-ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6.svg":{"logical_path":"flags/1x1/cn.svg","mtime":"2020-02-25T22:08:25+01:00","size":743,"digest":"ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6","integrity":"sha256-q5otxrGq6qcBe5aQS3p2BResnlfuWJ7m3RI4x3VL2PY="},"flags/4x3/co-bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da.svg":{"logical_path":"flags/4x3/co.svg","mtime":"2020-02-25T22:08:25+01:00","size":289,"digest":"bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da","integrity":"sha256-vBXqu43DezbXviKMaKL3pilXo7qeTYw121C5GcnRUNo="},"flags/1x1/co-cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2.svg":{"logical_path":"flags/1x1/co.svg","mtime":"2020-02-25T22:08:25+01:00","size":289,"digest":"cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2","integrity":"sha256-yzauQITh5ni+2OCmQ5fgEJ+a/JXCQaBMjj2jald8+vI="},"flags/4x3/cr-12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd.svg":{"logical_path":"flags/4x3/cr.svg","mtime":"2020-02-25T22:08:25+01:00","size":293,"digest":"12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd","integrity":"sha256-Ev6AyBTeOCtTlVq1IjUUJ497SYX1HDL9H2A1YoDh5c0="},"flags/1x1/cr-c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49.svg":{"logical_path":"flags/1x1/cr.svg","mtime":"2020-02-25T22:08:25+01:00","size":293,"digest":"c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49","integrity":"sha256-x4MPDluAJcH5IFstic4besgexk9qnpCT2potngUga0k="},"flags/4x3/cu-0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145.svg":{"logical_path":"flags/4x3/cu.svg","mtime":"2020-02-25T22:08:25+01:00","size":622,"digest":"0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145","integrity":"sha256-Cgm9ylSlNHuhI4R26pDqfX2Z/scWPfQ+diMT3bzpsUU="},"flags/1x1/cu-f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404.svg":{"logical_path":"flags/1x1/cu.svg","mtime":"2020-02-25T22:08:25+01:00","size":573,"digest":"f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404","integrity":"sha256-9ffmxY2e6ARvsULw018j335Jdjs1MFt/zHGdsjVUtAQ="},"flags/4x3/cv-3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532.svg":{"logical_path":"flags/4x3/cv.svg","mtime":"2020-02-25T22:08:25+01:00","size":1415,"digest":"3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532","integrity":"sha256-OraqrxHZo6by+6FySOqF02lnFjIU6YsLswEj0LPe9TI="},"flags/1x1/cv-698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64.svg":{"logical_path":"flags/1x1/cv.svg","mtime":"2020-02-25T22:08:25+01:00","size":1357,"digest":"698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64","integrity":"sha256-aYrqNE1rufh95RP/Ul0W/bJZCtHNey0SAIeMHnzSzmQ="},"flags/4x3/cw-186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376.svg":{"logical_path":"flags/4x3/cw.svg","mtime":"2020-02-25T22:08:25+01:00","size":681,"digest":"186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376","integrity":"sha256-GGttI0eEXJA2iUaNuaUc7EHXRYRhcl/NzsqyfuvDw3Y="},"flags/1x1/cw-e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484.svg":{"logical_path":"flags/1x1/cw.svg","mtime":"2020-02-25T22:08:25+01:00","size":682,"digest":"e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484","integrity":"sha256-4cKB9FEkWXcwvhVQUbRii/JZdP9NrF+ZAmLF8HSrdIQ="},"flags/4x3/cx-aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d.svg":{"logical_path":"flags/4x3/cx.svg","mtime":"2020-02-25T22:08:25+01:00","size":2455,"digest":"aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d","integrity":"sha256-qvFxaOSenvwkslmSnkC3sTX3j07jJ1d6tX6aFP6N/p0="},"flags/1x1/cx-8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99.svg":{"logical_path":"flags/1x1/cx.svg","mtime":"2020-02-25T22:08:25+01:00","size":2496,"digest":"8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99","integrity":"sha256-ivcG+eNNeGdXjwJaBz4DPJAbBQElGaZbrF0xm5YfGpk="},"flags/4x3/cy-88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7.svg":{"logical_path":"flags/4x3/cy.svg","mtime":"2020-02-25T22:08:25+01:00","size":5866,"digest":"88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7","integrity":"sha256-iNBBwO7Abash5NnHd+rWFvKrl+7e+LYZ94+V3VHnSrc="},"flags/1x1/cy-0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba.svg":{"logical_path":"flags/1x1/cy.svg","mtime":"2020-02-25T22:08:25+01:00","size":5955,"digest":"0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba","integrity":"sha256-Dh82HtmMqfAnZXWDJ20PDkBPztyVyzFP1RInk+TOybo="},"flags/4x3/cz-a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609.svg":{"logical_path":"flags/4x3/cz.svg","mtime":"2020-02-25T22:08:25+01:00","size":484,"digest":"a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609","integrity":"sha256-oJT5PORlQV6tN0qmD7fqVZIblWaD8oCdagixr4H/1gk="},"flags/1x1/cz-fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77.svg":{"logical_path":"flags/1x1/cz.svg","mtime":"2020-02-25T22:08:25+01:00","size":480,"digest":"fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77","integrity":"sha256-/KFEvcS8VjzGEqC8kxc4qwlqNiMjmCpKweL3TWZ5LHc="},"flags/4x3/de-226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f.svg":{"logical_path":"flags/4x3/de.svg","mtime":"2020-02-25T22:08:25+01:00","size":213,"digest":"226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f","integrity":"sha256-ImYxqPqd7uBwImgM4EYbegm0FrYWxW68ryH1Dis06o8="},"flags/1x1/de-d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0.svg":{"logical_path":"flags/1x1/de.svg","mtime":"2020-02-25T22:08:25+01:00","size":221,"digest":"d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0","integrity":"sha256-18xhmxyICYHhetujvUTLit3/8dY+fLK01ZqIq+X/MeA="},"flags/4x3/dj-55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae.svg":{"logical_path":"flags/4x3/dj.svg","mtime":"2020-02-25T22:08:25+01:00","size":591,"digest":"55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae","integrity":"sha256-VbI1gVJXQ6Kfs2Aq6Yjckej29eoH1mM36oBRv5Lnw64="},"flags/1x1/dj-ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896.svg":{"logical_path":"flags/1x1/dj.svg","mtime":"2020-02-25T22:08:25+01:00","size":585,"digest":"ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896","integrity":"sha256-/9nry6CHk7uO1+UIzRGH2ehn5DygycZpxuyip8DmGJY="},"flags/4x3/dk-c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44.svg":{"logical_path":"flags/4x3/dk.svg","mtime":"2020-02-25T22:08:25+01:00","size":239,"digest":"c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44","integrity":"sha256-wpUXtOtrBWR1Mwomo/kpwFI++AJoqEV8pdRKfe8830Q="},"flags/1x1/dk-feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469.svg":{"logical_path":"flags/1x1/dk.svg","mtime":"2020-02-25T22:08:25+01:00","size":235,"digest":"feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469","integrity":"sha256-/usnaCzpOy5f4UoypnqnFB9QVyXa+LYBiGSwu+wQNGk="},"flags/4x3/dm-80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070.svg":{"logical_path":"flags/4x3/dm.svg","mtime":"2020-02-25T22:08:25+01:00","size":15975,"digest":"80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070","integrity":"sha256-gCIbko7MOMgsPSkLNr4cbJOIpR6VM8McGXAWsA5jsHA="},"flags/1x1/dm-e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711.svg":{"logical_path":"flags/1x1/dm.svg","mtime":"2020-02-25T22:08:25+01:00","size":16457,"digest":"e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711","integrity":"sha256-5dcldpYtel7NVmMcWiVBwTWfFfCGo9OExWOYPED8JxE="},"flags/4x3/do-d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f.svg":{"logical_path":"flags/4x3/do.svg","mtime":"2020-02-25T22:08:25+01:00","size":393849,"digest":"d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f","integrity":"sha256-05nqk54jwADOErpPfE1KvM3Sj3gySLgZ67ILkFRvYZ8="},"flags/1x1/do-2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c.svg":{"logical_path":"flags/1x1/do.svg","mtime":"2020-02-25T22:08:25+01:00","size":391369,"digest":"2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c","integrity":"sha256-KvM6rMmN3iylzC80mTcOlxW192tcp0Rt4ASQCDNGdUw="},"flags/4x3/dz-6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6.svg":{"logical_path":"flags/4x3/dz.svg","mtime":"2020-02-25T22:08:25+01:00","size":294,"digest":"6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6","integrity":"sha256-ah4quw2KM7AgmjcSPkRxC0sntQcjpdKrf7h0bIhEfPY="},"flags/1x1/dz-75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c.svg":{"logical_path":"flags/1x1/dz.svg","mtime":"2020-02-25T22:08:25+01:00","size":305,"digest":"75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c","integrity":"sha256-dVaBKdQwU2xKmU0F8RTgsbkeEK9zUNY18tpyH3PUhxw="},"flags/4x3/ec-63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde.svg":{"logical_path":"flags/4x3/ec.svg","mtime":"2020-02-25T22:08:25+01:00","size":29320,"digest":"63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde","integrity":"sha256-Y79uOsY2NBmcCSlxWnFRCfitIpxSbAi/vn9qep8w/N4="},"flags/1x1/ec-672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84.svg":{"logical_path":"flags/1x1/ec.svg","mtime":"2020-02-25T22:08:25+01:00","size":29875,"digest":"672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84","integrity":"sha256-ZyVn9F3NDVQ68h51GMQb+P50+gkBQXNrQUaXtoKXH4Q="},"flags/4x3/ee-b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e.svg":{"logical_path":"flags/4x3/ee.svg","mtime":"2020-02-25T22:08:25+01:00","size":321,"digest":"b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e","integrity":"sha256-tMLrzXnoIfuO43451ohWCnne4QCpgUAiJKTyvZdi5B4="},"flags/1x1/ee-53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd.svg":{"logical_path":"flags/1x1/ee.svg","mtime":"2020-02-25T22:08:25+01:00","size":352,"digest":"53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd","integrity":"sha256-U98MYuWDWtzpjllSCuVd258qNYgsWrosy0Ah1rDuiP0="},"flags/4x3/eg-83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42.svg":{"logical_path":"flags/4x3/eg.svg","mtime":"2020-02-25T22:08:25+01:00","size":9899,"digest":"83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42","integrity":"sha256-g/SgHA52IQaR1GsM/37Je27ZMpDDKh6U+rlu/T2bfUI="},"flags/1x1/eg-6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22.svg":{"logical_path":"flags/1x1/eg.svg","mtime":"2020-02-25T22:08:25+01:00","size":9913,"digest":"6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22","integrity":"sha256-YjTHdHxTVwXZtnJfSmoJFYd08ojLFNfpkpWCLE5WHCI="},"flags/4x3/eh-62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639.svg":{"logical_path":"flags/4x3/eh.svg","mtime":"2020-02-25T22:08:25+01:00","size":873,"digest":"62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639","integrity":"sha256-YvFToaTqbo7S958m7RDsy7spW+0W7LRvTnem9fSd9jk="},"flags/1x1/eh-15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c.svg":{"logical_path":"flags/1x1/eh.svg","mtime":"2020-02-25T22:08:25+01:00","size":817,"digest":"15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c","integrity":"sha256-Fau7oobki6UMSuw7dl2MBfm0xTrjhafIo40869aIsDw="},"flags/4x3/er-4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04.svg":{"logical_path":"flags/4x3/er.svg","mtime":"2020-02-25T22:08:25+01:00","size":3187,"digest":"4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04","integrity":"sha256-TFdoWWDQzSe8TubMg1by7Y0KXMVKIrW1A1KQkXBaKwQ="},"flags/1x1/er-29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729.svg":{"logical_path":"flags/1x1/er.svg","mtime":"2020-02-25T22:08:25+01:00","size":3371,"digest":"29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729","integrity":"sha256-KcoOHzGhT17lZ0o/zsmuwOxlK0WLZs/9YKwIOfw2Ryk="},"flags/4x3/es-ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3.svg":{"logical_path":"flags/4x3/es.svg","mtime":"2020-02-25T22:08:25+01:00","size":90819,"digest":"ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3","integrity":"sha256-qz1DiDe38cTrzmmAzJJ0zS5q3Mivm+b1z8R+8sTEZOM="},"flags/1x1/es-bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c.svg":{"logical_path":"flags/1x1/es.svg","mtime":"2020-02-25T22:08:25+01:00","size":92546,"digest":"bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c","integrity":"sha256-v+LZWt9p8zm63PkB4z0SwLYUbX0WoRALEsOrwT3DUhw="},"flags/4x3/et-e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79.svg":{"logical_path":"flags/4x3/et.svg","mtime":"2020-02-25T22:08:25+01:00","size":1233,"digest":"e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79","integrity":"sha256-4o8faezxsm4ALYyNrVXsivXoIrPMp/ERw5nnK04PnHk="},"flags/1x1/et-59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71.svg":{"logical_path":"flags/1x1/et.svg","mtime":"2020-02-25T22:08:25+01:00","size":1226,"digest":"59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71","integrity":"sha256-WXldbTMBXk7BBChhVB32wgNOjhiAhp1pWh/qWpUeLnE="},"flags/4x3/fi-83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2.svg":{"logical_path":"flags/4x3/fi.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2","integrity":"sha256-g3g6fcaXAt+7WYM9gcMJdI/7BFdKq47Ry3WJGJwPgNI="},"flags/1x1/fi-6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336.svg":{"logical_path":"flags/1x1/fi.svg","mtime":"2020-02-25T22:08:25+01:00","size":240,"digest":"6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336","integrity":"sha256-bDI3Ks+6hxzc0iYU8Ou/WOoriN5kjuToQ6K72lwKMzY="},"flags/4x3/fj-4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9.svg":{"logical_path":"flags/4x3/fj.svg","mtime":"2020-02-25T22:08:25+01:00","size":27237,"digest":"4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9","integrity":"sha256-SXLTGg4NJRbAijBYROUxC/iWPXzKacyG7U7S4SH0G+k="},"flags/1x1/fj-36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978.svg":{"logical_path":"flags/1x1/fj.svg","mtime":"2020-02-25T22:08:25+01:00","size":27518,"digest":"36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978","integrity":"sha256-Nv8+Yo/AvumYeMyXQOVKe5XpWZwmNZW12wyL4sariXg="},"flags/4x3/fk-6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457.svg":{"logical_path":"flags/4x3/fk.svg","mtime":"2020-02-25T22:08:25+01:00","size":31973,"digest":"6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457","integrity":"sha256-bRHB7L9BPSf0Bo4hG39fRug7kGfJ/XPqnD9dSMe7tFc="},"flags/1x1/fk-2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79.svg":{"logical_path":"flags/1x1/fk.svg","mtime":"2020-02-25T22:08:25+01:00","size":31798,"digest":"2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79","integrity":"sha256-JwXl2Zb3U/3WZrHTp8b0CFrcBwvoWVe6cfofB/F+ynk="},"flags/4x3/fm-881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75.svg":{"logical_path":"flags/4x3/fm.svg","mtime":"2020-02-25T22:08:25+01:00","size":776,"digest":"881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75","integrity":"sha256-iBRYRpI5AgYkuQ0mAdNHMw0h3XtRLAEcuivLDE3E6nU="},"flags/1x1/fm-0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4.svg":{"logical_path":"flags/1x1/fm.svg","mtime":"2020-02-25T22:08:25+01:00","size":759,"digest":"0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4","integrity":"sha256-Cw2BwpMsKjoRT1CVqeieasJ0xU0M2eeUE2ozmtTfjLQ="},"flags/4x3/fo-c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334.svg":{"logical_path":"flags/4x3/fo.svg","mtime":"2020-02-25T22:08:25+01:00","size":570,"digest":"c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334","integrity":"sha256-wLMt9RNlo5R93NoYwVV1xcYXt1spMw145gbmhPMwQzQ="},"flags/1x1/fo-5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c.svg":{"logical_path":"flags/1x1/fo.svg","mtime":"2020-02-25T22:08:25+01:00","size":534,"digest":"5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c","integrity":"sha256-WRD8gAbxJc48fsW5O4bMvgp55fvC5gqam0gciC0brHw="},"flags/4x3/fr-63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117.svg":{"logical_path":"flags/4x3/fr.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117","integrity":"sha256-Y2Z7Nt3ZXSmp8WPjq0ufcADc0xA1DFZcGbl1oKJBgRc="},"flags/1x1/fr-5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff.svg":{"logical_path":"flags/1x1/fr.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff","integrity":"sha256-XSR+45ZHoFZntS4EUQt2rkZcAJ2iQv+NmGN9E46kEP8="},"flags/4x3/ga-6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659.svg":{"logical_path":"flags/4x3/ga.svg","mtime":"2020-02-25T22:08:25+01:00","size":274,"digest":"6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659","integrity":"sha256-bPGQjvekfWHq0/lpu137luS2kbZikeLNfcccUT0aVlk="},"flags/1x1/ga-2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686.svg":{"logical_path":"flags/1x1/ga.svg","mtime":"2020-02-25T22:08:25+01:00","size":278,"digest":"2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686","integrity":"sha256-Ky6lCEt0G/Cx3R68h+5y5On614BGJ103vstBgx0lloY="},"flags/4x3/gb-825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803.svg":{"logical_path":"flags/4x3/gb.svg","mtime":"2020-02-25T22:08:25+01:00","size":538,"digest":"825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803","integrity":"sha256-glMQ+bzIiSVZMXv8h/wo1de60GwC1WK1dAqvz0sECAM="},"flags/1x1/gb-6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0.svg":{"logical_path":"flags/1x1/gb.svg","mtime":"2020-02-25T22:08:25+01:00","size":541,"digest":"6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0","integrity":"sha256-bObrsMFvH0qnSnil2zgng1RdHKKPK2EztiKLTf8DQPA="},"flags/4x3/gd-eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249.svg":{"logical_path":"flags/4x3/gd.svg","mtime":"2020-02-25T22:08:25+01:00","size":1681,"digest":"eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249","integrity":"sha256-60NcV8JA/TAkAPHsuIfsY8ZytSQDK9DnxiYa5qLx4kk="},"flags/1x1/gd-407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d.svg":{"logical_path":"flags/1x1/gd.svg","mtime":"2020-02-25T22:08:25+01:00","size":1828,"digest":"407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d","integrity":"sha256-QH2sNDkKuLHtgPr6T37x/jIl0dksVAOoAmS0lWF35R0="},"flags/4x3/ge-3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c.svg":{"logical_path":"flags/4x3/ge.svg","mtime":"2020-02-25T22:08:25+01:00","size":1397,"digest":"3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c","integrity":"sha256-MFTU5h7C3jHgjOUcjhv/ZP4tTMOfO8azmIpeOqsyN5w="},"flags/1x1/ge-3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a.svg":{"logical_path":"flags/1x1/ge.svg","mtime":"2020-02-25T22:08:25+01:00","size":1541,"digest":"3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a","integrity":"sha256-P347cHWDgwghLRkcT/H/ORWkoMPhsUBCC8EJW+Fq7go="},"flags/4x3/gf-8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422.svg":{"logical_path":"flags/4x3/gf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422","integrity":"sha256-ix0Emr7B3B5uKCR9T2SfUUbowppLko+UyXdB2ha8xCI="},"flags/1x1/gf-7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f.svg":{"logical_path":"flags/1x1/gf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f","integrity":"sha256-fiXF/cSUYlzMg5DT+xzG2aQjNyx/MKbEArE4sRhA5Z8="},"flags/4x3/gg-7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3.svg":{"logical_path":"flags/4x3/gg.svg","mtime":"2020-02-25T22:08:25+01:00","size":595,"digest":"7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3","integrity":"sha256-elIbB+KmDpFKvxaiVT3XuPGNP/IezliyxBulJkwxF+M="},"flags/1x1/gg-e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf.svg":{"logical_path":"flags/1x1/gg.svg","mtime":"2020-02-25T22:08:25+01:00","size":625,"digest":"e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf","integrity":"sha256-4B1nBtswiZn95wzgMaZgFgwyNNnW57pFR/EJdeWh/88="},"flags/4x3/gh-120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016.svg":{"logical_path":"flags/4x3/gh.svg","mtime":"2020-02-25T22:08:25+01:00","size":281,"digest":"120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016","integrity":"sha256-EgVUpRm85cNA+Y+Mt7z5jqGFctOtE3gEtLDF2AalQBY="},"flags/1x1/gh-b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e.svg":{"logical_path":"flags/1x1/gh.svg","mtime":"2020-02-25T22:08:25+01:00","size":296,"digest":"b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e","integrity":"sha256-uXmTWwZbvvk8GmLK7fA644M8BV9he9wygk/RXFnUv24="},"flags/4x3/gi-c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14.svg":{"logical_path":"flags/4x3/gi.svg","mtime":"2020-02-25T22:08:25+01:00","size":2938,"digest":"c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14","integrity":"sha256-yE+yW7XI2bnMLXD2MKkn9OpPTL6yZ065e0udwtIlbBQ="},"flags/1x1/gi-7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21.svg":{"logical_path":"flags/1x1/gi.svg","mtime":"2020-02-25T22:08:25+01:00","size":2930,"digest":"7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21","integrity":"sha256-coO51qwntJf6/YZ7WA0PEv6nVRpCERUAh9lYFsIUPiE="},"flags/4x3/gl-1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288.svg":{"logical_path":"flags/4x3/gl.svg","mtime":"2020-02-25T22:08:25+01:00","size":223,"digest":"1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288","integrity":"sha256-EUm2s6kN1vT2rI3Urw3fyzPoAYWOSDXF+MbHNG3uMog="},"flags/1x1/gl-5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8.svg":{"logical_path":"flags/1x1/gl.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8","integrity":"sha256-Xm76zWMKfzahV0REqYk2E+XG0D1dVp4UC1kvjnVC/rg="},"flags/4x3/gm-6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c.svg":{"logical_path":"flags/4x3/gm.svg","mtime":"2020-02-25T22:08:25+01:00","size":546,"digest":"6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c","integrity":"sha256-bW2mmHpCQ7uf/4E4rZ4LMBCYxvljys7fmXhQ+2eewow="},"flags/1x1/gm-5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f.svg":{"logical_path":"flags/1x1/gm.svg","mtime":"2020-02-25T22:08:25+01:00","size":382,"digest":"5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f","integrity":"sha256-X4h0+KsJP4TDRlsxEO1ADNjrRXEQ+bYeaE7chn75my8="},"flags/4x3/gn-735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda.svg":{"logical_path":"flags/4x3/gn.svg","mtime":"2020-02-25T22:08:25+01:00","size":295,"digest":"735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda","integrity":"sha256-c1EJuiMzCtnoYCtuJ+ZYvRLjbyYWt+rWW9kI1VOyrNo="},"flags/1x1/gn-255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726.svg":{"logical_path":"flags/1x1/gn.svg","mtime":"2020-02-25T22:08:25+01:00","size":295,"digest":"255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726","integrity":"sha256-JV4sKTBUTiWCfyIOvCbG9TPSkQefNPKtZkRTPT371yY="},"flags/4x3/gp-b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2.svg":{"logical_path":"flags/4x3/gp.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2","integrity":"sha256-ucUJlB7JdSH9gZBNyBooRfqkQ0nMBoNE9Pc42telWLI="},"flags/1x1/gp-8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c.svg":{"logical_path":"flags/1x1/gp.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c","integrity":"sha256-i/XTH9uziLW+4Z0Z96fPHgwDeNV1nFpCVFSbJUJyeiw="},"flags/4x3/gq-52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da.svg":{"logical_path":"flags/4x3/gq.svg","mtime":"2020-02-25T22:08:25+01:00","size":5182,"digest":"52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da","integrity":"sha256-Urja6hg4PDVfH220KLzU6993dzQUjaRAPx6TeXtNydo="},"flags/1x1/gq-f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131.svg":{"logical_path":"flags/1x1/gq.svg","mtime":"2020-02-25T22:08:25+01:00","size":5273,"digest":"f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131","integrity":"sha256-9KRP0uM3z6UvGZcHtgaJGrC9O2i/rsoDPnDCdHOaYTE="},"flags/4x3/gr-d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205.svg":{"logical_path":"flags/4x3/gr.svg","mtime":"2020-02-25T22:08:25+01:00","size":1096,"digest":"d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205","integrity":"sha256-0iMw0q9DziLqt9jsnv2+J8zZrBJV870omqZx2wf9AgU="},"flags/1x1/gr-565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099.svg":{"logical_path":"flags/1x1/gr.svg","mtime":"2020-02-25T22:08:25+01:00","size":1085,"digest":"565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099","integrity":"sha256-Vl4Bf6qWbSDZpAUaGFPDZrvVnrqs7Xf+0y+FC4qcUJk="},"flags/4x3/gs-ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69.svg":{"logical_path":"flags/4x3/gs.svg","mtime":"2020-02-25T22:08:25+01:00","size":34568,"digest":"ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69","integrity":"sha256-rVk65Lnox6TBCaFThaIhRkJAzz935gevKtulPXt9Kmk="},"flags/1x1/gs-718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186.svg":{"logical_path":"flags/1x1/gs.svg","mtime":"2020-02-25T22:08:25+01:00","size":35061,"digest":"718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186","integrity":"sha256-cY4Oid7g8Tj+jkXoTGT3Ilm0HQ82IkubJQe853viEYY="},"flags/4x3/gt-aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5.svg":{"logical_path":"flags/4x3/gt.svg","mtime":"2020-02-25T22:08:25+01:00","size":37255,"digest":"aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5","integrity":"sha256-qhn1ir724LaPe+5zRS4mZ5pkDA/tEvn8LLbN4y/ATaU="},"flags/1x1/gt-66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0.svg":{"logical_path":"flags/1x1/gt.svg","mtime":"2020-02-25T22:08:25+01:00","size":37255,"digest":"66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0","integrity":"sha256-ZtKc3YZg1DgJAohMCNm+ZPPYoCU2hzgU8pCXeLbiNOA="},"flags/4x3/gu-6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d.svg":{"logical_path":"flags/4x3/gu.svg","mtime":"2020-02-25T22:08:25+01:00","size":4840,"digest":"6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d","integrity":"sha256-bTnsZI8DZrd5GPd5vvlhnQZWHSI7y5i1aBPcMuhAPS0="},"flags/1x1/gu-390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729.svg":{"logical_path":"flags/1x1/gu.svg","mtime":"2020-02-25T22:08:25+01:00","size":4614,"digest":"390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729","integrity":"sha256-OQy6+iLpuRMeO/NxCTFxFWhFGav4cIis+g81XGCLRyk="},"flags/4x3/gw-ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77.svg":{"logical_path":"flags/4x3/gw.svg","mtime":"2020-02-25T22:08:25+01:00","size":813,"digest":"ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77","integrity":"sha256-7yubCiilDMEmiftXbPTcW1B7AfuxWkmCmJIdelfw/Xc="},"flags/1x1/gw-14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de.svg":{"logical_path":"flags/1x1/gw.svg","mtime":"2020-02-25T22:08:25+01:00","size":889,"digest":"14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de","integrity":"sha256-FAeAANrxDMKbcWfD+bGyOas3CLO6016O8YXLkmQ/iN4="},"flags/4x3/gy-0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919.svg":{"logical_path":"flags/4x3/gy.svg","mtime":"2020-02-25T22:08:25+01:00","size":488,"digest":"0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919","integrity":"sha256-CxOhd4iHdo1ed2f15KSERE9M875lUUL9bV1ay5ReeRk="},"flags/1x1/gy-7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88.svg":{"logical_path":"flags/1x1/gy.svg","mtime":"2020-02-25T22:08:25+01:00","size":481,"digest":"7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88","integrity":"sha256-dWLtbbcBrwZYp2Oh1HAcEkZ82WLP0L/SYsrBbU/IDIg="},"flags/4x3/hk-17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1.svg":{"logical_path":"flags/4x3/hk.svg","mtime":"2020-02-25T22:08:25+01:00","size":3494,"digest":"17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1","integrity":"sha256-F8HGYUHxqgM5/vxYY4ZtZ+q8sXMr2n1ddXssuTfJPaE="},"flags/1x1/hk-9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927.svg":{"logical_path":"flags/1x1/hk.svg","mtime":"2020-02-25T22:08:25+01:00","size":3529,"digest":"9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927","integrity":"sha256-n1mz1oqUPtJcXgDLPRuX1SKVHYXbD2b+0IdBg1j4iSc="},"flags/4x3/hm-d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3.svg":{"logical_path":"flags/4x3/hm.svg","mtime":"2020-02-25T22:08:25+01:00","size":1324,"digest":"d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3","integrity":"sha256-0OVrggikUNwZtuHq+qgmxDmjGLMzFMUD66sF16nRS6M="},"flags/1x1/hm-78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6.svg":{"logical_path":"flags/1x1/hm.svg","mtime":"2020-02-25T22:08:25+01:00","size":1308,"digest":"78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6","integrity":"sha256-eO02xie5Nw4shzcib2IQVxjBiy8ExiYYFo5DrczMHKY="},"flags/4x3/hn-38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594.svg":{"logical_path":"flags/4x3/hn.svg","mtime":"2020-02-25T22:08:25+01:00","size":1112,"digest":"38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594","integrity":"sha256-OKUChgX2ZFqVxgfyTbbSfVuRVYC+Vho2XPudI4c2tZQ="},"flags/1x1/hn-79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641.svg":{"logical_path":"flags/1x1/hn.svg","mtime":"2020-02-25T22:08:25+01:00","size":1116,"digest":"79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641","integrity":"sha256-ecyXkB9TTCmY0exs1QaoG1nqvAoEDcZu5G74p0BeZkE="},"flags/4x3/hr-b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6.svg":{"logical_path":"flags/4x3/hr.svg","mtime":"2020-02-25T22:08:25+01:00","size":40615,"digest":"b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6","integrity":"sha256-sLHQdcZR4s6xD1WLM6E8ndiTEO375n3w9Gp7XY1VDeY="},"flags/1x1/hr-1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf.svg":{"logical_path":"flags/1x1/hr.svg","mtime":"2020-02-25T22:08:25+01:00","size":40852,"digest":"1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf","integrity":"sha256-EEE0engZLQ52iK963sPNk9hf0N16t5LcgP2CYpcIp78="},"flags/4x3/ht-ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911.svg":{"logical_path":"flags/4x3/ht.svg","mtime":"2020-02-25T22:08:25+01:00","size":15005,"digest":"ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911","integrity":"sha256-unfCPekE3qjd8jkPnjY/qWZ5JTtCW+fU2/ACHEoMmRE="},"flags/1x1/ht-092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b.svg":{"logical_path":"flags/1x1/ht.svg","mtime":"2020-02-25T22:08:25+01:00","size":15094,"digest":"092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b","integrity":"sha256-CS/GXXTPcKo1qN06VYH1u2aKunLd94jE/8IieL5O5ws="},"flags/4x3/hu-470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448.svg":{"logical_path":"flags/4x3/hu.svg","mtime":"2020-02-25T22:08:25+01:00","size":274,"digest":"470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448","integrity":"sha256-RwQx0e0NwgmfIDE/ePkGhIrK+e/OV8VD2Ds7Yvi3pEg="},"flags/1x1/hu-ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b.svg":{"logical_path":"flags/1x1/hu.svg","mtime":"2020-02-25T22:08:25+01:00","size":276,"digest":"ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b","integrity":"sha256-rCv0KE1zwMDWB/XsRoVbmC9W0u5DAwb8oE2jpc2oUVs="},"flags/4x3/id-c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd.svg":{"logical_path":"flags/4x3/id.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd","integrity":"sha256-yYcdkba1gxCDGg14uQTkTrkqZGMKwhmsQxZdDKjw2s0="},"flags/1x1/id-b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa.svg":{"logical_path":"flags/1x1/id.svg","mtime":"2020-02-25T22:08:25+01:00","size":239,"digest":"b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa","integrity":"sha256-tONDQkTCfJX2kz4Zpl/CczSPLtxraV3V3+gQ0S9UWao="},"flags/4x3/ie-4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191.svg":{"logical_path":"flags/4x3/ie.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191","integrity":"sha256-TXPu35ikxIfDUttYdR/3ZvBfaqO/rB7MD5OE5Q0BkZE="},"flags/1x1/ie-e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d.svg":{"logical_path":"flags/1x1/ie.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d","integrity":"sha256-6KISH1Gqjsy6q5/cHphkGPdbbjrfgTKbElHbOmZ4hR0="},"flags/4x3/il-1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a.svg":{"logical_path":"flags/4x3/il.svg","mtime":"2020-02-25T22:08:25+01:00","size":901,"digest":"1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a","integrity":"sha256-Hcw+MVz4sAuKmRTZzmlrBWEq7ClL+F54SyXGcrJZxYo="},"flags/1x1/il-343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a.svg":{"logical_path":"flags/1x1/il.svg","mtime":"2020-02-25T22:08:25+01:00","size":848,"digest":"343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a","integrity":"sha256-NDwEAzmnKs5RIIcA9A/mm/uQ47T1rWKx7WmsQERwcio="},"flags/4x3/im-5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7.svg":{"logical_path":"flags/4x3/im.svg","mtime":"2020-02-25T22:08:25+01:00","size":9870,"digest":"5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7","integrity":"sha256-WyVuvXWrH8TR569PQwa0xrVK5kpn6x2WioQGWgB7fNc="},"flags/1x1/im-6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba.svg":{"logical_path":"flags/1x1/im.svg","mtime":"2020-02-25T22:08:25+01:00","size":10197,"digest":"6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba","integrity":"sha256-bdkHjg15NLV1oAqiuB7/r6W4rtH6bD9oJNVhh8p6Y7o="},"flags/4x3/in-cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45.svg":{"logical_path":"flags/4x3/in.svg","mtime":"2020-02-25T22:08:25+01:00","size":1074,"digest":"cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45","integrity":"sha256-y8FfX7QN8irfKzeS62wdNZ4aev+0Qxilp3mUP8cpnUU="},"flags/1x1/in-dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b.svg":{"logical_path":"flags/1x1/in.svg","mtime":"2020-02-25T22:08:25+01:00","size":1088,"digest":"dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b","integrity":"sha256-3Wi4rEJfiw4aR5M35PtujGRyQfUELmO6TNmFPl47Zhs="},"flags/4x3/io-b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec.svg":{"logical_path":"flags/4x3/io.svg","mtime":"2020-02-25T22:08:25+01:00","size":27341,"digest":"b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec","integrity":"sha256-uUK933EKQuYXsvyruL374hC4XSrJpgtQY9UT7MZkjuw="},"flags/1x1/io-5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e.svg":{"logical_path":"flags/1x1/io.svg","mtime":"2020-02-25T22:08:25+01:00","size":27357,"digest":"5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e","integrity":"sha256-WxJIE78W/kyWtgZENSel8X9s3enwq/lNaIT1+BEYGY4="},"flags/4x3/iq-4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a.svg":{"logical_path":"flags/4x3/iq.svg","mtime":"2020-02-25T22:08:25+01:00","size":1470,"digest":"4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a","integrity":"sha256-SxOwFpDYcGJdYah7uvQyinFGJmmNBW3D9WqaN8Ez13o="},"flags/1x1/iq-4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c.svg":{"logical_path":"flags/1x1/iq.svg","mtime":"2020-02-25T22:08:25+01:00","size":1475,"digest":"4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c","integrity":"sha256-SlKedlpGqzzqW+dNZ1TWZGsXXMXaCnJRFOH80fh3c0w="},"flags/4x3/ir-2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23.svg":{"logical_path":"flags/4x3/ir.svg","mtime":"2020-02-25T22:08:25+01:00","size":15451,"digest":"2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23","integrity":"sha256-IEe5d/LX6INQNeMFUf6DM0A0UhNMMWQQXtMLLm/RSiM="},"flags/1x1/ir-18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6.svg":{"logical_path":"flags/1x1/ir.svg","mtime":"2020-02-25T22:08:25+01:00","size":15356,"digest":"18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6","integrity":"sha256-GLjw2pFOBSSQ5ify2+V6JKFEjoTP7erS0v+peVE1r8Y="},"flags/4x3/is-89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e.svg":{"logical_path":"flags/4x3/is.svg","mtime":"2020-02-25T22:08:25+01:00","size":524,"digest":"89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e","integrity":"sha256-ibJm48WCT6vJG40EqDCj8yxiSEtJVDvDkh4UxXumy34="},"flags/1x1/is-74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3.svg":{"logical_path":"flags/1x1/is.svg","mtime":"2020-02-25T22:08:25+01:00","size":526,"digest":"74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3","integrity":"sha256-dLv50PFxQRDaa6Q4Fj/33hNd2R0yshcnV6lDrHvDVaM="},"flags/4x3/it-2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598.svg":{"logical_path":"flags/4x3/it.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598","integrity":"sha256-LUb9f94/GcPyeP6QKOb6tvqZf73aPhgRb7cOV8/HhZg="},"flags/1x1/it-28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2.svg":{"logical_path":"flags/1x1/it.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2","integrity":"sha256-KKQzmx3FnE53b2vwf1ERfen63gqKdJSS5Hh2S4vYwvI="},"flags/4x3/je-365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a.svg":{"logical_path":"flags/4x3/je.svg","mtime":"2020-02-25T22:08:25+01:00","size":4700,"digest":"365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a","integrity":"sha256-Nl8PnepIBPf5qcoFK+sbObwIEc1dR9ATCUQY1bbFPRo="},"flags/1x1/je-0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6.svg":{"logical_path":"flags/1x1/je.svg","mtime":"2020-02-25T22:08:25+01:00","size":4675,"digest":"0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6","integrity":"sha256-DNxR7CkQFmnTM9S5G2HYfz0wJHPMgb0X/4DMvtbH4PY="},"flags/4x3/jm-fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594.svg":{"logical_path":"flags/4x3/jm.svg","mtime":"2020-02-25T22:08:25+01:00","size":389,"digest":"fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594","integrity":"sha256-/HxdkLRPpboWDGRPbH+JGPVGClhCpRfj/ZnqlLqWNZQ="},"flags/1x1/jm-1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416.svg":{"logical_path":"flags/1x1/jm.svg","mtime":"2020-02-25T22:08:25+01:00","size":389,"digest":"1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416","integrity":"sha256-G4Cw0flAqUlFM1qiaD4BlYkMNfW64kozIcd1LFzfhBY="},"flags/4x3/jo-c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27.svg":{"logical_path":"flags/4x3/jo.svg","mtime":"2020-02-25T22:08:25+01:00","size":720,"digest":"c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27","integrity":"sha256-wxCfn4SfWBkYpFZ3aL0zRQbLUXv4o+06/I5nCuQ0ryc="},"flags/1x1/jo-e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118.svg":{"logical_path":"flags/1x1/jo.svg","mtime":"2020-02-25T22:08:25+01:00","size":691,"digest":"e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118","integrity":"sha256-4YOpqlANe771jfR01LGgVU5MaOGHyYA6aCcsu+zUURg="},"flags/4x3/jp-e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606.svg":{"logical_path":"flags/4x3/jp.svg","mtime":"2020-02-25T22:08:25+01:00","size":474,"digest":"e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606","integrity":"sha256-51ncy6W8ODgUqxkNq6DRLvWRrZ8WFQKkciLC6s93BgY="},"flags/1x1/jp-0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5.svg":{"logical_path":"flags/1x1/jp.svg","mtime":"2020-02-25T22:08:25+01:00","size":484,"digest":"0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5","integrity":"sha256-BXPQIDJaB5Xr8rg7bWBOzOFk78XG4WxvtKSPEk0pAtU="},"flags/4x3/ke-c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8.svg":{"logical_path":"flags/4x3/ke.svg","mtime":"2020-02-25T22:08:25+01:00","size":1379,"digest":"c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8","integrity":"sha256-xjkL0d6tIidjvnyT4Qzo1IzlUNIIPQC5B1BNAfO+jag="},"flags/1x1/ke-3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f.svg":{"logical_path":"flags/1x1/ke.svg","mtime":"2020-02-25T22:08:25+01:00","size":1485,"digest":"3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f","integrity":"sha256-PMb7d4259BXVDlZRBpcZx77Ny3zKU4aFhqKH4CTibY8="},"flags/4x3/kg-618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721.svg":{"logical_path":"flags/4x3/kg.svg","mtime":"2020-02-25T22:08:25+01:00","size":3374,"digest":"618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721","integrity":"sha256-YYQy8HATce9yYKEf3iSBeeSTYPGs0aD9B8TvzRU/RyE="},"flags/1x1/kg-059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35.svg":{"logical_path":"flags/1x1/kg.svg","mtime":"2020-02-25T22:08:25+01:00","size":3316,"digest":"059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35","integrity":"sha256-BZ7pRIsG4A7uR8qKBZ5ghhjdzX4vu5SRSe4L1Gg23TU="},"flags/4x3/kh-ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6.svg":{"logical_path":"flags/4x3/kh.svg","mtime":"2020-02-25T22:08:25+01:00","size":7261,"digest":"ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6","integrity":"sha256-7B4JhNFn6Ma/oCbP3dYEjGTps2NKmcmiDbGU8o8QsaY="},"flags/1x1/kh-16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3.svg":{"logical_path":"flags/1x1/kh.svg","mtime":"2020-02-25T22:08:25+01:00","size":7262,"digest":"16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3","integrity":"sha256-FsCXzCizCLktZeStPAJRYCVqNoOLrlOMCxNX8ER4jaM="},"flags/4x3/ki-591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d.svg":{"logical_path":"flags/4x3/ki.svg","mtime":"2020-02-25T22:08:25+01:00","size":5813,"digest":"591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d","integrity":"sha256-WRqH3nu+txFmP23KrZPiaRCMpqucy8tlPoTJd56dPi0="},"flags/1x1/ki-210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315.svg":{"logical_path":"flags/1x1/ki.svg","mtime":"2020-02-25T22:08:25+01:00","size":5941,"digest":"210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315","integrity":"sha256-IQU3zCdmEU9y+fg4xdwTihjD9J54V197HWmYcwYbAxU="},"flags/4x3/km-f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f.svg":{"logical_path":"flags/4x3/km.svg","mtime":"2020-02-25T22:08:25+01:00","size":1064,"digest":"f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f","integrity":"sha256-9s0+rZJWYXOZRjedEiQg39Aoe2My4l7O/F6Kl63v2w8="},"flags/1x1/km-a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19.svg":{"logical_path":"flags/1x1/km.svg","mtime":"2020-02-25T22:08:25+01:00","size":1037,"digest":"a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19","integrity":"sha256-pqRnMpA26ZY7esoYbnS1r/1hVmOtmAKAemTASqeaXxk="},"flags/4x3/kn-d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924.svg":{"logical_path":"flags/4x3/kn.svg","mtime":"2020-02-25T22:08:25+01:00","size":819,"digest":"d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924","integrity":"sha256-0PAQ2j/DXhubUg6MBj6vmmUMFqDdZQeSjL8BOgRQiSQ="},"flags/1x1/kn-ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363.svg":{"logical_path":"flags/1x1/kn.svg","mtime":"2020-02-25T22:08:25+01:00","size":817,"digest":"ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363","integrity":"sha256-rkq7oUAtYNJfOAyKp90IHn78E0lzOzb/vH5huVG1Q2M="},"flags/4x3/kp-8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79.svg":{"logical_path":"flags/4x3/kp.svg","mtime":"2020-02-25T22:08:25+01:00","size":795,"digest":"8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79","integrity":"sha256-jTSj/X00xTzgGFTiseaccf1rDGXdobiqkPKTWlUbj3k="},"flags/1x1/kp-d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc.svg":{"logical_path":"flags/1x1/kp.svg","mtime":"2020-02-25T22:08:25+01:00","size":852,"digest":"d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc","integrity":"sha256-0MtECDEYG+NtfqYPWt/1ux2ufYqwZzipIKuZStQmUsw="},"flags/4x3/kr-3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a.svg":{"logical_path":"flags/4x3/kr.svg","mtime":"2020-02-25T22:08:25+01:00","size":1822,"digest":"3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a","integrity":"sha256-MWLGfgFwTQb9d9eP7+tZN/7l9O4ybTadoTpbJbddsWo="},"flags/1x1/kr-3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76.svg":{"logical_path":"flags/1x1/kr.svg","mtime":"2020-02-25T22:08:25+01:00","size":1719,"digest":"3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76","integrity":"sha256-P3L1sceIrCvC1+NoDyX1VpLf9mHg3DgZu3jNcR8VLXY="},"flags/4x3/kw-ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71.svg":{"logical_path":"flags/4x3/kw.svg","mtime":"2020-02-25T22:08:25+01:00","size":509,"digest":"ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71","integrity":"sha256-rFOObLr8CpRhG7nGU98wVs+jMD+v8UMwiqVoAXjjT3E="},"flags/1x1/kw-c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e.svg":{"logical_path":"flags/1x1/kw.svg","mtime":"2020-02-25T22:08:25+01:00","size":507,"digest":"c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e","integrity":"sha256-yHTDNNyonLOUs1NOsute1AgpPTIFLpF5/HWDIZG1dZ4="},"flags/4x3/ky-fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef.svg":{"logical_path":"flags/4x3/ky.svg","mtime":"2020-02-25T22:08:25+01:00","size":21724,"digest":"fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef","integrity":"sha256-/Oz/sBqJDwFGTmBn5VkwmbmRl0ZEPRbGnH4iPhO+UO8="},"flags/1x1/ky-707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f.svg":{"logical_path":"flags/1x1/ky.svg","mtime":"2020-02-25T22:08:25+01:00","size":22357,"digest":"707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f","integrity":"sha256-cH0BnndxS43uIHS70XqqwVfS3gmRqNTIRyoDhAPFRx8="},"flags/4x3/kz-8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a.svg":{"logical_path":"flags/4x3/kz.svg","mtime":"2020-02-25T22:08:25+01:00","size":11327,"digest":"8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a","integrity":"sha256-ghQoO5nleBOWmW/f2ExVHqesFaJIRlzLuTWLEzc9gCo="},"flags/1x1/kz-af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49.svg":{"logical_path":"flags/1x1/kz.svg","mtime":"2020-02-25T22:08:25+01:00","size":11415,"digest":"af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49","integrity":"sha256-r0SW0lijbEHOktdxPHIG4ukqxgN8bc2saHuoFedKT0k="},"flags/4x3/la-1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409.svg":{"logical_path":"flags/4x3/la.svg","mtime":"2020-02-25T22:08:25+01:00","size":457,"digest":"1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409","integrity":"sha256-H3C/OAVUL/863bqeIUjVQcswsSXGkqjH4IaM9MfepAk="},"flags/1x1/la-dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d.svg":{"logical_path":"flags/1x1/la.svg","mtime":"2020-02-25T22:08:25+01:00","size":501,"digest":"dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d","integrity":"sha256-2v06AhKrQ8AjI71btvsbQ3ipbgXNNSw1T29IY6P0P20="},"flags/4x3/lb-80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e.svg":{"logical_path":"flags/4x3/lb.svg","mtime":"2020-02-25T22:08:25+01:00","size":2816,"digest":"80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e","integrity":"sha256-gKKqprStTkStGXzNt977pYr2/wqwaSgXgE3hL/WUvI4="},"flags/1x1/lb-5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373.svg":{"logical_path":"flags/1x1/lb.svg","mtime":"2020-02-25T22:08:25+01:00","size":2747,"digest":"5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373","integrity":"sha256-XaMmPzfQ50CpQoOCT18K1sPO7W8S2+EI/ODd12BBg3M="},"flags/4x3/lc-6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e.svg":{"logical_path":"flags/4x3/lc.svg","mtime":"2020-02-25T22:08:25+01:00","size":370,"digest":"6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e","integrity":"sha256-bxhliVbm2lxb9GgYG0ZaM8MwRRNN+zJ9Nam26mxW0j4="},"flags/1x1/lc-c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38.svg":{"logical_path":"flags/1x1/lc.svg","mtime":"2020-02-25T22:08:25+01:00","size":370,"digest":"c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38","integrity":"sha256-xK/hc0KniU9dx+7VZxbpFJN4VhoSwrvYjUwL90AIfDg="},"flags/4x3/li-c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb.svg":{"logical_path":"flags/4x3/li.svg","mtime":"2020-02-25T22:08:25+01:00","size":8268,"digest":"c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb","integrity":"sha256-yX+Q3l7gnVWU+dMVTn6uAVio+SLjlMOtJFAqknTdaPs="},"flags/1x1/li-956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5.svg":{"logical_path":"flags/1x1/li.svg","mtime":"2020-02-25T22:08:25+01:00","size":8291,"digest":"956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5","integrity":"sha256-lWrVB3ICGXgGn95SoI8ltv4xCwAZzKvorNJ0CZ+yGtU="},"flags/4x3/lk-599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e.svg":{"logical_path":"flags/4x3/lk.svg","mtime":"2020-02-25T22:08:25+01:00","size":11242,"digest":"599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e","integrity":"sha256-WZ3lKxRQRg8IOsBlTrToM8BrgJkDx84Ry+ICAF4/CA4="},"flags/1x1/lk-379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d.svg":{"logical_path":"flags/1x1/lk.svg","mtime":"2020-02-25T22:08:25+01:00","size":11254,"digest":"379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d","integrity":"sha256-N51i0iltMNSEocBGlYLTqVc2KEvNvFjp1ry09kiDbR0="},"flags/4x3/lr-66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7.svg":{"logical_path":"flags/4x3/lr.svg","mtime":"2020-02-25T22:08:25+01:00","size":727,"digest":"66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7","integrity":"sha256-ZsAIwtWOK1B3KtlaMIAam2JWbV86yOweoa1Bqq3A9Mc="},"flags/1x1/lr-371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6.svg":{"logical_path":"flags/1x1/lr.svg","mtime":"2020-02-25T22:08:25+01:00","size":694,"digest":"371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6","integrity":"sha256-Nx9UKlj+fko8Z9yS+SAJdXM3ukKKNor04HekzMrGUuY="},"flags/4x3/ls-285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4.svg":{"logical_path":"flags/4x3/ls.svg","mtime":"2020-02-25T22:08:25+01:00","size":1219,"digest":"285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4","integrity":"sha256-KFU0RWwazVI9I+CSIHmfr4USGMGy2AFbC7VXkQyhueQ="},"flags/1x1/ls-80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa.svg":{"logical_path":"flags/1x1/ls.svg","mtime":"2020-02-25T22:08:25+01:00","size":1242,"digest":"80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa","integrity":"sha256-gK2AXjS1cddYYE4rG3Nf4sDzjcFZPBHH2amH6J+Pxqo="},"flags/4x3/lt-9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c.svg":{"logical_path":"flags/4x3/lt.svg","mtime":"2020-02-25T22:08:25+01:00","size":442,"digest":"9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c","integrity":"sha256-kBJpHLFomUT9CBOzO3pY+5eSGUTsiYjyNZD+0hof8Hw="},"flags/1x1/lt-74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08.svg":{"logical_path":"flags/1x1/lt.svg","mtime":"2020-02-25T22:08:25+01:00","size":442,"digest":"74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08","integrity":"sha256-dPQjxiENfcdoZ7H2INDRVkTbXDm55Bl4Ba0gUE0nHwg="},"flags/4x3/lu-4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a.svg":{"logical_path":"flags/4x3/lu.svg","mtime":"2020-02-25T22:08:25+01:00","size":228,"digest":"4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a","integrity":"sha256-RiJiTWmKlXej+5K9T6X5jzBdcEvFEwa4bRCcbIZdBpo="},"flags/1x1/lu-67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e.svg":{"logical_path":"flags/1x1/lu.svg","mtime":"2020-02-25T22:08:25+01:00","size":232,"digest":"67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e","integrity":"sha256-Z86yX7ofxqLDg2zvQDP613dS2wi8vIj6diKyKl9q2i4="},"flags/4x3/lv-dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7.svg":{"logical_path":"flags/4x3/lv.svg","mtime":"2020-02-25T22:08:25+01:00","size":233,"digest":"dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7","integrity":"sha256-3GdSahgz0s18UNh/DaJS4forNh19QYcVU106pj5adrc="},"flags/1x1/lv-23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308.svg":{"logical_path":"flags/1x1/lv.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308","integrity":"sha256-I+JYnIo3Ts+VV3LgGktqcwITM0ZzcnnqweghS2i7Awg="},"flags/4x3/ly-3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470.svg":{"logical_path":"flags/4x3/ly.svg","mtime":"2020-02-25T22:08:25+01:00","size":533,"digest":"3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470","integrity":"sha256-OtA4fP4RlC4fVRFNSeYIMYWv3jUo0rBYhRYL3QQ/9HA="},"flags/1x1/ly-5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d.svg":{"logical_path":"flags/1x1/ly.svg","mtime":"2020-02-25T22:08:25+01:00","size":526,"digest":"5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d","integrity":"sha256-UTnnUZt8gz38pkXi50JFF0iZJ8ufrMbw3/PYC3LR5Z0="},"flags/4x3/ma-f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6.svg":{"logical_path":"flags/4x3/ma.svg","mtime":"2020-02-25T22:08:25+01:00","size":250,"digest":"f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6","integrity":"sha256-9Ap515yIwbuSfsDkDF0ET4OPCixI2CCz6ESekqcdAtY="},"flags/1x1/ma-3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302.svg":{"logical_path":"flags/1x1/ma.svg","mtime":"2020-02-25T22:08:25+01:00","size":250,"digest":"3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302","integrity":"sha256-MZD6F5RLE2uieIDjVM84Wh1/avB2hZ/Y46JbMOre0wI="},"flags/4x3/mc-65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec.svg":{"logical_path":"flags/4x3/mc.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec","integrity":"sha256-ZcMP7Ts63ikqNmyjzqYVWWLpShOUT9Yuc3Bqf4ciU+w="},"flags/1x1/mc-83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad.svg":{"logical_path":"flags/1x1/mc.svg","mtime":"2020-02-25T22:08:25+01:00","size":237,"digest":"83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad","integrity":"sha256-g/nU/5JRO/4i9Vxd8x5gDHeJNmC5s8AA760p6k9sMq0="},"flags/4x3/md-92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440.svg":{"logical_path":"flags/4x3/md.svg","mtime":"2020-02-25T22:08:25+01:00","size":11237,"digest":"92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440","integrity":"sha256-kkdacEVRXrsRwhJ6iWAQk0pWmn0WrcSnAtQa30Vl1EA="},"flags/1x1/md-af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f.svg":{"logical_path":"flags/1x1/md.svg","mtime":"2020-02-25T22:08:25+01:00","size":11337,"digest":"af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f","integrity":"sha256-rzY7FkXaUYAU+BpWcEGbcK3G/Amxwy3vUxRcJtX8JW8="},"flags/4x3/me-29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895.svg":{"logical_path":"flags/4x3/me.svg","mtime":"2020-02-25T22:08:25+01:00","size":62373,"digest":"29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895","integrity":"sha256-KQUjZ3Vtp2ud3MOnGhfcFcw5p9OHyzgfxdqtWIDNGJU="},"flags/1x1/me-551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367.svg":{"logical_path":"flags/1x1/me.svg","mtime":"2020-02-25T22:08:25+01:00","size":63354,"digest":"551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367","integrity":"sha256-VR5THq6fYBzhbyBCF7DepUOWyOaJ3SeSZn4cT90jk2c="},"flags/4x3/mf-a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5.svg":{"logical_path":"flags/4x3/mf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5","integrity":"sha256-oHwp1o1VyMYUJl4b/B7BeQc+mD+dMKGjYTENaNLjD6U="},"flags/1x1/mf-bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e.svg":{"logical_path":"flags/1x1/mf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e","integrity":"sha256-v1mim5XAM+IfxYww9DadtdAxKVQ4mrRsDj0UsX29i04="},"flags/4x3/mg-9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586.svg":{"logical_path":"flags/4x3/mg.svg","mtime":"2020-02-25T22:08:25+01:00","size":302,"digest":"9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586","integrity":"sha256-nh7O6BarjvZEHmu1ptFMQjjwdPy8J4pP+mFogJZp5YY="},"flags/1x1/mg-e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56.svg":{"logical_path":"flags/1x1/mg.svg","mtime":"2020-02-25T22:08:25+01:00","size":302,"digest":"e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56","integrity":"sha256-6HE1pHsXd4eHHI56NB/jtPiYQ9MwJa/9FsLPibz6rFY="},"flags/4x3/mh-4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7.svg":{"logical_path":"flags/4x3/mh.svg","mtime":"2020-02-25T22:08:25+01:00","size":741,"digest":"4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7","integrity":"sha256-R4X9ZBj5NqJwJ3Pj4THyggZ9o9jUBsTDHQ0by/xjivc="},"flags/1x1/mh-ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa.svg":{"logical_path":"flags/1x1/mh.svg","mtime":"2020-02-25T22:08:25+01:00","size":763,"digest":"ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa","integrity":"sha256-q29VEwq/yh6FpoGPdOoPJi6TJ/uZ91hoquK9K4Ou9qo="},"flags/4x3/mk-3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c.svg":{"logical_path":"flags/4x3/mk.svg","mtime":"2020-02-25T22:08:25+01:00","size":382,"digest":"3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c","integrity":"sha256-PHA1CGozskQYi/w60FDrEAqrdx3+Od2CxhmubNEDr0w="},"flags/1x1/mk-ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d.svg":{"logical_path":"flags/1x1/mk.svg","mtime":"2020-02-25T22:08:25+01:00","size":410,"digest":"ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d","integrity":"sha256-681x1p4frTLArL0cmIeUUGmx916lLvhX4uJuiSen2Y0="},"flags/4x3/ml-e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca.svg":{"logical_path":"flags/4x3/ml.svg","mtime":"2020-02-25T22:08:25+01:00","size":276,"digest":"e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca","integrity":"sha256-6DJlia2V1jsoVjZ9sLY0NHnrWR0Ra8fnosFefUIujco="},"flags/1x1/ml-0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a.svg":{"logical_path":"flags/1x1/ml.svg","mtime":"2020-02-25T22:08:25+01:00","size":279,"digest":"0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a","integrity":"sha256-D5kPrGoyRnba2QrNH45c+OZgvWL5eO5ErO3vrMwia3o="},"flags/4x3/mm-f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1.svg":{"logical_path":"flags/4x3/mm.svg","mtime":"2020-02-25T22:08:25+01:00","size":848,"digest":"f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1","integrity":"sha256-9+9KNM+Y2W9VfQpwIPF4FUtzASm+TCtfhCW4JWZYdcE="},"flags/1x1/mm-f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b.svg":{"logical_path":"flags/1x1/mm.svg","mtime":"2020-02-25T22:08:25+01:00","size":865,"digest":"f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b","integrity":"sha256-9N+eSzpN+NnuRkUEofiM3A6gjZkjyMezCZ7I6rv0JYs="},"flags/4x3/mn-00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3.svg":{"logical_path":"flags/4x3/mn.svg","mtime":"2020-02-25T22:08:25+01:00","size":1245,"digest":"00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3","integrity":"sha256-AGSctWutB/jTRHLogfvjcKRoeUFvy6jfxlX27u0AVqM="},"flags/1x1/mn-ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7.svg":{"logical_path":"flags/1x1/mn.svg","mtime":"2020-02-25T22:08:25+01:00","size":1251,"digest":"ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7","integrity":"sha256-/16mgdZuGoj/hYTfx/sg6O0oKyGL+cwGUYsd+Q8/mcc="},"flags/4x3/mo-62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e.svg":{"logical_path":"flags/4x3/mo.svg","mtime":"2020-02-25T22:08:25+01:00","size":1461,"digest":"62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e","integrity":"sha256-YmEBMSATEtQmgZdVbilSky7kzeIs6HZmhyLMMyuDmJ4="},"flags/1x1/mo-8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a.svg":{"logical_path":"flags/1x1/mo.svg","mtime":"2020-02-25T22:08:25+01:00","size":1495,"digest":"8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a","integrity":"sha256-jqrTfRDG22A1sNSnTDMBVTnyx4zWVeDOThqksE8842o="},"flags/4x3/mp-2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef.svg":{"logical_path":"flags/4x3/mp.svg","mtime":"2020-02-25T22:08:25+01:00","size":23398,"digest":"2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef","integrity":"sha256-Lkr3g77G9HT8AydafcBIoUbSitPaYV1l5uttkwwAVO8="},"flags/1x1/mp-9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563.svg":{"logical_path":"flags/1x1/mp.svg","mtime":"2020-02-25T22:08:25+01:00","size":23628,"digest":"9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563","integrity":"sha256-m4kxbeCoA/Ybik6EJIPbN0NsyeU5Edbi9ZtT36Qi1WM="},"flags/4x3/mq-297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9.svg":{"logical_path":"flags/4x3/mq.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9","integrity":"sha256-KX0mil6Wf300yRqkUT+G7Gey78723ylKeEalVNc/Itk="},"flags/1x1/mq-0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093.svg":{"logical_path":"flags/1x1/mq.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093","integrity":"sha256-DkZvbWBKETSvqo/M7ZOEW9F74E3r/TAtcJZKgGUy8JM="},"flags/4x3/mr-e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe.svg":{"logical_path":"flags/4x3/mr.svg","mtime":"2020-02-25T22:08:25+01:00","size":442,"digest":"e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe","integrity":"sha256-5BkIud5Y/pR56aLipbwAdMoQE8wkfysUEFaOi6vk6/4="},"flags/1x1/mr-fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799.svg":{"logical_path":"flags/1x1/mr.svg","mtime":"2020-02-25T22:08:25+01:00","size":431,"digest":"fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799","integrity":"sha256-+gJmBA9/qZI2wQ42vSOtkqVY/dedJQojB2czriqt55k="},"flags/4x3/ms-c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262.svg":{"logical_path":"flags/4x3/ms.svg","mtime":"2020-02-25T22:08:25+01:00","size":9279,"digest":"c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262","integrity":"sha256-wsDf7qSh9G37UQr8ipfpnMWpHYmFHpfk7dSPENEOsmI="},"flags/1x1/ms-c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43.svg":{"logical_path":"flags/1x1/ms.svg","mtime":"2020-02-25T22:08:25+01:00","size":12140,"digest":"c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43","integrity":"sha256-wboncREYE1sNaUFRo345fnGuGUcM0vt7shzLgXj0vkM="},"flags/4x3/mt-fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d.svg":{"logical_path":"flags/4x3/mt.svg","mtime":"2020-02-25T22:08:25+01:00","size":8733,"digest":"fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d","integrity":"sha256-/Wpsv5WOfTuIBw3taHFrK4W8EwrPaOOwu6sFNh26tH0="},"flags/1x1/mt-b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100.svg":{"logical_path":"flags/1x1/mt.svg","mtime":"2020-02-25T22:08:25+01:00","size":10422,"digest":"b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100","integrity":"sha256-uEG4zTxWiwY4q3/RLo3PJPCfG2u/eUKijFIhKsRl0QA="},"flags/4x3/mu-e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6.svg":{"logical_path":"flags/4x3/mu.svg","mtime":"2020-02-25T22:08:25+01:00","size":319,"digest":"e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6","integrity":"sha256-485n5pf7azOjlyY3lXR1Lu9XsSHW9g0WDmvH1+2PWuY="},"flags/1x1/mu-9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb.svg":{"logical_path":"flags/1x1/mu.svg","mtime":"2020-02-25T22:08:25+01:00","size":319,"digest":"9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb","integrity":"sha256-nk4Zpnisi4TrFHQL6Uin3qA1tcBiNjm6bgbiQjWaobs="},"flags/4x3/mv-0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d.svg":{"logical_path":"flags/4x3/mv.svg","mtime":"2020-02-25T22:08:25+01:00","size":289,"digest":"0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d","integrity":"sha256-D5uG77f41m0oIj/1kiMoEs/S0lZ9uD75a/eD6jFU640="},"flags/1x1/mv-57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da.svg":{"logical_path":"flags/1x1/mv.svg","mtime":"2020-02-25T22:08:25+01:00","size":307,"digest":"57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da","integrity":"sha256-VzIzkM3XmyjmWLYIkwRGkBJTbFcQF4cCBwHtkVGISNo="},"flags/4x3/mw-c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b.svg":{"logical_path":"flags/4x3/mw.svg","mtime":"2020-02-25T22:08:25+01:00","size":3652,"digest":"c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b","integrity":"sha256-wsk+FoUn7IvaJ5mFQ3DfrK/LSR851gg5ANkDJEwAzEs="},"flags/1x1/mw-5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0.svg":{"logical_path":"flags/1x1/mw.svg","mtime":"2020-02-25T22:08:25+01:00","size":3797,"digest":"5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0","integrity":"sha256-W6rRVZXc2MCCLiu5WB79AnrCPOEO+kIC87X1ZoGQgKA="},"flags/4x3/mx-8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7.svg":{"logical_path":"flags/4x3/mx.svg","mtime":"2020-02-25T22:08:25+01:00","size":94979,"digest":"8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7","integrity":"sha256-glhQMEOgo7b8aO8a8AJe8N6F+kgvt36LoiDDzWp6hqc="},"flags/1x1/mx-b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e.svg":{"logical_path":"flags/1x1/mx.svg","mtime":"2020-02-25T22:08:25+01:00","size":90505,"digest":"b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e","integrity":"sha256-tntonABFy06KTVpDmtu/TEccwJDL63unsq7Q7qvb7z4="},"flags/4x3/my-c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c.svg":{"logical_path":"flags/4x3/my.svg","mtime":"2020-02-25T22:08:25+01:00","size":1270,"digest":"c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c","integrity":"sha256-yZI0CoyChPyjP7y8soes5ow1WgYDxHHZsJogerT3OQw="},"flags/1x1/my-cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd.svg":{"logical_path":"flags/1x1/my.svg","mtime":"2020-02-25T22:08:25+01:00","size":1262,"digest":"cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd","integrity":"sha256-yxCpJQgyTJ3iZBt0ynoMSHJUjch0+8vp911qpG7NKL0="},"flags/4x3/mz-db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1.svg":{"logical_path":"flags/4x3/mz.svg","mtime":"2020-02-25T22:08:25+01:00","size":2622,"digest":"db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1","integrity":"sha256-22MQ7WgXlJHX2a0D0TPNis4P113QYk8/nxyFbreZ/bE="},"flags/1x1/mz-cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473.svg":{"logical_path":"flags/1x1/mz.svg","mtime":"2020-02-25T22:08:25+01:00","size":2597,"digest":"cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473","integrity":"sha256-y8V0Hny0oiEtwxF3K1VojE6eLS8R0eLDxC3U8qFGRHM="},"flags/4x3/na-7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213.svg":{"logical_path":"flags/4x3/na.svg","mtime":"2020-02-25T22:08:25+01:00","size":1005,"digest":"7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213","integrity":"sha256-fHNIWCnGruX7LmeHB4g66Z3m3cUPQ5MCX9re3XiUQhM="},"flags/1x1/na-37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20.svg":{"logical_path":"flags/1x1/na.svg","mtime":"2020-02-25T22:08:25+01:00","size":977,"digest":"37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20","integrity":"sha256-N9jInx9+Xi3Xp+IhGv1UKpVlUzmVUA5WhseRpun1HSA="},"flags/4x3/nc-b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475.svg":{"logical_path":"flags/4x3/nc.svg","mtime":"2020-02-25T22:08:25+01:00","size":1380,"digest":"b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475","integrity":"sha256-sMCV01nljeRamExNOqc8VELnbCuIN65JH1MoTeGhVHU="},"flags/1x1/nc-d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656.svg":{"logical_path":"flags/1x1/nc.svg","mtime":"2020-02-25T22:08:25+01:00","size":1387,"digest":"d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656","integrity":"sha256-16ByI7iwQKiOpqEWYrlHrdYuQ4qZNyFJTfiJUaqd9lY="},"flags/4x3/ne-54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900.svg":{"logical_path":"flags/4x3/ne.svg","mtime":"2020-02-25T22:08:25+01:00","size":276,"digest":"54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900","integrity":"sha256-VNcHbe8md2bY5J2CLWubd06Cv+CpEmmwlRFI9aGeSQA="},"flags/1x1/ne-bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3.svg":{"logical_path":"flags/1x1/ne.svg","mtime":"2020-02-25T22:08:25+01:00","size":282,"digest":"bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3","integrity":"sha256-vuCIxCtM4Tpdw0ZCTzVKU6eNt9uOqgZL9TS3EVMvGcM="},"flags/4x3/nf-f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c.svg":{"logical_path":"flags/4x3/nf.svg","mtime":"2020-02-25T22:08:25+01:00","size":5837,"digest":"f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c","integrity":"sha256-8OC5byWGrWazZ/5kkLSN+K7qDBAL9ReM0f+8A1cf6Vw="},"flags/1x1/nf-4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d.svg":{"logical_path":"flags/1x1/nf.svg","mtime":"2020-02-25T22:08:25+01:00","size":5591,"digest":"4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d","integrity":"sha256-SIDX2yZrQhm/SHj6Q1+QIcAthscwnWVxxcxqDrqBd30="},"flags/4x3/ng-f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33.svg":{"logical_path":"flags/4x3/ng.svg","mtime":"2020-02-25T22:08:25+01:00","size":260,"digest":"f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33","integrity":"sha256-8coCtNIDT1Olt2hnSIPatLIYUtwq45stArwoE4TZXjM="},"flags/1x1/ng-8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a.svg":{"logical_path":"flags/1x1/ng.svg","mtime":"2020-02-25T22:08:25+01:00","size":260,"digest":"8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a","integrity":"sha256-izShK0txFutuzHl0TgsCRMrN6l6iAJQFIgQvoSlTCXo="},"flags/4x3/ni-a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb.svg":{"logical_path":"flags/4x3/ni.svg","mtime":"2020-02-25T22:08:25+01:00","size":18408,"digest":"a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb","integrity":"sha256-psjX96dLk6TEJYnJUc436j4HPa+C8kGO+mpf8ewtI/s="},"flags/1x1/ni-a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504.svg":{"logical_path":"flags/1x1/ni.svg","mtime":"2020-02-25T22:08:25+01:00","size":18463,"digest":"a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504","integrity":"sha256-qerUsHXhg84Tn5wmJW3SqNCD1NEm2F84SNjprIhKtQQ="},"flags/4x3/nl-a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51.svg":{"logical_path":"flags/4x3/nl.svg","mtime":"2020-02-25T22:08:25+01:00","size":224,"digest":"a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51","integrity":"sha256-qRF0o8zNXsZtosxo4Mv4aj6nPSl23DA8chCRmLJQS1E="},"flags/1x1/nl-426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2.svg":{"logical_path":"flags/1x1/nl.svg","mtime":"2020-02-25T22:08:25+01:00","size":228,"digest":"426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2","integrity":"sha256-QmvrorwKeuQHnIWGUJ9pAtyaYIL0oOx8cVIFcqw/hsI="},"flags/4x3/no-c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a.svg":{"logical_path":"flags/4x3/no.svg","mtime":"2020-02-25T22:08:25+01:00","size":321,"digest":"c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a","integrity":"sha256-xZ8Vbd1wUH8FJn3DXi5PPkRGe570FJlau5FYncSG3Wo="},"flags/1x1/no-567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25.svg":{"logical_path":"flags/1x1/no.svg","mtime":"2020-02-25T22:08:25+01:00","size":321,"digest":"567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25","integrity":"sha256-Vn3xH14S+VpMcHI0EnrYeNthwobP3QNNvKuMQiLEryU="},"flags/4x3/np-ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0.svg":{"logical_path":"flags/4x3/np.svg","mtime":"2020-02-25T22:08:25+01:00","size":1061,"digest":"ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0","integrity":"sha256-3cBCuljAhC5KHdisVnAd2OImWcsE45BdOGaBDWMzqvA="},"flags/1x1/np-d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2.svg":{"logical_path":"flags/1x1/np.svg","mtime":"2020-02-25T22:08:25+01:00","size":1193,"digest":"d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2","integrity":"sha256-2BraxJHk58736Uq26U8AVksxn5o4O4Xg3XU668HP7qI="},"flags/4x3/nr-2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792.svg":{"logical_path":"flags/4x3/nr.svg","mtime":"2020-02-25T22:08:25+01:00","size":651,"digest":"2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792","integrity":"sha256-Lxn7UyWYpZU2zPS7b0RGwI6xue1evg/x8AvG/Iw255I="},"flags/1x1/nr-6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c.svg":{"logical_path":"flags/1x1/nr.svg","mtime":"2020-02-25T22:08:25+01:00","size":668,"digest":"6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c","integrity":"sha256-bmb4BSWmuSkgsazQHJvMIUsaLwU5PWWvZChWfn3gzGw="},"flags/4x3/nu-55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c.svg":{"logical_path":"flags/4x3/nu.svg","mtime":"2020-02-25T22:08:25+01:00","size":1745,"digest":"55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c","integrity":"sha256-VTkMwBToXrVrnQgARHCQDRPZXtg921AGv04OHPUZAow="},"flags/1x1/nu-1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f.svg":{"logical_path":"flags/1x1/nu.svg","mtime":"2020-02-25T22:08:25+01:00","size":1727,"digest":"1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f","integrity":"sha256-G/pVqT7KT/2YH5iTXWwsq1iim+Tw0vFaUBSNaVq1Dz8="},"flags/4x3/nz-b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f.svg":{"logical_path":"flags/4x3/nz.svg","mtime":"2020-02-25T22:08:25+01:00","size":2989,"digest":"b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f","integrity":"sha256-t/Twlh8AewzDVd+FkDsK8M/WtlXiOqVqpUfcXtaTrn8="},"flags/1x1/nz-b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23.svg":{"logical_path":"flags/1x1/nz.svg","mtime":"2020-02-25T22:08:25+01:00","size":2999,"digest":"b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23","integrity":"sha256-uTp3/iYu0dX70ZbyIkwPorPdbR6EwAJ8WhImQ/2tjSM="},"flags/4x3/om-d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967.svg":{"logical_path":"flags/4x3/om.svg","mtime":"2020-02-25T22:08:25+01:00","size":22636,"digest":"d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967","integrity":"sha256-1mBHwPVUslJQVmvb331KwDwPcI8DzUxBWcV/FvoFaWc="},"flags/1x1/om-20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9.svg":{"logical_path":"flags/1x1/om.svg","mtime":"2020-02-25T22:08:25+01:00","size":22614,"digest":"20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9","integrity":"sha256-IGacOk8YHQNbWs2CoS1zVLPF3stTOD6mt6U9ArcTj+k="},"flags/4x3/pa-0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11.svg":{"logical_path":"flags/4x3/pa.svg","mtime":"2020-02-25T22:08:25+01:00","size":749,"digest":"0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11","integrity":"sha256-C9S2cJ2cqCKFHy18V++fs8CYzu6l0jm7+PMZawYtHRE="},"flags/1x1/pa-6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7.svg":{"logical_path":"flags/1x1/pa.svg","mtime":"2020-02-25T22:08:25+01:00","size":659,"digest":"6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7","integrity":"sha256-bg4nGQs8OAa2yugtDjcIwF4CvIJHniUvRIag7uQ6WNc="},"flags/4x3/pe-3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5.svg":{"logical_path":"flags/4x3/pe.svg","mtime":"2020-02-25T22:08:25+01:00","size":73609,"digest":"3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5","integrity":"sha256-P939mlQF2qda411xchm+BJQPvZVrWD+pp10MVOxdbaU="},"flags/1x1/pe-e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9.svg":{"logical_path":"flags/1x1/pe.svg","mtime":"2020-02-25T22:08:25+01:00","size":72907,"digest":"e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9","integrity":"sha256-4EaPBe3a6l+3jY2GRApYDNnPXye6o+KsTyKbRCOr1/k="},"flags/4x3/pf-de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1.svg":{"logical_path":"flags/4x3/pf.svg","mtime":"2020-02-25T22:08:25+01:00","size":4290,"digest":"de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1","integrity":"sha256-3nLgbxr51dP0SZXkHsabNmnaHVmkC02ZsDFkYXqzJrE="},"flags/1x1/pf-d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88.svg":{"logical_path":"flags/1x1/pf.svg","mtime":"2020-02-25T22:08:25+01:00","size":4229,"digest":"d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88","integrity":"sha256-1o4CT5qCaweQZ5v1DPLwBPUGOqy/mZSKCut5LJfiDIg="},"flags/4x3/pg-10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809.svg":{"logical_path":"flags/4x3/pg.svg","mtime":"2020-02-25T22:08:25+01:00","size":1661,"digest":"10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809","integrity":"sha256-EK6DfZx4KBeMxwo0ibcZq4ijw9+9WL/PfAziaQjvyAk="},"flags/1x1/pg-40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb.svg":{"logical_path":"flags/1x1/pg.svg","mtime":"2020-02-25T22:08:25+01:00","size":2095,"digest":"40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb","integrity":"sha256-QM1kYg9q8LlDQPp8cd4OLvVB5gctiG5mbd9qzS9a7Ns="},"flags/4x3/ph-fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5.svg":{"logical_path":"flags/4x3/ph.svg","mtime":"2020-02-25T22:08:25+01:00","size":1565,"digest":"fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5","integrity":"sha256-/RZ6QzBJcqpD92oOw/A9yJ3eT5atxlSn4OLhJXqpp+U="},"flags/1x1/ph-2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c.svg":{"logical_path":"flags/1x1/ph.svg","mtime":"2020-02-25T22:08:25+01:00","size":1510,"digest":"2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c","integrity":"sha256-L53Tf5dizoDxmLjLm0rKueGcSC18u5J/eGaxkgEzrzw="},"flags/4x3/pk-0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9.svg":{"logical_path":"flags/4x3/pk.svg","mtime":"2020-02-25T22:08:25+01:00","size":739,"digest":"0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9","integrity":"sha256-DFraTRSdf/GOqQczz5v6h1SYFzATjCDsl7hk2X/jTvk="},"flags/1x1/pk-637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903.svg":{"logical_path":"flags/1x1/pk.svg","mtime":"2020-02-25T22:08:25+01:00","size":684,"digest":"637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903","integrity":"sha256-Y3mUyG6UlEvhgduocno7E2GR9y6+U/BD8Lcpf8ztWQM="},"flags/4x3/pl-bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851.svg":{"logical_path":"flags/4x3/pl.svg","mtime":"2020-02-25T22:08:25+01:00","size":222,"digest":"bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851","integrity":"sha256-vYxYjOTHFZTl83ibcAyTXjyX5cBuYt21lXUsgF6Q2FE="},"flags/1x1/pl-d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad.svg":{"logical_path":"flags/1x1/pl.svg","mtime":"2020-02-25T22:08:25+01:00","size":222,"digest":"d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad","integrity":"sha256-18Sq22nvE0kgFqeymVAg+ddU0Sj5NU3XQsMtQgwzQK0="},"flags/4x3/pm-e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6.svg":{"logical_path":"flags/4x3/pm.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6","integrity":"sha256-4eHeRPYbU/twBBrOyEJuZQVSbJopMXpPwdvCBvDyYeY="},"flags/1x1/pm-4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641.svg":{"logical_path":"flags/1x1/pm.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641","integrity":"sha256-TjpltFdwVQJ9Qev2RBIAuOHzYKFnfiAy8mK1iAVolkE="},"flags/4x3/pn-d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c.svg":{"logical_path":"flags/4x3/pn.svg","mtime":"2020-02-25T22:08:25+01:00","size":10878,"digest":"d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c","integrity":"sha256-0Fr8KCa9qpEhoX6f9C017EpyZopO/gtlrNbm3iP4Jow="},"flags/1x1/pn-c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b.svg":{"logical_path":"flags/1x1/pn.svg","mtime":"2020-02-25T22:08:25+01:00","size":8517,"digest":"c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b","integrity":"sha256-wvNWX26CgtRLq+Bv0lYFwAL1q7Ptr6hDdiqe1t4GRks="},"flags/4x3/pr-f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8.svg":{"logical_path":"flags/4x3/pr.svg","mtime":"2020-02-25T22:08:25+01:00","size":637,"digest":"f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8","integrity":"sha256-+H6SjqeoTrycfW6O5uQ+n5MBSt68RgTwH+Ntsp5jXtg="},"flags/1x1/pr-7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26.svg":{"logical_path":"flags/1x1/pr.svg","mtime":"2020-02-25T22:08:25+01:00","size":619,"digest":"7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26","integrity":"sha256-epTlPb/JOAjRlKBeefeArvDSsjHoMOT7S5Mc3efW2iY="},"flags/4x3/ps-84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71.svg":{"logical_path":"flags/4x3/ps.svg","mtime":"2020-02-25T22:08:25+01:00","size":561,"digest":"84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71","integrity":"sha256-hEIf1m+QWOQk2hkPyLP2oNNee7kYqm//rNAKGiwbLXE="},"flags/1x1/ps-31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9.svg":{"logical_path":"flags/1x1/ps.svg","mtime":"2020-02-25T22:08:25+01:00","size":541,"digest":"31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9","integrity":"sha256-MaBu6NxFAPlmW042VEiavGp3hRx6Q8JFgJvIdKxvd+k="},"flags/4x3/pt-62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd.svg":{"logical_path":"flags/4x3/pt.svg","mtime":"2020-02-25T22:08:25+01:00","size":8280,"digest":"62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd","integrity":"sha256-YhN/ZLizeyRRAJWSZBWzEgAp8NV+l4FyCeiV+cULJt0="},"flags/1x1/pt-2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa.svg":{"logical_path":"flags/1x1/pt.svg","mtime":"2020-02-25T22:08:25+01:00","size":8661,"digest":"2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa","integrity":"sha256-L8j7N4QQ1jY3c4XW0AfyCkHWST/a5Ro1yrXqpdozKPo="},"flags/4x3/pw-c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7.svg":{"logical_path":"flags/4x3/pw.svg","mtime":"2020-02-25T22:08:25+01:00","size":467,"digest":"c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7","integrity":"sha256-xZz6y5hLWSRPSBMpd7ljJ8iA85FDGiYQ7EYX0fc+46c="},"flags/1x1/pw-21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956.svg":{"logical_path":"flags/1x1/pw.svg","mtime":"2020-02-25T22:08:25+01:00","size":507,"digest":"21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956","integrity":"sha256-IaZ3t/o/M6YwSSasSw1RbycQ2dV2zvtGZ04/nCpESVY="},"flags/4x3/py-22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c.svg":{"logical_path":"flags/4x3/py.svg","mtime":"2020-02-25T22:08:25+01:00","size":17097,"digest":"22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c","integrity":"sha256-IlcNREcyM2+a8xMHxbTFgJ2MAoMZuBwklm0LSORB8Iw="},"flags/1x1/py-da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da.svg":{"logical_path":"flags/1x1/py.svg","mtime":"2020-02-25T22:08:25+01:00","size":17246,"digest":"da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da","integrity":"sha256-2lkB7G+PqT+E5CFAvZI1krhAhKZIVp12tHbnUS42INo="},"flags/4x3/qa-a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31.svg":{"logical_path":"flags/4x3/qa.svg","mtime":"2020-02-25T22:08:25+01:00","size":359,"digest":"a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31","integrity":"sha256-peWPx5C3bpC5RaaLtPFSIyVCAb8AYEDZUwkt7lyo2jE="},"flags/1x1/qa-ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505.svg":{"logical_path":"flags/1x1/qa.svg","mtime":"2020-02-25T22:08:25+01:00","size":356,"digest":"ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505","integrity":"sha256-/6jNTt16wWkSc2P48Edv/hEnk2czTx+pEDIFQaGpRQU="},"flags/4x3/re-5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434.svg":{"logical_path":"flags/4x3/re.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434","integrity":"sha256-UYOvZ8T6CDaeklGioQKk7VeMJLtZCS3ZLzpXLZAiNDQ="},"flags/1x1/re-37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084.svg":{"logical_path":"flags/1x1/re.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084","integrity":"sha256-N76dw2RdrEwUYwaPkAHP8xKI71J8L8oNZDICKFgHAIQ="},"flags/4x3/ro-854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e.svg":{"logical_path":"flags/4x3/ro.svg","mtime":"2020-02-25T22:08:25+01:00","size":305,"digest":"854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e","integrity":"sha256-hUWTplspODJ0qr44XE/1h5SitdS4nFQUoP8R+W0Bbx4="},"flags/1x1/ro-da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9.svg":{"logical_path":"flags/1x1/ro.svg","mtime":"2020-02-25T22:08:25+01:00","size":305,"digest":"da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9","integrity":"sha256-2p4M4evQ9Gb/aFABc/4GchLTBLj0WU9UvWG9PlQJx6k="},"flags/4x3/rs-cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a.svg":{"logical_path":"flags/4x3/rs.svg","mtime":"2020-02-25T22:08:25+01:00","size":187134,"digest":"cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a","integrity":"sha256-y7VNYIsV4r1NQiuNg/BhEVwgh9Bwlpsun2ESZHVpzjo="},"flags/1x1/rs-04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb.svg":{"logical_path":"flags/1x1/rs.svg","mtime":"2020-02-25T22:08:25+01:00","size":186989,"digest":"04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb","integrity":"sha256-BMdZpRKUN9zAPf+zYhmchPx3OhhXJtwu0J+c/UE3D9s="},"flags/4x3/ru-5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0.svg":{"logical_path":"flags/4x3/ru.svg","mtime":"2020-02-25T22:08:25+01:00","size":286,"digest":"5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0","integrity":"sha256-W1G1f2PPWORRq93q7jmox7Ezyz1Yxu8akDiDvafDRrA="},"flags/1x1/ru-bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064.svg":{"logical_path":"flags/1x1/ru.svg","mtime":"2020-02-25T22:08:25+01:00","size":290,"digest":"bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064","integrity":"sha256-uyeCqRaxoo6wgYla+pD07V3KXfMgucyV+Ge8KibikGQ="},"flags/4x3/rw-aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75.svg":{"logical_path":"flags/4x3/rw.svg","mtime":"2020-02-25T22:08:25+01:00","size":747,"digest":"aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75","integrity":"sha256-rrm8c80/4l58Ghp73dwR6z1xoyc5Gd0vQkeHPbePvnU="},"flags/1x1/rw-8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed.svg":{"logical_path":"flags/1x1/rw.svg","mtime":"2020-02-25T22:08:25+01:00","size":748,"digest":"8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed","integrity":"sha256-jCfN50beaEhDlO9txRlYPPZ+OAyl6NSM83+k2Z/vV+0="},"flags/4x3/sa-d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b.svg":{"logical_path":"flags/4x3/sa.svg","mtime":"2020-02-25T22:08:25+01:00","size":10238,"digest":"d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b","integrity":"sha256-1U52162dpSQqom1dvsEguKRTDAl65F0LIuU58tnGrYs="},"flags/1x1/sa-639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be.svg":{"logical_path":"flags/1x1/sa.svg","mtime":"2020-02-25T22:08:25+01:00","size":10179,"digest":"639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be","integrity":"sha256-Y57hwViwth6Hib3ieuZO2yRq/mPLiZnjRoyojDRJJ74="},"flags/4x3/sb-651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac.svg":{"logical_path":"flags/4x3/sb.svg","mtime":"2020-02-25T22:08:25+01:00","size":953,"digest":"651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac","integrity":"sha256-ZRIT3wZ/FtvboiiJKENK/dVPGStQvxXQYgat6WbVS6w="},"flags/1x1/sb-19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3.svg":{"logical_path":"flags/1x1/sb.svg","mtime":"2020-02-25T22:08:25+01:00","size":952,"digest":"19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3","integrity":"sha256-GQSMJgBNpv4qHdXz9pUGayTzCW0VJ+29qsA8KBcEb+M="},"flags/4x3/sc-2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e.svg":{"logical_path":"flags/4x3/sc.svg","mtime":"2020-02-25T22:08:25+01:00","size":571,"digest":"2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e","integrity":"sha256-LtknLV/S+pLSkon0n1j19k9ml3Fl+hqA+etqpXM1UX4="},"flags/1x1/sc-90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71.svg":{"logical_path":"flags/1x1/sc.svg","mtime":"2020-02-25T22:08:25+01:00","size":570,"digest":"90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71","integrity":"sha256-kEJKr9qaKqfZgDDAqnvGBMd8Gw98XmoJTf/SuAOojHE="},"flags/4x3/sd-b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d.svg":{"logical_path":"flags/4x3/sd.svg","mtime":"2020-02-25T22:08:25+01:00","size":497,"digest":"b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d","integrity":"sha256-uLnZcQPmaKKwQzEbZFPC3yXVw63PYkgeTHmmJ8Z4T00="},"flags/1x1/sd-da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc.svg":{"logical_path":"flags/1x1/sd.svg","mtime":"2020-02-25T22:08:25+01:00","size":493,"digest":"da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc","integrity":"sha256-2lLNehc+zAvH6afH7UogVYp/TLW2zTCHkLdVKnBCGrw="},"flags/4x3/se-7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062.svg":{"logical_path":"flags/4x3/se.svg","mtime":"2020-02-25T22:08:25+01:00","size":691,"digest":"7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062","integrity":"sha256-e1voky225RU9HxHdui02y0oz3dcQDlxZzvOiUCIVsGI="},"flags/1x1/se-9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837.svg":{"logical_path":"flags/1x1/se.svg","mtime":"2020-02-25T22:08:25+01:00","size":698,"digest":"9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837","integrity":"sha256-mwhF+BY9FH5Pzm6BRwnVgT5T8A+PXMtAz6TLnjc4iDc="},"flags/4x3/sg-fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226.svg":{"logical_path":"flags/4x3/sg.svg","mtime":"2020-02-25T22:08:25+01:00","size":887,"digest":"fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226","integrity":"sha256-+hZJhPA4+oFUDVGcXQgSPtVfMbuKpzeYr3aYxp3KIiY="},"flags/1x1/sg-f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a.svg":{"logical_path":"flags/1x1/sg.svg","mtime":"2020-02-25T22:08:25+01:00","size":948,"digest":"f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a","integrity":"sha256-9vjs3W8AmcByiGcW2YCY0I3jNPbzBzmOmSL030Dveyo="},"flags/4x3/sh-e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279.svg":{"logical_path":"flags/4x3/sh.svg","mtime":"2020-02-25T22:08:25+01:00","size":29501,"digest":"e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279","integrity":"sha256-57Xk3FNg/Z7C4N1QB06CpTVmphq4ija2tcyARRotknk="},"flags/1x1/sh-c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947.svg":{"logical_path":"flags/1x1/sh.svg","mtime":"2020-02-25T22:08:25+01:00","size":30113,"digest":"c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947","integrity":"sha256-w6BhB53X9ep4WktKSQPsTO/EomzXM3HAv6OgsjFZOUc="},"flags/4x3/si-25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001.svg":{"logical_path":"flags/4x3/si.svg","mtime":"2020-02-25T22:08:25+01:00","size":2053,"digest":"25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001","integrity":"sha256-JUh/eqkfEV1VjwMf+vDTmZJLAyEA0k1GfDvRywJtkAE="},"flags/1x1/si-53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57.svg":{"logical_path":"flags/1x1/si.svg","mtime":"2020-02-25T22:08:25+01:00","size":2065,"digest":"53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57","integrity":"sha256-U5c+jVwghlcAI9v/ve8aihgc1Jsz2k/eAd56V7g0bFc="},"flags/4x3/sj-e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5.svg":{"logical_path":"flags/4x3/sj.svg","mtime":"2020-02-25T22:08:25+01:00","size":321,"digest":"e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5","integrity":"sha256-5kutTyV+4SGWQNzjYIJwuKTH6/w3+RrJ5PpZV+oIFPU="},"flags/1x1/sj-d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f.svg":{"logical_path":"flags/1x1/sj.svg","mtime":"2020-02-25T22:08:25+01:00","size":321,"digest":"d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f","integrity":"sha256-12TV3oykpn6jIzdsfE3Eij7FG7BDVW7gfcqeSYm6FH8="},"flags/4x3/sk-4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2.svg":{"logical_path":"flags/4x3/sk.svg","mtime":"2020-02-25T22:08:25+01:00","size":1202,"digest":"4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2","integrity":"sha256-TKdskh+uM0XEfx9UDNrzcWp4B//LpTLK6lAJDIu+ysI="},"flags/1x1/sk-48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b.svg":{"logical_path":"flags/1x1/sk.svg","mtime":"2020-02-25T22:08:25+01:00","size":1173,"digest":"48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b","integrity":"sha256-SNl2qVPQd4/O1HzF0liQ891778KKhdm9365rUPqYyEs="},"flags/4x3/sl-d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a.svg":{"logical_path":"flags/4x3/sl.svg","mtime":"2020-02-25T22:08:25+01:00","size":275,"digest":"d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a","integrity":"sha256-2BBnd6sm78KPeGoTRb1BGkoKENpzi2keP03uqW08PDo="},"flags/1x1/sl-9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6.svg":{"logical_path":"flags/1x1/sl.svg","mtime":"2020-02-25T22:08:25+01:00","size":438,"digest":"9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6","integrity":"sha256-m0uNGOSSHoEtH8NCedmHHXttWnL+uORRtLSu0ziQvuY="},"flags/4x3/sm-d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c.svg":{"logical_path":"flags/4x3/sm.svg","mtime":"2020-02-25T22:08:25+01:00","size":15801,"digest":"d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c","integrity":"sha256-2OuxBETvW+9ILAuIamF9gypiYpiHBh2Rb2469+5JwBw="},"flags/1x1/sm-2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d.svg":{"logical_path":"flags/1x1/sm.svg","mtime":"2020-02-25T22:08:25+01:00","size":15729,"digest":"2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d","integrity":"sha256-LMP8bUZnZUpIQtuifL0/1suejyOtHcH+eMvZYhtefY0="},"flags/4x3/sn-e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa.svg":{"logical_path":"flags/4x3/sn.svg","mtime":"2020-02-25T22:08:25+01:00","size":424,"digest":"e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa","integrity":"sha256-6PKI/FIQGskV9zId/85MCvCoMCRHkfY+/qBpy7wxH/o="},"flags/1x1/sn-1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748.svg":{"logical_path":"flags/1x1/sn.svg","mtime":"2020-02-25T22:08:25+01:00","size":414,"digest":"1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748","integrity":"sha256-HiR385kbAykGf3ANsQiYvAdhwkHs2+XPPAp5mY7oZ0g="},"flags/4x3/so-50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd.svg":{"logical_path":"flags/4x3/so.svg","mtime":"2020-02-25T22:08:25+01:00","size":497,"digest":"50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd","integrity":"sha256-UMUVPpIzGvXrC82psX7Y3th/aflIA9UDFVFMjZXyQd0="},"flags/1x1/so-74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3.svg":{"logical_path":"flags/1x1/so.svg","mtime":"2020-02-25T22:08:25+01:00","size":498,"digest":"74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3","integrity":"sha256-dPaKWXLSh6uwEIYNeOnqgVhJnBGH6fMKUz8U9iOVr/M="},"flags/4x3/sr-04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa.svg":{"logical_path":"flags/4x3/sr.svg","mtime":"2020-02-25T22:08:25+01:00","size":315,"digest":"04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa","integrity":"sha256-BPZLplQCN+yRiPn3duqOMAq42p5psJh8f4TVfkhdA/o="},"flags/1x1/sr-e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278.svg":{"logical_path":"flags/1x1/sr.svg","mtime":"2020-02-25T22:08:25+01:00","size":320,"digest":"e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278","integrity":"sha256-4UagzO3XXFj2u8FoS0JmLilWF7utn6lghrPvPmr+Ing="},"flags/4x3/ss-d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6.svg":{"logical_path":"flags/4x3/ss.svg","mtime":"2020-02-25T22:08:25+01:00","size":386,"digest":"d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6","integrity":"sha256-0FRZQWNQlKQIPaAjj+woFHyEXxRuEix0XQl3vQyUM9Y="},"flags/1x1/ss-15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102.svg":{"logical_path":"flags/1x1/ss.svg","mtime":"2020-02-25T22:08:25+01:00","size":397,"digest":"15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102","integrity":"sha256-FUZnduWlf/VML7p8tZDNfycpjTjL8sHdzeY6gdjpwQI="},"flags/4x3/st-ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1.svg":{"logical_path":"flags/4x3/st.svg","mtime":"2020-02-25T22:08:25+01:00","size":916,"digest":"ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1","integrity":"sha256-67gTqB9JWWY856APM6y5UTywrqrMbmtCvs85ZBFLl6E="},"flags/1x1/st-a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d.svg":{"logical_path":"flags/1x1/st.svg","mtime":"2020-02-25T22:08:25+01:00","size":920,"digest":"a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d","integrity":"sha256-qGYEOrN86AW2Sr7Hi5W2wIMnHBPo4ex8qWRJQQV46J0="},"flags/4x3/sv-4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d.svg":{"logical_path":"flags/4x3/sv.svg","mtime":"2020-02-25T22:08:25+01:00","size":82697,"digest":"4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d","integrity":"sha256-SiwCrhyPoQS99yLYBAho9H0RWfx3TjIILn/RUWwMjm0="},"flags/1x1/sv-ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e.svg":{"logical_path":"flags/1x1/sv.svg","mtime":"2020-02-25T22:08:25+01:00","size":83238,"digest":"ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e","integrity":"sha256-7OX1gL8aMKJHlPKehbhRcJ8v963DuNWohjS131pzUz4="},"flags/4x3/sx-aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c.svg":{"logical_path":"flags/4x3/sx.svg","mtime":"2020-02-25T22:08:25+01:00","size":13209,"digest":"aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c","integrity":"sha256-qopH6aqLm6IYxoddJDXfcnQKtMC5JIaShrTK2xNl1Jw="},"flags/1x1/sx-ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06.svg":{"logical_path":"flags/1x1/sx.svg","mtime":"2020-02-25T22:08:25+01:00","size":12992,"digest":"ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06","integrity":"sha256-rHFt24PI40NTZmthAsA2iFA+uXrlXKmu64bE6VSuiwY="},"flags/4x3/sy-3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039.svg":{"logical_path":"flags/4x3/sy.svg","mtime":"2020-02-25T22:08:25+01:00","size":565,"digest":"3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039","integrity":"sha256-O3h3PjkvBG+5s/g7w0zjhRX3IyDFddk8QcldkP+10Dk="},"flags/1x1/sy-fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446.svg":{"logical_path":"flags/1x1/sy.svg","mtime":"2020-02-25T22:08:25+01:00","size":579,"digest":"fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446","integrity":"sha256-/eyOoAozq+XfreeGTCjZrXE8PNo+fYKP9plkfaPnREY="},"flags/4x3/sz-57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f.svg":{"logical_path":"flags/4x3/sz.svg","mtime":"2020-02-25T22:08:25+01:00","size":6742,"digest":"57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f","integrity":"sha256-V87+DHHpDtujwDWUppo6mjP3ecDCQF767bjWQpDijR8="},"flags/1x1/sz-ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951.svg":{"logical_path":"flags/1x1/sz.svg","mtime":"2020-02-25T22:08:25+01:00","size":6689,"digest":"ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951","integrity":"sha256-rZd6awb4XuI7PqXsSfgzY3IFJaP9N0de95y1lZHDKVE="},"flags/4x3/tc-c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc.svg":{"logical_path":"flags/4x3/tc.svg","mtime":"2020-02-25T22:08:25+01:00","size":14497,"digest":"c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc","integrity":"sha256-w+eobmTUOeayXcgz9oXNVGHpxc4z0PAE81cK37plybw="},"flags/1x1/tc-d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c.svg":{"logical_path":"flags/1x1/tc.svg","mtime":"2020-02-25T22:08:25+01:00","size":14756,"digest":"d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c","integrity":"sha256-2RrGvOAp+KpbdgvipiiEtn4DGA65qcZ65gZt9nyFFUw="},"flags/4x3/td-b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3.svg":{"logical_path":"flags/4x3/td.svg","mtime":"2020-02-25T22:08:25+01:00","size":267,"digest":"b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3","integrity":"sha256-ts5Ar/YP7vTo/hQX8HW1doi1zEwy0JKW0Cd2p5fgsNM="},"flags/1x1/td-ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c.svg":{"logical_path":"flags/1x1/td.svg","mtime":"2020-02-25T22:08:25+01:00","size":279,"digest":"ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c","integrity":"sha256-7xFbOUKuXLdLBGsKX6rTX71hJtjG/aSJiBsWSUyMYyw="},"flags/4x3/tf-0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820.svg":{"logical_path":"flags/4x3/tf.svg","mtime":"2020-02-25T22:08:25+01:00","size":1088,"digest":"0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820","integrity":"sha256-BoHsVN/8T2KO/YtHJvw/AMYoqrT7DHl8MyyAol1VmCA="},"flags/1x1/tf-90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6.svg":{"logical_path":"flags/1x1/tf.svg","mtime":"2020-02-25T22:08:25+01:00","size":1196,"digest":"90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6","integrity":"sha256-kK0YTP12nN2j2pxDtPtaSUli8wlfOPQXXON8Nx4BgNY="},"flags/4x3/tg-486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499.svg":{"logical_path":"flags/4x3/tg.svg","mtime":"2020-02-25T22:08:25+01:00","size":728,"digest":"486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499","integrity":"sha256-SG3KJCDHl9mjewPRF2fJQYteJtB8fGlNiXt9hQkupJk="},"flags/1x1/tg-830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad.svg":{"logical_path":"flags/1x1/tg.svg","mtime":"2020-02-25T22:08:25+01:00","size":733,"digest":"830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad","integrity":"sha256-gw9JpXIGv2VLw3qqFmjuiECiNZWy7UQMlo+B2WHoIK0="},"flags/4x3/th-4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9.svg":{"logical_path":"flags/4x3/th.svg","mtime":"2020-02-25T22:08:25+01:00","size":287,"digest":"4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9","integrity":"sha256-TiBrVj0ntaej98q/lE1tJ45uhkABinLOe3/5ifE5bfk="},"flags/1x1/th-cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887.svg":{"logical_path":"flags/1x1/th.svg","mtime":"2020-02-25T22:08:25+01:00","size":288,"digest":"cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887","integrity":"sha256-y0gJCOLDlOgWYjt/zVtjtITyVXj9iZBdaqFFO80EGIc="},"flags/4x3/tj-1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe.svg":{"logical_path":"flags/4x3/tj.svg","mtime":"2020-02-25T22:08:25+01:00","size":1812,"digest":"1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe","integrity":"sha256-Gol58DqCDOxU/0qQDoQ6/uB087QAThrutwbKrqA3n/4="},"flags/1x1/tj-a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece.svg":{"logical_path":"flags/1x1/tj.svg","mtime":"2020-02-25T22:08:25+01:00","size":1767,"digest":"a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece","integrity":"sha256-oTPVLJmihaot0LhnORY71bt6LA6qWh/VIqEexLWzvs4="},"flags/4x3/tk-3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58.svg":{"logical_path":"flags/4x3/tk.svg","mtime":"2020-02-25T22:08:25+01:00","size":788,"digest":"3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58","integrity":"sha256-PkmmMtXYfePvZ6yo+qFZwbabwWZp9sjBF3SNyWJdHFg="},"flags/1x1/tk-137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d.svg":{"logical_path":"flags/1x1/tk.svg","mtime":"2020-02-25T22:08:25+01:00","size":778,"digest":"137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d","integrity":"sha256-E3x+uygjPNwvQXvB4pv61QLvfdQEw1rDYYjn3Ziuy20="},"flags/4x3/tl-8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40.svg":{"logical_path":"flags/4x3/tl.svg","mtime":"2020-02-25T22:08:25+01:00","size":603,"digest":"8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40","integrity":"sha256-hmKo0BAH/L4PQaaUpc2ScmVAnVm3g7UOC/RWEwKnfkA="},"flags/1x1/tl-d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf.svg":{"logical_path":"flags/1x1/tl.svg","mtime":"2020-02-25T22:08:25+01:00","size":577,"digest":"d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf","integrity":"sha256-0mBx3fdU136lZ3nYF+jGLzejj6ZBAuDIZJAf85Qc/78="},"flags/4x3/tm-22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec.svg":{"logical_path":"flags/4x3/tm.svg","mtime":"2020-02-25T22:08:25+01:00","size":32287,"digest":"22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec","integrity":"sha256-IrgR/5BkLeNBo+KKF3XRmS0fMgiOkiq92vynkVfjwuw="},"flags/1x1/tm-42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38.svg":{"logical_path":"flags/1x1/tm.svg","mtime":"2020-02-25T22:08:25+01:00","size":31566,"digest":"42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38","integrity":"sha256-QshTbxjZqYeKkIcmSfDshbJ7pZ4ZQspaxhny8vmTqjg="},"flags/4x3/tn-5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5.svg":{"logical_path":"flags/4x3/tn.svg","mtime":"2020-02-25T22:08:25+01:00","size":751,"digest":"5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5","integrity":"sha256-XQW81g6zEY6uRbryS+Y6q2jiNuxtGRJO7ZBUjx7EK9U="},"flags/1x1/tn-84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57.svg":{"logical_path":"flags/1x1/tn.svg","mtime":"2020-02-25T22:08:25+01:00","size":733,"digest":"84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57","integrity":"sha256-hBFvtQ3bMNLwiZGuTjdi1xkf5Dh+HPBdVaTj8ulcPFc="},"flags/4x3/to-a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa.svg":{"logical_path":"flags/4x3/to.svg","mtime":"2020-02-25T22:08:25+01:00","size":355,"digest":"a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa","integrity":"sha256-ogB2Z/R1UN0abbXoORH8wKzfAJCdtibVkqk5DE6Kofo="},"flags/1x1/to-5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2.svg":{"logical_path":"flags/1x1/to.svg","mtime":"2020-02-25T22:08:25+01:00","size":361,"digest":"5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2","integrity":"sha256-XoerVPpfMSTR/FIdKSWYZf3R9SjpaNrRKjOv8i/3iPI="},"flags/4x3/tr-033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66.svg":{"logical_path":"flags/4x3/tr.svg","mtime":"2020-02-25T22:08:25+01:00","size":554,"digest":"033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66","integrity":"sha256-AzpBbswwpRbFTGoPrC0hKjj7BR5Zds2knrnSImSBSmY="},"flags/1x1/tr-74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae.svg":{"logical_path":"flags/1x1/tr.svg","mtime":"2020-02-25T22:08:25+01:00","size":575,"digest":"74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae","integrity":"sha256-dOYNCTacFkzCRdSdEJx46jIqEX4P5YlFw4C2WnHGka4="},"flags/4x3/tt-f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00.svg":{"logical_path":"flags/4x3/tt.svg","mtime":"2020-02-25T22:08:25+01:00","size":315,"digest":"f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00","integrity":"sha256-9qyIV3xX0S35UlHCGnrbaM7Rcgcx11SkYtKViHm1bgA="},"flags/1x1/tt-3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de.svg":{"logical_path":"flags/1x1/tt.svg","mtime":"2020-02-25T22:08:25+01:00","size":320,"digest":"3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de","integrity":"sha256-PWXcvKW31AoXMOHBkNDH4odNGztE4KCUHsAzBWBE894="},"flags/4x3/tv-6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4.svg":{"logical_path":"flags/4x3/tv.svg","mtime":"2020-02-25T22:08:25+01:00","size":1783,"digest":"6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4","integrity":"sha256-YBfO+wL8wJn6qPByFJu85/jBVa1v+mIKbWJYQJt4bOQ="},"flags/1x1/tv-add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240.svg":{"logical_path":"flags/1x1/tv.svg","mtime":"2020-02-25T22:08:25+01:00","size":1716,"digest":"add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240","integrity":"sha256-rdQqAjtWqS9CAHr7kz4o4dCNc05VzOy/w/n65wcBokA="},"flags/4x3/tw-44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16.svg":{"logical_path":"flags/4x3/tw.svg","mtime":"2020-02-25T22:08:25+01:00","size":945,"digest":"44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16","integrity":"sha256-RLfR86zHWqj/gXtV1Jncskdwo0I7Ykv/gpyyZynefBY="},"flags/1x1/tw-06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19.svg":{"logical_path":"flags/1x1/tw.svg","mtime":"2020-02-25T22:08:25+01:00","size":954,"digest":"06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19","integrity":"sha256-Bq8iwwrfzMqZdamf0FMQVo3lnwOaFP2Nurq3wXozyxk="},"flags/4x3/tz-1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988.svg":{"logical_path":"flags/4x3/tz.svg","mtime":"2020-02-25T22:08:25+01:00","size":549,"digest":"1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988","integrity":"sha256-HV5/t6EklzWKGbkmcRhLFGZBJaFD2QmrvuVhW1f36Yg="},"flags/1x1/tz-ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2.svg":{"logical_path":"flags/1x1/tz.svg","mtime":"2020-02-25T22:08:25+01:00","size":602,"digest":"ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2","integrity":"sha256-rUw13p9q7FeqwnLeOQ1XMKdap+GkQxFmpdzqO8vcYvI="},"flags/4x3/ua-fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa.svg":{"logical_path":"flags/4x3/ua.svg","mtime":"2020-02-25T22:08:25+01:00","size":238,"digest":"fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa","integrity":"sha256-+78PDpptYYdWHzivmz8o4xJeQGw97qJovLZNrHoDpqo="},"flags/1x1/ua-79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296.svg":{"logical_path":"flags/1x1/ua.svg","mtime":"2020-02-25T22:08:25+01:00","size":238,"digest":"79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296","integrity":"sha256-eQkt5tItsEVImKfRfyaWFwklYRBiDmeTMEN5n6hrIpY="},"flags/4x3/ug-001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975.svg":{"logical_path":"flags/4x3/ug.svg","mtime":"2020-02-25T22:08:25+01:00","size":3951,"digest":"001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975","integrity":"sha256-AB+lVBJ6r9c2dScnSQ25+IkxZMA2nQuly210LEQ3CXU="},"flags/1x1/ug-59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9.svg":{"logical_path":"flags/1x1/ug.svg","mtime":"2020-02-25T22:08:25+01:00","size":4024,"digest":"59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9","integrity":"sha256-Wbx23u/SKALn1Ksr1eNPWca8ESE1yAUihEEKB4eVSvk="},"flags/4x3/um-d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164.svg":{"logical_path":"flags/4x3/um.svg","mtime":"2020-02-25T22:08:25+01:00","size":4523,"digest":"d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164","integrity":"sha256-0uisIHmif7bxIKtLxNKVl0UL0Bqf7fm39aCa1l6N0WQ="},"flags/1x1/um-9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5.svg":{"logical_path":"flags/1x1/um.svg","mtime":"2020-02-25T22:08:25+01:00","size":3972,"digest":"9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5","integrity":"sha256-lnTIKIi5L7u6IvNYjn2D6MDOiH2czfOrrDF/lyVTCrU="},"flags/4x3/us-c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e.svg":{"logical_path":"flags/4x3/us.svg","mtime":"2020-02-25T22:08:25+01:00","size":4461,"digest":"c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e","integrity":"sha256-xwuhy2fMZJ2isfXcSiaJFDfYu6LMCYyIRh5r/COUnZ4="},"flags/1x1/us-c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196.svg":{"logical_path":"flags/1x1/us.svg","mtime":"2020-02-25T22:08:25+01:00","size":3921,"digest":"c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196","integrity":"sha256-xP/QRVz1C8FoNkbcd+cmPYHP+tUfNtPDm4WphI+1oZY="},"flags/4x3/uy-25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a.svg":{"logical_path":"flags/4x3/uy.svg","mtime":"2020-02-25T22:08:25+01:00","size":1718,"digest":"25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a","integrity":"sha256-JcZAMzVFhD00Xb2mlMpBxATcqmnT4y++vInVYgtbiBo="},"flags/1x1/uy-4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60.svg":{"logical_path":"flags/1x1/uy.svg","mtime":"2020-02-25T22:08:25+01:00","size":1715,"digest":"4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60","integrity":"sha256-RGbG8J3pOQWHL+R7/APG5aFDy/d838k/zUUGY1cvPWA="},"flags/4x3/uz-76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4.svg":{"logical_path":"flags/4x3/uz.svg","mtime":"2020-02-25T22:08:25+01:00","size":1454,"digest":"76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4","integrity":"sha256-dqNlj19F3vB1CnAkfWBDVv9OuplrMKojplesBwRMrtQ="},"flags/1x1/uz-96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1.svg":{"logical_path":"flags/1x1/uz.svg","mtime":"2020-02-25T22:08:25+01:00","size":1454,"digest":"96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1","integrity":"sha256-luumk/qiQ56+5I0nBypnCGt76AAB7IxePwdDs38qQqE="},"flags/4x3/va-89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278.svg":{"logical_path":"flags/4x3/va.svg","mtime":"2020-02-25T22:08:25+01:00","size":91076,"digest":"89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278","integrity":"sha256-ibEtcc6Op0JQ2Z2oStRBfFPqsTPkvo25nmuOCyb3Eng="},"flags/1x1/va-bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19.svg":{"logical_path":"flags/1x1/va.svg","mtime":"2020-02-25T22:08:25+01:00","size":90711,"digest":"bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19","integrity":"sha256-vMadWq3dpxDgxIDGTxrZcwukXt1GkmhPzKHE+Ag8XRk="},"flags/4x3/vc-55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5.svg":{"logical_path":"flags/4x3/vc.svg","mtime":"2020-02-25T22:08:25+01:00","size":451,"digest":"55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5","integrity":"sha256-Vbf5A8fmA95+7Da8oHYKUZMK57qQwudY/POqTX6VnuU="},"flags/1x1/vc-3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19.svg":{"logical_path":"flags/1x1/vc.svg","mtime":"2020-02-25T22:08:25+01:00","size":498,"digest":"3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19","integrity":"sha256-O+l32fFhpYAHKN6EWqdjLfMmOSf+pLA1REAHVdJ+fBk="},"flags/4x3/ve-3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561.svg":{"logical_path":"flags/4x3/ve.svg","mtime":"2020-02-25T22:08:25+01:00","size":1168,"digest":"3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561","integrity":"sha256-MHn9GVIRFKVYWyPjej1ENna1L9WTtouuUCbCneC/VWE="},"flags/1x1/ve-2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192.svg":{"logical_path":"flags/1x1/ve.svg","mtime":"2020-02-25T22:08:25+01:00","size":1188,"digest":"2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192","integrity":"sha256-L+D2kqaYbysh69YmC2dQspoEh7lIbnD894nhE60OEZI="},"flags/4x3/vg-509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364.svg":{"logical_path":"flags/4x3/vg.svg","mtime":"2020-02-25T22:08:25+01:00","size":24640,"digest":"509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364","integrity":"sha256-UJlnzvqwQi5+QWKqddPO3nYgpKF9myAVrfp06EBR82Q="},"flags/1x1/vg-caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31.svg":{"logical_path":"flags/1x1/vg.svg","mtime":"2020-02-25T22:08:25+01:00","size":24814,"digest":"caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31","integrity":"sha256-yuwH8JyH8OvShD3t9+j9Xr4+15WyZJxkh4h3XGX0izE="},"flags/4x3/vi-0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032.svg":{"logical_path":"flags/4x3/vi.svg","mtime":"2020-02-25T22:08:25+01:00","size":8742,"digest":"0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032","integrity":"sha256-DBgRhh4XAz2NLuKR7bi3ENyHf77AarTk0lAhhySWYDI="},"flags/1x1/vi-8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62.svg":{"logical_path":"flags/1x1/vi.svg","mtime":"2020-02-25T22:08:25+01:00","size":8697,"digest":"8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62","integrity":"sha256-gRKWLcPTGU87v3ABj8tazMIdLL0DOVdXlCckH72THmI="},"flags/4x3/vn-1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e.svg":{"logical_path":"flags/4x3/vn.svg","mtime":"2020-02-25T22:08:25+01:00","size":494,"digest":"1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e","integrity":"sha256-F2j1zkutRvSQf1mOYJfm4TQFAPTX11p2Jm8+arlGPV4="},"flags/1x1/vn-42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77.svg":{"logical_path":"flags/1x1/vn.svg","mtime":"2020-02-25T22:08:25+01:00","size":498,"digest":"42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77","integrity":"sha256-QttCemdwireb4pEZUwzt8hCPekvOv991Sh2Pru3623c="},"flags/4x3/vu-03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014.svg":{"logical_path":"flags/4x3/vu.svg","mtime":"2020-02-25T22:08:25+01:00","size":3772,"digest":"03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014","integrity":"sha256-A6NqlVD566SKLL5l3Evl4At5RH+m0IYzeARsxYNqQBQ="},"flags/1x1/vu-016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56.svg":{"logical_path":"flags/1x1/vu.svg","mtime":"2020-02-25T22:08:25+01:00","size":3732,"digest":"016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56","integrity":"sha256-AWxo/bXFm5NCqmihltc/32t6hnaU/EBtEzi1B6TQXFY="},"flags/4x3/wf-e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89.svg":{"logical_path":"flags/4x3/wf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89","integrity":"sha256-6DYM42TeaCbwFxa30yDu+HYhtwEBwSnfRZaCp5Amf4k="},"flags/1x1/wf-5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d.svg":{"logical_path":"flags/1x1/wf.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d","integrity":"sha256-WHiHQ1OoEDOILWgxUdepR2Vlb4ZwFfdZhTiOOBejf40="},"flags/4x3/ws-e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26.svg":{"logical_path":"flags/4x3/ws.svg","mtime":"2020-02-25T22:08:25+01:00","size":693,"digest":"e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26","integrity":"sha256-53tVc0B7EWLSbUDe5Z4oaErubrv/mWGsMiQpQ8npbiY="},"flags/1x1/ws-7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18.svg":{"logical_path":"flags/1x1/ws.svg","mtime":"2020-02-25T22:08:25+01:00","size":706,"digest":"7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18","integrity":"sha256-fNyQ9x6SslLcaZAt8vfqM6cDOndqABmXMCOapOj6ixg="},"flags/4x3/ye-ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c.svg":{"logical_path":"flags/4x3/ye.svg","mtime":"2020-02-25T22:08:25+01:00","size":275,"digest":"ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c","integrity":"sha256-zMCvjBIg0Fg9FDLAw0DCGq0U6YfX1z0mAcw1RRo3z5w="},"flags/1x1/ye-d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e.svg":{"logical_path":"flags/1x1/ye.svg","mtime":"2020-02-25T22:08:25+01:00","size":275,"digest":"d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e","integrity":"sha256-11J9WJzr6AN7ieZCr8ygULnaDLTmPtUrvxFvhGH2xg4="},"flags/4x3/yt-b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351.svg":{"logical_path":"flags/4x3/yt.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351","integrity":"sha256-seeO2Y9xEdahFdc9LGBPXB72W6mwFxPKR9kU3g0is1E="},"flags/1x1/yt-794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927.svg":{"logical_path":"flags/1x1/yt.svg","mtime":"2020-02-25T22:08:25+01:00","size":292,"digest":"794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927","integrity":"sha256-eUWXg5vVrFyb3AiF/nE9PQpp44cR+adGVKFZnXx6eSc="},"flags/4x3/za-d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5.svg":{"logical_path":"flags/4x3/za.svg","mtime":"2020-02-25T22:08:25+01:00","size":859,"digest":"d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5","integrity":"sha256-0tRz9OLkcHYEp8qsQvnLZBW/XozjW15yvHh3XYquA+U="},"flags/1x1/za-3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693.svg":{"logical_path":"flags/1x1/za.svg","mtime":"2020-02-25T22:08:25+01:00","size":872,"digest":"3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693","integrity":"sha256-OYWIm4OCKT27OuJzU+hkZhQVr6DvZtKRWRtEffi/hpM="},"flags/4x3/zm-107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4.svg":{"logical_path":"flags/4x3/zm.svg","mtime":"2020-02-25T22:08:25+01:00","size":5497,"digest":"107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4","integrity":"sha256-EHodIM5ku8Wb3z7wIiFXQr9f152UY259Q3ZYbS4LsLQ="},"flags/1x1/zm-4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84.svg":{"logical_path":"flags/1x1/zm.svg","mtime":"2020-02-25T22:08:25+01:00","size":5401,"digest":"4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84","integrity":"sha256-S1V8/RcO1DMoCYYttZh54donl960skoojFJdDXLAu4Q="},"flags/4x3/zw-a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115.svg":{"logical_path":"flags/4x3/zw.svg","mtime":"2020-02-25T22:08:25+01:00","size":6641,"digest":"a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115","integrity":"sha256-o1cYLuQyQ895iTZrEK+xUpb4FMul2aA149Zv9AGqoRU="},"flags/1x1/zw-c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401.svg":{"logical_path":"flags/1x1/zw.svg","mtime":"2020-02-25T22:08:25+01:00","size":6614,"digest":"c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401","integrity":"sha256-x2PTjIffIADAHl+qXvUYI6ngdre56OUiRP81JwoJlAE="},"flags/4x3/es-ca-e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db.svg":{"logical_path":"flags/4x3/es-ca.svg","mtime":"2020-02-25T22:08:25+01:00","size":258,"digest":"e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db","integrity":"sha256-5tZaXq6Za0EKCZ6t/GkcOArQ9zRXjOKsFPLVvzHrY9s="},"flags/1x1/es-ca-620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd.svg":{"logical_path":"flags/1x1/es-ca.svg","mtime":"2020-02-25T22:08:25+01:00","size":257,"digest":"620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd","integrity":"sha256-YgBT3/7vrBxesvRV4sraEgROU2b/plFqO9YR/7vhXc0="},"flags/4x3/eu-8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e.svg":{"logical_path":"flags/4x3/eu.svg","mtime":"2020-02-25T22:08:25+01:00","size":1249,"digest":"8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e","integrity":"sha256-jHSa2s+CtrXVjOUdvPp0jGvGqaIF5e/LbpbxJviVP24="},"flags/1x1/eu-7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9.svg":{"logical_path":"flags/1x1/eu.svg","mtime":"2020-02-25T22:08:25+01:00","size":1250,"digest":"7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9","integrity":"sha256-cIWu1xa/zpa7/CgR/lW8mFUjakIW3XySX8t8FCV4o/k="},"flags/4x3/gb-eng-d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca.svg":{"logical_path":"flags/4x3/gb-eng.svg","mtime":"2020-02-25T22:08:25+01:00","size":242,"digest":"d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca","integrity":"sha256-0t5ZfBDzyDP9jHv76BgYnmIJ2xmIKic5i44YCIRpfso="},"flags/1x1/gb-eng-83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba.svg":{"logical_path":"flags/1x1/gb-eng.svg","mtime":"2020-02-25T22:08:25+01:00","size":232,"digest":"83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba","integrity":"sha256-gziHMNmfZ02CXaTAiWUDZrllq9M4zxXxD1qt/g2Cdro="},"flags/4x3/gb-nir-5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216.svg":{"logical_path":"flags/4x3/gb-nir.svg","mtime":"2020-02-25T22:08:25+01:00","size":25061,"digest":"5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216","integrity":"sha256-UTDHCyCgL59t//acnlWzqgBUkGMY5K/BLGktz7f1UhY="},"flags/1x1/gb-nir-f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558.svg":{"logical_path":"flags/1x1/gb-nir.svg","mtime":"2020-02-25T22:08:25+01:00","size":26487,"digest":"f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558","integrity":"sha256-9cCnJdqePg1zIa51xh/132TQZfG97ObiYlIBc1F35Vg="},"flags/4x3/gb-sct-bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0.svg":{"logical_path":"flags/4x3/gb-sct.svg","mtime":"2020-02-25T22:08:25+01:00","size":231,"digest":"bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0","integrity":"sha256-vET0RI9VxXa0+OGqHWGosodR364Qzz0m0ECL76bQveA="},"flags/1x1/gb-sct-21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1.svg":{"logical_path":"flags/1x1/gb-sct.svg","mtime":"2020-02-25T22:08:25+01:00","size":239,"digest":"21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1","integrity":"sha256-ISNM5sAncW9ep/m1rRKK6gB1NPMu53VX9+loyC52J6E="},"flags/4x3/gb-wls-2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4.svg":{"logical_path":"flags/4x3/gb-wls.svg","mtime":"2020-02-25T22:08:25+01:00","size":9161,"digest":"2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4","integrity":"sha256-LiRnM0m9juhDmA0FLXnDVPmT77NF0e9e4P4pgH6NGdQ="},"flags/1x1/gb-wls-23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843.svg":{"logical_path":"flags/1x1/gb-wls.svg","mtime":"2020-02-25T22:08:25+01:00","size":9055,"digest":"23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843","integrity":"sha256-I6DFY6SSZ4lNILVaW/YImlgtGsInpxRMl1oZG491GEM="},"flags/4x3/un-6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d.svg":{"logical_path":"flags/4x3/un.svg","mtime":"2020-02-25T22:08:25+01:00","size":19935,"digest":"6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d","integrity":"sha256-ZoWZT65dSRjFtqog7ZjDvHNrsb2IrS2GtAJhaCdmeR0="},"flags/1x1/un-774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79.svg":{"logical_path":"flags/1x1/un.svg","mtime":"2020-02-25T22:08:25+01:00","size":20185,"digest":"774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79","integrity":"sha256-d0uuAcvmoA5NqpM5bYYNLOPVO7alofFHDhEXT9kxXXk="},"flags/4x3/xk-201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1.svg":{"logical_path":"flags/4x3/xk.svg","mtime":"2020-02-25T22:08:25+01:00","size":9643,"digest":"201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1","integrity":"sha256-IBQBUHl25XCkEO9v6mpW2w4FdJV1v2G6BKhsdyTGtcE="},"flags/1x1/xk-a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028.svg":{"logical_path":"flags/1x1/xk.svg","mtime":"2020-02-25T22:08:25+01:00","size":8963,"digest":"a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028","integrity":"sha256-pjUlyfcVJ9tyWMOd4uQe20BJVf+z5dK53Rp/MXPjsCg="},"setup_tinymce-d1b1f49b3970ed284c4afa4d37b7d2a6c1d2acd441632470cafe9f54d3317221.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-24T22:43:56+01:00","size":1033,"digest":"d1b1f49b3970ed284c4afa4d37b7d2a6c1d2acd441632470cafe9f54d3317221","integrity":"sha256-0bH0mzlw7ShMSvpNN7fSpsHSrNRBYyRwyv6fVNMxciE="},"tags-0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c.css":{"logical_path":"tags.css","mtime":"2020-02-25T22:08:25+01:00","size":1377,"digest":"0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c","integrity":"sha256-DVEtdZKRiTKubJYz4C2BBT2sHvvbNBVtnqkDNE9592w="},"application-477b6649aabdf5e46769ad060395b9eef59f900d1582bc14af9538374e5819dd.js":{"logical_path":"application.js","mtime":"2020-02-25T22:08:25+01:00","size":2016172,"digest":"477b6649aabdf5e46769ad060395b9eef59f900d1582bc14af9538374e5819dd","integrity":"sha256-R3tmSaq99eRnaa0GA5W57vWfkA0VgrwUr5U4N05YGd0="},"setup_tinymce-a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":1091,"digest":"a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b","integrity":"sha256-pH7fkz2pz07LjlDkDcaLuDSWA+Vr4bjjsYnNRqwNYZs="}},"assets":{"active_admin.js":"active_admin-2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342.js","tinymce.js":"tinymce-ece97ae71addfb3837df22d939917cc34192192b302409235bedb2f17162d83d.js","modernizr.js":"modernizr-34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0.js","font-awesome/fa-brands-400.eot":"font-awesome/fa-brands-400-e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16.eot","font-awesome/fa-regular-400.eot":"font-awesome/fa-regular-400-c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2.eot","font-awesome/fa-solid-900.eot":"font-awesome/fa-solid-900-f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe.eot","font-awesome/fa-brands-400.svg":"font-awesome/fa-brands-400-36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9.svg","font-awesome/fa-regular-400.svg":"font-awesome/fa-regular-400-7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4.svg","font-awesome/fa-solid-900.svg":"font-awesome/fa-solid-900-eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59.svg","font-awesome/fa-brands-400.ttf":"font-awesome/fa-brands-400-6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71.ttf","font-awesome/fa-regular-400.ttf":"font-awesome/fa-regular-400-6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade.ttf","font-awesome/fa-solid-900.ttf":"font-awesome/fa-solid-900-0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea.ttf","font-awesome/fa-brands-400.woff":"font-awesome/fa-brands-400-1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900.woff","font-awesome/fa-regular-400.woff":"font-awesome/fa-regular-400-864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64.woff","font-awesome/fa-solid-900.woff":"font-awesome/fa-solid-900-3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db.woff","font-awesome/fa-brands-400.woff2":"font-awesome/fa-brands-400-8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b.woff2","font-awesome/fa-regular-400.woff2":"font-awesome/fa-regular-400-86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6.woff2","font-awesome/fa-solid-900.woff2":"font-awesome/fa-solid-900-787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4.woff2","active_admin/print.css":"active_admin/print-9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b.css","active_admin.css":"active_admin-955847d711d68a8234b0311555aaabe8ce79d0b0138207a10eb43b8715bfbc6f.css","manifest.js":"manifest-39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f.js","agendadescommuns.png":"agendadescommuns-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png","alert.png":"alert-762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906.png","baby_gnu_adl.png":"baby_gnu_adl-463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc.png","baby_gnu_adl.svg":"baby_gnu_adl-97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e.svg","communs.png":"communs-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png","lef-small.png":"lef-small-93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e.png","lef.png":"lef-6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee.png","linux-presentation-day.png":"linux-presentation-day-863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1.png","osm_logo.svg":"osm_logo-0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3.svg","priorite-logiciel-libre-je-soutiens-april_2_m.png":"priorite-logiciel-libre-je-soutiens-april_2_m-6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc.png","regions/CA-QC.png":"regions/CA-QC-70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174.png","team.png":"team-65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa.png","application.js":"application-477b6649aabdf5e46769ad060395b9eef59f900d1582bc14af9538374e5819dd.js","application.css":"application-7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837.css","flags/4x3/ad.svg":"flags/4x3/ad-af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c.svg","flags/1x1/ad.svg":"flags/1x1/ad-5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839.svg","flags/4x3/ae.svg":"flags/4x3/ae-660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4.svg","flags/1x1/ae.svg":"flags/1x1/ae-09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d.svg","flags/4x3/af.svg":"flags/4x3/af-c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0.svg","flags/1x1/af.svg":"flags/1x1/af-f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0.svg","flags/4x3/ag.svg":"flags/4x3/ag-a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50.svg","flags/1x1/ag.svg":"flags/1x1/ag-b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06.svg","flags/4x3/ai.svg":"flags/4x3/ai-efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6.svg","flags/1x1/ai.svg":"flags/1x1/ai-b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f.svg","flags/4x3/al.svg":"flags/4x3/al-87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485.svg","flags/1x1/al.svg":"flags/1x1/al-b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217.svg","flags/4x3/am.svg":"flags/4x3/am-8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e.svg","flags/1x1/am.svg":"flags/1x1/am-48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b.svg","flags/4x3/ao.svg":"flags/4x3/ao-7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36.svg","flags/1x1/ao.svg":"flags/1x1/ao-b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63.svg","flags/4x3/aq.svg":"flags/4x3/aq-62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4.svg","flags/1x1/aq.svg":"flags/1x1/aq-2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93.svg","flags/4x3/ar.svg":"flags/4x3/ar-036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8.svg","flags/1x1/ar.svg":"flags/1x1/ar-3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4.svg","flags/4x3/as.svg":"flags/4x3/as-3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a.svg","flags/1x1/as.svg":"flags/1x1/as-e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81.svg","flags/4x3/at.svg":"flags/4x3/at-1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176.svg","flags/1x1/at.svg":"flags/1x1/at-73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179.svg","flags/4x3/au.svg":"flags/4x3/au-213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9.svg","flags/1x1/au.svg":"flags/1x1/au-dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a.svg","flags/4x3/aw.svg":"flags/4x3/aw-424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637.svg","flags/1x1/aw.svg":"flags/1x1/aw-b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac.svg","flags/4x3/ax.svg":"flags/4x3/ax-e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811.svg","flags/1x1/ax.svg":"flags/1x1/ax-952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3.svg","flags/4x3/az.svg":"flags/4x3/az-3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78.svg","flags/1x1/az.svg":"flags/1x1/az-ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17.svg","flags/4x3/ba.svg":"flags/4x3/ba-0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e.svg","flags/1x1/ba.svg":"flags/1x1/ba-b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1.svg","flags/4x3/bb.svg":"flags/4x3/bb-667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673.svg","flags/1x1/bb.svg":"flags/1x1/bb-2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c.svg","flags/4x3/bd.svg":"flags/4x3/bd-d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e.svg","flags/1x1/bd.svg":"flags/1x1/bd-749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce.svg","flags/4x3/be.svg":"flags/4x3/be-b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae.svg","flags/1x1/be.svg":"flags/1x1/be-b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc.svg","flags/4x3/bf.svg":"flags/4x3/bf-bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066.svg","flags/1x1/bf.svg":"flags/1x1/bf-8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244.svg","flags/4x3/bg.svg":"flags/4x3/bg-c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5.svg","flags/1x1/bg.svg":"flags/1x1/bg-9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205.svg","flags/4x3/bh.svg":"flags/4x3/bh-b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e.svg","flags/1x1/bh.svg":"flags/1x1/bh-9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8.svg","flags/4x3/bi.svg":"flags/4x3/bi-d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532.svg","flags/1x1/bi.svg":"flags/1x1/bi-78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3.svg","flags/4x3/bj.svg":"flags/4x3/bj-9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2.svg","flags/1x1/bj.svg":"flags/1x1/bj-126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb.svg","flags/4x3/bl.svg":"flags/4x3/bl-1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2.svg","flags/1x1/bl.svg":"flags/1x1/bl-b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3.svg","flags/4x3/bm.svg":"flags/4x3/bm-13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a.svg","flags/1x1/bm.svg":"flags/1x1/bm-1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125.svg","flags/4x3/bn.svg":"flags/4x3/bn-7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6.svg","flags/1x1/bn.svg":"flags/1x1/bn-58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e.svg","flags/4x3/bo.svg":"flags/4x3/bo-4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc.svg","flags/1x1/bo.svg":"flags/1x1/bo-2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294.svg","flags/4x3/bq.svg":"flags/4x3/bq-4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07.svg","flags/1x1/bq.svg":"flags/1x1/bq-21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab.svg","flags/4x3/br.svg":"flags/4x3/br-5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8.svg","flags/1x1/br.svg":"flags/1x1/br-38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e.svg","flags/4x3/bs.svg":"flags/4x3/bs-d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838.svg","flags/1x1/bs.svg":"flags/1x1/bs-f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf.svg","flags/4x3/bt.svg":"flags/4x3/bt-6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063.svg","flags/1x1/bt.svg":"flags/1x1/bt-569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36.svg","flags/4x3/bv.svg":"flags/4x3/bv-f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e.svg","flags/1x1/bv.svg":"flags/1x1/bv-6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f.svg","flags/4x3/bw.svg":"flags/4x3/bw-115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262.svg","flags/1x1/bw.svg":"flags/1x1/bw-df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86.svg","flags/4x3/by.svg":"flags/4x3/by-91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047.svg","flags/1x1/by.svg":"flags/1x1/by-b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc.svg","flags/4x3/bz.svg":"flags/4x3/bz-173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a.svg","flags/1x1/bz.svg":"flags/1x1/bz-1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249.svg","flags/4x3/ca.svg":"flags/4x3/ca-5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331.svg","flags/1x1/ca.svg":"flags/1x1/ca-85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad.svg","flags/4x3/cc.svg":"flags/4x3/cc-d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6.svg","flags/1x1/cc.svg":"flags/1x1/cc-7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970.svg","flags/4x3/cd.svg":"flags/4x3/cd-3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248.svg","flags/1x1/cd.svg":"flags/1x1/cd-600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e.svg","flags/4x3/cf.svg":"flags/4x3/cf-44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f.svg","flags/1x1/cf.svg":"flags/1x1/cf-b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175.svg","flags/4x3/cg.svg":"flags/4x3/cg-7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2.svg","flags/1x1/cg.svg":"flags/1x1/cg-20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d.svg","flags/4x3/ch.svg":"flags/4x3/ch-4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5.svg","flags/1x1/ch.svg":"flags/1x1/ch-a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106.svg","flags/4x3/ci.svg":"flags/4x3/ci-d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992.svg","flags/1x1/ci.svg":"flags/1x1/ci-ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc.svg","flags/4x3/ck.svg":"flags/4x3/ck-95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8.svg","flags/1x1/ck.svg":"flags/1x1/ck-a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754.svg","flags/4x3/cl.svg":"flags/4x3/cl-b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde.svg","flags/1x1/cl.svg":"flags/1x1/cl-250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0.svg","flags/4x3/cm.svg":"flags/4x3/cm-1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f.svg","flags/1x1/cm.svg":"flags/1x1/cm-809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4.svg","flags/4x3/cn.svg":"flags/4x3/cn-e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8.svg","flags/1x1/cn.svg":"flags/1x1/cn-ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6.svg","flags/4x3/co.svg":"flags/4x3/co-bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da.svg","flags/1x1/co.svg":"flags/1x1/co-cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2.svg","flags/4x3/cr.svg":"flags/4x3/cr-12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd.svg","flags/1x1/cr.svg":"flags/1x1/cr-c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49.svg","flags/4x3/cu.svg":"flags/4x3/cu-0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145.svg","flags/1x1/cu.svg":"flags/1x1/cu-f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404.svg","flags/4x3/cv.svg":"flags/4x3/cv-3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532.svg","flags/1x1/cv.svg":"flags/1x1/cv-698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64.svg","flags/4x3/cw.svg":"flags/4x3/cw-186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376.svg","flags/1x1/cw.svg":"flags/1x1/cw-e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484.svg","flags/4x3/cx.svg":"flags/4x3/cx-aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d.svg","flags/1x1/cx.svg":"flags/1x1/cx-8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99.svg","flags/4x3/cy.svg":"flags/4x3/cy-88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7.svg","flags/1x1/cy.svg":"flags/1x1/cy-0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba.svg","flags/4x3/cz.svg":"flags/4x3/cz-a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609.svg","flags/1x1/cz.svg":"flags/1x1/cz-fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77.svg","flags/4x3/de.svg":"flags/4x3/de-226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f.svg","flags/1x1/de.svg":"flags/1x1/de-d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0.svg","flags/4x3/dj.svg":"flags/4x3/dj-55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae.svg","flags/1x1/dj.svg":"flags/1x1/dj-ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896.svg","flags/4x3/dk.svg":"flags/4x3/dk-c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44.svg","flags/1x1/dk.svg":"flags/1x1/dk-feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469.svg","flags/4x3/dm.svg":"flags/4x3/dm-80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070.svg","flags/1x1/dm.svg":"flags/1x1/dm-e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711.svg","flags/4x3/do.svg":"flags/4x3/do-d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f.svg","flags/1x1/do.svg":"flags/1x1/do-2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c.svg","flags/4x3/dz.svg":"flags/4x3/dz-6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6.svg","flags/1x1/dz.svg":"flags/1x1/dz-75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c.svg","flags/4x3/ec.svg":"flags/4x3/ec-63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde.svg","flags/1x1/ec.svg":"flags/1x1/ec-672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84.svg","flags/4x3/ee.svg":"flags/4x3/ee-b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e.svg","flags/1x1/ee.svg":"flags/1x1/ee-53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd.svg","flags/4x3/eg.svg":"flags/4x3/eg-83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42.svg","flags/1x1/eg.svg":"flags/1x1/eg-6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22.svg","flags/4x3/eh.svg":"flags/4x3/eh-62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639.svg","flags/1x1/eh.svg":"flags/1x1/eh-15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c.svg","flags/4x3/er.svg":"flags/4x3/er-4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04.svg","flags/1x1/er.svg":"flags/1x1/er-29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729.svg","flags/4x3/es.svg":"flags/4x3/es-ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3.svg","flags/1x1/es.svg":"flags/1x1/es-bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c.svg","flags/4x3/et.svg":"flags/4x3/et-e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79.svg","flags/1x1/et.svg":"flags/1x1/et-59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71.svg","flags/4x3/fi.svg":"flags/4x3/fi-83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2.svg","flags/1x1/fi.svg":"flags/1x1/fi-6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336.svg","flags/4x3/fj.svg":"flags/4x3/fj-4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9.svg","flags/1x1/fj.svg":"flags/1x1/fj-36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978.svg","flags/4x3/fk.svg":"flags/4x3/fk-6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457.svg","flags/1x1/fk.svg":"flags/1x1/fk-2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79.svg","flags/4x3/fm.svg":"flags/4x3/fm-881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75.svg","flags/1x1/fm.svg":"flags/1x1/fm-0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4.svg","flags/4x3/fo.svg":"flags/4x3/fo-c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334.svg","flags/1x1/fo.svg":"flags/1x1/fo-5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c.svg","flags/4x3/fr.svg":"flags/4x3/fr-63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117.svg","flags/1x1/fr.svg":"flags/1x1/fr-5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff.svg","flags/4x3/ga.svg":"flags/4x3/ga-6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659.svg","flags/1x1/ga.svg":"flags/1x1/ga-2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686.svg","flags/4x3/gb.svg":"flags/4x3/gb-825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803.svg","flags/1x1/gb.svg":"flags/1x1/gb-6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0.svg","flags/4x3/gd.svg":"flags/4x3/gd-eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249.svg","flags/1x1/gd.svg":"flags/1x1/gd-407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d.svg","flags/4x3/ge.svg":"flags/4x3/ge-3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c.svg","flags/1x1/ge.svg":"flags/1x1/ge-3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a.svg","flags/4x3/gf.svg":"flags/4x3/gf-8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422.svg","flags/1x1/gf.svg":"flags/1x1/gf-7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f.svg","flags/4x3/gg.svg":"flags/4x3/gg-7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3.svg","flags/1x1/gg.svg":"flags/1x1/gg-e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf.svg","flags/4x3/gh.svg":"flags/4x3/gh-120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016.svg","flags/1x1/gh.svg":"flags/1x1/gh-b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e.svg","flags/4x3/gi.svg":"flags/4x3/gi-c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14.svg","flags/1x1/gi.svg":"flags/1x1/gi-7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21.svg","flags/4x3/gl.svg":"flags/4x3/gl-1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288.svg","flags/1x1/gl.svg":"flags/1x1/gl-5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8.svg","flags/4x3/gm.svg":"flags/4x3/gm-6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c.svg","flags/1x1/gm.svg":"flags/1x1/gm-5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f.svg","flags/4x3/gn.svg":"flags/4x3/gn-735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda.svg","flags/1x1/gn.svg":"flags/1x1/gn-255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726.svg","flags/4x3/gp.svg":"flags/4x3/gp-b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2.svg","flags/1x1/gp.svg":"flags/1x1/gp-8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c.svg","flags/4x3/gq.svg":"flags/4x3/gq-52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da.svg","flags/1x1/gq.svg":"flags/1x1/gq-f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131.svg","flags/4x3/gr.svg":"flags/4x3/gr-d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205.svg","flags/1x1/gr.svg":"flags/1x1/gr-565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099.svg","flags/4x3/gs.svg":"flags/4x3/gs-ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69.svg","flags/1x1/gs.svg":"flags/1x1/gs-718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186.svg","flags/4x3/gt.svg":"flags/4x3/gt-aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5.svg","flags/1x1/gt.svg":"flags/1x1/gt-66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0.svg","flags/4x3/gu.svg":"flags/4x3/gu-6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d.svg","flags/1x1/gu.svg":"flags/1x1/gu-390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729.svg","flags/4x3/gw.svg":"flags/4x3/gw-ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77.svg","flags/1x1/gw.svg":"flags/1x1/gw-14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de.svg","flags/4x3/gy.svg":"flags/4x3/gy-0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919.svg","flags/1x1/gy.svg":"flags/1x1/gy-7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88.svg","flags/4x3/hk.svg":"flags/4x3/hk-17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1.svg","flags/1x1/hk.svg":"flags/1x1/hk-9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927.svg","flags/4x3/hm.svg":"flags/4x3/hm-d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3.svg","flags/1x1/hm.svg":"flags/1x1/hm-78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6.svg","flags/4x3/hn.svg":"flags/4x3/hn-38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594.svg","flags/1x1/hn.svg":"flags/1x1/hn-79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641.svg","flags/4x3/hr.svg":"flags/4x3/hr-b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6.svg","flags/1x1/hr.svg":"flags/1x1/hr-1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf.svg","flags/4x3/ht.svg":"flags/4x3/ht-ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911.svg","flags/1x1/ht.svg":"flags/1x1/ht-092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b.svg","flags/4x3/hu.svg":"flags/4x3/hu-470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448.svg","flags/1x1/hu.svg":"flags/1x1/hu-ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b.svg","flags/4x3/id.svg":"flags/4x3/id-c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd.svg","flags/1x1/id.svg":"flags/1x1/id-b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa.svg","flags/4x3/ie.svg":"flags/4x3/ie-4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191.svg","flags/1x1/ie.svg":"flags/1x1/ie-e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d.svg","flags/4x3/il.svg":"flags/4x3/il-1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a.svg","flags/1x1/il.svg":"flags/1x1/il-343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a.svg","flags/4x3/im.svg":"flags/4x3/im-5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7.svg","flags/1x1/im.svg":"flags/1x1/im-6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba.svg","flags/4x3/in.svg":"flags/4x3/in-cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45.svg","flags/1x1/in.svg":"flags/1x1/in-dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b.svg","flags/4x3/io.svg":"flags/4x3/io-b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec.svg","flags/1x1/io.svg":"flags/1x1/io-5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e.svg","flags/4x3/iq.svg":"flags/4x3/iq-4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a.svg","flags/1x1/iq.svg":"flags/1x1/iq-4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c.svg","flags/4x3/ir.svg":"flags/4x3/ir-2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23.svg","flags/1x1/ir.svg":"flags/1x1/ir-18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6.svg","flags/4x3/is.svg":"flags/4x3/is-89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e.svg","flags/1x1/is.svg":"flags/1x1/is-74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3.svg","flags/4x3/it.svg":"flags/4x3/it-2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598.svg","flags/1x1/it.svg":"flags/1x1/it-28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2.svg","flags/4x3/je.svg":"flags/4x3/je-365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a.svg","flags/1x1/je.svg":"flags/1x1/je-0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6.svg","flags/4x3/jm.svg":"flags/4x3/jm-fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594.svg","flags/1x1/jm.svg":"flags/1x1/jm-1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416.svg","flags/4x3/jo.svg":"flags/4x3/jo-c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27.svg","flags/1x1/jo.svg":"flags/1x1/jo-e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118.svg","flags/4x3/jp.svg":"flags/4x3/jp-e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606.svg","flags/1x1/jp.svg":"flags/1x1/jp-0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5.svg","flags/4x3/ke.svg":"flags/4x3/ke-c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8.svg","flags/1x1/ke.svg":"flags/1x1/ke-3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f.svg","flags/4x3/kg.svg":"flags/4x3/kg-618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721.svg","flags/1x1/kg.svg":"flags/1x1/kg-059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35.svg","flags/4x3/kh.svg":"flags/4x3/kh-ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6.svg","flags/1x1/kh.svg":"flags/1x1/kh-16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3.svg","flags/4x3/ki.svg":"flags/4x3/ki-591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d.svg","flags/1x1/ki.svg":"flags/1x1/ki-210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315.svg","flags/4x3/km.svg":"flags/4x3/km-f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f.svg","flags/1x1/km.svg":"flags/1x1/km-a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19.svg","flags/4x3/kn.svg":"flags/4x3/kn-d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924.svg","flags/1x1/kn.svg":"flags/1x1/kn-ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363.svg","flags/4x3/kp.svg":"flags/4x3/kp-8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79.svg","flags/1x1/kp.svg":"flags/1x1/kp-d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc.svg","flags/4x3/kr.svg":"flags/4x3/kr-3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a.svg","flags/1x1/kr.svg":"flags/1x1/kr-3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76.svg","flags/4x3/kw.svg":"flags/4x3/kw-ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71.svg","flags/1x1/kw.svg":"flags/1x1/kw-c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e.svg","flags/4x3/ky.svg":"flags/4x3/ky-fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef.svg","flags/1x1/ky.svg":"flags/1x1/ky-707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f.svg","flags/4x3/kz.svg":"flags/4x3/kz-8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a.svg","flags/1x1/kz.svg":"flags/1x1/kz-af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49.svg","flags/4x3/la.svg":"flags/4x3/la-1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409.svg","flags/1x1/la.svg":"flags/1x1/la-dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d.svg","flags/4x3/lb.svg":"flags/4x3/lb-80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e.svg","flags/1x1/lb.svg":"flags/1x1/lb-5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373.svg","flags/4x3/lc.svg":"flags/4x3/lc-6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e.svg","flags/1x1/lc.svg":"flags/1x1/lc-c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38.svg","flags/4x3/li.svg":"flags/4x3/li-c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb.svg","flags/1x1/li.svg":"flags/1x1/li-956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5.svg","flags/4x3/lk.svg":"flags/4x3/lk-599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e.svg","flags/1x1/lk.svg":"flags/1x1/lk-379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d.svg","flags/4x3/lr.svg":"flags/4x3/lr-66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7.svg","flags/1x1/lr.svg":"flags/1x1/lr-371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6.svg","flags/4x3/ls.svg":"flags/4x3/ls-285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4.svg","flags/1x1/ls.svg":"flags/1x1/ls-80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa.svg","flags/4x3/lt.svg":"flags/4x3/lt-9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c.svg","flags/1x1/lt.svg":"flags/1x1/lt-74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08.svg","flags/4x3/lu.svg":"flags/4x3/lu-4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a.svg","flags/1x1/lu.svg":"flags/1x1/lu-67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e.svg","flags/4x3/lv.svg":"flags/4x3/lv-dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7.svg","flags/1x1/lv.svg":"flags/1x1/lv-23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308.svg","flags/4x3/ly.svg":"flags/4x3/ly-3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470.svg","flags/1x1/ly.svg":"flags/1x1/ly-5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d.svg","flags/4x3/ma.svg":"flags/4x3/ma-f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6.svg","flags/1x1/ma.svg":"flags/1x1/ma-3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302.svg","flags/4x3/mc.svg":"flags/4x3/mc-65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec.svg","flags/1x1/mc.svg":"flags/1x1/mc-83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad.svg","flags/4x3/md.svg":"flags/4x3/md-92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440.svg","flags/1x1/md.svg":"flags/1x1/md-af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f.svg","flags/4x3/me.svg":"flags/4x3/me-29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895.svg","flags/1x1/me.svg":"flags/1x1/me-551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367.svg","flags/4x3/mf.svg":"flags/4x3/mf-a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5.svg","flags/1x1/mf.svg":"flags/1x1/mf-bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e.svg","flags/4x3/mg.svg":"flags/4x3/mg-9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586.svg","flags/1x1/mg.svg":"flags/1x1/mg-e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56.svg","flags/4x3/mh.svg":"flags/4x3/mh-4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7.svg","flags/1x1/mh.svg":"flags/1x1/mh-ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa.svg","flags/4x3/mk.svg":"flags/4x3/mk-3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c.svg","flags/1x1/mk.svg":"flags/1x1/mk-ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d.svg","flags/4x3/ml.svg":"flags/4x3/ml-e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca.svg","flags/1x1/ml.svg":"flags/1x1/ml-0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a.svg","flags/4x3/mm.svg":"flags/4x3/mm-f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1.svg","flags/1x1/mm.svg":"flags/1x1/mm-f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b.svg","flags/4x3/mn.svg":"flags/4x3/mn-00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3.svg","flags/1x1/mn.svg":"flags/1x1/mn-ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7.svg","flags/4x3/mo.svg":"flags/4x3/mo-62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e.svg","flags/1x1/mo.svg":"flags/1x1/mo-8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a.svg","flags/4x3/mp.svg":"flags/4x3/mp-2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef.svg","flags/1x1/mp.svg":"flags/1x1/mp-9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563.svg","flags/4x3/mq.svg":"flags/4x3/mq-297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9.svg","flags/1x1/mq.svg":"flags/1x1/mq-0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093.svg","flags/4x3/mr.svg":"flags/4x3/mr-e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe.svg","flags/1x1/mr.svg":"flags/1x1/mr-fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799.svg","flags/4x3/ms.svg":"flags/4x3/ms-c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262.svg","flags/1x1/ms.svg":"flags/1x1/ms-c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43.svg","flags/4x3/mt.svg":"flags/4x3/mt-fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d.svg","flags/1x1/mt.svg":"flags/1x1/mt-b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100.svg","flags/4x3/mu.svg":"flags/4x3/mu-e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6.svg","flags/1x1/mu.svg":"flags/1x1/mu-9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb.svg","flags/4x3/mv.svg":"flags/4x3/mv-0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d.svg","flags/1x1/mv.svg":"flags/1x1/mv-57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da.svg","flags/4x3/mw.svg":"flags/4x3/mw-c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b.svg","flags/1x1/mw.svg":"flags/1x1/mw-5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0.svg","flags/4x3/mx.svg":"flags/4x3/mx-8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7.svg","flags/1x1/mx.svg":"flags/1x1/mx-b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e.svg","flags/4x3/my.svg":"flags/4x3/my-c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c.svg","flags/1x1/my.svg":"flags/1x1/my-cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd.svg","flags/4x3/mz.svg":"flags/4x3/mz-db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1.svg","flags/1x1/mz.svg":"flags/1x1/mz-cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473.svg","flags/4x3/na.svg":"flags/4x3/na-7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213.svg","flags/1x1/na.svg":"flags/1x1/na-37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20.svg","flags/4x3/nc.svg":"flags/4x3/nc-b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475.svg","flags/1x1/nc.svg":"flags/1x1/nc-d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656.svg","flags/4x3/ne.svg":"flags/4x3/ne-54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900.svg","flags/1x1/ne.svg":"flags/1x1/ne-bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3.svg","flags/4x3/nf.svg":"flags/4x3/nf-f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c.svg","flags/1x1/nf.svg":"flags/1x1/nf-4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d.svg","flags/4x3/ng.svg":"flags/4x3/ng-f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33.svg","flags/1x1/ng.svg":"flags/1x1/ng-8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a.svg","flags/4x3/ni.svg":"flags/4x3/ni-a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb.svg","flags/1x1/ni.svg":"flags/1x1/ni-a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504.svg","flags/4x3/nl.svg":"flags/4x3/nl-a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51.svg","flags/1x1/nl.svg":"flags/1x1/nl-426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2.svg","flags/4x3/no.svg":"flags/4x3/no-c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a.svg","flags/1x1/no.svg":"flags/1x1/no-567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25.svg","flags/4x3/np.svg":"flags/4x3/np-ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0.svg","flags/1x1/np.svg":"flags/1x1/np-d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2.svg","flags/4x3/nr.svg":"flags/4x3/nr-2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792.svg","flags/1x1/nr.svg":"flags/1x1/nr-6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c.svg","flags/4x3/nu.svg":"flags/4x3/nu-55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c.svg","flags/1x1/nu.svg":"flags/1x1/nu-1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f.svg","flags/4x3/nz.svg":"flags/4x3/nz-b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f.svg","flags/1x1/nz.svg":"flags/1x1/nz-b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23.svg","flags/4x3/om.svg":"flags/4x3/om-d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967.svg","flags/1x1/om.svg":"flags/1x1/om-20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9.svg","flags/4x3/pa.svg":"flags/4x3/pa-0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11.svg","flags/1x1/pa.svg":"flags/1x1/pa-6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7.svg","flags/4x3/pe.svg":"flags/4x3/pe-3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5.svg","flags/1x1/pe.svg":"flags/1x1/pe-e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9.svg","flags/4x3/pf.svg":"flags/4x3/pf-de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1.svg","flags/1x1/pf.svg":"flags/1x1/pf-d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88.svg","flags/4x3/pg.svg":"flags/4x3/pg-10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809.svg","flags/1x1/pg.svg":"flags/1x1/pg-40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb.svg","flags/4x3/ph.svg":"flags/4x3/ph-fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5.svg","flags/1x1/ph.svg":"flags/1x1/ph-2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c.svg","flags/4x3/pk.svg":"flags/4x3/pk-0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9.svg","flags/1x1/pk.svg":"flags/1x1/pk-637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903.svg","flags/4x3/pl.svg":"flags/4x3/pl-bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851.svg","flags/1x1/pl.svg":"flags/1x1/pl-d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad.svg","flags/4x3/pm.svg":"flags/4x3/pm-e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6.svg","flags/1x1/pm.svg":"flags/1x1/pm-4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641.svg","flags/4x3/pn.svg":"flags/4x3/pn-d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c.svg","flags/1x1/pn.svg":"flags/1x1/pn-c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b.svg","flags/4x3/pr.svg":"flags/4x3/pr-f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8.svg","flags/1x1/pr.svg":"flags/1x1/pr-7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26.svg","flags/4x3/ps.svg":"flags/4x3/ps-84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71.svg","flags/1x1/ps.svg":"flags/1x1/ps-31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9.svg","flags/4x3/pt.svg":"flags/4x3/pt-62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd.svg","flags/1x1/pt.svg":"flags/1x1/pt-2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa.svg","flags/4x3/pw.svg":"flags/4x3/pw-c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7.svg","flags/1x1/pw.svg":"flags/1x1/pw-21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956.svg","flags/4x3/py.svg":"flags/4x3/py-22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c.svg","flags/1x1/py.svg":"flags/1x1/py-da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da.svg","flags/4x3/qa.svg":"flags/4x3/qa-a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31.svg","flags/1x1/qa.svg":"flags/1x1/qa-ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505.svg","flags/4x3/re.svg":"flags/4x3/re-5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434.svg","flags/1x1/re.svg":"flags/1x1/re-37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084.svg","flags/4x3/ro.svg":"flags/4x3/ro-854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e.svg","flags/1x1/ro.svg":"flags/1x1/ro-da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9.svg","flags/4x3/rs.svg":"flags/4x3/rs-cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a.svg","flags/1x1/rs.svg":"flags/1x1/rs-04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb.svg","flags/4x3/ru.svg":"flags/4x3/ru-5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0.svg","flags/1x1/ru.svg":"flags/1x1/ru-bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064.svg","flags/4x3/rw.svg":"flags/4x3/rw-aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75.svg","flags/1x1/rw.svg":"flags/1x1/rw-8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed.svg","flags/4x3/sa.svg":"flags/4x3/sa-d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b.svg","flags/1x1/sa.svg":"flags/1x1/sa-639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be.svg","flags/4x3/sb.svg":"flags/4x3/sb-651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac.svg","flags/1x1/sb.svg":"flags/1x1/sb-19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3.svg","flags/4x3/sc.svg":"flags/4x3/sc-2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e.svg","flags/1x1/sc.svg":"flags/1x1/sc-90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71.svg","flags/4x3/sd.svg":"flags/4x3/sd-b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d.svg","flags/1x1/sd.svg":"flags/1x1/sd-da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc.svg","flags/4x3/se.svg":"flags/4x3/se-7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062.svg","flags/1x1/se.svg":"flags/1x1/se-9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837.svg","flags/4x3/sg.svg":"flags/4x3/sg-fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226.svg","flags/1x1/sg.svg":"flags/1x1/sg-f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a.svg","flags/4x3/sh.svg":"flags/4x3/sh-e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279.svg","flags/1x1/sh.svg":"flags/1x1/sh-c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947.svg","flags/4x3/si.svg":"flags/4x3/si-25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001.svg","flags/1x1/si.svg":"flags/1x1/si-53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57.svg","flags/4x3/sj.svg":"flags/4x3/sj-e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5.svg","flags/1x1/sj.svg":"flags/1x1/sj-d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f.svg","flags/4x3/sk.svg":"flags/4x3/sk-4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2.svg","flags/1x1/sk.svg":"flags/1x1/sk-48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b.svg","flags/4x3/sl.svg":"flags/4x3/sl-d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a.svg","flags/1x1/sl.svg":"flags/1x1/sl-9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6.svg","flags/4x3/sm.svg":"flags/4x3/sm-d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c.svg","flags/1x1/sm.svg":"flags/1x1/sm-2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d.svg","flags/4x3/sn.svg":"flags/4x3/sn-e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa.svg","flags/1x1/sn.svg":"flags/1x1/sn-1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748.svg","flags/4x3/so.svg":"flags/4x3/so-50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd.svg","flags/1x1/so.svg":"flags/1x1/so-74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3.svg","flags/4x3/sr.svg":"flags/4x3/sr-04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa.svg","flags/1x1/sr.svg":"flags/1x1/sr-e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278.svg","flags/4x3/ss.svg":"flags/4x3/ss-d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6.svg","flags/1x1/ss.svg":"flags/1x1/ss-15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102.svg","flags/4x3/st.svg":"flags/4x3/st-ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1.svg","flags/1x1/st.svg":"flags/1x1/st-a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d.svg","flags/4x3/sv.svg":"flags/4x3/sv-4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d.svg","flags/1x1/sv.svg":"flags/1x1/sv-ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e.svg","flags/4x3/sx.svg":"flags/4x3/sx-aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c.svg","flags/1x1/sx.svg":"flags/1x1/sx-ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06.svg","flags/4x3/sy.svg":"flags/4x3/sy-3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039.svg","flags/1x1/sy.svg":"flags/1x1/sy-fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446.svg","flags/4x3/sz.svg":"flags/4x3/sz-57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f.svg","flags/1x1/sz.svg":"flags/1x1/sz-ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951.svg","flags/4x3/tc.svg":"flags/4x3/tc-c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc.svg","flags/1x1/tc.svg":"flags/1x1/tc-d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c.svg","flags/4x3/td.svg":"flags/4x3/td-b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3.svg","flags/1x1/td.svg":"flags/1x1/td-ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c.svg","flags/4x3/tf.svg":"flags/4x3/tf-0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820.svg","flags/1x1/tf.svg":"flags/1x1/tf-90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6.svg","flags/4x3/tg.svg":"flags/4x3/tg-486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499.svg","flags/1x1/tg.svg":"flags/1x1/tg-830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad.svg","flags/4x3/th.svg":"flags/4x3/th-4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9.svg","flags/1x1/th.svg":"flags/1x1/th-cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887.svg","flags/4x3/tj.svg":"flags/4x3/tj-1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe.svg","flags/1x1/tj.svg":"flags/1x1/tj-a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece.svg","flags/4x3/tk.svg":"flags/4x3/tk-3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58.svg","flags/1x1/tk.svg":"flags/1x1/tk-137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d.svg","flags/4x3/tl.svg":"flags/4x3/tl-8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40.svg","flags/1x1/tl.svg":"flags/1x1/tl-d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf.svg","flags/4x3/tm.svg":"flags/4x3/tm-22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec.svg","flags/1x1/tm.svg":"flags/1x1/tm-42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38.svg","flags/4x3/tn.svg":"flags/4x3/tn-5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5.svg","flags/1x1/tn.svg":"flags/1x1/tn-84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57.svg","flags/4x3/to.svg":"flags/4x3/to-a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa.svg","flags/1x1/to.svg":"flags/1x1/to-5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2.svg","flags/4x3/tr.svg":"flags/4x3/tr-033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66.svg","flags/1x1/tr.svg":"flags/1x1/tr-74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae.svg","flags/4x3/tt.svg":"flags/4x3/tt-f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00.svg","flags/1x1/tt.svg":"flags/1x1/tt-3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de.svg","flags/4x3/tv.svg":"flags/4x3/tv-6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4.svg","flags/1x1/tv.svg":"flags/1x1/tv-add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240.svg","flags/4x3/tw.svg":"flags/4x3/tw-44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16.svg","flags/1x1/tw.svg":"flags/1x1/tw-06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19.svg","flags/4x3/tz.svg":"flags/4x3/tz-1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988.svg","flags/1x1/tz.svg":"flags/1x1/tz-ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2.svg","flags/4x3/ua.svg":"flags/4x3/ua-fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa.svg","flags/1x1/ua.svg":"flags/1x1/ua-79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296.svg","flags/4x3/ug.svg":"flags/4x3/ug-001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975.svg","flags/1x1/ug.svg":"flags/1x1/ug-59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9.svg","flags/4x3/um.svg":"flags/4x3/um-d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164.svg","flags/1x1/um.svg":"flags/1x1/um-9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5.svg","flags/4x3/us.svg":"flags/4x3/us-c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e.svg","flags/1x1/us.svg":"flags/1x1/us-c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196.svg","flags/4x3/uy.svg":"flags/4x3/uy-25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a.svg","flags/1x1/uy.svg":"flags/1x1/uy-4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60.svg","flags/4x3/uz.svg":"flags/4x3/uz-76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4.svg","flags/1x1/uz.svg":"flags/1x1/uz-96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1.svg","flags/4x3/va.svg":"flags/4x3/va-89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278.svg","flags/1x1/va.svg":"flags/1x1/va-bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19.svg","flags/4x3/vc.svg":"flags/4x3/vc-55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5.svg","flags/1x1/vc.svg":"flags/1x1/vc-3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19.svg","flags/4x3/ve.svg":"flags/4x3/ve-3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561.svg","flags/1x1/ve.svg":"flags/1x1/ve-2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192.svg","flags/4x3/vg.svg":"flags/4x3/vg-509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364.svg","flags/1x1/vg.svg":"flags/1x1/vg-caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31.svg","flags/4x3/vi.svg":"flags/4x3/vi-0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032.svg","flags/1x1/vi.svg":"flags/1x1/vi-8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62.svg","flags/4x3/vn.svg":"flags/4x3/vn-1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e.svg","flags/1x1/vn.svg":"flags/1x1/vn-42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77.svg","flags/4x3/vu.svg":"flags/4x3/vu-03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014.svg","flags/1x1/vu.svg":"flags/1x1/vu-016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56.svg","flags/4x3/wf.svg":"flags/4x3/wf-e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89.svg","flags/1x1/wf.svg":"flags/1x1/wf-5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d.svg","flags/4x3/ws.svg":"flags/4x3/ws-e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26.svg","flags/1x1/ws.svg":"flags/1x1/ws-7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18.svg","flags/4x3/ye.svg":"flags/4x3/ye-ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c.svg","flags/1x1/ye.svg":"flags/1x1/ye-d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e.svg","flags/4x3/yt.svg":"flags/4x3/yt-b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351.svg","flags/1x1/yt.svg":"flags/1x1/yt-794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927.svg","flags/4x3/za.svg":"flags/4x3/za-d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5.svg","flags/1x1/za.svg":"flags/1x1/za-3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693.svg","flags/4x3/zm.svg":"flags/4x3/zm-107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4.svg","flags/1x1/zm.svg":"flags/1x1/zm-4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84.svg","flags/4x3/zw.svg":"flags/4x3/zw-a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115.svg","flags/1x1/zw.svg":"flags/1x1/zw-c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401.svg","flags/4x3/es-ct.svg":"flags/4x3/es-ct-bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d.svg","flags/1x1/es-ct.svg":"flags/1x1/es-ct-7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef.svg","flags/4x3/eu.svg":"flags/4x3/eu-8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e.svg","flags/1x1/eu.svg":"flags/1x1/eu-7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9.svg","flags/4x3/gb-eng.svg":"flags/4x3/gb-eng-d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca.svg","flags/1x1/gb-eng.svg":"flags/1x1/gb-eng-83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba.svg","flags/4x3/gb-nir.svg":"flags/4x3/gb-nir-5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216.svg","flags/1x1/gb-nir.svg":"flags/1x1/gb-nir-f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558.svg","flags/4x3/gb-sct.svg":"flags/4x3/gb-sct-bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0.svg","flags/1x1/gb-sct.svg":"flags/1x1/gb-sct-21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1.svg","flags/4x3/gb-wls.svg":"flags/4x3/gb-wls-2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4.svg","flags/1x1/gb-wls.svg":"flags/1x1/gb-wls-23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843.svg","flags/4x3/un.svg":"flags/4x3/un-6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d.svg","flags/1x1/un.svg":"flags/1x1/un-774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79.svg","leaflet/dist/images/layers.png":"leaflet/dist/images/layers-1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6.png","leaflet/dist/images/layers-2x.png":"leaflet/dist/images/layers-2x-066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf.png","leaflet/dist/images/marker-icon.png":"leaflet/dist/images/marker-icon-574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437.png","markers-soft.png":"markers-soft-e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739.png","markers-shadow.png":"markers-shadow-8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20.png","markers-soft@2x.png":"markers-soft@2x-c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf.png","markers-shadow@2x.png":"markers-shadow@2x-b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a.png","events.js":"events-f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315.js","filter.js":"filter-2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca.js","flash.js":"flash-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js","frTypo.js":"frTypo-fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836.js","list.js":"list-e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd.js","maps.js":"maps-81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25.js","moderations.js":"moderations-c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380.js","notes.js":"notes-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js","orgas.js":"orgas-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js","pages.js":"pages-9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084.js","pagination.js":"pagination-ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5.js","setup_tinymce.js":"setup_tinymce-a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b.js","stats.js":"stats-40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400.js","_variables.css":"_variables-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css","agendadescommuns.css":"agendadescommuns-734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55.css","all.css":"all-a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27.css","digest.css":"digest-e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3.css","events.css":"events-bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6.css","form.css":"form-f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988.css","frTypo.css":"frTypo-ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512.css","list.css":"list-efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7.css","maps.css":"maps-2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba.css","mobile.css":"mobile-59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36.css","moderations.css":"moderations-ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895.css","notes.css":"notes-e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f.css","orgas.css":"orgas-dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80.css","pages.css":"pages-5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2.css","region.css":"region-0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e.css","scaffolds.css":"scaffolds-c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b.css","sessions.css":"sessions-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css","stats.css":"stats-a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45.css","tags.css":"tags-0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c.css","versions.css":"versions-3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb.css","tinymce/jquery.tinymce.js":"tinymce/jquery.tinymce-288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2.js","tinymce/langs/readme.md":"tinymce/langs/readme.md","tinymce/license.txt":"tinymce/license.txt","tinymce/plugins/advlist/plugin.js":"tinymce/plugins/advlist/plugin-ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa.js","tinymce/plugins/anchor/plugin.js":"tinymce/plugins/anchor/plugin-e1a281e6b5110e207af9dbaaf52083080a6d590aee286fc8b1eac466d5db25f2.js","tinymce/plugins/autolink/plugin.js":"tinymce/plugins/autolink/plugin-fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef.js","tinymce/plugins/autoresize/plugin.js":"tinymce/plugins/autoresize/plugin-c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626.js","tinymce/plugins/autosave/plugin.js":"tinymce/plugins/autosave/plugin-3caa7909c1d9d22a1494afe442155a915098ac763c628898a83ff351b8a99bb6.js","tinymce/plugins/bbcode/plugin.js":"tinymce/plugins/bbcode/plugin-0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3.js","tinymce/plugins/charmap/plugin.js":"tinymce/plugins/charmap/plugin-ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed.js","tinymce/plugins/code/plugin.js":"tinymce/plugins/code/plugin-9ec6e1d7abda5f2576da4c5ad6c97318589daf0c8ecf38a54cc2982465991d15.js","tinymce/plugins/codesample/plugin.js":"tinymce/plugins/codesample/plugin-51877540fd6cc721e3385e0a7e283c238182b8d9d38e21dee1be85bf8cd5cd18.js","tinymce/plugins/colorpicker/plugin.js":"tinymce/plugins/colorpicker/plugin-c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852.js","tinymce/plugins/contextmenu/plugin.js":"tinymce/plugins/contextmenu/plugin-d29ea7477a0ea4ed816f8056d5faf9563c0682372d5305d0ad5895db39296e3d.js","tinymce/plugins/directionality/plugin.js":"tinymce/plugins/directionality/plugin-791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171.js","tinymce/plugins/emoticons/js/emojis.js":"tinymce/plugins/emoticons/js/emojis-a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a.js","tinymce/plugins/emoticons/plugin.js":"tinymce/plugins/emoticons/plugin-3443af28675ef4abc8b57aba397c62cc9bf469ec8c4c56a8622fa8ab1c7f2ee3.js","tinymce/plugins/fullpage/plugin.js":"tinymce/plugins/fullpage/plugin-c21647cef8ecc48cfb1fbe68d31d704aaa55c22f83ffd157619e693fef0a63ea.js","tinymce/plugins/fullscreen/plugin.js":"tinymce/plugins/fullscreen/plugin-880660f477d1447103b4a00768c5279aee8c002c520d9a3684814eaf89f91ca2.js","tinymce/plugins/help/plugin.js":"tinymce/plugins/help/plugin-86a13d52eccdd14ca7b75357e1da835637f9edbafdecc227292260a313c5fc9c.js","tinymce/plugins/hr/plugin.js":"tinymce/plugins/hr/plugin-21fd32a758ffbcb33bbba889889a1343b4d9d0ed4798760090575db4afa7d3f2.js","tinymce/plugins/image/plugin.js":"tinymce/plugins/image/plugin-23e1db85c5ae7840030aa4d47c842b33d9638b154c5962492dca83625b0fb498.js","tinymce/plugins/imagetools/plugin.js":"tinymce/plugins/imagetools/plugin-2cbf06b6ff65bf39fb84b7352bececcbe7542cfb1b129b71b8cbba39e8f2a02e.js","tinymce/plugins/importcss/plugin.js":"tinymce/plugins/importcss/plugin-a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5.js","tinymce/plugins/insertdatetime/plugin.js":"tinymce/plugins/insertdatetime/plugin-d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6.js","tinymce/plugins/legacyoutput/plugin.js":"tinymce/plugins/legacyoutput/plugin-0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f.js","tinymce/plugins/link/plugin.js":"tinymce/plugins/link/plugin-07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1.js","tinymce/plugins/lists/plugin.js":"tinymce/plugins/lists/plugin-1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d.js","tinymce/plugins/media/plugin.js":"tinymce/plugins/media/plugin-503d4a44c549474fc28490f1b74202fb564cc60118ab661928ad85a1a5c05eec.js","tinymce/plugins/nonbreaking/plugin.js":"tinymce/plugins/nonbreaking/plugin-4f6785c9462fa2f91c09f28af66a132a05e80883d6ed18972e2afdeb5f05310a.js","tinymce/plugins/noneditable/plugin.js":"tinymce/plugins/noneditable/plugin-5eadae63f3180758ee175a8f7210456f18c06a8c584d6f494f327015c9cb2f6f.js","tinymce/plugins/pagebreak/plugin.js":"tinymce/plugins/pagebreak/plugin-2d87f90ecdc9061deb429b906d4f56f50534310700f06f04021e3b7ca86a5ab6.js","tinymce/plugins/paste/plugin.js":"tinymce/plugins/paste/plugin-bb72ecd04e765f7420b9d8b1f3ce4c08b0a1a706d981f6790a0e3f6b921aee48.js","tinymce/plugins/preview/plugin.js":"tinymce/plugins/preview/plugin-ba4156a0908b3dcea426fac6e92b77e318f06347e435e8067807fb94ba4bf8e1.js","tinymce/plugins/print/plugin.js":"tinymce/plugins/print/plugin-a5f32f46b8f4d88f004fb2794760c28ad820785da94878458b9579fcbede28d4.js","tinymce/plugins/quickbars/plugin.js":"tinymce/plugins/quickbars/plugin-4b1679721b31f39711fb9a9ced7eafa4835d480f09c306941cc6b496a7a29ded.js","tinymce/plugins/save/plugin.js":"tinymce/plugins/save/plugin-2d89fe696a668dbf704512f34efb5d1b52043ecd0caf9f2cc45201e0119d4717.js","tinymce/plugins/searchreplace/plugin.js":"tinymce/plugins/searchreplace/plugin-0e483238f599a65128f08a8b604770b3ce90c497336a0f903f20f72e930bf4b0.js","tinymce/plugins/spellchecker/plugin.js":"tinymce/plugins/spellchecker/plugin-d3c9ea5666447a3c6a69aed0962193b93ef78e96d0d1804441fa4d8a9fb50139.js","tinymce/plugins/tabfocus/plugin.js":"tinymce/plugins/tabfocus/plugin-bd4a092faf82ce40e57f38518c52af362d20ad972f3a38d4b1ee16e11dd44c9a.js","tinymce/plugins/table/plugin.js":"tinymce/plugins/table/plugin-2ea548314081a1cb752795c39348a5ba0591174474895bebafd7c23e11b514b3.js","tinymce/plugins/template/plugin.js":"tinymce/plugins/template/plugin-6766aba21cbf0e5af59b41b572a97b26538f362f5b6dcdc1fc06be3a573ee0cc.js","tinymce/plugins/textcolor/plugin.js":"tinymce/plugins/textcolor/plugin-3ddf1445eb3e7b65fe3814d0ed94ee42b790a1442f39214bfedc39fb9cd71fa3.js","tinymce/plugins/textpattern/plugin.js":"tinymce/plugins/textpattern/plugin-b7467b960b1dd5d13cd65c8ac9d149ff945a7ae589a9ced046d680b5d0c30755.js","tinymce/plugins/toc/plugin.js":"tinymce/plugins/toc/plugin-b0f62b316120140d532b4176a2fcb4ecc1ee539ee575dfdf3ec4d52654feecbb.js","tinymce/plugins/visualblocks/plugin.js":"tinymce/plugins/visualblocks/plugin-3d4d1ecfab518dbd1ca471a91aec162c1e4ec8392c1c4ec6a33e32f64842a703.js","tinymce/plugins/visualchars/plugin.js":"tinymce/plugins/visualchars/plugin-75f145c166b94615af38608585d0a8f6aa3971fdead38f4b395d966c763c1c00.js","tinymce/plugins/wordcount/plugin.js":"tinymce/plugins/wordcount/plugin-20f61579df72da1abfd62b395a584095c4ff757552fdcce494bc9f937e8b73ed.js","tinymce/skins/content/dark/content.css":"tinymce/skins/content/dark/content-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css","tinymce/skins/content/dark/content.min.css":"tinymce/skins/content/dark/content.min-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css","tinymce/skins/content/default/content.css":"tinymce/skins/content/default/content-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css","tinymce/skins/content/default/content.min.css":"tinymce/skins/content/default/content.min-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css","tinymce/skins/content/document/content.css":"tinymce/skins/content/document/content-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css","tinymce/skins/content/document/content.min.css":"tinymce/skins/content/document/content.min-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css","tinymce/skins/content/writer/content.css":"tinymce/skins/content/writer/content-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css","tinymce/skins/content/writer/content.min.css":"tinymce/skins/content/writer/content.min-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css","tinymce/skins/ui/oxide-dark/content.css":"tinymce/skins/ui/oxide-dark/content-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css","tinymce/skins/ui/oxide-dark/content.inline.css":"tinymce/skins/ui/oxide-dark/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css","tinymce/skins/ui/oxide-dark/content.inline.min.css":"tinymce/skins/ui/oxide-dark/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css","tinymce/skins/ui/oxide-dark/content.min.css":"tinymce/skins/ui/oxide-dark/content.min-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css","tinymce/skins/ui/oxide-dark/content.mobile.css":"tinymce/skins/ui/oxide-dark/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide-dark/content.mobile.min.css":"tinymce/skins/ui/oxide-dark/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff","tinymce/skins/ui/oxide-dark/skin.css":"tinymce/skins/ui/oxide-dark/skin-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css","tinymce/skins/ui/oxide-dark/skin.min.css":"tinymce/skins/ui/oxide-dark/skin.min-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css","tinymce/skins/ui/oxide-dark/skin.mobile.css":"tinymce/skins/ui/oxide-dark/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide-dark/skin.mobile.min.css":"tinymce/skins/ui/oxide-dark/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide/content.css":"tinymce/skins/ui/oxide/content-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css","tinymce/skins/ui/oxide/content.inline.css":"tinymce/skins/ui/oxide/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css","tinymce/skins/ui/oxide/content.inline.min.css":"tinymce/skins/ui/oxide/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css","tinymce/skins/ui/oxide/content.min.css":"tinymce/skins/ui/oxide/content.min-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css","tinymce/skins/ui/oxide/content.mobile.css":"tinymce/skins/ui/oxide/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide/content.mobile.min.css":"tinymce/skins/ui/oxide/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff":"tinymce/skins/ui/oxide/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff","tinymce/skins/ui/oxide/skin.css":"tinymce/skins/ui/oxide/skin-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css","tinymce/skins/ui/oxide/skin.min.css":"tinymce/skins/ui/oxide/skin.min-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css","tinymce/skins/ui/oxide/skin.mobile.css":"tinymce/skins/ui/oxide/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide/skin.mobile.min.css":"tinymce/skins/ui/oxide/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/themes/mobile/theme.js":"tinymce/themes/mobile/theme-2d06d5421ce0b9c54b77566e62d9a84555ee4d3bc4477688f62513a57049679e.js","tinymce/themes/silver/theme.js":"tinymce/themes/silver/theme-102eed9f74a53ac362b232e2f646a80c7d72b6d06f6b84b778e77298bd8f8fc5.js","tinymce/tinymce.js":"tinymce/tinymce-c34044666f0c63798d74e00fbf9f187156da82a87e1f59db5778d92f0e2eeecf.js","tinymce-rails.manifest.js":"tinymce-rails.manifest-e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04.js","flags/4x3/es-ca.svg":"flags/4x3/es-ca-e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db.svg","flags/1x1/es-ca.svg":"flags/1x1/es-ca-620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd.svg","flags/4x3/xk.svg":"flags/4x3/xk-201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1.svg","flags/1x1/xk.svg":"flags/1x1/xk-a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028.svg"}} \ No newline at end of file +{"files":{"active_admin-436f1e127c3c5bfcfd081ea8dc17dc0f907b763b9d8967182739d9b3257848e9.js":{"logical_path":"active_admin.js","mtime":"2020-01-16T20:20:11+01:00","size":961932,"digest":"436f1e127c3c5bfcfd081ea8dc17dc0f907b763b9d8967182739d9b3257848e9","integrity":"sha256-Q28eEnw8W/z9CB6o3BfcD5B7djudiWcYJznZsyV4SOk="},"tinymce-e887823f61aacbb4b0879737509c9fc001e27976aed4315081c6bdcfed3ea84f.js":{"logical_path":"tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":1071380,"digest":"e887823f61aacbb4b0879737509c9fc001e27976aed4315081c6bdcfed3ea84f","integrity":"sha256-6IeCP2Gqy7Swh5c3UJyfwAHieXau1DFQgca9z+0+qE8="},"modernizr-34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0.js":{"logical_path":"modernizr.js","mtime":"2020-04-05T17:14:06+02:00","size":51364,"digest":"34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0","integrity":"sha256-NPlYtWX4tiXQOpIWr+aeaBnU0LtetCPkjFMqqyfVM7A="},"font-awesome/fa-brands-400-e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16.eot":{"logical_path":"font-awesome/fa-brands-400.eot","mtime":"2020-04-05T17:14:06+02:00","size":131930,"digest":"e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16","integrity":"sha256-6f35R8OfBvG15jxY7qLy90hQQhtOMgR9rLnHt13UKhY="},"font-awesome/fa-regular-400-c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2.eot":{"logical_path":"font-awesome/fa-regular-400.eot","mtime":"2020-04-05T17:14:06+02:00","size":34390,"digest":"c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2","integrity":"sha256-wUZaa4dDYi91mwim1TNuV+tuq9uhtjk/um0w1FOC89I="},"font-awesome/fa-solid-900-f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe.eot":{"logical_path":"font-awesome/fa-solid-900.eot","mtime":"2020-04-05T17:14:06+02:00","size":194066,"digest":"f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe","integrity":"sha256-8p7vZus60ONXTY7bS55yoEaSoLK5LZnrfEuXdhHd1P4="},"font-awesome/fa-brands-400-36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9.svg":{"logical_path":"font-awesome/fa-brands-400.svg","mtime":"2020-04-05T17:14:06+02:00","size":708706,"digest":"36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9","integrity":"sha256-NrUfvmuHWHVBuRc815wWxrNZrSKhcrkiIE+aqHQRrNk="},"font-awesome/fa-regular-400-7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4.svg":{"logical_path":"font-awesome/fa-regular-400.svg","mtime":"2020-04-05T17:14:06+02:00","size":144322,"digest":"7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4","integrity":"sha256-erijn0xIt0O9asu/XqTHVH78tirZZum+8+QZlq/ET9Q="},"font-awesome/fa-solid-900-eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59.svg":{"logical_path":"font-awesome/fa-solid-900.svg","mtime":"2020-04-05T17:14:06+02:00","size":849145,"digest":"eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59","integrity":"sha256-6vDz0Mra0X7tEEXPaMMNt6v/tMjvTunLX0Am/e/Jmlk="},"font-awesome/fa-brands-400-6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71.ttf":{"logical_path":"font-awesome/fa-brands-400.ttf","mtime":"2020-04-05T17:14:06+02:00","size":131624,"digest":"6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71","integrity":"sha256-azR/8B5YiippCczX9/WGaydIQ5FUfp30UaubTCeSDHE="},"font-awesome/fa-regular-400-6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade.ttf":{"logical_path":"font-awesome/fa-regular-400.ttf","mtime":"2020-04-05T17:14:06+02:00","size":34092,"digest":"6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade","integrity":"sha256-ajNdHOFS8rWwK/gsxEWwLRq8zX9AiocRNCS1+Py7+t4="},"font-awesome/fa-solid-900-0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea.ttf":{"logical_path":"font-awesome/fa-solid-900.ttf","mtime":"2020-04-05T17:14:06+02:00","size":193780,"digest":"0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea","integrity":"sha256-A4mwYdsI1AZwTJu4gZ4Jw1WKyVYoez6dqOZkWnnVKOo="},"font-awesome/fa-brands-400-1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900.woff":{"logical_path":"font-awesome/fa-brands-400.woff","mtime":"2020-04-05T17:14:06+02:00","size":89100,"digest":"1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900","integrity":"sha256-GvgW25pob6p2v72ned+VnmIT3nFKlLh6pzdKFR9vSQA="},"font-awesome/fa-regular-400-864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64.woff":{"logical_path":"font-awesome/fa-regular-400.woff","mtime":"2020-04-05T17:14:06+02:00","size":16800,"digest":"864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64","integrity":"sha256-hkyPcCpeYxmLt27wJAtZnMBl1JBMKvxdpsiim78NbGQ="},"font-awesome/fa-solid-900-3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db.woff":{"logical_path":"font-awesome/fa-solid-900.woff","mtime":"2020-04-05T17:14:06+02:00","size":98996,"digest":"3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db","integrity":"sha256-O2DHfgyBwcnNya25at5tusfvK5QCoxYYWFXecSLlF9s="},"font-awesome/fa-brands-400-8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b.woff2":{"logical_path":"font-awesome/fa-brands-400.woff2","mtime":"2020-04-05T17:14:06+02:00","size":75936,"digest":"8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b","integrity":"sha256-jkVgwWx5cO+kdoBFCyzyOdSkgsBW0wis6hK7kCKQbIs="},"font-awesome/fa-regular-400-86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6.woff2":{"logical_path":"font-awesome/fa-regular-400.woff2","mtime":"2020-04-05T17:14:06+02:00","size":13576,"digest":"86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6","integrity":"sha256-huSWtTaya6YM22jfndkUOxmmO2XjDjc7AyGDOqsSldY="},"font-awesome/fa-solid-900-787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4.woff2":{"logical_path":"font-awesome/fa-solid-900.woff2","mtime":"2020-04-05T17:14:06+02:00","size":76084,"digest":"787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4","integrity":"sha256-eH12rW3qtnzPi6wbWEJgIF4RT1CPxVQrYS4/ddSaNOQ="},"active_admin/print-9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b.css":{"logical_path":"active_admin/print.css","mtime":"2020-04-05T17:14:06+02:00","size":7086,"digest":"9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b","integrity":"sha256-nKQQjmKLz8bkTEeYV8odt0h1/MnHlm0HD+gL57tQyYs="},"active_admin-a66a98d30794a1e442949420b34b0ad3e6806a3a365d75e5c729b21980a37fb7.css":{"logical_path":"active_admin.css","mtime":"2019-12-25T17:18:50+01:00","size":107541,"digest":"a66a98d30794a1e442949420b34b0ad3e6806a3a365d75e5c729b21980a37fb7","integrity":"sha256-pmqY0weUoeRClJQgs0sK0+aAajo2XXXlxymyGYCjf7c="},"manifest-39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f.js":{"logical_path":"manifest.js","mtime":"2020-04-05T17:14:06+02:00","size":6,"digest":"39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f","integrity":"sha256-OWJ9xS+xtIKWVMNV130wZwFHekiYiMoL4yNTUBAuhY8="},"agendadescommuns-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png":{"logical_path":"agendadescommuns.png","mtime":"2020-04-05T17:14:06+02:00","size":2760,"digest":"0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33","integrity":"sha256-ABe+9T9iYcs7+VLUt4DGQwc2lxSy4eLU659p39mGqzM="},"alert-762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906.png":{"logical_path":"alert.png","mtime":"2020-04-05T17:14:06+02:00","size":47876,"digest":"762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906","integrity":"sha256-dirOlHkygkOkQGE0a2TE1rmX6WPGjfxr3dnk0kEZKQY="},"baby_gnu_adl-463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc.png":{"logical_path":"baby_gnu_adl.png","mtime":"2020-04-05T17:14:06+02:00","size":7411,"digest":"463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc","integrity":"sha256-RjqBggqi1P/Y5yENvOGhn/ysZ+82KqewkigMb5XJA/w="},"baby_gnu_adl-97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e.svg":{"logical_path":"baby_gnu_adl.svg","mtime":"2020-04-05T17:14:06+02:00","size":109635,"digest":"97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e","integrity":"sha256-lyUQBdMiXPHVi4xJfWt5BdvJVgzIrNUBGPzOYNCiZ54="},"communs-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png":{"logical_path":"communs.png","mtime":"2020-04-05T17:14:06+02:00","size":2760,"digest":"0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33","integrity":"sha256-ABe+9T9iYcs7+VLUt4DGQwc2lxSy4eLU659p39mGqzM="},"lef-small-93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e.png":{"logical_path":"lef-small.png","mtime":"2020-04-05T17:14:06+02:00","size":1059,"digest":"93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e","integrity":"sha256-kyhdUxr0Y/h3lR1j/oRKbpYAt4LCyB94cjtzAHL6lC4="},"lef-7e9152b909c78144ff44ca2254c06709333bef0b8d4985deb1361aba5c63c86d.png":{"logical_path":"lef.png","mtime":"2020-01-16T20:20:11+01:00","size":15783,"digest":"7e9152b909c78144ff44ca2254c06709333bef0b8d4985deb1361aba5c63c86d","integrity":"sha256-fpFSuQnHgUT/RMoiVMBnCTM77wuNSYXesTYaulxjyG0="},"linux-presentation-day-863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1.png":{"logical_path":"linux-presentation-day.png","mtime":"2020-04-05T17:14:06+02:00","size":9358,"digest":"863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1","integrity":"sha256-hjswVikkUF3SGEEiCGH4NkPTEOC5Q6DmqQVGLd+shvE="},"osm_logo-0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3.svg":{"logical_path":"osm_logo.svg","mtime":"2020-04-05T17:14:06+02:00","size":89730,"digest":"0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3","integrity":"sha256-DpGorNCpLBvxQgQyIyLlfGXCp+MY/saQclL+2Sm31tM="},"priorite-logiciel-libre-je-soutiens-april_2_m-6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc.png":{"logical_path":"priorite-logiciel-libre-je-soutiens-april_2_m.png","mtime":"2020-04-05T17:14:06+02:00","size":16952,"digest":"6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc","integrity":"sha256-ZELkVOlu1FzB68QGc6bFC9KGucKOpqi1hXLpT31kWfw="},"regions/CA-QC-70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174.png":{"logical_path":"regions/CA-QC.png","mtime":"2020-04-05T17:14:06+02:00","size":469,"digest":"70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174","integrity":"sha256-cGmeam4lxpBAo/FUiwr9gpxJA8zKJ2C2wQ9JzIfV0XQ="},"team-65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa.png":{"logical_path":"team.png","mtime":"2020-04-05T17:14:06+02:00","size":3586,"digest":"65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa","integrity":"sha256-ZchgIc+KEVRJNmQJSur8vj5aoT3GdbuO80siBIHbmPo="},"application-6b11136e0676d3ceeafb180819ad6aa9b3241e58a605d1d1d76883366d7c2111.js":{"logical_path":"application.js","mtime":"2019-12-22T12:30:30+01:00","size":2001537,"digest":"6b11136e0676d3ceeafb180819ad6aa9b3241e58a605d1d1d76883366d7c2111","integrity":"sha256-axETbgZ2087q+xgIGa1qqbMkHlimBdHR12iDNm18IRE="},"application-2787d6ed87f3f83fc6325ce89dc84f7e80e3148c1224e41f9cc9e51509747d00.css":{"logical_path":"application.css","mtime":"2019-12-22T12:30:30+01:00","size":232252,"digest":"2787d6ed87f3f83fc6325ce89dc84f7e80e3148c1224e41f9cc9e51509747d00","integrity":"sha256-J4fW7Yfz+D/GMlzonchPfoDjFIwSJOQfnMnlFQl0fQA="},"flags/4x3/ad-f67c4e5a3f709ead53c04d9ff35614e6c67517c3d3289170f7a317390f661497.svg":{"logical_path":"flags/4x3/ad.svg","mtime":"2020-02-08T21:52:35+01:00","size":33972,"digest":"f67c4e5a3f709ead53c04d9ff35614e6c67517c3d3289170f7a317390f661497","integrity":"sha256-9nxOWj9wnq1TwE2f81YU5sZ1F8PTKJFw96MXOQ9mFJc="},"flags/1x1/ad-a315836ec2c9dcc11ef9bfd8b18aa7ccfc2d31435cbf46a2c31930836076e09c.svg":{"logical_path":"flags/1x1/ad.svg","mtime":"2020-02-08T21:52:35+01:00","size":32745,"digest":"a315836ec2c9dcc11ef9bfd8b18aa7ccfc2d31435cbf46a2c31930836076e09c","integrity":"sha256-oxWDbsLJ3MEe+b/YsYqnzPwtMUNcv0aiwxkwg2B24Jw="},"flags/4x3/ae-7a3b3dc0f50b5310014cfbcc8200a5f1ce568127bf43452e40e8158e0cff2d2e.svg":{"logical_path":"flags/4x3/ae.svg","mtime":"2020-02-08T21:52:35+01:00","size":257,"digest":"7a3b3dc0f50b5310014cfbcc8200a5f1ce568127bf43452e40e8158e0cff2d2e","integrity":"sha256-ejs9wPULUxABTPvMggCl8c5WgSe/Q0UuQOgVjgz/LS4="},"flags/1x1/ae-bcdd9a4da09598785f3e31db4ff431e22687b2ead18209a3e615600655068cd5.svg":{"logical_path":"flags/1x1/ae.svg","mtime":"2020-02-08T21:52:35+01:00","size":265,"digest":"bcdd9a4da09598785f3e31db4ff431e22687b2ead18209a3e615600655068cd5","integrity":"sha256-vN2aTaCVmHhfPjHbT/Qx4iaHsurRggmj5hVgBlUGjNU="},"flags/4x3/af-01601b521fa86582e32c39eed8c88480afec1f801b6de929b52ed7e49da47260.svg":{"logical_path":"flags/4x3/af.svg","mtime":"2020-02-08T21:52:35+01:00","size":21279,"digest":"01601b521fa86582e32c39eed8c88480afec1f801b6de929b52ed7e49da47260","integrity":"sha256-AWAbUh+oZYLjLDnu2MiEgK/sH4AbbekptS7X5J2kcmA="},"flags/1x1/af-6332cf754a5e2866db631923e1f7cfc52a0a554d32b97bcf19f8263819e4ca7d.svg":{"logical_path":"flags/1x1/af.svg","mtime":"2020-02-08T21:52:35+01:00","size":21145,"digest":"6332cf754a5e2866db631923e1f7cfc52a0a554d32b97bcf19f8263819e4ca7d","integrity":"sha256-YzLPdUpeKGbbYxkj4ffPxSoKVU0yuXvPGfgmOBnkyn0="},"flags/4x3/ag-cb6952d821bac7855231c2cb4d1c44f7c730f6b3621518ab20f30d2b9afe604b.svg":{"logical_path":"flags/4x3/ag.svg","mtime":"2020-02-08T21:52:35+01:00","size":748,"digest":"cb6952d821bac7855231c2cb4d1c44f7c730f6b3621518ab20f30d2b9afe604b","integrity":"sha256-y2lS2CG6x4VSMcLLTRxE98cw9rNiFRirIPMNK5r+YEs="},"flags/1x1/ag-14f7d9978487aaf4446b55167e85a711c48a13ff07edac175c172969a38650c4.svg":{"logical_path":"flags/1x1/ag.svg","mtime":"2020-02-08T21:52:35+01:00","size":764,"digest":"14f7d9978487aaf4446b55167e85a711c48a13ff07edac175c172969a38650c4","integrity":"sha256-FPfZl4SHqvREa1UWfoWnEcSKE/8H7awXXBcpaaOGUMQ="},"flags/4x3/ai-f07c6cc0646fdfa441b9a506e1d46e8dce0d97b37222292e9c6733c995dc89bc.svg":{"logical_path":"flags/4x3/ai.svg","mtime":"2020-02-08T21:52:35+01:00","size":42208,"digest":"f07c6cc0646fdfa441b9a506e1d46e8dce0d97b37222292e9c6733c995dc89bc","integrity":"sha256-8HxswGRv36RBuaUG4dRujc4Nl7NyIikunGczyZXcibw="},"flags/1x1/ai-95099e544de29bcea3ba735de535823f2e19aeb4043e82dbc1d9862f9262b810.svg":{"logical_path":"flags/1x1/ai.svg","mtime":"2020-02-08T21:52:35+01:00","size":47975,"digest":"95099e544de29bcea3ba735de535823f2e19aeb4043e82dbc1d9862f9262b810","integrity":"sha256-lQmeVE3im86junNd5TWCPy4ZrrQEPoLbwdmGL5JiuBA="},"flags/4x3/al-9b997f2720de861e1b0ccec8ddf42a2890795ebf50817f9223e1ceba712c9b03.svg":{"logical_path":"flags/4x3/al.svg","mtime":"2020-02-08T21:52:35+01:00","size":3221,"digest":"9b997f2720de861e1b0ccec8ddf42a2890795ebf50817f9223e1ceba712c9b03","integrity":"sha256-m5l/JyDehh4bDM7I3fQqKJB5Xr9QgX+SI+HOunEsmwM="},"flags/1x1/al-94852d2711fc23abf3423534b9edb950a0c6aabf1d2d98bf2643f3c7dadfac09.svg":{"logical_path":"flags/1x1/al.svg","mtime":"2020-02-08T21:52:35+01:00","size":3228,"digest":"94852d2711fc23abf3423534b9edb950a0c6aabf1d2d98bf2643f3c7dadfac09","integrity":"sha256-lIUtJxH8I6vzQjU0ue25UKDGqr8dLZi/JkPzx9rfrAk="},"flags/4x3/am-85a199ec21d1af74a256335ead0c1e38592bb603d8da81feda4678945e9e00e6.svg":{"logical_path":"flags/4x3/am.svg","mtime":"2020-02-08T21:52:35+01:00","size":226,"digest":"85a199ec21d1af74a256335ead0c1e38592bb603d8da81feda4678945e9e00e6","integrity":"sha256-haGZ7CHRr3SiVjNerQweOFkrtgPY2oH+2kZ4lF6eAOY="},"flags/1x1/am-869391b014ac299924d30777d72a4aba430752177290a90a1fc3255a7ad79ee7.svg":{"logical_path":"flags/1x1/am.svg","mtime":"2020-02-08T21:52:35+01:00","size":234,"digest":"869391b014ac299924d30777d72a4aba430752177290a90a1fc3255a7ad79ee7","integrity":"sha256-hpORsBSsKZkk0wd31ypKukMHUhdykKkKH8MlWnrXnuc="},"flags/4x3/ao-29224a61bf632826d530cda55d87c2615884bd2c2c3a322036ed468e34d85c75.svg":{"logical_path":"flags/4x3/ao.svg","mtime":"2020-02-08T21:52:35+01:00","size":1608,"digest":"29224a61bf632826d530cda55d87c2615884bd2c2c3a322036ed468e34d85c75","integrity":"sha256-KSJKYb9jKCbVMM2lXYfCYViEvSwsOjIgNu1GjjTYXHU="},"flags/1x1/ao-048eacbc862fe1868cf0ec73457b70a8b49a598c80dea049856f0e1fd6fec83e.svg":{"logical_path":"flags/1x1/ao.svg","mtime":"2020-02-08T21:52:35+01:00","size":1608,"digest":"048eacbc862fe1868cf0ec73457b70a8b49a598c80dea049856f0e1fd6fec83e","integrity":"sha256-BI6svIYv4YaM8OxzRXtwqLSaWYyA3qBJhW8OH9b+yD4="},"flags/4x3/aq-b401a776d2f1a7944170114f0aeeceab5e1d962df3de7ed1eff47d96824b73fd.svg":{"logical_path":"flags/4x3/aq.svg","mtime":"2020-02-08T21:52:35+01:00","size":2974,"digest":"b401a776d2f1a7944170114f0aeeceab5e1d962df3de7ed1eff47d96824b73fd","integrity":"sha256-tAGndtLxp5RBcBFPCu7Oq14dli3z3n7R7/R9loJLc/0="},"flags/1x1/aq-a8d7ce9bfb860b6e2b58608b50bf2cafc5220c77f6d049ab7770891f64334531.svg":{"logical_path":"flags/1x1/aq.svg","mtime":"2020-02-08T21:52:35+01:00","size":3183,"digest":"a8d7ce9bfb860b6e2b58608b50bf2cafc5220c77f6d049ab7770891f64334531","integrity":"sha256-qNfOm/uGC24rWGCLUL8sr8UiDHf20Emrd3CJH2QzRTE="},"flags/4x3/ar-bf73475bb707100874dec538ce4b7e1b5afc4ed67dc50a8a800ee519e51cc826.svg":{"logical_path":"flags/4x3/ar.svg","mtime":"2020-02-08T21:52:35+01:00","size":3430,"digest":"bf73475bb707100874dec538ce4b7e1b5afc4ed67dc50a8a800ee519e51cc826","integrity":"sha256-v3NHW7cHEAh03sU4zkt+G1r8TtZ9xQqKgA7lGeUcyCY="},"flags/1x1/ar-fc6582cc6d3ef0782805d8497ee77ab2d836c53422e91007e48f81a4a9fa2e60.svg":{"logical_path":"flags/1x1/ar.svg","mtime":"2020-02-08T21:52:35+01:00","size":3503,"digest":"fc6582cc6d3ef0782805d8497ee77ab2d836c53422e91007e48f81a4a9fa2e60","integrity":"sha256-/GWCzG0+8HgoBdhJfud6stg2xTQi6RAH5I+BpKn6LmA="},"flags/4x3/as-79d395190345206ea03475b67b44638e1111562411504b60646483c9c0b0f7d1.svg":{"logical_path":"flags/4x3/as.svg","mtime":"2020-02-08T21:52:35+01:00","size":8098,"digest":"79d395190345206ea03475b67b44638e1111562411504b60646483c9c0b0f7d1","integrity":"sha256-edOVGQNFIG6gNHW2e0RjjhERViQRUEtgZGSDycCw99E="},"flags/1x1/as-04f0db77c5d8610a55c69508b226a7c338924f8cf7d6577d5d6590e85ee57183.svg":{"logical_path":"flags/1x1/as.svg","mtime":"2020-02-08T21:52:35+01:00","size":7845,"digest":"04f0db77c5d8610a55c69508b226a7c338924f8cf7d6577d5d6590e85ee57183","integrity":"sha256-BPDbd8XYYQpVxpUIsianwziST4z31ld9XWWQ6F7lcYM="},"flags/4x3/at-3d197de8f1f0096a2b0d440b6fc7d80821585a6637e646c05487a87718bf6b5f.svg":{"logical_path":"flags/4x3/at.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"3d197de8f1f0096a2b0d440b6fc7d80821585a6637e646c05487a87718bf6b5f","integrity":"sha256-PRl96PHwCWorDUQLb8fYCCFYWmY35kbAVIeodxi/a18="},"flags/1x1/at-ec4db9aeac793827ac7c8e40c072a76f7675010058cc8c8dfd3a86bb5acfa6b8.svg":{"logical_path":"flags/1x1/at.svg","mtime":"2020-02-08T21:52:35+01:00","size":245,"digest":"ec4db9aeac793827ac7c8e40c072a76f7675010058cc8c8dfd3a86bb5acfa6b8","integrity":"sha256-7E25rqx5OCesfI5AwHKnb3Z1AQBYzIyN/TqGu1rPprg="},"flags/4x3/au-126fa2500a315287a5f847f4d958bb929f11da9b39f35912cc440c0fcffb8b12.svg":{"logical_path":"flags/4x3/au.svg","mtime":"2020-02-08T21:52:35+01:00","size":1335,"digest":"126fa2500a315287a5f847f4d958bb929f11da9b39f35912cc440c0fcffb8b12","integrity":"sha256-Em+iUAoxUoel+Ef02Vi7kp8R2ps581kSzEQMD8/7ixI="},"flags/1x1/au-bf990dcc957c9f74eb908e8ffa733f1731277bf6ec8b7301a6ea1ed92b59cc4b.svg":{"logical_path":"flags/1x1/au.svg","mtime":"2020-02-08T21:52:35+01:00","size":1320,"digest":"bf990dcc957c9f74eb908e8ffa733f1731277bf6ec8b7301a6ea1ed92b59cc4b","integrity":"sha256-v5kNzJV8n3TrkI6P+nM/FzEne/bsi3MBpuoe2StZzEs="},"flags/4x3/aw-4524643452423e95f3b0dbe6216b059a9e52126b34c73ae4b3c17b682f893aa6.svg":{"logical_path":"flags/4x3/aw.svg","mtime":"2020-02-08T21:52:35+01:00","size":9948,"digest":"4524643452423e95f3b0dbe6216b059a9e52126b34c73ae4b3c17b682f893aa6","integrity":"sha256-RSRkNFJCPpXzsNvmIWsFmp5SEms0xzrks8F7aC+JOqY="},"flags/1x1/aw-f7002bceef55486a442bf6bf433be0c60d0b15b2aa548b81c524c67ccf0565a8.svg":{"logical_path":"flags/1x1/aw.svg","mtime":"2020-02-08T21:52:35+01:00","size":12088,"digest":"f7002bceef55486a442bf6bf433be0c60d0b15b2aa548b81c524c67ccf0565a8","integrity":"sha256-9wArzu9VSGpEK/a/Qzvgxg0LFbKqVIuBxSTGfM8FZag="},"flags/4x3/ax-c297e0eb654ca62e58f5eb3abb70df9f245e4919490f29bd0f1d49c4fe052d90.svg":{"logical_path":"flags/4x3/ax.svg","mtime":"2020-02-08T21:52:35+01:00","size":556,"digest":"c297e0eb654ca62e58f5eb3abb70df9f245e4919490f29bd0f1d49c4fe052d90","integrity":"sha256-wpfg62VMpi5Y9es6u3DfnyReSRlJDym9Dx1JxP4FLZA="},"flags/1x1/ax-a1245689ecbf321c0a9e556bba17f3c9f2aeb8b1f63d14fcb591d76a87f12880.svg":{"logical_path":"flags/1x1/ax.svg","mtime":"2020-02-08T21:52:35+01:00","size":544,"digest":"a1245689ecbf321c0a9e556bba17f3c9f2aeb8b1f63d14fcb591d76a87f12880","integrity":"sha256-oSRWiey/MhwKnlVruhfzyfKuuLH2PRT8tZHXaofxKIA="},"flags/4x3/az-132e68d5e0386d3b9fa05b4288a0fd66f1414e2bc7af6b9d437b6935a7dfa00c.svg":{"logical_path":"flags/4x3/az.svg","mtime":"2020-02-08T21:52:35+01:00","size":515,"digest":"132e68d5e0386d3b9fa05b4288a0fd66f1414e2bc7af6b9d437b6935a7dfa00c","integrity":"sha256-Ey5o1eA4bTufoFtCiKD9ZvFBTivHr2udQ3tpNaffoAw="},"flags/1x1/az-3990c0526b933bd650285d821f2b93e432a73ba709869549b8ef75b051d3bd2d.svg":{"logical_path":"flags/1x1/az.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"3990c0526b933bd650285d821f2b93e432a73ba709869549b8ef75b051d3bd2d","integrity":"sha256-OZDAUmuTO9ZQKF2CHyuT5DKnO6cJhpVJuO91sFHTvS0="},"flags/4x3/ba-89dd0c1600d94741de7d667a487310193a0c48c4cf1a5159c3bf9dd37d65d2b5.svg":{"logical_path":"flags/4x3/ba.svg","mtime":"2020-02-08T21:52:35+01:00","size":1306,"digest":"89dd0c1600d94741de7d667a487310193a0c48c4cf1a5159c3bf9dd37d65d2b5","integrity":"sha256-id0MFgDZR0HefWZ6SHMQGToMSMTPGlFZw7+d031l0rU="},"flags/1x1/ba-2dbe90eb12b937f4a9ae8db95760930a3e318f4ce5829ac05e292ead698bae5a.svg":{"logical_path":"flags/1x1/ba.svg","mtime":"2020-02-08T21:52:35+01:00","size":1247,"digest":"2dbe90eb12b937f4a9ae8db95760930a3e318f4ce5829ac05e292ead698bae5a","integrity":"sha256-Lb6Q6xK5N/Spro25V2CTCj4xj0zlgprAXikurWmLrlo="},"flags/4x3/bb-16f8249ff958bfbc18fb1f23a5282000347bffdb5769ac620966185b1dcb57f6.svg":{"logical_path":"flags/4x3/bb.svg","mtime":"2020-02-08T21:52:35+01:00","size":613,"digest":"16f8249ff958bfbc18fb1f23a5282000347bffdb5769ac620966185b1dcb57f6","integrity":"sha256-Fvgkn/lYv7wY+x8jpSggADR7/9tXaaxiCWYYWx3LV/Y="},"flags/1x1/bb-fae92d8426196ae24ffa561aca72613fae651a5e9c0bcda63ecc877add05b060.svg":{"logical_path":"flags/1x1/bb.svg","mtime":"2020-02-08T21:52:35+01:00","size":616,"digest":"fae92d8426196ae24ffa561aca72613fae651a5e9c0bcda63ecc877add05b060","integrity":"sha256-+ukthCYZauJP+lYaynJhP65lGl6cC82mPsyHet0FsGA="},"flags/4x3/bd-8dac0547e73ee25a04148a3f0fd026a90e56c23b7e92921565d4263050ba77a6.svg":{"logical_path":"flags/4x3/bd.svg","mtime":"2020-02-08T21:52:35+01:00","size":193,"digest":"8dac0547e73ee25a04148a3f0fd026a90e56c23b7e92921565d4263050ba77a6","integrity":"sha256-jawFR+c+4loEFIo/D9AmqQ5Wwjt+kpIVZdQmMFC6d6Y="},"flags/1x1/bd-ecc3c3e87d4cc59c8350f2b4d7dca8f5cf46bdb26319db0ee80b744482af50c1.svg":{"logical_path":"flags/1x1/bd.svg","mtime":"2020-02-08T21:52:35+01:00","size":195,"digest":"ecc3c3e87d4cc59c8350f2b4d7dca8f5cf46bdb26319db0ee80b744482af50c1","integrity":"sha256-7MPD6H1MxZyDUPK019yo9c9GvbJjGdsO6At0RIKvUME="},"flags/4x3/be-a180ca68521188017bb5367f19e503d9599d6cbecd61bf054e59a57f58e648ae.svg":{"logical_path":"flags/4x3/be.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"a180ca68521188017bb5367f19e503d9599d6cbecd61bf054e59a57f58e648ae","integrity":"sha256-oYDKaFIRiAF7tTZ/GeUD2VmdbL7NYb8FTlmlf1jmSK4="},"flags/1x1/be-c8d4194137bd01955285b329dfdf996490d16c3116a92ce2f322e354b6d7494e.svg":{"logical_path":"flags/1x1/be.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"c8d4194137bd01955285b329dfdf996490d16c3116a92ce2f322e354b6d7494e","integrity":"sha256-yNQZQTe9AZVShbMp39+ZZJDRbDEWqSzi8yLjVLbXSU4="},"flags/4x3/bf-6b214936ef89f19133d4a84e99cdf0cfdb99d6409f2f373f6d18694423013313.svg":{"logical_path":"flags/4x3/bf.svg","mtime":"2020-02-08T21:52:35+01:00","size":360,"digest":"6b214936ef89f19133d4a84e99cdf0cfdb99d6409f2f373f6d18694423013313","integrity":"sha256-ayFJNu+J8ZEz1KhOmc3wz9uZ1kCfLzc/bRhpRCMBMxM="},"flags/1x1/bf-04c7d61aa314adab5a41bd79d77aa780c10136bb6b8f4c62423e61e23e3851ee.svg":{"logical_path":"flags/1x1/bf.svg","mtime":"2020-02-08T21:52:35+01:00","size":386,"digest":"04c7d61aa314adab5a41bd79d77aa780c10136bb6b8f4c62423e61e23e3851ee","integrity":"sha256-BMfWGqMUrataQb1513qngMEBNrtrj0xiQj5h4j44Ue4="},"flags/4x3/bg-dd3985ba746942b0e65bc52a280cc4d28fb24fd2c7d9e22ac9afd2d75ee7bfc4.svg":{"logical_path":"flags/4x3/bg.svg","mtime":"2020-02-08T21:52:35+01:00","size":289,"digest":"dd3985ba746942b0e65bc52a280cc4d28fb24fd2c7d9e22ac9afd2d75ee7bfc4","integrity":"sha256-3TmFunRpQrDmW8UqKAzE0o+yT9LH2eIqya/S117nv8Q="},"flags/1x1/bg-f59294a736d5bdc0f102b58d70dbe45d02bd92df822820bf95336840f75a0746.svg":{"logical_path":"flags/1x1/bg.svg","mtime":"2020-02-08T21:52:35+01:00","size":297,"digest":"f59294a736d5bdc0f102b58d70dbe45d02bd92df822820bf95336840f75a0746","integrity":"sha256-9ZKUpzbVvcDxArWNcNvkXQK9kt+CKCC/lTNoQPdaB0Y="},"flags/4x3/bh-7c82c4a6ba963172c6c1b4423f39a0ebe9c999449cc7dd87018917943db4735c.svg":{"logical_path":"flags/4x3/bh.svg","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"7c82c4a6ba963172c6c1b4423f39a0ebe9c999449cc7dd87018917943db4735c","integrity":"sha256-fILEprqWMXLGwbRCPzmg6+nJmUScx92HAYkXlD20c1w="},"flags/1x1/bh-6893aac3e55c6480e9dac0c023ec2179f6c12a0da82a0bc2717134384c097e88.svg":{"logical_path":"flags/1x1/bh.svg","mtime":"2020-02-08T21:52:35+01:00","size":572,"digest":"6893aac3e55c6480e9dac0c023ec2179f6c12a0da82a0bc2717134384c097e88","integrity":"sha256-aJOqw+VcZIDp2sDAI+whefbBKg2oKgvCcXE0OEwJfog="},"flags/4x3/bi-4fcd0116f7f93c0564c6955806f3c3563d0ea7334ae406f29a897255845c923c.svg":{"logical_path":"flags/4x3/bi.svg","mtime":"2020-02-08T21:52:35+01:00","size":1074,"digest":"4fcd0116f7f93c0564c6955806f3c3563d0ea7334ae406f29a897255845c923c","integrity":"sha256-T80BFvf5PAVkxpVYBvPDVj0OpzNK5AbymolyVYRckjw="},"flags/1x1/bi-91c34eb431b26be67852782a0b93e1d7d577a925454d6c8cea00a0d872d2de8a.svg":{"logical_path":"flags/1x1/bi.svg","mtime":"2020-02-08T21:52:35+01:00","size":1048,"digest":"91c34eb431b26be67852782a0b93e1d7d577a925454d6c8cea00a0d872d2de8a","integrity":"sha256-kcNOtDGya+Z4UngqC5Ph19V3qSVFTWyM6gCg2HLS3oo="},"flags/4x3/bj-63bddb4268f5f8c2ed867041bcf058fb18fcd9d1e0799e01286fca2d5e961c7f.svg":{"logical_path":"flags/4x3/bj.svg","mtime":"2020-02-08T21:52:35+01:00","size":499,"digest":"63bddb4268f5f8c2ed867041bcf058fb18fcd9d1e0799e01286fca2d5e961c7f","integrity":"sha256-Y73bQmj1+MLthnBBvPBY+xj82dHgeZ4BKG/KLV6WHH8="},"flags/1x1/bj-e2606c5a8498c474a6b6708626b88108fcb73840344766566dc56f804279cdfc.svg":{"logical_path":"flags/1x1/bj.svg","mtime":"2020-02-08T21:52:35+01:00","size":502,"digest":"e2606c5a8498c474a6b6708626b88108fcb73840344766566dc56f804279cdfc","integrity":"sha256-4mBsWoSYxHSmtnCGJriBCPy3OEA0R2ZWbcVvgEJ5zfw="},"flags/4x3/bl-824a7265f48789d5e1ad5c5b0042a13a7d2d4357210e5bd8124fca19931e8c74.svg":{"logical_path":"flags/4x3/bl.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"824a7265f48789d5e1ad5c5b0042a13a7d2d4357210e5bd8124fca19931e8c74","integrity":"sha256-gkpyZfSHidXhrVxbAEKhOn0tQ1chDlvYEk/KGZMejHQ="},"flags/1x1/bl-ba6a7881b0ca72ac57aee4d823ae611ab4ad24a938ee9e01a7a4d5ae04cfccf6.svg":{"logical_path":"flags/1x1/bl.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"ba6a7881b0ca72ac57aee4d823ae611ab4ad24a938ee9e01a7a4d5ae04cfccf6","integrity":"sha256-ump4gbDKcqxXruTYI65hGrStJKk47p4Bp6TVrgTPzPY="},"flags/4x3/bm-2e2f09e5a4edf4b18afff581656f50b0b4c37783db29591ff00ca768f7f755bc.svg":{"logical_path":"flags/4x3/bm.svg","mtime":"2020-02-08T21:52:35+01:00","size":22650,"digest":"2e2f09e5a4edf4b18afff581656f50b0b4c37783db29591ff00ca768f7f755bc","integrity":"sha256-Li8J5aTt9LGK//WBZW9QsLTDd4PbKVkf8AynaPf3Vbw="},"flags/1x1/bm-f553f953f8784ea4d67a5197f5d808a67747eb8a1cb56990d6838e690090d2d6.svg":{"logical_path":"flags/1x1/bm.svg","mtime":"2020-02-08T21:52:35+01:00","size":22337,"digest":"f553f953f8784ea4d67a5197f5d808a67747eb8a1cb56990d6838e690090d2d6","integrity":"sha256-9VP5U/h4TqTWelGX9dgIpndH64octWmQ1oOOaQCQ0tY="},"flags/4x3/bn-bcf9967c12eb6397346cb5b960ae92efa41f314f780d09a3d7c81f5dacac4180.svg":{"logical_path":"flags/4x3/bn.svg","mtime":"2020-02-08T21:52:35+01:00","size":14387,"digest":"bcf9967c12eb6397346cb5b960ae92efa41f314f780d09a3d7c81f5dacac4180","integrity":"sha256-vPmWfBLrY5c0bLW5YK6S76QfMU94DQmj18gfXaysQYA="},"flags/1x1/bn-1d1aad3fe9fd33ce922eba33c9ae6047a5646349239c20d1bc7307ec6d19a043.svg":{"logical_path":"flags/1x1/bn.svg","mtime":"2020-02-08T21:52:35+01:00","size":14521,"digest":"1d1aad3fe9fd33ce922eba33c9ae6047a5646349239c20d1bc7307ec6d19a043","integrity":"sha256-HRqtP+n9M86SLrozya5gR6VkY0kjnCDRvHMH7G0ZoEM="},"flags/4x3/bo-fa423f2bb4ab6e8e9dd399ad73781ea8d9cbafd30f1b7ee0bcecfb9e7b75581e.svg":{"logical_path":"flags/4x3/bo.svg","mtime":"2020-02-08T21:52:35+01:00","size":118272,"digest":"fa423f2bb4ab6e8e9dd399ad73781ea8d9cbafd30f1b7ee0bcecfb9e7b75581e","integrity":"sha256-+kI/K7Srbo6d05mtc3geqNnLr9MPG37gvOz7nnt1WB4="},"flags/1x1/bo-f5faa29e40191e0c76070ac1a1d2a1f2b18e9cd358b8a77cefaed8efc49a265e.svg":{"logical_path":"flags/1x1/bo.svg","mtime":"2020-02-08T21:52:35+01:00","size":119850,"digest":"f5faa29e40191e0c76070ac1a1d2a1f2b18e9cd358b8a77cefaed8efc49a265e","integrity":"sha256-9fqinkAZHgx2BwrBodKh8rGOnNNYuKd8767Y78SaJl4="},"flags/4x3/bq-493c92ab19204c3ad319e6caba021df050132b99bd57a8f9b74131b78229c29e.svg":{"logical_path":"flags/4x3/bq.svg","mtime":"2020-02-08T21:52:35+01:00","size":227,"digest":"493c92ab19204c3ad319e6caba021df050132b99bd57a8f9b74131b78229c29e","integrity":"sha256-STySqxkgTDrTGebKugId8FATK5m9V6j5t0Ext4Ipwp4="},"flags/1x1/bq-6e30bbeabc2aa097f657a411984b3c23278a8fcce2fc016b1cd6d2262f672d33.svg":{"logical_path":"flags/1x1/bq.svg","mtime":"2020-02-08T21:52:35+01:00","size":231,"digest":"6e30bbeabc2aa097f657a411984b3c23278a8fcce2fc016b1cd6d2262f672d33","integrity":"sha256-bjC76rwqoJf2V6QRmEs8IyeKj8zi/AFrHNbSJi9nLTM="},"flags/4x3/br-cf3ba80ec2c9fd4d3c845c3a3c43a2b9d81cf90707a2918789e8b1f596833e01.svg":{"logical_path":"flags/4x3/br.svg","mtime":"2020-02-08T21:52:35+01:00","size":8244,"digest":"cf3ba80ec2c9fd4d3c845c3a3c43a2b9d81cf90707a2918789e8b1f596833e01","integrity":"sha256-zzuoDsLJ/U08hFw6PEOiudgc+QcHopGHieix9ZaDPgE="},"flags/1x1/br-7bf4e4b31650ac25f0bc6c86eb87491a7e5a8eac13acccfcbde44346c88728f6.svg":{"logical_path":"flags/1x1/br.svg","mtime":"2020-02-08T21:52:35+01:00","size":7852,"digest":"7bf4e4b31650ac25f0bc6c86eb87491a7e5a8eac13acccfcbde44346c88728f6","integrity":"sha256-e/TksxZQrCXwvGyG64dJGn5ajqwTrMz8veRDRsiHKPY="},"flags/4x3/bs-69f60b5fea96b67dd939e597099994921bb3dc3bcf31b8dee7cc45be2885c836.svg":{"logical_path":"flags/4x3/bs.svg","mtime":"2020-02-08T21:52:35+01:00","size":549,"digest":"69f60b5fea96b67dd939e597099994921bb3dc3bcf31b8dee7cc45be2885c836","integrity":"sha256-afYLX+qWtn3ZOeWXCZmUkhuz3DvPMbje58xFviiFyDY="},"flags/1x1/bs-f5d6acf7ef7a240dc09ac88710fd77fd3494501104392db74d5c540d482f2262.svg":{"logical_path":"flags/1x1/bs.svg","mtime":"2020-02-08T21:52:35+01:00","size":571,"digest":"f5d6acf7ef7a240dc09ac88710fd77fd3494501104392db74d5c540d482f2262","integrity":"sha256-9das9+96JA3AmsiHEP13/TSUUBEEOS23TVxUDUgvImI="},"flags/4x3/bt-6c20b0c00e12d5898be0239a0c66ce775debd0bd536de56a271859a0285a039e.svg":{"logical_path":"flags/4x3/bt.svg","mtime":"2020-02-08T21:52:35+01:00","size":25345,"digest":"6c20b0c00e12d5898be0239a0c66ce775debd0bd536de56a271859a0285a039e","integrity":"sha256-bCCwwA4S1YmL4COaDGbOd13r0L1TbeVqJxhZoChaA54="},"flags/1x1/bt-58de3ca9438811ef1920e2f84c4ba4ce32d01069f4d197ab5d577de6acbe0c85.svg":{"logical_path":"flags/1x1/bt.svg","mtime":"2020-02-08T21:52:35+01:00","size":25172,"digest":"58de3ca9438811ef1920e2f84c4ba4ce32d01069f4d197ab5d577de6acbe0c85","integrity":"sha256-WN48qUOIEe8ZIOL4TEukzjLQEGn00ZerXVd95qy+DIU="},"flags/4x3/bv-ff173190fc339b3cb8b6e8235bc5e373853d7127fd94cbc32ac737e839aeb586.svg":{"logical_path":"flags/4x3/bv.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"ff173190fc339b3cb8b6e8235bc5e373853d7127fd94cbc32ac737e839aeb586","integrity":"sha256-/xcxkPwzmzy4tugjW8Xjc4U9cSf9lMvDKsc36DmutYY="},"flags/1x1/bv-59616ff1a722959064c83927ca2e49c1fce42a9b18e91b9ecbb74f62527aff43.svg":{"logical_path":"flags/1x1/bv.svg","mtime":"2020-02-08T21:52:35+01:00","size":585,"digest":"59616ff1a722959064c83927ca2e49c1fce42a9b18e91b9ecbb74f62527aff43","integrity":"sha256-WWFv8acilZBkyDknyi5JwfzkKpsY6Ruey7dPYlJ6/0M="},"flags/4x3/bw-4bb1d3131b88c65b5decc67f7b44903e931bca2fcac841942591c599f0cbb850.svg":{"logical_path":"flags/4x3/bw.svg","mtime":"2020-02-08T21:52:35+01:00","size":255,"digest":"4bb1d3131b88c65b5decc67f7b44903e931bca2fcac841942591c599f0cbb850","integrity":"sha256-S7HTExuIxltd7MZ/e0SQPpMbyi/KyEGUJZHFmfDLuFA="},"flags/1x1/bw-e08f50c0836ca5858aed7b0526aed6fb630da8dc6b6b96bd9a476af599dc89d6.svg":{"logical_path":"flags/1x1/bw.svg","mtime":"2020-02-08T21:52:35+01:00","size":257,"digest":"e08f50c0836ca5858aed7b0526aed6fb630da8dc6b6b96bd9a476af599dc89d6","integrity":"sha256-4I9QwINspYWK7XsFJq7W+2MNqNxra5a9mkdq9ZncidY="},"flags/4x3/by-324ac96bfbe075781c664be3b9e2ac6b4d2a46dd2b418ca0920284f64394c7d4.svg":{"logical_path":"flags/4x3/by.svg","mtime":"2020-02-08T21:52:35+01:00","size":5998,"digest":"324ac96bfbe075781c664be3b9e2ac6b4d2a46dd2b418ca0920284f64394c7d4","integrity":"sha256-MkrJa/vgdXgcZkvjueKsa00qRt0rQYygkgKE9kOUx9Q="},"flags/1x1/by-37b80e8bf7e51fef99a8307d6dffb04ee164790ceeafef606d516ca333e9488a.svg":{"logical_path":"flags/1x1/by.svg","mtime":"2020-02-08T21:52:35+01:00","size":6105,"digest":"37b80e8bf7e51fef99a8307d6dffb04ee164790ceeafef606d516ca333e9488a","integrity":"sha256-N7gOi/flH++ZqDB9bf+wTuFkeQzur+9gbVFsozPpSIo="},"flags/4x3/bz-156fdc45f8c15c9520a1ea9fc0f395f294f02077408ea1938c222a37cfbb7f1d.svg":{"logical_path":"flags/4x3/bz.svg","mtime":"2020-02-08T21:52:35+01:00","size":46916,"digest":"156fdc45f8c15c9520a1ea9fc0f395f294f02077408ea1938c222a37cfbb7f1d","integrity":"sha256-FW/cRfjBXJUgoeqfwPOV8pTwIHdAjqGTjCIqN8+7fx0="},"flags/1x1/bz-24577d4e7b29b33ab3b1d37914c8479889baa7e8c8399c6d1c99faed31ab053a.svg":{"logical_path":"flags/1x1/bz.svg","mtime":"2020-02-08T21:52:35+01:00","size":47160,"digest":"24577d4e7b29b33ab3b1d37914c8479889baa7e8c8399c6d1c99faed31ab053a","integrity":"sha256-JFd9TnspszqzsdN5FMhHmIm6p+jIOZxtHJn67TGrBTo="},"flags/4x3/ca-0d57cab46d5dbb0012a5e4ae0a9efee3baee90d5d157950a6c5d67edf2daa58f.svg":{"logical_path":"flags/4x3/ca.svg","mtime":"2020-02-08T21:52:35+01:00","size":731,"digest":"0d57cab46d5dbb0012a5e4ae0a9efee3baee90d5d157950a6c5d67edf2daa58f","integrity":"sha256-DVfKtG1duwASpeSuCp7+47rukNXRV5UKbF1n7fLapY8="},"flags/1x1/ca-192a6fb0544e5a6f33a32149d62f1e7ac0a1d61c5c5afa57f3a42346ca8e8c90.svg":{"logical_path":"flags/1x1/ca.svg","mtime":"2020-02-08T21:52:35+01:00","size":712,"digest":"192a6fb0544e5a6f33a32149d62f1e7ac0a1d61c5c5afa57f3a42346ca8e8c90","integrity":"sha256-GSpvsFROWm8zoyFJ1i8eesCh1hxcWvpX86QjRsqOjJA="},"flags/4x3/cc-a35f2a9e10a28d6918ced65e0623b03bb2fbf1f20670b581bc0a409d33b4e843.svg":{"logical_path":"flags/4x3/cc.svg","mtime":"2020-02-08T21:52:35+01:00","size":3144,"digest":"a35f2a9e10a28d6918ced65e0623b03bb2fbf1f20670b581bc0a409d33b4e843","integrity":"sha256-o18qnhCijWkYztZeBiOwO7L78fIGcLWBvApAnTO06EM="},"flags/1x1/cc-d2025eefc9d30f724f3fcd95c0fd9f7938930ecb01af7e0cd6ee6553d7358eb6.svg":{"logical_path":"flags/1x1/cc.svg","mtime":"2020-02-08T21:52:35+01:00","size":3092,"digest":"d2025eefc9d30f724f3fcd95c0fd9f7938930ecb01af7e0cd6ee6553d7358eb6","integrity":"sha256-0gJe78nTD3JPP82VwP2feTiTDssBr34M1u5lU9c1jrY="},"flags/4x3/cd-5d2127c991b30522ae0a29d05facbc88728c050d7e333a60d614af1545459c5c.svg":{"logical_path":"flags/4x3/cd.svg","mtime":"2020-02-08T21:52:35+01:00","size":352,"digest":"5d2127c991b30522ae0a29d05facbc88728c050d7e333a60d614af1545459c5c","integrity":"sha256-XSEnyZGzBSKuCinQX6y8iHKMBQ1+Mzpg1hSvFUVFnFw="},"flags/1x1/cd-59dacf424d1c8c779db66c5b7f2a93a3c8f14976c2975ccfb07639676a1602e3.svg":{"logical_path":"flags/1x1/cd.svg","mtime":"2020-02-08T21:52:35+01:00","size":510,"digest":"59dacf424d1c8c779db66c5b7f2a93a3c8f14976c2975ccfb07639676a1602e3","integrity":"sha256-WdrPQk0cjHedtmxbfyqTo8jxSXbCl1zPsHY5Z2oWAuM="},"flags/4x3/cf-ac0aaffba354d848eba2501a402ee81dc96a56ad0acd3741ec9905e76c372e1e.svg":{"logical_path":"flags/4x3/cf.svg","mtime":"2020-02-08T21:52:35+01:00","size":689,"digest":"ac0aaffba354d848eba2501a402ee81dc96a56ad0acd3741ec9905e76c372e1e","integrity":"sha256-rAqv+6NU2EjrolAaQC7oHclqVq0KzTdB7JkF52w3Lh4="},"flags/1x1/cf-e637674faf7edcdad37182192d038448c157421ab0c69377d9b8e56ab2c0249d.svg":{"logical_path":"flags/1x1/cf.svg","mtime":"2020-02-08T21:52:35+01:00","size":635,"digest":"e637674faf7edcdad37182192d038448c157421ab0c69377d9b8e56ab2c0249d","integrity":"sha256-5jdnT69+3NrTcYIZLQOESMFXQhqwxpN32bjlarLAJJ0="},"flags/4x3/cg-3729f717c83c9df7d0543a1a5d4a506efe184bdfeb39f9260b4b63edf19d2538.svg":{"logical_path":"flags/4x3/cg.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"3729f717c83c9df7d0543a1a5d4a506efe184bdfeb39f9260b4b63edf19d2538","integrity":"sha256-Nyn3F8g8nffQVDoaXUpQbv4YS9/rOfkmC0tj7fGdJTg="},"flags/1x1/cg-8353ff1f251714b1b8905eec1722378426719955d0637d206d35d1dcfa68ddcf.svg":{"logical_path":"flags/1x1/cg.svg","mtime":"2020-02-08T21:52:35+01:00","size":472,"digest":"8353ff1f251714b1b8905eec1722378426719955d0637d206d35d1dcfa68ddcf","integrity":"sha256-g1P/HyUXFLG4kF7sFyI3hCZxmVXQY30gbTXR3Ppo3c8="},"flags/4x3/ch-6739edee6d1ef72c4ed97cfe723d3bb7f17e4df5390f3a4ae234f1ffdeece0cf.svg":{"logical_path":"flags/4x3/ch.svg","mtime":"2020-02-08T21:52:35+01:00","size":300,"digest":"6739edee6d1ef72c4ed97cfe723d3bb7f17e4df5390f3a4ae234f1ffdeece0cf","integrity":"sha256-Zznt7m0e9yxO2Xz+cj07t/F+TfU5DzpK4jTx/97s4M8="},"flags/1x1/ch-7c3dec465228981c57a90a3a7b3a6c42dd3e699230663e770b55008ce6d14208.svg":{"logical_path":"flags/1x1/ch.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"7c3dec465228981c57a90a3a7b3a6c42dd3e699230663e770b55008ce6d14208","integrity":"sha256-fD3sRlIomBxXqQo6ezpsQt0+aZIwZj53C1UAjObRQgg="},"flags/4x3/ci-3e076d13c9524149508c442f8f727424660124e3591280d8ae9bddf9d8272a1e.svg":{"logical_path":"flags/4x3/ci.svg","mtime":"2020-02-08T21:52:35+01:00","size":283,"digest":"3e076d13c9524149508c442f8f727424660124e3591280d8ae9bddf9d8272a1e","integrity":"sha256-PgdtE8lSQUlQjEQvj3J0JGYBJONZEoDYrpvd+dgnKh4="},"flags/1x1/ci-691a0a8577b7d555fc90dc7170adc9ec7571191cb3507c46c0e8516fd1778a91.svg":{"logical_path":"flags/1x1/ci.svg","mtime":"2020-02-08T21:52:35+01:00","size":286,"digest":"691a0a8577b7d555fc90dc7170adc9ec7571191cb3507c46c0e8516fd1778a91","integrity":"sha256-aRoKhXe31VX8kNxxcK3J7HVxGRyzUHxGwOhRb9F3ipE="},"flags/4x3/ck-9cff098e505afde9bf5166cb7b0c409178575633b913ce08c1c700d08c477db6.svg":{"logical_path":"flags/4x3/ck.svg","mtime":"2020-02-08T21:52:35+01:00","size":1887,"digest":"9cff098e505afde9bf5166cb7b0c409178575633b913ce08c1c700d08c477db6","integrity":"sha256-nP8JjlBa/em/UWbLewxAkXhXVjO5E84IwccA0IxHfbY="},"flags/1x1/ck-9c8dffa3bd5953d8a121780831f25b58738e67f3be71961894c56dfd25848c88.svg":{"logical_path":"flags/1x1/ck.svg","mtime":"2020-02-08T21:52:35+01:00","size":1846,"digest":"9c8dffa3bd5953d8a121780831f25b58738e67f3be71961894c56dfd25848c88","integrity":"sha256-nI3/o71ZU9ihIXgIMfJbWHOOZ/O+cZYYlMVt/SWEjIg="},"flags/4x3/cl-a4c57ec2bb9adcb67e1850256e5165227b764187d6941a38d95d0def5144699b.svg":{"logical_path":"flags/4x3/cl.svg","mtime":"2020-02-08T21:52:35+01:00","size":560,"digest":"a4c57ec2bb9adcb67e1850256e5165227b764187d6941a38d95d0def5144699b","integrity":"sha256-pMV+wrua3LZ+GFAlblFlInt2QYfWlBo42V0N71FEaZs="},"flags/1x1/cl-5a3e95cf63358e3911c97404818c2cddfd46414d8445e47d6976ee166c48926c.svg":{"logical_path":"flags/1x1/cl.svg","mtime":"2020-02-08T21:52:35+01:00","size":577,"digest":"5a3e95cf63358e3911c97404818c2cddfd46414d8445e47d6976ee166c48926c","integrity":"sha256-Wj6Vz2M1jjkRyXQEgYws3f1GQU2EReR9aXbuFmxIkmw="},"flags/4x3/cm-5dce9f36d92a61bdc0c482141bdb4f55bfcec0a2ecc745db643a7953e2e5a722.svg":{"logical_path":"flags/4x3/cm.svg","mtime":"2020-02-08T21:52:35+01:00","size":827,"digest":"5dce9f36d92a61bdc0c482141bdb4f55bfcec0a2ecc745db643a7953e2e5a722","integrity":"sha256-Xc6fNtkqYb3AxIIUG9tPVb/OwKLsx0XbZDp5U+LlpyI="},"flags/1x1/cm-d8d21f54c44df5df9edef227691384a4ad37c15ff57c8aa0dead684d19eac8cd.svg":{"logical_path":"flags/1x1/cm.svg","mtime":"2020-02-08T21:52:35+01:00","size":827,"digest":"d8d21f54c44df5df9edef227691384a4ad37c15ff57c8aa0dead684d19eac8cd","integrity":"sha256-2NIfVMRN9d+e3vInaROEpK03wV/1fIqg3q1oTRnqyM0="},"flags/4x3/cn-48ce1c2837bb806a6aaf8b7a9878b6d040c0d069a0ffca9a8a49e7a31aa30e7f.svg":{"logical_path":"flags/4x3/cn.svg","mtime":"2020-02-08T21:52:35+01:00","size":804,"digest":"48ce1c2837bb806a6aaf8b7a9878b6d040c0d069a0ffca9a8a49e7a31aa30e7f","integrity":"sha256-SM4cKDe7gGpqr4t6mHi20EDA0Gmg/8qaiknnoxqjDn8="},"flags/1x1/cn-e6be64c6c4a976e64d39bfe8a6ae4a5b1d38a6aa1b138ddcacf34a942dff50bc.svg":{"logical_path":"flags/1x1/cn.svg","mtime":"2020-02-08T21:52:35+01:00","size":746,"digest":"e6be64c6c4a976e64d39bfe8a6ae4a5b1d38a6aa1b138ddcacf34a942dff50bc","integrity":"sha256-5r5kxsSpduZNOb/opq5KWx04pqobE43crPNKlC3/ULw="},"flags/4x3/co-648d3ff596a0ecf3e85ac17c53abe1d7ca4759688e10a7a3a8b56f096ba6b6f7.svg":{"logical_path":"flags/4x3/co.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"648d3ff596a0ecf3e85ac17c53abe1d7ca4759688e10a7a3a8b56f096ba6b6f7","integrity":"sha256-ZI0/9Zag7PPoWsF8U6vh18pHWWiOEKejqLVvCWumtvc="},"flags/1x1/co-d3c16180c6bce630f762aff789104d10e9dbc949e740535a61396cd0ec34c1a1.svg":{"logical_path":"flags/1x1/co.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"d3c16180c6bce630f762aff789104d10e9dbc949e740535a61396cd0ec34c1a1","integrity":"sha256-08FhgMa85jD3Yq/3iRBNEOnbyUnnQFNaYTls0Ow0waE="},"flags/4x3/cr-84aec60f19bd33e1ac1a209155fec8d372e17cb59dc1346bb9124e5cc867375d.svg":{"logical_path":"flags/4x3/cr.svg","mtime":"2020-02-08T21:52:35+01:00","size":296,"digest":"84aec60f19bd33e1ac1a209155fec8d372e17cb59dc1346bb9124e5cc867375d","integrity":"sha256-hK7GDxm9M+GsGiCRVf7I03LhfLWdwTRruRJOXMhnN10="},"flags/1x1/cr-5371cf8bc5ad1a805155c1b3065e420a0a418c8d63b472bc545890289a365b35.svg":{"logical_path":"flags/1x1/cr.svg","mtime":"2020-02-08T21:52:35+01:00","size":296,"digest":"5371cf8bc5ad1a805155c1b3065e420a0a418c8d63b472bc545890289a365b35","integrity":"sha256-U3HPi8WtGoBRVcGzBl5CCgpBjI1jtHK8VFiQKJo2WzU="},"flags/4x3/cu-bb3f857e02aeab606120d9f164283f07a44b227f12aad7d6d344c7579f7b3ff0.svg":{"logical_path":"flags/4x3/cu.svg","mtime":"2020-02-08T21:52:35+01:00","size":619,"digest":"bb3f857e02aeab606120d9f164283f07a44b227f12aad7d6d344c7579f7b3ff0","integrity":"sha256-uz+FfgKuq2BhINnxZCg/B6RLIn8SqtfW00THV597P/A="},"flags/1x1/cu-02c0054169b874a8d231de1f45b2d0884de48848157734e0ddcd0f684c05c18d.svg":{"logical_path":"flags/1x1/cu.svg","mtime":"2020-02-08T21:52:35+01:00","size":576,"digest":"02c0054169b874a8d231de1f45b2d0884de48848157734e0ddcd0f684c05c18d","integrity":"sha256-AsAFQWm4dKjSMd4fRbLQiE3kiEgVdzTg3c0PaEwFwY0="},"flags/4x3/cv-90ee90ab59713454a218d8c300c71139e62655de80bfbea81df93142a529b81f.svg":{"logical_path":"flags/4x3/cv.svg","mtime":"2020-02-08T21:52:35+01:00","size":1414,"digest":"90ee90ab59713454a218d8c300c71139e62655de80bfbea81df93142a529b81f","integrity":"sha256-kO6Qq1lxNFSiGNjDAMcROeYmVd6Av76oHfkxQqUpuB8="},"flags/1x1/cv-2cf3eede97a468d28459ccc2271c28bb5b6029af2388b0301f6203be55e49308.svg":{"logical_path":"flags/1x1/cv.svg","mtime":"2020-02-08T21:52:35+01:00","size":1362,"digest":"2cf3eede97a468d28459ccc2271c28bb5b6029af2388b0301f6203be55e49308","integrity":"sha256-LPPu3pekaNKEWczCJxwou1tgKa8jiLAwH2IDvlXkkwg="},"flags/4x3/cw-d46beb7b10b40fa82cfd40eb86a3b3879f59f5da2a2f5ef91d121ab9b16c0aad.svg":{"logical_path":"flags/4x3/cw.svg","mtime":"2020-02-08T21:52:35+01:00","size":678,"digest":"d46beb7b10b40fa82cfd40eb86a3b3879f59f5da2a2f5ef91d121ab9b16c0aad","integrity":"sha256-1GvrexC0D6gs/UDrhqOzh59Z9doqL175HRIaubFsCq0="},"flags/1x1/cw-ba78c834e61b24a8a2b6bc7c80ab9f14e42c3c69415941ddb7c8c1f652ccd8b5.svg":{"logical_path":"flags/1x1/cw.svg","mtime":"2020-02-08T21:52:35+01:00","size":685,"digest":"ba78c834e61b24a8a2b6bc7c80ab9f14e42c3c69415941ddb7c8c1f652ccd8b5","integrity":"sha256-unjINOYbJKiitrx8gKufFOQsPGlBWUHdt8jB9lLM2LU="},"flags/4x3/cx-28187fb9d91bedc6f239b107d26eb6ec1cc2a0c7730810306c5a6b313c14f2b2.svg":{"logical_path":"flags/4x3/cx.svg","mtime":"2020-02-08T21:52:35+01:00","size":2469,"digest":"28187fb9d91bedc6f239b107d26eb6ec1cc2a0c7730810306c5a6b313c14f2b2","integrity":"sha256-KBh/udkb7cbyObEH0m627BzCoMdzCBAwbFprMTwU8rI="},"flags/1x1/cx-8ebe073d997f93d092a493300ea1d234c91aef80c6e8f431e88aa7f8e724f9a6.svg":{"logical_path":"flags/1x1/cx.svg","mtime":"2020-02-08T21:52:35+01:00","size":2508,"digest":"8ebe073d997f93d092a493300ea1d234c91aef80c6e8f431e88aa7f8e724f9a6","integrity":"sha256-jr4HPZl/k9CSpJMwDqHSNMka74DG6PQx6Iqn+Ock+aY="},"flags/4x3/cy-8d633ecabc7968bb8a869c62545f122aacbbc3e108c25ceb421bb8bc8734b9be.svg":{"logical_path":"flags/4x3/cy.svg","mtime":"2020-02-08T21:52:35+01:00","size":5949,"digest":"8d633ecabc7968bb8a869c62545f122aacbbc3e108c25ceb421bb8bc8734b9be","integrity":"sha256-jWM+yrx5aLuKhpxiVF8SKqy7w+EIwlzrQhu4vIc0ub4="},"flags/1x1/cy-6ef37fdd7518f18727bec1ed9741bb4d1f854dde7ef1a7e9fd2f4ba6291a7790.svg":{"logical_path":"flags/1x1/cy.svg","mtime":"2020-02-08T21:52:35+01:00","size":6053,"digest":"6ef37fdd7518f18727bec1ed9741bb4d1f854dde7ef1a7e9fd2f4ba6291a7790","integrity":"sha256-bvN/3XUY8YcnvsHtl0G7TR+FTd5+8afp/S9Lpikad5A="},"flags/4x3/cz-6c94e3d53fc1ae5982d8eb058b76d86f07d3fb4cd325698fea3291fa35504c56.svg":{"logical_path":"flags/4x3/cz.svg","mtime":"2020-02-08T21:52:35+01:00","size":481,"digest":"6c94e3d53fc1ae5982d8eb058b76d86f07d3fb4cd325698fea3291fa35504c56","integrity":"sha256-bJTj1T/BrlmC2OsFi3bYbwfT+0zTJWmP6jKR+jVQTFY="},"flags/1x1/cz-af9898ebd32559cdbea2fd17b351e5eedafccada6fbc6a2b7952cad78369817e.svg":{"logical_path":"flags/1x1/cz.svg","mtime":"2020-02-08T21:52:35+01:00","size":483,"digest":"af9898ebd32559cdbea2fd17b351e5eedafccada6fbc6a2b7952cad78369817e","integrity":"sha256-r5iY69MlWc2+ov0Xs1Hl7tr8ytpvvGoreVLK14NpgX4="},"flags/4x3/de-e7323083675d25107c85f0cea6534bd21d21e77e6d524d92e1b2d0a4e21117a1.svg":{"logical_path":"flags/4x3/de.svg","mtime":"2020-02-08T21:52:35+01:00","size":216,"digest":"e7323083675d25107c85f0cea6534bd21d21e77e6d524d92e1b2d0a4e21117a1","integrity":"sha256-5zIwg2ddJRB8hfDOplNL0h0h535tUk2S4bLQpOIRF6E="},"flags/1x1/de-fdb60146952d3b2d104310b28882a0ecde44d808240c3bab2cd6c302a538b266.svg":{"logical_path":"flags/1x1/de.svg","mtime":"2020-02-08T21:52:35+01:00","size":224,"digest":"fdb60146952d3b2d104310b28882a0ecde44d808240c3bab2cd6c302a538b266","integrity":"sha256-/bYBRpUtOy0QQxCyiIKg7N5E2AgkDDurLNbDAqU4smY="},"flags/4x3/dj-546da4a0dae9b1ab74dc6ac6076d0c706f37ef2a0d799342dd0345e11f770f03.svg":{"logical_path":"flags/4x3/dj.svg","mtime":"2020-02-08T21:52:35+01:00","size":588,"digest":"546da4a0dae9b1ab74dc6ac6076d0c706f37ef2a0d799342dd0345e11f770f03","integrity":"sha256-VG2koNrpsat03GrGB20McG837yoNeZNC3QNF4R93DwM="},"flags/1x1/dj-c0481b667f003d9d5a3c93861023a97a98224227ac19aa7e07b5b6edd35fe900.svg":{"logical_path":"flags/1x1/dj.svg","mtime":"2020-02-08T21:52:35+01:00","size":588,"digest":"c0481b667f003d9d5a3c93861023a97a98224227ac19aa7e07b5b6edd35fe900","integrity":"sha256-wEgbZn8APZ1aPJOGECOpepgiQiesGap+B7W27dNf6QA="},"flags/4x3/dk-a13735c0337ab4679cd8679508bf5e8067637ab611ca5c54172c621d740420e5.svg":{"logical_path":"flags/4x3/dk.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"a13735c0337ab4679cd8679508bf5e8067637ab611ca5c54172c621d740420e5","integrity":"sha256-oTc1wDN6tGec2GeVCL9egGdjerYRylxUFyxiHXQEIOU="},"flags/1x1/dk-822a3b8b6948f49aa81fe7620bd173453d9a45406a9680f24bad7e714e58cb7c.svg":{"logical_path":"flags/1x1/dk.svg","mtime":"2020-02-08T21:52:35+01:00","size":238,"digest":"822a3b8b6948f49aa81fe7620bd173453d9a45406a9680f24bad7e714e58cb7c","integrity":"sha256-gio7i2lI9JqoH+diC9FzRT2aRUBqloDyS61+cU5Yy3w="},"flags/4x3/dm-7713fabd3cf341694b4c1ef5d1379820773722b61c190234ac7416f2872e3940.svg":{"logical_path":"flags/4x3/dm.svg","mtime":"2020-02-08T21:52:35+01:00","size":16026,"digest":"7713fabd3cf341694b4c1ef5d1379820773722b61c190234ac7416f2872e3940","integrity":"sha256-dxP6vTzzQWlLTB710TeYIHc3IrYcGQI0rHQW8ocuOUA="},"flags/1x1/dm-33d984fc9897bb2a3bd16c6672b876effc1a8adc0c57ad122a16db54061e4e46.svg":{"logical_path":"flags/1x1/dm.svg","mtime":"2020-02-08T21:52:35+01:00","size":16514,"digest":"33d984fc9897bb2a3bd16c6672b876effc1a8adc0c57ad122a16db54061e4e46","integrity":"sha256-M9mE/JiXuyo70Wxmcrh27/waitwMV60SKhbbVAYeTkY="},"flags/4x3/do-714b6f307ea3a9c3d30348684b8574e8b7f5078f51649dfa97ae2a69a7108b4a.svg":{"logical_path":"flags/4x3/do.svg","mtime":"2020-02-08T21:52:35+01:00","size":394146,"digest":"714b6f307ea3a9c3d30348684b8574e8b7f5078f51649dfa97ae2a69a7108b4a","integrity":"sha256-cUtvMH6jqcPTA0hoS4V06Lf1B49RZJ36l64qaacQi0o="},"flags/1x1/do-d37306c4b346f89ea14739144374caad69652be31e8ce8e2504c9a0d422a4857.svg":{"logical_path":"flags/1x1/do.svg","mtime":"2020-02-08T21:52:35+01:00","size":391714,"digest":"d37306c4b346f89ea14739144374caad69652be31e8ce8e2504c9a0d422a4857","integrity":"sha256-03MGxLNG+J6hRzkUQ3TKrWllK+MejOjiUEyaDUIqSFc="},"flags/4x3/dz-a96e943c830558fe9823044aac2bfb3f6a4caf3bd3c57943352280a7f6b68cb1.svg":{"logical_path":"flags/4x3/dz.svg","mtime":"2020-02-08T21:52:35+01:00","size":301,"digest":"a96e943c830558fe9823044aac2bfb3f6a4caf3bd3c57943352280a7f6b68cb1","integrity":"sha256-qW6UPIMFWP6YIwRKrCv7P2pMrzvTxXlDNSKAp/a2jLE="},"flags/1x1/dz-09400d3b2c58e641a1641a687b81476761d05f9d0ff65861aeaa33c7f508cda4.svg":{"logical_path":"flags/1x1/dz.svg","mtime":"2020-02-08T21:52:35+01:00","size":312,"digest":"09400d3b2c58e641a1641a687b81476761d05f9d0ff65861aeaa33c7f508cda4","integrity":"sha256-CUANOyxY5kGhZBpoe4FHZ2HQX50P9lhhrqozx/UIzaQ="},"flags/4x3/ec-6762ba85ea0f7bb289b0aa6219c797e5243103d281b1462c61b61030fa329d5e.svg":{"logical_path":"flags/4x3/ec.svg","mtime":"2020-02-08T21:52:35+01:00","size":29417,"digest":"6762ba85ea0f7bb289b0aa6219c797e5243103d281b1462c61b61030fa329d5e","integrity":"sha256-Z2K6heoPe7KJsKpiGceX5SQxA9KBsUYsYbYQMPoynV4="},"flags/1x1/ec-7410a75a013738fbb8cbd756d967380e02ae54ca74e9ef9a41c4b583c2c2794f.svg":{"logical_path":"flags/1x1/ec.svg","mtime":"2020-02-08T21:52:35+01:00","size":29972,"digest":"7410a75a013738fbb8cbd756d967380e02ae54ca74e9ef9a41c4b583c2c2794f","integrity":"sha256-dBCnWgE3OPu4y9dW2Wc4DgKuVMp06e+aQcS1g8LCeU8="},"flags/4x3/ee-ce3b622214bd9eefb43373cae2811ea8cf6ef6a16bb6afbaa5bcaaea34024da0.svg":{"logical_path":"flags/4x3/ee.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"ce3b622214bd9eefb43373cae2811ea8cf6ef6a16bb6afbaa5bcaaea34024da0","integrity":"sha256-zjtiIhS9nu+0M3PK4oEeqM9u9qFrtq+6pbyq6jQCTaA="},"flags/1x1/ee-a207a8363b4dde44f59951501c2cb539419e92b0814b25d6448710ced52226f8.svg":{"logical_path":"flags/1x1/ee.svg","mtime":"2020-02-08T21:52:35+01:00","size":355,"digest":"a207a8363b4dde44f59951501c2cb539419e92b0814b25d6448710ced52226f8","integrity":"sha256-ogeoNjtN3kT1mVFQHCy1OUGekrCBSyXWRIcQztUiJvg="},"flags/4x3/eg-16a11fa93856ddc5fd46f8811adfc93660175724b20eaab55ff046855a352d2c.svg":{"logical_path":"flags/4x3/eg.svg","mtime":"2020-02-08T21:52:35+01:00","size":9978,"digest":"16a11fa93856ddc5fd46f8811adfc93660175724b20eaab55ff046855a352d2c","integrity":"sha256-FqEfqThW3cX9RviBGt/JNmAXVySyDqq1X/BGhVo1LSw="},"flags/1x1/eg-9f4d098c604326bbc3692f9e2f335dbc9b34bdf2706565bf448380f0a889d1e2.svg":{"logical_path":"flags/1x1/eg.svg","mtime":"2020-02-08T21:52:35+01:00","size":9992,"digest":"9f4d098c604326bbc3692f9e2f335dbc9b34bdf2706565bf448380f0a889d1e2","integrity":"sha256-n00JjGBDJrvDaS+eLzNdvJs0vfJwZWW/RIOA8KiJ0eI="},"flags/4x3/eh-9cf4a74d29c1a1afc4137deeb5b678d55c8fbdf8d181217267f3a5cce6a76a97.svg":{"logical_path":"flags/4x3/eh.svg","mtime":"2020-02-08T21:52:35+01:00","size":878,"digest":"9cf4a74d29c1a1afc4137deeb5b678d55c8fbdf8d181217267f3a5cce6a76a97","integrity":"sha256-nPSnTSnBoa/EE33utbZ41VyPvfjRgSFyZ/OlzOanapc="},"flags/1x1/eh-16c3327dbcf3483e634b3536b056324b5478212dae6d060f2ffb2ec961cd382f.svg":{"logical_path":"flags/1x1/eh.svg","mtime":"2020-02-08T21:52:35+01:00","size":828,"digest":"16c3327dbcf3483e634b3536b056324b5478212dae6d060f2ffb2ec961cd382f","integrity":"sha256-FsMyfbzzSD5jSzU2sFYyS1R4IS2ubQYPL/suyWHNOC8="},"flags/4x3/er-69a1e1e45289d1282df4b1e5ce5e712d69fbe314abd0c922353fce90814c543e.svg":{"logical_path":"flags/4x3/er.svg","mtime":"2020-02-08T21:52:35+01:00","size":3207,"digest":"69a1e1e45289d1282df4b1e5ce5e712d69fbe314abd0c922353fce90814c543e","integrity":"sha256-aaHh5FKJ0Sgt9LHlzl5xLWn74xSr0MkiNT/OkIFMVD4="},"flags/1x1/er-90d49408e58955cf1cf3185b0193e03c4a107042d47ef5e975dbbe10c6ef7f4a.svg":{"logical_path":"flags/1x1/er.svg","mtime":"2020-02-08T21:52:35+01:00","size":3395,"digest":"90d49408e58955cf1cf3185b0193e03c4a107042d47ef5e975dbbe10c6ef7f4a","integrity":"sha256-kNSUCOWJVc8c8xhbAZPgPEoQcELUfvXpddu+EMbvf0o="},"flags/4x3/es-50e59681c6b6412498bd9cbfc473abedc713db75c54c538b839db3c394d64499.svg":{"logical_path":"flags/4x3/es.svg","mtime":"2020-02-08T21:52:35+01:00","size":92574,"digest":"50e59681c6b6412498bd9cbfc473abedc713db75c54c538b839db3c394d64499","integrity":"sha256-UOWWgca2QSSYvZy/xHOr7ccT23XFTFOLg52zw5TWRJk="},"flags/1x1/es-29c68fa3c9c8c2adacdc2eb0162e9c2fa998faa408836900ec6285000476800d.svg":{"logical_path":"flags/1x1/es.svg","mtime":"2020-02-08T21:52:35+01:00","size":94269,"digest":"29c68fa3c9c8c2adacdc2eb0162e9c2fa998faa408836900ec6285000476800d","integrity":"sha256-KcaPo8nIwq2s3C6wFi6cL6mY+qQIg2kA7GKFAAR2gA0="},"flags/4x3/et-14263ba7ea890fd0a4d89a2791343ecb7acc89aab1fc2593e00a6093b22251df.svg":{"logical_path":"flags/4x3/et.svg","mtime":"2020-02-08T21:52:35+01:00","size":1243,"digest":"14263ba7ea890fd0a4d89a2791343ecb7acc89aab1fc2593e00a6093b22251df","integrity":"sha256-FCY7p+qJD9Ck2JonkTQ+y3rMiaqx/CWT4Apgk7IiUd8="},"flags/1x1/et-086eefb70e9adad537cc1c640a72cc0fa843ec7a9b06b2778aa98b2db055bfe6.svg":{"logical_path":"flags/1x1/et.svg","mtime":"2020-02-08T21:52:35+01:00","size":1242,"digest":"086eefb70e9adad537cc1c640a72cc0fa843ec7a9b06b2778aa98b2db055bfe6","integrity":"sha256-CG7vtw6a2tU3zBxkCnLMD6hD7HqbBrJ3iqmLLbBVv+Y="},"flags/4x3/fi-a4c41caa02a4f6803ea0d6c36de4beebf20d150e3df742b1369a4099c2ff648e.svg":{"logical_path":"flags/4x3/fi.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"a4c41caa02a4f6803ea0d6c36de4beebf20d150e3df742b1369a4099c2ff648e","integrity":"sha256-pMQcqgKk9oA+oNbDbeS+6/INFQ4990KxNppAmcL/ZI4="},"flags/1x1/fi-c5fdf318fac5fdfc94fe54268618e58a2bc5933617ead09992900f90cc25de9a.svg":{"logical_path":"flags/1x1/fi.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"c5fdf318fac5fdfc94fe54268618e58a2bc5933617ead09992900f90cc25de9a","integrity":"sha256-xf3zGPrF/fyU/lQmhhjliivFkzYX6tCZkpAPkMwl3po="},"flags/4x3/fj-cb0cc4b3b5c202f07487ee519f48b3eadb47035f5f2d5d3f99d20f81e48d6b79.svg":{"logical_path":"flags/4x3/fj.svg","mtime":"2020-02-08T21:52:35+01:00","size":27388,"digest":"cb0cc4b3b5c202f07487ee519f48b3eadb47035f5f2d5d3f99d20f81e48d6b79","integrity":"sha256-ywzEs7XCAvB0h+5Rn0iz6ttHA19fLV0/mdIPgeSNa3k="},"flags/1x1/fj-c2c7fd536841925e7647b2d510d6a0c58700e2a8ded0e42008fb93ffacde101f.svg":{"logical_path":"flags/1x1/fj.svg","mtime":"2020-02-08T21:52:35+01:00","size":27519,"digest":"c2c7fd536841925e7647b2d510d6a0c58700e2a8ded0e42008fb93ffacde101f","integrity":"sha256-wsf9U2hBkl52R7LVENagxYcA4qje0OQgCPuT/6zeEB8="},"flags/4x3/fk-cb61eaa0d7221823f7d17de59ea88ed16b506f9585ab0c7291cf839449d82968.svg":{"logical_path":"flags/4x3/fk.svg","mtime":"2020-02-08T21:52:35+01:00","size":30453,"digest":"cb61eaa0d7221823f7d17de59ea88ed16b506f9585ab0c7291cf839449d82968","integrity":"sha256-y2HqoNciGCP30X3lnqiO0WtQb5WFqwxykc+DlEnYKWg="},"flags/1x1/fk-a871742380ae157d1211a63cc35cd3621b1bf6de6d67e4a8e3565ad200b1d8cf.svg":{"logical_path":"flags/1x1/fk.svg","mtime":"2020-02-08T21:52:35+01:00","size":30648,"digest":"a871742380ae157d1211a63cc35cd3621b1bf6de6d67e4a8e3565ad200b1d8cf","integrity":"sha256-qHF0I4CuFX0SEaY8w1zTYhsb9t5tZ+So41Za0gCx2M8="},"flags/4x3/fm-079b937562a9a412aae8fb762b571ddb49bf23627943c97247b6a9bbdb768153.svg":{"logical_path":"flags/4x3/fm.svg","mtime":"2020-02-08T21:52:35+01:00","size":773,"digest":"079b937562a9a412aae8fb762b571ddb49bf23627943c97247b6a9bbdb768153","integrity":"sha256-B5uTdWKppBKq6Pt2K1cd20m/I2J5Q8lyR7apu9t2gVM="},"flags/1x1/fm-dbec73633ecd8a6c50f56d54df36bbe6a2f8fb534ac7658477c82cad14a806a8.svg":{"logical_path":"flags/1x1/fm.svg","mtime":"2020-02-08T21:52:35+01:00","size":763,"digest":"dbec73633ecd8a6c50f56d54df36bbe6a2f8fb534ac7658477c82cad14a806a8","integrity":"sha256-2+xzYz7NimxQ9W1U3za75qL4+1NKx2WEd8gsrRSoBqg="},"flags/4x3/fo-27279c2481bb1cb3e44850a948987d6a8411acffa770c3aecd1b76d4c5853413.svg":{"logical_path":"flags/4x3/fo.svg","mtime":"2020-02-08T21:52:35+01:00","size":567,"digest":"27279c2481bb1cb3e44850a948987d6a8411acffa770c3aecd1b76d4c5853413","integrity":"sha256-JyecJIG7HLPkSFCpSJh9aoQRrP+ncMOuzRt21MWFNBM="},"flags/1x1/fo-7cb4fdbba1c7223702d843cb0709ddc799f89f909dfe101e3e36d6bf36c3e67f.svg":{"logical_path":"flags/1x1/fo.svg","mtime":"2020-02-08T21:52:35+01:00","size":537,"digest":"7cb4fdbba1c7223702d843cb0709ddc799f89f909dfe101e3e36d6bf36c3e67f","integrity":"sha256-fLT9u6HHIjcC2EPLBwndx5n4n5Cd/hAePjbWvzbD5n8="},"flags/4x3/fr-30ed2f68dc9a17927643640f48f3d2a858bd041770547035349c6e79713cd84e.svg":{"logical_path":"flags/4x3/fr.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"30ed2f68dc9a17927643640f48f3d2a858bd041770547035349c6e79713cd84e","integrity":"sha256-MO0vaNyaF5J2Q2QPSPPSqFi9BBdwVHA1NJxueXE82E4="},"flags/1x1/fr-6b849151204c66fa661c30b34e62919a13b9e66b7cd37a4fc8962e8e0baf9bdc.svg":{"logical_path":"flags/1x1/fr.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"6b849151204c66fa661c30b34e62919a13b9e66b7cd37a4fc8962e8e0baf9bdc","integrity":"sha256-a4SRUSBMZvpmHDCzTmKRmhO55mt803pPyJYujguvm9w="},"flags/4x3/ga-e3840f9d5bd6ee08db748d37a534500b837bee0f8ce65987b2f099a6afd2cc63.svg":{"logical_path":"flags/4x3/ga.svg","mtime":"2020-02-08T21:52:35+01:00","size":277,"digest":"e3840f9d5bd6ee08db748d37a534500b837bee0f8ce65987b2f099a6afd2cc63","integrity":"sha256-44QPnVvW7gjbdI03pTRQC4N77g+M5lmHsvCZpq/SzGM="},"flags/1x1/ga-9eafd5388042b3d2258ac6223075b726426210136b9851b637973105721b64d9.svg":{"logical_path":"flags/1x1/ga.svg","mtime":"2020-02-08T21:52:35+01:00","size":281,"digest":"9eafd5388042b3d2258ac6223075b726426210136b9851b637973105721b64d9","integrity":"sha256-nq/VOIBCs9IlisYiMHW3JkJiEBNrmFG2N5cxBXIbZNk="},"flags/4x3/gb-ce93c8a6b974d63998e263f6d25f898fc20580a28464457f2f4463b687e4fe8d.svg":{"logical_path":"flags/4x3/gb.svg","mtime":"2020-02-08T21:52:35+01:00","size":834,"digest":"ce93c8a6b974d63998e263f6d25f898fc20580a28464457f2f4463b687e4fe8d","integrity":"sha256-zpPIprl01jmY4mP20l+Jj8IFgKKEZEV/L0Rjtofk/o0="},"flags/1x1/gb-1d93e1ce2e2e10c1709e4dc50ac956c007b2c1a63a4bc22ddfd64354f79ad457.svg":{"logical_path":"flags/1x1/gb.svg","mtime":"2020-02-08T21:52:35+01:00","size":792,"digest":"1d93e1ce2e2e10c1709e4dc50ac956c007b2c1a63a4bc22ddfd64354f79ad457","integrity":"sha256-HZPhzi4uEMFwnk3FCslWwAeywaY6S8It39ZDVPea1Fc="},"flags/4x3/gd-7c3a6b6068bbd9a6abc98c2297dd4acd5e31022e5a4210fc0e1205ec28498fa2.svg":{"logical_path":"flags/4x3/gd.svg","mtime":"2020-02-08T21:52:35+01:00","size":1694,"digest":"7c3a6b6068bbd9a6abc98c2297dd4acd5e31022e5a4210fc0e1205ec28498fa2","integrity":"sha256-fDprYGi72aaryYwil91KzV4xAi5aQhD8DhIF7ChJj6I="},"flags/1x1/gd-2310bc03d9e8ddc8599b40891bfb10b812b07023881599a7e02e3028d1bc9ca8.svg":{"logical_path":"flags/1x1/gd.svg","mtime":"2020-02-08T21:52:35+01:00","size":1834,"digest":"2310bc03d9e8ddc8599b40891bfb10b812b07023881599a7e02e3028d1bc9ca8","integrity":"sha256-IxC8A9no3chZm0CJG/sQuBKwcCOIFZmn4C4wKNG8nKg="},"flags/4x3/ge-501c0135fb8c377dbd2859ff6290b47ef4907a8e2ab2ae1e39116b716db6795f.svg":{"logical_path":"flags/4x3/ge.svg","mtime":"2020-02-08T21:52:35+01:00","size":1400,"digest":"501c0135fb8c377dbd2859ff6290b47ef4907a8e2ab2ae1e39116b716db6795f","integrity":"sha256-UBwBNfuMN329KFn/YpC0fvSQeo4qsq4eORFrcW22eV8="},"flags/1x1/ge-ca9ee36883ec12048fbb7fbbfaf231c0d4848ae0b07dab74a46d53b7b34d8114.svg":{"logical_path":"flags/1x1/ge.svg","mtime":"2020-02-08T21:52:35+01:00","size":1544,"digest":"ca9ee36883ec12048fbb7fbbfaf231c0d4848ae0b07dab74a46d53b7b34d8114","integrity":"sha256-yp7jaIPsEgSPu3+7+vIxwNSEiuCwfat0pG1Tt7NNgRQ="},"flags/4x3/gf-7c165f90bfe6ac3674903632182221a992f017ff706354b1761002382e89c2c2.svg":{"logical_path":"flags/4x3/gf.svg","mtime":"2020-02-08T21:52:35+01:00","size":261,"digest":"7c165f90bfe6ac3674903632182221a992f017ff706354b1761002382e89c2c2","integrity":"sha256-fBZfkL/mrDZ0kDYyGCIhqZLwF/9wY1SxdhACOC6JwsI="},"flags/1x1/gf-8838337b15cdcf143fac16c714e8dbf2d893d2ea8f1c8ef06dadcb652dfec41c.svg":{"logical_path":"flags/1x1/gf.svg","mtime":"2020-02-08T21:52:35+01:00","size":264,"digest":"8838337b15cdcf143fac16c714e8dbf2d893d2ea8f1c8ef06dadcb652dfec41c","integrity":"sha256-iDgzexXNzxQ/rBbHFOjb8tiT0uqPHI7wba3LZS3+xBw="},"flags/4x3/gg-2c7bfc50d5bcd374b5f6107974d06af24e70edba31ad71a225e0c2ecc2d6e778.svg":{"logical_path":"flags/4x3/gg.svg","mtime":"2020-02-08T21:52:35+01:00","size":598,"digest":"2c7bfc50d5bcd374b5f6107974d06af24e70edba31ad71a225e0c2ecc2d6e778","integrity":"sha256-LHv8UNW803S19hB5dNBq8k5w7boxrXGiJeDC7MLW53g="},"flags/1x1/gg-509489b1792831bb27d6975c76aa0a2ac2fa2c3906bcf844f616de5e0fbbc359.svg":{"logical_path":"flags/1x1/gg.svg","mtime":"2020-02-08T21:52:35+01:00","size":628,"digest":"509489b1792831bb27d6975c76aa0a2ac2fa2c3906bcf844f616de5e0fbbc359","integrity":"sha256-UJSJsXkoMbsn1pdcdqoKKsL6LDkGvPhE9hbeXg+7w1k="},"flags/4x3/gh-79c187756e93df22fae571ad9419629c5247c016e32a74471e0d461048fdf5cf.svg":{"logical_path":"flags/4x3/gh.svg","mtime":"2020-02-08T21:52:35+01:00","size":286,"digest":"79c187756e93df22fae571ad9419629c5247c016e32a74471e0d461048fdf5cf","integrity":"sha256-ecGHdW6T3yL65XGtlBlinFJHwBbjKnRHHg1GEEj99c8="},"flags/1x1/gh-e7bf18e6337982ee31e3673ab93e722b3410b7a4c202656a4bc3887d8656286b.svg":{"logical_path":"flags/1x1/gh.svg","mtime":"2020-02-08T21:52:35+01:00","size":299,"digest":"e7bf18e6337982ee31e3673ab93e722b3410b7a4c202656a4bc3887d8656286b","integrity":"sha256-578Y5jN5gu4x42c6uT5yKzQQt6TCAmVqS8OIfYZWKGs="},"flags/4x3/gi-ed99b369c8c77e64abd59fab1f28155d71b4378b49625c66ab0ab6dff4f88087.svg":{"logical_path":"flags/4x3/gi.svg","mtime":"2020-02-08T21:52:35+01:00","size":2972,"digest":"ed99b369c8c77e64abd59fab1f28155d71b4378b49625c66ab0ab6dff4f88087","integrity":"sha256-7ZmzacjHfmSr1Z+rHygVXXG0N4tJYlxmqwq23/T4gIc="},"flags/1x1/gi-2e563e96e766e13c0a9c5a3a372059a44739bb696e853d71a6f6b08c491dfb9a.svg":{"logical_path":"flags/1x1/gi.svg","mtime":"2020-02-08T21:52:35+01:00","size":2964,"digest":"2e563e96e766e13c0a9c5a3a372059a44739bb696e853d71a6f6b08c491dfb9a","integrity":"sha256-LlY+ludm4TwKnFo6NyBZpEc5u2luhT1xpvawjEkd+5o="},"flags/4x3/gl-612e560dbad68d540be672b80e22c54db43d6e2070523e81c156ccd6b3fc4260.svg":{"logical_path":"flags/4x3/gl.svg","mtime":"2020-02-08T21:52:35+01:00","size":229,"digest":"612e560dbad68d540be672b80e22c54db43d6e2070523e81c156ccd6b3fc4260","integrity":"sha256-YS5WDbrWjVQL5nK4DiLFTbQ9biBwUj6BwVbM1rP8QmA="},"flags/1x1/gl-a9bb35d2b9ff27638658d9ad6b9e2c4f452072b9a80b508d32e76d37bf62cf6e.svg":{"logical_path":"flags/1x1/gl.svg","mtime":"2020-02-08T21:52:35+01:00","size":243,"digest":"a9bb35d2b9ff27638658d9ad6b9e2c4f452072b9a80b508d32e76d37bf62cf6e","integrity":"sha256-qbs10rn/J2OGWNmta54sT0UgcrmoC1CNMudtN79iz24="},"flags/4x3/gm-4a6f9670a41548cceaced2b728e4bc56acbc4a3ba5544e7a097f7dae7a8bb045.svg":{"logical_path":"flags/4x3/gm.svg","mtime":"2020-02-08T21:52:35+01:00","size":543,"digest":"4a6f9670a41548cceaced2b728e4bc56acbc4a3ba5544e7a097f7dae7a8bb045","integrity":"sha256-Sm+WcKQVSMzqztK3KOS8Vqy8SjulVE56CX99rnqLsEU="},"flags/1x1/gm-b67f9f6bce2f8c8700c198de8bfafac72d01b8a1e55b77f71e8cafdc58f8af5c.svg":{"logical_path":"flags/1x1/gm.svg","mtime":"2020-02-08T21:52:35+01:00","size":385,"digest":"b67f9f6bce2f8c8700c198de8bfafac72d01b8a1e55b77f71e8cafdc58f8af5c","integrity":"sha256-tn+fa84vjIcAwZjei/r6xy0BuKHlW3f3Hoyv3Fj4r1w="},"flags/4x3/gn-873b4eb52f34c7558bef93cfd1b82117b5c32c9fbc0610f8821ccd22f28abe28.svg":{"logical_path":"flags/4x3/gn.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"873b4eb52f34c7558bef93cfd1b82117b5c32c9fbc0610f8821ccd22f28abe28","integrity":"sha256-hztOtS80x1WL75PP0bghF7XDLJ+8BhD4ghzNIvKKvig="},"flags/1x1/gn-72f51dc30cf0ed5459ad0f239cf3043eac05ece75945bcaf4ea6653af868c504.svg":{"logical_path":"flags/1x1/gn.svg","mtime":"2020-02-08T21:52:35+01:00","size":298,"digest":"72f51dc30cf0ed5459ad0f239cf3043eac05ece75945bcaf4ea6653af868c504","integrity":"sha256-cvUdwwzw7VRZrQ8jnPMEPqwF7OdZRbyvTqZlOvhoxQQ="},"flags/4x3/gp-4559cad3eb2d173214161d16b0237c68f5c817749a39c862fa7b23dfb4aee923.svg":{"logical_path":"flags/4x3/gp.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"4559cad3eb2d173214161d16b0237c68f5c817749a39c862fa7b23dfb4aee923","integrity":"sha256-RVnK0+stFzIUFh0WsCN8aPXIF3SaOchi+nsj37Su6SM="},"flags/1x1/gp-d6669532054db5b7e441f4858c28920246a65ca3e8a15518c64c7bbb4f9c6416.svg":{"logical_path":"flags/1x1/gp.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d6669532054db5b7e441f4858c28920246a65ca3e8a15518c64c7bbb4f9c6416","integrity":"sha256-1maVMgVNtbfkQfSFjCiSAkamXKPooVUYxkx7u0+cZBY="},"flags/4x3/gq-0c8dfe7f9543307056bbe6d6e44a16c17201228e5344d5afec1ccf1b9a5eb2f9.svg":{"logical_path":"flags/4x3/gq.svg","mtime":"2020-02-08T21:52:35+01:00","size":5188,"digest":"0c8dfe7f9543307056bbe6d6e44a16c17201228e5344d5afec1ccf1b9a5eb2f9","integrity":"sha256-DI3+f5VDMHBWu+bW5EoWwXIBIo5TRNWv7BzPG5pesvk="},"flags/1x1/gq-ecb761e6db59b9bf8ba37533eaf0c60b7fcc7c0dfa2fcf281ee84c970dcb10f8.svg":{"logical_path":"flags/1x1/gq.svg","mtime":"2020-02-08T21:52:35+01:00","size":5280,"digest":"ecb761e6db59b9bf8ba37533eaf0c60b7fcc7c0dfa2fcf281ee84c970dcb10f8","integrity":"sha256-7Ldh5ttZub+Lo3Uz6vDGC3/MfA36L88oHuhMlw3LEPg="},"flags/4x3/gr-4a4086310397bffa682d439be8650a9e28d94e32963b6411b61435292ac4cf80.svg":{"logical_path":"flags/4x3/gr.svg","mtime":"2020-02-08T21:52:35+01:00","size":818,"digest":"4a4086310397bffa682d439be8650a9e28d94e32963b6411b61435292ac4cf80","integrity":"sha256-SkCGMQOXv/poLUOb6GUKnijZTjKWO2QRthQ1KSrEz4A="},"flags/1x1/gr-0cbd171892c0568b055d3b6585d58ac13dd60dfbcfad16eda1f4f9ead11dd16f.svg":{"logical_path":"flags/1x1/gr.svg","mtime":"2020-02-08T21:52:35+01:00","size":875,"digest":"0cbd171892c0568b055d3b6585d58ac13dd60dfbcfad16eda1f4f9ead11dd16f","integrity":"sha256-DL0XGJLAVosFXTtlhdWKwT3WDfvPrRbtofT56tEd0W8="},"flags/4x3/gs-e45169a93a9e94c15f5cb765a6c863319171fb9b4dce56094411829cd688d486.svg":{"logical_path":"flags/4x3/gs.svg","mtime":"2020-02-08T21:52:35+01:00","size":34658,"digest":"e45169a93a9e94c15f5cb765a6c863319171fb9b4dce56094411829cd688d486","integrity":"sha256-5FFpqTqelMFfXLdlpshjMZFx+5tNzlYJRBGCnNaI1IY="},"flags/1x1/gs-3efc9e1b32961f9aa9d7faa2626e596282b63d049f6717c2378b28e3f508e79a.svg":{"logical_path":"flags/1x1/gs.svg","mtime":"2020-02-08T21:52:35+01:00","size":35151,"digest":"3efc9e1b32961f9aa9d7faa2626e596282b63d049f6717c2378b28e3f508e79a","integrity":"sha256-PvyeGzKWH5qp1/qiYm5ZYoK2PQSfZxfCN4so4/UI55o="},"flags/4x3/gt-64a7345cf66facf7f323d2142aebb4172191108a78ac7493b1a6077b78ac8ec5.svg":{"logical_path":"flags/4x3/gt.svg","mtime":"2020-02-08T21:52:35+01:00","size":37857,"digest":"64a7345cf66facf7f323d2142aebb4172191108a78ac7493b1a6077b78ac8ec5","integrity":"sha256-ZKc0XPZvrPfzI9IUKuu0FyGREIp4rHSTsaYHe3isjsU="},"flags/1x1/gt-436a2af3d95cf3cb13ded897f319cfd6e2c087d678ad0e971c198b0d2c029911.svg":{"logical_path":"flags/1x1/gt.svg","mtime":"2020-02-08T21:52:35+01:00","size":37857,"digest":"436a2af3d95cf3cb13ded897f319cfd6e2c087d678ad0e971c198b0d2c029911","integrity":"sha256-Q2oq89lc88sT3tiX8xnP1uLAh9Z4rQ6XHBmLDSwCmRE="},"flags/4x3/gu-f560822ee237e5277829e63613a615a2ee3d8cc6196dffffe0f0d56a49b11c53.svg":{"logical_path":"flags/4x3/gu.svg","mtime":"2020-02-08T21:52:35+01:00","size":4859,"digest":"f560822ee237e5277829e63613a615a2ee3d8cc6196dffffe0f0d56a49b11c53","integrity":"sha256-9WCCLuI35Sd4KeY2E6YVou49jMYZbf//4PDVakmxHFM="},"flags/1x1/gu-a71c9d290c66c1a0929b05436dc6a8229b1147d7cc62336e04c9adf697030450.svg":{"logical_path":"flags/1x1/gu.svg","mtime":"2020-02-08T21:52:35+01:00","size":4644,"digest":"a71c9d290c66c1a0929b05436dc6a8229b1147d7cc62336e04c9adf697030450","integrity":"sha256-pxydKQxmwaCSmwVDbcaoIpsRR9fMYjNuBMmt9pcDBFA="},"flags/4x3/gw-0dc9ec17735ed605b68672947ce55c49a4ec1551491ccd121f482c1875cdf219.svg":{"logical_path":"flags/4x3/gw.svg","mtime":"2020-02-08T21:52:35+01:00","size":816,"digest":"0dc9ec17735ed605b68672947ce55c49a4ec1551491ccd121f482c1875cdf219","integrity":"sha256-DcnsF3Ne1gW2hnKUfOVcSaTsFVFJHM0SH0gsGHXN8hk="},"flags/1x1/gw-7868c305e4a64b0d8ebfd3f7cb8c881841d71a7e0c3ead2683fe503c80de0674.svg":{"logical_path":"flags/1x1/gw.svg","mtime":"2020-02-08T21:52:35+01:00","size":892,"digest":"7868c305e4a64b0d8ebfd3f7cb8c881841d71a7e0c3ead2683fe503c80de0674","integrity":"sha256-eGjDBeSmSw2Ov9P3y4yIGEHXGn4MPq0mg/5QPIDeBnQ="},"flags/4x3/gy-c9126e544c62508abfb898f0af0bd79c46f4c767c9ed6f928418a24b0f246d85.svg":{"logical_path":"flags/4x3/gy.svg","mtime":"2020-02-08T21:52:35+01:00","size":491,"digest":"c9126e544c62508abfb898f0af0bd79c46f4c767c9ed6f928418a24b0f246d85","integrity":"sha256-yRJuVExiUIq/uJjwrwvXnEb0x2fJ7W+ShBiiSw8kbYU="},"flags/1x1/gy-0e3b849ce460f8ab1ec7cf66a25be1ba91e89b72d8b0aa679a0553464f37a972.svg":{"logical_path":"flags/1x1/gy.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"0e3b849ce460f8ab1ec7cf66a25be1ba91e89b72d8b0aa679a0553464f37a972","integrity":"sha256-DjuEnORg+Ksex89molvhupHom3LYsKpnmgVTRk83qXI="},"flags/4x3/hk-cece9126ccbf9151feadfed75791ebf32d4a16beab12f182404519d0cc24eec7.svg":{"logical_path":"flags/4x3/hk.svg","mtime":"2020-02-08T21:52:35+01:00","size":3511,"digest":"cece9126ccbf9151feadfed75791ebf32d4a16beab12f182404519d0cc24eec7","integrity":"sha256-zs6RJsy/kVH+rf7XV5Hr8y1KFr6rEvGCQEUZ0Mwk7sc="},"flags/1x1/hk-9fad00e06f9034877149394914baa2bc3292223b0e32df2b1f9399d4de6e167d.svg":{"logical_path":"flags/1x1/hk.svg","mtime":"2020-02-08T21:52:35+01:00","size":3561,"digest":"9fad00e06f9034877149394914baa2bc3292223b0e32df2b1f9399d4de6e167d","integrity":"sha256-n60A4G+QNIdxSTlJFLqivDKSIjsOMt8rH5OZ1N5uFn0="},"flags/4x3/hm-4b4923b81da24d62ebf31a9bc0addf76beef84593374b1cbd03ba19f3b12e3e9.svg":{"logical_path":"flags/4x3/hm.svg","mtime":"2020-02-08T21:52:35+01:00","size":1328,"digest":"4b4923b81da24d62ebf31a9bc0addf76beef84593374b1cbd03ba19f3b12e3e9","integrity":"sha256-S0kjuB2iTWLr8xqbwK3fdr7vhFkzdLHL0DuhnzsS4+k="},"flags/1x1/hm-776c822113a22e83581234d05f40bfc0ed38b60648d87f513f3da3fff96ffb61.svg":{"logical_path":"flags/1x1/hm.svg","mtime":"2020-02-08T21:52:35+01:00","size":1312,"digest":"776c822113a22e83581234d05f40bfc0ed38b60648d87f513f3da3fff96ffb61","integrity":"sha256-d2yCIROiLoNYEjTQX0C/wO04tgZI2H9RPz2j//lv+2E="},"flags/4x3/hn-855c830786283862a5f399e0d69dffe52b6223b91b32e31b55d55c82f2fa32c9.svg":{"logical_path":"flags/4x3/hn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1115,"digest":"855c830786283862a5f399e0d69dffe52b6223b91b32e31b55d55c82f2fa32c9","integrity":"sha256-hVyDB4YoOGKl85ng1p3/5StiI7kbMuMbVdVcgvL6Msk="},"flags/1x1/hn-64c38bac9403417c4e276bf5536d284fc5410fc04b80acd39a961d298f430dbd.svg":{"logical_path":"flags/1x1/hn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1119,"digest":"64c38bac9403417c4e276bf5536d284fc5410fc04b80acd39a961d298f430dbd","integrity":"sha256-ZMOLrJQDQXxOJ2v1U20oT8VBD8BLgKzTmpYdKY9DDb0="},"flags/4x3/hr-c8cad861f7398a22b9d27ea682d2778df0dde8e146d30142b5294daf988854af.svg":{"logical_path":"flags/4x3/hr.svg","mtime":"2020-02-08T21:52:35+01:00","size":41617,"digest":"c8cad861f7398a22b9d27ea682d2778df0dde8e146d30142b5294daf988854af","integrity":"sha256-yMrYYfc5iiK50n6mgtJ3jfDd6OFG0wFCtSlNr5iIVK8="},"flags/1x1/hr-60c093df6760e4cc6abe26c37a52be3b51458f02712f18e11f08b07dc623b489.svg":{"logical_path":"flags/1x1/hr.svg","mtime":"2020-02-08T21:52:35+01:00","size":41808,"digest":"60c093df6760e4cc6abe26c37a52be3b51458f02712f18e11f08b07dc623b489","integrity":"sha256-YMCT32dg5MxqvibDelK+O1FFjwJxLxjhHwiwfcYjtIk="},"flags/4x3/ht-fe81da06228fa36e7f211bec0d9f0c020f5b9c7f81534b4cb2251848aa276b16.svg":{"logical_path":"flags/4x3/ht.svg","mtime":"2020-02-08T21:52:35+01:00","size":15231,"digest":"fe81da06228fa36e7f211bec0d9f0c020f5b9c7f81534b4cb2251848aa276b16","integrity":"sha256-/oHaBiKPo25/IRvsDZ8MAg9bnH+BU0tMsiUYSKonaxY="},"flags/1x1/ht-dd0197c078859c5a66ff3a51d3a3f92809768e36bfabdec0fc0ab60d068afcd9.svg":{"logical_path":"flags/1x1/ht.svg","mtime":"2020-02-08T21:52:35+01:00","size":15317,"digest":"dd0197c078859c5a66ff3a51d3a3f92809768e36bfabdec0fc0ab60d068afcd9","integrity":"sha256-3QGXwHiFnFpm/zpR06P5KAl2jja/q97A/Aq2DQaK/Nk="},"flags/4x3/hu-9aa998e636687aede491e307f3d068dbe58f2d90bfdfaec0e7ad03baa5b36344.svg":{"logical_path":"flags/4x3/hu.svg","mtime":"2020-02-08T21:52:35+01:00","size":277,"digest":"9aa998e636687aede491e307f3d068dbe58f2d90bfdfaec0e7ad03baa5b36344","integrity":"sha256-mqmY5jZoeu3kkeMH89Bo2+WPLZC/367A560DuqWzY0Q="},"flags/1x1/hu-06858d0fbd4320496e849010e35c8fe82eb618188cf6ec329aef93f5e7af1c23.svg":{"logical_path":"flags/1x1/hu.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"06858d0fbd4320496e849010e35c8fe82eb618188cf6ec329aef93f5e7af1c23","integrity":"sha256-BoWND71DIEluhJAQ41yP6C62GBiM9uwymu+T9eevHCM="},"flags/4x3/id-775dbfedd6533afdf5bd017ccc1ad4f8f4238cbe87393d9c837a669196f17293.svg":{"logical_path":"flags/4x3/id.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"775dbfedd6533afdf5bd017ccc1ad4f8f4238cbe87393d9c837a669196f17293","integrity":"sha256-d12/7dZTOv31vQF8zBrU+PQjjL6HOT2cg3pmkZbxcpM="},"flags/1x1/id-3920ce662a7ea937b2c11707d8e1f53db52611dd004edf753b0389ed490d9d29.svg":{"logical_path":"flags/1x1/id.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"3920ce662a7ea937b2c11707d8e1f53db52611dd004edf753b0389ed490d9d29","integrity":"sha256-OSDOZip+qTeywRcH2OH1PbUmEd0ATt91OwOJ7UkNnSk="},"flags/4x3/ie-6368a1c92440fcf80d3c35607543bcaa2d4662d6e0bc7acf6749ddbc418a72c0.svg":{"logical_path":"flags/4x3/ie.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"6368a1c92440fcf80d3c35607543bcaa2d4662d6e0bc7acf6749ddbc418a72c0","integrity":"sha256-Y2ihySRA/PgNPDVgdUO8qi1GYtbgvHrPZ0ndvEGKcsA="},"flags/1x1/ie-1997e9de640fa764677aa8f5d52f7888bb24a029160e8f67b06dbd043b4f11b3.svg":{"logical_path":"flags/1x1/ie.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"1997e9de640fa764677aa8f5d52f7888bb24a029160e8f67b06dbd043b4f11b3","integrity":"sha256-GZfp3mQPp2Rneqj11S94iLskoCkWDo9nsG29BDtPEbM="},"flags/4x3/il-d76883a2330f9a05a4a64990ba955fc1be90bb46bcb19ae548c21816e7e74178.svg":{"logical_path":"flags/4x3/il.svg","mtime":"2020-02-08T21:52:35+01:00","size":898,"digest":"d76883a2330f9a05a4a64990ba955fc1be90bb46bcb19ae548c21816e7e74178","integrity":"sha256-12iDojMPmgWkpkmQupVfwb6Qu0a8sZrlSMIYFufnQXg="},"flags/1x1/il-f5e643d0e10169a438119dc441ea3100b52a2ff569bbb3a3ad6d1131b47602d8.svg":{"logical_path":"flags/1x1/il.svg","mtime":"2020-02-08T21:52:35+01:00","size":851,"digest":"f5e643d0e10169a438119dc441ea3100b52a2ff569bbb3a3ad6d1131b47602d8","integrity":"sha256-9eZD0OEBaaQ4EZ3EQeoxALUqL/Vpu7OjrW0RMbR2Atg="},"flags/4x3/im-bbae8aa9dd129f8446556afe4904194ad43377d882f9a705fcf1da2bdbfabccf.svg":{"logical_path":"flags/4x3/im.svg","mtime":"2020-02-08T21:52:35+01:00","size":9948,"digest":"bbae8aa9dd129f8446556afe4904194ad43377d882f9a705fcf1da2bdbfabccf","integrity":"sha256-u66Kqd0Sn4RGVWr+SQQZStQzd9iC+acF/PHaK9v6vM8="},"flags/1x1/im-767d72c2e72d732d65c9b016adad983778dfbbb2b5b52e71830f4e41297728d3.svg":{"logical_path":"flags/1x1/im.svg","mtime":"2020-02-08T21:52:35+01:00","size":10295,"digest":"767d72c2e72d732d65c9b016adad983778dfbbb2b5b52e71830f4e41297728d3","integrity":"sha256-dn1ywuctcy1lybAWra2YN3jfu7K1tS5xgw9OQSl3KNM="},"flags/4x3/in-519e33321b8b2ba70a0b7557d66c62d7efdc9723896c49f82528b107028ffe29.svg":{"logical_path":"flags/4x3/in.svg","mtime":"2020-02-08T21:52:35+01:00","size":1077,"digest":"519e33321b8b2ba70a0b7557d66c62d7efdc9723896c49f82528b107028ffe29","integrity":"sha256-UZ4zMhuLK6cKC3VX1mxi1+/clyOJbEn4JSixBwKP/ik="},"flags/1x1/in-27831f76dc6a218a529b6e5d0eafc4c19c999461327b7c013f59226c0601a361.svg":{"logical_path":"flags/1x1/in.svg","mtime":"2020-02-08T21:52:35+01:00","size":1091,"digest":"27831f76dc6a218a529b6e5d0eafc4c19c999461327b7c013f59226c0601a361","integrity":"sha256-J4MfdtxqIYpSm25dDq/EwZyZlGEye3wBP1kibAYBo2E="},"flags/4x3/io-8d25a8e98f682199b413adfbcb6898c37058c9bae085e427fbab03d56e8c0de6.svg":{"logical_path":"flags/4x3/io.svg","mtime":"2020-02-08T21:52:35+01:00","size":27446,"digest":"8d25a8e98f682199b413adfbcb6898c37058c9bae085e427fbab03d56e8c0de6","integrity":"sha256-jSWo6Y9oIZm0E637y2iYw3BYybrgheQn+6sD1W6MDeY="},"flags/1x1/io-627f3b0cef72fd91ff426d74a007dc32d74c9fe677cf2c8355cba84359e16fde.svg":{"logical_path":"flags/1x1/io.svg","mtime":"2020-02-08T21:52:35+01:00","size":27497,"digest":"627f3b0cef72fd91ff426d74a007dc32d74c9fe677cf2c8355cba84359e16fde","integrity":"sha256-Yn87DO9y/ZH/Qm10oAfcMtdMn+Z3zyyDVcuoQ1nhb94="},"flags/4x3/iq-96b24d1439184d0a4c35ca7cea65e5f20469a0e8c8438963aad016e59c399cc6.svg":{"logical_path":"flags/4x3/iq.svg","mtime":"2020-02-08T21:52:35+01:00","size":1479,"digest":"96b24d1439184d0a4c35ca7cea65e5f20469a0e8c8438963aad016e59c399cc6","integrity":"sha256-lrJNFDkYTQpMNcp86mXl8gRpoOjIQ4ljqtAW5Zw5nMY="},"flags/1x1/iq-af04db139f8c44cfe0c612e2c05e848ccfad88fbbfcb58e88cdb7c80db365669.svg":{"logical_path":"flags/1x1/iq.svg","mtime":"2020-02-08T21:52:35+01:00","size":1484,"digest":"af04db139f8c44cfe0c612e2c05e848ccfad88fbbfcb58e88cdb7c80db365669","integrity":"sha256-rwTbE5+MRM/gxhLiwF6EjM+tiPu/y1jojNt8gNs2Vmk="},"flags/4x3/ir-db2c230d355ade2b1ac235ec647bb1535e4703c639a44f9ce112473272ee1019.svg":{"logical_path":"flags/4x3/ir.svg","mtime":"2020-02-08T21:52:35+01:00","size":15484,"digest":"db2c230d355ade2b1ac235ec647bb1535e4703c639a44f9ce112473272ee1019","integrity":"sha256-2ywjDTVa3isawjXsZHuxU15HA8Y5pE+c4RJHMnLuEBk="},"flags/1x1/ir-c648cbf56fc8f324fda477ea816783c9df8a7d398f45f5f94acc1c16c8877b63.svg":{"logical_path":"flags/1x1/ir.svg","mtime":"2020-02-08T21:52:35+01:00","size":15387,"digest":"c648cbf56fc8f324fda477ea816783c9df8a7d398f45f5f94acc1c16c8877b63","integrity":"sha256-xkjL9W/I8yT9pHfqgWeDyd+KfTmPRfX5SswcFsiHe2M="},"flags/4x3/is-29508693138977229758b0f322ba34e90dbcd7a8a74e8820729933d24051d9a7.svg":{"logical_path":"flags/4x3/is.svg","mtime":"2020-02-08T21:52:35+01:00","size":521,"digest":"29508693138977229758b0f322ba34e90dbcd7a8a74e8820729933d24051d9a7","integrity":"sha256-KVCGkxOJdyKXWLDzIro06Q2816inToggcpkz0kBR2ac="},"flags/1x1/is-b1c5db1d4b4853b8144f1d88ababbf14fc88752340457ba3e2c94ab5d54c9c01.svg":{"logical_path":"flags/1x1/is.svg","mtime":"2020-02-08T21:52:35+01:00","size":529,"digest":"b1c5db1d4b4853b8144f1d88ababbf14fc88752340457ba3e2c94ab5d54c9c01","integrity":"sha256-scXbHUtIU7gUTx2Iq6u/FPyIdSNARXuj4slKtdVMnAE="},"flags/4x3/it-d2c168050fc509adac1163b097b0ed409217560735b27802ae9259587c146562.svg":{"logical_path":"flags/4x3/it.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d2c168050fc509adac1163b097b0ed409217560735b27802ae9259587c146562","integrity":"sha256-0sFoBQ/FCa2sEWOwl7DtQJIXVgc1sngCrpJZWHwUZWI="},"flags/1x1/it-592d34fb666430fa00f98d333623d5efa3c8e0e65ac4eee06bbc4c1de7ce4bea.svg":{"logical_path":"flags/1x1/it.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"592d34fb666430fa00f98d333623d5efa3c8e0e65ac4eee06bbc4c1de7ce4bea","integrity":"sha256-WS00+2ZkMPoA+Y0zNiPV76PI4OZaxO7ga7xMHefOS+o="},"flags/4x3/je-b363a4e3a21630f10791c2ebeb7f918320816ef87c155d4fd29ce37982f4df35.svg":{"logical_path":"flags/4x3/je.svg","mtime":"2020-02-08T21:52:35+01:00","size":4776,"digest":"b363a4e3a21630f10791c2ebeb7f918320816ef87c155d4fd29ce37982f4df35","integrity":"sha256-s2Ok46IWMPEHkcLr63+RgyCBbvh8FV1P0pzjeYL03zU="},"flags/1x1/je-6d43f74e30e099bc056da925ec34c0200708f0a6e90da34db1e59d54ce10cfd9.svg":{"logical_path":"flags/1x1/je.svg","mtime":"2020-02-08T21:52:35+01:00","size":4757,"digest":"6d43f74e30e099bc056da925ec34c0200708f0a6e90da34db1e59d54ce10cfd9","integrity":"sha256-bUP3TjDgmbwFbakl7DTAIAcI8KbpDaNNseWdVM4Qz9k="},"flags/4x3/jm-3d133fbc2564f29e036855e8be224d1579fe66fe49e0f5a2ba0bdcf3cb272823.svg":{"logical_path":"flags/4x3/jm.svg","mtime":"2020-02-08T21:52:35+01:00","size":392,"digest":"3d133fbc2564f29e036855e8be224d1579fe66fe49e0f5a2ba0bdcf3cb272823","integrity":"sha256-PRM/vCVk8p4DaFXoviJNFXn+Zv5J4PWiugvc88snKCM="},"flags/1x1/jm-1aea8ea5d8cbc717fa3ef331d8caa9a1421c88a7bd076e40f8276a5b6f8d0467.svg":{"logical_path":"flags/1x1/jm.svg","mtime":"2020-02-08T21:52:35+01:00","size":392,"digest":"1aea8ea5d8cbc717fa3ef331d8caa9a1421c88a7bd076e40f8276a5b6f8d0467","integrity":"sha256-GuqOpdjLxxf6PvMx2MqpoUIciKe9B25A+CdqW2+NBGc="},"flags/4x3/jo-eee432339f8ea6750987e1121187eb4b53ec537dd7ccb240c018de63f7a92db6.svg":{"logical_path":"flags/4x3/jo.svg","mtime":"2020-02-08T21:52:35+01:00","size":717,"digest":"eee432339f8ea6750987e1121187eb4b53ec537dd7ccb240c018de63f7a92db6","integrity":"sha256-7uQyM5+OpnUJh+ESEYfrS1PsU33XzLJAwBjeY/epLbY="},"flags/1x1/jo-7969b2083c535c85b7e714b755459a6606940e0b5ddb1b71e24daf0a180d14aa.svg":{"logical_path":"flags/1x1/jo.svg","mtime":"2020-02-08T21:52:35+01:00","size":694,"digest":"7969b2083c535c85b7e714b755459a6606940e0b5ddb1b71e24daf0a180d14aa","integrity":"sha256-eWmyCDxTXIW35xS3VUWaZgaUDgtd2xtx4k2vChgNFKo="},"flags/4x3/jp-2eadcfc67ba8cd50c1da86e08e6778e0102c3072865dab8c312cc88006da0abe.svg":{"logical_path":"flags/4x3/jp.svg","mtime":"2020-02-08T21:52:35+01:00","size":484,"digest":"2eadcfc67ba8cd50c1da86e08e6778e0102c3072865dab8c312cc88006da0abe","integrity":"sha256-Lq3PxnuozVDB2obgjmd44BAsMHKGXauMMSzIgAbaCr4="},"flags/1x1/jp-551281a75e6c6fd64eb65b39f56102b52c182f6c38ee045c9422f6592f0f65c5.svg":{"logical_path":"flags/1x1/jp.svg","mtime":"2020-02-08T21:52:35+01:00","size":500,"digest":"551281a75e6c6fd64eb65b39f56102b52c182f6c38ee045c9422f6592f0f65c5","integrity":"sha256-VRKBp15sb9ZOtls59WECtSwYL2w47gRclCL2WS8PZcU="},"flags/4x3/ke-45790bc3ec1ed8ed0124777a7c9e09163353b5af4ff70ae6604a61b53712df4b.svg":{"logical_path":"flags/4x3/ke.svg","mtime":"2020-02-08T21:52:35+01:00","size":1383,"digest":"45790bc3ec1ed8ed0124777a7c9e09163353b5af4ff70ae6604a61b53712df4b","integrity":"sha256-RXkLw+we2O0BJHd6fJ4JFjNTta9P9wrmYEphtTcS30s="},"flags/1x1/ke-2cca24ecf024b801543c0572efc9969ffdaf25cec313e2149c64961839bc301b.svg":{"logical_path":"flags/1x1/ke.svg","mtime":"2020-02-08T21:52:35+01:00","size":1495,"digest":"2cca24ecf024b801543c0572efc9969ffdaf25cec313e2149c64961839bc301b","integrity":"sha256-LMok7PAkuAFUPAVy78mWn/2vJc7DE+IUnGSWGDm8MBs="},"flags/4x3/kg-3879f8931d74cc9c5927261f4095b2bb786f3d62c803b2a96ec550a23fae9f49.svg":{"logical_path":"flags/4x3/kg.svg","mtime":"2020-02-08T21:52:35+01:00","size":3387,"digest":"3879f8931d74cc9c5927261f4095b2bb786f3d62c803b2a96ec550a23fae9f49","integrity":"sha256-OHn4kx10zJxZJyYfQJWyu3hvPWLIA7KpbsVQoj+un0k="},"flags/1x1/kg-74318932808f85b72df308358f2f2699ab0cb7ab4f7ad3c84c4be4024f0fb140.svg":{"logical_path":"flags/1x1/kg.svg","mtime":"2020-02-08T21:52:35+01:00","size":3337,"digest":"74318932808f85b72df308358f2f2699ab0cb7ab4f7ad3c84c4be4024f0fb140","integrity":"sha256-dDGJMoCPhbct8wg1jy8mmasMt6tPetPITEvkAk8PsUA="},"flags/4x3/kh-7409fab4ba4e676db7b5c61020b97893b1735fe0b8e39e9b4f96108400be704e.svg":{"logical_path":"flags/4x3/kh.svg","mtime":"2020-02-08T21:52:35+01:00","size":7295,"digest":"7409fab4ba4e676db7b5c61020b97893b1735fe0b8e39e9b4f96108400be704e","integrity":"sha256-dAn6tLpOZ223tcYQILl4k7FzX+C4456bT5YQhAC+cE4="},"flags/1x1/kh-2603f6a61b400cb12b87397eeba60ae1707511467d5e0c430c05809bf89e5042.svg":{"logical_path":"flags/1x1/kh.svg","mtime":"2020-02-08T21:52:35+01:00","size":7296,"digest":"2603f6a61b400cb12b87397eeba60ae1707511467d5e0c430c05809bf89e5042","integrity":"sha256-JgP2phtADLErhzl+66YK4XB1EUZ9XgxDDAWAm/ieUEI="},"flags/4x3/ki-617c1b52f3d9aee99d094edbd1775cae77aade266a1318eb4671b2bb1620ded5.svg":{"logical_path":"flags/4x3/ki.svg","mtime":"2020-02-08T21:52:35+01:00","size":5818,"digest":"617c1b52f3d9aee99d094edbd1775cae77aade266a1318eb4671b2bb1620ded5","integrity":"sha256-YXwbUvPZrumdCU7b0Xdcrneq3iZqExjrRnGyuxYg3tU="},"flags/1x1/ki-74615266b440a24f09abdeae3853d7e1111f0eba77df71ccd176d83fbd1fd9ad.svg":{"logical_path":"flags/1x1/ki.svg","mtime":"2020-02-08T21:52:35+01:00","size":5955,"digest":"74615266b440a24f09abdeae3853d7e1111f0eba77df71ccd176d83fbd1fd9ad","integrity":"sha256-dGFSZrRAok8Jq96uOFPX4REfDrp333HM0XbYP70f2a0="},"flags/4x3/km-0c9bcbf7e677a541fc8dff6f848c9d92b6982ac2934ae75faa56a2b846bb5698.svg":{"logical_path":"flags/4x3/km.svg","mtime":"2020-02-08T21:52:35+01:00","size":1061,"digest":"0c9bcbf7e677a541fc8dff6f848c9d92b6982ac2934ae75faa56a2b846bb5698","integrity":"sha256-DJvL9+Z3pUH8jf9vhIydkraYKsKTSudfqlaiuEa7Vpg="},"flags/1x1/km-81b0fbe53d09194270e8ed4cbe9be8eb1ae727e77957005369ad8bdc651dd1c8.svg":{"logical_path":"flags/1x1/km.svg","mtime":"2020-02-08T21:52:35+01:00","size":1044,"digest":"81b0fbe53d09194270e8ed4cbe9be8eb1ae727e77957005369ad8bdc651dd1c8","integrity":"sha256-gbD75T0JGUJw6O1Mvpvo6xrnJ+d5VwBTaa2L3GUd0cg="},"flags/4x3/kn-0442f55f81cd3b1057c609301f0af2b503d89a895a954af8c970df997e92bd03.svg":{"logical_path":"flags/4x3/kn.svg","mtime":"2020-02-08T21:52:35+01:00","size":816,"digest":"0442f55f81cd3b1057c609301f0af2b503d89a895a954af8c970df997e92bd03","integrity":"sha256-BEL1X4HNOxBXxgkwHwrytQPYmolalUr4yXDfmX6SvQM="},"flags/1x1/kn-897c34ef54bee486f0d24d2191e2400f49a19d98efb19f8c3f1a27fb0b97131a.svg":{"logical_path":"flags/1x1/kn.svg","mtime":"2020-02-08T21:52:35+01:00","size":820,"digest":"897c34ef54bee486f0d24d2191e2400f49a19d98efb19f8c3f1a27fb0b97131a","integrity":"sha256-iXw071S+5Ibw0k0hkeJAD0mhnZjvsZ+MPxon+wuXExo="},"flags/4x3/kp-a54f7201982b29530381b71a5e2a11c1153860f22c04c0a2d91bb0d20fedf78e.svg":{"logical_path":"flags/4x3/kp.svg","mtime":"2020-02-08T21:52:35+01:00","size":792,"digest":"a54f7201982b29530381b71a5e2a11c1153860f22c04c0a2d91bb0d20fedf78e","integrity":"sha256-pU9yAZgrKVMDgbcaXioRwRU4YPIsBMCi2Ruw0g/t944="},"flags/1x1/kp-758eccd89ef3707808fb68d931f086e49333904f4cc67c88468f3c96fb43b7b6.svg":{"logical_path":"flags/1x1/kp.svg","mtime":"2020-02-08T21:52:35+01:00","size":855,"digest":"758eccd89ef3707808fb68d931f086e49333904f4cc67c88468f3c96fb43b7b6","integrity":"sha256-dY7M2J7zcHgI+2jZMfCG5JMzkE9MxnyIRo88lvtDt7Y="},"flags/4x3/kr-c0b9b2c854133410c0ad9cadbc10b1e0bacf0305519883126d55bfa3214f9d06.svg":{"logical_path":"flags/4x3/kr.svg","mtime":"2020-02-08T21:52:35+01:00","size":1827,"digest":"c0b9b2c854133410c0ad9cadbc10b1e0bacf0305519883126d55bfa3214f9d06","integrity":"sha256-wLmyyFQTNBDArZytvBCx4LrPAwVRmIMSbVW/oyFPnQY="},"flags/1x1/kr-7c0457ac5d284b28b742ea2e061a1aa2a35f63171e464b3a7eb501a48756ce7b.svg":{"logical_path":"flags/1x1/kr.svg","mtime":"2020-02-08T21:52:35+01:00","size":1733,"digest":"7c0457ac5d284b28b742ea2e061a1aa2a35f63171e464b3a7eb501a48756ce7b","integrity":"sha256-fARXrF0oSyi3QuouBhoaoqNfYxceRks6frUBpIdWzns="},"flags/4x3/kw-81c3d5d25c7b840ef14783b51d18c6b7cfc61f94932c664bbc9e5879fef020eb.svg":{"logical_path":"flags/4x3/kw.svg","mtime":"2020-02-08T21:52:35+01:00","size":506,"digest":"81c3d5d25c7b840ef14783b51d18c6b7cfc61f94932c664bbc9e5879fef020eb","integrity":"sha256-gcPV0lx7hA7xR4O1HRjGt8/GH5STLGZLvJ5Yef7wIOs="},"flags/1x1/kw-66670211a67a4e61d4652a19d821dc5195f01a28a3a9b28b7e4c6048cd86b19c.svg":{"logical_path":"flags/1x1/kw.svg","mtime":"2020-02-08T21:52:35+01:00","size":510,"digest":"66670211a67a4e61d4652a19d821dc5195f01a28a3a9b28b7e4c6048cd86b19c","integrity":"sha256-ZmcCEaZ6TmHUZSoZ2CHcUZXwGiijqbKLfkxgSM2GsZw="},"flags/4x3/ky-0f4ab66d951ae33f800d680aaa5704804ba9c8844d4d80e5bee2e3fa0e100af3.svg":{"logical_path":"flags/4x3/ky.svg","mtime":"2020-02-08T21:52:35+01:00","size":21886,"digest":"0f4ab66d951ae33f800d680aaa5704804ba9c8844d4d80e5bee2e3fa0e100af3","integrity":"sha256-D0q2bZUa4z+ADWgKqlcEgEupyIRNTYDlvuLj+g4QCvM="},"flags/1x1/ky-fb5f57bb58b74d23377bad9954a75ab88d1587af68546ce137a6ae7a88a7701e.svg":{"logical_path":"flags/1x1/ky.svg","mtime":"2020-02-08T21:52:35+01:00","size":22495,"digest":"fb5f57bb58b74d23377bad9954a75ab88d1587af68546ce137a6ae7a88a7701e","integrity":"sha256-+19Xu1i3TSM3e62ZVKdauI0Vh69oVGzhN6aueoincB4="},"flags/4x3/kz-39edc952c598c71be2c9510944a8faf708d8e4b367b5ad78a688d1cd37f522eb.svg":{"logical_path":"flags/4x3/kz.svg","mtime":"2020-02-08T21:52:35+01:00","size":11339,"digest":"39edc952c598c71be2c9510944a8faf708d8e4b367b5ad78a688d1cd37f522eb","integrity":"sha256-Oe3JUsWYxxviyVEJRKj69wjY5LNnta14pojRzTf1Ius="},"flags/1x1/kz-924c04dc19267b049f35213af0e2b0c540933c06389433cb4aacd8dda33b286c.svg":{"logical_path":"flags/1x1/kz.svg","mtime":"2020-02-08T21:52:35+01:00","size":11433,"digest":"924c04dc19267b049f35213af0e2b0c540933c06389433cb4aacd8dda33b286c","integrity":"sha256-kkwE3BkmewSfNSE68OKwxUCTPAY4lDPLSqzY3aM7KGw="},"flags/4x3/la-e3a36a3bd0003442c3a21d3a192995fa6fb3b3c08a2daadc8f38f62736b5b1e3.svg":{"logical_path":"flags/4x3/la.svg","mtime":"2020-02-08T21:52:35+01:00","size":457,"digest":"e3a36a3bd0003442c3a21d3a192995fa6fb3b3c08a2daadc8f38f62736b5b1e3","integrity":"sha256-46NqO9AANELDoh06GSmV+m+zs8CKLarcjzj2Jza1seM="},"flags/1x1/la-c9d4223a897e5e2938a4892bbc593d3828093b9439fc3f6de21520e4013ddbc5.svg":{"logical_path":"flags/1x1/la.svg","mtime":"2020-02-08T21:52:35+01:00","size":507,"digest":"c9d4223a897e5e2938a4892bbc593d3828093b9439fc3f6de21520e4013ddbc5","integrity":"sha256-ydQiOol+Xik4pIkrvFk9OCgJO5Q5/D9t4hUg5AE928U="},"flags/4x3/lb-508c2a5a9b50d604895675b9f1c1e5914c394a7f468f5d823eb0476acaacbc7f.svg":{"logical_path":"flags/4x3/lb.svg","mtime":"2020-02-08T21:52:35+01:00","size":2814,"digest":"508c2a5a9b50d604895675b9f1c1e5914c394a7f468f5d823eb0476acaacbc7f","integrity":"sha256-UIwqWptQ1gSJVnW58cHlkUw5Sn9Gj12CPrBHasqsvH8="},"flags/1x1/lb-10c9ba8ea7aa3189f16a7273c837982a887fc4ddfc9d514d8f5a660d72356f7f.svg":{"logical_path":"flags/1x1/lb.svg","mtime":"2020-02-08T21:52:35+01:00","size":2754,"digest":"10c9ba8ea7aa3189f16a7273c837982a887fc4ddfc9d514d8f5a660d72356f7f","integrity":"sha256-EMm6jqeqMYnxanJzyDeYKoh/xN38nVFNj1pmDXI1b38="},"flags/4x3/lc-04ccd92fb1578654181febaea30ebd6b6620f56115730b2a2d673c712307bf5c.svg":{"logical_path":"flags/4x3/lc.svg","mtime":"2020-02-08T21:52:35+01:00","size":373,"digest":"04ccd92fb1578654181febaea30ebd6b6620f56115730b2a2d673c712307bf5c","integrity":"sha256-BMzZL7FXhlQYH+uuow69a2Yg9WEVcwsqLWc8cSMHv1w="},"flags/1x1/lc-4ffb53afb8bd296d526ac26fd8007afc74855e92833a893d3c934a5d12eb152a.svg":{"logical_path":"flags/1x1/lc.svg","mtime":"2020-02-08T21:52:35+01:00","size":373,"digest":"4ffb53afb8bd296d526ac26fd8007afc74855e92833a893d3c934a5d12eb152a","integrity":"sha256-T/tTr7i9KW1SasJv2AB6/HSFXpKDOok9PJNKXRLrFSo="},"flags/4x3/li-3058dc4aeaf2bd2da8cb910892137d732b56e5e9d342e565a4059de1a8e40e40.svg":{"logical_path":"flags/4x3/li.svg","mtime":"2020-02-08T21:52:35+01:00","size":8327,"digest":"3058dc4aeaf2bd2da8cb910892137d732b56e5e9d342e565a4059de1a8e40e40","integrity":"sha256-MFjcSuryvS2oy5EIkhN9cytW5enTQuVlpAWd4ajkDkA="},"flags/1x1/li-0780a4f218b9ee466e33d14274b8a01575a86b3787b347e3269a3b301c220d5f.svg":{"logical_path":"flags/1x1/li.svg","mtime":"2020-02-08T21:52:35+01:00","size":8350,"digest":"0780a4f218b9ee466e33d14274b8a01575a86b3787b347e3269a3b301c220d5f","integrity":"sha256-B4Ck8hi57kZuM9FCdLigFXWoazeHs0fjJpo7MBwiDV8="},"flags/4x3/lk-a13d6ab1da51be3b1d2c5b80f4d866c923d42b017e197469e1bfc0dd021c4bfe.svg":{"logical_path":"flags/4x3/lk.svg","mtime":"2020-02-08T21:52:35+01:00","size":11333,"digest":"a13d6ab1da51be3b1d2c5b80f4d866c923d42b017e197469e1bfc0dd021c4bfe","integrity":"sha256-oT1qsdpRvjsdLFuA9NhmySPUKwF+GXRp4b/A3QIcS/4="},"flags/1x1/lk-99759363f0df6b868fd1398bf05666c680bafe1eeec8b859b64d450930213e02.svg":{"logical_path":"flags/1x1/lk.svg","mtime":"2020-02-08T21:52:35+01:00","size":11345,"digest":"99759363f0df6b868fd1398bf05666c680bafe1eeec8b859b64d450930213e02","integrity":"sha256-mXWTY/Dfa4aP0TmL8FZmxoC6/h7uyLhZtk1FCTAhPgI="},"flags/4x3/lr-b06a1d70899826b305ce387fa31e1fa0bdb3bcb17c1392f15f995ce1dba723cf.svg":{"logical_path":"flags/4x3/lr.svg","mtime":"2020-02-08T21:52:35+01:00","size":724,"digest":"b06a1d70899826b305ce387fa31e1fa0bdb3bcb17c1392f15f995ce1dba723cf","integrity":"sha256-sGodcImYJrMFzjh/ox4foL2zvLF8E5LxX5lc4dunI88="},"flags/1x1/lr-820a9d023e5b1e68ed640bfaba8f84ad4379c42a6c5c982cb76b0390dd2bcbdd.svg":{"logical_path":"flags/1x1/lr.svg","mtime":"2020-02-08T21:52:35+01:00","size":697,"digest":"820a9d023e5b1e68ed640bfaba8f84ad4379c42a6c5c982cb76b0390dd2bcbdd","integrity":"sha256-ggqdAj5bHmjtZAv6uo+ErUN5xCpsXJgst2sDkN0ry90="},"flags/4x3/ls-d02bcefe7c298c153665f35c33eedb08e2e2b345350e4bf1714a87abf86b2d0e.svg":{"logical_path":"flags/4x3/ls.svg","mtime":"2020-02-08T21:52:35+01:00","size":1222,"digest":"d02bcefe7c298c153665f35c33eedb08e2e2b345350e4bf1714a87abf86b2d0e","integrity":"sha256-0CvO/nwpjBU2ZfNcM+7bCOLis0U1DkvxcUqHq/hrLQ4="},"flags/1x1/ls-85c731c313a46db12bdb27fe229e9f7d052b447c624663b73ffa1dbab97f03fb.svg":{"logical_path":"flags/1x1/ls.svg","mtime":"2020-02-08T21:52:35+01:00","size":1245,"digest":"85c731c313a46db12bdb27fe229e9f7d052b447c624663b73ffa1dbab97f03fb","integrity":"sha256-hccxwxOkbbEr2yf+Ip6ffQUrRHxiRmO3P/odurl/A/s="},"flags/4x3/lt-c08eb18a15d2003cb544432b11c5081d3d5741370669b4df306d1c6bce14cb51.svg":{"logical_path":"flags/4x3/lt.svg","mtime":"2020-02-08T21:52:35+01:00","size":445,"digest":"c08eb18a15d2003cb544432b11c5081d3d5741370669b4df306d1c6bce14cb51","integrity":"sha256-wI6xihXSADy1REMrEcUIHT1XQTcGabTfMG0ca84Uy1E="},"flags/1x1/lt-c1bd7e3d289ac9b0df06d47237780eaf4d30f01281ed50a7df9a22bc3a2489c5.svg":{"logical_path":"flags/1x1/lt.svg","mtime":"2020-02-08T21:52:35+01:00","size":445,"digest":"c1bd7e3d289ac9b0df06d47237780eaf4d30f01281ed50a7df9a22bc3a2489c5","integrity":"sha256-wb1+PSiaybDfBtRyN3gOr00w8BKB7VCn35oivDokicU="},"flags/4x3/lu-99e7b6adb3a9e0f867b17eb3b1f0f33db92fd27cfd7b651f62453f359bace22f.svg":{"logical_path":"flags/4x3/lu.svg","mtime":"2020-02-08T21:52:35+01:00","size":231,"digest":"99e7b6adb3a9e0f867b17eb3b1f0f33db92fd27cfd7b651f62453f359bace22f","integrity":"sha256-mee2rbOp4PhnsX6zsfDzPbkv0nz9e2UfYkU/NZus4i8="},"flags/1x1/lu-ab544445f16afa450549288ac86c2cc9a458a9d7747b3a89d5ecef7db9c83ce7.svg":{"logical_path":"flags/1x1/lu.svg","mtime":"2020-02-08T21:52:35+01:00","size":235,"digest":"ab544445f16afa450549288ac86c2cc9a458a9d7747b3a89d5ecef7db9c83ce7","integrity":"sha256-q1RERfFq+kUFSSiKyGwsyaRYqdd0ezqJ1ezvfbnIPOc="},"flags/4x3/lv-f8844d50b89f0369f73d580d3676553e7e55dd8ab2460e592a29a530d9bed886.svg":{"logical_path":"flags/4x3/lv.svg","mtime":"2020-02-08T21:52:35+01:00","size":236,"digest":"f8844d50b89f0369f73d580d3676553e7e55dd8ab2460e592a29a530d9bed886","integrity":"sha256-+IRNULifA2n3PVgNNnZVPn5V3YqyRg5ZKimlMNm+2IY="},"flags/1x1/lv-baeced49dd4249e36a25b0f23a5c601a69e9dee3137627cd4450194b85a99dd4.svg":{"logical_path":"flags/1x1/lv.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"baeced49dd4249e36a25b0f23a5c601a69e9dee3137627cd4450194b85a99dd4","integrity":"sha256-uuztSd1CSeNqJbDyOlxgGmnp3uMTdifNRFAZS4WpndQ="},"flags/4x3/ly-03209121483967f9d74849fb9261de23e9ff2e02c4e40b29f1cda0631b8a5fae.svg":{"logical_path":"flags/4x3/ly.svg","mtime":"2020-02-08T21:52:35+01:00","size":534,"digest":"03209121483967f9d74849fb9261de23e9ff2e02c4e40b29f1cda0631b8a5fae","integrity":"sha256-AyCRIUg5Z/nXSEn7kmHeI+n/LgLE5Asp8c2gYxuKX64="},"flags/1x1/ly-1e6e070aaa4bfc97a5a446a39bf746ab3c4c81d9f62c975cab164e16de3a3ffe.svg":{"logical_path":"flags/1x1/ly.svg","mtime":"2020-02-08T21:52:35+01:00","size":533,"digest":"1e6e070aaa4bfc97a5a446a39bf746ab3c4c81d9f62c975cab164e16de3a3ffe","integrity":"sha256-Hm4HCqpL/JelpEajm/dGqzxMgdn2LJdcqxZOFt46P/4="},"flags/4x3/ma-9a25cc7c2868fa45b251dd1b99a0be3b583df69732146142020fe9c6c0c95b63.svg":{"logical_path":"flags/4x3/ma.svg","mtime":"2020-02-08T21:52:35+01:00","size":253,"digest":"9a25cc7c2868fa45b251dd1b99a0be3b583df69732146142020fe9c6c0c95b63","integrity":"sha256-miXMfCho+kWyUd0bmaC+O1g99pcyFGFCAg/pxsDJW2M="},"flags/1x1/ma-4f18b9c355b8b8bf0db69badb235a183dbd558deb6439bf03b4f18e56837a7f3.svg":{"logical_path":"flags/1x1/ma.svg","mtime":"2020-02-08T21:52:35+01:00","size":253,"digest":"4f18b9c355b8b8bf0db69badb235a183dbd558deb6439bf03b4f18e56837a7f3","integrity":"sha256-Txi5w1W4uL8NtputsjWhg9vVWN62Q5vwO08Y5Wg3p/M="},"flags/4x3/mc-b0c50599ea2a550680a6a867579930e0b47d3e05193a7294a26b7849a7ad35e2.svg":{"logical_path":"flags/4x3/mc.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"b0c50599ea2a550680a6a867579930e0b47d3e05193a7294a26b7849a7ad35e2","integrity":"sha256-sMUFmeoqVQaApqhnV5kw4LR9PgUZOnKUomt4SaetNeI="},"flags/1x1/mc-8f1fe6210338399d8791d91f39234b1a09acf2aa5e0387696048dc7068534a28.svg":{"logical_path":"flags/1x1/mc.svg","mtime":"2020-02-08T21:52:35+01:00","size":240,"digest":"8f1fe6210338399d8791d91f39234b1a09acf2aa5e0387696048dc7068534a28","integrity":"sha256-jx/mIQM4OZ2HkdkfOSNLGgms8qpeA4dpYEjccGhTSig="},"flags/4x3/md-8849eef7bdf916e962f7bb31af87c8d47aef33f9f4a2017b2ce55c4166e79643.svg":{"logical_path":"flags/4x3/md.svg","mtime":"2020-02-08T21:52:35+01:00","size":11283,"digest":"8849eef7bdf916e962f7bb31af87c8d47aef33f9f4a2017b2ce55c4166e79643","integrity":"sha256-iEnu9735Fuli97sxr4fI1HrvM/n0ogF7LOVcQWbnlkM="},"flags/1x1/md-43f1bb4157545abe6e79215459efb548d913bbe7922078cd40cb722a4e19d9b4.svg":{"logical_path":"flags/1x1/md.svg","mtime":"2020-02-08T21:52:35+01:00","size":11387,"digest":"43f1bb4157545abe6e79215459efb548d913bbe7922078cd40cb722a4e19d9b4","integrity":"sha256-Q/G7QVdUWr5ueSFUWe+1SNkTu+eSIHjNQMtyKk4Z2bQ="},"flags/4x3/me-983d452d43cfb8d628bfc5c0cf4991c2ba3cf0e39e70aa5353cfd4e9ec3da62d.svg":{"logical_path":"flags/4x3/me.svg","mtime":"2020-02-08T21:52:35+01:00","size":63177,"digest":"983d452d43cfb8d628bfc5c0cf4991c2ba3cf0e39e70aa5353cfd4e9ec3da62d","integrity":"sha256-mD1FLUPPuNYov8XAz0mRwro88OOecKpTU8/U6ew9pi0="},"flags/1x1/me-104d6a96038ef06d3d8b89c9221996f3649b5b821139b11b2e07695b0f6fda2f.svg":{"logical_path":"flags/1x1/me.svg","mtime":"2020-02-08T21:52:35+01:00","size":64191,"digest":"104d6a96038ef06d3d8b89c9221996f3649b5b821139b11b2e07695b0f6fda2f","integrity":"sha256-EE1qlgOO8G09i4nJIhmW82SbW4IRObEbLgdpWw9v2i8="},"flags/4x3/mf-31fb851bfcc2340d2fa43e86a099cc7becfc8e7f996a4d2ca56bd050e6537086.svg":{"logical_path":"flags/4x3/mf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"31fb851bfcc2340d2fa43e86a099cc7becfc8e7f996a4d2ca56bd050e6537086","integrity":"sha256-MfuFG/zCNA0vpD6GoJnMe+z8jn+Zak0spWvQUOZTcIY="},"flags/1x1/mf-fe20ce9bf911631d6e79edf21c8cff0716f2dc1ffded39515735444d9a66fa55.svg":{"logical_path":"flags/1x1/mf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"fe20ce9bf911631d6e79edf21c8cff0716f2dc1ffded39515735444d9a66fa55","integrity":"sha256-/iDOm/kRYx1uee3yHIz/Bxby3B/97TlRVzVETZpm+lU="},"flags/4x3/mg-5effe963e29f804a26f95dbbc9519add454a0fd9eb918ddfeb55e1e99a1a2701.svg":{"logical_path":"flags/4x3/mg.svg","mtime":"2020-02-08T21:52:35+01:00","size":305,"digest":"5effe963e29f804a26f95dbbc9519add454a0fd9eb918ddfeb55e1e99a1a2701","integrity":"sha256-Xv/pY+KfgEom+V27yVGa3UVKD9nrkY3f61Xh6ZoaJwE="},"flags/1x1/mg-9e546cfb78810d9b25c814a84aadd6907880b8e0cdd2e4e30738b519e7c1ac91.svg":{"logical_path":"flags/1x1/mg.svg","mtime":"2020-02-08T21:52:35+01:00","size":305,"digest":"9e546cfb78810d9b25c814a84aadd6907880b8e0cdd2e4e30738b519e7c1ac91","integrity":"sha256-nlRs+3iBDZslyBSoSq3WkHiAuODN0uTjBzi1GefBrJE="},"flags/4x3/mh-d8cfd123007dbb99aa700c335957926a6d5e877ab49680c79629a32716d7a782.svg":{"logical_path":"flags/4x3/mh.svg","mtime":"2020-02-08T21:52:35+01:00","size":744,"digest":"d8cfd123007dbb99aa700c335957926a6d5e877ab49680c79629a32716d7a782","integrity":"sha256-2M/RIwB9u5mqcAwzWVeSam1eh3q0loDHlimjJxbXp4I="},"flags/1x1/mh-3fe03d4d063a4729fc8b68fd5e9d7d2eef6e65c4e82954c83f76b138cea2eb45.svg":{"logical_path":"flags/1x1/mh.svg","mtime":"2020-02-08T21:52:35+01:00","size":767,"digest":"3fe03d4d063a4729fc8b68fd5e9d7d2eef6e65c4e82954c83f76b138cea2eb45","integrity":"sha256-P+A9TQY6Ryn8i2j9Xp19Lu9uZcToKVTIP3axOM6i60U="},"flags/4x3/mk-6e8071d15f2ff125d30bf89d000dcb47db9545cf9b7ff04f1474650ec2f4d25c.svg":{"logical_path":"flags/4x3/mk.svg","mtime":"2020-02-08T21:52:35+01:00","size":385,"digest":"6e8071d15f2ff125d30bf89d000dcb47db9545cf9b7ff04f1474650ec2f4d25c","integrity":"sha256-boBx0V8v8SXTC/idAA3LR9uVRc+bf/BPFHRlDsL00lw="},"flags/1x1/mk-fdc9212f9f311cbface56b6587468a2e845111b697edc11b7edda9fcf100c1d5.svg":{"logical_path":"flags/1x1/mk.svg","mtime":"2020-02-08T21:52:35+01:00","size":413,"digest":"fdc9212f9f311cbface56b6587468a2e845111b697edc11b7edda9fcf100c1d5","integrity":"sha256-/ckhL58xHL+s5Wtlh0aKLoRREbaX7cEbft2p/PEAwdU="},"flags/4x3/ml-a730102e0c6f6362de9c10ef8da6cf7b123465d01a297e7a89808b01fa4771cd.svg":{"logical_path":"flags/4x3/ml.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"a730102e0c6f6362de9c10ef8da6cf7b123465d01a297e7a89808b01fa4771cd","integrity":"sha256-pzAQLgxvY2LenBDvjabPexI0ZdAaKX56iYCLAfpHcc0="},"flags/1x1/ml-a661355da206b0cb7ac4c84b6cdf7e411fbca8fcb271ae999fa60d5c67578192.svg":{"logical_path":"flags/1x1/ml.svg","mtime":"2020-02-08T21:52:35+01:00","size":282,"digest":"a661355da206b0cb7ac4c84b6cdf7e411fbca8fcb271ae999fa60d5c67578192","integrity":"sha256-pmE1XaIGsMt6xMhLbN9+QR+8qPyyca6Zn6YNXGdXgZI="},"flags/4x3/mm-6d0d207d662477110f2b863488088818d8400386358dcbc669a2d8c54d1bae16.svg":{"logical_path":"flags/4x3/mm.svg","mtime":"2020-02-08T21:52:35+01:00","size":851,"digest":"6d0d207d662477110f2b863488088818d8400386358dcbc669a2d8c54d1bae16","integrity":"sha256-bQ0gfWYkdxEPK4Y0iAiIGNhAA4Y1jcvGaaLYxU0brhY="},"flags/1x1/mm-de7d46b6543343af61ba997045cb41a707bd0db1e7a5879971ca8fddcbdf9e99.svg":{"logical_path":"flags/1x1/mm.svg","mtime":"2020-02-08T21:52:35+01:00","size":868,"digest":"de7d46b6543343af61ba997045cb41a707bd0db1e7a5879971ca8fddcbdf9e99","integrity":"sha256-3n1GtlQzQ69huplwRctBpwe9DbHnpYeZccqP3cvfnpk="},"flags/4x3/mn-656eb51e88bfce82401e4080eb791ddf16d571cbba102cdd4316c5de4711ac65.svg":{"logical_path":"flags/4x3/mn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1256,"digest":"656eb51e88bfce82401e4080eb791ddf16d571cbba102cdd4316c5de4711ac65","integrity":"sha256-ZW61Hoi/zoJAHkCA63kd3xbVccu6ECzdQxbF3kcRrGU="},"flags/1x1/mn-ad22cb2c195a7d8ca8e4174db011d5f58238ee25039b5b2da2649d8ca8b00123.svg":{"logical_path":"flags/1x1/mn.svg","mtime":"2020-02-08T21:52:35+01:00","size":1263,"digest":"ad22cb2c195a7d8ca8e4174db011d5f58238ee25039b5b2da2649d8ca8b00123","integrity":"sha256-rSLLLBlafYyo5BdNsBHV9YI47iUDm1stomSdjKiwASM="},"flags/4x3/mo-37a1088aa687af13951bc93886e3e51cb246eccfde1b56528f189327ea291792.svg":{"logical_path":"flags/4x3/mo.svg","mtime":"2020-02-08T21:52:35+01:00","size":1516,"digest":"37a1088aa687af13951bc93886e3e51cb246eccfde1b56528f189327ea291792","integrity":"sha256-N6EIiqaHrxOVG8k4huPlHLJG7M/eG1ZSjxiTJ+opF5I="},"flags/1x1/mo-b463a1c37b69131d662e3fb2ae937583458824a09bcf68fc7ed2d7fd729138d1.svg":{"logical_path":"flags/1x1/mo.svg","mtime":"2020-02-08T21:52:35+01:00","size":1550,"digest":"b463a1c37b69131d662e3fb2ae937583458824a09bcf68fc7ed2d7fd729138d1","integrity":"sha256-tGOhw3tpEx1mLj+yrpN1g0WIJKCbz2j8ftLX/XKRONE="},"flags/4x3/mp-ecd12cadc358fdf293e856c0a3ffc09409123cabd3c7201225b2d21b59551e14.svg":{"logical_path":"flags/4x3/mp.svg","mtime":"2020-02-08T21:52:35+01:00","size":23425,"digest":"ecd12cadc358fdf293e856c0a3ffc09409123cabd3c7201225b2d21b59551e14","integrity":"sha256-7NEsrcNY/fKT6FbAo//AlAkSPKvTxyASJbLSG1lVHhQ="},"flags/1x1/mp-d1f4ba10c1409e713253f1fbb107eeccbd4ec1a8f9036663f1ac1991aee53835.svg":{"logical_path":"flags/1x1/mp.svg","mtime":"2020-02-08T21:52:35+01:00","size":23663,"digest":"d1f4ba10c1409e713253f1fbb107eeccbd4ec1a8f9036663f1ac1991aee53835","integrity":"sha256-0fS6EMFAnnEyU/H7sQfuzL1Owaj5A2Zj8awZka7lODU="},"flags/4x3/mq-b4e1b08a93c1364c79e6d61f95b16fca5b884da6e77835bc0e0adfff8ecc2d7f.svg":{"logical_path":"flags/4x3/mq.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"b4e1b08a93c1364c79e6d61f95b16fca5b884da6e77835bc0e0adfff8ecc2d7f","integrity":"sha256-tOGwipPBNkx55tYflbFvyluITabneDW8Dgrf/47MLX8="},"flags/1x1/mq-19cb6f7cb7354c3fd40e987c93a2d76329d34b2ed3873c3f25fe56802f251ea8.svg":{"logical_path":"flags/1x1/mq.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"19cb6f7cb7354c3fd40e987c93a2d76329d34b2ed3873c3f25fe56802f251ea8","integrity":"sha256-GctvfLc1TD/UDph8k6LXYynTSy7Thzw/Jf5WgC8lHqg="},"flags/4x3/mr-9f64af3ed5c6d8d1f68b5cb09fd1aa9d28c3c95107e063f64a0ef95f0cb9429a.svg":{"logical_path":"flags/4x3/mr.svg","mtime":"2020-02-08T21:52:35+01:00","size":450,"digest":"9f64af3ed5c6d8d1f68b5cb09fd1aa9d28c3c95107e063f64a0ef95f0cb9429a","integrity":"sha256-n2SvPtXG2NH2i1ywn9GqnSjDyVEH4GP2Sg75Xwy5Qpo="},"flags/1x1/mr-0e79b7bcc669bb871d94021db2b78b162b9867c7eaf934d8f7a3025fd5903576.svg":{"logical_path":"flags/1x1/mr.svg","mtime":"2020-02-08T21:52:35+01:00","size":438,"digest":"0e79b7bcc669bb871d94021db2b78b162b9867c7eaf934d8f7a3025fd5903576","integrity":"sha256-Dnm3vMZpu4cdlAIdsreLFiuYZ8fq+TTY96MCX9WQNXY="},"flags/4x3/ms-32620dd70353777b2ee62951556976f398cd38ae359b5a8c97311a1dc61eb8bc.svg":{"logical_path":"flags/4x3/ms.svg","mtime":"2020-02-08T21:52:35+01:00","size":6792,"digest":"32620dd70353777b2ee62951556976f398cd38ae359b5a8c97311a1dc61eb8bc","integrity":"sha256-MmIN1wNTd3su5ilRVWl285jNOK41m1qMlzEaHcYeuLw="},"flags/1x1/ms-4104d4f36cb5cf1c6de78e52e90bc3c5b8bfa262617b16a737673feb8c30a00c.svg":{"logical_path":"flags/1x1/ms.svg","mtime":"2020-02-08T21:52:35+01:00","size":6700,"digest":"4104d4f36cb5cf1c6de78e52e90bc3c5b8bfa262617b16a737673feb8c30a00c","integrity":"sha256-QQTU82y1zxxt545S6QvDxbi/omJhexanN2c/64wwoAw="},"flags/4x3/mt-0c9819aa69b34b84c1ee43620922737122eb38f107be9864a0690ac66ef8aa64.svg":{"logical_path":"flags/4x3/mt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8807,"digest":"0c9819aa69b34b84c1ee43620922737122eb38f107be9864a0690ac66ef8aa64","integrity":"sha256-DJgZqmmzS4TB7kNiCSJzcSLrOPEHvphkoGkKxm74qmQ="},"flags/1x1/mt-3c3fe71f2a2bf0d961fd145ad7e48ca1e9d3a05cce514354714ba4568503d106.svg":{"logical_path":"flags/1x1/mt.svg","mtime":"2020-02-08T21:52:35+01:00","size":10519,"digest":"3c3fe71f2a2bf0d961fd145ad7e48ca1e9d3a05cce514354714ba4568503d106","integrity":"sha256-PD/nHyor8Nlh/RRa1+SMoenToFzOUUNUcUukVoUD0QY="},"flags/4x3/mu-c78c23f1499756b9db762ae434ca354d1481447fa94c66bc10aca9443b399059.svg":{"logical_path":"flags/4x3/mu.svg","mtime":"2020-02-08T21:52:35+01:00","size":322,"digest":"c78c23f1499756b9db762ae434ca354d1481447fa94c66bc10aca9443b399059","integrity":"sha256-x4wj8UmXVrnbdirkNMo1TRSBRH+pTGa8EKypRDs5kFk="},"flags/1x1/mu-91ebc79d0fa306127ea8b7a33f77d5b28f35c516ea91ff0468c7344dc838db69.svg":{"logical_path":"flags/1x1/mu.svg","mtime":"2020-02-08T21:52:35+01:00","size":322,"digest":"91ebc79d0fa306127ea8b7a33f77d5b28f35c516ea91ff0468c7344dc838db69","integrity":"sha256-kevHnQ+jBhJ+qLejP3fVso81xRbqkf8EaMc0Tcg422k="},"flags/4x3/mv-a17c947e17adae6aacef01a3e131c4150aa094911b53fbaead41783683e008eb.svg":{"logical_path":"flags/4x3/mv.svg","mtime":"2020-02-08T21:52:35+01:00","size":292,"digest":"a17c947e17adae6aacef01a3e131c4150aa094911b53fbaead41783683e008eb","integrity":"sha256-oXyUfhetrmqs7wGj4THEFQqglJEbU/uurUF4NoPgCOs="},"flags/1x1/mv-d138e94d9d2ed093ef1425c1164493b780202f9a7f7937241a7b081b79ff8b01.svg":{"logical_path":"flags/1x1/mv.svg","mtime":"2020-02-08T21:52:35+01:00","size":310,"digest":"d138e94d9d2ed093ef1425c1164493b780202f9a7f7937241a7b081b79ff8b01","integrity":"sha256-0TjpTZ0u0JPvFCXBFkSTt4AgL5p/eTckGnsIG3n/iwE="},"flags/4x3/mw-21f116afdf71df80e3c59084c6ba640814fa5389430328ff55c9403b5c239632.svg":{"logical_path":"flags/4x3/mw.svg","mtime":"2020-02-08T21:52:35+01:00","size":3721,"digest":"21f116afdf71df80e3c59084c6ba640814fa5389430328ff55c9403b5c239632","integrity":"sha256-IfEWr99x34DjxZCExrpkCBT6U4lDAyj/VclAO1wjljI="},"flags/1x1/mw-5c2228d3f1cf1f9cf8cb158e813202981828c11e8caf117836fc57fa6bc1c788.svg":{"logical_path":"flags/1x1/mw.svg","mtime":"2020-02-08T21:52:35+01:00","size":3930,"digest":"5c2228d3f1cf1f9cf8cb158e813202981828c11e8caf117836fc57fa6bc1c788","integrity":"sha256-XCIo0/HPH5z4yxWOgTICmBgowR6MrxF4NvxX+mvBx4g="},"flags/4x3/mx-a235f9b16921590b7e78caa6f76339361356946eaf0046badd10732b4647c0b6.svg":{"logical_path":"flags/4x3/mx.svg","mtime":"2020-02-08T21:52:35+01:00","size":95864,"digest":"a235f9b16921590b7e78caa6f76339361356946eaf0046badd10732b4647c0b6","integrity":"sha256-ojX5sWkhWQt+eMqm92M5NhNWlG6vAEa63RBzK0ZHwLY="},"flags/1x1/mx-cdab01ebcdccc020ca16e1355ef1fd18ca0043b501f399ca8edc48adfa8c7292.svg":{"logical_path":"flags/1x1/mx.svg","mtime":"2020-02-08T21:52:35+01:00","size":91341,"digest":"cdab01ebcdccc020ca16e1355ef1fd18ca0043b501f399ca8edc48adfa8c7292","integrity":"sha256-zasB683MwCDKFuE1XvH9GMoAQ7UB85nKjtxIrfqMcpI="},"flags/4x3/my-0ed63574cf5f20c0663ab8cd1f700e150fb641fd0b93602ba013abbfaae5ee59.svg":{"logical_path":"flags/4x3/my.svg","mtime":"2020-02-08T21:52:35+01:00","size":1284,"digest":"0ed63574cf5f20c0663ab8cd1f700e150fb641fd0b93602ba013abbfaae5ee59","integrity":"sha256-DtY1dM9fIMBmOrjNH3AOFQ+2Qf0Lk2AroBOrv6rl7lk="},"flags/1x1/my-5e8d31ef06ffc8af33a5616d760592ecd022c52afc8ba33c721f1e4989da0628.svg":{"logical_path":"flags/1x1/my.svg","mtime":"2020-02-08T21:52:35+01:00","size":1275,"digest":"5e8d31ef06ffc8af33a5616d760592ecd022c52afc8ba33c721f1e4989da0628","integrity":"sha256-Xo0x7wb/yK8zpWFtdgWS7NAixSr8i6M8ch8eSYnaBig="},"flags/4x3/mz-752e2293917b1d2ece3f097104caeadf6a679054a779e9d3be8e49dc324bb88a.svg":{"logical_path":"flags/4x3/mz.svg","mtime":"2020-02-08T21:52:35+01:00","size":2623,"digest":"752e2293917b1d2ece3f097104caeadf6a679054a779e9d3be8e49dc324bb88a","integrity":"sha256-dS4ik5F7HS7OPwlxBMrq32pnkFSneenTvo5J3DJLuIo="},"flags/1x1/mz-300cba975ad43c962ceca0d266ded1fe3d21d6b4d701d657fb42b27268ea2964.svg":{"logical_path":"flags/1x1/mz.svg","mtime":"2020-02-08T21:52:35+01:00","size":2604,"digest":"300cba975ad43c962ceca0d266ded1fe3d21d6b4d701d657fb42b27268ea2964","integrity":"sha256-MAy6l1rUPJYs7KDSZt7R/j0h1rTXAdZX+0KycmjqKWQ="},"flags/4x3/na-a0655a2e70751278e6a60d31e818f672864a6e68e8b3d3361b2fbb70fa9bfef8.svg":{"logical_path":"flags/4x3/na.svg","mtime":"2020-02-08T21:52:35+01:00","size":1005,"digest":"a0655a2e70751278e6a60d31e818f672864a6e68e8b3d3361b2fbb70fa9bfef8","integrity":"sha256-oGVaLnB1Enjmpg0x6Bj2coZKbmjos9M2Gy+7cPqb/vg="},"flags/1x1/na-1ce089a189db5be15eb05df8155f9bd017b61fc1a497e5b3021ff2ca664e122d.svg":{"logical_path":"flags/1x1/na.svg","mtime":"2020-02-08T21:52:35+01:00","size":983,"digest":"1ce089a189db5be15eb05df8155f9bd017b61fc1a497e5b3021ff2ca664e122d","integrity":"sha256-HOCJoYnbW+FesF34FV+b0Be2H8Gkl+WzAh/yymZOEi0="},"flags/4x3/nc-0c7171d91c44414ed69808611db588f1283ee7e34ea8a74a9a5101ba4b1cb305.svg":{"logical_path":"flags/4x3/nc.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"0c7171d91c44414ed69808611db588f1283ee7e34ea8a74a9a5101ba4b1cb305","integrity":"sha256-DHFx2RxEQU7WmAhhHbWI8Sg+5+NOqKdKmlEBukscswU="},"flags/1x1/nc-d3a1629f06dc3200af7669f2d895fce1908d2c1ca02d71e530bdfa6646a9516c.svg":{"logical_path":"flags/1x1/nc.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"d3a1629f06dc3200af7669f2d895fce1908d2c1ca02d71e530bdfa6646a9516c","integrity":"sha256-06FinwbcMgCvdmny2JX84ZCNLBygLXHlML36ZkapUWw="},"flags/4x3/ne-2b61d30a6cb4554535538e3b753926853e8c629a494a347286b9731c803548e4.svg":{"logical_path":"flags/4x3/ne.svg","mtime":"2020-02-08T21:52:35+01:00","size":279,"digest":"2b61d30a6cb4554535538e3b753926853e8c629a494a347286b9731c803548e4","integrity":"sha256-K2HTCmy0VUU1U447dTkmhT6MYppJSjRyhrlzHIA1SOQ="},"flags/1x1/ne-9c5f798ccd7d3dd3771ae628b4a39dfb2a4578fefd2e006f3ce89c3e494d0cb1.svg":{"logical_path":"flags/1x1/ne.svg","mtime":"2020-02-08T21:52:35+01:00","size":285,"digest":"9c5f798ccd7d3dd3771ae628b4a39dfb2a4578fefd2e006f3ce89c3e494d0cb1","integrity":"sha256-nF95jM19PdN3GuYotKOd+ypFeP79LgBvPOicPklNDLE="},"flags/4x3/nf-4e615baa83a8b4db3e39fe1d251ab913943d64e0cd320f251d619ab54e7512d3.svg":{"logical_path":"flags/4x3/nf.svg","mtime":"2020-02-08T21:52:35+01:00","size":5845,"digest":"4e615baa83a8b4db3e39fe1d251ab913943d64e0cd320f251d619ab54e7512d3","integrity":"sha256-TmFbqoOotNs+Of4dJRq5E5Q9ZODNMg8lHWGatU51EtM="},"flags/1x1/nf-45403247c90050484813acf23c50f543779528e346317274373c3c24fd830103.svg":{"logical_path":"flags/1x1/nf.svg","mtime":"2020-02-08T21:52:35+01:00","size":5598,"digest":"45403247c90050484813acf23c50f543779528e346317274373c3c24fd830103","integrity":"sha256-RUAyR8kAUEhIE6zyPFD1Q3eVKONGMXJ0Nzw8JP2DAQM="},"flags/4x3/ng-d52fd188be973f31dd34e5a0b3fed0de68fe736c8a41c6028d9c248c038c8641.svg":{"logical_path":"flags/4x3/ng.svg","mtime":"2020-02-08T21:52:35+01:00","size":263,"digest":"d52fd188be973f31dd34e5a0b3fed0de68fe736c8a41c6028d9c248c038c8641","integrity":"sha256-1S/RiL6XPzHdNOWgs/7Q3mj+c2yKQcYCjZwkjAOMhkE="},"flags/1x1/ng-f22edcc5867554d69ecbe15add0fbbb1389631f3ced07a4f820065c7770c65f5.svg":{"logical_path":"flags/1x1/ng.svg","mtime":"2020-02-08T21:52:35+01:00","size":263,"digest":"f22edcc5867554d69ecbe15add0fbbb1389631f3ced07a4f820065c7770c65f5","integrity":"sha256-8i7cxYZ1VNaey+Fa3Q+7sTiWMfPO0HpPggBlx3cMZfU="},"flags/4x3/ni-2fbb883e46fbe3b2ecfed9dac004ceb546f25c77a84a5966eea224674aebc610.svg":{"logical_path":"flags/4x3/ni.svg","mtime":"2020-02-08T21:52:35+01:00","size":18584,"digest":"2fbb883e46fbe3b2ecfed9dac004ceb546f25c77a84a5966eea224674aebc610","integrity":"sha256-L7uIPkb747Ls/tnawATOtUbyXHeoSllm7qIkZ0rrxhA="},"flags/1x1/ni-214aed148b615c4846f842b47f99cf178ac62a96cf18c5dd6b23467184b56680.svg":{"logical_path":"flags/1x1/ni.svg","mtime":"2020-02-08T21:52:35+01:00","size":18664,"digest":"214aed148b615c4846f842b47f99cf178ac62a96cf18c5dd6b23467184b56680","integrity":"sha256-IUrtFIthXEhG+EK0f5nPF4rGKpbPGMXdayNGcYS1ZoA="},"flags/4x3/nl-4f0ecea529dd4c0099dd41a7801fa5ac44aa04cd872ca31e11efd58b5a813774.svg":{"logical_path":"flags/4x3/nl.svg","mtime":"2020-02-08T21:52:35+01:00","size":367,"digest":"4f0ecea529dd4c0099dd41a7801fa5ac44aa04cd872ca31e11efd58b5a813774","integrity":"sha256-Tw7OpSndTACZ3UGngB+lrESqBM2HLKMeEe/Vi1qBN3Q="},"flags/1x1/nl-9c8f60e638879d642487818975e58c61cd3102f0e68c360708243c076436ff68.svg":{"logical_path":"flags/1x1/nl.svg","mtime":"2020-02-08T21:52:35+01:00","size":375,"digest":"9c8f60e638879d642487818975e58c61cd3102f0e68c360708243c076436ff68","integrity":"sha256-nI9g5jiHnWQkh4GJdeWMYc0xAvDmjDYHCCQ8B2Q2/2g="},"flags/4x3/no-270f7ee9d1d2efa6abf16f693faba8586adae842d79d8aad9e3f37e96c27cbce.svg":{"logical_path":"flags/4x3/no.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"270f7ee9d1d2efa6abf16f693faba8586adae842d79d8aad9e3f37e96c27cbce","integrity":"sha256-Jw9+6dHS76ar8W9pP6uoWGra6ELXnYqtnj836Wwny84="},"flags/1x1/no-7d377325e8c5ec4de0376e9f4c13463f183af637e6c443716f22020c7a313979.svg":{"logical_path":"flags/1x1/no.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"7d377325e8c5ec4de0376e9f4c13463f183af637e6c443716f22020c7a313979","integrity":"sha256-fTdzJejF7E3gN26fTBNGPxg69jfmxENxbyICDHoxOXk="},"flags/4x3/np-69637ddb3a173c4522a71598278aa32462e1762e34dd99c9dc99a515433a6cf8.svg":{"logical_path":"flags/4x3/np.svg","mtime":"2020-02-08T21:52:35+01:00","size":1061,"digest":"69637ddb3a173c4522a71598278aa32462e1762e34dd99c9dc99a515433a6cf8","integrity":"sha256-aWN92zoXPEUipxWYJ4qjJGLhdi403ZnJ3JmlFUM6bPg="},"flags/1x1/np-44ead118cce3a1fcbb720cc8d6eab6ecb6b62292315f61ae5963a40262ee11d2.svg":{"logical_path":"flags/1x1/np.svg","mtime":"2020-02-08T21:52:35+01:00","size":1199,"digest":"44ead118cce3a1fcbb720cc8d6eab6ecb6b62292315f61ae5963a40262ee11d2","integrity":"sha256-ROrRGMzjofy7cgzI1uq27La2IpIxX2GuWWOkAmLuEdI="},"flags/4x3/nr-0bd3c0ba7bbac4bd5985b838096eeebd67711d39065619ef092fa4bb55b22a6d.svg":{"logical_path":"flags/4x3/nr.svg","mtime":"2020-02-08T21:52:35+01:00","size":648,"digest":"0bd3c0ba7bbac4bd5985b838096eeebd67711d39065619ef092fa4bb55b22a6d","integrity":"sha256-C9PAunu6xL1Zhbg4CW7uvWdxHTkGVhnvCS+ku1WyKm0="},"flags/1x1/nr-63b9c44e5dd66a59895f52707dc24db5bd1eab6e535298d24e414c0f2dafcb3c.svg":{"logical_path":"flags/1x1/nr.svg","mtime":"2020-02-08T21:52:35+01:00","size":671,"digest":"63b9c44e5dd66a59895f52707dc24db5bd1eab6e535298d24e414c0f2dafcb3c","integrity":"sha256-Y7nETl3WalmJX1JwfcJNtb0eq25TUpjSTkFMDy2vyzw="},"flags/4x3/nu-259989e1eea0cbf6b41a33176a4c9c1eaa2e7ae6571ad80a324c6309bd5aa5fc.svg":{"logical_path":"flags/4x3/nu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1748,"digest":"259989e1eea0cbf6b41a33176a4c9c1eaa2e7ae6571ad80a324c6309bd5aa5fc","integrity":"sha256-JZmJ4e6gy/a0GjMXakycHqoueuZXGtgKMkxjCb1apfw="},"flags/1x1/nu-1cb535708f64ed8b386a245e571e677e935009af92f2b214760a2832c1ee1b53.svg":{"logical_path":"flags/1x1/nu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1736,"digest":"1cb535708f64ed8b386a245e571e677e935009af92f2b214760a2832c1ee1b53","integrity":"sha256-HLU1cI9k7Ys4aiReVx5nfpNQCa+S8rIUdgooMsHuG1M="},"flags/4x3/nz-90ceca2a683fbec395a91b77b0880cea99c3b2cbdb24caa5474925cbdcc3675e.svg":{"logical_path":"flags/4x3/nz.svg","mtime":"2020-02-08T21:52:35+01:00","size":3019,"digest":"90ceca2a683fbec395a91b77b0880cea99c3b2cbdb24caa5474925cbdcc3675e","integrity":"sha256-kM7KKmg/vsOVqRt3sIgM6pnDssvbJMqlR0kly9zDZ14="},"flags/1x1/nz-b0d78f165a72edd46599222a2ea5f6a91a8252975cb03e33c4ca08e389859aac.svg":{"logical_path":"flags/1x1/nz.svg","mtime":"2020-02-08T21:52:35+01:00","size":3045,"digest":"b0d78f165a72edd46599222a2ea5f6a91a8252975cb03e33c4ca08e389859aac","integrity":"sha256-sNePFlpy7dRlmSIqLqX2qRqCUpdcsD4zxMoI44mFmqw="},"flags/4x3/om-aadcca7bc7ad318400097b84849dd64c4744306cd9b4f152fba34f2e84116965.svg":{"logical_path":"flags/4x3/om.svg","mtime":"2020-02-08T21:52:35+01:00","size":22891,"digest":"aadcca7bc7ad318400097b84849dd64c4744306cd9b4f152fba34f2e84116965","integrity":"sha256-qtzKe8etMYQACXuEhJ3WTEdEMGzZtPFS+6NPLoQRaWU="},"flags/1x1/om-705e2bd2b2fc7d13c152aa06bfb9e6ee4ad8b299f8c06ca16adad0b18b2b18ed.svg":{"logical_path":"flags/1x1/om.svg","mtime":"2020-02-08T21:52:35+01:00","size":22875,"digest":"705e2bd2b2fc7d13c152aa06bfb9e6ee4ad8b299f8c06ca16adad0b18b2b18ed","integrity":"sha256-cF4r0rL8fRPBUqoGv7nm7krYspn4wGyhatrQsYsrGO0="},"flags/4x3/pa-027e679bd65dcaa2c53145a14669c1e674a467a889ef702cbe2a260f7ca8ad38.svg":{"logical_path":"flags/4x3/pa.svg","mtime":"2020-02-08T21:52:35+01:00","size":746,"digest":"027e679bd65dcaa2c53145a14669c1e674a467a889ef702cbe2a260f7ca8ad38","integrity":"sha256-An5nm9ZdyqLFMUWhRmnB5nSkZ6iJ73AsviomD3yorTg="},"flags/1x1/pa-edeb4faeadaa286de7fdc667e25d38ad0cdbccaec5023182fed6a3c74e8b09eb.svg":{"logical_path":"flags/1x1/pa.svg","mtime":"2020-02-08T21:52:35+01:00","size":662,"digest":"edeb4faeadaa286de7fdc667e25d38ad0cdbccaec5023182fed6a3c74e8b09eb","integrity":"sha256-7etPrq2qKG3n/cZn4l04rQzbzK7FAjGC/tajx06LCes="},"flags/4x3/pe-7ec59842737c90d6ff543f1831fd69b51e1e7ee1b068c3ac6259cbf2c214d611.svg":{"logical_path":"flags/4x3/pe.svg","mtime":"2020-02-08T21:52:35+01:00","size":74343,"digest":"7ec59842737c90d6ff543f1831fd69b51e1e7ee1b068c3ac6259cbf2c214d611","integrity":"sha256-fsWYQnN8kNb/VD8YMf1ptR4efuGwaMOsYlnL8sIU1hE="},"flags/1x1/pe-97d1b8ed1d4ed5e5f0348a731ca4a3a4b9abc7d440447dc87a521f229f375ed3.svg":{"logical_path":"flags/1x1/pe.svg","mtime":"2020-02-08T21:52:35+01:00","size":73629,"digest":"97d1b8ed1d4ed5e5f0348a731ca4a3a4b9abc7d440447dc87a521f229f375ed3","integrity":"sha256-l9G47R1O1eXwNIpzHKSjpLmrx9RARH3IelIfIp83XtM="},"flags/4x3/pf-27955c73c5be4043c5b7ddf64c8f46d11c6648e3b1fc0efe028b8afea21a40e1.svg":{"logical_path":"flags/4x3/pf.svg","mtime":"2020-02-08T21:52:35+01:00","size":4292,"digest":"27955c73c5be4043c5b7ddf64c8f46d11c6648e3b1fc0efe028b8afea21a40e1","integrity":"sha256-J5Vcc8W+QEPFt932TI9G0RxmSOOx/A7+AouK/qIaQOE="},"flags/1x1/pf-83e3e1d36fba45e015c62f938e6d182029edc05ebfdc50bcb33860f36f96d73a.svg":{"logical_path":"flags/1x1/pf.svg","mtime":"2020-02-08T21:52:35+01:00","size":4235,"digest":"83e3e1d36fba45e015c62f938e6d182029edc05ebfdc50bcb33860f36f96d73a","integrity":"sha256-g+Ph02+6ReAVxi+Tjm0YICntwF6/3FC8szhg82+W1zo="},"flags/4x3/pg-c2fdd2551f9044c461eccfae2d7ba0a347a99143f6002b71a429942af0217897.svg":{"logical_path":"flags/4x3/pg.svg","mtime":"2020-02-08T21:52:35+01:00","size":1671,"digest":"c2fdd2551f9044c461eccfae2d7ba0a347a99143f6002b71a429942af0217897","integrity":"sha256-wv3SVR+QRMRh7M+uLXugo0epkUP2ACtxpCmUKvAheJc="},"flags/1x1/pg-cf60257fa85f9270b1e9980e703435186110167f76c153bc460c10ee8b2d4b09.svg":{"logical_path":"flags/1x1/pg.svg","mtime":"2020-02-08T21:52:35+01:00","size":2111,"digest":"cf60257fa85f9270b1e9980e703435186110167f76c153bc460c10ee8b2d4b09","integrity":"sha256-z2Alf6hfknCx6ZgOcDQ1GGEQFn92wVO8RgwQ7ostSwk="},"flags/4x3/ph-bf3394850a6cec6a535420eabce263e7f8193413e4af1fb317c76da025388c1b.svg":{"logical_path":"flags/4x3/ph.svg","mtime":"2020-02-08T21:52:35+01:00","size":1303,"digest":"bf3394850a6cec6a535420eabce263e7f8193413e4af1fb317c76da025388c1b","integrity":"sha256-vzOUhQps7GpTVCDqvOJj5/gZNBPkrx+zF8dtoCU4jBs="},"flags/1x1/ph-006c3218effe4269252cb9638de82ea339eb2894951705c630533ceffa842169.svg":{"logical_path":"flags/1x1/ph.svg","mtime":"2020-02-08T21:52:35+01:00","size":1303,"digest":"006c3218effe4269252cb9638de82ea339eb2894951705c630533ceffa842169","integrity":"sha256-AGwyGO/+QmklLLljjeguoznrKJSVFwXGMFM87/qEIWk="},"flags/4x3/pk-b64f6a32e5bb598f57cfe49c4899c2021f2d153653f3d92101e6e11b2158e500.svg":{"logical_path":"flags/4x3/pk.svg","mtime":"2020-02-08T21:52:35+01:00","size":743,"digest":"b64f6a32e5bb598f57cfe49c4899c2021f2d153653f3d92101e6e11b2158e500","integrity":"sha256-tk9qMuW7WY9Xz+ScSJnCAh8tFTZT89khAebhGyFY5QA="},"flags/1x1/pk-d2d58def913c9081c5eeeda5f0b6895068ec13c955694e359531e23422145e60.svg":{"logical_path":"flags/1x1/pk.svg","mtime":"2020-02-08T21:52:35+01:00","size":694,"digest":"d2d58def913c9081c5eeeda5f0b6895068ec13c955694e359531e23422145e60","integrity":"sha256-0tWN75E8kIHF7u2l8LaJUGjsE8lVaU41lTHiNCIUXmA="},"flags/4x3/pl-f55a710991a94c2e6c2f9f1a7a4a36ebb84b24b7c9d9df4e1ffe86d61321fa6f.svg":{"logical_path":"flags/4x3/pl.svg","mtime":"2020-02-08T21:52:35+01:00","size":228,"digest":"f55a710991a94c2e6c2f9f1a7a4a36ebb84b24b7c9d9df4e1ffe86d61321fa6f","integrity":"sha256-9VpxCZGpTC5sL58aeko267hLJLfJ2d9OH/6G1hMh+m8="},"flags/1x1/pl-fafb539259385f2b99df910cff085710a9b4d9706b74e4e0f8a6ef627615c4e7.svg":{"logical_path":"flags/1x1/pl.svg","mtime":"2020-02-08T21:52:35+01:00","size":228,"digest":"fafb539259385f2b99df910cff085710a9b4d9706b74e4e0f8a6ef627615c4e7","integrity":"sha256-+vtTklk4XyuZ35EM/whXEKm02XBrdOTg+KbvYnYVxOc="},"flags/4x3/pm-8f6338d2ae3e0e42adc9754720ca21ad4979095cf6d7467a8db5a5a1c3e0b2a5.svg":{"logical_path":"flags/4x3/pm.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"8f6338d2ae3e0e42adc9754720ca21ad4979095cf6d7467a8db5a5a1c3e0b2a5","integrity":"sha256-j2M40q4+DkKtyXVHIMohrUl5CVz210Z6jbWlocPgsqU="},"flags/1x1/pm-63029c6198dc42c404ec39807a99528b1d198eeeea6f9a1e309548242480140b.svg":{"logical_path":"flags/1x1/pm.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"63029c6198dc42c404ec39807a99528b1d198eeeea6f9a1e309548242480140b","integrity":"sha256-YwKcYZjcQsQE7DmAeplSix0Zju7qb5oeMJVIJCSAFAs="},"flags/4x3/pn-4006c11ca83011c0dd60a13ac30b27da0578b9f1368bd8c6de5aab423f6662d8.svg":{"logical_path":"flags/4x3/pn.svg","mtime":"2020-02-08T21:52:35+01:00","size":10953,"digest":"4006c11ca83011c0dd60a13ac30b27da0578b9f1368bd8c6de5aab423f6662d8","integrity":"sha256-QAbBHKgwEcDdYKE6wwsn2gV4ufE2i9jG3lqrQj9mYtg="},"flags/1x1/pn-6c433f7f9cb79c6d5ed7bbeade8a495e3b26ca2604f4fd3995096109684ac5dd.svg":{"logical_path":"flags/1x1/pn.svg","mtime":"2020-02-08T21:52:35+01:00","size":8624,"digest":"6c433f7f9cb79c6d5ed7bbeade8a495e3b26ca2604f4fd3995096109684ac5dd","integrity":"sha256-bEM/f5y3nG1e17vq3opJXjsmyiYE9P05lQlhCWhKxd0="},"flags/4x3/pr-6287e1515fa80e2d05133ed93f14ca03a1be6909a9ef6c736fd60f9c9fe73132.svg":{"logical_path":"flags/4x3/pr.svg","mtime":"2020-02-08T21:52:35+01:00","size":634,"digest":"6287e1515fa80e2d05133ed93f14ca03a1be6909a9ef6c736fd60f9c9fe73132","integrity":"sha256-YofhUV+oDi0FEz7ZPxTKA6G+aQmp72xzb9YPnJ/nMTI="},"flags/1x1/pr-526985b3a6d2d6de577ed0ed92d0b49ce854667e3ff630304813fd5af15527cd.svg":{"logical_path":"flags/1x1/pr.svg","mtime":"2020-02-08T21:52:35+01:00","size":622,"digest":"526985b3a6d2d6de577ed0ed92d0b49ce854667e3ff630304813fd5af15527cd","integrity":"sha256-UmmFs6bS1t5XftDtktC0nOhUZn4/9jAwSBP9WvFVJ80="},"flags/4x3/ps-31f50e1fcb44b9aa6e9ce4473c3085f744e70ea0fa1fd8d85787f4e7b0c4a69b.svg":{"logical_path":"flags/4x3/ps.svg","mtime":"2020-02-08T21:52:35+01:00","size":558,"digest":"31f50e1fcb44b9aa6e9ce4473c3085f744e70ea0fa1fd8d85787f4e7b0c4a69b","integrity":"sha256-MfUOH8tEuapunORHPDCF90TnDqD6H9jYV4f057DEpps="},"flags/1x1/ps-c43918bc71bef71b24dd46e8cacc53e0df53e02dcce6199d06d11a4637f08a04.svg":{"logical_path":"flags/1x1/ps.svg","mtime":"2020-02-08T21:52:35+01:00","size":544,"digest":"c43918bc71bef71b24dd46e8cacc53e0df53e02dcce6199d06d11a4637f08a04","integrity":"sha256-xDkYvHG+9xsk3UboysxT4N9T4C3M5hmdBtEaRjfwigQ="},"flags/4x3/pt-9aab20caed714ee47fc408f017037aea94a649b3ba4d87e2da37870ee31e4f92.svg":{"logical_path":"flags/4x3/pt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8393,"digest":"9aab20caed714ee47fc408f017037aea94a649b3ba4d87e2da37870ee31e4f92","integrity":"sha256-mqsgyu1xTuR/xAjwFwN66pSmSbO6TYfi2jeHDuMeT5I="},"flags/1x1/pt-a309869e5018c9690a65ebdf8a2d69d61f82772068a7920f9680ed0581ae5966.svg":{"logical_path":"flags/1x1/pt.svg","mtime":"2020-02-08T21:52:35+01:00","size":8775,"digest":"a309869e5018c9690a65ebdf8a2d69d61f82772068a7920f9680ed0581ae5966","integrity":"sha256-owmGnlAYyWkKZevfii1p1h+CdyBop5IPloDtBYGuWWY="},"flags/4x3/pw-9262037d114d0f61571c74f9a5455809709b43e6565443ae2667981eecb5f12a.svg":{"logical_path":"flags/4x3/pw.svg","mtime":"2020-02-08T21:52:35+01:00","size":467,"digest":"9262037d114d0f61571c74f9a5455809709b43e6565443ae2667981eecb5f12a","integrity":"sha256-kmIDfRFND2FXHHT5pUVYCXCbQ+ZWVEOuJmeYHuy18So="},"flags/1x1/pw-a6f42019653ae26d43c6e9b7bef83fc98cff8ec5e8d0c50ad7cb0a17d5e565a6.svg":{"logical_path":"flags/1x1/pw.svg","mtime":"2020-02-08T21:52:35+01:00","size":511,"digest":"a6f42019653ae26d43c6e9b7bef83fc98cff8ec5e8d0c50ad7cb0a17d5e565a6","integrity":"sha256-pvQgGWU64m1Dxum3vvg/yYz/jsXo0MUK18sKF9XlZaY="},"flags/4x3/py-5bc9e9f0dee94ae3d9bd80ae6fb1aac297dc81a1c592d0a73bc3383bce73af74.svg":{"logical_path":"flags/4x3/py.svg","mtime":"2020-02-08T21:52:35+01:00","size":17312,"digest":"5bc9e9f0dee94ae3d9bd80ae6fb1aac297dc81a1c592d0a73bc3383bce73af74","integrity":"sha256-W8np8N7pSuPZvYCub7GqwpfcgaHFktCnO8M4O85zr3Q="},"flags/1x1/py-182eff300f4507fd9399fb6310d1cd3b45adadd7924ad2814003c7111ec5c0de.svg":{"logical_path":"flags/1x1/py.svg","mtime":"2020-02-08T21:52:35+01:00","size":17478,"digest":"182eff300f4507fd9399fb6310d1cd3b45adadd7924ad2814003c7111ec5c0de","integrity":"sha256-GC7/MA9FB/2TmftjENHNO0WtrdeSStKBQAPHER7FwN4="},"flags/4x3/qa-32c93970f8e521850eddfaf2a89dfff987f0ae3b0b73a253c301b61cf547cf9e.svg":{"logical_path":"flags/4x3/qa.svg","mtime":"2020-02-08T21:52:35+01:00","size":362,"digest":"32c93970f8e521850eddfaf2a89dfff987f0ae3b0b73a253c301b61cf547cf9e","integrity":"sha256-Msk5cPjlIYUO3fryqJ3/+YfwrjsLc6JTwwG2HPVHz54="},"flags/1x1/qa-182e4d8ace2607d0c02d3c29d65eb084af71092357006bc41cd601981ec3b81c.svg":{"logical_path":"flags/1x1/qa.svg","mtime":"2020-02-08T21:52:35+01:00","size":359,"digest":"182e4d8ace2607d0c02d3c29d65eb084af71092357006bc41cd601981ec3b81c","integrity":"sha256-GC5Nis4mB9DALTwp1l6whK9xCSNXAGvEHNYBmB7DuBw="},"flags/4x3/re-8b2ea1f2727c266a2b80cb12a9b7195f6b656f521552b67893b6761a07f9bc92.svg":{"logical_path":"flags/4x3/re.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"8b2ea1f2727c266a2b80cb12a9b7195f6b656f521552b67893b6761a07f9bc92","integrity":"sha256-iy6h8nJ8JmorgMsSqbcZX2tlb1IVUrZ4k7Z2Ggf5vJI="},"flags/1x1/re-07eb7d855022bc678b47b0ce5fd05da5044d6dde86ad3697d4ae55c68ff447c1.svg":{"logical_path":"flags/1x1/re.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"07eb7d855022bc678b47b0ce5fd05da5044d6dde86ad3697d4ae55c68ff447c1","integrity":"sha256-B+t9hVAivGeLR7DOX9BdpQRNbd6GrTaX1K5Vxo/0R8E="},"flags/4x3/ro-4ab797571e1d9eb326486f75654a4590fd33f20444f85b77ba0997eb6138c21f.svg":{"logical_path":"flags/4x3/ro.svg","mtime":"2020-02-08T21:52:35+01:00","size":308,"digest":"4ab797571e1d9eb326486f75654a4590fd33f20444f85b77ba0997eb6138c21f","integrity":"sha256-SreXVx4dnrMmSG91ZUpFkP0z8gRE+Ft3ugmX62E4wh8="},"flags/1x1/ro-ddfcbaec04d11bf7f95abebd1d3a42b2862b1af8fca9b02764a6ed0e409a1d75.svg":{"logical_path":"flags/1x1/ro.svg","mtime":"2020-02-08T21:52:35+01:00","size":308,"digest":"ddfcbaec04d11bf7f95abebd1d3a42b2862b1af8fca9b02764a6ed0e409a1d75","integrity":"sha256-3fy67ATRG/f5Wr69HTpCsoYrGvj8qbAnZKbtDkCaHXU="},"flags/4x3/rs-dd8a52473ea40e23b393b5f4a30d1edd91865aab167f0c1835ae84b15dcce585.svg":{"logical_path":"flags/4x3/rs.svg","mtime":"2020-02-08T21:52:35+01:00","size":187640,"digest":"dd8a52473ea40e23b393b5f4a30d1edd91865aab167f0c1835ae84b15dcce585","integrity":"sha256-3YpSRz6kDiOzk7X0ow0e3ZGGWqsWfwwYNa6EsV3M5YU="},"flags/1x1/rs-42bf40209c92e4e7169daf29fbcb7253b2804eee7a463051529327f38851f865.svg":{"logical_path":"flags/1x1/rs.svg","mtime":"2020-02-08T21:52:35+01:00","size":187503,"digest":"42bf40209c92e4e7169daf29fbcb7253b2804eee7a463051529327f38851f865","integrity":"sha256-Qr9AIJyS5OcWna8p+8tyU7KATu56RjBRUpMn84hR+GU="},"flags/4x3/ru-13f4525a4caad6e31afa523d2bc4a0c1e6377c0bef1bfd872682130d3f199d1d.svg":{"logical_path":"flags/4x3/ru.svg","mtime":"2020-02-08T21:52:35+01:00","size":289,"digest":"13f4525a4caad6e31afa523d2bc4a0c1e6377c0bef1bfd872682130d3f199d1d","integrity":"sha256-E/RSWkyq1uMa+lI9K8SgweY3fAvvG/2HJoITDT8ZnR0="},"flags/1x1/ru-b9792a963faf667447e0456dba5be80a3b37c197a4284d1539a3433721d9e2fe.svg":{"logical_path":"flags/1x1/ru.svg","mtime":"2020-02-08T21:52:35+01:00","size":293,"digest":"b9792a963faf667447e0456dba5be80a3b37c197a4284d1539a3433721d9e2fe","integrity":"sha256-uXkqlj+vZnRH4EVtulvoCjs3wZekKE0VOaNDNyHZ4v4="},"flags/4x3/rw-bc38bcd6e19d2941839b253af6e863b13338cde1174874f9674471026c15e422.svg":{"logical_path":"flags/4x3/rw.svg","mtime":"2020-02-08T21:52:35+01:00","size":750,"digest":"bc38bcd6e19d2941839b253af6e863b13338cde1174874f9674471026c15e422","integrity":"sha256-vDi81uGdKUGDmyU69uhjsTM4zeEXSHT5Z0RxAmwV5CI="},"flags/1x1/rw-456698123775b83d2b0fa1b9fe073f9ccdba0b6bf39a703b8979dcce158eb32c.svg":{"logical_path":"flags/1x1/rw.svg","mtime":"2020-02-08T21:52:35+01:00","size":751,"digest":"456698123775b83d2b0fa1b9fe073f9ccdba0b6bf39a703b8979dcce158eb32c","integrity":"sha256-RWaYEjd1uD0rD6G5/gc/nM26C2vzmnA7iXnczhWOsyw="},"flags/4x3/sa-2b2fd6abb48415d5407c576c24a24fbd80af5877ef06cf2d026452f6c67f5f4d.svg":{"logical_path":"flags/4x3/sa.svg","mtime":"2020-02-08T21:52:35+01:00","size":10303,"digest":"2b2fd6abb48415d5407c576c24a24fbd80af5877ef06cf2d026452f6c67f5f4d","integrity":"sha256-Ky/Wq7SEFdVAfFdsJKJPvYCvWHfvBs8tAmRS9sZ/X00="},"flags/1x1/sa-d9ebc73e7957f86604164dd5054fb32601ad14d7dfd4bfe73da5bdd10bb2f8ae.svg":{"logical_path":"flags/1x1/sa.svg","mtime":"2020-02-08T21:52:35+01:00","size":10233,"digest":"d9ebc73e7957f86604164dd5054fb32601ad14d7dfd4bfe73da5bdd10bb2f8ae","integrity":"sha256-2evHPnlX+GYEFk3VBU+zJgGtFNff1L/nPaW90Quy+K4="},"flags/4x3/sb-37761927039d0a37ba0995c59fd31bbe36c8a0ca161e5b72b8131e3659f8dddf.svg":{"logical_path":"flags/4x3/sb.svg","mtime":"2020-02-08T21:52:35+01:00","size":950,"digest":"37761927039d0a37ba0995c59fd31bbe36c8a0ca161e5b72b8131e3659f8dddf","integrity":"sha256-N3YZJwOdCje6CZXFn9MbvjbIoMoWHltyuBMeNln43d8="},"flags/1x1/sb-bedbf8464cd82f391bfe6178c63055b650d0cf3aee60c37fa79a586f95783b79.svg":{"logical_path":"flags/1x1/sb.svg","mtime":"2020-02-08T21:52:35+01:00","size":956,"digest":"bedbf8464cd82f391bfe6178c63055b650d0cf3aee60c37fa79a586f95783b79","integrity":"sha256-vtv4RkzYLzkb/mF4xjBVtlDQzzruYMN/p5pYb5V4O3k="},"flags/4x3/sc-f6a2f8f37be93f07600b491b52cb58d80d74b92d8ace0af313f4ce081b0d1345.svg":{"logical_path":"flags/4x3/sc.svg","mtime":"2020-02-08T21:52:35+01:00","size":568,"digest":"f6a2f8f37be93f07600b491b52cb58d80d74b92d8ace0af313f4ce081b0d1345","integrity":"sha256-9qL483vpPwdgC0kbUstY2A10uS2KzgrzE/TOCBsNE0U="},"flags/1x1/sc-5dcd01b98c34460c9624280fb5047811fbae7d976620cd0a70ad4263a9085b60.svg":{"logical_path":"flags/1x1/sc.svg","mtime":"2020-02-08T21:52:35+01:00","size":573,"digest":"5dcd01b98c34460c9624280fb5047811fbae7d976620cd0a70ad4263a9085b60","integrity":"sha256-Xc0BuYw0RgyWJCgPtQR4EfuufZdmIM0KcK1CY6kIW2A="},"flags/4x3/sd-cc9cf97e8a37622b9e1bad28811d46c4471595afa448dc055e0e3aae7687fe4b.svg":{"logical_path":"flags/4x3/sd.svg","mtime":"2020-02-08T21:52:35+01:00","size":494,"digest":"cc9cf97e8a37622b9e1bad28811d46c4471595afa448dc055e0e3aae7687fe4b","integrity":"sha256-zJz5foo3YiueG60ogR1GxEcVla+kSNwFXg46rnaH/ks="},"flags/1x1/sd-1f5d13f9780085acbaad13d959b1918c796ba7b0450954b15d145e87cebe045c.svg":{"logical_path":"flags/1x1/sd.svg","mtime":"2020-02-08T21:52:35+01:00","size":496,"digest":"1f5d13f9780085acbaad13d959b1918c796ba7b0450954b15d145e87cebe045c","integrity":"sha256-H10T+XgAhay6rRPZWbGRjHlrp7BFCVSxXRReh86+BFw="},"flags/4x3/se-84b06bcd5bd90ea8dd6d1c3c8d2799a843c47b0256ce098aef75414964618286.svg":{"logical_path":"flags/4x3/se.svg","mtime":"2020-02-08T21:52:35+01:00","size":688,"digest":"84b06bcd5bd90ea8dd6d1c3c8d2799a843c47b0256ce098aef75414964618286","integrity":"sha256-hLBrzVvZDqjdbRw8jSeZqEPEewJWzgmK73VBSWRhgoY="},"flags/1x1/se-39f128686652cf914f8601110fcc9ac879bca204407013b93aff4ca4fb2ed9bc.svg":{"logical_path":"flags/1x1/se.svg","mtime":"2020-02-08T21:52:35+01:00","size":701,"digest":"39f128686652cf914f8601110fcc9ac879bca204407013b93aff4ca4fb2ed9bc","integrity":"sha256-OfEoaGZSz5FPhgERD8yayHm8ogRAcBO5Ov9MpPsu2bw="},"flags/4x3/sg-a82acd90077e76318ddb0be96999d9695b9a9f4627e8a0f341d3987a62747dcc.svg":{"logical_path":"flags/4x3/sg.svg","mtime":"2020-02-08T21:52:35+01:00","size":890,"digest":"a82acd90077e76318ddb0be96999d9695b9a9f4627e8a0f341d3987a62747dcc","integrity":"sha256-qCrNkAd+djGN2wvpaZnZaVuan0Yn6KDzQdOYemJ0fcw="},"flags/1x1/sg-c22e093634568aae249bf35f9ddcaa6796b5f27d76c39ff5336abf7f1b8a47d4.svg":{"logical_path":"flags/1x1/sg.svg","mtime":"2020-02-08T21:52:35+01:00","size":954,"digest":"c22e093634568aae249bf35f9ddcaa6796b5f27d76c39ff5336abf7f1b8a47d4","integrity":"sha256-wi4JNjRWiq4km/NfndyqZ5a18n12w5/1M2q/fxuKR9Q="},"flags/4x3/sh-57470d9a75955f0fac605a94e853bab524c7461a4c025e809fb09db762ebe46f.svg":{"logical_path":"flags/4x3/sh.svg","mtime":"2020-02-08T21:52:35+01:00","size":29702,"digest":"57470d9a75955f0fac605a94e853bab524c7461a4c025e809fb09db762ebe46f","integrity":"sha256-V0cNmnWVXw+sYFqU6FO6tSTHRhpMAl6An7Cdt2Lr5G8="},"flags/1x1/sh-8d06a0fff61e51eb65357d138e00736545835b8649aa2694152f4cdc9f941c16.svg":{"logical_path":"flags/1x1/sh.svg","mtime":"2020-02-08T21:52:35+01:00","size":30308,"digest":"8d06a0fff61e51eb65357d138e00736545835b8649aa2694152f4cdc9f941c16","integrity":"sha256-jQag//YeUetlNX0TjgBzZUWDW4ZJqiaUFS9M3J+UHBY="},"flags/4x3/si-289d6417f154323e7922df09ffc0f49ded31548c7ee8020c39cb85724ffbcea8.svg":{"logical_path":"flags/4x3/si.svg","mtime":"2020-02-08T21:52:35+01:00","size":2055,"digest":"289d6417f154323e7922df09ffc0f49ded31548c7ee8020c39cb85724ffbcea8","integrity":"sha256-KJ1kF/FUMj55It8J/8D0ne0xVIx+6AIMOcuFck/7zqg="},"flags/1x1/si-ca40a5f4f38119d6f52ffd3ddb36af95951a2aa1fadcd897f5bc1641bb2e0051.svg":{"logical_path":"flags/1x1/si.svg","mtime":"2020-02-08T21:52:35+01:00","size":2068,"digest":"ca40a5f4f38119d6f52ffd3ddb36af95951a2aa1fadcd897f5bc1641bb2e0051","integrity":"sha256-ykCl9POBGdb1L/092zavlZUaKqH63NiX9bwWQbsuAFE="},"flags/4x3/sj-67d4cdd268d0c0cd93fc561b506cb5646cb508385c93ed350d11f94aa1c83833.svg":{"logical_path":"flags/4x3/sj.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"67d4cdd268d0c0cd93fc561b506cb5646cb508385c93ed350d11f94aa1c83833","integrity":"sha256-Z9TN0mjQwM2T/FYbUGy1ZGy1CDhck+01DRH5SqHIODM="},"flags/1x1/sj-f7c489607033138039612d6abe7f4b0b4b6dada5cac75d78204f404a0d292b1c.svg":{"logical_path":"flags/1x1/sj.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"f7c489607033138039612d6abe7f4b0b4b6dada5cac75d78204f404a0d292b1c","integrity":"sha256-98SJYHAzE4A5YS1qvn9LC0ttraXKx114IE9ASg0pKxw="},"flags/4x3/sk-a0bdbb7f5d6998ffe9fcbc80bbdf0e6cff3629740d2ce1b8d61025e0a8b322b5.svg":{"logical_path":"flags/4x3/sk.svg","mtime":"2020-02-08T21:52:35+01:00","size":1208,"digest":"a0bdbb7f5d6998ffe9fcbc80bbdf0e6cff3629740d2ce1b8d61025e0a8b322b5","integrity":"sha256-oL27f11pmP/p/LyAu98ObP82KXQNLOG41hAl4KizIrU="},"flags/1x1/sk-a82a813b2d81af9be1aa775f22b2c2457d11e870e072d7e23957a11d0878faed.svg":{"logical_path":"flags/1x1/sk.svg","mtime":"2020-02-08T21:52:35+01:00","size":1187,"digest":"a82a813b2d81af9be1aa775f22b2c2457d11e870e072d7e23957a11d0878faed","integrity":"sha256-qCqBOy2Br5vhqndfIrLCRX0R6HDgctfiOVehHQh4+u0="},"flags/4x3/sl-be265bed24cfe0b25778201f251e52e4e721e3d319795875913805d1aea84ebb.svg":{"logical_path":"flags/4x3/sl.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"be265bed24cfe0b25778201f251e52e4e721e3d319795875913805d1aea84ebb","integrity":"sha256-viZb7STP4LJXeCAfJR5S5Och49MZeVh1kTgF0a6oTrs="},"flags/1x1/sl-cb8bccbaa21957f006ed4ae0144da81c999e93bd8014023b16b500fdcdc397d3.svg":{"logical_path":"flags/1x1/sl.svg","mtime":"2020-02-08T21:52:35+01:00","size":441,"digest":"cb8bccbaa21957f006ed4ae0144da81c999e93bd8014023b16b500fdcdc397d3","integrity":"sha256-y4vMuqIZV/AG7UrgFE2oHJmek72AFAI7FrUA/c3Dl9M="},"flags/4x3/sm-d7818df3f8f2d5dbed27dc5a0a80b1e41cdcd6130eeff221da58f0321e925f27.svg":{"logical_path":"flags/4x3/sm.svg","mtime":"2020-02-08T21:52:35+01:00","size":15960,"digest":"d7818df3f8f2d5dbed27dc5a0a80b1e41cdcd6130eeff221da58f0321e925f27","integrity":"sha256-14GN8/jy1dvtJ9xaCoCx5Bzc1hMO7/Ih2ljwMh6SXyc="},"flags/1x1/sm-6f87660dcac925bbdb036c79a0e20d3b208215d327be4c4764ae1069d6464efd.svg":{"logical_path":"flags/1x1/sm.svg","mtime":"2020-02-08T21:52:35+01:00","size":15881,"digest":"6f87660dcac925bbdb036c79a0e20d3b208215d327be4c4764ae1069d6464efd","integrity":"sha256-b4dmDcrJJbvbA2x5oOINOyCCFdMnvkxHZK4QadZGTv0="},"flags/4x3/sn-b131b17a374bcfbd00d442d282fa52f0e4e0e448cda1cdfaac25a95ff56443c0.svg":{"logical_path":"flags/4x3/sn.svg","mtime":"2020-02-08T21:52:35+01:00","size":427,"digest":"b131b17a374bcfbd00d442d282fa52f0e4e0e448cda1cdfaac25a95ff56443c0","integrity":"sha256-sTGxejdLz70A1ELSgvpS8OTg5EjNoc36rCWpX/VkQ8A="},"flags/1x1/sn-d180d3ce9846966dee6a3d9433ede7d24801dc4311636aabd470ec5b8765d772.svg":{"logical_path":"flags/1x1/sn.svg","mtime":"2020-02-08T21:52:35+01:00","size":418,"digest":"d180d3ce9846966dee6a3d9433ede7d24801dc4311636aabd470ec5b8765d772","integrity":"sha256-0YDTzphGlm3uaj2UM+3n0kgB3EMRY2qr1HDsW4dl13I="},"flags/4x3/so-3b5b77b371299478144a94b60c99524fb6b99bfedb3dcc976ab70185e07f399e.svg":{"logical_path":"flags/4x3/so.svg","mtime":"2020-02-08T21:52:35+01:00","size":494,"digest":"3b5b77b371299478144a94b60c99524fb6b99bfedb3dcc976ab70185e07f399e","integrity":"sha256-O1t3s3EplHgUSpS2DJlST7a5m/7bPcyXarcBheB/OZ4="},"flags/1x1/so-50aa941f2d2954285ef9e5ac260cdd264a73cf2e4b0c627677f04141fff2afd3.svg":{"logical_path":"flags/1x1/so.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"50aa941f2d2954285ef9e5ac260cdd264a73cf2e4b0c627677f04141fff2afd3","integrity":"sha256-UKqUHy0pVChe+eWsJgzdJkpzzy5LDGJ2d/BBQf/yr9M="},"flags/4x3/sr-94d0f0aefcbdea8d7ba35648eda5037e99bf4126723ce36416582ea43b08d3e2.svg":{"logical_path":"flags/4x3/sr.svg","mtime":"2020-02-08T21:52:35+01:00","size":318,"digest":"94d0f0aefcbdea8d7ba35648eda5037e99bf4126723ce36416582ea43b08d3e2","integrity":"sha256-lNDwrvy96o17o1ZI7aUDfpm/QSZyPONkFlgupDsI0+I="},"flags/1x1/sr-3944d683068d437471725d22fd71ccbe6a63ae307ff9775690417d3bf262cf82.svg":{"logical_path":"flags/1x1/sr.svg","mtime":"2020-02-08T21:52:35+01:00","size":323,"digest":"3944d683068d437471725d22fd71ccbe6a63ae307ff9775690417d3bf262cf82","integrity":"sha256-OUTWgwaNQ3Rxcl0i/XHMvmpjrjB/+XdWkEF9O/Jiz4I="},"flags/4x3/ss-f391e5002cbce83f97f7d1a11c284fa2e36a7d6dc734757d733656801ab17d0a.svg":{"logical_path":"flags/4x3/ss.svg","mtime":"2020-02-08T21:52:35+01:00","size":389,"digest":"f391e5002cbce83f97f7d1a11c284fa2e36a7d6dc734757d733656801ab17d0a","integrity":"sha256-85HlACy86D+X99GhHChPouNqfW3HNHV9czZWgBqxfQo="},"flags/1x1/ss-853bd9f713d2f6b1fe540a82e8bf4754912da21575b3fe756b8741767f318f7a.svg":{"logical_path":"flags/1x1/ss.svg","mtime":"2020-02-08T21:52:35+01:00","size":400,"digest":"853bd9f713d2f6b1fe540a82e8bf4754912da21575b3fe756b8741767f318f7a","integrity":"sha256-hTvZ9xPS9rH+VAqC6L9HVJEtohV1s/51a4dBdn8xj3o="},"flags/4x3/st-b52bb48a2c0800f5cb4b07bdd93c3908f77bcb6800be883ebf943bbd3d99d42c.svg":{"logical_path":"flags/4x3/st.svg","mtime":"2020-02-08T21:52:35+01:00","size":919,"digest":"b52bb48a2c0800f5cb4b07bdd93c3908f77bcb6800be883ebf943bbd3d99d42c","integrity":"sha256-tSu0iiwIAPXLSwe92Tw5CPd7y2gAvog+v5Q7vT2Z1Cw="},"flags/1x1/st-d8b5b1c8b9fe947086a4d277d2ac5d6b9cff188dfd37bda66c8bf5e02c5facc8.svg":{"logical_path":"flags/1x1/st.svg","mtime":"2020-02-08T21:52:35+01:00","size":923,"digest":"d8b5b1c8b9fe947086a4d277d2ac5d6b9cff188dfd37bda66c8bf5e02c5facc8","integrity":"sha256-2LWxyLn+lHCGpNJ30qxda5z/GI39N72mbIv14CxfrMg="},"flags/4x3/sv-6d02d63c7f04c9388e98f892cc43d8daa2110fc84242758d5627fcd247bfd09b.svg":{"logical_path":"flags/4x3/sv.svg","mtime":"2020-02-08T21:52:35+01:00","size":84037,"digest":"6d02d63c7f04c9388e98f892cc43d8daa2110fc84242758d5627fcd247bfd09b","integrity":"sha256-bQLWPH8EyTiOmPiSzEPY2qIRD8hCQnWNVif80ke/0Js="},"flags/1x1/sv-fb4c8d7eb98396a93c5b9c37195d70e809e0d71d8b8f9316e842121f95bb82ea.svg":{"logical_path":"flags/1x1/sv.svg","mtime":"2020-02-08T21:52:35+01:00","size":84509,"digest":"fb4c8d7eb98396a93c5b9c37195d70e809e0d71d8b8f9316e842121f95bb82ea","integrity":"sha256-+0yNfrmDlqk8W5w3GV1w6Ang1x2Lj5MW6EISH5W7guo="},"flags/4x3/sx-fb6a7b1cbc5b29eeeb39a5aec64ef7aad432c37bbe848d29955a3786b9763224.svg":{"logical_path":"flags/4x3/sx.svg","mtime":"2020-02-08T21:52:35+01:00","size":13306,"digest":"fb6a7b1cbc5b29eeeb39a5aec64ef7aad432c37bbe848d29955a3786b9763224","integrity":"sha256-+2p7HLxbKe7rOaWuxk73qtQyw3u+hI0plVo3hrl2MiQ="},"flags/1x1/sx-a37b124212f8530b921aef7657cfb35c2895a731c7a06f333faee4c93f32806a.svg":{"logical_path":"flags/1x1/sx.svg","mtime":"2020-02-08T21:52:35+01:00","size":13115,"digest":"a37b124212f8530b921aef7657cfb35c2895a731c7a06f333faee4c93f32806a","integrity":"sha256-o3sSQhL4UwuSGu92V8+zXCiVpzHHoG8zP67kyT8ygGo="},"flags/4x3/sy-e35f8d88c864ed4f38edb2f9f96d5bd69f6df078b50515b8c5467bf6b1689f50.svg":{"logical_path":"flags/4x3/sy.svg","mtime":"2020-02-08T21:52:35+01:00","size":568,"digest":"e35f8d88c864ed4f38edb2f9f96d5bd69f6df078b50515b8c5467bf6b1689f50","integrity":"sha256-41+NiMhk7U847bL5+W1b1p9t8Hi1BRW4xUZ79rFon1A="},"flags/1x1/sy-5d537bd5b42b58f6e8a7e33fbe5942a16126abb639edf9cb58b88938c57ebaa9.svg":{"logical_path":"flags/1x1/sy.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"5d537bd5b42b58f6e8a7e33fbe5942a16126abb639edf9cb58b88938c57ebaa9","integrity":"sha256-XVN71bQrWPbop+M/vllCoWEmq7Y57fnLWLiJOMV+uqk="},"flags/4x3/sz-c65ae592e943217787848364bdb4c57335869f4626ce705adabdc2620669c1c6.svg":{"logical_path":"flags/4x3/sz.svg","mtime":"2020-02-08T21:52:35+01:00","size":6755,"digest":"c65ae592e943217787848364bdb4c57335869f4626ce705adabdc2620669c1c6","integrity":"sha256-xlrlkulDIXeHhINkvbTFczWGn0YmznBa2r3CYgZpwcY="},"flags/1x1/sz-dd3d1c65bdf09317553f205e588e3dc7336acec1cb9315bfbe0f5bd8ca5bba3f.svg":{"logical_path":"flags/1x1/sz.svg","mtime":"2020-02-08T21:52:35+01:00","size":6706,"digest":"dd3d1c65bdf09317553f205e588e3dc7336acec1cb9315bfbe0f5bd8ca5bba3f","integrity":"sha256-3T0cZb3wkxdVPyBeWI49xzNqzsHLkxW/vg9b2Mpbuj8="},"flags/4x3/tc-594b6cc87040836c6d6777afb5833d565d3e5e75f404350a51443ec4588a1ccb.svg":{"logical_path":"flags/4x3/tc.svg","mtime":"2020-02-08T21:52:35+01:00","size":14585,"digest":"594b6cc87040836c6d6777afb5833d565d3e5e75f404350a51443ec4588a1ccb","integrity":"sha256-WUtsyHBAg2xtZ3evtYM9Vl0+XnX0BDUKUUQ+xFiKHMs="},"flags/1x1/tc-34a37006252eea340488220585c31d047b57e3e7934c77180d930972aaceadc3.svg":{"logical_path":"flags/1x1/tc.svg","mtime":"2020-02-08T21:52:35+01:00","size":14843,"digest":"34a37006252eea340488220585c31d047b57e3e7934c77180d930972aaceadc3","integrity":"sha256-NKNwBiUu6jQEiCIFhcMdBHtX4+eTTHcYDZMJcqrOrcM="},"flags/4x3/td-b67a1978e3badb895ff640c80bb6c0e33eac354220c08cf3fc93d62bf5d685a3.svg":{"logical_path":"flags/4x3/td.svg","mtime":"2020-02-08T21:52:35+01:00","size":270,"digest":"b67a1978e3badb895ff640c80bb6c0e33eac354220c08cf3fc93d62bf5d685a3","integrity":"sha256-tnoZeOO624lf9kDIC7bA4z6sNUIgwIzz/JPWK/XWhaM="},"flags/1x1/td-556b3a7991c17010cb7e1ff23c4edcc2dcdb8c406a128d407fd165ea8a19d311.svg":{"logical_path":"flags/1x1/td.svg","mtime":"2020-02-08T21:52:35+01:00","size":282,"digest":"556b3a7991c17010cb7e1ff23c4edcc2dcdb8c406a128d407fd165ea8a19d311","integrity":"sha256-VWs6eZHBcBDLfh/yPE7cwtzbjEBqEo1Af9Fl6ooZ0xE="},"flags/4x3/tf-35cd83351521f3022a43e01f0c40f34663a66ac1e92045979f31d3fd65c16d02.svg":{"logical_path":"flags/4x3/tf.svg","mtime":"2020-02-08T21:52:35+01:00","size":1091,"digest":"35cd83351521f3022a43e01f0c40f34663a66ac1e92045979f31d3fd65c16d02","integrity":"sha256-Nc2DNRUh8wIqQ+AfDEDzRmOmasHpIEWXnzHT/WXBbQI="},"flags/1x1/tf-485e71f61ff577735dbc4ba1025515c22a83c48ee7f3a2ed49804766c35f6ea5.svg":{"logical_path":"flags/1x1/tf.svg","mtime":"2020-02-08T21:52:35+01:00","size":1199,"digest":"485e71f61ff577735dbc4ba1025515c22a83c48ee7f3a2ed49804766c35f6ea5","integrity":"sha256-SF5x9h/1d3NdvEuhAlUVwiqDxI7n86LtSYBHZsNfbqU="},"flags/4x3/tg-24b25f4c2213fe35e5f5586d7ab23abf0c25ad2049708cd52ba72e1ec7b754ff.svg":{"logical_path":"flags/4x3/tg.svg","mtime":"2020-02-08T21:52:35+01:00","size":725,"digest":"24b25f4c2213fe35e5f5586d7ab23abf0c25ad2049708cd52ba72e1ec7b754ff","integrity":"sha256-JLJfTCIT/jXl9VhterI6vwwlrSBJcIzVK6cuHse3VP8="},"flags/1x1/tg-05f3d98392a5ec3e4aecf8f629d3d03f05ac55abb7d9d84187d599acfe271374.svg":{"logical_path":"flags/1x1/tg.svg","mtime":"2020-02-08T21:52:35+01:00","size":736,"digest":"05f3d98392a5ec3e4aecf8f629d3d03f05ac55abb7d9d84187d599acfe271374","integrity":"sha256-BfPZg5Kl7D5K7Pj2KdPQPwWsVau32dhBh9WZrP4nE3Q="},"flags/4x3/th-cc936bacd84dddd15454ef06bc64e357f83854af34692fc37363272d61f637d4.svg":{"logical_path":"flags/4x3/th.svg","mtime":"2020-02-08T21:52:35+01:00","size":287,"digest":"cc936bacd84dddd15454ef06bc64e357f83854af34692fc37363272d61f637d4","integrity":"sha256-zJNrrNhN3dFUVO8GvGTjV/g4VK80aS/Dc2MnLWH2N9Q="},"flags/1x1/th-de82cbd770db2be53a8e3d59d86e2b748a5d3f96eb8584f7b9364cefbd06a172.svg":{"logical_path":"flags/1x1/th.svg","mtime":"2020-02-08T21:52:35+01:00","size":288,"digest":"de82cbd770db2be53a8e3d59d86e2b748a5d3f96eb8584f7b9364cefbd06a172","integrity":"sha256-3oLL13DbK+U6jj1Z2G4rdIpdP5brhYT3uTZM770GoXI="},"flags/4x3/tj-b90bf3e2dd63265d55b67962b160df65f021c42b6ea304e2943c10b9e2a8749d.svg":{"logical_path":"flags/4x3/tj.svg","mtime":"2020-02-08T21:52:35+01:00","size":1831,"digest":"b90bf3e2dd63265d55b67962b160df65f021c42b6ea304e2943c10b9e2a8749d","integrity":"sha256-uQvz4t1jJl1VtnlisWDfZfAhxCtuowTilDwQueKodJ0="},"flags/1x1/tj-5f6571e74b1f8720f9ecc2d3aa2098ca45d2e7ad6602b2a57c206384719b9f36.svg":{"logical_path":"flags/1x1/tj.svg","mtime":"2020-02-08T21:52:35+01:00","size":1788,"digest":"5f6571e74b1f8720f9ecc2d3aa2098ca45d2e7ad6602b2a57c206384719b9f36","integrity":"sha256-X2Vx50sfhyD57MLTqiCYykXS561mArKlfCBjhHGbnzY="},"flags/4x3/tk-602520b29b909c96baea17a38eb654d6c6fbc7088f46a0cb8d8fe34ff92e3cb8.svg":{"logical_path":"flags/4x3/tk.svg","mtime":"2020-02-08T21:52:35+01:00","size":791,"digest":"602520b29b909c96baea17a38eb654d6c6fbc7088f46a0cb8d8fe34ff92e3cb8","integrity":"sha256-YCUgspuQnJa66hejjrZU1sb7xwiPRqDLjY/jT/kuPLg="},"flags/1x1/tk-fe1dc8aaa0643a45a74ecec8aec09f0fe2207d104bb3c28c0b84405f1275aeba.svg":{"logical_path":"flags/1x1/tk.svg","mtime":"2020-02-08T21:52:35+01:00","size":781,"digest":"fe1dc8aaa0643a45a74ecec8aec09f0fe2207d104bb3c28c0b84405f1275aeba","integrity":"sha256-/h3IqqBkOkWnTs7IrsCfD+IgfRBLs8KMC4RAXxJ1rro="},"flags/4x3/tl-ebdb862aa5ae5de1a72242571deaa70bfb222f488a93b70e304f2075b474d54b.svg":{"logical_path":"flags/4x3/tl.svg","mtime":"2020-02-08T21:52:35+01:00","size":600,"digest":"ebdb862aa5ae5de1a72242571deaa70bfb222f488a93b70e304f2075b474d54b","integrity":"sha256-69uGKqWuXeGnIkJXHeqnC/siL0iKk7cOME8gdbR01Us="},"flags/1x1/tl-485f02183bdb192ba3ce6e5f076e184112739f883ae0a8fde33c454377b848d6.svg":{"logical_path":"flags/1x1/tl.svg","mtime":"2020-02-08T21:52:35+01:00","size":582,"digest":"485f02183bdb192ba3ce6e5f076e184112739f883ae0a8fde33c454377b848d6","integrity":"sha256-SF8CGDvbGSujzm5fB24YQRJzn4g64Kj94zxFQ3e4SNY="},"flags/4x3/tm-5ddb4128bf0becd7c60413d5418027f5f01ca4bc72561d54b94febfee7a5a24b.svg":{"logical_path":"flags/4x3/tm.svg","mtime":"2020-02-08T21:52:35+01:00","size":32579,"digest":"5ddb4128bf0becd7c60413d5418027f5f01ca4bc72561d54b94febfee7a5a24b","integrity":"sha256-XdtBKL8L7NfGBBPVQYAn9fAcpLxyVh1UuU/r/ueloks="},"flags/1x1/tm-3521ad569a4095aa8d4166d5d9094fccfdbb3ea411207ad685b6dd5814ef3392.svg":{"logical_path":"flags/1x1/tm.svg","mtime":"2020-02-08T21:52:35+01:00","size":31884,"digest":"3521ad569a4095aa8d4166d5d9094fccfdbb3ea411207ad685b6dd5814ef3392","integrity":"sha256-NSGtVppAlaqNQWbV2QlPzP27PqQRIHrWhbbdWBTvM5I="},"flags/4x3/tn-ca27eb50d88b11d20b5b09e2bbecb7753267222489920c526608e5d2acd22d79.svg":{"logical_path":"flags/4x3/tn.svg","mtime":"2020-02-08T21:52:35+01:00","size":753,"digest":"ca27eb50d88b11d20b5b09e2bbecb7753267222489920c526608e5d2acd22d79","integrity":"sha256-yifrUNiLEdILWwniu+y3dTJnIiSJkgxSZgjl0qzSLXk="},"flags/1x1/tn-222c6cd4742c558f48ebcacb47ea334057642fffa3456a1c75e0fad9e728d09b.svg":{"logical_path":"flags/1x1/tn.svg","mtime":"2020-02-08T21:52:35+01:00","size":743,"digest":"222c6cd4742c558f48ebcacb47ea334057642fffa3456a1c75e0fad9e728d09b","integrity":"sha256-Iixs1HQsVY9I68rLR+ozQFdkL/+jRWocdeD62eco0Js="},"flags/4x3/to-c9c509fc24f591fbe52bbf732c44291384c787796e1fc9c703a973587c3f8ad1.svg":{"logical_path":"flags/4x3/to.svg","mtime":"2020-02-08T21:52:35+01:00","size":358,"digest":"c9c509fc24f591fbe52bbf732c44291384c787796e1fc9c703a973587c3f8ad1","integrity":"sha256-ycUJ/CT1kfvlK79zLEQpE4THh3luH8nHA6lzWHw/itE="},"flags/1x1/to-cf26dfb44b56b915b2f11896355cb778b938ed54423311d69d7cda9626887dda.svg":{"logical_path":"flags/1x1/to.svg","mtime":"2020-02-08T21:52:35+01:00","size":364,"digest":"cf26dfb44b56b915b2f11896355cb778b938ed54423311d69d7cda9626887dda","integrity":"sha256-zybftEtWuRWy8RiWNVy3eLk47VRCMxHWnXzaliaIfdo="},"flags/4x3/tr-c40f697070cf8d8358785b9203d1c8f438976e3cd644a87d9ee16fa9960deaa4.svg":{"logical_path":"flags/4x3/tr.svg","mtime":"2020-02-08T21:52:35+01:00","size":557,"digest":"c40f697070cf8d8358785b9203d1c8f438976e3cd644a87d9ee16fa9960deaa4","integrity":"sha256-xA9pcHDPjYNYeFuSA9HI9DiXbjzWRKh9nuFvqZYN6qQ="},"flags/1x1/tr-627dcf91a1e5153c045e33a3459b5d56002530fddd3fc53927f4d0fb7ea004a5.svg":{"logical_path":"flags/1x1/tr.svg","mtime":"2020-02-08T21:52:35+01:00","size":578,"digest":"627dcf91a1e5153c045e33a3459b5d56002530fddd3fc53927f4d0fb7ea004a5","integrity":"sha256-Yn3PkaHlFTwEXjOjRZtdVgAlMP3dP8U5J/TQ+36gBKU="},"flags/4x3/tt-04786ffedbde2c96a30ad1cbf4db000848f14bd700324651fc88364e5f3c2fd0.svg":{"logical_path":"flags/4x3/tt.svg","mtime":"2020-02-08T21:52:35+01:00","size":324,"digest":"04786ffedbde2c96a30ad1cbf4db000848f14bd700324651fc88364e5f3c2fd0","integrity":"sha256-BHhv/tveLJajCtHL9NsACEjxS9cAMkZR/Ig2Tl88L9A="},"flags/1x1/tt-6a3c73bfa7782366d95e673d847ef8f84c0475b364d359def1efd264297bac30.svg":{"logical_path":"flags/1x1/tt.svg","mtime":"2020-02-08T21:52:35+01:00","size":323,"digest":"6a3c73bfa7782366d95e673d847ef8f84c0475b364d359def1efd264297bac30","integrity":"sha256-ajxzv6d4I2bZXmc9hH74+EwEdbNk01ne8e/SZCl7rDA="},"flags/4x3/tv-20b56e7c0a2fbaa2a0b7b1bd87afc6368440f175fb3a0589de5e34e99d163fd7.svg":{"logical_path":"flags/4x3/tv.svg","mtime":"2020-02-08T21:52:35+01:00","size":2299,"digest":"20b56e7c0a2fbaa2a0b7b1bd87afc6368440f175fb3a0589de5e34e99d163fd7","integrity":"sha256-ILVufAovuqKgt7G9h6/GNoRA8XX7OgWJ3l406Z0WP9c="},"flags/1x1/tv-8bce1d7bde2e20dcc473ed3a33c66e4bedcf1acf2d2fff6d54353a480b8cafbc.svg":{"logical_path":"flags/1x1/tv.svg","mtime":"2020-02-08T21:52:35+01:00","size":2166,"digest":"8bce1d7bde2e20dcc473ed3a33c66e4bedcf1acf2d2fff6d54353a480b8cafbc","integrity":"sha256-i84de94uINzEc+06M8ZuS+3PGs8tL/9tVDU6SAuMr7w="},"flags/4x3/tw-36070ac0a15ab1f4811478da62e7678756a9aa266b141ed0549aba1c0e04333a.svg":{"logical_path":"flags/4x3/tw.svg","mtime":"2020-02-08T21:52:35+01:00","size":945,"digest":"36070ac0a15ab1f4811478da62e7678756a9aa266b141ed0549aba1c0e04333a","integrity":"sha256-NgcKwKFasfSBFHjaYudnh1apqiZrFB7QVJq6HA4EMzo="},"flags/1x1/tw-fd7a0db2f3808842ca99176f097356fe9e6f3c120d6aa9e8c4a9c2dd4c3943ba.svg":{"logical_path":"flags/1x1/tw.svg","mtime":"2020-02-08T21:52:35+01:00","size":960,"digest":"fd7a0db2f3808842ca99176f097356fe9e6f3c120d6aa9e8c4a9c2dd4c3943ba","integrity":"sha256-/XoNsvOAiELKmRdvCXNW/p5vPBINaqnoxKnC3Uw5Q7o="},"flags/4x3/tz-51ad7d69f059075df61b9226468af0d78642af4ad34a7540f64c5bea82e803d7.svg":{"logical_path":"flags/4x3/tz.svg","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"51ad7d69f059075df61b9226468af0d78642af4ad34a7540f64c5bea82e803d7","integrity":"sha256-Ua19afBZB132G5ImRorw14ZCr0rTSnVA9kxb6oLoA9c="},"flags/1x1/tz-0703f29a7ae02a9a1753cb1726dd2934d75ed3a12e8d63faa9fa866e1fe61440.svg":{"logical_path":"flags/1x1/tz.svg","mtime":"2020-02-08T21:52:35+01:00","size":605,"digest":"0703f29a7ae02a9a1753cb1726dd2934d75ed3a12e8d63faa9fa866e1fe61440","integrity":"sha256-BwPymnrgKpoXU8sXJt0pNNde06EujWP6qfqGbh/mFEA="},"flags/4x3/ua-7f7db03c3b492aaacd11b0abac70d543a7c0ec5265a36d529bbb80a7c432d81a.svg":{"logical_path":"flags/4x3/ua.svg","mtime":"2020-02-08T21:52:35+01:00","size":241,"digest":"7f7db03c3b492aaacd11b0abac70d543a7c0ec5265a36d529bbb80a7c432d81a","integrity":"sha256-f32wPDtJKqrNEbCrrHDVQ6fA7FJlo21Sm7uAp8Qy2Bo="},"flags/1x1/ua-25192fa80f120edb1dd1c4757fd7b79ef38f5e1729238f4135003e6a1501bf28.svg":{"logical_path":"flags/1x1/ua.svg","mtime":"2020-02-08T21:52:35+01:00","size":241,"digest":"25192fa80f120edb1dd1c4757fd7b79ef38f5e1729238f4135003e6a1501bf28","integrity":"sha256-JRkvqA8SDtsd0cR1f9e3nvOPXhcpI49BNQA+ahUBvyg="},"flags/4x3/ug-7635df53eafdf411be0809df835bfbcffd61badd6c4df3db0909c8b3188015a0.svg":{"logical_path":"flags/4x3/ug.svg","mtime":"2020-02-08T21:52:35+01:00","size":3959,"digest":"7635df53eafdf411be0809df835bfbcffd61badd6c4df3db0909c8b3188015a0","integrity":"sha256-djXfU+r99BG+CAnfg1v7z/1hut1sTfPbCQnIsxiAFaA="},"flags/1x1/ug-537f34f64e723fbe7cb7902ea0e61303f1ada79214197efc39ebe2c52ce24186.svg":{"logical_path":"flags/1x1/ug.svg","mtime":"2020-02-08T21:52:35+01:00","size":4038,"digest":"537f34f64e723fbe7cb7902ea0e61303f1ada79214197efc39ebe2c52ce24186","integrity":"sha256-U3809k5yP758t5AuoOYTA/Gtp5IUGX78OevixSziQYY="},"flags/4x3/um-a0ae80e34bbf94677dd6052ea87cc0090aba747dab5440e5ca6e231f7f07c96d.svg":{"logical_path":"flags/4x3/um.svg","mtime":"2020-02-08T21:52:35+01:00","size":4524,"digest":"a0ae80e34bbf94677dd6052ea87cc0090aba747dab5440e5ca6e231f7f07c96d","integrity":"sha256-oK6A40u/lGd91gUuqHzACQq6dH2rVEDlym4jH38HyW0="},"flags/1x1/um-3f1bc09babe7fdcf32518bb49d1aac3a66d0204f955eacca291c58d4f4ef895a.svg":{"logical_path":"flags/1x1/um.svg","mtime":"2020-02-08T21:52:35+01:00","size":3975,"digest":"3f1bc09babe7fdcf32518bb49d1aac3a66d0204f955eacca291c58d4f4ef895a","integrity":"sha256-PxvAm6vn/c8yUYu0nRqsOmbQIE+VXqzKKRxY1PTviVo="},"flags/4x3/us-aefd8f7e57d11f7b0416d01d9c665ab3848b10af849f35a4d772d58d24d83329.svg":{"logical_path":"flags/4x3/us.svg","mtime":"2020-02-08T21:52:35+01:00","size":4468,"digest":"aefd8f7e57d11f7b0416d01d9c665ab3848b10af849f35a4d772d58d24d83329","integrity":"sha256-rv2PflfRH3sEFtAdnGZas4SLEK+EnzWk13LVjSTYMyk="},"flags/1x1/us-87af45be9346e8c820312976abe332ee11f8931e29fa361328d28660a711b1e2.svg":{"logical_path":"flags/1x1/us.svg","mtime":"2020-02-08T21:52:35+01:00","size":3924,"digest":"87af45be9346e8c820312976abe332ee11f8931e29fa361328d28660a711b1e2","integrity":"sha256-h69FvpNG6MggMSl2q+My7hH4kx4p+jYTKNKGYKcRseI="},"flags/4x3/uy-9f636c8283abf56cc930746fd427c1d1644dcf8736c537629df13f760da96ebc.svg":{"logical_path":"flags/4x3/uy.svg","mtime":"2020-02-08T21:52:35+01:00","size":1721,"digest":"9f636c8283abf56cc930746fd427c1d1644dcf8736c537629df13f760da96ebc","integrity":"sha256-n2NsgoOr9WzJMHRv1CfB0WRNz4c2xTdinfE/dg2pbrw="},"flags/1x1/uy-e216b762a93ec55bf9b4ae3d35b7febe0b192a12246fd66c45139ce77fb2095e.svg":{"logical_path":"flags/1x1/uy.svg","mtime":"2020-02-08T21:52:35+01:00","size":1718,"digest":"e216b762a93ec55bf9b4ae3d35b7febe0b192a12246fd66c45139ce77fb2095e","integrity":"sha256-4ha3Yqk+xVv5tK49Nbf+vgsZKhIkb9ZsRROc53+yCV4="},"flags/4x3/uz-697d596705372323beddccb3626d1ce405b36249315c6b006ff1529e24909ceb.svg":{"logical_path":"flags/4x3/uz.svg","mtime":"2020-02-08T21:52:35+01:00","size":1457,"digest":"697d596705372323beddccb3626d1ce405b36249315c6b006ff1529e24909ceb","integrity":"sha256-aX1ZZwU3IyO+3cyzYm0c5AWzYkkxXGsAb/FSniSQnOs="},"flags/1x1/uz-aa34cbe4f6f0e4b5d890975578d28cc9b1e88ebd503d3bdca693748eb29b3353.svg":{"logical_path":"flags/1x1/uz.svg","mtime":"2020-02-08T21:52:35+01:00","size":1457,"digest":"aa34cbe4f6f0e4b5d890975578d28cc9b1e88ebd503d3bdca693748eb29b3353","integrity":"sha256-qjTL5Pbw5LXYkJdVeNKMybHojr1QPTvcppN0jrKbM1M="},"flags/4x3/va-d24d3c5bee108c396997c3d5b2bd2273433752d8c222eb531650e51551a4afd0.svg":{"logical_path":"flags/4x3/va.svg","mtime":"2020-02-08T21:52:35+01:00","size":91241,"digest":"d24d3c5bee108c396997c3d5b2bd2273433752d8c222eb531650e51551a4afd0","integrity":"sha256-0k08W+4QjDlpl8PVsr0ic0M3UtjCIutTFlDlFVGkr9A="},"flags/1x1/va-01160c1bffda12f0b94554ba0c50162a88da807943617334bd4c57a030985e95.svg":{"logical_path":"flags/1x1/va.svg","mtime":"2020-02-08T21:52:35+01:00","size":90876,"digest":"01160c1bffda12f0b94554ba0c50162a88da807943617334bd4c57a030985e95","integrity":"sha256-ARYMG//aEvC5RVS6DFAWKojagHlDYXM0vUxXoDCYXpU="},"flags/4x3/vc-ddf979bee2889414e5a05ac55f39a9c93f34e0aff0d35f007605049a2d8b5afb.svg":{"logical_path":"flags/4x3/vc.svg","mtime":"2020-02-08T21:52:35+01:00","size":454,"digest":"ddf979bee2889414e5a05ac55f39a9c93f34e0aff0d35f007605049a2d8b5afb","integrity":"sha256-3fl5vuKIlBTloFrFXzmpyT804K/w018AdgUEmi2LWvs="},"flags/1x1/vc-ac776e16dec19ff2e2d9238f541dae5d977282b451a83ab3d4122efed2392be9.svg":{"logical_path":"flags/1x1/vc.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"ac776e16dec19ff2e2d9238f541dae5d977282b451a83ab3d4122efed2392be9","integrity":"sha256-rHduFt7Bn/Li2SOPVB2uXZdygrRRqDqz1BIu/tI5K+k="},"flags/4x3/ve-e23abd006cc75a8c4f9ec1cb122b46f9b52e26c5606532d2c868277d4ccd523b.svg":{"logical_path":"flags/4x3/ve.svg","mtime":"2020-02-08T21:52:35+01:00","size":1171,"digest":"e23abd006cc75a8c4f9ec1cb122b46f9b52e26c5606532d2c868277d4ccd523b","integrity":"sha256-4jq9AGzHWoxPnsHLEitG+bUuJsVgZTLSyGgnfUzNUjs="},"flags/1x1/ve-1480713f28719e0a83da2c5f1333407dbfa5bcc0de8c9ba718fcf47273ee95ef.svg":{"logical_path":"flags/1x1/ve.svg","mtime":"2020-02-08T21:52:35+01:00","size":1191,"digest":"1480713f28719e0a83da2c5f1333407dbfa5bcc0de8c9ba718fcf47273ee95ef","integrity":"sha256-FIBxPyhxngqD2ixfEzNAfb+lvMDejJunGPz0cnPule8="},"flags/4x3/vg-7f8f24a4d6995e4dd39e3d9098dad5e14649821fa12ffc200edf0a586285ee15.svg":{"logical_path":"flags/4x3/vg.svg","mtime":"2020-02-08T21:52:35+01:00","size":24818,"digest":"7f8f24a4d6995e4dd39e3d9098dad5e14649821fa12ffc200edf0a586285ee15","integrity":"sha256-f48kpNaZXk3Tnj2QmNrV4UZJgh+hL/wgDt8KWGKF7hU="},"flags/1x1/vg-b464b6a78e46c29df9e4bdadc2646208f11c59168706456075f970552a24efa8.svg":{"logical_path":"flags/1x1/vg.svg","mtime":"2020-02-08T21:52:35+01:00","size":24997,"digest":"b464b6a78e46c29df9e4bdadc2646208f11c59168706456075f970552a24efa8","integrity":"sha256-tGS2p45Gwp355L2twmRiCPEcWRaHBkVgdflwVSok76g="},"flags/4x3/vi-58311325a293b046044976d899f288ce0fbe9bfd705a23947a9b38d7991983d7.svg":{"logical_path":"flags/4x3/vi.svg","mtime":"2020-02-08T21:52:35+01:00","size":8775,"digest":"58311325a293b046044976d899f288ce0fbe9bfd705a23947a9b38d7991983d7","integrity":"sha256-WDETJaKTsEYESXbYmfKIzg++m/1wWiOUeps415kZg9c="},"flags/1x1/vi-1c132d2cff66cdbdb7b6acf504bb0cd9d7579595d80c3fa6604ff24ca7a0184d.svg":{"logical_path":"flags/1x1/vi.svg","mtime":"2020-02-08T21:52:35+01:00","size":8730,"digest":"1c132d2cff66cdbdb7b6acf504bb0cd9d7579595d80c3fa6604ff24ca7a0184d","integrity":"sha256-HBMtLP9mzb23tqz1BLsM2ddXlZXYDD+mYE/yTKegGE0="},"flags/4x3/vn-a918d3c9cdc368b1d2ff9614d58cbcd1d43b725889b0ba18f5d4e693071e389a.svg":{"logical_path":"flags/4x3/vn.svg","mtime":"2020-02-08T21:52:35+01:00","size":492,"digest":"a918d3c9cdc368b1d2ff9614d58cbcd1d43b725889b0ba18f5d4e693071e389a","integrity":"sha256-qRjTyc3DaLHS/5YU1Yy80dQ7cliJsLoY9dTmkwceOJo="},"flags/1x1/vn-895e428ae3d98c99dbb02088cf8ef040bfb031df6f16c3c8fc3678505d869791.svg":{"logical_path":"flags/1x1/vn.svg","mtime":"2020-02-08T21:52:35+01:00","size":501,"digest":"895e428ae3d98c99dbb02088cf8ef040bfb031df6f16c3c8fc3678505d869791","integrity":"sha256-iV5CiuPZjJnbsCCIz47wQL+wMd9vFsPI/DZ4UF2Gl5E="},"flags/4x3/vu-2c286c778a7bed03cb603ab24b68dc91868f4f054cf4f851bdd17aa16731571c.svg":{"logical_path":"flags/4x3/vu.svg","mtime":"2020-02-08T21:52:35+01:00","size":3771,"digest":"2c286c778a7bed03cb603ab24b68dc91868f4f054cf4f851bdd17aa16731571c","integrity":"sha256-LChsd4p77QPLYDqyS2jckYaPTwVM9PhRvdF6oWcxVxw="},"flags/1x1/vu-51ef23121e2641ebeeac50d31c4e52b7d00d3ab1bc9fc0ad95ea86fd3631975a.svg":{"logical_path":"flags/1x1/vu.svg","mtime":"2020-02-08T21:52:35+01:00","size":3740,"digest":"51ef23121e2641ebeeac50d31c4e52b7d00d3ab1bc9fc0ad95ea86fd3631975a","integrity":"sha256-Ue8jEh4mQevurFDTHE5St9ANOrG8n8CtleqG/TYxl1o="},"flags/4x3/wf-f7e9ac5edac196ac32d7bafa04b5c0d924b89e9d7e4f3535a6a26c6c1523639c.svg":{"logical_path":"flags/4x3/wf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"f7e9ac5edac196ac32d7bafa04b5c0d924b89e9d7e4f3535a6a26c6c1523639c","integrity":"sha256-9+msXtrBlqwy17r6BLXA2SS4np1+TzU1pqJsbBUjY5w="},"flags/1x1/wf-95a920a79aa32d92f8a362321aae4230e17025ac04d976593f4423d0c37c1aee.svg":{"logical_path":"flags/1x1/wf.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"95a920a79aa32d92f8a362321aae4230e17025ac04d976593f4423d0c37c1aee","integrity":"sha256-lakgp5qjLZL4o2IyGq5CMOFwJawE2XZZP0Qj0MN8Gu4="},"flags/4x3/ws-efc6505a802a3fa2018bc102fc2e11db8c738464c619381b6edc32d0a89341a3.svg":{"logical_path":"flags/4x3/ws.svg","mtime":"2020-02-08T21:52:35+01:00","size":663,"digest":"efc6505a802a3fa2018bc102fc2e11db8c738464c619381b6edc32d0a89341a3","integrity":"sha256-78ZQWoAqP6IBi8EC/C4R24xzhGTGGTgbbtwy0KiTQaM="},"flags/1x1/ws-e3afb81c037c814620027bf61ac5e266683cab7ba5796ecf10b64c110cfcb932.svg":{"logical_path":"flags/1x1/ws.svg","mtime":"2020-02-08T21:52:35+01:00","size":645,"digest":"e3afb81c037c814620027bf61ac5e266683cab7ba5796ecf10b64c110cfcb932","integrity":"sha256-46+4HAN8gUYgAnv2GsXiZmg8q3uleW7PELZMEQz8uTI="},"flags/4x3/ye-fd88856e70d66b01b4f0f608936a61cf3b1d9dad40a2932fc5da4d01f72a447b.svg":{"logical_path":"flags/4x3/ye.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"fd88856e70d66b01b4f0f608936a61cf3b1d9dad40a2932fc5da4d01f72a447b","integrity":"sha256-/YiFbnDWawG08PYIk2phzzsdna1AopMvxdpNAfcqRHs="},"flags/1x1/ye-0c0e32330871e6d83af54affb7dadbbe736f9799068508211fbae54db9bbdcc6.svg":{"logical_path":"flags/1x1/ye.svg","mtime":"2020-02-08T21:52:35+01:00","size":278,"digest":"0c0e32330871e6d83af54affb7dadbbe736f9799068508211fbae54db9bbdcc6","integrity":"sha256-DA4yMwhx5tg69Ur/t9rbvnNvl5kGhQghH7rlTbm73MY="},"flags/4x3/yt-2eef17b543424082d9f9b42a67e84c20b52e7f7eae8c4326d60711158da51d5b.svg":{"logical_path":"flags/4x3/yt.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"2eef17b543424082d9f9b42a67e84c20b52e7f7eae8c4326d60711158da51d5b","integrity":"sha256-Lu8XtUNCQILZ+bQqZ+hMILUuf36ujEMm1gcRFY2lHVs="},"flags/1x1/yt-911da8075337fd8f75ecc8a338c294cb771c6b9a08576f96c9de1437888cd2a7.svg":{"logical_path":"flags/1x1/yt.svg","mtime":"2020-02-08T21:52:35+01:00","size":295,"digest":"911da8075337fd8f75ecc8a338c294cb771c6b9a08576f96c9de1437888cd2a7","integrity":"sha256-kR2oB1M3/Y917MijOMKUy3cca5oIV2+Wyd4UN4iM0qc="},"flags/4x3/za-45991a2aee307198510e56bf92523070aac4241cafe6c3ddb8f89b20a61d6371.svg":{"logical_path":"flags/4x3/za.svg","mtime":"2020-02-08T21:52:35+01:00","size":856,"digest":"45991a2aee307198510e56bf92523070aac4241cafe6c3ddb8f89b20a61d6371","integrity":"sha256-RZkaKu4wcZhRDla/klIwcKrEJByv5sPduPibIKYdY3E="},"flags/1x1/za-bc09a89b29311ea7e582ef60bf4e18aff7c29de6fbefe309463ca765723a0ce8.svg":{"logical_path":"flags/1x1/za.svg","mtime":"2020-02-08T21:52:35+01:00","size":875,"digest":"bc09a89b29311ea7e582ef60bf4e18aff7c29de6fbefe309463ca765723a0ce8","integrity":"sha256-vAmomykxHqflgu9gv04Yr/fCneb77+MJRjynZXI6DOg="},"flags/4x3/zm-07c0f30d86e66d0cad9d66cd9c9384d9cce1844f159d245deff6717101fe49c2.svg":{"logical_path":"flags/4x3/zm.svg","mtime":"2020-02-08T21:52:35+01:00","size":5508,"digest":"07c0f30d86e66d0cad9d66cd9c9384d9cce1844f159d245deff6717101fe49c2","integrity":"sha256-B8DzDYbmbQytnWbNnJOE2czhhE8VnSRd7/ZxcQH+ScI="},"flags/1x1/zm-fc5bce3834c71fe36617ea5f57f0bd1dcf3880a7c6aa515dcf92ae067f796241.svg":{"logical_path":"flags/1x1/zm.svg","mtime":"2020-02-08T21:52:35+01:00","size":5429,"digest":"fc5bce3834c71fe36617ea5f57f0bd1dcf3880a7c6aa515dcf92ae067f796241","integrity":"sha256-/FvOODTHH+NmF+pfV/C9Hc84gKfGqlFdz5KuBn95YkE="},"flags/4x3/zw-5217c74f14d9fdda244b69c5982bbabee052ac0f1cc0704926e8b1e621e50f9a.svg":{"logical_path":"flags/4x3/zw.svg","mtime":"2020-02-08T21:52:35+01:00","size":6791,"digest":"5217c74f14d9fdda244b69c5982bbabee052ac0f1cc0704926e8b1e621e50f9a","integrity":"sha256-UhfHTxTZ/dokS2nFmCu6vuBSrA8cwHBJJuix5iHlD5o="},"flags/1x1/zw-a33b191c631709b9e1d85e06f5b15535fb544d4668c8bef865ede2a0b6a88ed9.svg":{"logical_path":"flags/1x1/zw.svg","mtime":"2020-02-08T21:52:35+01:00","size":6770,"digest":"a33b191c631709b9e1d85e06f5b15535fb544d4668c8bef865ede2a0b6a88ed9","integrity":"sha256-ozsZHGMXCbnh2F4G9bFVNftUTUZoyL74Ze3ioLaojtk="},"flags/4x3/es-ct-bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d.svg":{"logical_path":"flags/4x3/es-ct.svg","mtime":"2020-02-08T21:52:35+01:00","size":261,"digest":"bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d","integrity":"sha256-vLtFSlDJpkfv1D3PBBRF8V6N1wZUveUwv2JAHU+3c40="},"flags/1x1/es-ct-7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef.svg":{"logical_path":"flags/1x1/es-ct.svg","mtime":"2020-02-08T21:52:35+01:00","size":260,"digest":"7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef","integrity":"sha256-fxPrKy9cEdzNcEMoa+11QNTa1LGoNnsKyhuEBaNRsu8="},"flags/4x3/eu-5f129db64306353251b78f998d531d2f1019404cfa890ae63ed70dc316c7f240.svg":{"logical_path":"flags/4x3/eu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1252,"digest":"5f129db64306353251b78f998d531d2f1019404cfa890ae63ed70dc316c7f240","integrity":"sha256-XxKdtkMGNTJRt4+ZjVMdLxAZQEz6iQrmPtcNwxbH8kA="},"flags/1x1/eu-ec59ac8daf2a63ea8e299ad63a208445d68a96affe6a10a7328acb6799d44127.svg":{"logical_path":"flags/1x1/eu.svg","mtime":"2020-02-08T21:52:35+01:00","size":1253,"digest":"ec59ac8daf2a63ea8e299ad63a208445d68a96affe6a10a7328acb6799d44127","integrity":"sha256-7Fmsja8qY+qOKZrWOiCERdaKlq/+ahCnMorLZ5nUQSc="},"flags/4x3/gb-eng-1895f4e35ae299f5d869da2462ffcf98df4b08dcddc531c8f175e49720001a14.svg":{"logical_path":"flags/4x3/gb-eng.svg","mtime":"2020-02-08T21:52:35+01:00","size":245,"digest":"1895f4e35ae299f5d869da2462ffcf98df4b08dcddc531c8f175e49720001a14","integrity":"sha256-GJX041rimfXYadokYv/PmN9LCNzdxTHI8XXklyAAGhQ="},"flags/1x1/gb-eng-d11afb87f40f35acda435a886ea044bd5e0b6f363ba0c7319f1d0181551fecf3.svg":{"logical_path":"flags/1x1/gb-eng.svg","mtime":"2020-02-08T21:52:35+01:00","size":235,"digest":"d11afb87f40f35acda435a886ea044bd5e0b6f363ba0c7319f1d0181551fecf3","integrity":"sha256-0Rr7h/QPNazaQ1qIbqBEvV4LbzY7oMcxnx0BgVUf7PM="},"flags/4x3/gb-nir-b280f09c787f495c1074376cd67537b40216f672917e7d204bb12b8e7c72afaf.svg":{"logical_path":"flags/4x3/gb-nir.svg","mtime":"2020-02-08T21:52:35+01:00","size":23738,"digest":"b280f09c787f495c1074376cd67537b40216f672917e7d204bb12b8e7c72afaf","integrity":"sha256-soDwnHh/SVwQdDds1nU3tAIW9nKRfn0gS7Erjnxyr68="},"flags/1x1/gb-nir-2e516e72e0e8e244ef430e6608322f8c4fb276807ab033279b2a6570dd68fd41.svg":{"logical_path":"flags/1x1/gb-nir.svg","mtime":"2020-02-08T21:52:35+01:00","size":25263,"digest":"2e516e72e0e8e244ef430e6608322f8c4fb276807ab033279b2a6570dd68fd41","integrity":"sha256-LlFucuDo4kTvQw5mCDIvjE+ydoB6sDMnmyplcN1o/UE="},"flags/4x3/gb-sct-1b9e407802ae901cf8da740c382ec2b19821837d76271a73346e0c63c2244506.svg":{"logical_path":"flags/4x3/gb-sct.svg","mtime":"2020-02-08T21:52:35+01:00","size":234,"digest":"1b9e407802ae901cf8da740c382ec2b19821837d76271a73346e0c63c2244506","integrity":"sha256-G55AeAKukBz42nQMOC7CsZghg312JxpzNG4MY8IkRQY="},"flags/1x1/gb-sct-d01e8a06a340e30ce52e8a3aba7ca6207afb96fdb238a815cc6cb92df8fa5df3.svg":{"logical_path":"flags/1x1/gb-sct.svg","mtime":"2020-02-08T21:52:35+01:00","size":242,"digest":"d01e8a06a340e30ce52e8a3aba7ca6207afb96fdb238a815cc6cb92df8fa5df3","integrity":"sha256-0B6KBqNA4wzlLoo6unymIHr7lv2yOKgVzGy5Lfj6XfM="},"flags/4x3/gb-wls-5232b3e376a19866cddec8225cba242783b2a48063811957f1ce5a2c347c5bc9.svg":{"logical_path":"flags/4x3/gb-wls.svg","mtime":"2020-02-08T21:52:35+01:00","size":9188,"digest":"5232b3e376a19866cddec8225cba242783b2a48063811957f1ce5a2c347c5bc9","integrity":"sha256-UjKz43ahmGbN3sgiXLokJ4OypIBjgRlX8c5aLDR8W8k="},"flags/1x1/gb-wls-126615bc3597fda1ca4ee931ef24f6c2cf2547998c06db9c1ded69fe66c479e9.svg":{"logical_path":"flags/1x1/gb-wls.svg","mtime":"2020-02-08T21:52:35+01:00","size":9083,"digest":"126615bc3597fda1ca4ee931ef24f6c2cf2547998c06db9c1ded69fe66c479e9","integrity":"sha256-EmYVvDWX/aHKTukx7yT2ws8lR5mMBtucHe1p/mbEeek="},"flags/4x3/un-31dece22ae18c3e01e86648ef3ef45f2f5b3d9d28a1e2bbbcdb1d87c37af55af.svg":{"logical_path":"flags/4x3/un.svg","mtime":"2020-02-08T21:52:35+01:00","size":20268,"digest":"31dece22ae18c3e01e86648ef3ef45f2f5b3d9d28a1e2bbbcdb1d87c37af55af","integrity":"sha256-Md7OIq4Yw+AehmSO8+9F8vWz2dKKHiu7zbHYfDevVa8="},"flags/1x1/un-455b5f3173ca9ac64f2135fac4ead7217d7fbe07551d0d2cc60216f83208f798.svg":{"logical_path":"flags/1x1/un.svg","mtime":"2020-02-08T21:52:35+01:00","size":20476,"digest":"455b5f3173ca9ac64f2135fac4ead7217d7fbe07551d0d2cc60216f83208f798","integrity":"sha256-RVtfMXPKmsZPITX6xOrXIX1/vgdVHQ0sxgIW+DII95g="},"leaflet/dist/images/layers-1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6.png":{"logical_path":"leaflet/dist/images/layers.png","mtime":"2020-04-05T17:14:06+02:00","size":696,"digest":"1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6","integrity":"sha256-Hbvp0CjikvNvy6j4s6KNXokydU/CIVuaxp5M3s9RB8Y="},"leaflet/dist/images/layers-2x-066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf.png":{"logical_path":"leaflet/dist/images/layers-2x.png","mtime":"2020-04-05T17:14:06+02:00","size":1259,"digest":"066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf","integrity":"sha256-Bm2sqFDY/77wB68AsG6sABVyje4nnFHzy2xxbffELt8="},"leaflet/dist/images/marker-icon-574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437.png":{"logical_path":"leaflet/dist/images/marker-icon.png","mtime":"2020-04-05T17:14:06+02:00","size":1466,"digest":"574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437","integrity":"sha256-V0w6XMqF9BFAhbaEFZbWLwDXyJLHsD8oy/owHesdxDc="},"markers-soft-e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739.png":{"logical_path":"markers-soft.png","mtime":"2020-04-05T17:14:06+02:00","size":41226,"digest":"e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739","integrity":"sha256-54eE5O1wqv/d1zwxX6tZAjPMTntyOI191HoUeW/Hxzk="},"markers-shadow-8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20.png":{"logical_path":"markers-shadow.png","mtime":"2020-04-05T17:14:06+02:00","size":535,"digest":"8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20","integrity":"sha256-hwOiJicQ9ePSnmXSrN+Q1lEuFZ4RnSe4I0cx2KYgiiA="},"markers-soft@2x-c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf.png":{"logical_path":"markers-soft@2x.png","mtime":"2020-04-05T17:14:06+02:00","size":66408,"digest":"c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf","integrity":"sha256-wedyU6i/vjDOwkiF1wRvRDt267ZvTJYfdwg7A/Sly68="},"markers-shadow@2x-b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a.png":{"logical_path":"markers-shadow@2x.png","mtime":"2020-04-05T17:14:06+02:00","size":1469,"digest":"b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a","integrity":"sha256-shpTa+JzE/tQT2n1iZ/wsSRbJ2VxdprAjWwyw1Z25Ho="},"events-f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315.js":{"logical_path":"events.js","mtime":"2020-04-05T17:14:06+02:00","size":1220,"digest":"f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315","integrity":"sha256-8SoWxoyEdnz8Iix2PVbiIJvE1a1RnwUJXy1EKcCxoxU="},"filter-2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca.js":{"logical_path":"filter.js","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca","integrity":"sha256-LslrnQxlDIgJQdfp/VaN7NHVh9wDfRBhRKB60QOw4Mo="},"flash-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js":{"logical_path":"flash.js","mtime":"2020-04-05T17:14:06+02:00","size":82,"digest":"41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7","integrity":"sha256-QfW5Ugb3poS4nrmXhGoBFV+UqwtlaLQnVwTT8oX1mdc="},"frTypo-fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836.js":{"logical_path":"frTypo.js","mtime":"2020-04-05T17:14:06+02:00","size":1962,"digest":"fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836","integrity":"sha256-/tmLfSzhh8Kjz/kVOsaqLb97kdM4Cdp3xlYf800b6DY="},"list-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js":{"logical_path":"list.js","mtime":"2020-01-16T20:20:11+01:00","size":82,"digest":"41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7","integrity":"sha256-QfW5Ugb3poS4nrmXhGoBFV+UqwtlaLQnVwTT8oX1mdc="},"maps-e86261c3df6f4ff292d786ab7261c98c408f466557b2f4915ae6dc25c1a05819.js":{"logical_path":"maps.js","mtime":"2020-01-07T21:15:22+01:00","size":3970,"digest":"e86261c3df6f4ff292d786ab7261c98c408f466557b2f4915ae6dc25c1a05819","integrity":"sha256-6GJhw99vT/KS14arcmHJjECPRmVXsvSRWubcJcGgWBk="},"moderations-c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380.js":{"logical_path":"moderations.js","mtime":"2020-04-05T17:14:06+02:00","size":377,"digest":"c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380","integrity":"sha256-xUca/ddRI/27Nu4UuF5mM8gSfQwRXjWTFhbDKahgU4A="},"notes-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js":{"logical_path":"notes.js","mtime":"2020-04-05T17:14:06+02:00","size":31,"digest":"85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb","integrity":"sha256-hYGcc4kg1P4+a4lxZ4hZDSey20sRgCwKDN1Iuu+xj8s="},"orgas-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js":{"logical_path":"orgas.js","mtime":"2020-04-05T17:14:06+02:00","size":31,"digest":"85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb","integrity":"sha256-hYGcc4kg1P4+a4lxZ4hZDSey20sRgCwKDN1Iuu+xj8s="},"pages-9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084.js":{"logical_path":"pages.js","mtime":"2020-04-05T17:14:06+02:00","size":694,"digest":"9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084","integrity":"sha256-ncyMs2JqnxmKuV+eZLtNJpFnp0Bd0H+UFA9extMrYIQ="},"pagination-ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5.js":{"logical_path":"pagination.js","mtime":"2020-01-16T20:20:11+01:00","size":728,"digest":"ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5","integrity":"sha256-q2uK+r49U3ZCh+2dDunUtwksq5jN+0U6VEcQZv7QWqU="},"setup_tinymce-f15efe5d488b3807165ccb6d0b237be3ba234c67200d309a1fa9dc4bf0d2ee08.js":{"logical_path":"setup_tinymce.js","mtime":"2019-12-22T12:30:30+01:00","size":1033,"digest":"f15efe5d488b3807165ccb6d0b237be3ba234c67200d309a1fa9dc4bf0d2ee08","integrity":"sha256-8V7+XUiLOAcWXMttCyN747ojTGcgDTCaH6ncS/DS7gg="},"stats-40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400.js":{"logical_path":"stats.js","mtime":"2020-04-05T17:14:06+02:00","size":908,"digest":"40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400","integrity":"sha256-QCldZH5hRHFbyftF9gCW3f+ROv3fEYRK6s2kfL7WhAA="},"_variables-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css":{"logical_path":"_variables.css","mtime":"2020-04-05T17:14:06+02:00","size":0,"digest":"d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6","integrity":"sha256-0P9ZdLaqUs9WK+pZIYQMAyqGCpGjUS9/6Pdo9rvgBfY="},"agendadescommuns-734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55.css":{"logical_path":"agendadescommuns.css","mtime":"2020-04-05T17:14:06+02:00","size":939,"digest":"734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55","integrity":"sha256-c00kiEr3buFn/PEC29vsQ+Wycm5l9Aw1CtOAD37pn1U="},"all-a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27.css":{"logical_path":"all.css","mtime":"2020-04-05T17:14:06+02:00","size":2745,"digest":"a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27","integrity":"sha256-pVqe12L4NE7NdDRjCK5wZqKD00MC+84e9ZJK1c4Zuyc="},"digest-e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3.css":{"logical_path":"digest.css","mtime":"2020-04-05T17:14:06+02:00","size":304,"digest":"e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3","integrity":"sha256-4T3QOnIWXO9QJ7gad09Fj+GmkQ0rqq6EuuVgsxmad8M="},"events-bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6.css":{"logical_path":"events.css","mtime":"2020-04-05T17:14:06+02:00","size":3191,"digest":"bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6","integrity":"sha256-u1ZkmoxbEdC4AFqOI+dWDzTXt5/MzM/+ShQHECz//tY="},"form-f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988.css":{"logical_path":"form.css","mtime":"2020-04-05T17:14:06+02:00","size":65684,"digest":"f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988","integrity":"sha256-8dpfZfNa9Eic95Bn9cBAmuXZ5BqoKG/P7xNyf9RqqYg="},"frTypo-ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512.css":{"logical_path":"frTypo.css","mtime":"2020-04-05T17:14:06+02:00","size":76,"digest":"ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512","integrity":"sha256-68qkX6fAv3gh0FlZqs7aY9JqMNMAeecGGZMrDh1J9RI="},"list-2a097a62ec89bc6d4d544dc4a4e4a1258b470b755ad0ad694b9f5b3cf4782f67.css":{"logical_path":"list.css","mtime":"2019-12-25T17:18:51+01:00","size":923,"digest":"2a097a62ec89bc6d4d544dc4a4e4a1258b470b755ad0ad694b9f5b3cf4782f67","integrity":"sha256-Kgl6YuyJvG1NVE3EpOShJYtHC3Va0K1pS59bPPR4L2c="},"maps-644829bf7b14b0c1b73efb7b2d44049969271bd969174b5bf7c53d0159cf424c.css":{"logical_path":"maps.css","mtime":"2020-01-17T21:34:48+01:00","size":536,"digest":"644829bf7b14b0c1b73efb7b2d44049969271bd969174b5bf7c53d0159cf424c","integrity":"sha256-ZEgpv3sUsMG3Pvt7LUQEmWknG9lpF0tb98U9AVnPQkw="},"mobile-59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36.css":{"logical_path":"mobile.css","mtime":"2020-04-05T17:14:06+02:00","size":2414,"digest":"59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36","integrity":"sha256-Wbeu7Y5+5uLO17t6byaunk4u08UUpYTA5wYSi0rX/jY="},"moderations-f561bf2c27715b6015b7dce1af2ce2358f05ca4d62794d199e3b2cdaec0be8f4.css":{"logical_path":"moderations.css","mtime":"2019-12-22T12:30:30+01:00","size":898,"digest":"f561bf2c27715b6015b7dce1af2ce2358f05ca4d62794d199e3b2cdaec0be8f4","integrity":"sha256-9WG/LCdxW2AVt9zhryziNY8Fyk1ieU0Znjss2uwL6PQ="},"notes-e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f.css":{"logical_path":"notes.css","mtime":"2020-04-05T17:14:06+02:00","size":37,"digest":"e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f","integrity":"sha256-5gclC5zvAjp2LACazGXDMg7B9tWBSjCqPBupB7T4y18="},"orgas-dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80.css":{"logical_path":"orgas.css","mtime":"2020-04-05T17:14:06+02:00","size":672,"digest":"dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80","integrity":"sha256-3XoqP8Z+n6FGdeG1kmO4+D4FInTWuQCHWw7kSUFDrYA="},"pages-5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2.css":{"logical_path":"pages.css","mtime":"2020-04-05T17:14:06+02:00","size":75,"digest":"5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2","integrity":"sha256-Xu2RR8nP6E6xKZvAyg2LDIH7DAfss44mlJ59Tkg3RuI="},"region-d285b5ecdf6d5b5ee68faac92854e4868a609e5509b90e90047178ac45649153.css":{"logical_path":"region.css","mtime":"2019-12-22T12:30:30+01:00","size":1903,"digest":"d285b5ecdf6d5b5ee68faac92854e4868a609e5509b90e90047178ac45649153","integrity":"sha256-0oW17N9tW17mj6rJKFTkhopgnlUJuQ6QBHF4rEVkkVM="},"scaffolds-c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b.css":{"logical_path":"scaffolds.css","mtime":"2020-04-05T17:14:06+02:00","size":430,"digest":"c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b","integrity":"sha256-wm/uVRCHw7clQcrlKhzGtFTxU+LQTAHUs1uewa5s8Js="},"sessions-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css":{"logical_path":"sessions.css","mtime":"2020-04-05T17:14:06+02:00","size":0,"digest":"d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6","integrity":"sha256-0P9ZdLaqUs9WK+pZIYQMAyqGCpGjUS9/6Pdo9rvgBfY="},"stats-b4f6f94d2f8dc057ec80c9ceeeaca31517882a8fd0b9f09d5f285896414c8685.css":{"logical_path":"stats.css","mtime":"2019-12-22T12:30:30+01:00","size":371,"digest":"b4f6f94d2f8dc057ec80c9ceeeaca31517882a8fd0b9f09d5f285896414c8685","integrity":"sha256-tPb5TS+NwFfsgMnO7qyjFReIKo/QufCdXyhYlkFMhoU="},"tags-c338d658bc3a1e40d8c6694d1fab6a633686ccc2c626563f890384fab38c20f0.css":{"logical_path":"tags.css","mtime":"2020-02-08T21:52:35+01:00","size":1399,"digest":"c338d658bc3a1e40d8c6694d1fab6a633686ccc2c626563f890384fab38c20f0","integrity":"sha256-wzjWWLw6HkDYxmlNH6tqYzaGzMLGJlY/iQOE+rOMIPA="},"versions-3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb.css":{"logical_path":"versions.css","mtime":"2020-04-05T17:14:06+02:00","size":47,"digest":"3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb","integrity":"sha256-Pipv/cb3cosOXlF6IIxNGnIWem1NprxNNttJQRUJJrs="},"application-6b0077e2b1b028a9968bff6fdbdebe5b37dd002896e7d4347fbf021c89927562.js":{"logical_path":"application.js","mtime":"2019-12-25T17:18:50+01:00","size":2001537,"digest":"6b0077e2b1b028a9968bff6fdbdebe5b37dd002896e7d4347fbf021c89927562","integrity":"sha256-awB34rGwKKmWi/9v296+WzfdACiW59Q0f78CHImSdWI="},"application-1026d28c200fb525d92a5552bc812bd5f0277f5a854b5d3cf9ac3d6fe66bc465.css":{"logical_path":"application.css","mtime":"2019-12-25T17:18:51+01:00","size":232293,"digest":"1026d28c200fb525d92a5552bc812bd5f0277f5a854b5d3cf9ac3d6fe66bc465","integrity":"sha256-ECbSjCAPtSXZKlVSvIEr1fAnf1qFS108+aw9b+ZrxGU="},"setup_tinymce-4e26b56d48453796509fb70dc4176cac5d18aa582260cd665efe0f192886ca4c.js":{"logical_path":"setup_tinymce.js","mtime":"2019-12-25T17:18:51+01:00","size":1033,"digest":"4e26b56d48453796509fb70dc4176cac5d18aa582260cd665efe0f192886ca4c","integrity":"sha256-Tia1bUhFN5ZQn7cNxBdsrF0YqlgiYM1mXv4PGSiGykw="},"moderations-d96d93c516d69b280e4d312ec96d2c13f3650e03c57cc08bf582b2d26bf2882e.css":{"logical_path":"moderations.css","mtime":"2019-12-25T17:18:51+01:00","size":939,"digest":"d96d93c516d69b280e4d312ec96d2c13f3650e03c57cc08bf582b2d26bf2882e","integrity":"sha256-2W2TxRbWmygOTTEuyW0sE/NlDgPFfMCL9YKy0mvyiC4="},"region-0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e.css":{"logical_path":"region.css","mtime":"2020-04-05T17:14:06+02:00","size":1871,"digest":"0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e","integrity":"sha256-DUFsYXGliOtqGkBkLymE8IsLIF0uqwd7Er2Fn9YM7z4="},"stats-e46b6e6ffdd66de16d29c029216debae3fc6f81d83e21bc8be2700df34cb4f20.css":{"logical_path":"stats.css","mtime":"2019-12-25T17:18:51+01:00","size":403,"digest":"e46b6e6ffdd66de16d29c029216debae3fc6f81d83e21bc8be2700df34cb4f20","integrity":"sha256-5Gtub/3WbeFtKcApIW3rrj/G+B2D4hvIvicA3zTLTyA="},"active_admin-dec69308746afc6dbd02775421aa3e1f79637faf69ee5142205b51e446e82b71.css":{"logical_path":"active_admin.css","mtime":"2020-01-16T20:20:11+01:00","size":107471,"digest":"dec69308746afc6dbd02775421aa3e1f79637faf69ee5142205b51e446e82b71","integrity":"sha256-3saTCHRq/G29AndUIao+H3ljf69p7lFCIFtR5EboK3E="},"application-fb731c41db1a05bf805327a9592adeebe78029f52947b9410e3cf935ee82fbd0.js":{"logical_path":"application.js","mtime":"2020-01-07T21:15:21+01:00","size":2001537,"digest":"fb731c41db1a05bf805327a9592adeebe78029f52947b9410e3cf935ee82fbd0","integrity":"sha256-+3McQdsaBb+AUyepWSre6+eAKfUpR7lBDjz5Ne6C+9A="},"application-8002eadc07c8d58b56bad6f45a5e2607344c903abacfe94121bd35aa25f764a8.css":{"logical_path":"application.css","mtime":"2020-01-16T20:20:11+01:00","size":232365,"digest":"8002eadc07c8d58b56bad6f45a5e2607344c903abacfe94121bd35aa25f764a8","integrity":"sha256-gALq3AfI1YtWutb0Wl4mBzRMkDq6z+lBIb01qiX3ZKg="},"setup_tinymce-d8387e12966ef5097652a4d0a20baeea770fe700706c5bb25be979bcd361aa4b.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-16T20:20:11+01:00","size":1033,"digest":"d8387e12966ef5097652a4d0a20baeea770fe700706c5bb25be979bcd361aa4b","integrity":"sha256-2Dh+EpZu9Ql2UqTQoguu6ncP5wBwbFuyW+l5vNNhqks="},"list-d5aed2f96e49ce444974d43fb9d53d43f2ae1f5bb5b1716e5dc245447fd64316.css":{"logical_path":"list.css","mtime":"2020-01-16T20:20:11+01:00","size":853,"digest":"d5aed2f96e49ce444974d43fb9d53d43f2ae1f5bb5b1716e5dc245447fd64316","integrity":"sha256-1a7S+W5JzkRJdNQ/udU9Q/KuH1u1sXFuXcJFRH/WQxY="},"moderations-ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895.css":{"logical_path":"moderations.css","mtime":"2020-04-05T17:14:06+02:00","size":979,"digest":"ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895","integrity":"sha256-7ej08oCKtXKQh4Dy2uoupOdrHQsMVzXXRLt8xR+2mJU="},"stats-a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45.css":{"logical_path":"stats.css","mtime":"2020-04-05T17:14:06+02:00","size":505,"digest":"a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45","integrity":"sha256-oirTSyGE5jxu5g91gp3K5owqPpCUoK9BngYwa1tor0U="},"tinymce/jquery.tinymce.js":{"logical_path":"tinymce/jquery.tinymce.js","mtime":"2019-12-21T20:51:18+01:00","size":6635,"digest":null},"tinymce/langs/readme.md":{"logical_path":"tinymce/langs/readme.md","mtime":"2019-12-21T20:51:18+01:00","size":151,"digest":null},"tinymce/license.txt":{"logical_path":"tinymce/license.txt","mtime":"2019-12-21T20:51:18+01:00","size":26441,"digest":null},"tinymce/plugins/advlist/plugin.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3994,"digest":null},"tinymce/plugins/anchor/plugin.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2119,"digest":null},"tinymce/plugins/autolink/plugin.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2535,"digest":null},"tinymce/plugins/autoresize/plugin.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2451,"digest":null},"tinymce/plugins/autosave/plugin.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3492,"digest":null},"tinymce/plugins/bbcode/plugin.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3116,"digest":null},"tinymce/plugins/charmap/plugin.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":11947,"digest":null},"tinymce/plugins/code/plugin.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1225,"digest":null},"tinymce/plugins/codesample/plugin.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":21027,"digest":null},"tinymce/plugins/colorpicker/plugin.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":549,"digest":null},"tinymce/plugins/contextmenu/plugin.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":549,"digest":null},"tinymce/plugins/directionality/plugin.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":4314,"digest":null},"tinymce/plugins/emoticons/js/emojis.js":{"logical_path":"tinymce/plugins/emoticons/js/emojis.js","mtime":"2019-12-21T20:51:18+01:00","size":193222,"digest":null},"tinymce/plugins/emoticons/plugin.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":6920,"digest":null},"tinymce/plugins/fullpage/plugin.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":8195,"digest":null},"tinymce/plugins/fullscreen/plugin.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":14305,"digest":null},"tinymce/plugins/help/plugin.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":14519,"digest":null},"tinymce/plugins/hr/plugin.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":840,"digest":null},"tinymce/plugins/image/plugin.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":29770,"digest":null},"tinymce/plugins/imagetools/plugin.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":22210,"digest":null},"tinymce/plugins/importcss/plugin.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":5007,"digest":null},"tinymce/plugins/insertdatetime/plugin.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3211,"digest":null},"tinymce/plugins/legacyoutput/plugin.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2975,"digest":null},"tinymce/plugins/link/plugin.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":22689,"digest":null},"tinymce/plugins/lists/plugin.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":28086,"digest":null},"tinymce/plugins/media/plugin.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":18041,"digest":null},"tinymce/plugins/nonbreaking/plugin.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1584,"digest":null},"tinymce/plugins/noneditable/plugin.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1841,"digest":null},"tinymce/plugins/pagebreak/plugin.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1841,"digest":null},"tinymce/plugins/paste/plugin.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":31656,"digest":null},"tinymce/plugins/preview/plugin.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":2200,"digest":null},"tinymce/plugins/print/plugin.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":888,"digest":null},"tinymce/plugins/quickbars/plugin.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":11082,"digest":null},"tinymce/plugins/save/plugin.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1822,"digest":null},"tinymce/plugins/searchreplace/plugin.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":10440,"digest":null},"tinymce/plugins/spellchecker/plugin.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":10403,"digest":null},"tinymce/plugins/tabfocus/plugin.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1937,"digest":null},"tinymce/plugins/table/plugin.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":124407,"digest":null},"tinymce/plugins/template/plugin.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":8076,"digest":null},"tinymce/plugins/textcolor/plugin.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":545,"digest":null},"tinymce/plugins/textpattern/plugin.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":18705,"digest":null},"tinymce/plugins/toc/plugin.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":3591,"digest":null},"tinymce/plugins/visualblocks/plugin.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":1651,"digest":null},"tinymce/plugins/visualchars/plugin.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":7080,"digest":null},"tinymce/plugins/wordcount/plugin.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2019-12-21T20:51:18+01:00","size":13185,"digest":null},"tinymce/skins/content/dark/content.css":{"logical_path":"tinymce/skins/content/dark/content.css","mtime":"2019-12-21T20:51:18+01:00","size":1082,"digest":null},"tinymce/skins/content/dark/content.min.css":{"logical_path":"tinymce/skins/content/dark/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":1082,"digest":null},"tinymce/skins/content/default/content.css":{"logical_path":"tinymce/skins/content/default/content.css","mtime":"2019-12-21T20:51:18+01:00","size":957,"digest":null},"tinymce/skins/content/default/content.min.css":{"logical_path":"tinymce/skins/content/default/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":957,"digest":null},"tinymce/skins/content/document/content.css":{"logical_path":"tinymce/skins/content/document/content.css","mtime":"2019-12-21T20:51:18+01:00","size":1040,"digest":null},"tinymce/skins/content/document/content.min.css":{"logical_path":"tinymce/skins/content/document/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":1040,"digest":null},"tinymce/skins/content/writer/content.css":{"logical_path":"tinymce/skins/content/writer/content.css","mtime":"2019-12-21T20:51:18+01:00","size":978,"digest":null},"tinymce/skins/content/writer/content.min.css":{"logical_path":"tinymce/skins/content/writer/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":978,"digest":null},"tinymce/skins/ui/oxide-dark/content.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2019-12-21T20:51:18+01:00","size":17510,"digest":null},"tinymce/skins/ui/oxide-dark/content.inline.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide-dark/content.inline.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide-dark/content.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17510,"digest":null},"tinymce/skins/ui/oxide-dark/content.mobile.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide-dark/content.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff":{"logical_path":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff","mtime":"2019-12-21T20:51:18+01:00","size":4624,"digest":null},"tinymce/skins/ui/oxide-dark/skin.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2019-12-21T20:51:18+01:00","size":54904,"digest":null},"tinymce/skins/ui/oxide-dark/skin.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2019-12-21T20:51:18+01:00","size":54904,"digest":null},"tinymce/skins/ui/oxide-dark/skin.mobile.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide-dark/skin.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide/content.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2019-12-21T20:51:18+01:00","size":17883,"digest":null},"tinymce/skins/ui/oxide/content.inline.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide/content.inline.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17824,"digest":null},"tinymce/skins/ui/oxide/content.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2019-12-21T20:51:18+01:00","size":17883,"digest":null},"tinymce/skins/ui/oxide/content.mobile.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide/content.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":544,"digest":null},"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff":{"logical_path":"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff","mtime":"2019-12-21T20:51:18+01:00","size":4624,"digest":null},"tinymce/skins/ui/oxide/skin.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2019-12-21T20:51:18+01:00","size":55044,"digest":null},"tinymce/skins/ui/oxide/skin.min.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2019-12-21T20:51:18+01:00","size":55044,"digest":null},"tinymce/skins/ui/oxide/skin.mobile.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/skins/ui/oxide/skin.mobile.min.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.min.css","mtime":"2019-12-21T20:51:18+01:00","size":21004,"digest":null},"tinymce/themes/mobile/theme.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2019-12-21T20:51:18+01:00","size":181729,"digest":null},"tinymce/themes/silver/theme.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2019-12-21T20:51:18+01:00","size":406030,"digest":null},"tinymce/tinymce.js":{"logical_path":"tinymce/tinymce.js","mtime":"2019-12-21T20:51:18+01:00","size":439628,"digest":null},"tinymce-rails.manifest-e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04.js":{"logical_path":"tinymce-rails.manifest.js","mtime":"2020-04-05T17:14:06+02:00","size":3,"digest":"e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04","integrity":"sha256-52GIRSKpyi2sR1tousGUbJkPua+LZ207a0VpKpIMjQQ="},"tinymce/jquery.tinymce-288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2.js":{"logical_path":"tinymce/jquery.tinymce.js","mtime":"2020-04-05T17:14:06+02:00","size":6636,"digest":"288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2","integrity":"sha256-KIkRdxxxZ6ue/jyGsuxa3hzqUQ3BAmlD34RoXDjZHvI="},"tinymce/plugins/advlist/plugin-9d5f181c8b89a6d3fd79e5773920a8702a818e3503f2d2225538b1024e22c881.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3995,"digest":"9d5f181c8b89a6d3fd79e5773920a8702a818e3503f2d2225538b1024e22c881","integrity":"sha256-nV8YHIuJptP9eeV3OSCocCqBjjUD8tIiVTixAk4iyIE="},"tinymce/plugins/anchor/plugin-1101283820b4b9031320d224dd162327bb6ad406925efba1b0712b448ffae72c.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2120,"digest":"1101283820b4b9031320d224dd162327bb6ad406925efba1b0712b448ffae72c","integrity":"sha256-EQEoOCC0uQMTINIk3RYjJ7tq1AaSXvuhsHErRI/65yw="},"tinymce/plugins/autolink/plugin-ea3267031e438e98832047c8265fbc070407a0ffbc93e8d2c3a48bd752b1e336.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2536,"digest":"ea3267031e438e98832047c8265fbc070407a0ffbc93e8d2c3a48bd752b1e336","integrity":"sha256-6jJnAx5DjpiDIEfIJl+8BwQHoP+8k+jSw6SL11Kx4zY="},"tinymce/plugins/autoresize/plugin-debda956b34a60a1b4bc427cdfc19a87e2b41ff10438a945371c7f93d731ed77.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2452,"digest":"debda956b34a60a1b4bc427cdfc19a87e2b41ff10438a945371c7f93d731ed77","integrity":"sha256-3r2pVrNKYKG0vEJ838Gah+K0H/EEOKlFNxx/k9cx7Xc="},"tinymce/plugins/autosave/plugin-5d7b50830029e2fcbec55cca0328d8142fa0d8f46757c9019a4cb28be4e3fee5.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3493,"digest":"5d7b50830029e2fcbec55cca0328d8142fa0d8f46757c9019a4cb28be4e3fee5","integrity":"sha256-XXtQgwAp4vy+xVzKAyjYFC+g2PRnV8kBmkyyi+Tj/uU="},"tinymce/plugins/bbcode/plugin-d4ea4957fd10a1e6e2956954d47b39e019705163bc4da5dfcaaac5fc7c3c763d.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3117,"digest":"d4ea4957fd10a1e6e2956954d47b39e019705163bc4da5dfcaaac5fc7c3c763d","integrity":"sha256-1OpJV/0QoebilWlU1Hs54BlwUWO8TaXfyqrF/Hw8dj0="},"tinymce/plugins/charmap/plugin-3e427c5d66327507030644fed56edbce588cee62648ee8af86ac06e26873d758.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":11948,"digest":"3e427c5d66327507030644fed56edbce588cee62648ee8af86ac06e26873d758","integrity":"sha256-PkJ8XWYydQcDBkT+1W7bzliM7mJkjuivhqwG4mhz11g="},"tinymce/plugins/code/plugin-a1e4ee3ef429e49b5d6bf2505813b0ab804e6b72dd5ca733be0b661e4608e37a.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1226,"digest":"a1e4ee3ef429e49b5d6bf2505813b0ab804e6b72dd5ca733be0b661e4608e37a","integrity":"sha256-oeTuPvQp5Jtda/JQWBOwq4BOa3LdXKczvgtmHkYI43o="},"tinymce/plugins/codesample/plugin-ec16e82f1cf7c8759aa18ad9677b1c828c7d779758d4f803c7b6a1374d79f5d0.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":21028,"digest":"ec16e82f1cf7c8759aa18ad9677b1c828c7d779758d4f803c7b6a1374d79f5d0","integrity":"sha256-7BboLxz3yHWaoYrZZ3scgox9d5dY1PgDx7ahN0159dA="},"tinymce/plugins/colorpicker/plugin-397300b6bbf064534c66e500cc76f04974a8b3148ff8527696952f6e66904ff4.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":550,"digest":"397300b6bbf064534c66e500cc76f04974a8b3148ff8527696952f6e66904ff4","integrity":"sha256-OXMAtrvwZFNMZuUAzHbwSXSosxSP+FJ2lpUvbmaQT/Q="},"tinymce/plugins/contextmenu/plugin-854c81b98b7c49b727ef2838a12496df12c17eb532e75c0b136587d5319dfeb4.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":550,"digest":"854c81b98b7c49b727ef2838a12496df12c17eb532e75c0b136587d5319dfeb4","integrity":"sha256-hUyBuYt8Sbcn7yg4oSSW3xLBfrUy51wLE2WH1TGd/rQ="},"tinymce/plugins/directionality/plugin-51daac61c7bb784b21fd9e7bb7ece6faec999a23cfc1235fd738e6b7b535d0c7.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":4315,"digest":"51daac61c7bb784b21fd9e7bb7ece6faec999a23cfc1235fd738e6b7b535d0c7","integrity":"sha256-UdqsYce7eEsh/Z57t+zm+uyZmiPPwSNf1zjmt7U10Mc="},"tinymce/plugins/emoticons/js/emojis-a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a.js":{"logical_path":"tinymce/plugins/emoticons/js/emojis.js","mtime":"2020-04-05T17:14:06+02:00","size":193223,"digest":"a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a","integrity":"sha256-oHNolrl60zN3QH34UmlHAuWk31yZdDc/j43j4UepxXo="},"tinymce/plugins/emoticons/plugin-0a616a34a40aaf42639751775cd0c8a7a07c253dc2d50d6fd259aff0494af6dc.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":6921,"digest":"0a616a34a40aaf42639751775cd0c8a7a07c253dc2d50d6fd259aff0494af6dc","integrity":"sha256-CmFqNKQKr0Jjl1F3XNDIp6B8JT3C1Q1v0lmv8ElK9tw="},"tinymce/plugins/fullpage/plugin-950be265f2e1f9463176d4d371603e745dafe60b20d085d3fdb7dfc731851abf.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":8196,"digest":"950be265f2e1f9463176d4d371603e745dafe60b20d085d3fdb7dfc731851abf","integrity":"sha256-lQviZfLh+UYxdtTTcWA+dF2v5gsg0IXT/bffxzGFGr8="},"tinymce/plugins/fullscreen/plugin-2c24621819d483ae03f863ffac123332dacb13aaf4bc37462e076b3f1b416dd7.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":14306,"digest":"2c24621819d483ae03f863ffac123332dacb13aaf4bc37462e076b3f1b416dd7","integrity":"sha256-LCRiGBnUg64D+GP/rBIzMtrLE6r0vDdGLgdrPxtBbdc="},"tinymce/plugins/help/plugin-256c84a454287673fa4c4a88785948aff7d88baa7087ec78323989144bc8009a.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":14520,"digest":"256c84a454287673fa4c4a88785948aff7d88baa7087ec78323989144bc8009a","integrity":"sha256-JWyEpFQodnP6TEqIeFlIr/fYi6pwh+x4MjmJFEvIAJo="},"tinymce/plugins/hr/plugin-98aae8ceed7e478997882f091ff4ab9b7c6361ebf4a4c1a5d42e5066510dad36.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":841,"digest":"98aae8ceed7e478997882f091ff4ab9b7c6361ebf4a4c1a5d42e5066510dad36","integrity":"sha256-mKrozu1+R4mXiC8JH/Srm3xjYev0pMGl1C5QZlENrTY="},"tinymce/plugins/image/plugin-bedbb33580f5c7191faeca7f057f6f86737a62b661706c09bd910259eac36724.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":29771,"digest":"bedbb33580f5c7191faeca7f057f6f86737a62b661706c09bd910259eac36724","integrity":"sha256-vtuzNYD1xxkfrsp/BX9vhnN6YrZhcGwJvZECWerDZyQ="},"tinymce/plugins/imagetools/plugin-2c6afa5dc81bff9d4aed443e0d8c14d2a73d5bd2528943289223bf843b3caac4.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":22211,"digest":"2c6afa5dc81bff9d4aed443e0d8c14d2a73d5bd2528943289223bf843b3caac4","integrity":"sha256-LGr6Xcgb/51K7UQ+DYwU0qc9W9JSiUMokiO/hDs8qsQ="},"tinymce/plugins/importcss/plugin-f4e599c94612b273a8dacf94ad1622adcff633a5fd4387ae5121f7d5722247ff.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":5008,"digest":"f4e599c94612b273a8dacf94ad1622adcff633a5fd4387ae5121f7d5722247ff","integrity":"sha256-9OWZyUYSsnOo2s+UrRYirc/2M6X9Q4euUSH31XIiR/8="},"tinymce/plugins/insertdatetime/plugin-3f37e3a0ba1506ff8ad6dd835cde7ed3d2db3e9ece51733ea2950f666cec11c2.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3212,"digest":"3f37e3a0ba1506ff8ad6dd835cde7ed3d2db3e9ece51733ea2950f666cec11c2","integrity":"sha256-PzfjoLoVBv+K1t2DXN5+09LbPp7OUXM+opUPZmzsEcI="},"tinymce/plugins/legacyoutput/plugin-9cbb8dd8733fc043c2825f7f62590d5e8fd3ee73badfbbec677c04a0e21c3ec3.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2976,"digest":"9cbb8dd8733fc043c2825f7f62590d5e8fd3ee73badfbbec677c04a0e21c3ec3","integrity":"sha256-nLuN2HM/wEPCgl9/YlkNXo/T7nO637vsZ3wEoOIcPsM="},"tinymce/plugins/link/plugin-178cc5b94ecc34fe0658a51b3dca57fcc70b554a959dcadd6c4031ca854b337a.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":22690,"digest":"178cc5b94ecc34fe0658a51b3dca57fcc70b554a959dcadd6c4031ca854b337a","integrity":"sha256-F4zFuU7MNP4GWKUbPcpX/McLVUqVncrdbEAxyoVLM3o="},"tinymce/plugins/lists/plugin-48983439cc63cb4a8fea18c9bfe9879f14f8ae6a73c9c66f35432fbc09c514ea.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":28087,"digest":"48983439cc63cb4a8fea18c9bfe9879f14f8ae6a73c9c66f35432fbc09c514ea","integrity":"sha256-SJg0Ocxjy0qP6hjJv+mHnxT4rmpzycZvNUMvvAnFFOo="},"tinymce/plugins/media/plugin-14c054e4fcb51f19c4d4485a42ba6cc0c8455e8162bdbdd5ea97b09368afcc9e.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":18042,"digest":"14c054e4fcb51f19c4d4485a42ba6cc0c8455e8162bdbdd5ea97b09368afcc9e","integrity":"sha256-FMBU5Py1HxnE1EhaQrpswMhFXoFivb3V6pewk2ivzJ4="},"tinymce/plugins/nonbreaking/plugin-85b41dad44751eb9c762fc9873ab21e3d7fe279c0ec4ff7447e82fd51b7d37a4.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1585,"digest":"85b41dad44751eb9c762fc9873ab21e3d7fe279c0ec4ff7447e82fd51b7d37a4","integrity":"sha256-hbQdrUR1HrnHYvyYc6sh49f+J5wOxP90R+gv1Rt9N6Q="},"tinymce/plugins/noneditable/plugin-a27d05cbf2a672f92224d78d1ad31c6e4662a5aae17fb661ccbcacd51e943fd7.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1842,"digest":"a27d05cbf2a672f92224d78d1ad31c6e4662a5aae17fb661ccbcacd51e943fd7","integrity":"sha256-on0Fy/KmcvkiJNeNGtMcbkZiparhf7ZhzLys1R6UP9c="},"tinymce/plugins/pagebreak/plugin-749e5872ed39a1f09961b49bb255fac0f6360f01c7f0b4ec1b5f38f5e2ef3d01.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1842,"digest":"749e5872ed39a1f09961b49bb255fac0f6360f01c7f0b4ec1b5f38f5e2ef3d01","integrity":"sha256-dJ5Ycu05ofCZYbSbslX6wPY2DwHH8LTsG1849eLvPQE="},"tinymce/plugins/paste/plugin-0b77edd91b1c76af73aacd79e6dad100aa11ef7c5c03f0333d26df1750dd45e7.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":31657,"digest":"0b77edd91b1c76af73aacd79e6dad100aa11ef7c5c03f0333d26df1750dd45e7","integrity":"sha256-C3ft2Rscdq9zqs155trRAKoR73xcA/AzPSbfF1DdRec="},"tinymce/plugins/preview/plugin-f03537c1c398cca4e649bdeeb6ea907e006158a53cfe04ba36cd72c3e6a62180.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":2201,"digest":"f03537c1c398cca4e649bdeeb6ea907e006158a53cfe04ba36cd72c3e6a62180","integrity":"sha256-8DU3wcOYzKTmSb3utuqQfgBhWKU8/gS6Ns1yw+amIYA="},"tinymce/plugins/print/plugin-138e832a86ceeb9d70d7b2a0e4441ef63f6c67543c2e80768f30ca21644f3ece.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":889,"digest":"138e832a86ceeb9d70d7b2a0e4441ef63f6c67543c2e80768f30ca21644f3ece","integrity":"sha256-E46DKobO651w17Kg5EQe9j9sZ1Q8LoB2jzDKIWRPPs4="},"tinymce/plugins/quickbars/plugin-c22bae775a23ec4f8d5c1ccd0c22a4879431dcfc3cfc4a9beda56643e63c3847.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":11083,"digest":"c22bae775a23ec4f8d5c1ccd0c22a4879431dcfc3cfc4a9beda56643e63c3847","integrity":"sha256-wiuud1oj7E+NXBzNDCKkh5Qx3Pw8/Eqb7aVmQ+Y8OEc="},"tinymce/plugins/save/plugin-69fa49b662035a24756176359a3fa2c75a81bdb72c7273b02adf3f049522f759.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1823,"digest":"69fa49b662035a24756176359a3fa2c75a81bdb72c7273b02adf3f049522f759","integrity":"sha256-afpJtmIDWiR1YXY1mj+ix1qBvbcscnOwKt8/BJUi91k="},"tinymce/plugins/searchreplace/plugin-dcc69f2da3c72a7333e92f3388d6b95586d8654fe7806cfcabf37ea72658dd28.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":10441,"digest":"dcc69f2da3c72a7333e92f3388d6b95586d8654fe7806cfcabf37ea72658dd28","integrity":"sha256-3MafLaPHKnMz6S8ziNa5VYbYZU/ngGz8q/N+pyZY3Sg="},"tinymce/plugins/spellchecker/plugin-ce68d7606345e0306c571efe4943281c791210c94150762cda68995dbddf4ffe.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":10404,"digest":"ce68d7606345e0306c571efe4943281c791210c94150762cda68995dbddf4ffe","integrity":"sha256-zmjXYGNF4DBsVx7+SUMoHHkSEMlBUHYs2miZXb3fT/4="},"tinymce/plugins/tabfocus/plugin-e9208621ad5eac8e846dc63b1147e34d5bc88e58071ebcff8507ac0584fa49e1.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1938,"digest":"e9208621ad5eac8e846dc63b1147e34d5bc88e58071ebcff8507ac0584fa49e1","integrity":"sha256-6SCGIa1erI6EbcY7EUfjTVvIjlgHHrz/hQesBYT6SeE="},"tinymce/plugins/table/plugin-6f3d2766a8dba93298aeec2fbef24b09f9f06276201d9bff3b6398f8b88ef2e0.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":124408,"digest":"6f3d2766a8dba93298aeec2fbef24b09f9f06276201d9bff3b6398f8b88ef2e0","integrity":"sha256-bz0nZqjbqTKYruwvvvJLCfnwYnYgHZv/O2OY+LiO8uA="},"tinymce/plugins/template/plugin-b83aef186cd1fee1c5db5c21c929528cef7d1a33485d58a444f99b70b2f63b01.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":8077,"digest":"b83aef186cd1fee1c5db5c21c929528cef7d1a33485d58a444f99b70b2f63b01","integrity":"sha256-uDrvGGzR/uHF21whySlSjO99GjNIXVikRPmbcLL2OwE="},"tinymce/plugins/textcolor/plugin-28ab395ea6dfbe3ca00cc85474556006e3d299c82f20ac9e83f67a6db6a15242.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":546,"digest":"28ab395ea6dfbe3ca00cc85474556006e3d299c82f20ac9e83f67a6db6a15242","integrity":"sha256-KKs5XqbfvjygDMhUdFVgBuPSmcgvIKyeg/Z6bbahUkI="},"tinymce/plugins/textpattern/plugin-e08737496fb339132b7e08dd96bce0887392031353e206aecfecdd80665a0403.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":18706,"digest":"e08737496fb339132b7e08dd96bce0887392031353e206aecfecdd80665a0403","integrity":"sha256-4Ic3SW+zORMrfgjdlrzgiHOSAxNT4gauz+zdgGZaBAM="},"tinymce/plugins/toc/plugin-4d1c388ae94827bd4daa04db25c7fc86abef34ee4ae3b3f7c23c5895bc6a078f.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":3592,"digest":"4d1c388ae94827bd4daa04db25c7fc86abef34ee4ae3b3f7c23c5895bc6a078f","integrity":"sha256-TRw4iulIJ71NqgTbJcf8hqvvNO5K47P3wjxYlbxqB48="},"tinymce/plugins/visualblocks/plugin-6a108188d2b0f1fb88f097e369d9cb67cc213944d7b11f16501a51b825ea62da.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":1652,"digest":"6a108188d2b0f1fb88f097e369d9cb67cc213944d7b11f16501a51b825ea62da","integrity":"sha256-ahCBiNKw8fuI8JfjadnLZ8whOUTXsR8WUBpRuCXqYto="},"tinymce/plugins/visualchars/plugin-38fdc7742fa0f36b65af47d47d91f74a0f0c976c18d6b029b70f4e54c58c34a5.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":7081,"digest":"38fdc7742fa0f36b65af47d47d91f74a0f0c976c18d6b029b70f4e54c58c34a5","integrity":"sha256-OP3HdC+g82tlr0fUfZH3Sg8Ml2wY1rAptw9OVMWMNKU="},"tinymce/plugins/wordcount/plugin-7b30653d1524deab208a452ce81b800a4de426cc91fceae4eca5c686b060ba78.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-01-17T21:34:48+01:00","size":13186,"digest":"7b30653d1524deab208a452ce81b800a4de426cc91fceae4eca5c686b060ba78","integrity":"sha256-ezBlPRUk3qsgikUs6BuACk3kJsyR/Ork7KXGhrBgung="},"tinymce/themes/mobile/theme-3b6cfd8e85aa4cd48d541a0a41e6150e356ae1c0465fb62adafca1ce83629949.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-01-17T21:34:48+01:00","size":181730,"digest":"3b6cfd8e85aa4cd48d541a0a41e6150e356ae1c0465fb62adafca1ce83629949","integrity":"sha256-O2z9joWqTNSNVBoKQeYVDjVq4cBGX7Yq2vyhzoNimUk="},"tinymce/themes/silver/theme-74965ba198307e513a8b8ab9c75bf7afceab2aab3db185c520de06bae6e0bc24.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-01-17T21:34:48+01:00","size":406031,"digest":"74965ba198307e513a8b8ab9c75bf7afceab2aab3db185c520de06bae6e0bc24","integrity":"sha256-dJZboZgwflE6i4q5x1v3r86rKqs9sYXFIN4GuubgvCQ="},"tinymce/tinymce-d8d7d4ca47f6ef4ce19ed7d5ded0ca20723a967cc368279a3f6417682a422371.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":439629,"digest":"d8d7d4ca47f6ef4ce19ed7d5ded0ca20723a967cc368279a3f6417682a422371","integrity":"sha256-2NfUykf270zhntfV3tDKIHI6lnzDaCeaP2QXaCpCI3E="},"tinymce/skins/content/dark/content-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css":{"logical_path":"tinymce/skins/content/dark/content.css","mtime":"2020-04-05T17:14:06+02:00","size":832,"digest":"6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af","integrity":"sha256-bRDQxKY6sC+PtdNSaYMroeJtTnTkGdAfTGbFKC090a8="},"tinymce/skins/content/dark/content.min-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css":{"logical_path":"tinymce/skins/content/dark/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":832,"digest":"6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af","integrity":"sha256-bRDQxKY6sC+PtdNSaYMroeJtTnTkGdAfTGbFKC090a8="},"tinymce/skins/content/default/content-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css":{"logical_path":"tinymce/skins/content/default/content.css","mtime":"2020-04-05T17:14:06+02:00","size":707,"digest":"6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528","integrity":"sha256-bIdWuj4C+XRR1cVb6FU3w/x12m6e3qcSHIueZKqQNSg="},"tinymce/skins/content/default/content.min-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css":{"logical_path":"tinymce/skins/content/default/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":707,"digest":"6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528","integrity":"sha256-bIdWuj4C+XRR1cVb6FU3w/x12m6e3qcSHIueZKqQNSg="},"tinymce/skins/content/document/content-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css":{"logical_path":"tinymce/skins/content/document/content.css","mtime":"2020-04-05T17:14:06+02:00","size":791,"digest":"cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f","integrity":"sha256-zvJYC5g/1XB2jsk77TJUTP1POutcxx2piOWsqoA8J28="},"tinymce/skins/content/document/content.min-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css":{"logical_path":"tinymce/skins/content/document/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":791,"digest":"cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f","integrity":"sha256-zvJYC5g/1XB2jsk77TJUTP1POutcxx2piOWsqoA8J28="},"tinymce/skins/content/writer/content-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css":{"logical_path":"tinymce/skins/content/writer/content.css","mtime":"2020-04-05T17:14:06+02:00","size":728,"digest":"eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622","integrity":"sha256-645I0XXzfuOk3rT6+0zeX1eUILS6YsFOluban9k3tiI="},"tinymce/skins/content/writer/content.min-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css":{"logical_path":"tinymce/skins/content/writer/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":728,"digest":"eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622","integrity":"sha256-645I0XXzfuOk3rT6+0zeX1eUILS6YsFOluban9k3tiI="},"tinymce/skins/ui/oxide-dark/content-81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2020-02-08T21:52:35+01:00","size":17265,"digest":"81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef","integrity":"sha256-gcYI64qZEeo899YCbpcUAIPb1VlnBr4PYzAFxvgBde8="},"tinymce/skins/ui/oxide-dark/content.inline-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide-dark/content.inline.min-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide-dark/content.min-81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17265,"digest":"81c608eb8a9911ea3cf7d6026e97140083dbd5596706be0f633005c6f80175ef","integrity":"sha256-gcYI64qZEeo899YCbpcUAIPb1VlnBr4PYzAFxvgBde8="},"tinymce/skins/ui/oxide-dark/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.css","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide-dark/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.mobile.min.css","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide-dark/skin-8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2020-02-08T21:52:35+01:00","size":54738,"digest":"8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11","integrity":"sha256-j1YgUO3ElR0I3ExC2au9yYlEw6UUhHaGcSeJ6l+I3hE="},"tinymce/skins/ui/oxide-dark/skin.min-8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2020-02-08T21:52:35+01:00","size":54738,"digest":"8f562050edc4951d08dc4c42d9abbdc98944c3a514847686712789ea5f88de11","integrity":"sha256-j1YgUO3ElR0I3ExC2au9yYlEw6UUhHaGcSeJ6l+I3hE="},"tinymce/skins/ui/oxide-dark/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.css","mtime":"2020-04-05T17:14:06+02:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide-dark/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.mobile.min.css","mtime":"2020-04-05T17:14:06+02:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide/content-38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2020-02-08T21:52:35+01:00","size":17640,"digest":"38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd","integrity":"sha256-OLdd/kTKwKuhx4rOvEImHBMNdzbLTbiZ3jU1eTyKTr0="},"tinymce/skins/ui/oxide/content.inline-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide/content.inline.min-4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17581,"digest":"4099be85fea57dc1b5102faaff648a36e669935a269dd2cc33ae9670f003a092","integrity":"sha256-QJm+hf6lfcG1EC+q/2SKNuZpk1omndLMM66WcPADoJI="},"tinymce/skins/ui/oxide/content.min-38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2020-02-08T21:52:35+01:00","size":17640,"digest":"38b75dfe44cac0aba1c78acebc42261c130d7736cb4db899de3535793c8a4ebd","integrity":"sha256-OLdd/kTKwKuhx4rOvEImHBMNdzbLTbiZ3jU1eTyKTr0="},"tinymce/skins/ui/oxide/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.css","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css":{"logical_path":"tinymce/skins/ui/oxide/content.mobile.min.css","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064","integrity":"sha256-clFMbAK98C/nJ8v0qPyNBz3uj8+u376EdEmmIb/w8GQ="},"tinymce/skins/ui/oxide/skin-c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2020-02-08T21:52:35+01:00","size":54885,"digest":"c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc","integrity":"sha256-wwsVSO52UM+f12uRZQWTSoKhMw4OiLb7LsbAI2vorLw="},"tinymce/skins/ui/oxide/skin.min-c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2020-02-08T21:52:35+01:00","size":54885,"digest":"c30b1548ee7650cf9fd76b916505934a82a1330e0e88b6fb2ec6c0236be8acbc","integrity":"sha256-wwsVSO52UM+f12uRZQWTSoKhMw4OiLb7LsbAI2vorLw="},"tinymce/skins/ui/oxide/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.css","mtime":"2020-04-05T17:14:06+02:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.mobile.min.css","mtime":"2020-04-05T17:14:06+02:00","size":20783,"digest":"8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a","integrity":"sha256-im0d74Ken0Iv2S24iFdAWuUSioFtsMM8+OTv9RNzizo="},"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff":{"logical_path":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff","mtime":"2020-04-05T17:14:06+02:00","size":4624,"digest":"e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213","integrity":"sha256-5kvxVqQy1j9bNLRWe1E9wNNRtJFhx/YI+4JXS/3Z0hM="},"tinymce/skins/ui/oxide/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff":{"logical_path":"tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff","mtime":"2020-04-05T17:14:06+02:00","size":4624,"digest":"e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213","integrity":"sha256-5kvxVqQy1j9bNLRWe1E9wNNRtJFhx/YI+4JXS/3Z0hM="},"application-f67418bb3060e9d47b29b9cc3d2e69b47e1a280c8f63d50bd4db03d259588c89.js":{"logical_path":"application.js","mtime":"2020-01-16T20:20:11+01:00","size":2001327,"digest":"f67418bb3060e9d47b29b9cc3d2e69b47e1a280c8f63d50bd4db03d259588c89","integrity":"sha256-9nQYuzBg6dR7KbnMPS5ptH4aKAyPY9UL1NsD0llYjIk="},"maps-81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25.js":{"logical_path":"maps.js","mtime":"2020-04-05T17:14:06+02:00","size":3760,"digest":"81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25","integrity":"sha256-gc+ulY75JIyrL2ZsxTyKADzx4RvLC5ApfAHIf95VfiU="},"active_admin-ad543d02b7d2dce00391924ee525cf826fc94211134de030049066f7ed1a9c51.css":{"logical_path":"active_admin.css","mtime":"2020-01-17T20:47:28+01:00","size":107575,"digest":"ad543d02b7d2dce00391924ee525cf826fc94211134de030049066f7ed1a9c51","integrity":"sha256-rVQ9ArfS3OADkZJO5SXPgm/JQhETTeAwBJBm9+0anFE="},"active_admin-41eeb6d55edd4a2349b162361a1b7a1d1e4fdd88878771bdbcdba4c2367c5aec.js":{"logical_path":"active_admin.js","mtime":"2020-01-17T20:47:28+01:00","size":962936,"digest":"41eeb6d55edd4a2349b162361a1b7a1d1e4fdd88878771bdbcdba4c2367c5aec","integrity":"sha256-Qe621V7dSiNJsWI2Ght6HR5P3YiHh3G9vNukwjZ8Wuw="},"lef-6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee.png":{"logical_path":"lef.png","mtime":"2020-04-05T17:14:06+02:00","size":24674,"digest":"6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee","integrity":"sha256-ZQh5f1oCDYeqDbJ9zd2QS6PMnkOK2xyQ9RY6+Dd6yu4="},"application-df0ebef8401fd93b23d18e0ca1dde74c5dbb9dd9dcc10032920e657eabcd3f74.js":{"logical_path":"application.js","mtime":"2020-01-17T20:47:28+01:00","size":2001603,"digest":"df0ebef8401fd93b23d18e0ca1dde74c5dbb9dd9dcc10032920e657eabcd3f74","integrity":"sha256-3w6++EAf2Tsj0Y4Mod3nTF27ndncwQAykg5lfqvNP3Q="},"application-d166db475e5c4ea1dd596d7609be81f95c7dd54dfe51f8710ae8b48cf722f84e.css":{"logical_path":"application.css","mtime":"2020-01-17T20:47:28+01:00","size":232469,"digest":"d166db475e5c4ea1dd596d7609be81f95c7dd54dfe51f8710ae8b48cf722f84e","integrity":"sha256-0WbbR15cTqHdWW12Cb6B+Vx91U3+UfhxCui0jPci+E4="},"list-4ca74e54c3fadf9ea4be4c99d2fafc29dc946c3d9952cd88933dbded7f6f2b1b.js":{"logical_path":"list.js","mtime":"2020-01-17T20:47:28+01:00","size":1086,"digest":"4ca74e54c3fadf9ea4be4c99d2fafc29dc946c3d9952cd88933dbded7f6f2b1b","integrity":"sha256-TKdOVMP6356kvkyZ0vr8KdyUbD2ZUs2Ikz297X9vKxs="},"setup_tinymce-e6e39597a403d30aa4d04576d58207da97063c81a43750f3e41559f860a741a0.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-17T20:47:28+01:00","size":1033,"digest":"e6e39597a403d30aa4d04576d58207da97063c81a43750f3e41559f860a741a0","integrity":"sha256-5uOVl6QD0wqk0EV21YIH2pcGPIGkN1Dz5BVZ+GCnQaA="},"list-5585bb8537e7da38afae4b48b9d702ccb895df7552c14ce69277ec177ee2eca4.css":{"logical_path":"list.css","mtime":"2020-01-17T20:47:28+01:00","size":957,"digest":"5585bb8537e7da38afae4b48b9d702ccb895df7552c14ce69277ec177ee2eca4","integrity":"sha256-VYW7hTfn2jivrktIudcCzLiV33VSwUzmknfsF37i7KQ="},"active_admin-f6632bfe39653d00fd5f390bf251c9344960cc1bed7cea08b0b82fb8c6735b42.css":{"logical_path":"active_admin.css","mtime":"2020-02-04T21:23:23+01:00","size":107569,"digest":"f6632bfe39653d00fd5f390bf251c9344960cc1bed7cea08b0b82fb8c6735b42","integrity":"sha256-9mMr/jllPQD9XzkL8lHJNElgzBvtfOoIsLgvuMZzW0I="},"active_admin-49a68901507c104dca8f1ff5b8f896d66ff3f01c6548fa97b35458682cc87258.js":{"logical_path":"active_admin.js","mtime":"2020-02-04T18:01:42+01:00","size":962953,"digest":"49a68901507c104dca8f1ff5b8f896d66ff3f01c6548fa97b35458682cc87258","integrity":"sha256-SaaJAVB8EE3Kjx/1uPiW1m/z8BxlSPqXs1RYaCzIclg="},"application-e50171310a954b929b1a5b1ebb0e0ee81ba69b73ed1b78aa610199832fe3504b.js":{"logical_path":"application.js","mtime":"2020-01-17T21:34:48+01:00","size":2001620,"digest":"e50171310a954b929b1a5b1ebb0e0ee81ba69b73ed1b78aa610199832fe3504b","integrity":"sha256-5QFxMQqVS5KbGlseuw4O6Bumm3PtG3iqYQGZgy/jUEs="},"application-a4d60dccf0d297932b53e26946beba02cd345bb4e3a19f00389c6cc5bfc7d86f.css":{"logical_path":"application.css","mtime":"2020-01-17T21:34:48+01:00","size":232463,"digest":"a4d60dccf0d297932b53e26946beba02cd345bb4e3a19f00389c6cc5bfc7d86f","integrity":"sha256-pNYNzPDSl5MrU+JpRr66As00W7TjoZ8AOJxsxb/H2G8="},"list-36f999a19ad2efdd776921f8c8a1cbcc168ab9735fec39326a040907b72f6f2c.js":{"logical_path":"list.js","mtime":"2020-02-04T18:01:42+01:00","size":1103,"digest":"36f999a19ad2efdd776921f8c8a1cbcc168ab9735fec39326a040907b72f6f2c","integrity":"sha256-NvmZoZrS7913aSH4yKHLzBaKuXNf7DkyagQJB7cvbyw="},"setup_tinymce-4d67f72c3f9907bfab45a284c184ed519af90e54f68ffe472bfb30fbe125f1e6.js":{"logical_path":"setup_tinymce.js","mtime":"2020-01-17T21:34:48+01:00","size":1033,"digest":"4d67f72c3f9907bfab45a284c184ed519af90e54f68ffe472bfb30fbe125f1e6","integrity":"sha256-TWf3LD+ZB7+rRaKEwYTtUZr5DlT2j/5HK/sw++El8eY="},"list-23ebe2149035b2adc455ae97b811ad1b615cc5ab5b0b8046dcf590c120012281.css":{"logical_path":"list.css","mtime":"2020-02-04T21:23:23+01:00","size":951,"digest":"23ebe2149035b2adc455ae97b811ad1b615cc5ab5b0b8046dcf590c120012281","integrity":"sha256-I+viFJA1sq3EVa6XuBGtG2FcxatbC4BG3PWQwSABIoE="},"tinymce-2acc0b42a2fa6adca185d7fa2c60f52e1807a056332c43e85a8b3a7d94280297.js":{"logical_path":"tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":1071377,"digest":"2acc0b42a2fa6adca185d7fa2c60f52e1807a056332c43e85a8b3a7d94280297","integrity":"sha256-KswLQqL6atyhhdf6LGD1LhgHoFYzLEPoWos6fZQoApc="},"tinymce/plugins/advlist/plugin-d6326b5a6ac7f2a46c2e5bdbb562365272d4019a155e3a38bb41c3e92f4fbf25.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3995,"digest":"d6326b5a6ac7f2a46c2e5bdbb562365272d4019a155e3a38bb41c3e92f4fbf25","integrity":"sha256-1jJrWmrH8qRsLlvbtWI2UnLUAZoVXjo4u0HD6S9PvyU="},"tinymce/plugins/anchor/plugin-75573ca76ed15637213d63942f2d3596dce2bce9d336ea55af1ca799a82df3e7.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2120,"digest":"75573ca76ed15637213d63942f2d3596dce2bce9d336ea55af1ca799a82df3e7","integrity":"sha256-dVc8p27RVjchPWOULy01ltzivOnTNupVrxynmagt8+c="},"tinymce/plugins/autolink/plugin-1679e9f152b692f4c01f8ae9dc0b9e6e92872fce8828e3a406ee0cc3eddf5821.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2536,"digest":"1679e9f152b692f4c01f8ae9dc0b9e6e92872fce8828e3a406ee0cc3eddf5821","integrity":"sha256-Fnnp8VK2kvTAH4rp3AuebpKHL86IKOOkBu4Mw+3fWCE="},"tinymce/plugins/autoresize/plugin-145dd1caf9ddbee6399c7a3dfb1786794c78c25a79cbf57d8dcfd495a0406d44.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2452,"digest":"145dd1caf9ddbee6399c7a3dfb1786794c78c25a79cbf57d8dcfd495a0406d44","integrity":"sha256-FF3RyvndvuY5nHo9+xeGeUx4wlp5y/V9jc/UlaBAbUQ="},"tinymce/plugins/autosave/plugin-d4f61664f1fc9b86b4e7db8da355d7fc3fb4cde2339b3743a2cdd3f7db3b55cc.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3493,"digest":"d4f61664f1fc9b86b4e7db8da355d7fc3fb4cde2339b3743a2cdd3f7db3b55cc","integrity":"sha256-1PYWZPH8m4a059uNo1XX/D+0zeIzmzdDos3T99s7Vcw="},"tinymce/plugins/bbcode/plugin-650c26a9f904350c455713f9ac757327e86846910c6d206869266a090cb41dde.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3117,"digest":"650c26a9f904350c455713f9ac757327e86846910c6d206869266a090cb41dde","integrity":"sha256-ZQwmqfkENQxFVxP5rHVzJ+hoRpEMbSBoaSZqCQy0Hd4="},"tinymce/plugins/charmap/plugin-27ed885db21b2f6e4d347cc1056794aae453b87fcc7698a7bfa3d8ab00a6661d.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":11957,"digest":"27ed885db21b2f6e4d347cc1056794aae453b87fcc7698a7bfa3d8ab00a6661d","integrity":"sha256-J+2IXbIbL25NNHzBBWeUquRTuH/Mdpinv6PYqwCmZh0="},"tinymce/plugins/code/plugin-c0a064f3c64274ab8d015de5de4fbea1e83ec57b4bebfe07e5248f8c6963f29a.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1226,"digest":"c0a064f3c64274ab8d015de5de4fbea1e83ec57b4bebfe07e5248f8c6963f29a","integrity":"sha256-wKBk88ZCdKuNAV3l3k++oeg+xXtL6/4H5SSPjGlj8po="},"tinymce/plugins/codesample/plugin-fb585bbec3ade4255e128ad2447197bc4dcd705966554ccbaa762dfb9dad1f35.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":21028,"digest":"fb585bbec3ade4255e128ad2447197bc4dcd705966554ccbaa762dfb9dad1f35","integrity":"sha256-+1hbvsOt5CVeEorSRHGXvE3NcFlmVUzLqnYt+52tHzU="},"tinymce/plugins/colorpicker/plugin-d61a32ee5d23044ec61b956663152dd86bdb7c1105b519e26cb6ee56d5b3f6d3.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":550,"digest":"d61a32ee5d23044ec61b956663152dd86bdb7c1105b519e26cb6ee56d5b3f6d3","integrity":"sha256-1hoy7l0jBE7GG5VmYxUt2GvbfBEFtRnibLbuVtWz9tM="},"tinymce/plugins/contextmenu/plugin-cd3e3d3e0759f17cd7463f0f69a3aa81957340f1a165f865b6ecd8187621e4fd.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":550,"digest":"cd3e3d3e0759f17cd7463f0f69a3aa81957340f1a165f865b6ecd8187621e4fd","integrity":"sha256-zT49PgdZ8XzXRj8PaaOqgZVzQPGhZfhltuzYGHYh5P0="},"tinymce/plugins/directionality/plugin-68ad6f45909af3673014c9ed27082470509c0c93592d8c10a0a72ac415865ffb.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":4315,"digest":"68ad6f45909af3673014c9ed27082470509c0c93592d8c10a0a72ac415865ffb","integrity":"sha256-aK1vRZCa82cwFMntJwgkcFCcDJNZLYwQoKcqxBWGX/s="},"tinymce/plugins/emoticons/plugin-98638daa91f33e79cba541a0c1d30e8987a83261751300e0accc7fac8b6be4d4.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":6921,"digest":"98638daa91f33e79cba541a0c1d30e8987a83261751300e0accc7fac8b6be4d4","integrity":"sha256-mGONqpHzPnnLpUGgwdMOiYeoMmF1EwDgrMx/rItr5NQ="},"tinymce/plugins/fullpage/plugin-e487975e8508e35ee8975e76c64b63e9649ced4829f4d3fe41a7d999318f21fa.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":8196,"digest":"e487975e8508e35ee8975e76c64b63e9649ced4829f4d3fe41a7d999318f21fa","integrity":"sha256-5IeXXoUI417ol152xktj6WSc7Ugp9NP+QafZmTGPIfo="},"tinymce/plugins/fullscreen/plugin-c3c99155b1402777ff3b63923fc4d4068b503af20ca10c07c2511020cfe2486a.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":14306,"digest":"c3c99155b1402777ff3b63923fc4d4068b503af20ca10c07c2511020cfe2486a","integrity":"sha256-w8mRVbFAJ3f/O2OSP8TUBotQOvIMoQwHwlEQIM/iSGo="},"tinymce/plugins/help/plugin-09696ee0948772aa4ebb18bb7ce27c5fd86ea74894561dbdae5494b8fb64d418.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":14520,"digest":"09696ee0948772aa4ebb18bb7ce27c5fd86ea74894561dbdae5494b8fb64d418","integrity":"sha256-CWlu4JSHcqpOuxi7fOJ8X9hup0iUVh29rlSUuPtk1Bg="},"tinymce/plugins/hr/plugin-4c9d1bc137d91a428c118be5cba74fcafecb3cb1ea2deb5c88837628266b7feb.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":841,"digest":"4c9d1bc137d91a428c118be5cba74fcafecb3cb1ea2deb5c88837628266b7feb","integrity":"sha256-TJ0bwTfZGkKMEYvly6dPyv7LPLHqLetciIN2KCZrf+s="},"tinymce/plugins/image/plugin-ba1e56168fd5f23b968e5b60cea2486409d3084762237dc773098caec7f1b9ac.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":29771,"digest":"ba1e56168fd5f23b968e5b60cea2486409d3084762237dc773098caec7f1b9ac","integrity":"sha256-uh5WFo/V8juWjltgzqJIZAnTCEdiI33HcwmMrsfxuaw="},"tinymce/plugins/imagetools/plugin-21a09b0c29659b4fb6dfefa981159c67eeec2001154003796743b2d38cd2a2f6.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":22211,"digest":"21a09b0c29659b4fb6dfefa981159c67eeec2001154003796743b2d38cd2a2f6","integrity":"sha256-IaCbDCllm0+23++pgRWcZ+7sIAEVQAN5Z0Oy04zSovY="},"tinymce/plugins/importcss/plugin-b61a592eee6358d5ec18bd2d746c42a0504f65f3ed396d2b9098621a3270e933.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":5008,"digest":"b61a592eee6358d5ec18bd2d746c42a0504f65f3ed396d2b9098621a3270e933","integrity":"sha256-thpZLu5jWNXsGL0tdGxCoFBPZfPtOW0rkJhiGjJw6TM="},"tinymce/plugins/insertdatetime/plugin-280fc64cacabd96a94de55cfa02331bb3478816565084e24e5b939c6e5347752.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3212,"digest":"280fc64cacabd96a94de55cfa02331bb3478816565084e24e5b939c6e5347752","integrity":"sha256-KA/GTKyr2WqU3lXPoCMxuzR4gWVlCE4k5bk5xuU0d1I="},"tinymce/plugins/legacyoutput/plugin-3f55878a8789aa11422faa07310a0512fa14a4dc3474fcba72276541d6cd07ed.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2976,"digest":"3f55878a8789aa11422faa07310a0512fa14a4dc3474fcba72276541d6cd07ed","integrity":"sha256-P1WHioeJqhFCL6oHMQoFEvoUpNw0dPy6cidlQdbNB+0="},"tinymce/plugins/link/plugin-4a85fd6258c1ed37f0929e6a081330e98b897848983d5916ef1273b504acb2fa.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":22690,"digest":"4a85fd6258c1ed37f0929e6a081330e98b897848983d5916ef1273b504acb2fa","integrity":"sha256-SoX9YljB7Tfwkp5qCBMw6YuJeEiYPVkW7xJztQSssvo="},"tinymce/plugins/lists/plugin-b4812a8ec6081341f5f939773037d3ace7754cceb253fe4acc3551a60a7d9872.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":28087,"digest":"b4812a8ec6081341f5f939773037d3ace7754cceb253fe4acc3551a60a7d9872","integrity":"sha256-tIEqjsYIE0H1+Tl3MDfTrOd1TM6yU/5KzDVRpgp9mHI="},"tinymce/plugins/media/plugin-96fdddb1954dadf1c18a286fea194fc0d7362043020d2fc97d8d39e2b7c5b2dc.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":18042,"digest":"96fdddb1954dadf1c18a286fea194fc0d7362043020d2fc97d8d39e2b7c5b2dc","integrity":"sha256-lv3dsZVNrfHBiihv6hlPwNc2IEMCDS/JfY054rfFstw="},"tinymce/plugins/nonbreaking/plugin-035673784f377448c4c1549936a87924dc1ce27ac45b2c89d99109083791e03b.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1585,"digest":"035673784f377448c4c1549936a87924dc1ce27ac45b2c89d99109083791e03b","integrity":"sha256-A1ZzeE83dEjEwVSZNqh5JNwc4nrEWyyJ2ZEJCDeR4Ds="},"tinymce/plugins/noneditable/plugin-6997001f1fbe4ff0cbe75e97a42388573efe5e7e7792e7bdb409893481b71209.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1842,"digest":"6997001f1fbe4ff0cbe75e97a42388573efe5e7e7792e7bdb409893481b71209","integrity":"sha256-aZcAHx++T/DL516XpCOIVz7+Xn53kue9tAmJNIG3Egk="},"tinymce/plugins/pagebreak/plugin-0733f1086cddcdb89ad607732ad51696799405ced8b5787e5258a593c5f0b8eb.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1842,"digest":"0733f1086cddcdb89ad607732ad51696799405ced8b5787e5258a593c5f0b8eb","integrity":"sha256-BzPxCGzdzbia1gdzKtUWlnmUBc7YtXh+Ulilk8XwuOs="},"tinymce/plugins/paste/plugin-0237928e3ace67e06790d5fdbf396c5e154a0ce6d373719a6790e0025c052baa.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":31726,"digest":"0237928e3ace67e06790d5fdbf396c5e154a0ce6d373719a6790e0025c052baa","integrity":"sha256-AjeSjjrOZ+BnkNX9vzlsXhVKDObTc3GaZ5DgAlwFK6o="},"tinymce/plugins/preview/plugin-4b4b984f290af4550ad46778f58a62dc118b63294928e607f9a0e47a008ab2ae.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":2201,"digest":"4b4b984f290af4550ad46778f58a62dc118b63294928e607f9a0e47a008ab2ae","integrity":"sha256-S0uYTykK9FUK1Gd49Ypi3BGLYylJKOYH+aDkegCKsq4="},"tinymce/plugins/print/plugin-6e57b5e1048b632b3171af5f287e1a97b60ecf5d580370e58d7bb29b08900dad.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":889,"digest":"6e57b5e1048b632b3171af5f287e1a97b60ecf5d580370e58d7bb29b08900dad","integrity":"sha256-ble14QSLYysxca9fKH4al7YOz11YA3DljXuymwiQDa0="},"tinymce/plugins/quickbars/plugin-8fbb0f2cd4ec62f2d3012effdf6f83d358d57382c17af9089799f1c35fc603f5.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":11083,"digest":"8fbb0f2cd4ec62f2d3012effdf6f83d358d57382c17af9089799f1c35fc603f5","integrity":"sha256-j7sPLNTsYvLTAS7/32+D01jVc4LBevkIl5nxw1/GA/U="},"tinymce/plugins/save/plugin-3877efedfc410f70e0f25992f73bad631d7ad45d70507d77a1310688b6f619c9.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1823,"digest":"3877efedfc410f70e0f25992f73bad631d7ad45d70507d77a1310688b6f619c9","integrity":"sha256-OHfv7fxBD3Dg8lmS9zutYx161F1wUH13oTEGiLb2Gck="},"tinymce/plugins/searchreplace/plugin-67c250c32ca2b71a0ac58be21182d4e9c8559e9847476c7c258b8a9b41b0b327.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":10441,"digest":"67c250c32ca2b71a0ac58be21182d4e9c8559e9847476c7c258b8a9b41b0b327","integrity":"sha256-Z8JQwyyitxoKxYviEYLU6chVnphHR2x8JYuKm0Gwsyc="},"tinymce/plugins/spellchecker/plugin-70ba21f3d6dcc385b246893b9ffc3d9c40ddf242c57976835a4bcfcd8cfaebf8.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":10404,"digest":"70ba21f3d6dcc385b246893b9ffc3d9c40ddf242c57976835a4bcfcd8cfaebf8","integrity":"sha256-cLoh89bcw4WyRok7n/w9nEDd8kLFeXaDWkvPzYz66/g="},"tinymce/plugins/tabfocus/plugin-00211ebb30fb18bb1a0035722ed04178d29721a8de2a4ec455392721a9cc332c.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1938,"digest":"00211ebb30fb18bb1a0035722ed04178d29721a8de2a4ec455392721a9cc332c","integrity":"sha256-ACEeuzD7GLsaADVyLtBBeNKXIajeKk7EVTknIanMMyw="},"tinymce/plugins/table/plugin-b6c7a5055d4d10bc6423164ef7c94d583420aa6522add0266576f3d55f4fc266.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":124408,"digest":"b6c7a5055d4d10bc6423164ef7c94d583420aa6522add0266576f3d55f4fc266","integrity":"sha256-tselBV1NELxkIxZO98lNWDQgqmUirdAmZXbz1V9PwmY="},"tinymce/plugins/template/plugin-3fc09028fa2506ecff38bb686231a59674c603adefcb836ea87800972d058d07.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":8077,"digest":"3fc09028fa2506ecff38bb686231a59674c603adefcb836ea87800972d058d07","integrity":"sha256-P8CQKPolBuz/OLtoYjGllnTGA63vy4NuqHgAly0FjQc="},"tinymce/plugins/textcolor/plugin-603e3dc13cda914a9121e122685c526d1ec9b3693f73194336fcfe3635ab0f72.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":546,"digest":"603e3dc13cda914a9121e122685c526d1ec9b3693f73194336fcfe3635ab0f72","integrity":"sha256-YD49wTzakUqRIeEiaFxSbR7Js2k/cxlDNvz+NjWrD3I="},"tinymce/plugins/textpattern/plugin-e62bfb24b7253f67f488ebfde37f434a5db739851b476fe8be120c4b5cef4690.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":18706,"digest":"e62bfb24b7253f67f488ebfde37f434a5db739851b476fe8be120c4b5cef4690","integrity":"sha256-5iv7JLclP2f0iOv9439DSl23OYUbR2/ovhIMS1zvRpA="},"tinymce/plugins/toc/plugin-3c9a2894e64afd60435f643cbdea6f386bb768953f1e5d2277617ec2af2181e6.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":3592,"digest":"3c9a2894e64afd60435f643cbdea6f386bb768953f1e5d2277617ec2af2181e6","integrity":"sha256-PJoolOZK/WBDX2Q8vepvOGu3aJU/Hl0id2F+wq8hgeY="},"tinymce/plugins/visualblocks/plugin-ff51aade18b498b7fb005531cf3f6f4e2f1bd1625848866f22bd8f1f4fc33f52.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":1652,"digest":"ff51aade18b498b7fb005531cf3f6f4e2f1bd1625848866f22bd8f1f4fc33f52","integrity":"sha256-/1Gq3hi0mLf7AFUxzz9vTi8b0WJYSIZvIr2PH0/DP1I="},"tinymce/plugins/visualchars/plugin-bf2df47d3130e13ebd66dca0cec5c74e6234aa05391246e1426327760c726a70.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":7081,"digest":"bf2df47d3130e13ebd66dca0cec5c74e6234aa05391246e1426327760c726a70","integrity":"sha256-vy30fTEw4T69ZtygzsXHTmI0qgU5EkbhQmMndgxyanA="},"tinymce/plugins/wordcount/plugin-8cca2fd66f0c5e4f1a7c6edece9a7b745c864c77d782d18905732aa5d9821f9a.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-02-08T21:52:35+01:00","size":13186,"digest":"8cca2fd66f0c5e4f1a7c6edece9a7b745c864c77d782d18905732aa5d9821f9a","integrity":"sha256-jMov1m8MXk8afG7ezpp7dFyGTHfXgtGJBXMqpdmCH5o="},"tinymce/themes/mobile/theme-1fd827799842591565cdb4f23c31c50d49622005820df47ea7e8763f186b2fbe.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-02-08T21:52:35+01:00","size":181443,"digest":"1fd827799842591565cdb4f23c31c50d49622005820df47ea7e8763f186b2fbe","integrity":"sha256-H9gneZhCWRVlzbTyPDHFDUliIAWCDfR+p+h2PxhrL74="},"tinymce/themes/silver/theme-0d591b15f2acdb3f20d4e4591282186867c34d195e9eb7afb1e9eda7a9dcadc7.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-02-08T21:52:35+01:00","size":405619,"digest":"0d591b15f2acdb3f20d4e4591282186867c34d195e9eb7afb1e9eda7a9dcadc7","integrity":"sha256-DVkbFfKs2z8g1ORZEoIYaGfDTRlenrevsentp6ncrcc="},"tinymce/tinymce-349eba3f09fc3d85b97150b778731081561d768a31b5dd21179c1fa406cf894d.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":439626,"digest":"349eba3f09fc3d85b97150b778731081561d768a31b5dd21179c1fa406cf894d","integrity":"sha256-NJ66Pwn8PYW5cVC3eHMQgVYddooxtd0hF5wfpAbPiU0="},"application-67028a91c853f53f10798304baa59e456665fb430cd62a8ec9574e798c022828.js":{"logical_path":"application.js","mtime":"2020-02-04T18:01:42+01:00","size":2001617,"digest":"67028a91c853f53f10798304baa59e456665fb430cd62a8ec9574e798c022828","integrity":"sha256-ZwKKkchT9T8QeYMEuqWeRWZl+0MM1iqOyVdOeYwCKCg="},"application-9208c94b0440026e95b0226ee1d6b98cca5c07fc8fec6370ec6682a7829f1f54.css":{"logical_path":"application.css","mtime":"2020-02-04T21:23:23+01:00","size":232451,"digest":"9208c94b0440026e95b0226ee1d6b98cca5c07fc8fec6370ec6682a7829f1f54","integrity":"sha256-kgjJSwRAAm6VsCJu4da5jMpcB/yP7GNw7GaCp4KfH1Q="},"setup_tinymce-624899c2b70fae7d7551be90c104cde8224f9605d74eb1dc49a172f5667cce08.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-04T21:23:23+01:00","size":1033,"digest":"624899c2b70fae7d7551be90c104cde8224f9605d74eb1dc49a172f5667cce08","integrity":"sha256-YkiZwrcPrn11Ub6QwQTN6CJPlgXXTrHcSaFy9WZ8zgg="},"maps-2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba.css":{"logical_path":"maps.css","mtime":"2020-04-05T17:14:06+02:00","size":524,"digest":"2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba","integrity":"sha256-LL6Sa7+63EjQjuYaf61d/Z1WVz/wcNlMQEXPedqpGbo="},"active_admin-2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342.js":{"logical_path":"active_admin.js","mtime":"2020-04-05T17:14:06+02:00","size":963122,"digest":"2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342","integrity":"sha256-LjoEAxV6jtaBQc2CkNO8y8pa99muDSUM7rP46nbd40I="},"application-57a330c5f72fa5562b83ffbdd4a93d88a7cb9063c65ae842a6602939d6b44224.js":{"logical_path":"application.js","mtime":"2020-02-04T21:23:23+01:00","size":2001786,"digest":"57a330c5f72fa5562b83ffbdd4a93d88a7cb9063c65ae842a6602939d6b44224","integrity":"sha256-V6MwxfcvpVYrg/+91Kk9iKfLkGPGWuhCpmApOda0QiQ="},"list-e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd.js":{"logical_path":"list.js","mtime":"2020-04-05T17:14:06+02:00","size":1272,"digest":"e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd","integrity":"sha256-4x9nRHb098W0ZLHuPGgy9Nx9BYhZejg6b7NyEnsrJ70="},"active_admin-955847d711d68a8234b0311555aaabe8ce79d0b0138207a10eb43b8715bfbc6f.css":{"logical_path":"active_admin.css","mtime":"2020-02-25T22:08:25+01:00","size":107558,"digest":"955847d711d68a8234b0311555aaabe8ce79d0b0138207a10eb43b8715bfbc6f","integrity":"sha256-lVhH1xHWioI0sDEVVaqr6M550LATggehDrQ7hxW/vG8="},"application-9779c21d0fae3f6f9cfe4f4f15227545423187e274d4a95009bdab5dd75c9706.js":{"logical_path":"application.js","mtime":"2020-02-08T21:52:35+01:00","size":2001786,"digest":"9779c21d0fae3f6f9cfe4f4f15227545423187e274d4a95009bdab5dd75c9706","integrity":"sha256-l3nCHQ+uP2+c/k9PFSJ1RUIxh+J01KlQCb2rXddclwY="},"application-fffac4f8dc2466271b1e210e8c876b665a819c7d6b3b3ef39f9efd570298dc2e.css":{"logical_path":"application.css","mtime":"2020-02-08T21:52:35+01:00","size":232440,"digest":"fffac4f8dc2466271b1e210e8c876b665a819c7d6b3b3ef39f9efd570298dc2e","integrity":"sha256-//rE+NwkZicbHiEOjIdrZlqBnH1rOz7zn579VwKY3C4="},"setup_tinymce-2ee45c3c0978fadc1ccd3c7f2cc8265cb5390086545987a36dab7a924281c153.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-08T21:52:35+01:00","size":1033,"digest":"2ee45c3c0978fadc1ccd3c7f2cc8265cb5390086545987a36dab7a924281c153","integrity":"sha256-LuRcPAl4+twczTx/LMgmXLU5AIZUWYejbat6kkKBwVM="},"list-efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7.css":{"logical_path":"list.css","mtime":"2020-04-05T17:14:06+02:00","size":940,"digest":"efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7","integrity":"sha256-7/8lFT4PlPKvNTsC4jnFHaZeOhJQNpqZYMo1ZIkl2fc="},"tinymce-ece97ae71addfb3837df22d939917cc34192192b302409235bedb2f17162d83d.js":{"logical_path":"tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":1085705,"digest":"ece97ae71addfb3837df22d939917cc34192192b302409235bedb2f17162d83d","integrity":"sha256-7Ol65xrd+zg33yLZOZF8w0GSGSswJAkjW+2y8XFi2D0="},"tinymce/plugins/advlist/plugin-ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3995,"digest":"ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa","integrity":"sha256-7zl3EmCZFq3nhPj8PCigepyvw7V+yswUERNpX2Cp3/o="},"tinymce/plugins/anchor/plugin-e1a281e6b5110e207af9dbaaf52083080a6d590aee286fc8b1eac466d5db25f2.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2120,"digest":"e1a281e6b5110e207af9dbaaf52083080a6d590aee286fc8b1eac466d5db25f2","integrity":"sha256-4aKB5rURDiB6+duq9SCDCAptWQruKG/IserEZtXbJfI="},"tinymce/plugins/autolink/plugin-fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2619,"digest":"fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef","integrity":"sha256-/etapPoMQ4aBkDSITZzZqzGcNZshIaWrNUH8PyXRXu8="},"tinymce/plugins/autoresize/plugin-c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2452,"digest":"c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626","integrity":"sha256-wfB3PifW6gvklL30jCytQU9yNKGefpOCfmUmRe8utiY="},"tinymce/plugins/autosave/plugin-3caa7909c1d9d22a1494afe442155a915098ac763c628898a83ff351b8a99bb6.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3493,"digest":"3caa7909c1d9d22a1494afe442155a915098ac763c628898a83ff351b8a99bb6","integrity":"sha256-PKp5CcHZ0ioUlK/kQhVakVCYrHY8YoiYqD/zUbipm7Y="},"tinymce/plugins/bbcode/plugin-0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3117,"digest":"0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3","integrity":"sha256-BUTdfIZk3YVvdxckoYFsQmsr9MzQEPfw9dpwcJRnc/M="},"tinymce/plugins/charmap/plugin-ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11957,"digest":"ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed","integrity":"sha256-7iby1/9yodKWfZ5XaScosfMbbIgv3ZJF5iiO3pereu0="},"tinymce/plugins/code/plugin-9ec6e1d7abda5f2576da4c5ad6c97318589daf0c8ecf38a54cc2982465991d15.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1226,"digest":"9ec6e1d7abda5f2576da4c5ad6c97318589daf0c8ecf38a54cc2982465991d15","integrity":"sha256-nsbh16vaXyV22kxa1slzGFidrwyOzzilTMKYJGWZHRU="},"tinymce/plugins/codesample/plugin-51877540fd6cc721e3385e0a7e283c238182b8d9d38e21dee1be85bf8cd5cd18.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":34548,"digest":"51877540fd6cc721e3385e0a7e283c238182b8d9d38e21dee1be85bf8cd5cd18","integrity":"sha256-UYd1QP1sxyHjOF4Kfig8I4GCuNnTjiHe4b6Fv4zVzRg="},"tinymce/plugins/colorpicker/plugin-c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":550,"digest":"c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852","integrity":"sha256-wJPvxNlJQ0AyPpGubrGkcd8fRHzkXrSn2X9crYkJyFI="},"tinymce/plugins/contextmenu/plugin-d29ea7477a0ea4ed816f8056d5faf9563c0682372d5305d0ad5895db39296e3d.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":550,"digest":"d29ea7477a0ea4ed816f8056d5faf9563c0682372d5305d0ad5895db39296e3d","integrity":"sha256-0p6nR3oOpO2Bb4BW1fr5VjwGgjctUwXQrViV2zkpbj0="},"tinymce/plugins/directionality/plugin-791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":4315,"digest":"791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171","integrity":"sha256-eRvgBKrldEsd7jHn1uhdEmeZG89GkegZEfiKjjQFoXE="},"tinymce/plugins/emoticons/plugin-3443af28675ef4abc8b57aba397c62cc9bf469ec8c4c56a8622fa8ab1c7f2ee3.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":7128,"digest":"3443af28675ef4abc8b57aba397c62cc9bf469ec8c4c56a8622fa8ab1c7f2ee3","integrity":"sha256-NEOvKGde9KvItXq6OXxizJv0aeyMTFaoYi+oqxx/LuM="},"tinymce/plugins/fullpage/plugin-c21647cef8ecc48cfb1fbe68d31d704aaa55c22f83ffd157619e693fef0a63ea.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":8112,"digest":"c21647cef8ecc48cfb1fbe68d31d704aaa55c22f83ffd157619e693fef0a63ea","integrity":"sha256-whZHzvjsxIz7H75o0x1wSqpVwi+D/9FXYZ5pP+8KY+o="},"tinymce/plugins/fullscreen/plugin-880660f477d1447103b4a00768c5279aee8c002c520d9a3684814eaf89f91ca2.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":15300,"digest":"880660f477d1447103b4a00768c5279aee8c002c520d9a3684814eaf89f91ca2","integrity":"sha256-iAZg9HfRRHEDtKAHaMUnmu6MACxSDZo2hIFOr4n5HKI="},"tinymce/plugins/help/plugin-86a13d52eccdd14ca7b75357e1da835637f9edbafdecc227292260a313c5fc9c.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":14507,"digest":"86a13d52eccdd14ca7b75357e1da835637f9edbafdecc227292260a313c5fc9c","integrity":"sha256-hqE9UuzN0Uynt1NX4dqDVjf57br97MInKSJgoxPF/Jw="},"tinymce/plugins/hr/plugin-21fd32a758ffbcb33bbba889889a1343b4d9d0ed4798760090575db4afa7d3f2.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":841,"digest":"21fd32a758ffbcb33bbba889889a1343b4d9d0ed4798760090575db4afa7d3f2","integrity":"sha256-If0yp1j/vLM7u6iJiJoTQ7TZ0O1HmHYAkFddtK+n0/I="},"tinymce/plugins/image/plugin-23e1db85c5ae7840030aa4d47c842b33d9638b154c5962492dca83625b0fb498.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":32433,"digest":"23e1db85c5ae7840030aa4d47c842b33d9638b154c5962492dca83625b0fb498","integrity":"sha256-I+HbhcWueEADCqTUfIQrM9ljixVMWWJJLcqDYlsPtJg="},"tinymce/plugins/imagetools/plugin-2cbf06b6ff65bf39fb84b7352bececcbe7542cfb1b129b71b8cbba39e8f2a02e.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":22356,"digest":"2cbf06b6ff65bf39fb84b7352bececcbe7542cfb1b129b71b8cbba39e8f2a02e","integrity":"sha256-LL8Gtv9lvzn7hLc1K+zsy+dULPsbEptxuMu6OejyoC4="},"tinymce/plugins/importcss/plugin-a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":5008,"digest":"a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5","integrity":"sha256-o430iSOBGfh8h58OG91mvQG5N+IWzG2J0dODhV62w+U="},"tinymce/plugins/insertdatetime/plugin-d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3212,"digest":"d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6","integrity":"sha256-1e4rNkdlvrYWgd48spKPWrLmG8BNx6eVX1MxQA9A/vY="},"tinymce/plugins/legacyoutput/plugin-0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2984,"digest":"0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f","integrity":"sha256-DU+7U4OJGQ4ibNmhXx7BBSMdcCFSJc1BjzimAbCwgj8="},"tinymce/plugins/link/plugin-07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":22818,"digest":"07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1","integrity":"sha256-B90vBY6WKNYgOz1y4GSQiTSzot4MwLaBz1puNWVl57E="},"tinymce/plugins/lists/plugin-1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":28144,"digest":"1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d","integrity":"sha256-HinCKHqYzSr/oGRF5X2qo1uyeE/3qgxTYehrmnmlpT0="},"tinymce/plugins/media/plugin-503d4a44c549474fc28490f1b74202fb564cc60118ab661928ad85a1a5c05eec.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":18373,"digest":"503d4a44c549474fc28490f1b74202fb564cc60118ab661928ad85a1a5c05eec","integrity":"sha256-UD1KRMVJR0/ChJDxt0IC+1ZMxgEYq2YZKK2FoaXAXuw="},"tinymce/plugins/nonbreaking/plugin-4f6785c9462fa2f91c09f28af66a132a05e80883d6ed18972e2afdeb5f05310a.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1585,"digest":"4f6785c9462fa2f91c09f28af66a132a05e80883d6ed18972e2afdeb5f05310a","integrity":"sha256-T2eFyUYvovkcCfKK9moTKgXoCIPW7RiXLir9618FMQo="},"tinymce/plugins/noneditable/plugin-5eadae63f3180758ee175a8f7210456f18c06a8c584d6f494f327015c9cb2f6f.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1842,"digest":"5eadae63f3180758ee175a8f7210456f18c06a8c584d6f494f327015c9cb2f6f","integrity":"sha256-Xq2uY/MYB1juF1qPchBFbxjAaoxYTW9JTzJwFcnLL28="},"tinymce/plugins/pagebreak/plugin-2d87f90ecdc9061deb429b906d4f56f50534310700f06f04021e3b7ca86a5ab6.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1842,"digest":"2d87f90ecdc9061deb429b906d4f56f50534310700f06f04021e3b7ca86a5ab6","integrity":"sha256-LYf5Ds3JBh3rQpuQbU9W9QU0MQcA8G8EAh47fKhqWrY="},"tinymce/plugins/paste/plugin-bb72ecd04e765f7420b9d8b1f3ce4c08b0a1a706d981f6790a0e3f6b921aee48.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":31726,"digest":"bb72ecd04e765f7420b9d8b1f3ce4c08b0a1a706d981f6790a0e3f6b921aee48","integrity":"sha256-u3Ls0E52X3Qgudix885MCLChpwbZgfZ5Cg4/a5Ia7kg="},"tinymce/plugins/preview/plugin-ba4156a0908b3dcea426fac6e92b77e318f06347e435e8067807fb94ba4bf8e1.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":2201,"digest":"ba4156a0908b3dcea426fac6e92b77e318f06347e435e8067807fb94ba4bf8e1","integrity":"sha256-ukFWoJCLPc6kJvrG6St34xjwY0fkNegGeAf7lLpL+OE="},"tinymce/plugins/print/plugin-a5f32f46b8f4d88f004fb2794760c28ad820785da94878458b9579fcbede28d4.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":889,"digest":"a5f32f46b8f4d88f004fb2794760c28ad820785da94878458b9579fcbede28d4","integrity":"sha256-pfMvRrj02I8AT7J5R2DCitggeF2pSHhFi5V5/L7eKNQ="},"tinymce/plugins/quickbars/plugin-4b1679721b31f39711fb9a9ced7eafa4835d480f09c306941cc6b496a7a29ded.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11424,"digest":"4b1679721b31f39711fb9a9ced7eafa4835d480f09c306941cc6b496a7a29ded","integrity":"sha256-SxZ5chsx85cR+5qc7X6vpINdSA8JwwaUHMa0lqeine0="},"tinymce/plugins/save/plugin-2d89fe696a668dbf704512f34efb5d1b52043ecd0caf9f2cc45201e0119d4717.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1823,"digest":"2d89fe696a668dbf704512f34efb5d1b52043ecd0caf9f2cc45201e0119d4717","integrity":"sha256-LYn+aWpmjb9wRRLzTvtdG1IEPs0Mr58sxFIB4BGdRxc="},"tinymce/plugins/searchreplace/plugin-0e483238f599a65128f08a8b604770b3ce90c497336a0f903f20f72e930bf4b0.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":10441,"digest":"0e483238f599a65128f08a8b604770b3ce90c497336a0f903f20f72e930bf4b0","integrity":"sha256-DkgyOPWZplEo8IqLYEdws86QxJczag+QPyD3LpML9LA="},"tinymce/plugins/spellchecker/plugin-d3c9ea5666447a3c6a69aed0962193b93ef78e96d0d1804441fa4d8a9fb50139.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":11033,"digest":"d3c9ea5666447a3c6a69aed0962193b93ef78e96d0d1804441fa4d8a9fb50139","integrity":"sha256-08nqVmZEejxqaa7QliGTuT73jpbQ0YBEQfpNip+1ATk="},"tinymce/plugins/tabfocus/plugin-bd4a092faf82ce40e57f38518c52af362d20ad972f3a38d4b1ee16e11dd44c9a.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1938,"digest":"bd4a092faf82ce40e57f38518c52af362d20ad972f3a38d4b1ee16e11dd44c9a","integrity":"sha256-vUoJL6+CzkDlfzhRjFKvNi0grZcvOjjUse4W4R3UTJo="},"tinymce/plugins/table/plugin-2ea548314081a1cb752795c39348a5ba0591174474895bebafd7c23e11b514b3.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":124408,"digest":"2ea548314081a1cb752795c39348a5ba0591174474895bebafd7c23e11b514b3","integrity":"sha256-LqVIMUCBoct1J5XDk0ilugWRF0R0iVvrr9fCPhG1FLM="},"tinymce/plugins/template/plugin-6766aba21cbf0e5af59b41b572a97b26538f362f5b6dcdc1fc06be3a573ee0cc.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":8340,"digest":"6766aba21cbf0e5af59b41b572a97b26538f362f5b6dcdc1fc06be3a573ee0cc","integrity":"sha256-Z2arohy/Dlr1m0G1cql7JlOPNi9bbc3B/Aa+Olc+4Mw="},"tinymce/plugins/textcolor/plugin-3ddf1445eb3e7b65fe3814d0ed94ee42b790a1442f39214bfedc39fb9cd71fa3.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":546,"digest":"3ddf1445eb3e7b65fe3814d0ed94ee42b790a1442f39214bfedc39fb9cd71fa3","integrity":"sha256-Pd8URes+e2X+OBTQ7ZTuQreQoUQvOSFL/tw5+5zXH6M="},"tinymce/plugins/textpattern/plugin-b7467b960b1dd5d13cd65c8ac9d149ff945a7ae589a9ced046d680b5d0c30755.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":18625,"digest":"b7467b960b1dd5d13cd65c8ac9d149ff945a7ae589a9ced046d680b5d0c30755","integrity":"sha256-t0Z7lgsd1dE81lyKydFJ/5RaeuWJqc7QRtaAtdDDB1U="},"tinymce/plugins/toc/plugin-b0f62b316120140d532b4176a2fcb4ecc1ee539ee575dfdf3ec4d52654feecbb.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":3592,"digest":"b0f62b316120140d532b4176a2fcb4ecc1ee539ee575dfdf3ec4d52654feecbb","integrity":"sha256-sPYrMWEgFA1TK0F2ovy07MHuU57ldd/fPsTVJlT+7Ls="},"tinymce/plugins/visualblocks/plugin-3d4d1ecfab518dbd1ca471a91aec162c1e4ec8392c1c4ec6a33e32f64842a703.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":1652,"digest":"3d4d1ecfab518dbd1ca471a91aec162c1e4ec8392c1c4ec6a33e32f64842a703","integrity":"sha256-PU0ez6tRjb0cpHGpGuwWLB5OyDksHE7Goz4y9khCpwM="},"tinymce/plugins/visualchars/plugin-75f145c166b94615af38608585d0a8f6aa3971fdead38f4b395d966c763c1c00.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":7081,"digest":"75f145c166b94615af38608585d0a8f6aa3971fdead38f4b395d966c763c1c00","integrity":"sha256-dfFFwWa5RhWvOGCFhdCo9qo5cf3q049LOV2WbHY8HAA="},"tinymce/plugins/wordcount/plugin-20f61579df72da1abfd62b395a584095c4ff757552fdcce494bc9f937e8b73ed.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-02-25T22:08:25+01:00","size":13186,"digest":"20f61579df72da1abfd62b395a584095c4ff757552fdcce494bc9f937e8b73ed","integrity":"sha256-IPYVed9y2hq/1is5WlhAlcT/dXVS/czklLyfk36Lc+0="},"tinymce/themes/mobile/theme-2d06d5421ce0b9c54b77566e62d9a84555ee4d3bc4477688f62513a57049679e.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-02-25T22:08:25+01:00","size":179682,"digest":"2d06d5421ce0b9c54b77566e62d9a84555ee4d3bc4477688f62513a57049679e","integrity":"sha256-LQbVQhzgucVLd1ZuYtmoRVXuTTvER3aI9iUTpXBJZ54="},"tinymce/themes/silver/theme-102eed9f74a53ac362b232e2f646a80c7d72b6d06f6b84b778e77298bd8f8fc5.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-02-25T22:08:25+01:00","size":408264,"digest":"102eed9f74a53ac362b232e2f646a80c7d72b6d06f6b84b778e77298bd8f8fc5","integrity":"sha256-EC7tn3SlOsNisjLi9kaoDH1yttBva4S3eOdymL2Pj8U="},"tinymce/tinymce-c34044666f0c63798d74e00fbf9f187156da82a87e1f59db5778d92f0e2eeecf.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-02-25T22:08:25+01:00","size":445763,"digest":"c34044666f0c63798d74e00fbf9f187156da82a87e1f59db5778d92f0e2eeecf","integrity":"sha256-w0BEZm8MY3mNdOAPv58YcVbagqh+H1nbV3jZLw4u7s8="},"tinymce/skins/ui/oxide-dark/content-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2020-02-25T22:08:25+01:00","size":17478,"digest":"3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118","integrity":"sha256-Pz4MsjN3+2bVjtVmnooszsNC8M4tlfUeVPkWbrkqkRg="},"tinymce/skins/ui/oxide-dark/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide-dark/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide-dark/content.min-3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17478,"digest":"3f3e0cb23377fb66d58ed5669e8a2ccec342f0ce2d95f51e54f9166eb92a9118","integrity":"sha256-Pz4MsjN3+2bVjtVmnooszsNC8M4tlfUeVPkWbrkqkRg="},"tinymce/skins/ui/oxide-dark/skin-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.css","mtime":"2020-04-05T17:14:06+02:00","size":56280,"digest":"d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f","integrity":"sha256-0tIcJ+15Jrq9R9siLxlzPQV/JXTneed9K+jHS/PAqp8="},"tinymce/skins/ui/oxide-dark/skin.min-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css":{"logical_path":"tinymce/skins/ui/oxide-dark/skin.min.css","mtime":"2020-04-05T17:14:06+02:00","size":56280,"digest":"d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f","integrity":"sha256-0tIcJ+15Jrq9R9siLxlzPQV/JXTneed9K+jHS/PAqp8="},"tinymce/skins/ui/oxide/content-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2020-02-25T22:08:25+01:00","size":17853,"digest":"32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4","integrity":"sha256-MvZ6cEJnGbKIBA5v/s9LhyHF+tqPgfxhwTZTzAYhqOQ="},"tinymce/skins/ui/oxide/content.inline-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide/content.inline.min-4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17794,"digest":"4e4c888c908fa1dbcffd0d52a088a013f3f3d26369d7e5f505fe6944cb76d31b","integrity":"sha256-TkyIjJCPodvP/Q1SoIigE/Pz0mNp1+X1Bf5pRMt20xs="},"tinymce/skins/ui/oxide/content.min-32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2020-02-25T22:08:25+01:00","size":17853,"digest":"32f67a70426719b288040e6ffecf4b8721c5fada8f81fc61c13653cc0621a8e4","integrity":"sha256-MvZ6cEJnGbKIBA5v/s9LhyHF+tqPgfxhwTZTzAYhqOQ="},"tinymce/skins/ui/oxide/skin-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.css","mtime":"2020-04-05T17:14:06+02:00","size":56403,"digest":"43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a","integrity":"sha256-Q0EvtU3nKyWH8XpV+WozJRbcZEl0gbI/wfZan6QJNSo="},"tinymce/skins/ui/oxide/skin.min-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css":{"logical_path":"tinymce/skins/ui/oxide/skin.min.css","mtime":"2020-04-05T17:14:06+02:00","size":56403,"digest":"43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a","integrity":"sha256-Q0EvtU3nKyWH8XpV+WozJRbcZEl0gbI/wfZan6QJNSo="},"application-fbeae76b41fa288902e940b06c442da8259beba25ea00824357f6e6a22f018fe.js":{"logical_path":"application.js","mtime":"2020-02-24T22:43:55+01:00","size":2016114,"digest":"fbeae76b41fa288902e940b06c442da8259beba25ea00824357f6e6a22f018fe","integrity":"sha256-++rna0H6KIkC6UCwbEQtqCWb66JeoAgkNX9uaiLwGP4="},"application-7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837.css":{"logical_path":"application.css","mtime":"2020-04-05T17:14:06+02:00","size":232688,"digest":"7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837","integrity":"sha256-dnaBCosfcjVMiCHDijyHKfVLuO1a52fpQVm5j0q3SDc="},"flags/4x3/ad-af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c.svg":{"logical_path":"flags/4x3/ad.svg","mtime":"2020-04-05T17:14:06+02:00","size":33473,"digest":"af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c","integrity":"sha256-ryG8UPEuYHb3nb3bYEnqMr90fkqdv2KHgerynoHGIyw="},"flags/1x1/ad-5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839.svg":{"logical_path":"flags/1x1/ad.svg","mtime":"2020-04-05T17:14:06+02:00","size":32253,"digest":"5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839","integrity":"sha256-XzAe7mJjHFBFlQeilhesAsyBBjWdoiuXBdO3PlDcuDk="},"flags/4x3/ae-660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4.svg":{"logical_path":"flags/4x3/ae.svg","mtime":"2020-04-05T17:14:06+02:00","size":254,"digest":"660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4","integrity":"sha256-Zg9gAYn3f7rNIJn1uJiGTgimfQz+OQXDkNz2uGSJ2+Q="},"flags/1x1/ae-09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d.svg":{"logical_path":"flags/1x1/ae.svg","mtime":"2020-04-05T17:14:06+02:00","size":262,"digest":"09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d","integrity":"sha256-CZQ+NVlE1ocPdAk9hYUD3iBPAsp49wEipafXSJcTS20="},"flags/4x3/af-c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0.svg":{"logical_path":"flags/4x3/af.svg","mtime":"2020-04-05T17:14:06+02:00","size":21066,"digest":"c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0","integrity":"sha256-x7/YPbGu/AiXKgk6yogoUZT+sFq4f7Xt5ErLEHovhOA="},"flags/1x1/af-f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0.svg":{"logical_path":"flags/1x1/af.svg","mtime":"2020-04-05T17:14:06+02:00","size":20928,"digest":"f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0","integrity":"sha256-8P5n1rGQOBtLegORc8jXSi3I93c8pqx53iWwsUyLgPA="},"flags/4x3/ag-a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50.svg":{"logical_path":"flags/4x3/ag.svg","mtime":"2020-04-05T17:14:06+02:00","size":749,"digest":"a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50","integrity":"sha256-qYbPm1eQDM+ax1zzm19Rk4XoDcYxn79YTDPgjluRPVA="},"flags/1x1/ag-b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06.svg":{"logical_path":"flags/1x1/ag.svg","mtime":"2020-04-05T17:14:06+02:00","size":761,"digest":"b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06","integrity":"sha256-sO6NxVctuQbzdlaWxB+67z33JlH+Dqowas+qMQq4DQY="},"flags/4x3/ai-efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6.svg":{"logical_path":"flags/4x3/ai.svg","mtime":"2020-04-05T17:14:06+02:00","size":48259,"digest":"efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6","integrity":"sha256-79DCdO3Yzn/JtmXHg/H8KXIYtpmWVnfqB2L+RsDM7/Y="},"flags/1x1/ai-b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f.svg":{"logical_path":"flags/1x1/ai.svg","mtime":"2020-04-05T17:14:06+02:00","size":48199,"digest":"b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f","integrity":"sha256-trqFaOh5o8eOGcaqcStHYXyeyRqwPeZW9DpBu7wc8C8="},"flags/4x3/al-87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485.svg":{"logical_path":"flags/4x3/al.svg","mtime":"2020-04-05T17:14:06+02:00","size":3206,"digest":"87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485","integrity":"sha256-h0duTEszmYO82nFjenGO7RZwvtHjnXQZ20G4+ds6lIU="},"flags/1x1/al-b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217.svg":{"logical_path":"flags/1x1/al.svg","mtime":"2020-04-05T17:14:06+02:00","size":3205,"digest":"b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217","integrity":"sha256-uMZsnY93/mKS5SQWTIBy/a8nKNquA2/lLPVB3I3Oohc="},"flags/4x3/am-8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e.svg":{"logical_path":"flags/4x3/am.svg","mtime":"2020-04-05T17:14:06+02:00","size":223,"digest":"8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e","integrity":"sha256-gkSWbfJv+Woj5NHsVBHH+P3SuTXEgYnfsuJYvalemG4="},"flags/1x1/am-48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b.svg":{"logical_path":"flags/1x1/am.svg","mtime":"2020-04-05T17:14:06+02:00","size":231,"digest":"48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b","integrity":"sha256-SNPJtg8/n0gtg81URZcD52CxqVJKKQpJEpBYjrZWOHs="},"flags/4x3/ao-7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36.svg":{"logical_path":"flags/4x3/ao.svg","mtime":"2020-04-05T17:14:06+02:00","size":1588,"digest":"7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36","integrity":"sha256-esRuHNDH02wyKZETduOPep9Xj2J72InyOrXVyVl8vDY="},"flags/1x1/ao-b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63.svg":{"logical_path":"flags/1x1/ao.svg","mtime":"2020-04-05T17:14:06+02:00","size":1588,"digest":"b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63","integrity":"sha256-tL28QRPKgORcb5bPYgpGOKT+otvRQ3gMwIZTG7lo7mM="},"flags/4x3/aq-62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4.svg":{"logical_path":"flags/4x3/aq.svg","mtime":"2020-04-05T17:14:06+02:00","size":6143,"digest":"62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4","integrity":"sha256-Yu4ZiBQN7oS3yN1f+ifbZ7MkJQW5rBapGYHNBVmcSbQ="},"flags/1x1/aq-2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93.svg":{"logical_path":"flags/1x1/aq.svg","mtime":"2020-04-05T17:14:06+02:00","size":5958,"digest":"2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93","integrity":"sha256-L9knm7T+e9bLU66rGRdk42AsqeUyTjBt0XjpsimrbZM="},"flags/4x3/ar-036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8.svg":{"logical_path":"flags/4x3/ar.svg","mtime":"2020-04-05T17:14:06+02:00","size":3402,"digest":"036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8","integrity":"sha256-A22cNASZWIs3w/+FPafqEF6zX66HbXz+A06+PMN2TNg="},"flags/1x1/ar-3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4.svg":{"logical_path":"flags/1x1/ar.svg","mtime":"2020-04-05T17:14:06+02:00","size":3473,"digest":"3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4","integrity":"sha256-PHqGbZFu/ZqxF769llHazu4ZbuleQg9v1r6MiDnAZ9Q="},"flags/4x3/as-3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a.svg":{"logical_path":"flags/4x3/as.svg","mtime":"2020-04-05T17:14:06+02:00","size":8068,"digest":"3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a","integrity":"sha256-MZOrIihNv+O4gEnQfeeLQ76L2EH/AOcehOPJV8va7mo="},"flags/1x1/as-e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81.svg":{"logical_path":"flags/1x1/as.svg","mtime":"2020-04-05T17:14:06+02:00","size":7828,"digest":"e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81","integrity":"sha256-6M5YHXXU1iYtzRq91XcnPLsG0rFeE98XQnyIgXddXIE="},"flags/4x3/at-1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176.svg":{"logical_path":"flags/4x3/at.svg","mtime":"2020-04-05T17:14:06+02:00","size":240,"digest":"1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176","integrity":"sha256-HlE+Wc+VnTgoetcu3G8HzadUt2Ie+wTtdMMz33P/QXY="},"flags/1x1/at-73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179.svg":{"logical_path":"flags/1x1/at.svg","mtime":"2020-04-05T17:14:06+02:00","size":242,"digest":"73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179","integrity":"sha256-c65rPAN45oVdovbxZGaCGEhRFzNBddaORPiKOEah4Xk="},"flags/4x3/au-213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9.svg":{"logical_path":"flags/4x3/au.svg","mtime":"2020-04-05T17:14:06+02:00","size":1546,"digest":"213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9","integrity":"sha256-ITvMXowMfe/M2W8ZHznlP4c9qBKeVdIw+q/daD1BaPk="},"flags/1x1/au-dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a.svg":{"logical_path":"flags/1x1/au.svg","mtime":"2020-04-05T17:14:06+02:00","size":1483,"digest":"dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a","integrity":"sha256-38mE06ic/cr0QXSCr4ae4ExtA5mqKQXH07XQnVr0qlo="},"flags/4x3/aw-424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637.svg":{"logical_path":"flags/4x3/aw.svg","mtime":"2020-04-05T17:14:06+02:00","size":9951,"digest":"424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637","integrity":"sha256-Qk2yn2TzxydXvFVCFEojR9MBAtF66zCul3VZ/Wjm9jc="},"flags/1x1/aw-b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac.svg":{"logical_path":"flags/1x1/aw.svg","mtime":"2020-04-05T17:14:06+02:00","size":12084,"digest":"b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac","integrity":"sha256-tRYtuidxl/iaqOo2obUOwFfTiy6Ncinq2+VfzH+uIKw="},"flags/4x3/ax-e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811.svg":{"logical_path":"flags/4x3/ax.svg","mtime":"2020-04-05T17:14:06+02:00","size":559,"digest":"e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811","integrity":"sha256-4Lf23VXyYR0qaenxEdw5xTQgacMoVfcpM/9T5vdIiBE="},"flags/1x1/ax-952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3.svg":{"logical_path":"flags/1x1/ax.svg","mtime":"2020-04-05T17:14:06+02:00","size":541,"digest":"952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3","integrity":"sha256-lSdxsx/FnP/lwzZ35tcBvLeCJi6GoB56WR6rWhHkfrM="},"flags/4x3/az-3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78.svg":{"logical_path":"flags/4x3/az.svg","mtime":"2020-04-05T17:14:06+02:00","size":512,"digest":"3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78","integrity":"sha256-Ohb/In2KApXPB8nz/Kt+QATwxLbxjFhY3BYzz2sW/ng="},"flags/1x1/az-ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17.svg":{"logical_path":"flags/1x1/az.svg","mtime":"2020-04-05T17:14:06+02:00","size":498,"digest":"ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17","integrity":"sha256-znardEAZ6ZgNC53adLZk6TNGHPlu6zBahYo5uaOLmxc="},"flags/4x3/ba-0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e.svg":{"logical_path":"flags/4x3/ba.svg","mtime":"2020-04-05T17:14:06+02:00","size":1310,"digest":"0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e","integrity":"sha256-AUWlaw8tfiWFayxi/O9aji1iJX7GfAgG+g6SkzCCUD4="},"flags/1x1/ba-b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1.svg":{"logical_path":"flags/1x1/ba.svg","mtime":"2020-04-05T17:14:06+02:00","size":1242,"digest":"b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1","integrity":"sha256-tEZqCLcXJfi1BX7wlGsZ13pNI+7QuB/Rq+Q4Ddbd48E="},"flags/4x3/bb-667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673.svg":{"logical_path":"flags/4x3/bb.svg","mtime":"2020-04-05T17:14:06+02:00","size":609,"digest":"667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673","integrity":"sha256-Znt5yiZYAuF5z9yKsGKV6eIzAWWfYQ6hEAW3QVrphnM="},"flags/1x1/bb-2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c.svg":{"logical_path":"flags/1x1/bb.svg","mtime":"2020-04-05T17:14:06+02:00","size":609,"digest":"2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c","integrity":"sha256-LODE9VuoUGmJf6FTN7B+EEcMmEZpgle+qFlx1DB7QXw="},"flags/4x3/bd-d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e.svg":{"logical_path":"flags/4x3/bd.svg","mtime":"2020-04-05T17:14:06+02:00","size":190,"digest":"d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e","integrity":"sha256-1e52K6aUSNtfrdahj1ITypIsDwT+fUe8ppg6+7MB/i4="},"flags/1x1/bd-749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce.svg":{"logical_path":"flags/1x1/bd.svg","mtime":"2020-04-05T17:14:06+02:00","size":192,"digest":"749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce","integrity":"sha256-dJtjqpNyAYQ/Y87f19DbMBnd+VuTG0voBpNxb9K4TM4="},"flags/4x3/be-b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae.svg":{"logical_path":"flags/4x3/be.svg","mtime":"2020-04-05T17:14:06+02:00","size":290,"digest":"b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae","integrity":"sha256-s98rlIFbufOIRu6b+Y4T9wzumfmwjYC5X5YRclW7FK4="},"flags/1x1/be-b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc.svg":{"logical_path":"flags/1x1/be.svg","mtime":"2020-04-05T17:14:06+02:00","size":290,"digest":"b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc","integrity":"sha256-uZi9+mlqqikbXJfreDw7UlCCRi3B+mnTLe06PfdY6sw="},"flags/4x3/bf-bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066.svg":{"logical_path":"flags/4x3/bf.svg","mtime":"2020-04-05T17:14:06+02:00","size":357,"digest":"bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066","integrity":"sha256-u1ALB3Lbpypko87ekomMKAO7n71ydDgmWQzOKo9N0GY="},"flags/1x1/bf-8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244.svg":{"logical_path":"flags/1x1/bf.svg","mtime":"2020-04-05T17:14:06+02:00","size":383,"digest":"8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244","integrity":"sha256-j3lezHTOBDG3NQlHCbU1/i9v/Envwyl2EGujMnQcIkQ="},"flags/4x3/bg-c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5.svg":{"logical_path":"flags/4x3/bg.svg","mtime":"2020-04-05T17:14:06+02:00","size":286,"digest":"c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5","integrity":"sha256-xn4Emp8APwmOVUgI504zWZcOTfmtz7abM9y3v9W3qMU="},"flags/1x1/bg-9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205.svg":{"logical_path":"flags/1x1/bg.svg","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205","integrity":"sha256-ndvHtnT/IcvywNgq5ecB+JkCxM6IQVheJdjlzjaQIgU="},"flags/4x3/bh-b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e.svg":{"logical_path":"flags/4x3/bh.svg","mtime":"2020-04-05T17:14:06+02:00","size":517,"digest":"b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e","integrity":"sha256-uJsd0fQLWbEZo3iGUxgjF4Wek7flBroIUW3pe4WQgD4="},"flags/1x1/bh-9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8.svg":{"logical_path":"flags/1x1/bh.svg","mtime":"2020-04-05T17:14:06+02:00","size":538,"digest":"9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8","integrity":"sha256-mm9TrzrydoBK8WWm31JTZKsHdUheIJ8/hKNRqchTffg="},"flags/4x3/bi-d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532.svg":{"logical_path":"flags/4x3/bi.svg","mtime":"2020-04-05T17:14:06+02:00","size":1074,"digest":"d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532","integrity":"sha256-2cwLWN3Wx6EUeZn5b/JdT9gOAKcWNvLg26lS8MV3FTI="},"flags/1x1/bi-78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3.svg":{"logical_path":"flags/1x1/bi.svg","mtime":"2020-04-05T17:14:06+02:00","size":1042,"digest":"78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3","integrity":"sha256-eEdsZoL9D9ydYhl0pujaq2QDg9svlWA6ms2/vB2Ov8M="},"flags/4x3/bj-9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2.svg":{"logical_path":"flags/4x3/bj.svg","mtime":"2020-04-05T17:14:06+02:00","size":502,"digest":"9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2","integrity":"sha256-kIXi3I6ZHg3B4BkpecoZ243Z4izY7HIo9iieK4IxqcI="},"flags/1x1/bj-126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb.svg":{"logical_path":"flags/1x1/bj.svg","mtime":"2020-04-05T17:14:06+02:00","size":499,"digest":"126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb","integrity":"sha256-Em9hA9gakw2NjhheEGTGUC6Z0XCeYi43G1Ufaw9GDMs="},"flags/4x3/bl-1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2.svg":{"logical_path":"flags/4x3/bl.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2","integrity":"sha256-HA/A3AOrx2CRtum4dKuUl1tPtomP853Y/EcF+BsclPI="},"flags/1x1/bl-b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3.svg":{"logical_path":"flags/1x1/bl.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3","integrity":"sha256-tB6wbr6amtgXayR75ohLLSViJhqshbFIu0/JU0d3AbM="},"flags/4x3/bm-13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a.svg":{"logical_path":"flags/4x3/bm.svg","mtime":"2020-04-05T17:14:06+02:00","size":22569,"digest":"13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a","integrity":"sha256-E8tRHdT2ObywewhJnGpZbvSjAHRadA9RWOcL75gjkTo="},"flags/1x1/bm-1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125.svg":{"logical_path":"flags/1x1/bm.svg","mtime":"2020-04-05T17:14:06+02:00","size":22270,"digest":"1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125","integrity":"sha256-GvB+U+OK+FmUYU0OOh7fro9cdAkagsY6BRrBroieUSU="},"flags/4x3/bn-7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6.svg":{"logical_path":"flags/4x3/bn.svg","mtime":"2020-04-05T17:14:06+02:00","size":14213,"digest":"7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6","integrity":"sha256-fF6v2Q8isUMBpXhBZ+cDJlV+hzLelecC2XgK+5ujUfY="},"flags/1x1/bn-58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e.svg":{"logical_path":"flags/1x1/bn.svg","mtime":"2020-04-05T17:14:06+02:00","size":14359,"digest":"58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e","integrity":"sha256-WJMMJQjxreQCQLyT5PrX3iKeH3tso+X4vbl/7NpU8k4="},"flags/4x3/bo-4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc.svg":{"logical_path":"flags/4x3/bo.svg","mtime":"2020-04-05T17:14:06+02:00","size":117062,"digest":"4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc","integrity":"sha256-SrNXldc+xcx854S+29HHLHq1QC82ZZmNmYwbbiRL9Lw="},"flags/1x1/bo-2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294.svg":{"logical_path":"flags/1x1/bo.svg","mtime":"2020-04-05T17:14:06+02:00","size":118659,"digest":"2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294","integrity":"sha256-Kgka+UBBhvrlsqUESwYazo/6U6h0GHyvAHhCynC7QpQ="},"flags/4x3/bq-4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07.svg":{"logical_path":"flags/4x3/bq.svg","mtime":"2020-04-05T17:14:06+02:00","size":224,"digest":"4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07","integrity":"sha256-T2ngSsNlG5ES0UEaCFvW1jJUTFk/rZ0gwnYW2Al0bwc="},"flags/1x1/bq-21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab.svg":{"logical_path":"flags/1x1/bq.svg","mtime":"2020-04-05T17:14:06+02:00","size":228,"digest":"21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab","integrity":"sha256-IeTGFtXNXASGZAtmQA2chVnKsIZQ52AeKRxPWxZDpqs="},"flags/4x3/br-5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8.svg":{"logical_path":"flags/4x3/br.svg","mtime":"2020-04-05T17:14:06+02:00","size":8097,"digest":"5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8","integrity":"sha256-ViZUUnTebejk4sD4ALe2ZLw1IfDum8mFR/PL7D7/4tg="},"flags/1x1/br-38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e.svg":{"logical_path":"flags/1x1/br.svg","mtime":"2020-04-05T17:14:06+02:00","size":7686,"digest":"38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e","integrity":"sha256-OOURTJkS609fGUS05D7rlnke9VLYVaLxbhd8584UXV4="},"flags/4x3/bs-d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838.svg":{"logical_path":"flags/4x3/bs.svg","mtime":"2020-04-05T17:14:06+02:00","size":552,"digest":"d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838","integrity":"sha256-1FVAwfMzrWtwrpmLMX1sVFsvYIuJbcOE2gaUWd1vCDg="},"flags/1x1/bs-f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf.svg":{"logical_path":"flags/1x1/bs.svg","mtime":"2020-04-05T17:14:06+02:00","size":568,"digest":"f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf","integrity":"sha256-8Q1khWxX7+4PJ7Pnlg3ngvOOAmqlVALoAfEL1atQXc8="},"flags/4x3/bt-6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063.svg":{"logical_path":"flags/4x3/bt.svg","mtime":"2020-04-05T17:14:06+02:00","size":25227,"digest":"6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063","integrity":"sha256-bxCebgRldCuaEy8p01a6t35H+EKSYwVtTdd/H2za4GM="},"flags/1x1/bt-569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36.svg":{"logical_path":"flags/1x1/bt.svg","mtime":"2020-04-05T17:14:06+02:00","size":25045,"digest":"569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36","integrity":"sha256-Vp4TQS7eTwANMnrCnCHEmwUdYENxn9rRnqvsOgTUTzY="},"flags/4x3/bv-f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e.svg":{"logical_path":"flags/4x3/bv.svg","mtime":"2020-04-05T17:14:06+02:00","size":585,"digest":"f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e","integrity":"sha256-8lF1UZbxceXXqyaEoJzm3+8gN8wnO7FEYJNOGiwcU44="},"flags/1x1/bv-6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f.svg":{"logical_path":"flags/1x1/bv.svg","mtime":"2020-04-05T17:14:06+02:00","size":582,"digest":"6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f","integrity":"sha256-a+KsXCt7NT3n3TYe/TpVwii6AMpgreC2ZNF34xgrvo8="},"flags/4x3/bw-115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262.svg":{"logical_path":"flags/4x3/bw.svg","mtime":"2020-04-05T17:14:06+02:00","size":252,"digest":"115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262","integrity":"sha256-EVshZf4MH4gaRUCaJLw7z9Qt6aHNrVaG7TawbA1kYmI="},"flags/1x1/bw-df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86.svg":{"logical_path":"flags/1x1/bw.svg","mtime":"2020-04-05T17:14:06+02:00","size":254,"digest":"df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86","integrity":"sha256-35Lk1g+c0QwWB91guLENY7EMnb4w4KAmrQRnDcBqDoY="},"flags/4x3/by-91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047.svg":{"logical_path":"flags/4x3/by.svg","mtime":"2020-04-05T17:14:06+02:00","size":5962,"digest":"91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047","integrity":"sha256-kbJt16lyweupo4flIbtNuUyJFjW7DdK1UjjkVSyjkEc="},"flags/1x1/by-b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc.svg":{"logical_path":"flags/1x1/by.svg","mtime":"2020-04-05T17:14:06+02:00","size":6086,"digest":"b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc","integrity":"sha256-t62o0ftGSHyDuCfBa2n1EnTkLGVfpTen//+ksgRoyvw="},"flags/4x3/bz-173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a.svg":{"logical_path":"flags/4x3/bz.svg","mtime":"2020-04-05T17:14:06+02:00","size":46427,"digest":"173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a","integrity":"sha256-Fz7PexrPsj5Wm38wVjC/4aOZQ+v1BK1mrD9dYT4SHJo="},"flags/1x1/bz-1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249.svg":{"logical_path":"flags/1x1/bz.svg","mtime":"2020-04-05T17:14:06+02:00","size":46678,"digest":"1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249","integrity":"sha256-HQU0nVpJe+NnFVMQtpLnrsQugHlzeNdIF4tw03naEkk="},"flags/4x3/ca-5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331.svg":{"logical_path":"flags/4x3/ca.svg","mtime":"2020-04-05T17:14:06+02:00","size":728,"digest":"5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331","integrity":"sha256-W9qQVpP/7TLflfeajurB+/BiYw3gX0iHXhCcNWgeIzE="},"flags/1x1/ca-85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad.svg":{"logical_path":"flags/1x1/ca.svg","mtime":"2020-04-05T17:14:06+02:00","size":708,"digest":"85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad","integrity":"sha256-he6J+mmMLvytSBdyP6xEMRylINo75j9SoQ4hw/Zej60="},"flags/4x3/cc-d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6.svg":{"logical_path":"flags/4x3/cc.svg","mtime":"2020-04-05T17:14:06+02:00","size":3123,"digest":"d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6","integrity":"sha256-1J6zcwssvj6qcCjVvV9CXKr9gxVM9HUjwnJ5wQJX0/Y="},"flags/1x1/cc-7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970.svg":{"logical_path":"flags/1x1/cc.svg","mtime":"2020-04-05T17:14:06+02:00","size":3083,"digest":"7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970","integrity":"sha256-fEa184RJ8zIK5F+VEaNuGxwiiU+El3wjUgjr+43qmXA="},"flags/4x3/cd-3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248.svg":{"logical_path":"flags/4x3/cd.svg","mtime":"2020-04-05T17:14:06+02:00","size":349,"digest":"3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248","integrity":"sha256-PleZ/++R2Msw3GuEeGfiCegsv/4ndEUgLF8pHTbvAkg="},"flags/1x1/cd-600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e.svg":{"logical_path":"flags/1x1/cd.svg","mtime":"2020-04-05T17:14:06+02:00","size":507,"digest":"600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e","integrity":"sha256-YA5zaWMhSp9nAUYzRfkbVp2rnmj3ZoMX3y9A3viOLW4="},"flags/4x3/cf-44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f.svg":{"logical_path":"flags/4x3/cf.svg","mtime":"2020-04-05T17:14:06+02:00","size":691,"digest":"44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f","integrity":"sha256-ROaP6CVxmFTJKoKFlE5hkojV9lH9F/h0FTCBRJwQDR8="},"flags/1x1/cf-b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175.svg":{"logical_path":"flags/1x1/cf.svg","mtime":"2020-04-05T17:14:06+02:00","size":632,"digest":"b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175","integrity":"sha256-s6YeIvfYvcYR1TJyDPjtKS6rM2BjxWmQNnVdwWAVQXU="},"flags/4x3/cg-7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2.svg":{"logical_path":"flags/4x3/cg.svg","mtime":"2020-04-05T17:14:06+02:00","size":487,"digest":"7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2","integrity":"sha256-fk+e/DeSA7nMlncELeTAe9QRMIyAB0kZA1wI/hMdvKI="},"flags/1x1/cg-20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d.svg":{"logical_path":"flags/1x1/cg.svg","mtime":"2020-04-05T17:14:06+02:00","size":469,"digest":"20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d","integrity":"sha256-IKdCoheJ/AQ0TpBGPAWzXuL+hqYk07ZDK07da9P+ZR0="},"flags/4x3/ch-4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5.svg":{"logical_path":"flags/4x3/ch.svg","mtime":"2020-04-05T17:14:06+02:00","size":297,"digest":"4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5","integrity":"sha256-TpTlw6UkNF58JPOAerLKgSIl6mzNtZ7GcSWw6j7QLNU="},"flags/1x1/ch-a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106.svg":{"logical_path":"flags/1x1/ch.svg","mtime":"2020-04-05T17:14:06+02:00","size":295,"digest":"a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106","integrity":"sha256-oGYPc3HEKh6L4pmp/w12LtErV46kON8ziQqujrpDEQY="},"flags/4x3/ci-d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992.svg":{"logical_path":"flags/4x3/ci.svg","mtime":"2020-04-05T17:14:06+02:00","size":280,"digest":"d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992","integrity":"sha256-1/1BJMuPTZzC1wvSyHVD/SeXUL1wgtUeWRb+plhH6ZI="},"flags/1x1/ci-ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc.svg":{"logical_path":"flags/1x1/ci.svg","mtime":"2020-04-05T17:14:06+02:00","size":283,"digest":"ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc","integrity":"sha256-un92NUfKG5JD/PZE2D8xAFRvf+VX8i+zgLX83e9+Arw="},"flags/4x3/ck-95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8.svg":{"logical_path":"flags/4x3/ck.svg","mtime":"2020-04-05T17:14:06+02:00","size":2097,"digest":"95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8","integrity":"sha256-lehQsCfhmOJ1hAoslv3ovgBvfEtQ0nTC2hDc+tUNPPg="},"flags/1x1/ck-a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754.svg":{"logical_path":"flags/1x1/ck.svg","mtime":"2020-04-05T17:14:06+02:00","size":2020,"digest":"a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754","integrity":"sha256-pg7Ejf0pG89uAyNF/c9y7cmV7663SVNKONGS2BiRt1Q="},"flags/4x3/cl-b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde.svg":{"logical_path":"flags/4x3/cl.svg","mtime":"2020-04-05T17:14:06+02:00","size":563,"digest":"b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde","integrity":"sha256-sMP0MyF6A5JHssfz+GlNBSN7poRya2BKM8EC0Q8nn94="},"flags/1x1/cl-250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0.svg":{"logical_path":"flags/1x1/cl.svg","mtime":"2020-04-05T17:14:06+02:00","size":574,"digest":"250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0","integrity":"sha256-JQ9An1WP4X8B8yYU6/YnXC/M53bOUOyVlkK6u8ZwNuA="},"flags/4x3/cm-1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f.svg":{"logical_path":"flags/4x3/cm.svg","mtime":"2020-04-05T17:14:06+02:00","size":824,"digest":"1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f","integrity":"sha256-Gy5StZYvOOWNoZc7I3lszvrg6CMhhWxhvaaL0/J36m8="},"flags/1x1/cm-809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4.svg":{"logical_path":"flags/1x1/cm.svg","mtime":"2020-04-05T17:14:06+02:00","size":824,"digest":"809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4","integrity":"sha256-gJ6lq1FsTlnuX5DEsFFTZcPUHXdUT/EKux3qiMnzd+Q="},"flags/4x3/cn-e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8.svg":{"logical_path":"flags/4x3/cn.svg","mtime":"2020-04-05T17:14:06+02:00","size":801,"digest":"e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8","integrity":"sha256-6A1xRICnlWF5ktcz0GeOWtUCX4hSs10gpAKnj85Myvg="},"flags/1x1/cn-ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6.svg":{"logical_path":"flags/1x1/cn.svg","mtime":"2020-04-05T17:14:06+02:00","size":743,"digest":"ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6","integrity":"sha256-q5otxrGq6qcBe5aQS3p2BResnlfuWJ7m3RI4x3VL2PY="},"flags/4x3/co-bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da.svg":{"logical_path":"flags/4x3/co.svg","mtime":"2020-04-05T17:14:06+02:00","size":289,"digest":"bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da","integrity":"sha256-vBXqu43DezbXviKMaKL3pilXo7qeTYw121C5GcnRUNo="},"flags/1x1/co-cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2.svg":{"logical_path":"flags/1x1/co.svg","mtime":"2020-04-05T17:14:06+02:00","size":289,"digest":"cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2","integrity":"sha256-yzauQITh5ni+2OCmQ5fgEJ+a/JXCQaBMjj2jald8+vI="},"flags/4x3/cr-12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd.svg":{"logical_path":"flags/4x3/cr.svg","mtime":"2020-04-05T17:14:06+02:00","size":293,"digest":"12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd","integrity":"sha256-Ev6AyBTeOCtTlVq1IjUUJ497SYX1HDL9H2A1YoDh5c0="},"flags/1x1/cr-c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49.svg":{"logical_path":"flags/1x1/cr.svg","mtime":"2020-04-05T17:14:06+02:00","size":293,"digest":"c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49","integrity":"sha256-x4MPDluAJcH5IFstic4besgexk9qnpCT2potngUga0k="},"flags/4x3/cu-0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145.svg":{"logical_path":"flags/4x3/cu.svg","mtime":"2020-04-05T17:14:06+02:00","size":622,"digest":"0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145","integrity":"sha256-Cgm9ylSlNHuhI4R26pDqfX2Z/scWPfQ+diMT3bzpsUU="},"flags/1x1/cu-f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404.svg":{"logical_path":"flags/1x1/cu.svg","mtime":"2020-04-05T17:14:06+02:00","size":573,"digest":"f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404","integrity":"sha256-9ffmxY2e6ARvsULw018j335Jdjs1MFt/zHGdsjVUtAQ="},"flags/4x3/cv-3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532.svg":{"logical_path":"flags/4x3/cv.svg","mtime":"2020-04-05T17:14:06+02:00","size":1415,"digest":"3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532","integrity":"sha256-OraqrxHZo6by+6FySOqF02lnFjIU6YsLswEj0LPe9TI="},"flags/1x1/cv-698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64.svg":{"logical_path":"flags/1x1/cv.svg","mtime":"2020-04-05T17:14:06+02:00","size":1357,"digest":"698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64","integrity":"sha256-aYrqNE1rufh95RP/Ul0W/bJZCtHNey0SAIeMHnzSzmQ="},"flags/4x3/cw-186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376.svg":{"logical_path":"flags/4x3/cw.svg","mtime":"2020-04-05T17:14:06+02:00","size":681,"digest":"186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376","integrity":"sha256-GGttI0eEXJA2iUaNuaUc7EHXRYRhcl/NzsqyfuvDw3Y="},"flags/1x1/cw-e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484.svg":{"logical_path":"flags/1x1/cw.svg","mtime":"2020-04-05T17:14:06+02:00","size":682,"digest":"e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484","integrity":"sha256-4cKB9FEkWXcwvhVQUbRii/JZdP9NrF+ZAmLF8HSrdIQ="},"flags/4x3/cx-aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d.svg":{"logical_path":"flags/4x3/cx.svg","mtime":"2020-04-05T17:14:06+02:00","size":2455,"digest":"aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d","integrity":"sha256-qvFxaOSenvwkslmSnkC3sTX3j07jJ1d6tX6aFP6N/p0="},"flags/1x1/cx-8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99.svg":{"logical_path":"flags/1x1/cx.svg","mtime":"2020-04-05T17:14:06+02:00","size":2496,"digest":"8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99","integrity":"sha256-ivcG+eNNeGdXjwJaBz4DPJAbBQElGaZbrF0xm5YfGpk="},"flags/4x3/cy-88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7.svg":{"logical_path":"flags/4x3/cy.svg","mtime":"2020-04-05T17:14:06+02:00","size":5866,"digest":"88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7","integrity":"sha256-iNBBwO7Abash5NnHd+rWFvKrl+7e+LYZ94+V3VHnSrc="},"flags/1x1/cy-0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba.svg":{"logical_path":"flags/1x1/cy.svg","mtime":"2020-04-05T17:14:06+02:00","size":5955,"digest":"0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba","integrity":"sha256-Dh82HtmMqfAnZXWDJ20PDkBPztyVyzFP1RInk+TOybo="},"flags/4x3/cz-a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609.svg":{"logical_path":"flags/4x3/cz.svg","mtime":"2020-04-05T17:14:06+02:00","size":484,"digest":"a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609","integrity":"sha256-oJT5PORlQV6tN0qmD7fqVZIblWaD8oCdagixr4H/1gk="},"flags/1x1/cz-fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77.svg":{"logical_path":"flags/1x1/cz.svg","mtime":"2020-04-05T17:14:06+02:00","size":480,"digest":"fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77","integrity":"sha256-/KFEvcS8VjzGEqC8kxc4qwlqNiMjmCpKweL3TWZ5LHc="},"flags/4x3/de-226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f.svg":{"logical_path":"flags/4x3/de.svg","mtime":"2020-04-05T17:14:06+02:00","size":213,"digest":"226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f","integrity":"sha256-ImYxqPqd7uBwImgM4EYbegm0FrYWxW68ryH1Dis06o8="},"flags/1x1/de-d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0.svg":{"logical_path":"flags/1x1/de.svg","mtime":"2020-04-05T17:14:06+02:00","size":221,"digest":"d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0","integrity":"sha256-18xhmxyICYHhetujvUTLit3/8dY+fLK01ZqIq+X/MeA="},"flags/4x3/dj-55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae.svg":{"logical_path":"flags/4x3/dj.svg","mtime":"2020-04-05T17:14:06+02:00","size":591,"digest":"55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae","integrity":"sha256-VbI1gVJXQ6Kfs2Aq6Yjckej29eoH1mM36oBRv5Lnw64="},"flags/1x1/dj-ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896.svg":{"logical_path":"flags/1x1/dj.svg","mtime":"2020-04-05T17:14:06+02:00","size":585,"digest":"ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896","integrity":"sha256-/9nry6CHk7uO1+UIzRGH2ehn5DygycZpxuyip8DmGJY="},"flags/4x3/dk-c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44.svg":{"logical_path":"flags/4x3/dk.svg","mtime":"2020-04-05T17:14:06+02:00","size":239,"digest":"c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44","integrity":"sha256-wpUXtOtrBWR1Mwomo/kpwFI++AJoqEV8pdRKfe8830Q="},"flags/1x1/dk-feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469.svg":{"logical_path":"flags/1x1/dk.svg","mtime":"2020-04-05T17:14:06+02:00","size":235,"digest":"feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469","integrity":"sha256-/usnaCzpOy5f4UoypnqnFB9QVyXa+LYBiGSwu+wQNGk="},"flags/4x3/dm-80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070.svg":{"logical_path":"flags/4x3/dm.svg","mtime":"2020-04-05T17:14:06+02:00","size":15975,"digest":"80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070","integrity":"sha256-gCIbko7MOMgsPSkLNr4cbJOIpR6VM8McGXAWsA5jsHA="},"flags/1x1/dm-e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711.svg":{"logical_path":"flags/1x1/dm.svg","mtime":"2020-04-05T17:14:06+02:00","size":16457,"digest":"e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711","integrity":"sha256-5dcldpYtel7NVmMcWiVBwTWfFfCGo9OExWOYPED8JxE="},"flags/4x3/do-d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f.svg":{"logical_path":"flags/4x3/do.svg","mtime":"2020-04-05T17:14:06+02:00","size":393849,"digest":"d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f","integrity":"sha256-05nqk54jwADOErpPfE1KvM3Sj3gySLgZ67ILkFRvYZ8="},"flags/1x1/do-2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c.svg":{"logical_path":"flags/1x1/do.svg","mtime":"2020-04-05T17:14:06+02:00","size":391369,"digest":"2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c","integrity":"sha256-KvM6rMmN3iylzC80mTcOlxW192tcp0Rt4ASQCDNGdUw="},"flags/4x3/dz-6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6.svg":{"logical_path":"flags/4x3/dz.svg","mtime":"2020-04-05T17:14:06+02:00","size":294,"digest":"6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6","integrity":"sha256-ah4quw2KM7AgmjcSPkRxC0sntQcjpdKrf7h0bIhEfPY="},"flags/1x1/dz-75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c.svg":{"logical_path":"flags/1x1/dz.svg","mtime":"2020-04-05T17:14:06+02:00","size":305,"digest":"75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c","integrity":"sha256-dVaBKdQwU2xKmU0F8RTgsbkeEK9zUNY18tpyH3PUhxw="},"flags/4x3/ec-63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde.svg":{"logical_path":"flags/4x3/ec.svg","mtime":"2020-04-05T17:14:06+02:00","size":29320,"digest":"63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde","integrity":"sha256-Y79uOsY2NBmcCSlxWnFRCfitIpxSbAi/vn9qep8w/N4="},"flags/1x1/ec-672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84.svg":{"logical_path":"flags/1x1/ec.svg","mtime":"2020-04-05T17:14:06+02:00","size":29875,"digest":"672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84","integrity":"sha256-ZyVn9F3NDVQ68h51GMQb+P50+gkBQXNrQUaXtoKXH4Q="},"flags/4x3/ee-b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e.svg":{"logical_path":"flags/4x3/ee.svg","mtime":"2020-04-05T17:14:06+02:00","size":321,"digest":"b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e","integrity":"sha256-tMLrzXnoIfuO43451ohWCnne4QCpgUAiJKTyvZdi5B4="},"flags/1x1/ee-53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd.svg":{"logical_path":"flags/1x1/ee.svg","mtime":"2020-04-05T17:14:06+02:00","size":352,"digest":"53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd","integrity":"sha256-U98MYuWDWtzpjllSCuVd258qNYgsWrosy0Ah1rDuiP0="},"flags/4x3/eg-83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42.svg":{"logical_path":"flags/4x3/eg.svg","mtime":"2020-04-05T17:14:06+02:00","size":9899,"digest":"83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42","integrity":"sha256-g/SgHA52IQaR1GsM/37Je27ZMpDDKh6U+rlu/T2bfUI="},"flags/1x1/eg-6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22.svg":{"logical_path":"flags/1x1/eg.svg","mtime":"2020-04-05T17:14:06+02:00","size":9913,"digest":"6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22","integrity":"sha256-YjTHdHxTVwXZtnJfSmoJFYd08ojLFNfpkpWCLE5WHCI="},"flags/4x3/eh-62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639.svg":{"logical_path":"flags/4x3/eh.svg","mtime":"2020-04-05T17:14:06+02:00","size":873,"digest":"62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639","integrity":"sha256-YvFToaTqbo7S958m7RDsy7spW+0W7LRvTnem9fSd9jk="},"flags/1x1/eh-15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c.svg":{"logical_path":"flags/1x1/eh.svg","mtime":"2020-04-05T17:14:06+02:00","size":817,"digest":"15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c","integrity":"sha256-Fau7oobki6UMSuw7dl2MBfm0xTrjhafIo40869aIsDw="},"flags/4x3/er-4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04.svg":{"logical_path":"flags/4x3/er.svg","mtime":"2020-04-05T17:14:06+02:00","size":3187,"digest":"4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04","integrity":"sha256-TFdoWWDQzSe8TubMg1by7Y0KXMVKIrW1A1KQkXBaKwQ="},"flags/1x1/er-29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729.svg":{"logical_path":"flags/1x1/er.svg","mtime":"2020-04-05T17:14:06+02:00","size":3371,"digest":"29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729","integrity":"sha256-KcoOHzGhT17lZ0o/zsmuwOxlK0WLZs/9YKwIOfw2Ryk="},"flags/4x3/es-ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3.svg":{"logical_path":"flags/4x3/es.svg","mtime":"2020-04-05T17:14:06+02:00","size":90819,"digest":"ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3","integrity":"sha256-qz1DiDe38cTrzmmAzJJ0zS5q3Mivm+b1z8R+8sTEZOM="},"flags/1x1/es-bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c.svg":{"logical_path":"flags/1x1/es.svg","mtime":"2020-04-05T17:14:06+02:00","size":92546,"digest":"bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c","integrity":"sha256-v+LZWt9p8zm63PkB4z0SwLYUbX0WoRALEsOrwT3DUhw="},"flags/4x3/et-e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79.svg":{"logical_path":"flags/4x3/et.svg","mtime":"2020-04-05T17:14:06+02:00","size":1233,"digest":"e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79","integrity":"sha256-4o8faezxsm4ALYyNrVXsivXoIrPMp/ERw5nnK04PnHk="},"flags/1x1/et-59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71.svg":{"logical_path":"flags/1x1/et.svg","mtime":"2020-04-05T17:14:06+02:00","size":1226,"digest":"59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71","integrity":"sha256-WXldbTMBXk7BBChhVB32wgNOjhiAhp1pWh/qWpUeLnE="},"flags/4x3/fi-83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2.svg":{"logical_path":"flags/4x3/fi.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2","integrity":"sha256-g3g6fcaXAt+7WYM9gcMJdI/7BFdKq47Ry3WJGJwPgNI="},"flags/1x1/fi-6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336.svg":{"logical_path":"flags/1x1/fi.svg","mtime":"2020-04-05T17:14:06+02:00","size":240,"digest":"6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336","integrity":"sha256-bDI3Ks+6hxzc0iYU8Ou/WOoriN5kjuToQ6K72lwKMzY="},"flags/4x3/fj-4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9.svg":{"logical_path":"flags/4x3/fj.svg","mtime":"2020-04-05T17:14:06+02:00","size":27237,"digest":"4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9","integrity":"sha256-SXLTGg4NJRbAijBYROUxC/iWPXzKacyG7U7S4SH0G+k="},"flags/1x1/fj-36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978.svg":{"logical_path":"flags/1x1/fj.svg","mtime":"2020-04-05T17:14:06+02:00","size":27518,"digest":"36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978","integrity":"sha256-Nv8+Yo/AvumYeMyXQOVKe5XpWZwmNZW12wyL4sariXg="},"flags/4x3/fk-6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457.svg":{"logical_path":"flags/4x3/fk.svg","mtime":"2020-04-05T17:14:06+02:00","size":31973,"digest":"6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457","integrity":"sha256-bRHB7L9BPSf0Bo4hG39fRug7kGfJ/XPqnD9dSMe7tFc="},"flags/1x1/fk-2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79.svg":{"logical_path":"flags/1x1/fk.svg","mtime":"2020-04-05T17:14:06+02:00","size":31798,"digest":"2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79","integrity":"sha256-JwXl2Zb3U/3WZrHTp8b0CFrcBwvoWVe6cfofB/F+ynk="},"flags/4x3/fm-881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75.svg":{"logical_path":"flags/4x3/fm.svg","mtime":"2020-04-05T17:14:06+02:00","size":776,"digest":"881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75","integrity":"sha256-iBRYRpI5AgYkuQ0mAdNHMw0h3XtRLAEcuivLDE3E6nU="},"flags/1x1/fm-0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4.svg":{"logical_path":"flags/1x1/fm.svg","mtime":"2020-04-05T17:14:06+02:00","size":759,"digest":"0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4","integrity":"sha256-Cw2BwpMsKjoRT1CVqeieasJ0xU0M2eeUE2ozmtTfjLQ="},"flags/4x3/fo-c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334.svg":{"logical_path":"flags/4x3/fo.svg","mtime":"2020-04-05T17:14:06+02:00","size":570,"digest":"c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334","integrity":"sha256-wLMt9RNlo5R93NoYwVV1xcYXt1spMw145gbmhPMwQzQ="},"flags/1x1/fo-5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c.svg":{"logical_path":"flags/1x1/fo.svg","mtime":"2020-04-05T17:14:06+02:00","size":534,"digest":"5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c","integrity":"sha256-WRD8gAbxJc48fsW5O4bMvgp55fvC5gqam0gciC0brHw="},"flags/4x3/fr-63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117.svg":{"logical_path":"flags/4x3/fr.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117","integrity":"sha256-Y2Z7Nt3ZXSmp8WPjq0ufcADc0xA1DFZcGbl1oKJBgRc="},"flags/1x1/fr-5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff.svg":{"logical_path":"flags/1x1/fr.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff","integrity":"sha256-XSR+45ZHoFZntS4EUQt2rkZcAJ2iQv+NmGN9E46kEP8="},"flags/4x3/ga-6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659.svg":{"logical_path":"flags/4x3/ga.svg","mtime":"2020-04-05T17:14:06+02:00","size":274,"digest":"6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659","integrity":"sha256-bPGQjvekfWHq0/lpu137luS2kbZikeLNfcccUT0aVlk="},"flags/1x1/ga-2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686.svg":{"logical_path":"flags/1x1/ga.svg","mtime":"2020-04-05T17:14:06+02:00","size":278,"digest":"2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686","integrity":"sha256-Ky6lCEt0G/Cx3R68h+5y5On614BGJ103vstBgx0lloY="},"flags/4x3/gb-825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803.svg":{"logical_path":"flags/4x3/gb.svg","mtime":"2020-04-05T17:14:06+02:00","size":538,"digest":"825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803","integrity":"sha256-glMQ+bzIiSVZMXv8h/wo1de60GwC1WK1dAqvz0sECAM="},"flags/1x1/gb-6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0.svg":{"logical_path":"flags/1x1/gb.svg","mtime":"2020-04-05T17:14:06+02:00","size":541,"digest":"6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0","integrity":"sha256-bObrsMFvH0qnSnil2zgng1RdHKKPK2EztiKLTf8DQPA="},"flags/4x3/gd-eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249.svg":{"logical_path":"flags/4x3/gd.svg","mtime":"2020-04-05T17:14:06+02:00","size":1681,"digest":"eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249","integrity":"sha256-60NcV8JA/TAkAPHsuIfsY8ZytSQDK9DnxiYa5qLx4kk="},"flags/1x1/gd-407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d.svg":{"logical_path":"flags/1x1/gd.svg","mtime":"2020-04-05T17:14:06+02:00","size":1828,"digest":"407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d","integrity":"sha256-QH2sNDkKuLHtgPr6T37x/jIl0dksVAOoAmS0lWF35R0="},"flags/4x3/ge-3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c.svg":{"logical_path":"flags/4x3/ge.svg","mtime":"2020-04-05T17:14:06+02:00","size":1397,"digest":"3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c","integrity":"sha256-MFTU5h7C3jHgjOUcjhv/ZP4tTMOfO8azmIpeOqsyN5w="},"flags/1x1/ge-3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a.svg":{"logical_path":"flags/1x1/ge.svg","mtime":"2020-04-05T17:14:06+02:00","size":1541,"digest":"3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a","integrity":"sha256-P347cHWDgwghLRkcT/H/ORWkoMPhsUBCC8EJW+Fq7go="},"flags/4x3/gf-8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422.svg":{"logical_path":"flags/4x3/gf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422","integrity":"sha256-ix0Emr7B3B5uKCR9T2SfUUbowppLko+UyXdB2ha8xCI="},"flags/1x1/gf-7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f.svg":{"logical_path":"flags/1x1/gf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f","integrity":"sha256-fiXF/cSUYlzMg5DT+xzG2aQjNyx/MKbEArE4sRhA5Z8="},"flags/4x3/gg-7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3.svg":{"logical_path":"flags/4x3/gg.svg","mtime":"2020-04-05T17:14:06+02:00","size":595,"digest":"7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3","integrity":"sha256-elIbB+KmDpFKvxaiVT3XuPGNP/IezliyxBulJkwxF+M="},"flags/1x1/gg-e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf.svg":{"logical_path":"flags/1x1/gg.svg","mtime":"2020-04-05T17:14:06+02:00","size":625,"digest":"e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf","integrity":"sha256-4B1nBtswiZn95wzgMaZgFgwyNNnW57pFR/EJdeWh/88="},"flags/4x3/gh-120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016.svg":{"logical_path":"flags/4x3/gh.svg","mtime":"2020-04-05T17:14:06+02:00","size":281,"digest":"120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016","integrity":"sha256-EgVUpRm85cNA+Y+Mt7z5jqGFctOtE3gEtLDF2AalQBY="},"flags/1x1/gh-b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e.svg":{"logical_path":"flags/1x1/gh.svg","mtime":"2020-04-05T17:14:06+02:00","size":296,"digest":"b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e","integrity":"sha256-uXmTWwZbvvk8GmLK7fA644M8BV9he9wygk/RXFnUv24="},"flags/4x3/gi-c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14.svg":{"logical_path":"flags/4x3/gi.svg","mtime":"2020-04-05T17:14:06+02:00","size":2938,"digest":"c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14","integrity":"sha256-yE+yW7XI2bnMLXD2MKkn9OpPTL6yZ065e0udwtIlbBQ="},"flags/1x1/gi-7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21.svg":{"logical_path":"flags/1x1/gi.svg","mtime":"2020-04-05T17:14:06+02:00","size":2930,"digest":"7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21","integrity":"sha256-coO51qwntJf6/YZ7WA0PEv6nVRpCERUAh9lYFsIUPiE="},"flags/4x3/gl-1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288.svg":{"logical_path":"flags/4x3/gl.svg","mtime":"2020-04-05T17:14:06+02:00","size":223,"digest":"1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288","integrity":"sha256-EUm2s6kN1vT2rI3Urw3fyzPoAYWOSDXF+MbHNG3uMog="},"flags/1x1/gl-5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8.svg":{"logical_path":"flags/1x1/gl.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8","integrity":"sha256-Xm76zWMKfzahV0REqYk2E+XG0D1dVp4UC1kvjnVC/rg="},"flags/4x3/gm-6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c.svg":{"logical_path":"flags/4x3/gm.svg","mtime":"2020-04-05T17:14:06+02:00","size":546,"digest":"6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c","integrity":"sha256-bW2mmHpCQ7uf/4E4rZ4LMBCYxvljys7fmXhQ+2eewow="},"flags/1x1/gm-5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f.svg":{"logical_path":"flags/1x1/gm.svg","mtime":"2020-04-05T17:14:06+02:00","size":382,"digest":"5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f","integrity":"sha256-X4h0+KsJP4TDRlsxEO1ADNjrRXEQ+bYeaE7chn75my8="},"flags/4x3/gn-735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda.svg":{"logical_path":"flags/4x3/gn.svg","mtime":"2020-04-05T17:14:06+02:00","size":295,"digest":"735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda","integrity":"sha256-c1EJuiMzCtnoYCtuJ+ZYvRLjbyYWt+rWW9kI1VOyrNo="},"flags/1x1/gn-255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726.svg":{"logical_path":"flags/1x1/gn.svg","mtime":"2020-04-05T17:14:06+02:00","size":295,"digest":"255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726","integrity":"sha256-JV4sKTBUTiWCfyIOvCbG9TPSkQefNPKtZkRTPT371yY="},"flags/4x3/gp-b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2.svg":{"logical_path":"flags/4x3/gp.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2","integrity":"sha256-ucUJlB7JdSH9gZBNyBooRfqkQ0nMBoNE9Pc42telWLI="},"flags/1x1/gp-8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c.svg":{"logical_path":"flags/1x1/gp.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c","integrity":"sha256-i/XTH9uziLW+4Z0Z96fPHgwDeNV1nFpCVFSbJUJyeiw="},"flags/4x3/gq-52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da.svg":{"logical_path":"flags/4x3/gq.svg","mtime":"2020-04-05T17:14:06+02:00","size":5182,"digest":"52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da","integrity":"sha256-Urja6hg4PDVfH220KLzU6993dzQUjaRAPx6TeXtNydo="},"flags/1x1/gq-f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131.svg":{"logical_path":"flags/1x1/gq.svg","mtime":"2020-04-05T17:14:06+02:00","size":5273,"digest":"f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131","integrity":"sha256-9KRP0uM3z6UvGZcHtgaJGrC9O2i/rsoDPnDCdHOaYTE="},"flags/4x3/gr-d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205.svg":{"logical_path":"flags/4x3/gr.svg","mtime":"2020-04-05T17:14:06+02:00","size":1096,"digest":"d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205","integrity":"sha256-0iMw0q9DziLqt9jsnv2+J8zZrBJV870omqZx2wf9AgU="},"flags/1x1/gr-565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099.svg":{"logical_path":"flags/1x1/gr.svg","mtime":"2020-04-05T17:14:06+02:00","size":1085,"digest":"565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099","integrity":"sha256-Vl4Bf6qWbSDZpAUaGFPDZrvVnrqs7Xf+0y+FC4qcUJk="},"flags/4x3/gs-ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69.svg":{"logical_path":"flags/4x3/gs.svg","mtime":"2020-04-05T17:14:06+02:00","size":34568,"digest":"ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69","integrity":"sha256-rVk65Lnox6TBCaFThaIhRkJAzz935gevKtulPXt9Kmk="},"flags/1x1/gs-718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186.svg":{"logical_path":"flags/1x1/gs.svg","mtime":"2020-04-05T17:14:06+02:00","size":35061,"digest":"718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186","integrity":"sha256-cY4Oid7g8Tj+jkXoTGT3Ilm0HQ82IkubJQe853viEYY="},"flags/4x3/gt-aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5.svg":{"logical_path":"flags/4x3/gt.svg","mtime":"2020-04-05T17:14:06+02:00","size":37255,"digest":"aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5","integrity":"sha256-qhn1ir724LaPe+5zRS4mZ5pkDA/tEvn8LLbN4y/ATaU="},"flags/1x1/gt-66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0.svg":{"logical_path":"flags/1x1/gt.svg","mtime":"2020-04-05T17:14:06+02:00","size":37255,"digest":"66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0","integrity":"sha256-ZtKc3YZg1DgJAohMCNm+ZPPYoCU2hzgU8pCXeLbiNOA="},"flags/4x3/gu-6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d.svg":{"logical_path":"flags/4x3/gu.svg","mtime":"2020-04-05T17:14:06+02:00","size":4840,"digest":"6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d","integrity":"sha256-bTnsZI8DZrd5GPd5vvlhnQZWHSI7y5i1aBPcMuhAPS0="},"flags/1x1/gu-390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729.svg":{"logical_path":"flags/1x1/gu.svg","mtime":"2020-04-05T17:14:06+02:00","size":4614,"digest":"390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729","integrity":"sha256-OQy6+iLpuRMeO/NxCTFxFWhFGav4cIis+g81XGCLRyk="},"flags/4x3/gw-ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77.svg":{"logical_path":"flags/4x3/gw.svg","mtime":"2020-04-05T17:14:06+02:00","size":813,"digest":"ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77","integrity":"sha256-7yubCiilDMEmiftXbPTcW1B7AfuxWkmCmJIdelfw/Xc="},"flags/1x1/gw-14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de.svg":{"logical_path":"flags/1x1/gw.svg","mtime":"2020-04-05T17:14:06+02:00","size":889,"digest":"14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de","integrity":"sha256-FAeAANrxDMKbcWfD+bGyOas3CLO6016O8YXLkmQ/iN4="},"flags/4x3/gy-0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919.svg":{"logical_path":"flags/4x3/gy.svg","mtime":"2020-04-05T17:14:06+02:00","size":488,"digest":"0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919","integrity":"sha256-CxOhd4iHdo1ed2f15KSERE9M875lUUL9bV1ay5ReeRk="},"flags/1x1/gy-7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88.svg":{"logical_path":"flags/1x1/gy.svg","mtime":"2020-04-05T17:14:06+02:00","size":481,"digest":"7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88","integrity":"sha256-dWLtbbcBrwZYp2Oh1HAcEkZ82WLP0L/SYsrBbU/IDIg="},"flags/4x3/hk-17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1.svg":{"logical_path":"flags/4x3/hk.svg","mtime":"2020-04-05T17:14:06+02:00","size":3494,"digest":"17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1","integrity":"sha256-F8HGYUHxqgM5/vxYY4ZtZ+q8sXMr2n1ddXssuTfJPaE="},"flags/1x1/hk-9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927.svg":{"logical_path":"flags/1x1/hk.svg","mtime":"2020-04-05T17:14:06+02:00","size":3529,"digest":"9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927","integrity":"sha256-n1mz1oqUPtJcXgDLPRuX1SKVHYXbD2b+0IdBg1j4iSc="},"flags/4x3/hm-d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3.svg":{"logical_path":"flags/4x3/hm.svg","mtime":"2020-04-05T17:14:06+02:00","size":1324,"digest":"d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3","integrity":"sha256-0OVrggikUNwZtuHq+qgmxDmjGLMzFMUD66sF16nRS6M="},"flags/1x1/hm-78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6.svg":{"logical_path":"flags/1x1/hm.svg","mtime":"2020-04-05T17:14:06+02:00","size":1308,"digest":"78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6","integrity":"sha256-eO02xie5Nw4shzcib2IQVxjBiy8ExiYYFo5DrczMHKY="},"flags/4x3/hn-38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594.svg":{"logical_path":"flags/4x3/hn.svg","mtime":"2020-04-05T17:14:06+02:00","size":1112,"digest":"38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594","integrity":"sha256-OKUChgX2ZFqVxgfyTbbSfVuRVYC+Vho2XPudI4c2tZQ="},"flags/1x1/hn-79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641.svg":{"logical_path":"flags/1x1/hn.svg","mtime":"2020-04-05T17:14:06+02:00","size":1116,"digest":"79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641","integrity":"sha256-ecyXkB9TTCmY0exs1QaoG1nqvAoEDcZu5G74p0BeZkE="},"flags/4x3/hr-b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6.svg":{"logical_path":"flags/4x3/hr.svg","mtime":"2020-04-05T17:14:06+02:00","size":40615,"digest":"b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6","integrity":"sha256-sLHQdcZR4s6xD1WLM6E8ndiTEO375n3w9Gp7XY1VDeY="},"flags/1x1/hr-1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf.svg":{"logical_path":"flags/1x1/hr.svg","mtime":"2020-04-05T17:14:06+02:00","size":40852,"digest":"1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf","integrity":"sha256-EEE0engZLQ52iK963sPNk9hf0N16t5LcgP2CYpcIp78="},"flags/4x3/ht-ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911.svg":{"logical_path":"flags/4x3/ht.svg","mtime":"2020-04-05T17:14:06+02:00","size":15005,"digest":"ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911","integrity":"sha256-unfCPekE3qjd8jkPnjY/qWZ5JTtCW+fU2/ACHEoMmRE="},"flags/1x1/ht-092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b.svg":{"logical_path":"flags/1x1/ht.svg","mtime":"2020-04-05T17:14:06+02:00","size":15094,"digest":"092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b","integrity":"sha256-CS/GXXTPcKo1qN06VYH1u2aKunLd94jE/8IieL5O5ws="},"flags/4x3/hu-470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448.svg":{"logical_path":"flags/4x3/hu.svg","mtime":"2020-04-05T17:14:06+02:00","size":274,"digest":"470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448","integrity":"sha256-RwQx0e0NwgmfIDE/ePkGhIrK+e/OV8VD2Ds7Yvi3pEg="},"flags/1x1/hu-ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b.svg":{"logical_path":"flags/1x1/hu.svg","mtime":"2020-04-05T17:14:06+02:00","size":276,"digest":"ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b","integrity":"sha256-rCv0KE1zwMDWB/XsRoVbmC9W0u5DAwb8oE2jpc2oUVs="},"flags/4x3/id-c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd.svg":{"logical_path":"flags/4x3/id.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd","integrity":"sha256-yYcdkba1gxCDGg14uQTkTrkqZGMKwhmsQxZdDKjw2s0="},"flags/1x1/id-b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa.svg":{"logical_path":"flags/1x1/id.svg","mtime":"2020-04-05T17:14:06+02:00","size":239,"digest":"b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa","integrity":"sha256-tONDQkTCfJX2kz4Zpl/CczSPLtxraV3V3+gQ0S9UWao="},"flags/4x3/ie-4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191.svg":{"logical_path":"flags/4x3/ie.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191","integrity":"sha256-TXPu35ikxIfDUttYdR/3ZvBfaqO/rB7MD5OE5Q0BkZE="},"flags/1x1/ie-e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d.svg":{"logical_path":"flags/1x1/ie.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d","integrity":"sha256-6KISH1Gqjsy6q5/cHphkGPdbbjrfgTKbElHbOmZ4hR0="},"flags/4x3/il-1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a.svg":{"logical_path":"flags/4x3/il.svg","mtime":"2020-04-05T17:14:06+02:00","size":901,"digest":"1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a","integrity":"sha256-Hcw+MVz4sAuKmRTZzmlrBWEq7ClL+F54SyXGcrJZxYo="},"flags/1x1/il-343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a.svg":{"logical_path":"flags/1x1/il.svg","mtime":"2020-04-05T17:14:06+02:00","size":848,"digest":"343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a","integrity":"sha256-NDwEAzmnKs5RIIcA9A/mm/uQ47T1rWKx7WmsQERwcio="},"flags/4x3/im-5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7.svg":{"logical_path":"flags/4x3/im.svg","mtime":"2020-04-05T17:14:06+02:00","size":9870,"digest":"5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7","integrity":"sha256-WyVuvXWrH8TR569PQwa0xrVK5kpn6x2WioQGWgB7fNc="},"flags/1x1/im-6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba.svg":{"logical_path":"flags/1x1/im.svg","mtime":"2020-04-05T17:14:06+02:00","size":10197,"digest":"6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba","integrity":"sha256-bdkHjg15NLV1oAqiuB7/r6W4rtH6bD9oJNVhh8p6Y7o="},"flags/4x3/in-cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45.svg":{"logical_path":"flags/4x3/in.svg","mtime":"2020-04-05T17:14:06+02:00","size":1074,"digest":"cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45","integrity":"sha256-y8FfX7QN8irfKzeS62wdNZ4aev+0Qxilp3mUP8cpnUU="},"flags/1x1/in-dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b.svg":{"logical_path":"flags/1x1/in.svg","mtime":"2020-04-05T17:14:06+02:00","size":1088,"digest":"dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b","integrity":"sha256-3Wi4rEJfiw4aR5M35PtujGRyQfUELmO6TNmFPl47Zhs="},"flags/4x3/io-b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec.svg":{"logical_path":"flags/4x3/io.svg","mtime":"2020-04-05T17:14:06+02:00","size":27341,"digest":"b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec","integrity":"sha256-uUK933EKQuYXsvyruL374hC4XSrJpgtQY9UT7MZkjuw="},"flags/1x1/io-5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e.svg":{"logical_path":"flags/1x1/io.svg","mtime":"2020-04-05T17:14:06+02:00","size":27357,"digest":"5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e","integrity":"sha256-WxJIE78W/kyWtgZENSel8X9s3enwq/lNaIT1+BEYGY4="},"flags/4x3/iq-4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a.svg":{"logical_path":"flags/4x3/iq.svg","mtime":"2020-04-05T17:14:06+02:00","size":1470,"digest":"4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a","integrity":"sha256-SxOwFpDYcGJdYah7uvQyinFGJmmNBW3D9WqaN8Ez13o="},"flags/1x1/iq-4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c.svg":{"logical_path":"flags/1x1/iq.svg","mtime":"2020-04-05T17:14:06+02:00","size":1475,"digest":"4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c","integrity":"sha256-SlKedlpGqzzqW+dNZ1TWZGsXXMXaCnJRFOH80fh3c0w="},"flags/4x3/ir-2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23.svg":{"logical_path":"flags/4x3/ir.svg","mtime":"2020-04-05T17:14:06+02:00","size":15451,"digest":"2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23","integrity":"sha256-IEe5d/LX6INQNeMFUf6DM0A0UhNMMWQQXtMLLm/RSiM="},"flags/1x1/ir-18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6.svg":{"logical_path":"flags/1x1/ir.svg","mtime":"2020-04-05T17:14:06+02:00","size":15356,"digest":"18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6","integrity":"sha256-GLjw2pFOBSSQ5ify2+V6JKFEjoTP7erS0v+peVE1r8Y="},"flags/4x3/is-89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e.svg":{"logical_path":"flags/4x3/is.svg","mtime":"2020-04-05T17:14:06+02:00","size":524,"digest":"89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e","integrity":"sha256-ibJm48WCT6vJG40EqDCj8yxiSEtJVDvDkh4UxXumy34="},"flags/1x1/is-74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3.svg":{"logical_path":"flags/1x1/is.svg","mtime":"2020-04-05T17:14:06+02:00","size":526,"digest":"74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3","integrity":"sha256-dLv50PFxQRDaa6Q4Fj/33hNd2R0yshcnV6lDrHvDVaM="},"flags/4x3/it-2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598.svg":{"logical_path":"flags/4x3/it.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598","integrity":"sha256-LUb9f94/GcPyeP6QKOb6tvqZf73aPhgRb7cOV8/HhZg="},"flags/1x1/it-28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2.svg":{"logical_path":"flags/1x1/it.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2","integrity":"sha256-KKQzmx3FnE53b2vwf1ERfen63gqKdJSS5Hh2S4vYwvI="},"flags/4x3/je-365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a.svg":{"logical_path":"flags/4x3/je.svg","mtime":"2020-04-05T17:14:06+02:00","size":4700,"digest":"365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a","integrity":"sha256-Nl8PnepIBPf5qcoFK+sbObwIEc1dR9ATCUQY1bbFPRo="},"flags/1x1/je-0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6.svg":{"logical_path":"flags/1x1/je.svg","mtime":"2020-04-05T17:14:06+02:00","size":4675,"digest":"0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6","integrity":"sha256-DNxR7CkQFmnTM9S5G2HYfz0wJHPMgb0X/4DMvtbH4PY="},"flags/4x3/jm-fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594.svg":{"logical_path":"flags/4x3/jm.svg","mtime":"2020-04-05T17:14:06+02:00","size":389,"digest":"fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594","integrity":"sha256-/HxdkLRPpboWDGRPbH+JGPVGClhCpRfj/ZnqlLqWNZQ="},"flags/1x1/jm-1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416.svg":{"logical_path":"flags/1x1/jm.svg","mtime":"2020-04-05T17:14:06+02:00","size":389,"digest":"1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416","integrity":"sha256-G4Cw0flAqUlFM1qiaD4BlYkMNfW64kozIcd1LFzfhBY="},"flags/4x3/jo-c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27.svg":{"logical_path":"flags/4x3/jo.svg","mtime":"2020-04-05T17:14:06+02:00","size":720,"digest":"c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27","integrity":"sha256-wxCfn4SfWBkYpFZ3aL0zRQbLUXv4o+06/I5nCuQ0ryc="},"flags/1x1/jo-e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118.svg":{"logical_path":"flags/1x1/jo.svg","mtime":"2020-04-05T17:14:06+02:00","size":691,"digest":"e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118","integrity":"sha256-4YOpqlANe771jfR01LGgVU5MaOGHyYA6aCcsu+zUURg="},"flags/4x3/jp-e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606.svg":{"logical_path":"flags/4x3/jp.svg","mtime":"2020-04-05T17:14:06+02:00","size":474,"digest":"e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606","integrity":"sha256-51ncy6W8ODgUqxkNq6DRLvWRrZ8WFQKkciLC6s93BgY="},"flags/1x1/jp-0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5.svg":{"logical_path":"flags/1x1/jp.svg","mtime":"2020-04-05T17:14:06+02:00","size":484,"digest":"0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5","integrity":"sha256-BXPQIDJaB5Xr8rg7bWBOzOFk78XG4WxvtKSPEk0pAtU="},"flags/4x3/ke-c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8.svg":{"logical_path":"flags/4x3/ke.svg","mtime":"2020-04-05T17:14:06+02:00","size":1379,"digest":"c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8","integrity":"sha256-xjkL0d6tIidjvnyT4Qzo1IzlUNIIPQC5B1BNAfO+jag="},"flags/1x1/ke-3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f.svg":{"logical_path":"flags/1x1/ke.svg","mtime":"2020-04-05T17:14:06+02:00","size":1485,"digest":"3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f","integrity":"sha256-PMb7d4259BXVDlZRBpcZx77Ny3zKU4aFhqKH4CTibY8="},"flags/4x3/kg-618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721.svg":{"logical_path":"flags/4x3/kg.svg","mtime":"2020-04-05T17:14:06+02:00","size":3374,"digest":"618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721","integrity":"sha256-YYQy8HATce9yYKEf3iSBeeSTYPGs0aD9B8TvzRU/RyE="},"flags/1x1/kg-059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35.svg":{"logical_path":"flags/1x1/kg.svg","mtime":"2020-04-05T17:14:06+02:00","size":3316,"digest":"059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35","integrity":"sha256-BZ7pRIsG4A7uR8qKBZ5ghhjdzX4vu5SRSe4L1Gg23TU="},"flags/4x3/kh-ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6.svg":{"logical_path":"flags/4x3/kh.svg","mtime":"2020-04-05T17:14:06+02:00","size":7261,"digest":"ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6","integrity":"sha256-7B4JhNFn6Ma/oCbP3dYEjGTps2NKmcmiDbGU8o8QsaY="},"flags/1x1/kh-16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3.svg":{"logical_path":"flags/1x1/kh.svg","mtime":"2020-04-05T17:14:06+02:00","size":7262,"digest":"16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3","integrity":"sha256-FsCXzCizCLktZeStPAJRYCVqNoOLrlOMCxNX8ER4jaM="},"flags/4x3/ki-591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d.svg":{"logical_path":"flags/4x3/ki.svg","mtime":"2020-04-05T17:14:06+02:00","size":5813,"digest":"591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d","integrity":"sha256-WRqH3nu+txFmP23KrZPiaRCMpqucy8tlPoTJd56dPi0="},"flags/1x1/ki-210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315.svg":{"logical_path":"flags/1x1/ki.svg","mtime":"2020-04-05T17:14:06+02:00","size":5941,"digest":"210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315","integrity":"sha256-IQU3zCdmEU9y+fg4xdwTihjD9J54V197HWmYcwYbAxU="},"flags/4x3/km-f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f.svg":{"logical_path":"flags/4x3/km.svg","mtime":"2020-04-05T17:14:06+02:00","size":1064,"digest":"f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f","integrity":"sha256-9s0+rZJWYXOZRjedEiQg39Aoe2My4l7O/F6Kl63v2w8="},"flags/1x1/km-a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19.svg":{"logical_path":"flags/1x1/km.svg","mtime":"2020-04-05T17:14:06+02:00","size":1037,"digest":"a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19","integrity":"sha256-pqRnMpA26ZY7esoYbnS1r/1hVmOtmAKAemTASqeaXxk="},"flags/4x3/kn-d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924.svg":{"logical_path":"flags/4x3/kn.svg","mtime":"2020-04-05T17:14:06+02:00","size":819,"digest":"d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924","integrity":"sha256-0PAQ2j/DXhubUg6MBj6vmmUMFqDdZQeSjL8BOgRQiSQ="},"flags/1x1/kn-ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363.svg":{"logical_path":"flags/1x1/kn.svg","mtime":"2020-04-05T17:14:06+02:00","size":817,"digest":"ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363","integrity":"sha256-rkq7oUAtYNJfOAyKp90IHn78E0lzOzb/vH5huVG1Q2M="},"flags/4x3/kp-8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79.svg":{"logical_path":"flags/4x3/kp.svg","mtime":"2020-04-05T17:14:06+02:00","size":795,"digest":"8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79","integrity":"sha256-jTSj/X00xTzgGFTiseaccf1rDGXdobiqkPKTWlUbj3k="},"flags/1x1/kp-d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc.svg":{"logical_path":"flags/1x1/kp.svg","mtime":"2020-04-05T17:14:06+02:00","size":852,"digest":"d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc","integrity":"sha256-0MtECDEYG+NtfqYPWt/1ux2ufYqwZzipIKuZStQmUsw="},"flags/4x3/kr-3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a.svg":{"logical_path":"flags/4x3/kr.svg","mtime":"2020-04-05T17:14:06+02:00","size":1822,"digest":"3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a","integrity":"sha256-MWLGfgFwTQb9d9eP7+tZN/7l9O4ybTadoTpbJbddsWo="},"flags/1x1/kr-3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76.svg":{"logical_path":"flags/1x1/kr.svg","mtime":"2020-04-05T17:14:06+02:00","size":1719,"digest":"3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76","integrity":"sha256-P3L1sceIrCvC1+NoDyX1VpLf9mHg3DgZu3jNcR8VLXY="},"flags/4x3/kw-ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71.svg":{"logical_path":"flags/4x3/kw.svg","mtime":"2020-04-05T17:14:06+02:00","size":509,"digest":"ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71","integrity":"sha256-rFOObLr8CpRhG7nGU98wVs+jMD+v8UMwiqVoAXjjT3E="},"flags/1x1/kw-c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e.svg":{"logical_path":"flags/1x1/kw.svg","mtime":"2020-04-05T17:14:06+02:00","size":507,"digest":"c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e","integrity":"sha256-yHTDNNyonLOUs1NOsute1AgpPTIFLpF5/HWDIZG1dZ4="},"flags/4x3/ky-fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef.svg":{"logical_path":"flags/4x3/ky.svg","mtime":"2020-04-05T17:14:06+02:00","size":21724,"digest":"fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef","integrity":"sha256-/Oz/sBqJDwFGTmBn5VkwmbmRl0ZEPRbGnH4iPhO+UO8="},"flags/1x1/ky-707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f.svg":{"logical_path":"flags/1x1/ky.svg","mtime":"2020-04-05T17:14:06+02:00","size":22357,"digest":"707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f","integrity":"sha256-cH0BnndxS43uIHS70XqqwVfS3gmRqNTIRyoDhAPFRx8="},"flags/4x3/kz-8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a.svg":{"logical_path":"flags/4x3/kz.svg","mtime":"2020-04-05T17:14:06+02:00","size":11327,"digest":"8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a","integrity":"sha256-ghQoO5nleBOWmW/f2ExVHqesFaJIRlzLuTWLEzc9gCo="},"flags/1x1/kz-af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49.svg":{"logical_path":"flags/1x1/kz.svg","mtime":"2020-04-05T17:14:06+02:00","size":11415,"digest":"af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49","integrity":"sha256-r0SW0lijbEHOktdxPHIG4ukqxgN8bc2saHuoFedKT0k="},"flags/4x3/la-1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409.svg":{"logical_path":"flags/4x3/la.svg","mtime":"2020-04-05T17:14:06+02:00","size":457,"digest":"1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409","integrity":"sha256-H3C/OAVUL/863bqeIUjVQcswsSXGkqjH4IaM9MfepAk="},"flags/1x1/la-dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d.svg":{"logical_path":"flags/1x1/la.svg","mtime":"2020-04-05T17:14:06+02:00","size":501,"digest":"dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d","integrity":"sha256-2v06AhKrQ8AjI71btvsbQ3ipbgXNNSw1T29IY6P0P20="},"flags/4x3/lb-80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e.svg":{"logical_path":"flags/4x3/lb.svg","mtime":"2020-04-05T17:14:06+02:00","size":2816,"digest":"80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e","integrity":"sha256-gKKqprStTkStGXzNt977pYr2/wqwaSgXgE3hL/WUvI4="},"flags/1x1/lb-5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373.svg":{"logical_path":"flags/1x1/lb.svg","mtime":"2020-04-05T17:14:06+02:00","size":2747,"digest":"5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373","integrity":"sha256-XaMmPzfQ50CpQoOCT18K1sPO7W8S2+EI/ODd12BBg3M="},"flags/4x3/lc-6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e.svg":{"logical_path":"flags/4x3/lc.svg","mtime":"2020-04-05T17:14:06+02:00","size":370,"digest":"6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e","integrity":"sha256-bxhliVbm2lxb9GgYG0ZaM8MwRRNN+zJ9Nam26mxW0j4="},"flags/1x1/lc-c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38.svg":{"logical_path":"flags/1x1/lc.svg","mtime":"2020-04-05T17:14:06+02:00","size":370,"digest":"c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38","integrity":"sha256-xK/hc0KniU9dx+7VZxbpFJN4VhoSwrvYjUwL90AIfDg="},"flags/4x3/li-c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb.svg":{"logical_path":"flags/4x3/li.svg","mtime":"2020-04-05T17:14:06+02:00","size":8268,"digest":"c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb","integrity":"sha256-yX+Q3l7gnVWU+dMVTn6uAVio+SLjlMOtJFAqknTdaPs="},"flags/1x1/li-956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5.svg":{"logical_path":"flags/1x1/li.svg","mtime":"2020-04-05T17:14:06+02:00","size":8291,"digest":"956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5","integrity":"sha256-lWrVB3ICGXgGn95SoI8ltv4xCwAZzKvorNJ0CZ+yGtU="},"flags/4x3/lk-599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e.svg":{"logical_path":"flags/4x3/lk.svg","mtime":"2020-04-05T17:14:06+02:00","size":11242,"digest":"599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e","integrity":"sha256-WZ3lKxRQRg8IOsBlTrToM8BrgJkDx84Ry+ICAF4/CA4="},"flags/1x1/lk-379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d.svg":{"logical_path":"flags/1x1/lk.svg","mtime":"2020-04-05T17:14:06+02:00","size":11254,"digest":"379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d","integrity":"sha256-N51i0iltMNSEocBGlYLTqVc2KEvNvFjp1ry09kiDbR0="},"flags/4x3/lr-66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7.svg":{"logical_path":"flags/4x3/lr.svg","mtime":"2020-04-05T17:14:06+02:00","size":727,"digest":"66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7","integrity":"sha256-ZsAIwtWOK1B3KtlaMIAam2JWbV86yOweoa1Bqq3A9Mc="},"flags/1x1/lr-371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6.svg":{"logical_path":"flags/1x1/lr.svg","mtime":"2020-04-05T17:14:06+02:00","size":694,"digest":"371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6","integrity":"sha256-Nx9UKlj+fko8Z9yS+SAJdXM3ukKKNor04HekzMrGUuY="},"flags/4x3/ls-285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4.svg":{"logical_path":"flags/4x3/ls.svg","mtime":"2020-04-05T17:14:06+02:00","size":1219,"digest":"285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4","integrity":"sha256-KFU0RWwazVI9I+CSIHmfr4USGMGy2AFbC7VXkQyhueQ="},"flags/1x1/ls-80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa.svg":{"logical_path":"flags/1x1/ls.svg","mtime":"2020-04-05T17:14:06+02:00","size":1242,"digest":"80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa","integrity":"sha256-gK2AXjS1cddYYE4rG3Nf4sDzjcFZPBHH2amH6J+Pxqo="},"flags/4x3/lt-9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c.svg":{"logical_path":"flags/4x3/lt.svg","mtime":"2020-04-05T17:14:06+02:00","size":442,"digest":"9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c","integrity":"sha256-kBJpHLFomUT9CBOzO3pY+5eSGUTsiYjyNZD+0hof8Hw="},"flags/1x1/lt-74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08.svg":{"logical_path":"flags/1x1/lt.svg","mtime":"2020-04-05T17:14:06+02:00","size":442,"digest":"74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08","integrity":"sha256-dPQjxiENfcdoZ7H2INDRVkTbXDm55Bl4Ba0gUE0nHwg="},"flags/4x3/lu-4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a.svg":{"logical_path":"flags/4x3/lu.svg","mtime":"2020-04-05T17:14:06+02:00","size":228,"digest":"4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a","integrity":"sha256-RiJiTWmKlXej+5K9T6X5jzBdcEvFEwa4bRCcbIZdBpo="},"flags/1x1/lu-67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e.svg":{"logical_path":"flags/1x1/lu.svg","mtime":"2020-04-05T17:14:06+02:00","size":232,"digest":"67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e","integrity":"sha256-Z86yX7ofxqLDg2zvQDP613dS2wi8vIj6diKyKl9q2i4="},"flags/4x3/lv-dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7.svg":{"logical_path":"flags/4x3/lv.svg","mtime":"2020-04-05T17:14:06+02:00","size":233,"digest":"dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7","integrity":"sha256-3GdSahgz0s18UNh/DaJS4forNh19QYcVU106pj5adrc="},"flags/1x1/lv-23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308.svg":{"logical_path":"flags/1x1/lv.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308","integrity":"sha256-I+JYnIo3Ts+VV3LgGktqcwITM0ZzcnnqweghS2i7Awg="},"flags/4x3/ly-3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470.svg":{"logical_path":"flags/4x3/ly.svg","mtime":"2020-04-05T17:14:06+02:00","size":533,"digest":"3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470","integrity":"sha256-OtA4fP4RlC4fVRFNSeYIMYWv3jUo0rBYhRYL3QQ/9HA="},"flags/1x1/ly-5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d.svg":{"logical_path":"flags/1x1/ly.svg","mtime":"2020-04-05T17:14:06+02:00","size":526,"digest":"5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d","integrity":"sha256-UTnnUZt8gz38pkXi50JFF0iZJ8ufrMbw3/PYC3LR5Z0="},"flags/4x3/ma-f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6.svg":{"logical_path":"flags/4x3/ma.svg","mtime":"2020-04-05T17:14:06+02:00","size":250,"digest":"f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6","integrity":"sha256-9Ap515yIwbuSfsDkDF0ET4OPCixI2CCz6ESekqcdAtY="},"flags/1x1/ma-3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302.svg":{"logical_path":"flags/1x1/ma.svg","mtime":"2020-04-05T17:14:06+02:00","size":250,"digest":"3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302","integrity":"sha256-MZD6F5RLE2uieIDjVM84Wh1/avB2hZ/Y46JbMOre0wI="},"flags/4x3/mc-65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec.svg":{"logical_path":"flags/4x3/mc.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec","integrity":"sha256-ZcMP7Ts63ikqNmyjzqYVWWLpShOUT9Yuc3Bqf4ciU+w="},"flags/1x1/mc-83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad.svg":{"logical_path":"flags/1x1/mc.svg","mtime":"2020-04-05T17:14:06+02:00","size":237,"digest":"83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad","integrity":"sha256-g/nU/5JRO/4i9Vxd8x5gDHeJNmC5s8AA760p6k9sMq0="},"flags/4x3/md-92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440.svg":{"logical_path":"flags/4x3/md.svg","mtime":"2020-04-05T17:14:06+02:00","size":11237,"digest":"92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440","integrity":"sha256-kkdacEVRXrsRwhJ6iWAQk0pWmn0WrcSnAtQa30Vl1EA="},"flags/1x1/md-af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f.svg":{"logical_path":"flags/1x1/md.svg","mtime":"2020-04-05T17:14:06+02:00","size":11337,"digest":"af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f","integrity":"sha256-rzY7FkXaUYAU+BpWcEGbcK3G/Amxwy3vUxRcJtX8JW8="},"flags/4x3/me-29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895.svg":{"logical_path":"flags/4x3/me.svg","mtime":"2020-04-05T17:14:06+02:00","size":62373,"digest":"29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895","integrity":"sha256-KQUjZ3Vtp2ud3MOnGhfcFcw5p9OHyzgfxdqtWIDNGJU="},"flags/1x1/me-551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367.svg":{"logical_path":"flags/1x1/me.svg","mtime":"2020-04-05T17:14:06+02:00","size":63354,"digest":"551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367","integrity":"sha256-VR5THq6fYBzhbyBCF7DepUOWyOaJ3SeSZn4cT90jk2c="},"flags/4x3/mf-a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5.svg":{"logical_path":"flags/4x3/mf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5","integrity":"sha256-oHwp1o1VyMYUJl4b/B7BeQc+mD+dMKGjYTENaNLjD6U="},"flags/1x1/mf-bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e.svg":{"logical_path":"flags/1x1/mf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e","integrity":"sha256-v1mim5XAM+IfxYww9DadtdAxKVQ4mrRsDj0UsX29i04="},"flags/4x3/mg-9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586.svg":{"logical_path":"flags/4x3/mg.svg","mtime":"2020-04-05T17:14:06+02:00","size":302,"digest":"9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586","integrity":"sha256-nh7O6BarjvZEHmu1ptFMQjjwdPy8J4pP+mFogJZp5YY="},"flags/1x1/mg-e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56.svg":{"logical_path":"flags/1x1/mg.svg","mtime":"2020-04-05T17:14:06+02:00","size":302,"digest":"e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56","integrity":"sha256-6HE1pHsXd4eHHI56NB/jtPiYQ9MwJa/9FsLPibz6rFY="},"flags/4x3/mh-4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7.svg":{"logical_path":"flags/4x3/mh.svg","mtime":"2020-04-05T17:14:06+02:00","size":741,"digest":"4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7","integrity":"sha256-R4X9ZBj5NqJwJ3Pj4THyggZ9o9jUBsTDHQ0by/xjivc="},"flags/1x1/mh-ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa.svg":{"logical_path":"flags/1x1/mh.svg","mtime":"2020-04-05T17:14:06+02:00","size":763,"digest":"ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa","integrity":"sha256-q29VEwq/yh6FpoGPdOoPJi6TJ/uZ91hoquK9K4Ou9qo="},"flags/4x3/mk-3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c.svg":{"logical_path":"flags/4x3/mk.svg","mtime":"2020-04-05T17:14:06+02:00","size":382,"digest":"3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c","integrity":"sha256-PHA1CGozskQYi/w60FDrEAqrdx3+Od2CxhmubNEDr0w="},"flags/1x1/mk-ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d.svg":{"logical_path":"flags/1x1/mk.svg","mtime":"2020-04-05T17:14:06+02:00","size":410,"digest":"ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d","integrity":"sha256-681x1p4frTLArL0cmIeUUGmx916lLvhX4uJuiSen2Y0="},"flags/4x3/ml-e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca.svg":{"logical_path":"flags/4x3/ml.svg","mtime":"2020-04-05T17:14:06+02:00","size":276,"digest":"e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca","integrity":"sha256-6DJlia2V1jsoVjZ9sLY0NHnrWR0Ra8fnosFefUIujco="},"flags/1x1/ml-0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a.svg":{"logical_path":"flags/1x1/ml.svg","mtime":"2020-04-05T17:14:06+02:00","size":279,"digest":"0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a","integrity":"sha256-D5kPrGoyRnba2QrNH45c+OZgvWL5eO5ErO3vrMwia3o="},"flags/4x3/mm-f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1.svg":{"logical_path":"flags/4x3/mm.svg","mtime":"2020-04-05T17:14:06+02:00","size":848,"digest":"f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1","integrity":"sha256-9+9KNM+Y2W9VfQpwIPF4FUtzASm+TCtfhCW4JWZYdcE="},"flags/1x1/mm-f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b.svg":{"logical_path":"flags/1x1/mm.svg","mtime":"2020-04-05T17:14:06+02:00","size":865,"digest":"f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b","integrity":"sha256-9N+eSzpN+NnuRkUEofiM3A6gjZkjyMezCZ7I6rv0JYs="},"flags/4x3/mn-00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3.svg":{"logical_path":"flags/4x3/mn.svg","mtime":"2020-04-05T17:14:06+02:00","size":1245,"digest":"00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3","integrity":"sha256-AGSctWutB/jTRHLogfvjcKRoeUFvy6jfxlX27u0AVqM="},"flags/1x1/mn-ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7.svg":{"logical_path":"flags/1x1/mn.svg","mtime":"2020-04-05T17:14:06+02:00","size":1251,"digest":"ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7","integrity":"sha256-/16mgdZuGoj/hYTfx/sg6O0oKyGL+cwGUYsd+Q8/mcc="},"flags/4x3/mo-62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e.svg":{"logical_path":"flags/4x3/mo.svg","mtime":"2020-04-05T17:14:06+02:00","size":1461,"digest":"62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e","integrity":"sha256-YmEBMSATEtQmgZdVbilSky7kzeIs6HZmhyLMMyuDmJ4="},"flags/1x1/mo-8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a.svg":{"logical_path":"flags/1x1/mo.svg","mtime":"2020-04-05T17:14:06+02:00","size":1495,"digest":"8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a","integrity":"sha256-jqrTfRDG22A1sNSnTDMBVTnyx4zWVeDOThqksE8842o="},"flags/4x3/mp-2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef.svg":{"logical_path":"flags/4x3/mp.svg","mtime":"2020-04-05T17:14:06+02:00","size":23398,"digest":"2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef","integrity":"sha256-Lkr3g77G9HT8AydafcBIoUbSitPaYV1l5uttkwwAVO8="},"flags/1x1/mp-9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563.svg":{"logical_path":"flags/1x1/mp.svg","mtime":"2020-04-05T17:14:06+02:00","size":23628,"digest":"9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563","integrity":"sha256-m4kxbeCoA/Ybik6EJIPbN0NsyeU5Edbi9ZtT36Qi1WM="},"flags/4x3/mq-297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9.svg":{"logical_path":"flags/4x3/mq.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9","integrity":"sha256-KX0mil6Wf300yRqkUT+G7Gey78723ylKeEalVNc/Itk="},"flags/1x1/mq-0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093.svg":{"logical_path":"flags/1x1/mq.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093","integrity":"sha256-DkZvbWBKETSvqo/M7ZOEW9F74E3r/TAtcJZKgGUy8JM="},"flags/4x3/mr-e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe.svg":{"logical_path":"flags/4x3/mr.svg","mtime":"2020-04-05T17:14:06+02:00","size":442,"digest":"e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe","integrity":"sha256-5BkIud5Y/pR56aLipbwAdMoQE8wkfysUEFaOi6vk6/4="},"flags/1x1/mr-fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799.svg":{"logical_path":"flags/1x1/mr.svg","mtime":"2020-04-05T17:14:06+02:00","size":431,"digest":"fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799","integrity":"sha256-+gJmBA9/qZI2wQ42vSOtkqVY/dedJQojB2czriqt55k="},"flags/4x3/ms-c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262.svg":{"logical_path":"flags/4x3/ms.svg","mtime":"2020-04-05T17:14:06+02:00","size":9279,"digest":"c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262","integrity":"sha256-wsDf7qSh9G37UQr8ipfpnMWpHYmFHpfk7dSPENEOsmI="},"flags/1x1/ms-c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43.svg":{"logical_path":"flags/1x1/ms.svg","mtime":"2020-04-05T17:14:06+02:00","size":12140,"digest":"c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43","integrity":"sha256-wboncREYE1sNaUFRo345fnGuGUcM0vt7shzLgXj0vkM="},"flags/4x3/mt-fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d.svg":{"logical_path":"flags/4x3/mt.svg","mtime":"2020-04-05T17:14:06+02:00","size":8733,"digest":"fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d","integrity":"sha256-/Wpsv5WOfTuIBw3taHFrK4W8EwrPaOOwu6sFNh26tH0="},"flags/1x1/mt-b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100.svg":{"logical_path":"flags/1x1/mt.svg","mtime":"2020-04-05T17:14:06+02:00","size":10422,"digest":"b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100","integrity":"sha256-uEG4zTxWiwY4q3/RLo3PJPCfG2u/eUKijFIhKsRl0QA="},"flags/4x3/mu-e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6.svg":{"logical_path":"flags/4x3/mu.svg","mtime":"2020-04-05T17:14:06+02:00","size":319,"digest":"e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6","integrity":"sha256-485n5pf7azOjlyY3lXR1Lu9XsSHW9g0WDmvH1+2PWuY="},"flags/1x1/mu-9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb.svg":{"logical_path":"flags/1x1/mu.svg","mtime":"2020-04-05T17:14:06+02:00","size":319,"digest":"9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb","integrity":"sha256-nk4Zpnisi4TrFHQL6Uin3qA1tcBiNjm6bgbiQjWaobs="},"flags/4x3/mv-0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d.svg":{"logical_path":"flags/4x3/mv.svg","mtime":"2020-04-05T17:14:06+02:00","size":289,"digest":"0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d","integrity":"sha256-D5uG77f41m0oIj/1kiMoEs/S0lZ9uD75a/eD6jFU640="},"flags/1x1/mv-57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da.svg":{"logical_path":"flags/1x1/mv.svg","mtime":"2020-04-05T17:14:06+02:00","size":307,"digest":"57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da","integrity":"sha256-VzIzkM3XmyjmWLYIkwRGkBJTbFcQF4cCBwHtkVGISNo="},"flags/4x3/mw-c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b.svg":{"logical_path":"flags/4x3/mw.svg","mtime":"2020-04-05T17:14:06+02:00","size":3652,"digest":"c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b","integrity":"sha256-wsk+FoUn7IvaJ5mFQ3DfrK/LSR851gg5ANkDJEwAzEs="},"flags/1x1/mw-5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0.svg":{"logical_path":"flags/1x1/mw.svg","mtime":"2020-04-05T17:14:06+02:00","size":3797,"digest":"5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0","integrity":"sha256-W6rRVZXc2MCCLiu5WB79AnrCPOEO+kIC87X1ZoGQgKA="},"flags/4x3/mx-8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7.svg":{"logical_path":"flags/4x3/mx.svg","mtime":"2020-04-05T17:14:06+02:00","size":94979,"digest":"8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7","integrity":"sha256-glhQMEOgo7b8aO8a8AJe8N6F+kgvt36LoiDDzWp6hqc="},"flags/1x1/mx-b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e.svg":{"logical_path":"flags/1x1/mx.svg","mtime":"2020-04-05T17:14:06+02:00","size":90505,"digest":"b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e","integrity":"sha256-tntonABFy06KTVpDmtu/TEccwJDL63unsq7Q7qvb7z4="},"flags/4x3/my-c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c.svg":{"logical_path":"flags/4x3/my.svg","mtime":"2020-04-05T17:14:06+02:00","size":1270,"digest":"c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c","integrity":"sha256-yZI0CoyChPyjP7y8soes5ow1WgYDxHHZsJogerT3OQw="},"flags/1x1/my-cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd.svg":{"logical_path":"flags/1x1/my.svg","mtime":"2020-04-05T17:14:06+02:00","size":1262,"digest":"cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd","integrity":"sha256-yxCpJQgyTJ3iZBt0ynoMSHJUjch0+8vp911qpG7NKL0="},"flags/4x3/mz-db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1.svg":{"logical_path":"flags/4x3/mz.svg","mtime":"2020-04-05T17:14:06+02:00","size":2622,"digest":"db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1","integrity":"sha256-22MQ7WgXlJHX2a0D0TPNis4P113QYk8/nxyFbreZ/bE="},"flags/1x1/mz-cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473.svg":{"logical_path":"flags/1x1/mz.svg","mtime":"2020-04-05T17:14:06+02:00","size":2597,"digest":"cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473","integrity":"sha256-y8V0Hny0oiEtwxF3K1VojE6eLS8R0eLDxC3U8qFGRHM="},"flags/4x3/na-7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213.svg":{"logical_path":"flags/4x3/na.svg","mtime":"2020-04-05T17:14:06+02:00","size":1005,"digest":"7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213","integrity":"sha256-fHNIWCnGruX7LmeHB4g66Z3m3cUPQ5MCX9re3XiUQhM="},"flags/1x1/na-37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20.svg":{"logical_path":"flags/1x1/na.svg","mtime":"2020-04-05T17:14:06+02:00","size":977,"digest":"37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20","integrity":"sha256-N9jInx9+Xi3Xp+IhGv1UKpVlUzmVUA5WhseRpun1HSA="},"flags/4x3/nc-b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475.svg":{"logical_path":"flags/4x3/nc.svg","mtime":"2020-04-05T17:14:06+02:00","size":1380,"digest":"b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475","integrity":"sha256-sMCV01nljeRamExNOqc8VELnbCuIN65JH1MoTeGhVHU="},"flags/1x1/nc-d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656.svg":{"logical_path":"flags/1x1/nc.svg","mtime":"2020-04-05T17:14:06+02:00","size":1387,"digest":"d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656","integrity":"sha256-16ByI7iwQKiOpqEWYrlHrdYuQ4qZNyFJTfiJUaqd9lY="},"flags/4x3/ne-54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900.svg":{"logical_path":"flags/4x3/ne.svg","mtime":"2020-04-05T17:14:06+02:00","size":276,"digest":"54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900","integrity":"sha256-VNcHbe8md2bY5J2CLWubd06Cv+CpEmmwlRFI9aGeSQA="},"flags/1x1/ne-bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3.svg":{"logical_path":"flags/1x1/ne.svg","mtime":"2020-04-05T17:14:06+02:00","size":282,"digest":"bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3","integrity":"sha256-vuCIxCtM4Tpdw0ZCTzVKU6eNt9uOqgZL9TS3EVMvGcM="},"flags/4x3/nf-f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c.svg":{"logical_path":"flags/4x3/nf.svg","mtime":"2020-04-05T17:14:06+02:00","size":5837,"digest":"f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c","integrity":"sha256-8OC5byWGrWazZ/5kkLSN+K7qDBAL9ReM0f+8A1cf6Vw="},"flags/1x1/nf-4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d.svg":{"logical_path":"flags/1x1/nf.svg","mtime":"2020-04-05T17:14:06+02:00","size":5591,"digest":"4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d","integrity":"sha256-SIDX2yZrQhm/SHj6Q1+QIcAthscwnWVxxcxqDrqBd30="},"flags/4x3/ng-f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33.svg":{"logical_path":"flags/4x3/ng.svg","mtime":"2020-04-05T17:14:06+02:00","size":260,"digest":"f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33","integrity":"sha256-8coCtNIDT1Olt2hnSIPatLIYUtwq45stArwoE4TZXjM="},"flags/1x1/ng-8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a.svg":{"logical_path":"flags/1x1/ng.svg","mtime":"2020-04-05T17:14:06+02:00","size":260,"digest":"8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a","integrity":"sha256-izShK0txFutuzHl0TgsCRMrN6l6iAJQFIgQvoSlTCXo="},"flags/4x3/ni-a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb.svg":{"logical_path":"flags/4x3/ni.svg","mtime":"2020-04-05T17:14:06+02:00","size":18408,"digest":"a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb","integrity":"sha256-psjX96dLk6TEJYnJUc436j4HPa+C8kGO+mpf8ewtI/s="},"flags/1x1/ni-a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504.svg":{"logical_path":"flags/1x1/ni.svg","mtime":"2020-04-05T17:14:06+02:00","size":18463,"digest":"a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504","integrity":"sha256-qerUsHXhg84Tn5wmJW3SqNCD1NEm2F84SNjprIhKtQQ="},"flags/4x3/nl-a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51.svg":{"logical_path":"flags/4x3/nl.svg","mtime":"2020-04-05T17:14:06+02:00","size":224,"digest":"a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51","integrity":"sha256-qRF0o8zNXsZtosxo4Mv4aj6nPSl23DA8chCRmLJQS1E="},"flags/1x1/nl-426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2.svg":{"logical_path":"flags/1x1/nl.svg","mtime":"2020-04-05T17:14:06+02:00","size":228,"digest":"426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2","integrity":"sha256-QmvrorwKeuQHnIWGUJ9pAtyaYIL0oOx8cVIFcqw/hsI="},"flags/4x3/no-c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a.svg":{"logical_path":"flags/4x3/no.svg","mtime":"2020-04-05T17:14:06+02:00","size":321,"digest":"c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a","integrity":"sha256-xZ8Vbd1wUH8FJn3DXi5PPkRGe570FJlau5FYncSG3Wo="},"flags/1x1/no-567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25.svg":{"logical_path":"flags/1x1/no.svg","mtime":"2020-04-05T17:14:06+02:00","size":321,"digest":"567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25","integrity":"sha256-Vn3xH14S+VpMcHI0EnrYeNthwobP3QNNvKuMQiLEryU="},"flags/4x3/np-ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0.svg":{"logical_path":"flags/4x3/np.svg","mtime":"2020-04-05T17:14:06+02:00","size":1061,"digest":"ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0","integrity":"sha256-3cBCuljAhC5KHdisVnAd2OImWcsE45BdOGaBDWMzqvA="},"flags/1x1/np-d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2.svg":{"logical_path":"flags/1x1/np.svg","mtime":"2020-04-05T17:14:06+02:00","size":1193,"digest":"d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2","integrity":"sha256-2BraxJHk58736Uq26U8AVksxn5o4O4Xg3XU668HP7qI="},"flags/4x3/nr-2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792.svg":{"logical_path":"flags/4x3/nr.svg","mtime":"2020-04-05T17:14:06+02:00","size":651,"digest":"2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792","integrity":"sha256-Lxn7UyWYpZU2zPS7b0RGwI6xue1evg/x8AvG/Iw255I="},"flags/1x1/nr-6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c.svg":{"logical_path":"flags/1x1/nr.svg","mtime":"2020-04-05T17:14:06+02:00","size":668,"digest":"6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c","integrity":"sha256-bmb4BSWmuSkgsazQHJvMIUsaLwU5PWWvZChWfn3gzGw="},"flags/4x3/nu-55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c.svg":{"logical_path":"flags/4x3/nu.svg","mtime":"2020-04-05T17:14:06+02:00","size":1745,"digest":"55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c","integrity":"sha256-VTkMwBToXrVrnQgARHCQDRPZXtg921AGv04OHPUZAow="},"flags/1x1/nu-1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f.svg":{"logical_path":"flags/1x1/nu.svg","mtime":"2020-04-05T17:14:06+02:00","size":1727,"digest":"1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f","integrity":"sha256-G/pVqT7KT/2YH5iTXWwsq1iim+Tw0vFaUBSNaVq1Dz8="},"flags/4x3/nz-b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f.svg":{"logical_path":"flags/4x3/nz.svg","mtime":"2020-04-05T17:14:06+02:00","size":2989,"digest":"b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f","integrity":"sha256-t/Twlh8AewzDVd+FkDsK8M/WtlXiOqVqpUfcXtaTrn8="},"flags/1x1/nz-b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23.svg":{"logical_path":"flags/1x1/nz.svg","mtime":"2020-04-05T17:14:06+02:00","size":2999,"digest":"b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23","integrity":"sha256-uTp3/iYu0dX70ZbyIkwPorPdbR6EwAJ8WhImQ/2tjSM="},"flags/4x3/om-d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967.svg":{"logical_path":"flags/4x3/om.svg","mtime":"2020-04-05T17:14:06+02:00","size":22636,"digest":"d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967","integrity":"sha256-1mBHwPVUslJQVmvb331KwDwPcI8DzUxBWcV/FvoFaWc="},"flags/1x1/om-20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9.svg":{"logical_path":"flags/1x1/om.svg","mtime":"2020-04-05T17:14:06+02:00","size":22614,"digest":"20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9","integrity":"sha256-IGacOk8YHQNbWs2CoS1zVLPF3stTOD6mt6U9ArcTj+k="},"flags/4x3/pa-0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11.svg":{"logical_path":"flags/4x3/pa.svg","mtime":"2020-04-05T17:14:06+02:00","size":749,"digest":"0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11","integrity":"sha256-C9S2cJ2cqCKFHy18V++fs8CYzu6l0jm7+PMZawYtHRE="},"flags/1x1/pa-6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7.svg":{"logical_path":"flags/1x1/pa.svg","mtime":"2020-04-05T17:14:06+02:00","size":659,"digest":"6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7","integrity":"sha256-bg4nGQs8OAa2yugtDjcIwF4CvIJHniUvRIag7uQ6WNc="},"flags/4x3/pe-3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5.svg":{"logical_path":"flags/4x3/pe.svg","mtime":"2020-04-05T17:14:06+02:00","size":73609,"digest":"3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5","integrity":"sha256-P939mlQF2qda411xchm+BJQPvZVrWD+pp10MVOxdbaU="},"flags/1x1/pe-e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9.svg":{"logical_path":"flags/1x1/pe.svg","mtime":"2020-04-05T17:14:06+02:00","size":72907,"digest":"e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9","integrity":"sha256-4EaPBe3a6l+3jY2GRApYDNnPXye6o+KsTyKbRCOr1/k="},"flags/4x3/pf-de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1.svg":{"logical_path":"flags/4x3/pf.svg","mtime":"2020-04-05T17:14:06+02:00","size":4290,"digest":"de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1","integrity":"sha256-3nLgbxr51dP0SZXkHsabNmnaHVmkC02ZsDFkYXqzJrE="},"flags/1x1/pf-d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88.svg":{"logical_path":"flags/1x1/pf.svg","mtime":"2020-04-05T17:14:06+02:00","size":4229,"digest":"d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88","integrity":"sha256-1o4CT5qCaweQZ5v1DPLwBPUGOqy/mZSKCut5LJfiDIg="},"flags/4x3/pg-10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809.svg":{"logical_path":"flags/4x3/pg.svg","mtime":"2020-04-05T17:14:06+02:00","size":1661,"digest":"10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809","integrity":"sha256-EK6DfZx4KBeMxwo0ibcZq4ijw9+9WL/PfAziaQjvyAk="},"flags/1x1/pg-40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb.svg":{"logical_path":"flags/1x1/pg.svg","mtime":"2020-04-05T17:14:06+02:00","size":2095,"digest":"40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb","integrity":"sha256-QM1kYg9q8LlDQPp8cd4OLvVB5gctiG5mbd9qzS9a7Ns="},"flags/4x3/ph-fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5.svg":{"logical_path":"flags/4x3/ph.svg","mtime":"2020-04-05T17:14:06+02:00","size":1565,"digest":"fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5","integrity":"sha256-/RZ6QzBJcqpD92oOw/A9yJ3eT5atxlSn4OLhJXqpp+U="},"flags/1x1/ph-2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c.svg":{"logical_path":"flags/1x1/ph.svg","mtime":"2020-04-05T17:14:06+02:00","size":1510,"digest":"2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c","integrity":"sha256-L53Tf5dizoDxmLjLm0rKueGcSC18u5J/eGaxkgEzrzw="},"flags/4x3/pk-0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9.svg":{"logical_path":"flags/4x3/pk.svg","mtime":"2020-04-05T17:14:06+02:00","size":739,"digest":"0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9","integrity":"sha256-DFraTRSdf/GOqQczz5v6h1SYFzATjCDsl7hk2X/jTvk="},"flags/1x1/pk-637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903.svg":{"logical_path":"flags/1x1/pk.svg","mtime":"2020-04-05T17:14:06+02:00","size":684,"digest":"637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903","integrity":"sha256-Y3mUyG6UlEvhgduocno7E2GR9y6+U/BD8Lcpf8ztWQM="},"flags/4x3/pl-bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851.svg":{"logical_path":"flags/4x3/pl.svg","mtime":"2020-04-05T17:14:06+02:00","size":222,"digest":"bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851","integrity":"sha256-vYxYjOTHFZTl83ibcAyTXjyX5cBuYt21lXUsgF6Q2FE="},"flags/1x1/pl-d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad.svg":{"logical_path":"flags/1x1/pl.svg","mtime":"2020-04-05T17:14:06+02:00","size":222,"digest":"d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad","integrity":"sha256-18Sq22nvE0kgFqeymVAg+ddU0Sj5NU3XQsMtQgwzQK0="},"flags/4x3/pm-e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6.svg":{"logical_path":"flags/4x3/pm.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6","integrity":"sha256-4eHeRPYbU/twBBrOyEJuZQVSbJopMXpPwdvCBvDyYeY="},"flags/1x1/pm-4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641.svg":{"logical_path":"flags/1x1/pm.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641","integrity":"sha256-TjpltFdwVQJ9Qev2RBIAuOHzYKFnfiAy8mK1iAVolkE="},"flags/4x3/pn-d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c.svg":{"logical_path":"flags/4x3/pn.svg","mtime":"2020-04-05T17:14:06+02:00","size":10878,"digest":"d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c","integrity":"sha256-0Fr8KCa9qpEhoX6f9C017EpyZopO/gtlrNbm3iP4Jow="},"flags/1x1/pn-c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b.svg":{"logical_path":"flags/1x1/pn.svg","mtime":"2020-04-05T17:14:06+02:00","size":8517,"digest":"c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b","integrity":"sha256-wvNWX26CgtRLq+Bv0lYFwAL1q7Ptr6hDdiqe1t4GRks="},"flags/4x3/pr-f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8.svg":{"logical_path":"flags/4x3/pr.svg","mtime":"2020-04-05T17:14:06+02:00","size":637,"digest":"f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8","integrity":"sha256-+H6SjqeoTrycfW6O5uQ+n5MBSt68RgTwH+Ntsp5jXtg="},"flags/1x1/pr-7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26.svg":{"logical_path":"flags/1x1/pr.svg","mtime":"2020-04-05T17:14:06+02:00","size":619,"digest":"7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26","integrity":"sha256-epTlPb/JOAjRlKBeefeArvDSsjHoMOT7S5Mc3efW2iY="},"flags/4x3/ps-84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71.svg":{"logical_path":"flags/4x3/ps.svg","mtime":"2020-04-05T17:14:06+02:00","size":561,"digest":"84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71","integrity":"sha256-hEIf1m+QWOQk2hkPyLP2oNNee7kYqm//rNAKGiwbLXE="},"flags/1x1/ps-31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9.svg":{"logical_path":"flags/1x1/ps.svg","mtime":"2020-04-05T17:14:06+02:00","size":541,"digest":"31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9","integrity":"sha256-MaBu6NxFAPlmW042VEiavGp3hRx6Q8JFgJvIdKxvd+k="},"flags/4x3/pt-62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd.svg":{"logical_path":"flags/4x3/pt.svg","mtime":"2020-04-05T17:14:06+02:00","size":8280,"digest":"62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd","integrity":"sha256-YhN/ZLizeyRRAJWSZBWzEgAp8NV+l4FyCeiV+cULJt0="},"flags/1x1/pt-2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa.svg":{"logical_path":"flags/1x1/pt.svg","mtime":"2020-04-05T17:14:06+02:00","size":8661,"digest":"2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa","integrity":"sha256-L8j7N4QQ1jY3c4XW0AfyCkHWST/a5Ro1yrXqpdozKPo="},"flags/4x3/pw-c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7.svg":{"logical_path":"flags/4x3/pw.svg","mtime":"2020-04-05T17:14:06+02:00","size":467,"digest":"c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7","integrity":"sha256-xZz6y5hLWSRPSBMpd7ljJ8iA85FDGiYQ7EYX0fc+46c="},"flags/1x1/pw-21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956.svg":{"logical_path":"flags/1x1/pw.svg","mtime":"2020-04-05T17:14:06+02:00","size":507,"digest":"21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956","integrity":"sha256-IaZ3t/o/M6YwSSasSw1RbycQ2dV2zvtGZ04/nCpESVY="},"flags/4x3/py-22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c.svg":{"logical_path":"flags/4x3/py.svg","mtime":"2020-04-05T17:14:06+02:00","size":17097,"digest":"22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c","integrity":"sha256-IlcNREcyM2+a8xMHxbTFgJ2MAoMZuBwklm0LSORB8Iw="},"flags/1x1/py-da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da.svg":{"logical_path":"flags/1x1/py.svg","mtime":"2020-04-05T17:14:06+02:00","size":17246,"digest":"da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da","integrity":"sha256-2lkB7G+PqT+E5CFAvZI1krhAhKZIVp12tHbnUS42INo="},"flags/4x3/qa-a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31.svg":{"logical_path":"flags/4x3/qa.svg","mtime":"2020-04-05T17:14:06+02:00","size":359,"digest":"a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31","integrity":"sha256-peWPx5C3bpC5RaaLtPFSIyVCAb8AYEDZUwkt7lyo2jE="},"flags/1x1/qa-ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505.svg":{"logical_path":"flags/1x1/qa.svg","mtime":"2020-04-05T17:14:06+02:00","size":356,"digest":"ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505","integrity":"sha256-/6jNTt16wWkSc2P48Edv/hEnk2czTx+pEDIFQaGpRQU="},"flags/4x3/re-5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434.svg":{"logical_path":"flags/4x3/re.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434","integrity":"sha256-UYOvZ8T6CDaeklGioQKk7VeMJLtZCS3ZLzpXLZAiNDQ="},"flags/1x1/re-37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084.svg":{"logical_path":"flags/1x1/re.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084","integrity":"sha256-N76dw2RdrEwUYwaPkAHP8xKI71J8L8oNZDICKFgHAIQ="},"flags/4x3/ro-854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e.svg":{"logical_path":"flags/4x3/ro.svg","mtime":"2020-04-05T17:14:06+02:00","size":305,"digest":"854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e","integrity":"sha256-hUWTplspODJ0qr44XE/1h5SitdS4nFQUoP8R+W0Bbx4="},"flags/1x1/ro-da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9.svg":{"logical_path":"flags/1x1/ro.svg","mtime":"2020-04-05T17:14:06+02:00","size":305,"digest":"da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9","integrity":"sha256-2p4M4evQ9Gb/aFABc/4GchLTBLj0WU9UvWG9PlQJx6k="},"flags/4x3/rs-cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a.svg":{"logical_path":"flags/4x3/rs.svg","mtime":"2020-04-05T17:14:06+02:00","size":187134,"digest":"cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a","integrity":"sha256-y7VNYIsV4r1NQiuNg/BhEVwgh9Bwlpsun2ESZHVpzjo="},"flags/1x1/rs-04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb.svg":{"logical_path":"flags/1x1/rs.svg","mtime":"2020-04-05T17:14:06+02:00","size":186989,"digest":"04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb","integrity":"sha256-BMdZpRKUN9zAPf+zYhmchPx3OhhXJtwu0J+c/UE3D9s="},"flags/4x3/ru-5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0.svg":{"logical_path":"flags/4x3/ru.svg","mtime":"2020-04-05T17:14:06+02:00","size":286,"digest":"5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0","integrity":"sha256-W1G1f2PPWORRq93q7jmox7Ezyz1Yxu8akDiDvafDRrA="},"flags/1x1/ru-bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064.svg":{"logical_path":"flags/1x1/ru.svg","mtime":"2020-04-05T17:14:06+02:00","size":290,"digest":"bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064","integrity":"sha256-uyeCqRaxoo6wgYla+pD07V3KXfMgucyV+Ge8KibikGQ="},"flags/4x3/rw-aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75.svg":{"logical_path":"flags/4x3/rw.svg","mtime":"2020-04-05T17:14:06+02:00","size":747,"digest":"aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75","integrity":"sha256-rrm8c80/4l58Ghp73dwR6z1xoyc5Gd0vQkeHPbePvnU="},"flags/1x1/rw-8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed.svg":{"logical_path":"flags/1x1/rw.svg","mtime":"2020-04-05T17:14:06+02:00","size":748,"digest":"8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed","integrity":"sha256-jCfN50beaEhDlO9txRlYPPZ+OAyl6NSM83+k2Z/vV+0="},"flags/4x3/sa-d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b.svg":{"logical_path":"flags/4x3/sa.svg","mtime":"2020-04-05T17:14:06+02:00","size":10238,"digest":"d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b","integrity":"sha256-1U52162dpSQqom1dvsEguKRTDAl65F0LIuU58tnGrYs="},"flags/1x1/sa-639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be.svg":{"logical_path":"flags/1x1/sa.svg","mtime":"2020-04-05T17:14:06+02:00","size":10179,"digest":"639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be","integrity":"sha256-Y57hwViwth6Hib3ieuZO2yRq/mPLiZnjRoyojDRJJ74="},"flags/4x3/sb-651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac.svg":{"logical_path":"flags/4x3/sb.svg","mtime":"2020-04-05T17:14:06+02:00","size":953,"digest":"651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac","integrity":"sha256-ZRIT3wZ/FtvboiiJKENK/dVPGStQvxXQYgat6WbVS6w="},"flags/1x1/sb-19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3.svg":{"logical_path":"flags/1x1/sb.svg","mtime":"2020-04-05T17:14:06+02:00","size":952,"digest":"19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3","integrity":"sha256-GQSMJgBNpv4qHdXz9pUGayTzCW0VJ+29qsA8KBcEb+M="},"flags/4x3/sc-2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e.svg":{"logical_path":"flags/4x3/sc.svg","mtime":"2020-04-05T17:14:06+02:00","size":571,"digest":"2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e","integrity":"sha256-LtknLV/S+pLSkon0n1j19k9ml3Fl+hqA+etqpXM1UX4="},"flags/1x1/sc-90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71.svg":{"logical_path":"flags/1x1/sc.svg","mtime":"2020-04-05T17:14:06+02:00","size":570,"digest":"90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71","integrity":"sha256-kEJKr9qaKqfZgDDAqnvGBMd8Gw98XmoJTf/SuAOojHE="},"flags/4x3/sd-b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d.svg":{"logical_path":"flags/4x3/sd.svg","mtime":"2020-04-05T17:14:06+02:00","size":497,"digest":"b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d","integrity":"sha256-uLnZcQPmaKKwQzEbZFPC3yXVw63PYkgeTHmmJ8Z4T00="},"flags/1x1/sd-da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc.svg":{"logical_path":"flags/1x1/sd.svg","mtime":"2020-04-05T17:14:06+02:00","size":493,"digest":"da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc","integrity":"sha256-2lLNehc+zAvH6afH7UogVYp/TLW2zTCHkLdVKnBCGrw="},"flags/4x3/se-7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062.svg":{"logical_path":"flags/4x3/se.svg","mtime":"2020-04-05T17:14:06+02:00","size":691,"digest":"7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062","integrity":"sha256-e1voky225RU9HxHdui02y0oz3dcQDlxZzvOiUCIVsGI="},"flags/1x1/se-9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837.svg":{"logical_path":"flags/1x1/se.svg","mtime":"2020-04-05T17:14:06+02:00","size":698,"digest":"9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837","integrity":"sha256-mwhF+BY9FH5Pzm6BRwnVgT5T8A+PXMtAz6TLnjc4iDc="},"flags/4x3/sg-fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226.svg":{"logical_path":"flags/4x3/sg.svg","mtime":"2020-04-05T17:14:06+02:00","size":887,"digest":"fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226","integrity":"sha256-+hZJhPA4+oFUDVGcXQgSPtVfMbuKpzeYr3aYxp3KIiY="},"flags/1x1/sg-f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a.svg":{"logical_path":"flags/1x1/sg.svg","mtime":"2020-04-05T17:14:06+02:00","size":948,"digest":"f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a","integrity":"sha256-9vjs3W8AmcByiGcW2YCY0I3jNPbzBzmOmSL030Dveyo="},"flags/4x3/sh-e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279.svg":{"logical_path":"flags/4x3/sh.svg","mtime":"2020-04-05T17:14:06+02:00","size":29501,"digest":"e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279","integrity":"sha256-57Xk3FNg/Z7C4N1QB06CpTVmphq4ija2tcyARRotknk="},"flags/1x1/sh-c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947.svg":{"logical_path":"flags/1x1/sh.svg","mtime":"2020-04-05T17:14:06+02:00","size":30113,"digest":"c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947","integrity":"sha256-w6BhB53X9ep4WktKSQPsTO/EomzXM3HAv6OgsjFZOUc="},"flags/4x3/si-25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001.svg":{"logical_path":"flags/4x3/si.svg","mtime":"2020-04-05T17:14:06+02:00","size":2053,"digest":"25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001","integrity":"sha256-JUh/eqkfEV1VjwMf+vDTmZJLAyEA0k1GfDvRywJtkAE="},"flags/1x1/si-53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57.svg":{"logical_path":"flags/1x1/si.svg","mtime":"2020-04-05T17:14:06+02:00","size":2065,"digest":"53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57","integrity":"sha256-U5c+jVwghlcAI9v/ve8aihgc1Jsz2k/eAd56V7g0bFc="},"flags/4x3/sj-e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5.svg":{"logical_path":"flags/4x3/sj.svg","mtime":"2020-04-05T17:14:06+02:00","size":321,"digest":"e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5","integrity":"sha256-5kutTyV+4SGWQNzjYIJwuKTH6/w3+RrJ5PpZV+oIFPU="},"flags/1x1/sj-d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f.svg":{"logical_path":"flags/1x1/sj.svg","mtime":"2020-04-05T17:14:06+02:00","size":321,"digest":"d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f","integrity":"sha256-12TV3oykpn6jIzdsfE3Eij7FG7BDVW7gfcqeSYm6FH8="},"flags/4x3/sk-4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2.svg":{"logical_path":"flags/4x3/sk.svg","mtime":"2020-04-05T17:14:06+02:00","size":1202,"digest":"4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2","integrity":"sha256-TKdskh+uM0XEfx9UDNrzcWp4B//LpTLK6lAJDIu+ysI="},"flags/1x1/sk-48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b.svg":{"logical_path":"flags/1x1/sk.svg","mtime":"2020-04-05T17:14:06+02:00","size":1173,"digest":"48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b","integrity":"sha256-SNl2qVPQd4/O1HzF0liQ891778KKhdm9365rUPqYyEs="},"flags/4x3/sl-d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a.svg":{"logical_path":"flags/4x3/sl.svg","mtime":"2020-04-05T17:14:06+02:00","size":275,"digest":"d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a","integrity":"sha256-2BBnd6sm78KPeGoTRb1BGkoKENpzi2keP03uqW08PDo="},"flags/1x1/sl-9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6.svg":{"logical_path":"flags/1x1/sl.svg","mtime":"2020-04-05T17:14:06+02:00","size":438,"digest":"9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6","integrity":"sha256-m0uNGOSSHoEtH8NCedmHHXttWnL+uORRtLSu0ziQvuY="},"flags/4x3/sm-d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c.svg":{"logical_path":"flags/4x3/sm.svg","mtime":"2020-04-05T17:14:06+02:00","size":15801,"digest":"d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c","integrity":"sha256-2OuxBETvW+9ILAuIamF9gypiYpiHBh2Rb2469+5JwBw="},"flags/1x1/sm-2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d.svg":{"logical_path":"flags/1x1/sm.svg","mtime":"2020-04-05T17:14:06+02:00","size":15729,"digest":"2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d","integrity":"sha256-LMP8bUZnZUpIQtuifL0/1suejyOtHcH+eMvZYhtefY0="},"flags/4x3/sn-e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa.svg":{"logical_path":"flags/4x3/sn.svg","mtime":"2020-04-05T17:14:06+02:00","size":424,"digest":"e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa","integrity":"sha256-6PKI/FIQGskV9zId/85MCvCoMCRHkfY+/qBpy7wxH/o="},"flags/1x1/sn-1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748.svg":{"logical_path":"flags/1x1/sn.svg","mtime":"2020-04-05T17:14:06+02:00","size":414,"digest":"1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748","integrity":"sha256-HiR385kbAykGf3ANsQiYvAdhwkHs2+XPPAp5mY7oZ0g="},"flags/4x3/so-50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd.svg":{"logical_path":"flags/4x3/so.svg","mtime":"2020-04-05T17:14:06+02:00","size":497,"digest":"50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd","integrity":"sha256-UMUVPpIzGvXrC82psX7Y3th/aflIA9UDFVFMjZXyQd0="},"flags/1x1/so-74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3.svg":{"logical_path":"flags/1x1/so.svg","mtime":"2020-04-05T17:14:06+02:00","size":498,"digest":"74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3","integrity":"sha256-dPaKWXLSh6uwEIYNeOnqgVhJnBGH6fMKUz8U9iOVr/M="},"flags/4x3/sr-04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa.svg":{"logical_path":"flags/4x3/sr.svg","mtime":"2020-04-05T17:14:06+02:00","size":315,"digest":"04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa","integrity":"sha256-BPZLplQCN+yRiPn3duqOMAq42p5psJh8f4TVfkhdA/o="},"flags/1x1/sr-e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278.svg":{"logical_path":"flags/1x1/sr.svg","mtime":"2020-04-05T17:14:06+02:00","size":320,"digest":"e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278","integrity":"sha256-4UagzO3XXFj2u8FoS0JmLilWF7utn6lghrPvPmr+Ing="},"flags/4x3/ss-d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6.svg":{"logical_path":"flags/4x3/ss.svg","mtime":"2020-04-05T17:14:06+02:00","size":386,"digest":"d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6","integrity":"sha256-0FRZQWNQlKQIPaAjj+woFHyEXxRuEix0XQl3vQyUM9Y="},"flags/1x1/ss-15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102.svg":{"logical_path":"flags/1x1/ss.svg","mtime":"2020-04-05T17:14:06+02:00","size":397,"digest":"15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102","integrity":"sha256-FUZnduWlf/VML7p8tZDNfycpjTjL8sHdzeY6gdjpwQI="},"flags/4x3/st-ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1.svg":{"logical_path":"flags/4x3/st.svg","mtime":"2020-04-05T17:14:06+02:00","size":916,"digest":"ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1","integrity":"sha256-67gTqB9JWWY856APM6y5UTywrqrMbmtCvs85ZBFLl6E="},"flags/1x1/st-a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d.svg":{"logical_path":"flags/1x1/st.svg","mtime":"2020-04-05T17:14:06+02:00","size":920,"digest":"a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d","integrity":"sha256-qGYEOrN86AW2Sr7Hi5W2wIMnHBPo4ex8qWRJQQV46J0="},"flags/4x3/sv-4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d.svg":{"logical_path":"flags/4x3/sv.svg","mtime":"2020-04-05T17:14:06+02:00","size":82697,"digest":"4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d","integrity":"sha256-SiwCrhyPoQS99yLYBAho9H0RWfx3TjIILn/RUWwMjm0="},"flags/1x1/sv-ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e.svg":{"logical_path":"flags/1x1/sv.svg","mtime":"2020-04-05T17:14:06+02:00","size":83238,"digest":"ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e","integrity":"sha256-7OX1gL8aMKJHlPKehbhRcJ8v963DuNWohjS131pzUz4="},"flags/4x3/sx-aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c.svg":{"logical_path":"flags/4x3/sx.svg","mtime":"2020-04-05T17:14:06+02:00","size":13209,"digest":"aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c","integrity":"sha256-qopH6aqLm6IYxoddJDXfcnQKtMC5JIaShrTK2xNl1Jw="},"flags/1x1/sx-ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06.svg":{"logical_path":"flags/1x1/sx.svg","mtime":"2020-04-05T17:14:06+02:00","size":12992,"digest":"ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06","integrity":"sha256-rHFt24PI40NTZmthAsA2iFA+uXrlXKmu64bE6VSuiwY="},"flags/4x3/sy-3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039.svg":{"logical_path":"flags/4x3/sy.svg","mtime":"2020-04-05T17:14:06+02:00","size":565,"digest":"3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039","integrity":"sha256-O3h3PjkvBG+5s/g7w0zjhRX3IyDFddk8QcldkP+10Dk="},"flags/1x1/sy-fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446.svg":{"logical_path":"flags/1x1/sy.svg","mtime":"2020-04-05T17:14:06+02:00","size":579,"digest":"fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446","integrity":"sha256-/eyOoAozq+XfreeGTCjZrXE8PNo+fYKP9plkfaPnREY="},"flags/4x3/sz-57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f.svg":{"logical_path":"flags/4x3/sz.svg","mtime":"2020-04-05T17:14:06+02:00","size":6742,"digest":"57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f","integrity":"sha256-V87+DHHpDtujwDWUppo6mjP3ecDCQF767bjWQpDijR8="},"flags/1x1/sz-ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951.svg":{"logical_path":"flags/1x1/sz.svg","mtime":"2020-04-05T17:14:06+02:00","size":6689,"digest":"ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951","integrity":"sha256-rZd6awb4XuI7PqXsSfgzY3IFJaP9N0de95y1lZHDKVE="},"flags/4x3/tc-c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc.svg":{"logical_path":"flags/4x3/tc.svg","mtime":"2020-04-05T17:14:06+02:00","size":14497,"digest":"c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc","integrity":"sha256-w+eobmTUOeayXcgz9oXNVGHpxc4z0PAE81cK37plybw="},"flags/1x1/tc-d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c.svg":{"logical_path":"flags/1x1/tc.svg","mtime":"2020-04-05T17:14:06+02:00","size":14756,"digest":"d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c","integrity":"sha256-2RrGvOAp+KpbdgvipiiEtn4DGA65qcZ65gZt9nyFFUw="},"flags/4x3/td-b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3.svg":{"logical_path":"flags/4x3/td.svg","mtime":"2020-04-05T17:14:06+02:00","size":267,"digest":"b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3","integrity":"sha256-ts5Ar/YP7vTo/hQX8HW1doi1zEwy0JKW0Cd2p5fgsNM="},"flags/1x1/td-ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c.svg":{"logical_path":"flags/1x1/td.svg","mtime":"2020-04-05T17:14:06+02:00","size":279,"digest":"ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c","integrity":"sha256-7xFbOUKuXLdLBGsKX6rTX71hJtjG/aSJiBsWSUyMYyw="},"flags/4x3/tf-0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820.svg":{"logical_path":"flags/4x3/tf.svg","mtime":"2020-04-05T17:14:06+02:00","size":1088,"digest":"0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820","integrity":"sha256-BoHsVN/8T2KO/YtHJvw/AMYoqrT7DHl8MyyAol1VmCA="},"flags/1x1/tf-90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6.svg":{"logical_path":"flags/1x1/tf.svg","mtime":"2020-04-05T17:14:06+02:00","size":1196,"digest":"90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6","integrity":"sha256-kK0YTP12nN2j2pxDtPtaSUli8wlfOPQXXON8Nx4BgNY="},"flags/4x3/tg-486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499.svg":{"logical_path":"flags/4x3/tg.svg","mtime":"2020-04-05T17:14:06+02:00","size":728,"digest":"486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499","integrity":"sha256-SG3KJCDHl9mjewPRF2fJQYteJtB8fGlNiXt9hQkupJk="},"flags/1x1/tg-830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad.svg":{"logical_path":"flags/1x1/tg.svg","mtime":"2020-04-05T17:14:06+02:00","size":733,"digest":"830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad","integrity":"sha256-gw9JpXIGv2VLw3qqFmjuiECiNZWy7UQMlo+B2WHoIK0="},"flags/4x3/th-4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9.svg":{"logical_path":"flags/4x3/th.svg","mtime":"2020-04-05T17:14:06+02:00","size":287,"digest":"4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9","integrity":"sha256-TiBrVj0ntaej98q/lE1tJ45uhkABinLOe3/5ifE5bfk="},"flags/1x1/th-cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887.svg":{"logical_path":"flags/1x1/th.svg","mtime":"2020-04-05T17:14:06+02:00","size":288,"digest":"cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887","integrity":"sha256-y0gJCOLDlOgWYjt/zVtjtITyVXj9iZBdaqFFO80EGIc="},"flags/4x3/tj-1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe.svg":{"logical_path":"flags/4x3/tj.svg","mtime":"2020-04-05T17:14:06+02:00","size":1812,"digest":"1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe","integrity":"sha256-Gol58DqCDOxU/0qQDoQ6/uB087QAThrutwbKrqA3n/4="},"flags/1x1/tj-a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece.svg":{"logical_path":"flags/1x1/tj.svg","mtime":"2020-04-05T17:14:06+02:00","size":1767,"digest":"a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece","integrity":"sha256-oTPVLJmihaot0LhnORY71bt6LA6qWh/VIqEexLWzvs4="},"flags/4x3/tk-3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58.svg":{"logical_path":"flags/4x3/tk.svg","mtime":"2020-04-05T17:14:06+02:00","size":788,"digest":"3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58","integrity":"sha256-PkmmMtXYfePvZ6yo+qFZwbabwWZp9sjBF3SNyWJdHFg="},"flags/1x1/tk-137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d.svg":{"logical_path":"flags/1x1/tk.svg","mtime":"2020-04-05T17:14:06+02:00","size":778,"digest":"137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d","integrity":"sha256-E3x+uygjPNwvQXvB4pv61QLvfdQEw1rDYYjn3Ziuy20="},"flags/4x3/tl-8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40.svg":{"logical_path":"flags/4x3/tl.svg","mtime":"2020-04-05T17:14:06+02:00","size":603,"digest":"8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40","integrity":"sha256-hmKo0BAH/L4PQaaUpc2ScmVAnVm3g7UOC/RWEwKnfkA="},"flags/1x1/tl-d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf.svg":{"logical_path":"flags/1x1/tl.svg","mtime":"2020-04-05T17:14:06+02:00","size":577,"digest":"d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf","integrity":"sha256-0mBx3fdU136lZ3nYF+jGLzejj6ZBAuDIZJAf85Qc/78="},"flags/4x3/tm-22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec.svg":{"logical_path":"flags/4x3/tm.svg","mtime":"2020-04-05T17:14:06+02:00","size":32287,"digest":"22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec","integrity":"sha256-IrgR/5BkLeNBo+KKF3XRmS0fMgiOkiq92vynkVfjwuw="},"flags/1x1/tm-42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38.svg":{"logical_path":"flags/1x1/tm.svg","mtime":"2020-04-05T17:14:06+02:00","size":31566,"digest":"42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38","integrity":"sha256-QshTbxjZqYeKkIcmSfDshbJ7pZ4ZQspaxhny8vmTqjg="},"flags/4x3/tn-5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5.svg":{"logical_path":"flags/4x3/tn.svg","mtime":"2020-04-05T17:14:06+02:00","size":751,"digest":"5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5","integrity":"sha256-XQW81g6zEY6uRbryS+Y6q2jiNuxtGRJO7ZBUjx7EK9U="},"flags/1x1/tn-84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57.svg":{"logical_path":"flags/1x1/tn.svg","mtime":"2020-04-05T17:14:06+02:00","size":733,"digest":"84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57","integrity":"sha256-hBFvtQ3bMNLwiZGuTjdi1xkf5Dh+HPBdVaTj8ulcPFc="},"flags/4x3/to-a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa.svg":{"logical_path":"flags/4x3/to.svg","mtime":"2020-04-05T17:14:06+02:00","size":355,"digest":"a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa","integrity":"sha256-ogB2Z/R1UN0abbXoORH8wKzfAJCdtibVkqk5DE6Kofo="},"flags/1x1/to-5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2.svg":{"logical_path":"flags/1x1/to.svg","mtime":"2020-04-05T17:14:06+02:00","size":361,"digest":"5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2","integrity":"sha256-XoerVPpfMSTR/FIdKSWYZf3R9SjpaNrRKjOv8i/3iPI="},"flags/4x3/tr-033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66.svg":{"logical_path":"flags/4x3/tr.svg","mtime":"2020-04-05T17:14:06+02:00","size":554,"digest":"033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66","integrity":"sha256-AzpBbswwpRbFTGoPrC0hKjj7BR5Zds2knrnSImSBSmY="},"flags/1x1/tr-74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae.svg":{"logical_path":"flags/1x1/tr.svg","mtime":"2020-04-05T17:14:06+02:00","size":575,"digest":"74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae","integrity":"sha256-dOYNCTacFkzCRdSdEJx46jIqEX4P5YlFw4C2WnHGka4="},"flags/4x3/tt-f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00.svg":{"logical_path":"flags/4x3/tt.svg","mtime":"2020-04-05T17:14:06+02:00","size":315,"digest":"f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00","integrity":"sha256-9qyIV3xX0S35UlHCGnrbaM7Rcgcx11SkYtKViHm1bgA="},"flags/1x1/tt-3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de.svg":{"logical_path":"flags/1x1/tt.svg","mtime":"2020-04-05T17:14:06+02:00","size":320,"digest":"3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de","integrity":"sha256-PWXcvKW31AoXMOHBkNDH4odNGztE4KCUHsAzBWBE894="},"flags/4x3/tv-6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4.svg":{"logical_path":"flags/4x3/tv.svg","mtime":"2020-04-05T17:14:06+02:00","size":1783,"digest":"6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4","integrity":"sha256-YBfO+wL8wJn6qPByFJu85/jBVa1v+mIKbWJYQJt4bOQ="},"flags/1x1/tv-add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240.svg":{"logical_path":"flags/1x1/tv.svg","mtime":"2020-04-05T17:14:06+02:00","size":1716,"digest":"add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240","integrity":"sha256-rdQqAjtWqS9CAHr7kz4o4dCNc05VzOy/w/n65wcBokA="},"flags/4x3/tw-44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16.svg":{"logical_path":"flags/4x3/tw.svg","mtime":"2020-04-05T17:14:06+02:00","size":945,"digest":"44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16","integrity":"sha256-RLfR86zHWqj/gXtV1Jncskdwo0I7Ykv/gpyyZynefBY="},"flags/1x1/tw-06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19.svg":{"logical_path":"flags/1x1/tw.svg","mtime":"2020-04-05T17:14:06+02:00","size":954,"digest":"06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19","integrity":"sha256-Bq8iwwrfzMqZdamf0FMQVo3lnwOaFP2Nurq3wXozyxk="},"flags/4x3/tz-1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988.svg":{"logical_path":"flags/4x3/tz.svg","mtime":"2020-04-05T17:14:06+02:00","size":549,"digest":"1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988","integrity":"sha256-HV5/t6EklzWKGbkmcRhLFGZBJaFD2QmrvuVhW1f36Yg="},"flags/1x1/tz-ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2.svg":{"logical_path":"flags/1x1/tz.svg","mtime":"2020-04-05T17:14:06+02:00","size":602,"digest":"ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2","integrity":"sha256-rUw13p9q7FeqwnLeOQ1XMKdap+GkQxFmpdzqO8vcYvI="},"flags/4x3/ua-fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa.svg":{"logical_path":"flags/4x3/ua.svg","mtime":"2020-04-05T17:14:06+02:00","size":238,"digest":"fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa","integrity":"sha256-+78PDpptYYdWHzivmz8o4xJeQGw97qJovLZNrHoDpqo="},"flags/1x1/ua-79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296.svg":{"logical_path":"flags/1x1/ua.svg","mtime":"2020-04-05T17:14:06+02:00","size":238,"digest":"79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296","integrity":"sha256-eQkt5tItsEVImKfRfyaWFwklYRBiDmeTMEN5n6hrIpY="},"flags/4x3/ug-001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975.svg":{"logical_path":"flags/4x3/ug.svg","mtime":"2020-04-05T17:14:06+02:00","size":3951,"digest":"001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975","integrity":"sha256-AB+lVBJ6r9c2dScnSQ25+IkxZMA2nQuly210LEQ3CXU="},"flags/1x1/ug-59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9.svg":{"logical_path":"flags/1x1/ug.svg","mtime":"2020-04-05T17:14:06+02:00","size":4024,"digest":"59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9","integrity":"sha256-Wbx23u/SKALn1Ksr1eNPWca8ESE1yAUihEEKB4eVSvk="},"flags/4x3/um-d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164.svg":{"logical_path":"flags/4x3/um.svg","mtime":"2020-04-05T17:14:06+02:00","size":4523,"digest":"d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164","integrity":"sha256-0uisIHmif7bxIKtLxNKVl0UL0Bqf7fm39aCa1l6N0WQ="},"flags/1x1/um-9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5.svg":{"logical_path":"flags/1x1/um.svg","mtime":"2020-04-05T17:14:06+02:00","size":3972,"digest":"9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5","integrity":"sha256-lnTIKIi5L7u6IvNYjn2D6MDOiH2czfOrrDF/lyVTCrU="},"flags/4x3/us-c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e.svg":{"logical_path":"flags/4x3/us.svg","mtime":"2020-04-05T17:14:06+02:00","size":4461,"digest":"c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e","integrity":"sha256-xwuhy2fMZJ2isfXcSiaJFDfYu6LMCYyIRh5r/COUnZ4="},"flags/1x1/us-c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196.svg":{"logical_path":"flags/1x1/us.svg","mtime":"2020-04-05T17:14:06+02:00","size":3921,"digest":"c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196","integrity":"sha256-xP/QRVz1C8FoNkbcd+cmPYHP+tUfNtPDm4WphI+1oZY="},"flags/4x3/uy-25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a.svg":{"logical_path":"flags/4x3/uy.svg","mtime":"2020-04-05T17:14:06+02:00","size":1718,"digest":"25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a","integrity":"sha256-JcZAMzVFhD00Xb2mlMpBxATcqmnT4y++vInVYgtbiBo="},"flags/1x1/uy-4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60.svg":{"logical_path":"flags/1x1/uy.svg","mtime":"2020-04-05T17:14:06+02:00","size":1715,"digest":"4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60","integrity":"sha256-RGbG8J3pOQWHL+R7/APG5aFDy/d838k/zUUGY1cvPWA="},"flags/4x3/uz-76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4.svg":{"logical_path":"flags/4x3/uz.svg","mtime":"2020-04-05T17:14:06+02:00","size":1454,"digest":"76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4","integrity":"sha256-dqNlj19F3vB1CnAkfWBDVv9OuplrMKojplesBwRMrtQ="},"flags/1x1/uz-96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1.svg":{"logical_path":"flags/1x1/uz.svg","mtime":"2020-04-05T17:14:06+02:00","size":1454,"digest":"96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1","integrity":"sha256-luumk/qiQ56+5I0nBypnCGt76AAB7IxePwdDs38qQqE="},"flags/4x3/va-89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278.svg":{"logical_path":"flags/4x3/va.svg","mtime":"2020-04-05T17:14:06+02:00","size":91076,"digest":"89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278","integrity":"sha256-ibEtcc6Op0JQ2Z2oStRBfFPqsTPkvo25nmuOCyb3Eng="},"flags/1x1/va-bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19.svg":{"logical_path":"flags/1x1/va.svg","mtime":"2020-04-05T17:14:06+02:00","size":90711,"digest":"bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19","integrity":"sha256-vMadWq3dpxDgxIDGTxrZcwukXt1GkmhPzKHE+Ag8XRk="},"flags/4x3/vc-55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5.svg":{"logical_path":"flags/4x3/vc.svg","mtime":"2020-04-05T17:14:06+02:00","size":451,"digest":"55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5","integrity":"sha256-Vbf5A8fmA95+7Da8oHYKUZMK57qQwudY/POqTX6VnuU="},"flags/1x1/vc-3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19.svg":{"logical_path":"flags/1x1/vc.svg","mtime":"2020-04-05T17:14:06+02:00","size":498,"digest":"3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19","integrity":"sha256-O+l32fFhpYAHKN6EWqdjLfMmOSf+pLA1REAHVdJ+fBk="},"flags/4x3/ve-3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561.svg":{"logical_path":"flags/4x3/ve.svg","mtime":"2020-04-05T17:14:06+02:00","size":1168,"digest":"3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561","integrity":"sha256-MHn9GVIRFKVYWyPjej1ENna1L9WTtouuUCbCneC/VWE="},"flags/1x1/ve-2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192.svg":{"logical_path":"flags/1x1/ve.svg","mtime":"2020-04-05T17:14:06+02:00","size":1188,"digest":"2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192","integrity":"sha256-L+D2kqaYbysh69YmC2dQspoEh7lIbnD894nhE60OEZI="},"flags/4x3/vg-509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364.svg":{"logical_path":"flags/4x3/vg.svg","mtime":"2020-04-05T17:14:06+02:00","size":24640,"digest":"509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364","integrity":"sha256-UJlnzvqwQi5+QWKqddPO3nYgpKF9myAVrfp06EBR82Q="},"flags/1x1/vg-caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31.svg":{"logical_path":"flags/1x1/vg.svg","mtime":"2020-04-05T17:14:06+02:00","size":24814,"digest":"caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31","integrity":"sha256-yuwH8JyH8OvShD3t9+j9Xr4+15WyZJxkh4h3XGX0izE="},"flags/4x3/vi-0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032.svg":{"logical_path":"flags/4x3/vi.svg","mtime":"2020-04-05T17:14:06+02:00","size":8742,"digest":"0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032","integrity":"sha256-DBgRhh4XAz2NLuKR7bi3ENyHf77AarTk0lAhhySWYDI="},"flags/1x1/vi-8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62.svg":{"logical_path":"flags/1x1/vi.svg","mtime":"2020-04-05T17:14:06+02:00","size":8697,"digest":"8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62","integrity":"sha256-gRKWLcPTGU87v3ABj8tazMIdLL0DOVdXlCckH72THmI="},"flags/4x3/vn-1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e.svg":{"logical_path":"flags/4x3/vn.svg","mtime":"2020-04-05T17:14:06+02:00","size":494,"digest":"1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e","integrity":"sha256-F2j1zkutRvSQf1mOYJfm4TQFAPTX11p2Jm8+arlGPV4="},"flags/1x1/vn-42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77.svg":{"logical_path":"flags/1x1/vn.svg","mtime":"2020-04-05T17:14:06+02:00","size":498,"digest":"42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77","integrity":"sha256-QttCemdwireb4pEZUwzt8hCPekvOv991Sh2Pru3623c="},"flags/4x3/vu-03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014.svg":{"logical_path":"flags/4x3/vu.svg","mtime":"2020-04-05T17:14:06+02:00","size":3772,"digest":"03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014","integrity":"sha256-A6NqlVD566SKLL5l3Evl4At5RH+m0IYzeARsxYNqQBQ="},"flags/1x1/vu-016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56.svg":{"logical_path":"flags/1x1/vu.svg","mtime":"2020-04-05T17:14:06+02:00","size":3732,"digest":"016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56","integrity":"sha256-AWxo/bXFm5NCqmihltc/32t6hnaU/EBtEzi1B6TQXFY="},"flags/4x3/wf-e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89.svg":{"logical_path":"flags/4x3/wf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89","integrity":"sha256-6DYM42TeaCbwFxa30yDu+HYhtwEBwSnfRZaCp5Amf4k="},"flags/1x1/wf-5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d.svg":{"logical_path":"flags/1x1/wf.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d","integrity":"sha256-WHiHQ1OoEDOILWgxUdepR2Vlb4ZwFfdZhTiOOBejf40="},"flags/4x3/ws-e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26.svg":{"logical_path":"flags/4x3/ws.svg","mtime":"2020-04-05T17:14:06+02:00","size":693,"digest":"e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26","integrity":"sha256-53tVc0B7EWLSbUDe5Z4oaErubrv/mWGsMiQpQ8npbiY="},"flags/1x1/ws-7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18.svg":{"logical_path":"flags/1x1/ws.svg","mtime":"2020-04-05T17:14:06+02:00","size":706,"digest":"7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18","integrity":"sha256-fNyQ9x6SslLcaZAt8vfqM6cDOndqABmXMCOapOj6ixg="},"flags/4x3/ye-ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c.svg":{"logical_path":"flags/4x3/ye.svg","mtime":"2020-04-05T17:14:06+02:00","size":275,"digest":"ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c","integrity":"sha256-zMCvjBIg0Fg9FDLAw0DCGq0U6YfX1z0mAcw1RRo3z5w="},"flags/1x1/ye-d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e.svg":{"logical_path":"flags/1x1/ye.svg","mtime":"2020-04-05T17:14:06+02:00","size":275,"digest":"d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e","integrity":"sha256-11J9WJzr6AN7ieZCr8ygULnaDLTmPtUrvxFvhGH2xg4="},"flags/4x3/yt-b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351.svg":{"logical_path":"flags/4x3/yt.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351","integrity":"sha256-seeO2Y9xEdahFdc9LGBPXB72W6mwFxPKR9kU3g0is1E="},"flags/1x1/yt-794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927.svg":{"logical_path":"flags/1x1/yt.svg","mtime":"2020-04-05T17:14:06+02:00","size":292,"digest":"794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927","integrity":"sha256-eUWXg5vVrFyb3AiF/nE9PQpp44cR+adGVKFZnXx6eSc="},"flags/4x3/za-d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5.svg":{"logical_path":"flags/4x3/za.svg","mtime":"2020-04-05T17:14:06+02:00","size":859,"digest":"d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5","integrity":"sha256-0tRz9OLkcHYEp8qsQvnLZBW/XozjW15yvHh3XYquA+U="},"flags/1x1/za-3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693.svg":{"logical_path":"flags/1x1/za.svg","mtime":"2020-04-05T17:14:06+02:00","size":872,"digest":"3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693","integrity":"sha256-OYWIm4OCKT27OuJzU+hkZhQVr6DvZtKRWRtEffi/hpM="},"flags/4x3/zm-107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4.svg":{"logical_path":"flags/4x3/zm.svg","mtime":"2020-04-05T17:14:06+02:00","size":5497,"digest":"107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4","integrity":"sha256-EHodIM5ku8Wb3z7wIiFXQr9f152UY259Q3ZYbS4LsLQ="},"flags/1x1/zm-4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84.svg":{"logical_path":"flags/1x1/zm.svg","mtime":"2020-04-05T17:14:06+02:00","size":5401,"digest":"4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84","integrity":"sha256-S1V8/RcO1DMoCYYttZh54donl960skoojFJdDXLAu4Q="},"flags/4x3/zw-a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115.svg":{"logical_path":"flags/4x3/zw.svg","mtime":"2020-04-05T17:14:06+02:00","size":6641,"digest":"a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115","integrity":"sha256-o1cYLuQyQ895iTZrEK+xUpb4FMul2aA149Zv9AGqoRU="},"flags/1x1/zw-c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401.svg":{"logical_path":"flags/1x1/zw.svg","mtime":"2020-04-05T17:14:06+02:00","size":6614,"digest":"c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401","integrity":"sha256-x2PTjIffIADAHl+qXvUYI6ngdre56OUiRP81JwoJlAE="},"flags/4x3/es-ca-e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db.svg":{"logical_path":"flags/4x3/es-ca.svg","mtime":"2020-04-05T17:14:06+02:00","size":258,"digest":"e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db","integrity":"sha256-5tZaXq6Za0EKCZ6t/GkcOArQ9zRXjOKsFPLVvzHrY9s="},"flags/1x1/es-ca-620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd.svg":{"logical_path":"flags/1x1/es-ca.svg","mtime":"2020-04-05T17:14:06+02:00","size":257,"digest":"620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd","integrity":"sha256-YgBT3/7vrBxesvRV4sraEgROU2b/plFqO9YR/7vhXc0="},"flags/4x3/eu-8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e.svg":{"logical_path":"flags/4x3/eu.svg","mtime":"2020-04-05T17:14:06+02:00","size":1249,"digest":"8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e","integrity":"sha256-jHSa2s+CtrXVjOUdvPp0jGvGqaIF5e/LbpbxJviVP24="},"flags/1x1/eu-7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9.svg":{"logical_path":"flags/1x1/eu.svg","mtime":"2020-04-05T17:14:06+02:00","size":1250,"digest":"7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9","integrity":"sha256-cIWu1xa/zpa7/CgR/lW8mFUjakIW3XySX8t8FCV4o/k="},"flags/4x3/gb-eng-d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca.svg":{"logical_path":"flags/4x3/gb-eng.svg","mtime":"2020-04-05T17:14:06+02:00","size":242,"digest":"d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca","integrity":"sha256-0t5ZfBDzyDP9jHv76BgYnmIJ2xmIKic5i44YCIRpfso="},"flags/1x1/gb-eng-83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba.svg":{"logical_path":"flags/1x1/gb-eng.svg","mtime":"2020-04-05T17:14:06+02:00","size":232,"digest":"83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba","integrity":"sha256-gziHMNmfZ02CXaTAiWUDZrllq9M4zxXxD1qt/g2Cdro="},"flags/4x3/gb-nir-5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216.svg":{"logical_path":"flags/4x3/gb-nir.svg","mtime":"2020-04-05T17:14:06+02:00","size":25061,"digest":"5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216","integrity":"sha256-UTDHCyCgL59t//acnlWzqgBUkGMY5K/BLGktz7f1UhY="},"flags/1x1/gb-nir-f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558.svg":{"logical_path":"flags/1x1/gb-nir.svg","mtime":"2020-04-05T17:14:06+02:00","size":26487,"digest":"f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558","integrity":"sha256-9cCnJdqePg1zIa51xh/132TQZfG97ObiYlIBc1F35Vg="},"flags/4x3/gb-sct-bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0.svg":{"logical_path":"flags/4x3/gb-sct.svg","mtime":"2020-04-05T17:14:06+02:00","size":231,"digest":"bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0","integrity":"sha256-vET0RI9VxXa0+OGqHWGosodR364Qzz0m0ECL76bQveA="},"flags/1x1/gb-sct-21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1.svg":{"logical_path":"flags/1x1/gb-sct.svg","mtime":"2020-04-05T17:14:06+02:00","size":239,"digest":"21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1","integrity":"sha256-ISNM5sAncW9ep/m1rRKK6gB1NPMu53VX9+loyC52J6E="},"flags/4x3/gb-wls-2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4.svg":{"logical_path":"flags/4x3/gb-wls.svg","mtime":"2020-04-05T17:14:06+02:00","size":9161,"digest":"2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4","integrity":"sha256-LiRnM0m9juhDmA0FLXnDVPmT77NF0e9e4P4pgH6NGdQ="},"flags/1x1/gb-wls-23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843.svg":{"logical_path":"flags/1x1/gb-wls.svg","mtime":"2020-04-05T17:14:06+02:00","size":9055,"digest":"23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843","integrity":"sha256-I6DFY6SSZ4lNILVaW/YImlgtGsInpxRMl1oZG491GEM="},"flags/4x3/un-6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d.svg":{"logical_path":"flags/4x3/un.svg","mtime":"2020-04-05T17:14:06+02:00","size":19935,"digest":"6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d","integrity":"sha256-ZoWZT65dSRjFtqog7ZjDvHNrsb2IrS2GtAJhaCdmeR0="},"flags/1x1/un-774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79.svg":{"logical_path":"flags/1x1/un.svg","mtime":"2020-04-05T17:14:06+02:00","size":20185,"digest":"774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79","integrity":"sha256-d0uuAcvmoA5NqpM5bYYNLOPVO7alofFHDhEXT9kxXXk="},"flags/4x3/xk-201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1.svg":{"logical_path":"flags/4x3/xk.svg","mtime":"2020-04-05T17:14:06+02:00","size":9643,"digest":"201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1","integrity":"sha256-IBQBUHl25XCkEO9v6mpW2w4FdJV1v2G6BKhsdyTGtcE="},"flags/1x1/xk-a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028.svg":{"logical_path":"flags/1x1/xk.svg","mtime":"2020-04-05T17:14:06+02:00","size":8963,"digest":"a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028","integrity":"sha256-pjUlyfcVJ9tyWMOd4uQe20BJVf+z5dK53Rp/MXPjsCg="},"setup_tinymce-d1b1f49b3970ed284c4afa4d37b7d2a6c1d2acd441632470cafe9f54d3317221.js":{"logical_path":"setup_tinymce.js","mtime":"2020-02-24T22:43:56+01:00","size":1033,"digest":"d1b1f49b3970ed284c4afa4d37b7d2a6c1d2acd441632470cafe9f54d3317221","integrity":"sha256-0bH0mzlw7ShMSvpNN7fSpsHSrNRBYyRwyv6fVNMxciE="},"tags-0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c.css":{"logical_path":"tags.css","mtime":"2020-04-05T17:14:06+02:00","size":1377,"digest":"0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c","integrity":"sha256-DVEtdZKRiTKubJYz4C2BBT2sHvvbNBVtnqkDNE9592w="},"application-477b6649aabdf5e46769ad060395b9eef59f900d1582bc14af9538374e5819dd.js":{"logical_path":"application.js","mtime":"2020-02-25T22:08:25+01:00","size":2016172,"digest":"477b6649aabdf5e46769ad060395b9eef59f900d1582bc14af9538374e5819dd","integrity":"sha256-R3tmSaq99eRnaa0GA5W57vWfkA0VgrwUr5U4N05YGd0="},"setup_tinymce-a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b.js":{"logical_path":"setup_tinymce.js","mtime":"2020-04-05T17:14:06+02:00","size":1091,"digest":"a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b","integrity":"sha256-pH7fkz2pz07LjlDkDcaLuDSWA+Vr4bjjsYnNRqwNYZs="},"active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css":{"logical_path":"active_admin.css","mtime":"2020-04-05T17:14:06+02:00","size":108392,"digest":"48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92","integrity":"sha256-SNFtuUbaKSqqYVHnRO1VTVQ0n1llsWNR6OJXnpLVbJI="},"tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js":{"logical_path":"tinymce.js","mtime":"2020-04-05T17:14:06+02:00","size":1088262,"digest":"826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6","integrity":"sha256-gmIQ3EP3EPA9DnbawdFLZwAa9UMSVYEF9K4ltoP5Z/Y="},"tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js":{"logical_path":"tinymce/plugins/advlist/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":3995,"digest":"42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b","integrity":"sha256-Qqz14YF0JrJAMBc8fw7rot/XEmQrbSOAd7bsRebrbws="},"tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js":{"logical_path":"tinymce/plugins/anchor/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":2120,"digest":"5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67","integrity":"sha256-WBPV0XfnjpVB2tYJfyEbdJANF3PRanXhiaFr69NL32c="},"tinymce/plugins/autolink/plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js":{"logical_path":"tinymce/plugins/autolink/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":2619,"digest":"e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b","integrity":"sha256-4ZKUkrIp3osRFppIgYvHd4XW40irhcci475MBJKkWEs="},"tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js":{"logical_path":"tinymce/plugins/autoresize/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":2452,"digest":"68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6","integrity":"sha256-aN/Nm87Z82fBbtBG8rN+WSntTrfhEaIzCE8/bJDprOY="},"tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js":{"logical_path":"tinymce/plugins/autosave/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":3493,"digest":"82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1","integrity":"sha256-gr7ra1Eh0RObILB0+tpjt2mgbC9Kz5JtuH9m/zWcV+E="},"tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js":{"logical_path":"tinymce/plugins/bbcode/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":3117,"digest":"fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9","integrity":"sha256-/fUb20Kg2RYo37HMMh4FJixpMQ2sDNL/5G/8A/AgO9k="},"tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js":{"logical_path":"tinymce/plugins/charmap/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":11957,"digest":"6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa","integrity":"sha256-a/2QhdErINWAwVsLI4R56ZQ/EYJhe/76bjbj2Z2B2/o="},"tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js":{"logical_path":"tinymce/plugins/code/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1226,"digest":"ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f","integrity":"sha256-uiXoK7wlK5v0zI4DfeDJ0V/VOOz00TUuFXbngD8oQC8="},"tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js":{"logical_path":"tinymce/plugins/codesample/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":34548,"digest":"fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07","integrity":"sha256-+teMF4mmpL+FQm96cs0YyuIDrZUgDtr+XX8a7eOIGgc="},"tinymce/plugins/colorpicker/plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js":{"logical_path":"tinymce/plugins/colorpicker/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":550,"digest":"557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9","integrity":"sha256-VX7wAO/lPefY9w8g5V+gQDF/yDa3MbKYOVfPcPog4tk="},"tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js":{"logical_path":"tinymce/plugins/contextmenu/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":550,"digest":"dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440","integrity":"sha256-3O0gmCSVP+mcY7m94aDu8svWRW2F4d6se2a51E57BEA="},"tinymce/plugins/directionality/plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js":{"logical_path":"tinymce/plugins/directionality/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":4315,"digest":"94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08","integrity":"sha256-lOBGlAW2R2uvChAvjLqwOnFQMn7ETABiYpSKLAfrzgg="},"tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js":{"logical_path":"tinymce/plugins/emoticons/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":7128,"digest":"a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7","integrity":"sha256-p30kSBthWeD5CMvzYjrOh+1sb5/t+7e8ttGueQxLsPc="},"tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js":{"logical_path":"tinymce/plugins/fullpage/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":8112,"digest":"625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d","integrity":"sha256-YlEFdhgBvXPEjNCBXimjMMx3+9exLrGLLNlCQNoSVQ0="},"tinymce/plugins/fullscreen/plugin-8d3a02b255cfee8716c47bd3db2b37f88db29d9e2ad4f15d93449a47353dcd74.js":{"logical_path":"tinymce/plugins/fullscreen/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":15300,"digest":"8d3a02b255cfee8716c47bd3db2b37f88db29d9e2ad4f15d93449a47353dcd74","integrity":"sha256-jToCslXP7ocWxHvT2ys3+I2ynZ4q1PFdk0SaRzU9zXQ="},"tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js":{"logical_path":"tinymce/plugins/help/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":14507,"digest":"f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3","integrity":"sha256-+T/9KvZF+rblLyhUxEw6afa5KGAtcCU5UQ9dW9NJN+M="},"tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js":{"logical_path":"tinymce/plugins/hr/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":841,"digest":"295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab","integrity":"sha256-KV/4dhFKyxOpnnawRkq4uy8t/jwUvn0MZ67PmHWLV6s="},"tinymce/plugins/image/plugin-30270ca828ff68dc5d2ecd275555af1203fd5640e710901107b16396df7c042c.js":{"logical_path":"tinymce/plugins/image/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":32449,"digest":"30270ca828ff68dc5d2ecd275555af1203fd5640e710901107b16396df7c042c","integrity":"sha256-MCcMqCj/aNxdLs0nVVWvEgP9VkDnEJARB7Fjlt98BCw="},"tinymce/plugins/imagetools/plugin-fd5441053ef233cec7c8afc19a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2.js":{"logical_path":"tinymce/plugins/imagetools/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":22356,"digest":"fd5441053ef233cec7c8afc19a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2","integrity":"sha256-/VRBBT7yM87HyK/Bmptd/j49C9Uccoj/U528tHYZlcI="},"tinymce/plugins/importcss/plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js":{"logical_path":"tinymce/plugins/importcss/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":5008,"digest":"4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8","integrity":"sha256-QUL+PhNNY+7h88nM7GcRx7fS6Omq3c+HOzvXNdlBL7g="},"tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js":{"logical_path":"tinymce/plugins/insertdatetime/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":3212,"digest":"269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71","integrity":"sha256-JpsPF1D6LaODmYPH+UsqtbPi7hLEKcUDd8MF5TLq73E="},"tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js":{"logical_path":"tinymce/plugins/legacyoutput/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":2984,"digest":"8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942","integrity":"sha256-jSA/4aZ2K+AYjtq+RTMrjjr6mIUzEh4rk0VpfbgdeUI="},"tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js":{"logical_path":"tinymce/plugins/link/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":22838,"digest":"51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0","integrity":"sha256-Ue5UsoNdCec+m5kVmxxlWPHHQ7bclk3kBKH4OxR/AvA="},"tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js":{"logical_path":"tinymce/plugins/lists/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":28144,"digest":"441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019","integrity":"sha256-RB5BPq0eTGoRsY0AnT6OjKzdtvrSRTwzfrq9t7/m0Bk="},"tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js":{"logical_path":"tinymce/plugins/media/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":18373,"digest":"cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5","integrity":"sha256-zAhVNebMcRVL+kxqLV+0NllNK4KtTdZiJgESVIQBUrU="},"tinymce/plugins/nonbreaking/plugin-5310b607e28f57641e5f898203ed632d4b2c9efa59147a8a18816f7b5953bc2b.js":{"logical_path":"tinymce/plugins/nonbreaking/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1585,"digest":"5310b607e28f57641e5f898203ed632d4b2c9efa59147a8a18816f7b5953bc2b","integrity":"sha256-UxC2B+KPV2QeX4mCA+1jLUssnvpZFHqKGIFve1lTvCs="},"tinymce/plugins/noneditable/plugin-e919091f40c8723a221721a200dd3065b455a12e702f0b7bae2ec1cf686c4164.js":{"logical_path":"tinymce/plugins/noneditable/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1842,"digest":"e919091f40c8723a221721a200dd3065b455a12e702f0b7bae2ec1cf686c4164","integrity":"sha256-6RkJH0DIcjoiFyGiAN0wZbRVoS5wLwt7ri7Bz2hsQWQ="},"tinymce/plugins/pagebreak/plugin-425e13892a911bd92b168ae0aa06a006d665a19397715f9c0473cd598300481a.js":{"logical_path":"tinymce/plugins/pagebreak/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1842,"digest":"425e13892a911bd92b168ae0aa06a006d665a19397715f9c0473cd598300481a","integrity":"sha256-Ql4TiSqRG9krForgqgagBtZloZOXcV+cBHPNWYMASBo="},"tinymce/plugins/paste/plugin-90aee93f512530f8797f73814b07bc6701f2a5a8a6f0fabf9bf6d899c50added.js":{"logical_path":"tinymce/plugins/paste/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":31726,"digest":"90aee93f512530f8797f73814b07bc6701f2a5a8a6f0fabf9bf6d899c50added","integrity":"sha256-kK7pP1ElMPh5f3OBSwe8ZwHypaim8Pq/m/bYmcUK3e0="},"tinymce/plugins/preview/plugin-9dc8211e60b8b5f363d7600fab7af941bec58fce14267d33847c0327f166b0d0.js":{"logical_path":"tinymce/plugins/preview/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":2201,"digest":"9dc8211e60b8b5f363d7600fab7af941bec58fce14267d33847c0327f166b0d0","integrity":"sha256-ncghHmC4tfNj12APq3r5Qb7Fj84UJn0zhHwDJ/FmsNA="},"tinymce/plugins/print/plugin-49de95ca9204468faec6e2558ca59854e0b2d1c1a92fcc128c5efe855473aaeb.js":{"logical_path":"tinymce/plugins/print/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":889,"digest":"49de95ca9204468faec6e2558ca59854e0b2d1c1a92fcc128c5efe855473aaeb","integrity":"sha256-Sd6VypIERo+uxuJVjKWYVOCy0cGpL8wSjF7+hVRzqus="},"tinymce/plugins/quickbars/plugin-11325910d8049a6a06e4de6f63db40e107c0c1f7909f00d2a1e4f73335e69870.js":{"logical_path":"tinymce/plugins/quickbars/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":11424,"digest":"11325910d8049a6a06e4de6f63db40e107c0c1f7909f00d2a1e4f73335e69870","integrity":"sha256-ETJZENgEmmoG5N5vY9tA4QfAwfeQnwDSoeT3MzXmmHA="},"tinymce/plugins/save/plugin-009ba0dd48a2b64da2a5cef25a317674bcd2e1087687e5e576b21ffe577f6165.js":{"logical_path":"tinymce/plugins/save/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1823,"digest":"009ba0dd48a2b64da2a5cef25a317674bcd2e1087687e5e576b21ffe577f6165","integrity":"sha256-AJug3Uiitk2ipc7yWjF2dLzS4Qh2h+XldrIf/ld/YWU="},"tinymce/plugins/searchreplace/plugin-4f6fffa4a5b4678dcd31d98b0e7a348dd46ce1987fddcd05ce66445175467ee1.js":{"logical_path":"tinymce/plugins/searchreplace/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":11666,"digest":"4f6fffa4a5b4678dcd31d98b0e7a348dd46ce1987fddcd05ce66445175467ee1","integrity":"sha256-T2//pKW0Z43NMdmLDno0jdRs4Zh/3c0FzmZEUXVGfuE="},"tinymce/plugins/spellchecker/plugin-4b12f52ad986fb417c353268aec9e4ac88ff659fa0eebdb53710367338552859.js":{"logical_path":"tinymce/plugins/spellchecker/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":11033,"digest":"4b12f52ad986fb417c353268aec9e4ac88ff659fa0eebdb53710367338552859","integrity":"sha256-SxL1KtmG+0F8NTJorsnkrIj/ZZ+g7r21NxA2czhVKFk="},"tinymce/plugins/tabfocus/plugin-33e37cc03477e58db19dee8fc489805237c23051b2872c600655a97aac33997e.js":{"logical_path":"tinymce/plugins/tabfocus/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1938,"digest":"33e37cc03477e58db19dee8fc489805237c23051b2872c600655a97aac33997e","integrity":"sha256-M+N8wDR35Y2xne6PxImAUjfCMFGyhyxgBlWpeqwzmX4="},"tinymce/plugins/table/plugin-5751db5cfbd47e116bfcd5884f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js":{"logical_path":"tinymce/plugins/table/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":124784,"digest":"5751db5cfbd47e116bfcd5884f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2","integrity":"sha256-V1HbXPvUfhFr/NWIT5XYfs745My2L3Xj/My07QD3aqI="},"tinymce/plugins/template/plugin-2e39a3920418a7096b790f1452f65cf6c2c542bcadd4d80253e68600c4245029.js":{"logical_path":"tinymce/plugins/template/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":8340,"digest":"2e39a3920418a7096b790f1452f65cf6c2c542bcadd4d80253e68600c4245029","integrity":"sha256-LjmjkgQYpwlreQ8UUvZc9sLFQryt1NgCU+aGAMQkUCk="},"tinymce/plugins/textcolor/plugin-e40462b7c4f244c7778fdf095e5d83446182a135b00cfe8db60ab61f8b67265c.js":{"logical_path":"tinymce/plugins/textcolor/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":546,"digest":"e40462b7c4f244c7778fdf095e5d83446182a135b00cfe8db60ab61f8b67265c","integrity":"sha256-5ARit8TyRMd3j98JXl2DRGGCoTWwDP6Ntgq2H4tnJlw="},"tinymce/plugins/textpattern/plugin-2bdf69fce6e568fa0326515edfca4609aa929f8627b91c4aba60191c334cc098.js":{"logical_path":"tinymce/plugins/textpattern/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":18625,"digest":"2bdf69fce6e568fa0326515edfca4609aa929f8627b91c4aba60191c334cc098","integrity":"sha256-K99p/OblaPoDJlFe38pGCaqSn4YnuRxKumAZHDNMwJg="},"tinymce/plugins/toc/plugin-2ca0272217e118278086c99e0b61e15c8b4b8479f4f112d65771def0f8a16aa7.js":{"logical_path":"tinymce/plugins/toc/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":3601,"digest":"2ca0272217e118278086c99e0b61e15c8b4b8479f4f112d65771def0f8a16aa7","integrity":"sha256-LKAnIhfhGCeAhsmeC2HhXItLhHn08RLWV3He8Pihaqc="},"tinymce/plugins/visualblocks/plugin-8689e379488f2654703aca3c608cdcd147eae96f9786e54b73a9544e53117119.js":{"logical_path":"tinymce/plugins/visualblocks/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":1652,"digest":"8689e379488f2654703aca3c608cdcd147eae96f9786e54b73a9544e53117119","integrity":"sha256-honjeUiPJlRwOso8YIzc0Ufq6W+XhuVLc6lUTlMRcRk="},"tinymce/plugins/visualchars/plugin-8776757ac7546d487273dfb5e923ec77e688efa481c63b6810520cdffce98fac.js":{"logical_path":"tinymce/plugins/visualchars/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":7081,"digest":"8776757ac7546d487273dfb5e923ec77e688efa481c63b6810520cdffce98fac","integrity":"sha256-h3Z1esdUbUhyc9+16SPsd+aI76SBxjtoEFIM3/zpj6w="},"tinymce/plugins/wordcount/plugin-5b232a4307580068da1772d65d204a80b62c31493731619033b0c54bd958d485.js":{"logical_path":"tinymce/plugins/wordcount/plugin.js","mtime":"2020-04-05T17:14:06+02:00","size":13186,"digest":"5b232a4307580068da1772d65d204a80b62c31493731619033b0c54bd958d485","integrity":"sha256-WyMqQwdYAGjaF3LWXSBKgLYsMUk3MWGQM7DFS9lY1IU="},"tinymce/themes/mobile/theme-62854f6e251123c4d8d2df90e854e40f7f2019d926f6ccae83f0fbf8239e92e3.js":{"logical_path":"tinymce/themes/mobile/theme.js","mtime":"2020-04-05T17:14:06+02:00","size":179682,"digest":"62854f6e251123c4d8d2df90e854e40f7f2019d926f6ccae83f0fbf8239e92e3","integrity":"sha256-YoVPbiURI8TY0t+Q6FTkD38gGdkm9syug/D7+COekuM="},"tinymce/themes/silver/theme-1a82a451ff32104162e1b5f3f16cc68522d978009119df89d9293018f9df6418.js":{"logical_path":"tinymce/themes/silver/theme.js","mtime":"2020-04-05T17:14:06+02:00","size":409721,"digest":"1a82a451ff32104162e1b5f3f16cc68522d978009119df89d9293018f9df6418","integrity":"sha256-GoKkUf8yEEFi4bXz8WzGhSLZeACRGd+J2SkwGPnfZBg="},"tinymce/tinymce-bf08240159b9833237a511082b7e9ee4a110acd66fbe79ae4a12806131333b3a.js":{"logical_path":"tinymce/tinymce.js","mtime":"2020-04-05T17:14:06+02:00","size":446859,"digest":"bf08240159b9833237a511082b7e9ee4a110acd66fbe79ae4a12806131333b3a","integrity":"sha256-vwgkAVm5gzI3pREIK36e5KEQrNZvvnmuShKAYTEzOzo="},"tinymce/skins/ui/oxide-dark/content-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.css","mtime":"2020-04-05T17:14:06+02:00","size":17560,"digest":"903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983","integrity":"sha256-kD6ASemL+UWw8utWMpm1J2zVBW3KPYj2YsQ3r/MkeYM="},"tinymce/skins/ui/oxide-dark/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.css","mtime":"2020-04-05T17:14:06+02:00","size":17876,"digest":"8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7","integrity":"sha256-jkqO/kQ6z0jYU5ISNs/jT3MtC7fGA2C4rA0AN2nC1Mc="},"tinymce/skins/ui/oxide-dark/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.inline.min.css","mtime":"2020-04-05T17:14:06+02:00","size":17876,"digest":"8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7","integrity":"sha256-jkqO/kQ6z0jYU5ISNs/jT3MtC7fGA2C4rA0AN2nC1Mc="},"tinymce/skins/ui/oxide-dark/content.min-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css":{"logical_path":"tinymce/skins/ui/oxide-dark/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":17560,"digest":"903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983","integrity":"sha256-kD6ASemL+UWw8utWMpm1J2zVBW3KPYj2YsQ3r/MkeYM="},"tinymce/skins/ui/oxide/content-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css":{"logical_path":"tinymce/skins/ui/oxide/content.css","mtime":"2020-04-05T17:14:06+02:00","size":17935,"digest":"b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2","integrity":"sha256-sBbZDLSDoExb0o2vOkbKubwSmNUUx+6X/lqJzzFERqI="},"tinymce/skins/ui/oxide/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.css","mtime":"2020-04-05T17:14:06+02:00","size":17876,"digest":"8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7","integrity":"sha256-jkqO/kQ6z0jYU5ISNs/jT3MtC7fGA2C4rA0AN2nC1Mc="},"tinymce/skins/ui/oxide/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css":{"logical_path":"tinymce/skins/ui/oxide/content.inline.min.css","mtime":"2020-04-05T17:14:06+02:00","size":17876,"digest":"8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7","integrity":"sha256-jkqO/kQ6z0jYU5ISNs/jT3MtC7fGA2C4rA0AN2nC1Mc="},"tinymce/skins/ui/oxide/content.min-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css":{"logical_path":"tinymce/skins/ui/oxide/content.min.css","mtime":"2020-04-05T17:14:06+02:00","size":17935,"digest":"b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2","integrity":"sha256-sBbZDLSDoExb0o2vOkbKubwSmNUUx+6X/lqJzzFERqI="},"application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js":{"logical_path":"application.js","mtime":"2020-04-05T17:14:06+02:00","size":2018729,"digest":"1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384","integrity":"sha256-G7fGkXfW7p4lY2NIf9rA6vYnMWwUHBTjw/eCL/DSk4Q="}},"assets":{"active_admin.js":"active_admin-2e3a0403157a8ed68141cd8290d3bccbca5af7d9ae0d250ceeb3f8ea76dde342.js","tinymce.js":"tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js","modernizr.js":"modernizr-34f958b565f8b625d03a9216afe69e6819d4d0bb5eb423e48c532aab27d533b0.js","font-awesome/fa-brands-400.eot":"font-awesome/fa-brands-400-e9fdf947c39f06f1b5e63c58eea2f2f74850421b4e32047dacb9c7b75dd42a16.eot","font-awesome/fa-regular-400.eot":"font-awesome/fa-regular-400-c1465a6b8743622f759b08a6d5336e57eb6eabdba1b6393fba6d30d45382f3d2.eot","font-awesome/fa-solid-900.eot":"font-awesome/fa-solid-900-f29eef66eb3ad0e3574d8edb4b9e72a04692a0b2b92d99eb7c4b977611ddd4fe.eot","font-awesome/fa-brands-400.svg":"font-awesome/fa-brands-400-36b51fbe6b87587541b9173cd79c16c6b359ad22a172b922204f9aa87411acd9.svg","font-awesome/fa-regular-400.svg":"font-awesome/fa-regular-400-7ab8a39f4c48b743bd6acbbf5ea4c7547efcb62ad966e9bef3e41996afc44fd4.svg","font-awesome/fa-solid-900.svg":"font-awesome/fa-solid-900-eaf0f3d0cadad17eed1045cf68c30db7abffb4c8ef4ee9cb5f4026fdefc99a59.svg","font-awesome/fa-brands-400.ttf":"font-awesome/fa-brands-400-6b347ff01e588a2a6909ccd7f7f5866b27484391547e9df451ab9b4c27920c71.ttf","font-awesome/fa-regular-400.ttf":"font-awesome/fa-regular-400-6a335d1ce152f2b5b02bf82cc445b02d1abccd7f408a87113424b5f8fcbbfade.ttf","font-awesome/fa-solid-900.ttf":"font-awesome/fa-solid-900-0389b061db08d406704c9bb8819e09c3558ac956287b3e9da8e6645a79d528ea.ttf","font-awesome/fa-brands-400.woff":"font-awesome/fa-brands-400-1af816db9a686faa76bfbda779df959e6213de714a94b87aa7374a151f6f4900.woff","font-awesome/fa-regular-400.woff":"font-awesome/fa-regular-400-864c8f702a5e63198bb76ef0240b599cc065d4904c2afc5da6c8a29bbf0d6c64.woff","font-awesome/fa-solid-900.woff":"font-awesome/fa-solid-900-3b60c77e0c81c1c9cdc9adb96ade6dbac7ef2b9402a316185855de7122e517db.woff","font-awesome/fa-brands-400.woff2":"font-awesome/fa-brands-400-8e4560c16c7970efa47680450b2cf239d4a482c056d308acea12bb9022906c8b.woff2","font-awesome/fa-regular-400.woff2":"font-awesome/fa-regular-400-86e496b536b26ba60cdb68df9dd9143b19a63b65e30e373b0321833aab1295d6.woff2","font-awesome/fa-solid-900.woff2":"font-awesome/fa-solid-900-787d76ad6deab67ccf8bac1b584260205e114f508fc5542b612e3f75d49a34e4.woff2","active_admin/print.css":"active_admin/print-9ca4108e628bcfc6e44c479857ca1db74875fcc9c7966d070fe80be7bb50c98b.css","active_admin.css":"active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css","manifest.js":"manifest-39627dc52fb1b4829654c355d77d306701477a489888ca0be3235350102e858f.js","agendadescommuns.png":"agendadescommuns-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png","alert.png":"alert-762ace9479328243a44061346b64c4d6b997e963c68dfc6bddd9e4d241192906.png","baby_gnu_adl.png":"baby_gnu_adl-463a81820aa2d4ffd8e7210dbce1a19ffcac67ef362aa7b092280c6f95c903fc.png","baby_gnu_adl.svg":"baby_gnu_adl-97251005d3225cf1d58b8c497d6b7905dbc9560cc8acd50118fcce60d0a2679e.svg","communs.png":"communs-0017bef53f6261cb3bf952d4b780c64307369714b2e1e2d4eb9f69dfd986ab33.png","lef-small.png":"lef-small-93285d531af463f877951d63fe844a6e9600b782c2c81f78723b730072fa942e.png","lef.png":"lef-6508797f5a020d87aa0db27dcddd904ba3cc9e438adb1c90f5163af8377acaee.png","linux-presentation-day.png":"linux-presentation-day-863b30562924505dd21841220861f83643d310e0b943a0e6a905462ddfac86f1.png","osm_logo.svg":"osm_logo-0e91a8acd0a92c1bf14204322322e57c65c2a7e318fec6907252fed929b7d6d3.svg","priorite-logiciel-libre-je-soutiens-april_2_m.png":"priorite-logiciel-libre-je-soutiens-april_2_m-6442e454e96ed45cc1ebc40673a6c50bd286b9c28ea6a8b58572e94f7d6459fc.png","regions/CA-QC.png":"regions/CA-QC-70699e6a6e25c69040a3f1548b0afd829c4903ccca2760b6c10f49cc87d5d174.png","team.png":"team-65c86021cf8a1154493664094aeafcbe3e5aa13dc675bb8ef34b220481db98fa.png","application.js":"application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js","application.css":"application-7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837.css","flags/4x3/ad.svg":"flags/4x3/ad-af21bc50f12e6076f79dbddb6049ea32bf747e4a9dbf628781eaf29e81c6232c.svg","flags/1x1/ad.svg":"flags/1x1/ad-5f301eee62631c50459507a29617ac02cc8106359da22b9705d3b73e50dcb839.svg","flags/4x3/ae.svg":"flags/4x3/ae-660f600189f77fbacd2099f5b898864e08a67d0cfe3905c390dcf6b86489dbe4.svg","flags/1x1/ae.svg":"flags/1x1/ae-09943e355944d6870f74093d858503de204f02ca78f70122a5a7d74897134b6d.svg","flags/4x3/af.svg":"flags/4x3/af-c7bfd83db1aefc08972a093aca88285194feb05ab87fb5ede44acb107a2f84e0.svg","flags/1x1/af.svg":"flags/1x1/af-f0fe67d6b190381b4b7a039173c8d74a2dc8f7773ca6ac79de25b0b14c8b80f0.svg","flags/4x3/ag.svg":"flags/4x3/ag-a986cf9b57900ccf9ac75cf39b5f519385e80dc6319fbf584c33e08e5b913d50.svg","flags/1x1/ag.svg":"flags/1x1/ag-b0ee8dc5572db906f3765696c41fbaef3df72651fe0eaa306acfaa310ab80d06.svg","flags/4x3/ai.svg":"flags/4x3/ai-efd0c274edd8ce7fc9b665c783f1fc297218b699965677ea0762fe46c0cceff6.svg","flags/1x1/ai.svg":"flags/1x1/ai-b6ba8568e879a3c78e19c6aa712b47617c9ec91ab03de656f43a41bbbc1cf02f.svg","flags/4x3/al.svg":"flags/4x3/al-87476e4c4b339983bcda71637a718eed1670bed1e39d7419db41b8f9db3a9485.svg","flags/1x1/al.svg":"flags/1x1/al-b8c66c9d8f77fe6292e524164c8072fdaf2728daae036fe52cf541dc8dcea217.svg","flags/4x3/am.svg":"flags/4x3/am-8244966df26ff96a23e4d1ec5411c7f8fdd2b935c48189dfb2e258bda95e986e.svg","flags/1x1/am.svg":"flags/1x1/am-48d3c9b60f3f9f482d83cd54459703e760b1a9524a290a491290588eb656387b.svg","flags/4x3/ao.svg":"flags/4x3/ao-7ac46e1cd0c7d36c3229911376e38f7a9f578f627bd889f23ab5d5c9597cbc36.svg","flags/1x1/ao.svg":"flags/1x1/ao-b4bdbc4113ca80e45c6f96cf620a4638a4fea2dbd143780cc086531bb968ee63.svg","flags/4x3/aq.svg":"flags/4x3/aq-62ee1988140dee84b7c8dd5ffa27db67b3242505b9ac16a91981cd05599c49b4.svg","flags/1x1/aq.svg":"flags/1x1/aq-2fd9279bb4fe7bd6cb53aeab191764e3602ca9e5324e306dd178e9b229ab6d93.svg","flags/4x3/ar.svg":"flags/4x3/ar-036d9c340499588b37c3ff853da7ea105eb35fae876d7cfe034ebe3cc3764cd8.svg","flags/1x1/ar.svg":"flags/1x1/ar-3c7a866d916efd9ab117bebd9651daceee196ee95e420f6fd6be8c8839c067d4.svg","flags/4x3/as.svg":"flags/4x3/as-3193ab22284dbfe3b88049d07de78b43be8bd841ff00e71e84e3c957cbdaee6a.svg","flags/1x1/as.svg":"flags/1x1/as-e8ce581d75d4d6262dcd1abdd577273cbb06d2b15e13df17427c8881775d5c81.svg","flags/4x3/at.svg":"flags/4x3/at-1e513e59cf959d38287ad72edc6f07cda754b7621efb04ed74c333df73ff4176.svg","flags/1x1/at.svg":"flags/1x1/at-73ae6b3c0378e6855da2f6f164668218485117334175d68e44f88a3846a1e179.svg","flags/4x3/au.svg":"flags/4x3/au-213bcc5e8c0c7defccd96f191f39e53f873da8129e55d230faafdd683d4168f9.svg","flags/1x1/au.svg":"flags/1x1/au-dfc984d3a89cfdcaf4417482af869ee04c6d0399aa2905c7d3b5d09d5af4aa5a.svg","flags/4x3/aw.svg":"flags/4x3/aw-424db29f64f3c72757bc5542144a2347d30102d17aeb30ae977559fd68e6f637.svg","flags/1x1/aw.svg":"flags/1x1/aw-b5162dba277197f89aa8ea36a1b50ec057d38b2e8d7229eadbe55fcc7fae20ac.svg","flags/4x3/ax.svg":"flags/4x3/ax-e0b7f6dd55f2611d2a69e9f111dc39c5342069c32855f72933ff53e6f7488811.svg","flags/1x1/ax.svg":"flags/1x1/ax-952771b31fc59cffe5c33677e6d701bcb782262e86a01e7a591eab5a11e47eb3.svg","flags/4x3/az.svg":"flags/4x3/az-3a16ff227d8a0295cf07c9f3fcab7e4004f0c4b6f18c5858dc1633cf6b16fe78.svg","flags/1x1/az.svg":"flags/1x1/az-ce76ab744019e9980d0b9dda74b664e933461cf96eeb305a858a39b9a38b9b17.svg","flags/4x3/ba.svg":"flags/4x3/ba-0145a56b0f2d7e25856b2c62fcef5a8e2d62257ec67c0806fa0e92933082503e.svg","flags/1x1/ba.svg":"flags/1x1/ba-b4466a08b71725f8b5057ef0946b19d77a4d23eed0b81fd1abe4380dd6dde3c1.svg","flags/4x3/bb.svg":"flags/4x3/bb-667b79ca265802e179cfdc8ab06295e9e23301659f610ea11005b7415ae98673.svg","flags/1x1/bb.svg":"flags/1x1/bb-2ce0c4f55ba85069897fa15337b07e10470c9846698257bea85971d4307b417c.svg","flags/4x3/bd.svg":"flags/4x3/bd-d5ee762ba69448db5fadd6a18f5213ca922c0f04fe7d47bca6983afbb301fe2e.svg","flags/1x1/bd.svg":"flags/1x1/bd-749b63aa937201843f63cedfd7d0db3019ddf95b931b4be80693716fd2b84cce.svg","flags/4x3/be.svg":"flags/4x3/be-b3df2b94815bb9f38846ee9bf98e13f70cee99f9b08d80b95f96117255bb14ae.svg","flags/1x1/be.svg":"flags/1x1/be-b998bdfa696aaa291b5c97eb783c3b525082462dc1fa69d32ded3a3df758eacc.svg","flags/4x3/bf.svg":"flags/4x3/bf-bb500b0772dba72a64a3cede92898c2803bb9fbd72743826590cce2a8f4dd066.svg","flags/1x1/bf.svg":"flags/1x1/bf-8f795ecc74ce0431b735094709b535fe2f6ffc49efc32976106ba332741c2244.svg","flags/4x3/bg.svg":"flags/4x3/bg-c67e049a9f003f098e554808e74e3359970e4df9adcfb69b33dcb7bfd5b7a8c5.svg","flags/1x1/bg.svg":"flags/1x1/bg-9ddbc7b674ff21cbf2c0d82ae5e701f89902c4ce8841585e25d8e5ce36902205.svg","flags/4x3/bh.svg":"flags/4x3/bh-b89b1dd1f40b59b119a3788653182317859e93b7e506ba08516de97b8590803e.svg","flags/1x1/bh.svg":"flags/1x1/bh-9a6f53af3af276804af165a6df525364ab0775485e209f3f84a351a9c8537df8.svg","flags/4x3/bi.svg":"flags/4x3/bi-d9cc0b58ddd6c7a1147999f96ff25d4fd80e00a71636f2e0dba952f0c5771532.svg","flags/1x1/bi.svg":"flags/1x1/bi-78476c6682fd0fdc9d621974a6e8daab640383db2f95603a9acdbfbc1d8ebfc3.svg","flags/4x3/bj.svg":"flags/4x3/bj-9085e2dc8e991e0dc1e0192979ca19db8dd9e22cd8ec7228f6289e2b8231a9c2.svg","flags/1x1/bj.svg":"flags/1x1/bj-126f6103d81a930d8d8e185e1064c6502e99d1709e622e371b551f6b0f460ccb.svg","flags/4x3/bl.svg":"flags/4x3/bl-1c0fc0dc03abc76091b6e9b874ab94975b4fb6898ff39dd8fc4705f81b1c94f2.svg","flags/1x1/bl.svg":"flags/1x1/bl-b41eb06ebe9a9ad8176b247be6884b2d2562261aac85b148bb4fc953477701b3.svg","flags/4x3/bm.svg":"flags/4x3/bm-13cb511dd4f639bcb07b08499c6a596ef4a300745a740f5158e70bef9823913a.svg","flags/1x1/bm.svg":"flags/1x1/bm-1af07e53e38af85994614d0e3a1edfae8f5c74091a82c63a051ac1ae889e5125.svg","flags/4x3/bn.svg":"flags/4x3/bn-7c5eafd90f22b14301a5784167e70326557e8732de95e702d9780afb9ba351f6.svg","flags/1x1/bn.svg":"flags/1x1/bn-58930c2508f1ade40240bc93e4fad7de229e1f7b6ca3e5f8bdb97fecda54f24e.svg","flags/4x3/bo.svg":"flags/4x3/bo-4ab35795d73ec5cc7ce784bedbd1c72c7ab5402f3665998d998c1b6e244bf4bc.svg","flags/1x1/bo.svg":"flags/1x1/bo-2a091af9404186fae5b2a5044b061ace8ffa53a874187caf007842ca70bb4294.svg","flags/4x3/bq.svg":"flags/4x3/bq-4f69e04ac3651b9112d1411a085bd6d632544c593fad9d20c27616d809746f07.svg","flags/1x1/bq.svg":"flags/1x1/bq-21e4c616d5cd5c0486640b66400d9c8559cab08650e7601e291c4f5b1643a6ab.svg","flags/4x3/br.svg":"flags/4x3/br-5626545274de6de8e4e2c0f800b7b664bc3521f0ee9bc98547f3cbec3effe2d8.svg","flags/1x1/br.svg":"flags/1x1/br-38e5114c9912eb4f5f1944b4e43eeb96791ef552d855a2f16e177ce7ce145d5e.svg","flags/4x3/bs.svg":"flags/4x3/bs-d45540c1f333ad6b70ae998b317d6c545b2f608b896dc384da069459dd6f0838.svg","flags/1x1/bs.svg":"flags/1x1/bs-f10d64856c57efee0f27b3e7960de782f38e026aa55402e801f10bd5ab505dcf.svg","flags/4x3/bt.svg":"flags/4x3/bt-6f109e6e0465742b9a132f29d356bab77e47f8429263056d4dd77f1f6cdae063.svg","flags/1x1/bt.svg":"flags/1x1/bt-569e13412ede4f000d327ac29c21c49b051d6043719fdad19eabec3a04d44f36.svg","flags/4x3/bv.svg":"flags/4x3/bv-f251755196f171e5d7ab2684a09ce6dfef2037cc273bb14460934e1a2c1c538e.svg","flags/1x1/bv.svg":"flags/1x1/bv-6be2ac5c2b7b353de7dd361efd3a55c228ba00ca60ade0b664d177e3182bbe8f.svg","flags/4x3/bw.svg":"flags/4x3/bw-115b2165fe0c1f881a45409a24bc3bcfd42de9a1cdad5686ed36b06c0d646262.svg","flags/1x1/bw.svg":"flags/1x1/bw-df92e4d60f9cd10c1607dd60b8b10d63b10c9dbe30e0a026ad04670dc06a0e86.svg","flags/4x3/by.svg":"flags/4x3/by-91b26dd7a972c1eba9a387e521bb4db94c891635bb0dd2b55238e4552ca39047.svg","flags/1x1/by.svg":"flags/1x1/by-b7ada8d1fb46487c83b827c16b69f51274e42c655fa537a7ffffa4b20468cafc.svg","flags/4x3/bz.svg":"flags/4x3/bz-173ecf7b1acfb23e569b7f305630bfe1a39943ebf504ad66ac3f5d613e121c9a.svg","flags/1x1/bz.svg":"flags/1x1/bz-1d05349d5a497be367155310b692e7aec42e80797378d748178b70d379da1249.svg","flags/4x3/ca.svg":"flags/4x3/ca-5bda905693ffed32df95f79a8eeac1fbf062630de05f48875e109c35681e2331.svg","flags/1x1/ca.svg":"flags/1x1/ca-85ee89fa698c2efcad4817723fac44311ca520da3be63f52a10e21c3f65e8fad.svg","flags/4x3/cc.svg":"flags/4x3/cc-d49eb3730b2cbe3eaa7028d5bd5f425caafd83154cf47523c27279c10257d3f6.svg","flags/1x1/cc.svg":"flags/1x1/cc-7c46b5f38449f3320ae45f9511a36e1b1c22894f84977c235208ebfb8dea9970.svg","flags/4x3/cd.svg":"flags/4x3/cd-3e5799ffef91d8cb30dc6b847867e209e82cbffe277445202c5f291d36ef0248.svg","flags/1x1/cd.svg":"flags/1x1/cd-600e736963214a9f6701463345f91b569dab9e68f7668317df2f40def88e2d6e.svg","flags/4x3/cf.svg":"flags/4x3/cf-44e68fe825719854c92a8285944e619288d5f651fd17f874153081449c100d1f.svg","flags/1x1/cf.svg":"flags/1x1/cf-b3a61e22f7d8bdc611d532720cf8ed292eab336063c5699036755dc160154175.svg","flags/4x3/cg.svg":"flags/4x3/cg-7e4f9efc379203b9cc9677042de4c07bd411308c80074919035c08fe131dbca2.svg","flags/1x1/cg.svg":"flags/1x1/cg-20a742a21789fc04344e90463c05b35ee2fe86a624d3b6432b4edd6bd3fe651d.svg","flags/4x3/ch.svg":"flags/4x3/ch-4e94e5c3a524345e7c24f3807ab2ca812225ea6ccdb59ec67125b0ea3ed02cd5.svg","flags/1x1/ch.svg":"flags/1x1/ch-a0660f7371c42a1e8be299a9ff0d762ed12b578ea438df33890aae8eba431106.svg","flags/4x3/ci.svg":"flags/4x3/ci-d7fd4124cb8f4d9cc2d70bd2c87543fd279750bd7082d51e5916fea65847e992.svg","flags/1x1/ci.svg":"flags/1x1/ci-ba7f763547ca1b9243fcf644d83f3100546f7fe557f22fb380b5fcddef7e02bc.svg","flags/4x3/ck.svg":"flags/4x3/ck-95e850b027e198e275840a2c96fde8be006f7c4b50d274c2da10dcfad50d3cf8.svg","flags/1x1/ck.svg":"flags/1x1/ck-a60ec48dfd291bcf6e032345fdcf72edc995efaeb749534a38d192d81891b754.svg","flags/4x3/cl.svg":"flags/4x3/cl-b0c3f433217a039247b2c7f3f8694d05237ba684726b604a33c102d10f279fde.svg","flags/1x1/cl.svg":"flags/1x1/cl-250f409f558fe17f01f32614ebf6275c2fcce776ce50ec959642babbc67036e0.svg","flags/4x3/cm.svg":"flags/4x3/cm-1b2e52b5962f38e58da1973b23796ccefae0e82321856c61bda68bd3f277ea6f.svg","flags/1x1/cm.svg":"flags/1x1/cm-809ea5ab516c4e59ee5f90c4b0515365c3d41d77544ff10abb1dea88c9f377e4.svg","flags/4x3/cn.svg":"flags/4x3/cn-e80d714480a795617992d733d0678e5ad5025f8852b35d20a402a78fce4ccaf8.svg","flags/1x1/cn.svg":"flags/1x1/cn-ab9a2dc6b1aaeaa7017b96904b7a760517ac9e57ee589ee6dd1238c7754bd8f6.svg","flags/4x3/co.svg":"flags/4x3/co-bc15eabb8dc37b36d7be228c68a2f7a62957a3ba9e4d8c35db50b919c9d150da.svg","flags/1x1/co.svg":"flags/1x1/co-cb36ae4084e1e678bed8e0a64397e0109f9afc95c241a04c8e3da36a577cfaf2.svg","flags/4x3/cr.svg":"flags/4x3/cr-12fe80c814de382b53955ab5223514278f7b4985f51c32fd1f60356280e1e5cd.svg","flags/1x1/cr.svg":"flags/1x1/cr-c7830f0e5b8025c1f9205b2d89ce1b7ac81ec64f6a9e9093da9a2d9e05206b49.svg","flags/4x3/cu.svg":"flags/4x3/cu-0a09bdca54a5347ba1238476ea90ea7d7d99fec7163df43e762313ddbce9b145.svg","flags/1x1/cu.svg":"flags/1x1/cu-f5f7e6c58d9ee8046fb142f0d35f23df7e49763b35305b7fcc719db23554b404.svg","flags/4x3/cv.svg":"flags/4x3/cv-3ab6aaaf11d9a3a6f2fba17248ea85d36967163214e98b0bb30123d0b3def532.svg","flags/1x1/cv.svg":"flags/1x1/cv-698aea344d6bb9f87de513ff525d16fdb2590ad1cd7b2d1200878c1e7cd2ce64.svg","flags/4x3/cw.svg":"flags/4x3/cw-186b6d2347845c903689468db9a51cec41d7458461725fcdcecab27eebc3c376.svg","flags/1x1/cw.svg":"flags/1x1/cw-e1c281f45124597730be155051b4628bf25974ff4dac5f990262c5f074ab7484.svg","flags/4x3/cx.svg":"flags/4x3/cx-aaf17168e49e9efc24b259929e40b7b135f78f4ee327577ab57e9a14fe8dfe9d.svg","flags/1x1/cx.svg":"flags/1x1/cx-8af706f9e34d7867578f025a073e033c901b05012519a65bac5d319b961f1a99.svg","flags/4x3/cy.svg":"flags/4x3/cy-88d041c0eec06dab21e4d9c777ead616f2ab97eedef8b619f78f95dd51e74ab7.svg","flags/1x1/cy.svg":"flags/1x1/cy-0e1f361ed98ca9f027657583276d0f0e404fcedc95cb314fd5122793e4cec9ba.svg","flags/4x3/cz.svg":"flags/4x3/cz-a094f93ce465415ead374aa60fb7ea55921b956683f2809d6a08b1af81ffd609.svg","flags/1x1/cz.svg":"flags/1x1/cz-fca144bdc4bc563cc612a0bc931738ab096a362323982a4ac1e2f74d66792c77.svg","flags/4x3/de.svg":"flags/4x3/de-226631a8fa9deee07022680ce0461b7a09b416b616c56ebcaf21f50e2b34ea8f.svg","flags/1x1/de.svg":"flags/1x1/de-d7cc619b1c880981e17adba3bd44cb8addfff1d63e7cb2b4d59a88abe5ff31e0.svg","flags/4x3/dj.svg":"flags/4x3/dj-55b23581525743a29fb3602ae988dc91e8f6f5ea07d66337ea8051bf92e7c3ae.svg","flags/1x1/dj.svg":"flags/1x1/dj-ffd9ebcba08793bb8ed7e508cd1187d9e867e43ca0c9c669c6eca2a7c0e61896.svg","flags/4x3/dk.svg":"flags/4x3/dk-c29517b4eb6b056475330a26a3f929c0523ef80268a8457ca5d44a7def3cdf44.svg","flags/1x1/dk.svg":"flags/1x1/dk-feeb27682ce93b2e5fe14a32a67aa7141f505725daf8b6018864b0bbec103469.svg","flags/4x3/dm.svg":"flags/4x3/dm-80221b928ecc38c82c3d290b36be1c6c9388a51e9533c31c197016b00e63b070.svg","flags/1x1/dm.svg":"flags/1x1/dm-e5d72576962d7a5ecd56631c5a2541c1359f15f086a3d384c563983c40fc2711.svg","flags/4x3/do.svg":"flags/4x3/do-d399ea939e23c000ce12ba4f7c4d4abccdd28f783248b819ebb20b90546f619f.svg","flags/1x1/do.svg":"flags/1x1/do-2af33aacc98dde2ca5cc2f3499370e9715b5f76b5ca7446de00490083346754c.svg","flags/4x3/dz.svg":"flags/4x3/dz-6a1e2abb0d8a33b0209a37123e44710b4b27b50723a5d2ab7fb8746c88447cf6.svg","flags/1x1/dz.svg":"flags/1x1/dz-75568129d430536c4a994d05f114e0b1b91e10af7350d635f2da721f73d4871c.svg","flags/4x3/ec.svg":"flags/4x3/ec-63bf6e3ac63634199c0929715a715109f8ad229c526c08bfbe7f6a7a9f30fcde.svg","flags/1x1/ec.svg":"flags/1x1/ec-672567f45dcd0d543af21e7518c41bf8fe74fa090141736b414697b682971f84.svg","flags/4x3/ee.svg":"flags/4x3/ee-b4c2ebcd79e821fb8ee37e39d688560a79dee100a981402224a4f2bd9762e41e.svg","flags/1x1/ee.svg":"flags/1x1/ee-53df0c62e5835adce98e59520ae55ddb9f2a35882c5aba2ccb4021d6b0ee88fd.svg","flags/4x3/eg.svg":"flags/4x3/eg-83f4a01c0e76210691d46b0cff7ec97b6ed93290c32a1e94fab96efd3d9b7d42.svg","flags/1x1/eg.svg":"flags/1x1/eg-6234c7747c535705d9b6725f4a6a09158774f288cb14d7e99295822c4e561c22.svg","flags/4x3/eh.svg":"flags/4x3/eh-62f153a1a4ea6e8ed2f79f26ed10eccbbb295bed16ecb46f4e77a6f5f49df639.svg","flags/1x1/eh.svg":"flags/1x1/eh-15abbba286e48ba50c4aec3b765d8c05f9b4c53ae385a7c8a38d3cebd688b03c.svg","flags/4x3/er.svg":"flags/4x3/er-4c57685960d0cd27bc4ee6cc8356f2ed8d0a5cc54a22b5b503529091705a2b04.svg","flags/1x1/er.svg":"flags/1x1/er-29ca0e1f31a14f5ee5674a3fcec9aec0ec652b458b66cffd60ac0839fc364729.svg","flags/4x3/es.svg":"flags/4x3/es-ab3d438837b7f1c4ebce6980cc9274cd2e6adcc8af9be6f5cfc47ef2c4c464e3.svg","flags/1x1/es.svg":"flags/1x1/es-bfe2d95adf69f339badcf901e33d12c0b6146d7d16a1100b12c3abc13dc3521c.svg","flags/4x3/et.svg":"flags/4x3/et-e28f1f69ecf1b26e002d8c8dad55ec8af5e822b3cca7f111c399e72b4e0f9c79.svg","flags/1x1/et.svg":"flags/1x1/et-59795d6d33015e4ec1042861541df6c2034e8e1880869d695a1fea5a951e2e71.svg","flags/4x3/fi.svg":"flags/4x3/fi-83783a7dc69702dfbb59833d81c309748ffb04574aab8ed1cb7589189c0f80d2.svg","flags/1x1/fi.svg":"flags/1x1/fi-6c32372acfba871cdcd22614f0ebbf58ea2b88de648ee4e843a2bbda5c0a3336.svg","flags/4x3/fj.svg":"flags/4x3/fj-4972d31a0e0d2516c08a305844e5310bf8963d7cca69cc86ed4ed2e121f41be9.svg","flags/1x1/fj.svg":"flags/1x1/fj-36ff3e628fc0bee99878cc9740e54a7b95e9599c263595b5db0c8be2c6ab8978.svg","flags/4x3/fk.svg":"flags/4x3/fk-6d11c1ecbf413d27f4068e211b7f5f46e83b9067c9fd73ea9c3f5d48c7bbb457.svg","flags/1x1/fk.svg":"flags/1x1/fk-2705e5d996f753fdd666b1d3a7c6f4085adc070be85957ba71fa1f07f17eca79.svg","flags/4x3/fm.svg":"flags/4x3/fm-881458469239020624b90d2601d347330d21dd7b512c011cba2bcb0c4dc4ea75.svg","flags/1x1/fm.svg":"flags/1x1/fm-0b0d81c2932c2a3a114f5095a9e89e6ac274c54d0cd9e794136a339ad4df8cb4.svg","flags/4x3/fo.svg":"flags/4x3/fo-c0b32df51365a3947ddcda18c15575c5c617b75b29330d78e606e684f3304334.svg","flags/1x1/fo.svg":"flags/1x1/fo-5910fc8006f125ce3c7ec5b93b86ccbe0a79e5fbc2e60a9a9b481c882d1bac7c.svg","flags/4x3/fr.svg":"flags/4x3/fr-63667b36ddd95d29a9f163e3ab4b9f7000dcd310350c565c19b975a0a2418117.svg","flags/1x1/fr.svg":"flags/1x1/fr-5d247ee39647a05667b52e04510b76ae465c009da242ff8d98637d138ea410ff.svg","flags/4x3/ga.svg":"flags/4x3/ga-6cf1908ef7a47d61ead3f969bb5dfb96e4b691b66291e2cd7dc71c513d1a5659.svg","flags/1x1/ga.svg":"flags/1x1/ga-2b2ea5084b741bf0b1dd1ebc87ee72e4e9fad78046275d37becb41831d259686.svg","flags/4x3/gb.svg":"flags/4x3/gb-825310f9bcc8892559317bfc87fc28d5d7bad06c02d562b5740aafcf4b040803.svg","flags/1x1/gb.svg":"flags/1x1/gb-6ce6ebb0c16f1f4aa74a78a5db382783545d1ca28f2b6133b6228b4dff0340f0.svg","flags/4x3/gd.svg":"flags/4x3/gd-eb435c57c240fd302400f1ecb887ec63c672b524032bd0e7c6261ae6a2f1e249.svg","flags/1x1/gd.svg":"flags/1x1/gd-407dac34390ab8b1ed80fafa4f7ef1fe3225d1d92c5403a80264b4956177e51d.svg","flags/4x3/ge.svg":"flags/4x3/ge-3054d4e61ec2de31e08ce51c8e1bff64fe2d4cc39f3bc6b3988a5e3aab32379c.svg","flags/1x1/ge.svg":"flags/1x1/ge-3f7e3b7075838308212d191c4ff1ff3915a4a0c3e1b140420bc1095be16aee0a.svg","flags/4x3/gf.svg":"flags/4x3/gf-8b1d049abec1dc1e6e28247d4f649f5146e8c29a4b928f94c97741da16bcc422.svg","flags/1x1/gf.svg":"flags/1x1/gf-7e25c5fdc494625ccc8390d3fb1cc6d9a423372c7f30a6c402b138b11840e59f.svg","flags/4x3/gg.svg":"flags/4x3/gg-7a521b07e2a60e914abf16a2553dd7b8f18d3ff21ece58b2c41ba5264c3117e3.svg","flags/1x1/gg.svg":"flags/1x1/gg-e01d6706db308999fde70ce031a660160c3234d9d6e7ba4547f10975e5a1ffcf.svg","flags/4x3/gh.svg":"flags/4x3/gh-120554a519bce5c340f98f8cb7bcf98ea18572d3ad137804b4b0c5d806a54016.svg","flags/1x1/gh.svg":"flags/1x1/gh-b979935b065bbef93c1a62caedf03ae3833c055f617bdc32824fd15c59d4bf6e.svg","flags/4x3/gi.svg":"flags/4x3/gi-c84fb25bb5c8d9b9cc2d70f630a927f4ea4f4cbeb2674eb97b4b9dc2d2256c14.svg","flags/1x1/gi.svg":"flags/1x1/gi-7283b9d6ac27b497fafd867b580d0f12fea7551a4211150087d95816c2143e21.svg","flags/4x3/gl.svg":"flags/4x3/gl-1149b6b3a90dd6f4f6ac8dd4af0ddfcb33e801858e4835c5f8c6c7346dee3288.svg","flags/1x1/gl.svg":"flags/1x1/gl-5e6efacd630a7f36a1574444a9893613e5c6d03d5d569e140b592f8e7542feb8.svg","flags/4x3/gm.svg":"flags/4x3/gm-6d6da6987a4243bb9fff8138ad9e0b301098c6f963cacedf997850fb679ec28c.svg","flags/1x1/gm.svg":"flags/1x1/gm-5f8874f8ab093f84c3465b3110ed400cd8eb457110f9b61e684edc867ef99b2f.svg","flags/4x3/gn.svg":"flags/4x3/gn-735109ba23330ad9e8602b6e27e658bd12e36f2616b7ead65bd908d553b2acda.svg","flags/1x1/gn.svg":"flags/1x1/gn-255e2c2930544e25827f220ebc26c6f533d291079f34f2ad6644533d3dfbd726.svg","flags/4x3/gp.svg":"flags/4x3/gp-b9c509941ec97521fd81904dc81a2845faa44349cc068344f4f738dad7a558b2.svg","flags/1x1/gp.svg":"flags/1x1/gp-8bf5d31fdbb388b5bee19d19f7a7cf1e0c0378d5759c5a4254549b2542727a2c.svg","flags/4x3/gq.svg":"flags/4x3/gq-52b8daea18383c355f1f6db428bcd4ebdf777734148da4403f1e93797b4dc9da.svg","flags/1x1/gq.svg":"flags/1x1/gq-f4a44fd2e337cfa52f199707b606891ab0bd3b68bfaeca033e70c274739a6131.svg","flags/4x3/gr.svg":"flags/4x3/gr-d22330d2af43ce22eab7d8ec9efdbe27ccd9ac1255f3bd289aa671db07fd0205.svg","flags/1x1/gr.svg":"flags/1x1/gr-565e017faa966d20d9a4051a1853c366bbd59ebaaced77fed32f850b8a9c5099.svg","flags/4x3/gs.svg":"flags/4x3/gs-ad593ae4b9e8c7a4c109a15385a221464240cf3f77e607af2adba53d7b7d2a69.svg","flags/1x1/gs.svg":"flags/1x1/gs-718e0e89dee0f138fe8e45e84c64f72259b41d0f36224b9b2507bce77be21186.svg","flags/4x3/gt.svg":"flags/4x3/gt-aa19f58abef6e0b68f7bee73452e26679a640c0fed12f9fc2cb6cde32fc04da5.svg","flags/1x1/gt.svg":"flags/1x1/gt-66d29cdd8660d4380902884c08d9be64f3d8a02536873814f2909778b6e234e0.svg","flags/4x3/gu.svg":"flags/4x3/gu-6d39ec648f0366b77918f779bef9619d06561d223bcb98b56813dc32e8403d2d.svg","flags/1x1/gu.svg":"flags/1x1/gu-390cbafa22e9b9131e3bf37109317115684519abf87088acfa0f355c608b4729.svg","flags/4x3/gw.svg":"flags/4x3/gw-ef2b9b0a28a50cc12689fb576cf4dc5b507b01fbb15a498298921d7a57f0fd77.svg","flags/1x1/gw.svg":"flags/1x1/gw-14078000daf10cc29b7167c3f9b1b239ab3708b3bad35e8ef185cb92643f88de.svg","flags/4x3/gy.svg":"flags/4x3/gy-0b13a1778887768d5e7767f5e4a484444f4cf3be655142fd6d5d5acb945e7919.svg","flags/1x1/gy.svg":"flags/1x1/gy-7562ed6db701af0658a763a1d4701c12467cd962cfd0bfd262cac16d4fc80c88.svg","flags/4x3/hk.svg":"flags/4x3/hk-17c1c66141f1aa0339fefc5863866d67eabcb1732bda7d5d757b2cb937c93da1.svg","flags/1x1/hk.svg":"flags/1x1/hk-9f59b3d68a943ed25c5e00cb3d1b97d522951d85db0f66fed087418358f88927.svg","flags/4x3/hm.svg":"flags/4x3/hm-d0e56b8208a450dc19b6e1eafaa826c439a318b33314c503ebab05d7a9d14ba3.svg","flags/1x1/hm.svg":"flags/1x1/hm-78ed36c627b9370e2c8737226f62105718c18b2f04c62618168e43adcccc1ca6.svg","flags/4x3/hn.svg":"flags/4x3/hn-38a5028605f6645a95c607f24db6d27d5b915580be561a365cfb9d238736b594.svg","flags/1x1/hn.svg":"flags/1x1/hn-79cc97901f534c2998d1ec6cd506a81b59eabc0a040dc66ee46ef8a7405e6641.svg","flags/4x3/hr.svg":"flags/4x3/hr-b0b1d075c651e2ceb10f558b33a13c9dd89310edfbe67df0f46a7b5d8d550de6.svg","flags/1x1/hr.svg":"flags/1x1/hr-1041347a78192d0e7688af7adec3cd93d85fd0dd7ab792dc80fd82629708a7bf.svg","flags/4x3/ht.svg":"flags/4x3/ht-ba77c23de904dea8ddf2390f9e363fa96679253b425be7d4dbf0021c4a0c9911.svg","flags/1x1/ht.svg":"flags/1x1/ht-092fc65d74cf70aa35a8dd3a5581f5bb668aba72ddf788c4ffc22278be4ee70b.svg","flags/4x3/hu.svg":"flags/4x3/hu-470431d1ed0dc2099f20313f78f906848acaf9efce57c543d83b3b62f8b7a448.svg","flags/1x1/hu.svg":"flags/1x1/hu-ac2bf4284d73c0c0d607f5ec46855b982f56d2ee430306fca04da3a5cda8515b.svg","flags/4x3/id.svg":"flags/4x3/id-c9871d91b6b58310831a0d78b904e44eb92a64630ac219ac43165d0ca8f0dacd.svg","flags/1x1/id.svg":"flags/1x1/id-b4e3434244c27c95f6933e19a65fc273348f2edc6b695dd5dfe810d12f5459aa.svg","flags/4x3/ie.svg":"flags/4x3/ie-4d73eedf98a4c487c352db58751ff766f05f6aa3bfac1ecc0f9384e50d019191.svg","flags/1x1/ie.svg":"flags/1x1/ie-e8a2121f51aa8eccbaab9fdc1e986418f75b6e3adf81329b1251db3a6678851d.svg","flags/4x3/il.svg":"flags/4x3/il-1dcc3e315cf8b00b8a9914d9ce696b05612aec294bf85e784b25c672b259c58a.svg","flags/1x1/il.svg":"flags/1x1/il-343c040339a72ace51208700f40fe69bfb90e3b4f5ad62b1ed69ac404470722a.svg","flags/4x3/im.svg":"flags/4x3/im-5b256ebd75ab1fc4d1e7af4f4306b4c6b54ae64a67eb1d968a84065a007b7cd7.svg","flags/1x1/im.svg":"flags/1x1/im-6dd9078e0d7934b575a00aa2b81effafa5b8aed1fa6c3f6824d56187ca7a63ba.svg","flags/4x3/in.svg":"flags/4x3/in-cbc15f5fb40df22adf2b3792eb6c1d359e1a7affb44318a5a779943fc7299d45.svg","flags/1x1/in.svg":"flags/1x1/in-dd68b8ac425f8b0e1a479337e4fb6e8c647241f5042e63ba4cd9853e5e3b661b.svg","flags/4x3/io.svg":"flags/4x3/io-b942bddf710a42e617b2fcabb8bdfbe210b85d2ac9a60b5063d513ecc6648eec.svg","flags/1x1/io.svg":"flags/1x1/io-5b124813bf16fe4c96b606443527a5f17f6cdde9f0abf94d6884f5f81118198e.svg","flags/4x3/iq.svg":"flags/4x3/iq-4b13b01690d870625d61a87bbaf4328a714626698d056dc3f56a9a37c133d77a.svg","flags/1x1/iq.svg":"flags/1x1/iq-4a529e765a46ab3cea5be74d6754d6646b175cc5da0a725114e1fcd1f877734c.svg","flags/4x3/ir.svg":"flags/4x3/ir-2047b977f2d7e8835035e30551fe8333403452134c3164105ed30b2e6fd14a23.svg","flags/1x1/ir.svg":"flags/1x1/ir-18b8f0da914e052490e627f2dbe57a24a1448e84cfedead2d2ffa9795135afc6.svg","flags/4x3/is.svg":"flags/4x3/is-89b266e3c5824fabc91b8d04a830a3f32c62484b49543bc3921e14c57ba6cb7e.svg","flags/1x1/is.svg":"flags/1x1/is-74bbf9d0f1714110da6ba438163ff7de135dd91d32b2172757a943ac7bc355a3.svg","flags/4x3/it.svg":"flags/4x3/it-2d46fd7fde3f19c3f278fe9028e6fab6fa997fbdda3e18116fb70e57cfc78598.svg","flags/1x1/it.svg":"flags/1x1/it-28a4339b1dc59c4e776f6bf07f51117de9fade0a8a749492e478764b8bd8c2f2.svg","flags/4x3/je.svg":"flags/4x3/je-365f0f9dea4804f7f9a9ca052beb1b39bc0811cd5d47d013094418d5b6c53d1a.svg","flags/1x1/je.svg":"flags/1x1/je-0cdc51ec29101669d333d4b91b61d87f3d302473cc81bd17ff80ccbed6c7e0f6.svg","flags/4x3/jm.svg":"flags/4x3/jm-fc7c5d90b44fa5ba160c644f6c7f8918f5460a5842a517e3fd99ea94ba963594.svg","flags/1x1/jm.svg":"flags/1x1/jm-1b80b0d1f940a94945335aa2683e0195890c35f5bae24a3321c7752c5cdf8416.svg","flags/4x3/jo.svg":"flags/4x3/jo-c3109f9f849f581918a4567768bd334506cb517bf8a3ed3afc8e670ae434af27.svg","flags/1x1/jo.svg":"flags/1x1/jo-e183a9aa500d7bbef58df474d4b1a0554e4c68e187c9803a68272cbbecd45118.svg","flags/4x3/jp.svg":"flags/4x3/jp-e759dccba5bc383814ab190daba0d12ef591ad9f161502a47222c2eacf770606.svg","flags/1x1/jp.svg":"flags/1x1/jp-0573d020325a0795ebf2b83b6d604ecce164efc5c6e16c6fb4a48f124d2902d5.svg","flags/4x3/ke.svg":"flags/4x3/ke-c6390bd1dead222763be7c93e10ce8d48ce550d2083d00b907504d01f3be8da8.svg","flags/1x1/ke.svg":"flags/1x1/ke-3cc6fb778db9f415d50e5651069719c7becdcb7cca53868586a287e024e26d8f.svg","flags/4x3/kg.svg":"flags/4x3/kg-618432f0701371ef7260a11fde248179e49360f1acd1a0fd07c4efcd153f4721.svg","flags/1x1/kg.svg":"flags/1x1/kg-059ee9448b06e00eee47ca8a059e608618ddcd7e2fbb949149ee0bd46836dd35.svg","flags/4x3/kh.svg":"flags/4x3/kh-ec1e0984d167e8c6bfa026cfddd6048c64e9b3634a99c9a20db194f28f10b1a6.svg","flags/1x1/kh.svg":"flags/1x1/kh-16c097cc28b308b92d65e4ad3c025160256a36838bae538c0b1357f044788da3.svg","flags/4x3/ki.svg":"flags/4x3/ki-591a87de7bbeb711663f6dcaad93e269108ca6ab9ccbcb653e84c9779e9d3e2d.svg","flags/1x1/ki.svg":"flags/1x1/ki-210537cc2766114f72f9f838c5dc138a18c3f49e78575f7b1d699873061b0315.svg","flags/4x3/km.svg":"flags/4x3/km-f6cd3ead925661739946379d122420dfd0287b6332e25ecefc5e8a97adefdb0f.svg","flags/1x1/km.svg":"flags/1x1/km-a6a467329036e9963b7aca186e74b5affd615663ad9802807a64c04aa79a5f19.svg","flags/4x3/kn.svg":"flags/4x3/kn-d0f010da3fc35e1b9b520e8c063eaf9a650c16a0dd6507928cbf013a04508924.svg","flags/1x1/kn.svg":"flags/1x1/kn-ae4abba1402d60d25f380c8aa7dd081e7efc1349733b36ffbc7e61b951b54363.svg","flags/4x3/kp.svg":"flags/4x3/kp-8d34a3fd7d34c53ce01854e2b1e69c71fd6b0c65dda1b8aa90f2935a551b8f79.svg","flags/1x1/kp.svg":"flags/1x1/kp-d0cb440831181be36d7ea60f5adff5bb1dae7d8ab06738a920ab994ad42652cc.svg","flags/4x3/kr.svg":"flags/4x3/kr-3162c67e01704d06fd77d78fefeb5937fee5f4ee326d369da13a5b25b75db16a.svg","flags/1x1/kr.svg":"flags/1x1/kr-3f72f5b1c788ac2bc2d7e3680f25f55692dff661e0dc3819bb78cd711f152d76.svg","flags/4x3/kw.svg":"flags/4x3/kw-ac538e6cbafc0a94611bb9c653df3056cfa3303faff143308aa5680178e34f71.svg","flags/1x1/kw.svg":"flags/1x1/kw-c874c334dca89cb394b3534eb2eb5ed408293d32052e9179fc75832191b5759e.svg","flags/4x3/ky.svg":"flags/4x3/ky-fcecffb01a890f01464e6067e5593099b9919746443d16c69c7e223e13be50ef.svg","flags/1x1/ky.svg":"flags/1x1/ky-707d019e77714b8dee2074bbd17aaac157d2de0991a8d4c8472a038403c5471f.svg","flags/4x3/kz.svg":"flags/4x3/kz-8214283b99e5781396996fdfd84c551ea7ac15a248465ccbb9358b13373d802a.svg","flags/1x1/kz.svg":"flags/1x1/kz-af4496d258a36c41ce92d7713c7206e2e92ac6037c6dcdac687ba815e74a4f49.svg","flags/4x3/la.svg":"flags/4x3/la-1f70bf3805542fff3addba9e2148d541cb30b125c692a8c7e0868cf4c7dea409.svg","flags/1x1/la.svg":"flags/1x1/la-dafd3a0212ab43c02323bd5bb6fb1b4378a96e05cd352c354f6f4863a3f43f6d.svg","flags/4x3/lb.svg":"flags/4x3/lb-80a2aaa6b4ad4e44ad197ccdb7defba58af6ff0ab0692817804de12ff594bc8e.svg","flags/1x1/lb.svg":"flags/1x1/lb-5da3263f37d0e740a94283824f5f0ad6c3ceed6f12dbe108fce0ddd760418373.svg","flags/4x3/lc.svg":"flags/4x3/lc-6f18658956e6da5c5bf468181b465a33c33045134dfb327d35a9b6ea6c56d23e.svg","flags/1x1/lc.svg":"flags/1x1/lc-c4afe17342a7894f5dc7eed56716e9149378561a12c2bbd88d4c0bf740087c38.svg","flags/4x3/li.svg":"flags/4x3/li-c97f90de5ee09d5594f9d3154e7eae0158a8f922e394c3ad24502a9274dd68fb.svg","flags/1x1/li.svg":"flags/1x1/li-956ad50772021978069fde52a08f25b6fe310b0019ccabe8acd274099fb21ad5.svg","flags/4x3/lk.svg":"flags/4x3/lk-599de52b1450460f083ac0654eb4e833c06b809903c7ce11cbe202005e3f080e.svg","flags/1x1/lk.svg":"flags/1x1/lk-379d62d2296d30d484a1c0469582d3a95736284bcdbc58e9d6bcb4f648836d1d.svg","flags/4x3/lr.svg":"flags/4x3/lr-66c008c2d58e2b50772ad95a30801a9b62566d5f3ac8ec1ea1ad41aaadc0f4c7.svg","flags/1x1/lr.svg":"flags/1x1/lr-371f542a58fe7e4a3c67dc92f92009757337ba428a368af4e077a4cccac652e6.svg","flags/4x3/ls.svg":"flags/4x3/ls-285534456c1acd523d23e09220799faf851218c1b2d8015b0bb557910ca1b9e4.svg","flags/1x1/ls.svg":"flags/1x1/ls-80ad805e34b571d758604e2b1b735fe2c0f38dc1593c11c7d9a987e89f8fc6aa.svg","flags/4x3/lt.svg":"flags/4x3/lt-9012691cb1689944fd0813b33b7a58fb97921944ec8988f23590fed21a1ff07c.svg","flags/1x1/lt.svg":"flags/1x1/lt-74f423c6210d7dc76867b1f620d0d15644db5c39b9e4197805ad20504d271f08.svg","flags/4x3/lu.svg":"flags/4x3/lu-4622624d698a9577a3fb92bd4fa5f98f305d704bc51306b86d109c6c865d069a.svg","flags/1x1/lu.svg":"flags/1x1/lu-67ceb25fba1fc6a2c3836cef4033fad77752db08bcbc88fa7622b22a5f6ada2e.svg","flags/4x3/lv.svg":"flags/4x3/lv-dc67526a1833d2cd7c50d87f0da252e1fa2b361d7d418715535d3aa63e5a76b7.svg","flags/1x1/lv.svg":"flags/1x1/lv-23e2589c8a374ecf955772e01a4b6a7302133346737279eac1e8214b68bb0308.svg","flags/4x3/ly.svg":"flags/4x3/ly-3ad0387cfe11942e1f55114d49e6083185afde3528d2b05885160bdd043ff470.svg","flags/1x1/ly.svg":"flags/1x1/ly-5139e7519b7c833dfca645e2e7424517489927cb9facc6f0dff3d80b72d1e59d.svg","flags/4x3/ma.svg":"flags/4x3/ma-f40a79d79c88c1bb927ec0e40c5d044f838f0a2c48d820b3e8449e92a71d02d6.svg","flags/1x1/ma.svg":"flags/1x1/ma-3190fa17944b136ba27880e354cf385a1d7f6af076859fd8e3a25b30eaded302.svg","flags/4x3/mc.svg":"flags/4x3/mc-65c30fed3b3ade292a366ca3cea6155962e94a13944fd62e73706a7f872253ec.svg","flags/1x1/mc.svg":"flags/1x1/mc-83f9d4ff92513bfe22f55c5df31e600c77893660b9b3c000efad29ea4f6c32ad.svg","flags/4x3/md.svg":"flags/4x3/md-92475a7045515ebb11c2127a896010934a569a7d16adc4a702d41adf4565d440.svg","flags/1x1/md.svg":"flags/1x1/md-af363b1645da518014f81a5670419b70adc6fc09b1c32def53145c26d5fc256f.svg","flags/4x3/me.svg":"flags/4x3/me-29052367756da76b9ddcc3a71a17dc15cc39a7d387cb381fc5daad5880cd1895.svg","flags/1x1/me.svg":"flags/1x1/me-551e531eae9f601ce16f204217b0dea54396c8e689dd2792667e1c4fdd239367.svg","flags/4x3/mf.svg":"flags/4x3/mf-a07c29d68d55c8c614265e1bfc1ec179073e983f9d30a1a361310d68d2e30fa5.svg","flags/1x1/mf.svg":"flags/1x1/mf-bf59a29b95c033e21fc58c30f4369db5d0312954389ab46c0e3d14b17dbd8b4e.svg","flags/4x3/mg.svg":"flags/4x3/mg-9e1ecee816ab8ef6441e6bb5a6d14c4238f074fcbc278a4ffa6168809669e586.svg","flags/1x1/mg.svg":"flags/1x1/mg-e87135a47b177787871c8e7a341fe3b4f89843d33025affd16c2cf89bcfaac56.svg","flags/4x3/mh.svg":"flags/4x3/mh-4785fd6418f936a2702773e3e131f282067da3d8d406c4c31d0d1bcbfc638af7.svg","flags/1x1/mh.svg":"flags/1x1/mh-ab6f55130abfca1e85a6818f74ea0f262e9327fb99f75868aae2bd2b83aef6aa.svg","flags/4x3/mk.svg":"flags/4x3/mk-3c7035086a33b244188bfc3ad050eb100aab771dfe39dd82c619ae6cd103af4c.svg","flags/1x1/mk.svg":"flags/1x1/mk-ebcd71d69e1fad32c0acbd1c9887945069b1f75ea52ef857e2e26e8927a7d98d.svg","flags/4x3/ml.svg":"flags/4x3/ml-e8326589ad95d63b2856367db0b6343479eb591d116bc7e7a2c15e7d422e8dca.svg","flags/1x1/ml.svg":"flags/1x1/ml-0f990fac6a324676dad90acd1f8e5cf8e660bd62f978ee44acedefaccc226b7a.svg","flags/4x3/mm.svg":"flags/4x3/mm-f7ef4a34cf98d96f557d0a7020f178154b730129be4c2b5f8425b825665875c1.svg","flags/1x1/mm.svg":"flags/1x1/mm-f4df9e4b3a4df8d9ee464504a1f88cdc0ea08d9923c8c7b3099ec8eabbf4258b.svg","flags/4x3/mn.svg":"flags/4x3/mn-00649cb56bad07f8d34472e881fbe370a46879416fcba8dfc655f6eeed0056a3.svg","flags/1x1/mn.svg":"flags/1x1/mn-ff5ea681d66e1a88ff8584dfc7fb20e8ed282b218bf9cc06518b1df90f3f99c7.svg","flags/4x3/mo.svg":"flags/4x3/mo-62610131201312d4268197556e2952932ee4cde22ce876668722cc332b83989e.svg","flags/1x1/mo.svg":"flags/1x1/mo-8eaad37d10c6db6035b0d4a74c33015539f2c78cd655e0ce4e1aa4b04f3ce36a.svg","flags/4x3/mp.svg":"flags/4x3/mp-2e4af783bec6f474fc03275a7dc048a146d28ad3da615d65e6eb6d930c0054ef.svg","flags/1x1/mp.svg":"flags/1x1/mp-9b89316de0a803f61b8a4e842483db37436cc9e53911d6e2f59b53dfa422d563.svg","flags/4x3/mq.svg":"flags/4x3/mq-297d268a5e967f7d34c91aa4513f86ec67b2efcef6df294a7846a554d73f22d9.svg","flags/1x1/mq.svg":"flags/1x1/mq-0e466f6d604a1134afaa8fcced93845bd17be04debfd302d70964a806532f093.svg","flags/4x3/mr.svg":"flags/4x3/mr-e41908b9de58fe9479e9a2e2a5bc0074ca1013cc247f2b1410568e8babe4ebfe.svg","flags/1x1/mr.svg":"flags/1x1/mr-fa0266040f7fa99236c10e36bd23ad92a558fdd79d250a23076733ae2aade799.svg","flags/4x3/ms.svg":"flags/4x3/ms-c2c0dfeea4a1f46dfb510afc8a97e99cc5a91d89851e97e4edd48f10d10eb262.svg","flags/1x1/ms.svg":"flags/1x1/ms-c1ba27711118135b0d694151a37e397e71ae19470cd2fb7bb21ccb8178f4be43.svg","flags/4x3/mt.svg":"flags/4x3/mt-fd6a6cbf958e7d3b88070ded68716b2b85bc130acf68e3b0bbab05361dbab47d.svg","flags/1x1/mt.svg":"flags/1x1/mt-b841b8cd3c568b0638ab7fd12e8dcf24f09f1b6bbf7942a28c52212ac465d100.svg","flags/4x3/mu.svg":"flags/4x3/mu-e3ce67e697fb6b33a39726379574752eef57b121d6f60d160e6bc7d7ed8f5ae6.svg","flags/1x1/mu.svg":"flags/1x1/mu-9e4e19a678ac8b84eb14740be948a7dea035b5c0623639ba6e06e242359aa1bb.svg","flags/4x3/mv.svg":"flags/4x3/mv-0f9b86efb7f8d66d28223ff592232812cfd2d2567db83ef96bf783ea3154eb8d.svg","flags/1x1/mv.svg":"flags/1x1/mv-57323390cdd79b28e658b6089304469012536c57101787020701ed91518848da.svg","flags/4x3/mw.svg":"flags/4x3/mw-c2c93e168527ec8bda2799854370dfacafcb491f39d6083900d903244c00cc4b.svg","flags/1x1/mw.svg":"flags/1x1/mw-5baad15595dcd8c0822e2bb9581efd027ac23ce10efa4202f3b5f566819080a0.svg","flags/4x3/mx.svg":"flags/4x3/mx-8258503043a0a3b6fc68ef1af0025ef0de85fa482fb77e8ba220c3cd6a7a86a7.svg","flags/1x1/mx.svg":"flags/1x1/mx-b67b689c0045cb4e8a4d5a439adbbf4c471cc090cbeb7ba7b2aed0eeabdbef3e.svg","flags/4x3/my.svg":"flags/4x3/my-c992340a8c8284fca33fbcbcb287ace68c355a0603c471d9b09a207ab4f7390c.svg","flags/1x1/my.svg":"flags/1x1/my-cb10a92508324c9de2641b74ca7a0c4872548dc874fbcbe9f75d6aa46ecd28bd.svg","flags/4x3/mz.svg":"flags/4x3/mz-db6310ed68179491d7d9ad03d133cd8ace0fd75dd0624f3f9f1c856eb799fdb1.svg","flags/1x1/mz.svg":"flags/1x1/mz-cbc5741e7cb4a2212dc311772b55688c4e9e2d2f11d1e2c3c42dd4f2a1464473.svg","flags/4x3/na.svg":"flags/4x3/na-7c73485829c6aee5fb2e678707883ae99de6ddc50f4393025fdadedd78944213.svg","flags/1x1/na.svg":"flags/1x1/na-37d8c89f1f7e5e2dd7a7e2211afd542a9565533995500e5686c791a6e9f51d20.svg","flags/4x3/nc.svg":"flags/4x3/nc-b0c095d359e58de45a984c4d3aa73c5442e76c2b8837ae491f53284de1a15475.svg","flags/1x1/nc.svg":"flags/1x1/nc-d7a07223b8b040a88ea6a11662b947add62e438a993721494df88951aa9df656.svg","flags/4x3/ne.svg":"flags/4x3/ne-54d7076def267766d8e49d822d6b9b774e82bfe0a91269b0951148f5a19e4900.svg","flags/1x1/ne.svg":"flags/1x1/ne-bee088c42b4ce13a5dc346424f354a53a78db7db8eaa064bf534b711532f19c3.svg","flags/4x3/nf.svg":"flags/4x3/nf-f0e0b96f2586ad66b367fe6490b48df8aeea0c100bf5178cd1ffbc03571fe95c.svg","flags/1x1/nf.svg":"flags/1x1/nf-4880d7db266b4219bf4878fa435f9021c02d86c7309d6571c5cc6a0eba81777d.svg","flags/4x3/ng.svg":"flags/4x3/ng-f1ca02b4d2034f53a5b768674883dab4b21852dc2ae39b2d02bc281384d95e33.svg","flags/1x1/ng.svg":"flags/1x1/ng-8b34a12b4b7116eb6ecc79744e0b0244cacdea5ea200940522042fa12953097a.svg","flags/4x3/ni.svg":"flags/4x3/ni-a6c8d7f7a74b93a4c42589c951ce37ea3e073daf82f2418efa6a5ff1ec2d23fb.svg","flags/1x1/ni.svg":"flags/1x1/ni-a9ead4b075e183ce139f9c26256dd2a8d083d4d126d85f3848d8e9ac884ab504.svg","flags/4x3/nl.svg":"flags/4x3/nl-a91174a3cccd5ec66da2cc68e0cbf86a3ea73d2976dc303c72109198b2504b51.svg","flags/1x1/nl.svg":"flags/1x1/nl-426beba2bc0a7ae4079c8586509f6902dc9a6082f4a0ec7c71520572ac3f86c2.svg","flags/4x3/no.svg":"flags/4x3/no-c59f156ddd70507f05267dc35e2e4f3e44467b9ef414995abb91589dc486dd6a.svg","flags/1x1/no.svg":"flags/1x1/no-567df11f5e12f95a4c707234127ad878db61c286cfdd034dbcab8c4222c4af25.svg","flags/4x3/np.svg":"flags/4x3/np-ddc042ba58c0842e4a1dd8ac56701dd8e22659cb04e3905d3866810d6333aaf0.svg","flags/1x1/np.svg":"flags/1x1/np-d81adac491e4e7cef7e94ab6e94f00564b319f9a383b85e0dd753aebc1cfeea2.svg","flags/4x3/nr.svg":"flags/4x3/nr-2f19fb532598a59536ccf4bb6f4446c08eb1b9ed5ebe0ff1f00bc6fc8c36e792.svg","flags/1x1/nr.svg":"flags/1x1/nr-6e66f80525a6b92920b1acd01c9bcc214b1a2f05393d65af6428567e7de0cc6c.svg","flags/4x3/nu.svg":"flags/4x3/nu-55390cc014e85eb56b9d08004470900d13d95ed83ddb5006bf4e0e1cf519028c.svg","flags/1x1/nu.svg":"flags/1x1/nu-1bfa55a93eca4ffd981f98935d6c2cab58a29be4f0d2f15a50148d695ab50f3f.svg","flags/4x3/nz.svg":"flags/4x3/nz-b7f4f0961f007b0cc355df85903b0af0cfd6b655e23aa56aa547dc5ed693ae7f.svg","flags/1x1/nz.svg":"flags/1x1/nz-b93a77fe262ed1d5fbd196f2224c0fa2b3dd6d1e84c0027c5a122643fdad8d23.svg","flags/4x3/om.svg":"flags/4x3/om-d66047c0f554b25250566bdbdf7d4ac03c0f708f03cd4c4159c57f16fa056967.svg","flags/1x1/om.svg":"flags/1x1/om-20669c3a4f181d035b5acd82a12d7354b3c5decb53383ea6b7a53d02b7138fe9.svg","flags/4x3/pa.svg":"flags/4x3/pa-0bd4b6709d9ca822851f2d7c57ef9fb3c098ceeea5d239bbf8f3196b062d1d11.svg","flags/1x1/pa.svg":"flags/1x1/pa-6e0e27190b3c3806b6cae82d0e3708c05e02bc82479e252f4486a0eee43a58d7.svg","flags/4x3/pe.svg":"flags/4x3/pe-3fddfd9a5405daa75ae35d717219be04940fbd956b583fa9a75d0c54ec5d6da5.svg","flags/1x1/pe.svg":"flags/1x1/pe-e0468f05eddaea5fb78d8d86440a580cd9cf5f27baa3e2ac4f229b4423abd7f9.svg","flags/4x3/pf.svg":"flags/4x3/pf-de72e06f1af9d5d3f44995e41ec69b3669da1d59a40b4d99b03164617ab326b1.svg","flags/1x1/pf.svg":"flags/1x1/pf-d68e024f9a826b0790679bf50cf2f004f5063aacbf99948a0aeb792c97e20c88.svg","flags/4x3/pg.svg":"flags/4x3/pg-10ae837d9c7828178cc70a3489b719ab88a3c3dfbd58bfcf7c0ce26908efc809.svg","flags/1x1/pg.svg":"flags/1x1/pg-40cd64620f6af0b94340fa7c71de0e2ef541e6072d886e666ddf6acd2f5aecdb.svg","flags/4x3/ph.svg":"flags/4x3/ph-fd167a43304972aa43f76a0ec3f03dc89dde4f96adc654a7e0e2e1257aa9a7e5.svg","flags/1x1/ph.svg":"flags/1x1/ph-2f9dd37f9762ce80f198b8cb9b4acab9e19c482d7cbb927f7866b1920133af3c.svg","flags/4x3/pk.svg":"flags/4x3/pk-0c5ada4d149d7ff18ea90733cf9bfa8754981730138c20ec97b864d97fe34ef9.svg","flags/1x1/pk.svg":"flags/1x1/pk-637994c86e94944be181dba8727a3b136191f72ebe53f043f0b7297fcced5903.svg","flags/4x3/pl.svg":"flags/4x3/pl-bd8c588ce4c71594e5f3789b700c935e3c97e5c06e62ddb595752c805e90d851.svg","flags/1x1/pl.svg":"flags/1x1/pl-d7c4aadb69ef13492016a7b2995020f9d754d128f9354dd742c32d420c3340ad.svg","flags/4x3/pm.svg":"flags/4x3/pm-e1e1de44f61b53fb70041acec8426e6505526c9a29317a4fc1dbc206f0f261e6.svg","flags/1x1/pm.svg":"flags/1x1/pm-4e3a65b4577055027d41ebf6441200b8e1f360a1677e2032f262b58805689641.svg","flags/4x3/pn.svg":"flags/4x3/pn-d05afc2826bdaa9121a17e9ff42d35ec4a72668a4efe0b65acd6e6de23f8268c.svg","flags/1x1/pn.svg":"flags/1x1/pn-c2f3565f6e8282d44babe06fd25605c002f5abb3edafa843762a9ed6de06464b.svg","flags/4x3/pr.svg":"flags/4x3/pr-f87e928ea7a84ebc9c7d6e8ee6e43e9f93014adebc4604f01fe36db29e635ed8.svg","flags/1x1/pr.svg":"flags/1x1/pr-7a94e53dbfc93808d194a05e79f780aef0d2b231e830e4fb4b931cdde7d6da26.svg","flags/4x3/ps.svg":"flags/4x3/ps-84421fd66f9058e424da190fc8b3f6a0d35e7bb918aa6fffacd00a1a2c1b2d71.svg","flags/1x1/ps.svg":"flags/1x1/ps-31a06ee8dc4500f9665b4e3654489abc6a77851c7a43c245809bc874ac6f77e9.svg","flags/4x3/pt.svg":"flags/4x3/pt-62137f64b8b37b24510095926415b3120029f0d57e97817209e895f9c50b26dd.svg","flags/1x1/pt.svg":"flags/1x1/pt-2fc8fb378410d636377385d6d007f20a41d6493fdae51a35cab5eaa5da3328fa.svg","flags/4x3/pw.svg":"flags/4x3/pw-c59cfacb984b59244f48132977b96327c880f391431a2610ec4617d1f73ee3a7.svg","flags/1x1/pw.svg":"flags/1x1/pw-21a677b7fa3f33a6304926ac4b0d516f2710d9d576cefb46674e3f9c2a444956.svg","flags/4x3/py.svg":"flags/4x3/py-22570d444732336f9af31307c5b4c5809d8c028319b81c24966d0b48e441f08c.svg","flags/1x1/py.svg":"flags/1x1/py-da5901ec6f8fa93f84e42140bd923592b84084a648569d76b476e7512e3620da.svg","flags/4x3/qa.svg":"flags/4x3/qa-a5e58fc790b76e90b945a68bb4f15223254201bf006040d953092dee5ca8da31.svg","flags/1x1/qa.svg":"flags/1x1/qa-ffa8cd4edd7ac169127363f8f0476ffe11279367334f1fa910320541a1a94505.svg","flags/4x3/re.svg":"flags/4x3/re-5183af67c4fa08369e9251a2a102a4ed578c24bb59092dd92f3a572d90223434.svg","flags/1x1/re.svg":"flags/1x1/re-37be9dc3645dac4c1463068f9001cff31288ef527c2fca0d6432022858070084.svg","flags/4x3/ro.svg":"flags/4x3/ro-854593a65b29383274aabe385c4ff58794a2b5d4b89c5414a0ff11f96d016f1e.svg","flags/1x1/ro.svg":"flags/1x1/ro-da9e0ce1ebd0f466ff68500173fe067212d304b8f4594f54bd61bd3e5409c7a9.svg","flags/4x3/rs.svg":"flags/4x3/rs-cbb54d608b15e2bd4d422b8d83f061115c2087d070969b2e9f6112647569ce3a.svg","flags/1x1/rs.svg":"flags/1x1/rs-04c759a5129437dcc03dffb362199c84fc773a185726dc2ed09f9cfd41370fdb.svg","flags/4x3/ru.svg":"flags/4x3/ru-5b51b57f63cf58e451abddeaee39a8c7b133cb3d58c6ef1a903883bda7c346b0.svg","flags/1x1/ru.svg":"flags/1x1/ru-bb2782a916b1a28eb081895afa90f4ed5dca5df320b9cc95f867bc2a26e29064.svg","flags/4x3/rw.svg":"flags/4x3/rw-aeb9bc73cd3fe25e7c1a1a7bdddc11eb3d71a3273919dd2f4247873db78fbe75.svg","flags/1x1/rw.svg":"flags/1x1/rw-8c27cde746de68484394ef6dc519583cf67e380ca5e8d48cf37fa4d99fef57ed.svg","flags/4x3/sa.svg":"flags/4x3/sa-d54e76d7ad9da5242aa26d5dbec120b8a4530c097ae45d0b22e539f2d9c6ad8b.svg","flags/1x1/sa.svg":"flags/1x1/sa-639ee1c158b0b61e8789bde27ae64edb246afe63cb8999e3468ca88c344927be.svg","flags/4x3/sb.svg":"flags/4x3/sb-651213df067f16dbdba2288928434afdd54f192b50bf15d06206ade966d54bac.svg","flags/1x1/sb.svg":"flags/1x1/sb-19048c26004da6fe2a1dd5f3f695066b24f3096d1527edbdaac03c2817046fe3.svg","flags/4x3/sc.svg":"flags/4x3/sc-2ed9272d5fd2fa92d29289f49f58f5f64f66977165fa1a80f9eb6aa57335517e.svg","flags/1x1/sc.svg":"flags/1x1/sc-90424aafda9a2aa7d98030c0aa7bc604c77c1b0f7c5e6a094dffd2b803a88c71.svg","flags/4x3/sd.svg":"flags/4x3/sd-b8b9d97103e668a2b043311b6453c2df25d5c3adcf62481e4c79a627c6784f4d.svg","flags/1x1/sd.svg":"flags/1x1/sd-da52cd7a173ecc0bc7e9a7c7ed4a20558a7f4cb5b6cd308790b7552a70421abc.svg","flags/4x3/se.svg":"flags/4x3/se-7b5be8932db6e5153d1f11ddba2d36cb4a33ddd7100e5c59cef3a2502215b062.svg","flags/1x1/se.svg":"flags/1x1/se-9b0845f8163d147e4fce6e814709d5813e53f00f8f5ccb40cfa4cb9e37388837.svg","flags/4x3/sg.svg":"flags/4x3/sg-fa164984f038fa81540d519c5d08123ed55f31bb8aa73798af7698c69dca2226.svg","flags/1x1/sg.svg":"flags/1x1/sg-f6f8ecdd6f0099c072886716d98098d08de334f6f307398e9922f4df40ef7b2a.svg","flags/4x3/sh.svg":"flags/4x3/sh-e7b5e4dc5360fd9ec2e0dd50074e82a53566a61ab88a36b6b5cc80451a2d9279.svg","flags/1x1/sh.svg":"flags/1x1/sh-c3a061079dd7f5ea785a4b4a4903ec4cefc4a26cd73371c0bfa3a0b231593947.svg","flags/4x3/si.svg":"flags/4x3/si-25487f7aa91f115d558f031ffaf0d399924b032100d24d467c3bd1cb026d9001.svg","flags/1x1/si.svg":"flags/1x1/si-53973e8d5c2086570023dbffbdef1a8a181cd49b33da4fde01de7a57b8346c57.svg","flags/4x3/sj.svg":"flags/4x3/sj-e64bad4f257ee1219640dce3608270b8a4c7ebfc37f91ac9e4fa5957ea0814f5.svg","flags/1x1/sj.svg":"flags/1x1/sj-d764d5de8ca4a67ea323376c7c4dc48a3ec51bb043556ee07dca9e4989ba147f.svg","flags/4x3/sk.svg":"flags/4x3/sk-4ca76c921fae3345c47f1f540cdaf3716a7807ffcba532caea50090c8bbecac2.svg","flags/1x1/sk.svg":"flags/1x1/sk-48d976a953d0778fced47cc5d25890f3dd7befc28a85d9bddfae6b50fa98c84b.svg","flags/4x3/sl.svg":"flags/4x3/sl-d8106777ab26efc28f786a1345bd411a4a0a10da738b691e3f4deea96d3c3c3a.svg","flags/1x1/sl.svg":"flags/1x1/sl-9b4b8d18e4921e812d1fc34279d9871d7b6d5a72feb8e451b4b4aed33890bee6.svg","flags/4x3/sm.svg":"flags/4x3/sm-d8ebb10444ef5bef482c0b886a617d832a62629887061d916f6e3af7ee49c01c.svg","flags/1x1/sm.svg":"flags/1x1/sm-2cc3fc6d4667654a4842dba27cbd3fd6cb9e8f23ad1dc1fe78cbd9621b5e7d8d.svg","flags/4x3/sn.svg":"flags/4x3/sn-e8f288fc52101ac915f7321dffce4c0af0a830244791f63efea069cbbc311ffa.svg","flags/1x1/sn.svg":"flags/1x1/sn-1e2477f3991b0329067f700db10898bc0761c241ecdbe5cf3c0a79998ee86748.svg","flags/4x3/so.svg":"flags/4x3/so-50c5153e92331af5eb0bcda9b17ed8ded87f69f94803d50315514c8d95f241dd.svg","flags/1x1/so.svg":"flags/1x1/so-74f68a5972d287abb010860d78e9ea8158499c1187e9f30a533f14f62395aff3.svg","flags/4x3/sr.svg":"flags/4x3/sr-04f64ba6540237ec9188f9f776ea8e300ab8da9e69b0987c7f84d57e485d03fa.svg","flags/1x1/sr.svg":"flags/1x1/sr-e146a0ccedd75c58f6bbc1684b42662e295617bbad9fa96086b3ef3e6afe2278.svg","flags/4x3/ss.svg":"flags/4x3/ss-d0545941635094a4083da0238fec28147c845f146e122c745d0977bd0c9433d6.svg","flags/1x1/ss.svg":"flags/1x1/ss-15466776e5a57ff54c2fba7cb590cd7f27298d38cbf2c1ddcde63a81d8e9c102.svg","flags/4x3/st.svg":"flags/4x3/st-ebb813a81f4959663ce7a00f33acb9513cb0aeaacc6e6b42becf3964114b97a1.svg","flags/1x1/st.svg":"flags/1x1/st-a866043ab37ce805b64abec78b95b6c083271c13e8e1ec7ca96449410578e89d.svg","flags/4x3/sv.svg":"flags/4x3/sv-4a2c02ae1c8fa104bdf722d8040868f47d1159fc774e32082e7fd1516c0c8e6d.svg","flags/1x1/sv.svg":"flags/1x1/sv-ece5f580bf1a30a24794f29e85b851709f2ff7adc3b8d5a88634b5df5a73533e.svg","flags/4x3/sx.svg":"flags/4x3/sx-aa8a47e9aa8b9ba218c6875d2435df72740ab4c0b924869286b4cadb1365d49c.svg","flags/1x1/sx.svg":"flags/1x1/sx-ac716ddb83c8e34353666b6102c03688503eb97ae55ca9aeeb86c4e954ae8b06.svg","flags/4x3/sy.svg":"flags/4x3/sy-3b78773e392f046fb9b3f83bc34ce38515f72320c575d93c41c95d90ffb5d039.svg","flags/1x1/sy.svg":"flags/1x1/sy-fdec8ea00a33abe5dfade7864c28d9ad713c3cda3e7d828ff699647da3e74446.svg","flags/4x3/sz.svg":"flags/4x3/sz-57cefe0c71e90edba3c03594a69a3a9a33f779c0c2405efaedb8d64290e28d1f.svg","flags/1x1/sz.svg":"flags/1x1/sz-ad977a6b06f85ee23b3ea5ec49f83363720525a3fd37475ef79cb59591c32951.svg","flags/4x3/tc.svg":"flags/4x3/tc-c3e7a86e64d439e6b25dc833f685cd5461e9c5ce33d0f004f3570adfba65c9bc.svg","flags/1x1/tc.svg":"flags/1x1/tc-d91ac6bce029f8aa5b760be2a62884b67e03180eb9a9c67ae6066df67c85154c.svg","flags/4x3/td.svg":"flags/4x3/td-b6ce40aff60feef4e8fe1417f075b57688b5cc4c32d09296d02776a797e0b0d3.svg","flags/1x1/td.svg":"flags/1x1/td-ef115b3942ae5cb74b046b0a5faad35fbd6126d8c6fda489881b16494c8c632c.svg","flags/4x3/tf.svg":"flags/4x3/tf-0681ec54dffc4f628efd8b4726fc3f00c628aab4fb0c797c332c80a25d559820.svg","flags/1x1/tf.svg":"flags/1x1/tf-90ad184cfd769cdda3da9c43b4fb5a494962f3095f38f4175ce37c371e0180d6.svg","flags/4x3/tg.svg":"flags/4x3/tg-486dca2420c797d9a37b03d11767c9418b5e26d07c7c694d897b7d85092ea499.svg","flags/1x1/tg.svg":"flags/1x1/tg-830f49a57206bf654bc37aaa1668ee8840a23595b2ed440c968f81d961e820ad.svg","flags/4x3/th.svg":"flags/4x3/th-4e206b563d27b5a7a3f7cabf944d6d278e6e8640018a72ce7b7ff989f1396df9.svg","flags/1x1/th.svg":"flags/1x1/th-cb480908e2c394e816623b7fcd5b63b484f25578fd89905d6aa1453bcd041887.svg","flags/4x3/tj.svg":"flags/4x3/tj-1a8979f03a820cec54ff4a900e843afee074f3b4004e1aeeb706caaea0379ffe.svg","flags/1x1/tj.svg":"flags/1x1/tj-a133d52c99a285aa2dd0b86739163bd5bb7a2c0eaa5a1fd522a11ec4b5b3bece.svg","flags/4x3/tk.svg":"flags/4x3/tk-3e49a632d5d87de3ef67aca8faa159c1b69bc16669f6c8c117748dc9625d1c58.svg","flags/1x1/tk.svg":"flags/1x1/tk-137c7ebb28233cdc2f417bc1e29bfad502ef7dd404c35ac36188e7dd98aecb6d.svg","flags/4x3/tl.svg":"flags/4x3/tl-8662a8d01007fcbe0f41a694a5cd927265409d59b783b50e0bf4561302a77e40.svg","flags/1x1/tl.svg":"flags/1x1/tl-d26071ddf754d77ea56779d817e8c62f37a38fa64102e0c864901ff3941cffbf.svg","flags/4x3/tm.svg":"flags/4x3/tm-22b811ff90642de341a3e28a1775d1992d1f32088e922abddafca79157e3c2ec.svg","flags/1x1/tm.svg":"flags/1x1/tm-42c8536f18d9a9878a90872649f0ec85b27ba59e1942ca5ac619f2f2f993aa38.svg","flags/4x3/tn.svg":"flags/4x3/tn-5d05bcd60eb3118eae45baf24be63aab68e236ec6d19124eed90548f1ec42bd5.svg","flags/1x1/tn.svg":"flags/1x1/tn-84116fb50ddb30d2f08991ae4e3762d7191fe4387e1cf05d55a4e3f2e95c3c57.svg","flags/4x3/to.svg":"flags/4x3/to-a2007667f47550dd1a6db5e83911fcc0acdf00909db626d592a9390c4e8aa1fa.svg","flags/1x1/to.svg":"flags/1x1/to-5e87ab54fa5f3124d1fc521d29259865fdd1f528e968dad12a33aff22ff788f2.svg","flags/4x3/tr.svg":"flags/4x3/tr-033a416ecc30a516c54c6a0fac2d212a38fb051e5976cda49eb9d22264814a66.svg","flags/1x1/tr.svg":"flags/1x1/tr-74e60d09369c164cc245d49d109c78ea322a117e0fe58945c380b65a71c691ae.svg","flags/4x3/tt.svg":"flags/4x3/tt-f6ac88577c57d12df95251c21a7adb68ced1720731d754a462d2958879b56e00.svg","flags/1x1/tt.svg":"flags/1x1/tt-3d65dcbca5b7d40a1730e1c190d0c7e2874d1b3b44e0a0941ec033056044f3de.svg","flags/4x3/tv.svg":"flags/4x3/tv-6017cefb02fcc099faa8f072149bbce7f8c155ad6ffa620a6d6258409b786ce4.svg","flags/1x1/tv.svg":"flags/1x1/tv-add42a023b56a92f42007afb933e28e1d08d734e55ccecbfc3f9fae70701a240.svg","flags/4x3/tw.svg":"flags/4x3/tw-44b7d1f3acc75aa8ff817b55d499dcb24770a3423b624bff829cb26729de7c16.svg","flags/1x1/tw.svg":"flags/1x1/tw-06af22c30adfccca9975a99fd05310568de59f039a14fd8dbabab7c17a33cb19.svg","flags/4x3/tz.svg":"flags/4x3/tz-1d5e7fb7a12497358a19b92671184b14664125a143d909abbee5615b57f7e988.svg","flags/1x1/tz.svg":"flags/1x1/tz-ad4c35de9f6aec57aac272de390d5730a75aa7e1a4431166a5dcea3bcbdc62f2.svg","flags/4x3/ua.svg":"flags/4x3/ua-fbbf0f0e9a6d6187561f38af9b3f28e3125e406c3deea268bcb64dac7a03a6aa.svg","flags/1x1/ua.svg":"flags/1x1/ua-79092de6d22db0454898a7d17f26961709256110620e67933043799fa86b2296.svg","flags/4x3/ug.svg":"flags/4x3/ug-001fa554127aafd736752727490db9f8893164c0369d0ba5cb6d742c44370975.svg","flags/1x1/ug.svg":"flags/1x1/ug-59bc76deefd22802e7d4ab2bd5e34f59c6bc112135c8052284410a0787954af9.svg","flags/4x3/um.svg":"flags/4x3/um-d2e8ac2079a27fb6f120ab4bc4d29597450bd01a9fedf9b7f5a09ad65e8dd164.svg","flags/1x1/um.svg":"flags/1x1/um-9674c82888b92fbbba22f3588e7d83e8c0ce887d9ccdf3abac317f9725530ab5.svg","flags/4x3/us.svg":"flags/4x3/us-c70ba1cb67cc649da2b1f5dc4a26891437d8bba2cc098c88461e6bfc23949d9e.svg","flags/1x1/us.svg":"flags/1x1/us-c4ffd0455cf50bc1683646dc77e7263d81cffad51f36d3c39b85a9848fb5a196.svg","flags/4x3/uy.svg":"flags/4x3/uy-25c640333545843d345dbda694ca41c404dcaa69d3e32fbebc89d5620b5b881a.svg","flags/1x1/uy.svg":"flags/1x1/uy-4466c6f09de93905872fe47bfc03c6e5a143cbf77cdfc93fcd450663572f3d60.svg","flags/4x3/uz.svg":"flags/4x3/uz-76a3658f5f45def0750a70247d604356ff4eba996b30aa23a657ac07044caed4.svg","flags/1x1/uz.svg":"flags/1x1/uz-96eba693faa2439ebee48d27072a67086b7be80001ec8c5e3f0743b37f2a42a1.svg","flags/4x3/va.svg":"flags/4x3/va-89b12d71ce8ea74250d99da84ad4417c53eab133e4be8db99e6b8e0b26f71278.svg","flags/1x1/va.svg":"flags/1x1/va-bcc69d5aaddda710e0c480c64f1ad9730ba45edd4692684fcca1c4f8083c5d19.svg","flags/4x3/vc.svg":"flags/4x3/vc-55b7f903c7e603de7eec36bca0760a51930ae7ba90c2e758fcf3aa4d7e959ee5.svg","flags/1x1/vc.svg":"flags/1x1/vc-3be977d9f161a5800728de845aa7632df3263927fea4b03544400755d27e7c19.svg","flags/4x3/ve.svg":"flags/4x3/ve-3079fd19521114a5585b23e37a3d443676b52fd593b68bae5026c29de0bf5561.svg","flags/1x1/ve.svg":"flags/1x1/ve-2fe0f692a6986f2b21ebd6260b6750b29a0487b9486e70fcf789e113ad0e1192.svg","flags/4x3/vg.svg":"flags/4x3/vg-509967cefab0422e7e4162aa75d3cede7620a4a17d9b2015adfa74e84051f364.svg","flags/1x1/vg.svg":"flags/1x1/vg-caec07f09c87f0ebd2843dedf7e8fd5ebe3ed795b2649c648788775c65f48b31.svg","flags/4x3/vi.svg":"flags/4x3/vi-0c1811861e17033d8d2ee291edb8b710dc877fbec06ab4e4d250218724966032.svg","flags/1x1/vi.svg":"flags/1x1/vi-8112962dc3d3194f3bbf70018fcb5accc21d2cbd033957579427241fbd931e62.svg","flags/4x3/vn.svg":"flags/4x3/vn-1768f5ce4bad46f4907f598e6097e6e1340500f4d7d75a76266f3e6ab9463d5e.svg","flags/1x1/vn.svg":"flags/1x1/vn-42db427a67708ab79be29119530cedf2108f7a4bcebfdf754a1d8faeedfadb77.svg","flags/4x3/vu.svg":"flags/4x3/vu-03a36a9550f9eba48a2cbe65dc4be5e00b79447fa6d0863378046cc5836a4014.svg","flags/1x1/vu.svg":"flags/1x1/vu-016c68fdb5c59b9342aa68a196d73fdf6b7a867694fc406d1338b507a4d05c56.svg","flags/4x3/wf.svg":"flags/4x3/wf-e8360ce364de6826f01716b7d320eef87621b70101c129df459682a790267f89.svg","flags/1x1/wf.svg":"flags/1x1/wf-5878874353a81033882d683151d7a94765656f867015f75985388e3817a37f8d.svg","flags/4x3/ws.svg":"flags/4x3/ws-e77b5573407b1162d26d40dee59e28684aee6ebbff9961ac32242943c9e96e26.svg","flags/1x1/ws.svg":"flags/1x1/ws-7cdc90f71e92b252dc69902df2f7ea33a7033a776a00199730239aa4e8fa8b18.svg","flags/4x3/ye.svg":"flags/4x3/ye-ccc0af8c1220d0583d1432c0c340c21aad14e987d7d73d2601cc35451a37cf9c.svg","flags/1x1/ye.svg":"flags/1x1/ye-d7527d589cebe8037b89e642afcca050b9da0cb4e63ed52bbf116f8461f6c60e.svg","flags/4x3/yt.svg":"flags/4x3/yt-b1e78ed98f7111d6a115d73d2c604f5c1ef65ba9b01713ca47d914de0d22b351.svg","flags/1x1/yt.svg":"flags/1x1/yt-794597839bd5ac5c9bdc0885fe713d3d0a69e38711f9a74654a1599d7c7a7927.svg","flags/4x3/za.svg":"flags/4x3/za-d2d473f4e2e4707604a7caac42f9cb6415bf5e8ce35b5e72bc78775d8aae03e5.svg","flags/1x1/za.svg":"flags/1x1/za-3985889b8382293dbb3ae27353e864661415afa0ef66d291591b447df8bf8693.svg","flags/4x3/zm.svg":"flags/4x3/zm-107a1d20ce64bbc59bdf3ef022215742bf5fd79d94636e7d4376586d2e0bb0b4.svg","flags/1x1/zm.svg":"flags/1x1/zm-4b557cfd170ed4332809862db59879e1da2797deb4b24a288c525d0d72c0bb84.svg","flags/4x3/zw.svg":"flags/4x3/zw-a357182ee43243cf7989366b10afb15296f814cba5d9a035e3d66ff401aaa115.svg","flags/1x1/zw.svg":"flags/1x1/zw-c763d38c87df2000c01e5faa5ef51823a9e076b7b9e8e52244ff35270a099401.svg","flags/4x3/es-ct.svg":"flags/4x3/es-ct-bcbb454a50c9a647efd43dcf041445f15e8dd70654bde530bf62401d4fb7738d.svg","flags/1x1/es-ct.svg":"flags/1x1/es-ct-7f13eb2b2f5c11dccd7043286bed7540d4dad4b1a8367b0aca1b8405a351b2ef.svg","flags/4x3/eu.svg":"flags/4x3/eu-8c749adacf82b6b5d58ce51dbcfa748c6bc6a9a205e5efcb6e96f126f8953f6e.svg","flags/1x1/eu.svg":"flags/1x1/eu-7085aed716bfce96bbfc2811fe55bc9855236a4216dd7c925fcb7c142578a3f9.svg","flags/4x3/gb-eng.svg":"flags/4x3/gb-eng-d2de597c10f3c833fd8c7bfbe818189e6209db19882a27398b8e180884697eca.svg","flags/1x1/gb-eng.svg":"flags/1x1/gb-eng-83388730d99f674d825da4c089650366b965abd338cf15f10f5aadfe0d8276ba.svg","flags/4x3/gb-nir.svg":"flags/4x3/gb-nir-5130c70b20a02f9f6dfff69c9e55b3aa0054906318e4afc12c692dcfb7f55216.svg","flags/1x1/gb-nir.svg":"flags/1x1/gb-nir-f5c0a725da9e3e0d7321ae75c61ff5df64d065f1bdece6e2625201735177e558.svg","flags/4x3/gb-sct.svg":"flags/4x3/gb-sct-bc44f4448f55c576b4f8e1aa1d61a8b28751dfae10cf3d26d0408befa6d0bde0.svg","flags/1x1/gb-sct.svg":"flags/1x1/gb-sct-21234ce6c027716f5ea7f9b5ad128aea007534f32ee77557f7e968c82e7627a1.svg","flags/4x3/gb-wls.svg":"flags/4x3/gb-wls-2e24673349bd8ee843980d052d79c354f993efb345d1ef5ee0fe29807e8d19d4.svg","flags/1x1/gb-wls.svg":"flags/1x1/gb-wls-23a0c563a49267894d20b55a5bf6089a582d1ac227a7144c975a191b8f751843.svg","flags/4x3/un.svg":"flags/4x3/un-6685994fae5d4918c5b6aa20ed98c3bc736bb1bd88ad2d86b40261682766791d.svg","flags/1x1/un.svg":"flags/1x1/un-774bae01cbe6a00e4daa93396d860d2ce3d53bb6a5a1f1470e11174fd9315d79.svg","leaflet/dist/images/layers.png":"leaflet/dist/images/layers-1dbbe9d028e292f36fcba8f8b3a28d5e8932754fc2215b9ac69e4cdecf5107c6.png","leaflet/dist/images/layers-2x.png":"leaflet/dist/images/layers-2x-066daca850d8ffbef007af00b06eac0015728dee279c51f3cb6c716df7c42edf.png","leaflet/dist/images/marker-icon.png":"leaflet/dist/images/marker-icon-574c3a5cca85f4114085b6841596d62f00d7c892c7b03f28cbfa301deb1dc437.png","markers-soft.png":"markers-soft-e78784e4ed70aaffddd73c315fab590233cc4e7b72388d7dd47a14796fc7c739.png","markers-shadow.png":"markers-shadow-8703a2262710f5e3d29e65d2acdf90d6512e159e119d27b8234731d8a6208a20.png","markers-soft@2x.png":"markers-soft@2x-c1e77253a8bfbe30cec24885d7046f443b76ebb66f4c961f77083b03f4a5cbaf.png","markers-shadow@2x.png":"markers-shadow@2x-b21a536be27313fb504f69f5899ff0b1245b276571769ac08d6c32c35676e47a.png","events.js":"events-f12a16c68c84767cfc222c763d56e2209bc4d5ad519f05095f2d4429c0b1a315.js","filter.js":"filter-2ec96b9d0c650c880941d7e9fd568decd1d587dc037d106144a07ad103b0e0ca.js","flash.js":"flash-41f5b95206f7a684b89eb997846a01155f94ab0b6568b4275704d3f285f599d7.js","frTypo.js":"frTypo-fed98b7d2ce187c2a3cff9153ac6aa2dbf7b91d33809da77c6561ff34d1be836.js","list.js":"list-e31f674476f4f7c5b464b1ee3c6832f4dc7d0588597a383a6fb372127b2b27bd.js","maps.js":"maps-81cfae958ef9248cab2f666cc53c8a003cf1e11bcb0b90297c01c87fde557e25.js","moderations.js":"moderations-c5471afdd75123fdbb36ee14b85e6633c8127d0c115e35931616c329a8605380.js","notes.js":"notes-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js","orgas.js":"orgas-85819c738920d4fe3e6b89716788590d27b2db4b11802c0a0cdd48baefb18fcb.js","pages.js":"pages-9dcc8cb3626a9f198ab95f9e64bb4d269167a7405dd07f94140f5ec6d32b6084.js","pagination.js":"pagination-ab6b8afabe3d53764287ed9d0ee9d4b7092cab98cdfb453a54471066fed05aa5.js","setup_tinymce.js":"setup_tinymce-a47edf933da9cf4ecb8e50e40dc68bb8349603e56be1b8e3b189cd46ac0d619b.js","stats.js":"stats-40295d647e6144715bc9fb45f60096ddff913afddf11844aeacda47cbed68400.js","_variables.css":"_variables-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css","agendadescommuns.css":"agendadescommuns-734d24884af76ee167fcf102dbdbec43e5b2726e65f40c350ad3800f7ee99f55.css","all.css":"all-a55a9ed762f8344ecd74346308ae7066a283d34302fbce1ef5924ad5ce19bb27.css","digest.css":"digest-e13dd03a72165cef5027b81a774f458fe1a6910d2baaae84bae560b3199a77c3.css","events.css":"events-bb56649a8c5b11d0b8005a8e23e7560f34d7b79fcccccffe4a1407102cfffed6.css","form.css":"form-f1da5f65f35af4489cf79067f5c0409ae5d9e41aa8286fcfef13727fd46aa988.css","frTypo.css":"frTypo-ebcaa45fa7c0bf7821d05959aaceda63d26a30d30079e70619932b0e1d49f512.css","list.css":"list-efff25153e0f94f2af353b02e239c51da65e3a1250369a9960ca35648925d9f7.css","maps.css":"maps-2cbe926bbfbadc48d08ee61a7fad5dfd9d56573ff070d94c4045cf79daa919ba.css","mobile.css":"mobile-59b7aeed8e7ee6e2ced7bb7a6f26ae9e4e2ed3c514a584c0e706128b4ad7fe36.css","moderations.css":"moderations-ede8f4f2808ab572908780f2daea2ea4e76b1d0b0c5735d744bb7cc51fb69895.css","notes.css":"notes-e607250b9cef023a762c009acc65c3320ec1f6d5814a30aa3c1ba907b4f8cb5f.css","orgas.css":"orgas-dd7a2a3fc67e9fa14675e1b59263b8f83e052274d6b900875b0ee4494143ad80.css","pages.css":"pages-5eed9147c9cfe84eb1299bc0ca0d8b0c81fb0c07ecb38e26949e7d4e483746e2.css","region.css":"region-0d416c6171a588eb6a1a40642f2984f08b0b205d2eab077b12bd859fd60cef3e.css","scaffolds.css":"scaffolds-c26fee551087c3b72541cae52a1cc6b454f153e2d04c01d4b35b9ec1ae6cf09b.css","sessions.css":"sessions-d0ff5974b6aa52cf562bea5921840c032a860a91a3512f7fe8f768f6bbe005f6.css","stats.css":"stats-a22ad34b2184e63c6ee60f75829dcae68c2a3e9094a0af419e06306b5b68af45.css","tags.css":"tags-0d512d7592918932ae6c9633e02d81053dac1efbdb34156d9ea903344f79f76c.css","versions.css":"versions-3e2a6ffdc6f7728b0e5e517a208c4d1a72167a6d4da6bc4d36db4941150926bb.css","tinymce/jquery.tinymce.js":"tinymce/jquery.tinymce-288911771c7167ab9efe3c86b2ec5ade1cea510dc1026943df84685c38d91ef2.js","tinymce/langs/readme.md":"tinymce/langs/readme.md","tinymce/license.txt":"tinymce/license.txt","tinymce/plugins/advlist/plugin.js":"tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js","tinymce/plugins/anchor/plugin.js":"tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js","tinymce/plugins/autolink/plugin.js":"tinymce/plugins/autolink/plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js","tinymce/plugins/autoresize/plugin.js":"tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js","tinymce/plugins/autosave/plugin.js":"tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js","tinymce/plugins/bbcode/plugin.js":"tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js","tinymce/plugins/charmap/plugin.js":"tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js","tinymce/plugins/code/plugin.js":"tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js","tinymce/plugins/codesample/plugin.js":"tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js","tinymce/plugins/colorpicker/plugin.js":"tinymce/plugins/colorpicker/plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js","tinymce/plugins/contextmenu/plugin.js":"tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js","tinymce/plugins/directionality/plugin.js":"tinymce/plugins/directionality/plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js","tinymce/plugins/emoticons/js/emojis.js":"tinymce/plugins/emoticons/js/emojis-a0736896b97ad33377407df852694702e5a4df5c9974373f8f8de3e147a9c57a.js","tinymce/plugins/emoticons/plugin.js":"tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js","tinymce/plugins/fullpage/plugin.js":"tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js","tinymce/plugins/fullscreen/plugin.js":"tinymce/plugins/fullscreen/plugin-8d3a02b255cfee8716c47bd3db2b37f88db29d9e2ad4f15d93449a47353dcd74.js","tinymce/plugins/help/plugin.js":"tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js","tinymce/plugins/hr/plugin.js":"tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js","tinymce/plugins/image/plugin.js":"tinymce/plugins/image/plugin-30270ca828ff68dc5d2ecd275555af1203fd5640e710901107b16396df7c042c.js","tinymce/plugins/imagetools/plugin.js":"tinymce/plugins/imagetools/plugin-fd5441053ef233cec7c8afc19a9b5dfe3e3d0bd51c7288ff539dbcb4761995c2.js","tinymce/plugins/importcss/plugin.js":"tinymce/plugins/importcss/plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js","tinymce/plugins/insertdatetime/plugin.js":"tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js","tinymce/plugins/legacyoutput/plugin.js":"tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js","tinymce/plugins/link/plugin.js":"tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js","tinymce/plugins/lists/plugin.js":"tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js","tinymce/plugins/media/plugin.js":"tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js","tinymce/plugins/nonbreaking/plugin.js":"tinymce/plugins/nonbreaking/plugin-5310b607e28f57641e5f898203ed632d4b2c9efa59147a8a18816f7b5953bc2b.js","tinymce/plugins/noneditable/plugin.js":"tinymce/plugins/noneditable/plugin-e919091f40c8723a221721a200dd3065b455a12e702f0b7bae2ec1cf686c4164.js","tinymce/plugins/pagebreak/plugin.js":"tinymce/plugins/pagebreak/plugin-425e13892a911bd92b168ae0aa06a006d665a19397715f9c0473cd598300481a.js","tinymce/plugins/paste/plugin.js":"tinymce/plugins/paste/plugin-90aee93f512530f8797f73814b07bc6701f2a5a8a6f0fabf9bf6d899c50added.js","tinymce/plugins/preview/plugin.js":"tinymce/plugins/preview/plugin-9dc8211e60b8b5f363d7600fab7af941bec58fce14267d33847c0327f166b0d0.js","tinymce/plugins/print/plugin.js":"tinymce/plugins/print/plugin-49de95ca9204468faec6e2558ca59854e0b2d1c1a92fcc128c5efe855473aaeb.js","tinymce/plugins/quickbars/plugin.js":"tinymce/plugins/quickbars/plugin-11325910d8049a6a06e4de6f63db40e107c0c1f7909f00d2a1e4f73335e69870.js","tinymce/plugins/save/plugin.js":"tinymce/plugins/save/plugin-009ba0dd48a2b64da2a5cef25a317674bcd2e1087687e5e576b21ffe577f6165.js","tinymce/plugins/searchreplace/plugin.js":"tinymce/plugins/searchreplace/plugin-4f6fffa4a5b4678dcd31d98b0e7a348dd46ce1987fddcd05ce66445175467ee1.js","tinymce/plugins/spellchecker/plugin.js":"tinymce/plugins/spellchecker/plugin-4b12f52ad986fb417c353268aec9e4ac88ff659fa0eebdb53710367338552859.js","tinymce/plugins/tabfocus/plugin.js":"tinymce/plugins/tabfocus/plugin-33e37cc03477e58db19dee8fc489805237c23051b2872c600655a97aac33997e.js","tinymce/plugins/table/plugin.js":"tinymce/plugins/table/plugin-5751db5cfbd47e116bfcd5884f95d87ecef8e4ccb62f75e3fcccb4ed00f76aa2.js","tinymce/plugins/template/plugin.js":"tinymce/plugins/template/plugin-2e39a3920418a7096b790f1452f65cf6c2c542bcadd4d80253e68600c4245029.js","tinymce/plugins/textcolor/plugin.js":"tinymce/plugins/textcolor/plugin-e40462b7c4f244c7778fdf095e5d83446182a135b00cfe8db60ab61f8b67265c.js","tinymce/plugins/textpattern/plugin.js":"tinymce/plugins/textpattern/plugin-2bdf69fce6e568fa0326515edfca4609aa929f8627b91c4aba60191c334cc098.js","tinymce/plugins/toc/plugin.js":"tinymce/plugins/toc/plugin-2ca0272217e118278086c99e0b61e15c8b4b8479f4f112d65771def0f8a16aa7.js","tinymce/plugins/visualblocks/plugin.js":"tinymce/plugins/visualblocks/plugin-8689e379488f2654703aca3c608cdcd147eae96f9786e54b73a9544e53117119.js","tinymce/plugins/visualchars/plugin.js":"tinymce/plugins/visualchars/plugin-8776757ac7546d487273dfb5e923ec77e688efa481c63b6810520cdffce98fac.js","tinymce/plugins/wordcount/plugin.js":"tinymce/plugins/wordcount/plugin-5b232a4307580068da1772d65d204a80b62c31493731619033b0c54bd958d485.js","tinymce/skins/content/dark/content.css":"tinymce/skins/content/dark/content-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css","tinymce/skins/content/dark/content.min.css":"tinymce/skins/content/dark/content.min-6d10d0c4a63ab02f8fb5d35269832ba1e26d4e74e419d01f4c66c5282d3dd1af.css","tinymce/skins/content/default/content.css":"tinymce/skins/content/default/content-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css","tinymce/skins/content/default/content.min.css":"tinymce/skins/content/default/content.min-6c8756ba3e02f97451d5c55be85537c3fc75da6e9edea7121c8b9e64aa903528.css","tinymce/skins/content/document/content.css":"tinymce/skins/content/document/content-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css","tinymce/skins/content/document/content.min.css":"tinymce/skins/content/document/content.min-cef2580b983fd570768ec93bed32544cfd4f3aeb5cc71da988e5acaa803c276f.css","tinymce/skins/content/writer/content.css":"tinymce/skins/content/writer/content-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css","tinymce/skins/content/writer/content.min.css":"tinymce/skins/content/writer/content.min-eb8e48d175f37ee3a4deb4fafb4cde5f579420b4ba62c14e96e6da9fd937b622.css","tinymce/skins/ui/oxide-dark/content.css":"tinymce/skins/ui/oxide-dark/content-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css","tinymce/skins/ui/oxide-dark/content.inline.css":"tinymce/skins/ui/oxide-dark/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css","tinymce/skins/ui/oxide-dark/content.inline.min.css":"tinymce/skins/ui/oxide-dark/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css","tinymce/skins/ui/oxide-dark/content.min.css":"tinymce/skins/ui/oxide-dark/content.min-903e8049e98bf945b0f2eb563299b5276cd5056dca3d88f662c437aff3247983.css","tinymce/skins/ui/oxide-dark/content.mobile.css":"tinymce/skins/ui/oxide-dark/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide-dark/content.mobile.min.css":"tinymce/skins/ui/oxide-dark/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff":"tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff","tinymce/skins/ui/oxide-dark/skin.css":"tinymce/skins/ui/oxide-dark/skin-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css","tinymce/skins/ui/oxide-dark/skin.min.css":"tinymce/skins/ui/oxide-dark/skin.min-d2d21c27ed7926babd47db222f19733d057f2574e779e77d2be8c74bf3c0aa9f.css","tinymce/skins/ui/oxide-dark/skin.mobile.css":"tinymce/skins/ui/oxide-dark/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide-dark/skin.mobile.min.css":"tinymce/skins/ui/oxide-dark/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide/content.css":"tinymce/skins/ui/oxide/content-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css","tinymce/skins/ui/oxide/content.inline.css":"tinymce/skins/ui/oxide/content.inline-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css","tinymce/skins/ui/oxide/content.inline.min.css":"tinymce/skins/ui/oxide/content.inline.min-8e4a8efe443acf48d853921236cfe34f732d0bb7c60360b8ac0d003769c2d4c7.css","tinymce/skins/ui/oxide/content.min.css":"tinymce/skins/ui/oxide/content.min-b016d90cb483a04c5bd28daf3a46cab9bc1298d514c7ee97fe5a89cf314446a2.css","tinymce/skins/ui/oxide/content.mobile.css":"tinymce/skins/ui/oxide/content.mobile-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide/content.mobile.min.css":"tinymce/skins/ui/oxide/content.mobile.min-72514c6c02bdf02fe727cbf4a8fc8d073dee8fcfaedfbe847449a621bff0f064.css","tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff":"tinymce/skins/ui/oxide/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff","tinymce/skins/ui/oxide/skin.css":"tinymce/skins/ui/oxide/skin-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css","tinymce/skins/ui/oxide/skin.min.css":"tinymce/skins/ui/oxide/skin.min-43412fb54de72b2587f17a55f96a332516dc64497481b23fc1f65a9fa409352a.css","tinymce/skins/ui/oxide/skin.mobile.css":"tinymce/skins/ui/oxide/skin.mobile-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/skins/ui/oxide/skin.mobile.min.css":"tinymce/skins/ui/oxide/skin.mobile.min-8a6d1def829e9f422fd92db88857405ae5128a816db0c33cf8e4eff513738b3a.css","tinymce/themes/mobile/theme.js":"tinymce/themes/mobile/theme-62854f6e251123c4d8d2df90e854e40f7f2019d926f6ccae83f0fbf8239e92e3.js","tinymce/themes/silver/theme.js":"tinymce/themes/silver/theme-1a82a451ff32104162e1b5f3f16cc68522d978009119df89d9293018f9df6418.js","tinymce/tinymce.js":"tinymce/tinymce-bf08240159b9833237a511082b7e9ee4a110acd66fbe79ae4a12806131333b3a.js","tinymce-rails.manifest.js":"tinymce-rails.manifest-e761884522a9ca2dac475b68bac1946c990fb9af8b676d3b6b45692a920c8d04.js","flags/4x3/es-ca.svg":"flags/4x3/es-ca-e6d65a5eae996b410a099eadfc691c380ad0f734578ce2ac14f2d5bf31eb63db.svg","flags/1x1/es-ca.svg":"flags/1x1/es-ca-620053dffeefac1c5eb2f455e2cada12044e5366ffa6516a3bd611ffbbe15dcd.svg","flags/4x3/xk.svg":"flags/4x3/xk-201401507976e570a410ef6fea6a56db0e05749575bf61ba04a86c7724c6b5c1.svg","flags/1x1/xk.svg":"flags/1x1/xk-a63525c9f71527db7258c39de2e41edb404955ffb3e5d2b9dd1a7f3173e3b028.svg"}} \ No newline at end of file diff --git a/public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css b/public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css new file mode 100644 index 00000000..31c1addb --- /dev/null +++ b/public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css @@ -0,0 +1,4 @@ +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{font-size:100.01%}body{font-size:75%;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif}h1,h2,h3,h4,h5,h6{font-weight:normal;color:#5E6469}h1 img,h2 img,h3 img,h4 img,h5 img,h6 img{margin:0}h1{font-size:3em;line-height:1;margin-bottom:0.5em}h2{font-size:2em;margin-bottom:0.75em}h3{font-size:1.5em;line-height:1;margin-bottom:1em}h4{font-size:1.2em;line-height:1.25;margin-bottom:1.25em}h5{font-size:1em;font-weight:bold;margin-bottom:1.5em}h6{font-size:1em;font-weight:bold}p{margin:0 0 1.5em}p .left{margin:1.5em 1.5em 1.5em 0;padding:0}p .right{margin:1.5em 0 1.5em 1.5em;padding:0}.left{float:left !important}.right{float:right !important}blockquote{margin:1.5em;color:#666;font-style:italic}strong,dfn{font-weight:bold}em,dfn{font-style:italic}sup,sub{line-height:0}abbr,acronym{border-bottom:1px dotted #666}address{margin:0 0 1.5em;font-style:italic}del{color:#666}pre{margin:1.5em 0;white-space:pre}pre,code,tt{font:1em 'andale mono', 'lucida console', monospace;line-height:1.5}li ul,li ol{margin:0}ul,ol{margin:0 1.5em 1.5em 0;padding-left:1.5em}ul{list-style-type:disc}ol{list-style-type:decimal}dl{margin:0 0 1.5em 0}dl dt{font-weight:bold}dd{margin-left:1.5em}table{margin-bottom:1.4em;width:100%}th{font-weight:bold}thead th{background:#c3d9ff}th,td,caption{padding:4px 10px 4px 5px}.small{font-size:.8em;margin-bottom:1.875em;line-height:1.875em}.large{font-size:1.2em;line-height:2.5em;margin-bottom:1.25em}.hide{display:none}.quiet{color:#666}.loud{color:#000}.highlight{background:#ff0}.added{background:#060;color:#fff}.removed{background:#900;color:#fff}.first{margin-left:0;padding-left:0}.last{margin-right:0;padding-right:0}.top{margin-top:0;padding-top:0}.bottom{margin-bottom:0;padding-bottom:0}#header{background-color:#6a7176;background-image:linear-gradient(180deg, #6a7176, #4d5256);border-bottom:1px solid #44484b;box-shadow:0 1px 2px rgba(0,0,0,0.37);text-shadow:#000 0 1px 0;display:table;height:20px;width:100%;overflow:visible;position:inherit;padding:5px 0;z-index:900}#header h1{display:table-cell;vertical-align:middle;white-space:nowrap;color:#cdcdcd;margin-right:20px;margin-bottom:0px;padding:3px 30px 0 30px;font-size:1.3em;font-weight:normal;line-height:1.2}#header h1 a{text-decoration:none}#header h1 a:hover{color:#fff}#header h1 img{position:relative;top:-2px}#header a,#header a:link{color:#cdcdcd}#header .header-item{top:2px;position:relative;height:20px}#header ul.tabs{display:table-cell;vertical-align:middle;height:100%;margin:0;padding:0}#header ul.tabs li:hover>ul{display:block}#header ul.tabs>li{display:inline-block;margin-right:4px;margin-top:5px;margin-bottom:5px;font-size:1.0em;position:relative}#header ul.tabs>li a{text-decoration:none;padding:6px 10px 4px 10px;position:relative;border-radius:10px}#header ul.tabs>li.current>a{background:#7b8389;color:#fff}#header ul.tabs>li.has_nested>a{background:url("data:image/png;base64,R0lGODlhBwAEAKIAAL6+vry8vIiIiJWVlf///3t7ewAAAAAAACH5BAEAAAUALAAAAAAHAAQAAAMLWLol80MoF5mQKgEAOw==") no-repeat calc(100% - 7px) 50%;padding-right:20px}#header ul.tabs>li.has_nested.current>a{background:#7b8389 url("data:image/png;base64,R0lGODlhBwAEAKIAAG1tbWxsbElJSVBQUP///0JCQgAAAAAAACH5BAEAAAUALAAAAAAHAAQAAAMLWLol80MoF5mQKgEAOw==") no-repeat calc(100% - 7px) 50%;padding-right:20px}#header ul.tabs>li:hover>a{background:#7b8389;color:#fff}#header ul.tabs>li.has_nested:hover>a{border-radius:0;border-top-right-radius:10px;border-top-left-radius:10px;border-bottom:5px solid #7b8389;background:#7b8389 url("data:image/png;base64,R0lGODlhBwAEAKIAAG1tbWxsbElJSVBQUP///0JCQgAAAAAAACH5BAEAAAUALAAAAAAHAAQAAAMLWLol80MoF5mQKgEAOw==") no-repeat calc(100% - 7px) 50%;z-index:1020}#header ul.tabs>li ul{background:#7b8389;border-top-right-radius:10px;border-top-left-radius:0;border-bottom-right-radius:10px;border-bottom-left-radius:10px;box-shadow:0 1px 3px #444;position:absolute;width:120%;min-width:175px;max-width:calc(100% + 20px);margin-top:5px;float:left;display:none;padding:3px 0px 5px 0;list-style:none;z-index:1010}#header ul.tabs>li ul li{position:relative;margin:0px}#header ul.tabs>li ul li a{background:none;display:block}#header ul.tabs>li ul li a:hover{color:#fff;background:none}#header ul.tabs>li ul li.current a{border-radius:0}#header ul.tabs>li ul li.has_nested>a{background:url("data:image/gif;base64,R0lGODlhBAAHAKECAKqqqszMzPkVFfkVFSH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAIALAAAAAAEAAcAAAIJlA0XKbH9nmAFADs=") no-repeat calc(100% - 7px) 55%;padding-right:20px}#header ul.tabs>li ul li.has_nested:hover>a{background:url("data:image/gif;base64,R0lGODlhBAAHAMIEAG1tbWxsbElJSVBQUPkVFfkVFfkVFfkVFSH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAEALAAAAAAEAAcAAAMKGKqy02G8OGeACQA7") no-repeat calc(100% - 7px) 55%;color:#fff}#header ul.tabs>li ul li ul{border-top-right-radius:10px;border-top-left-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:10px;margin-top:0;top:-3px;left:100%}#header ul.tabs>li ul li ul:after{content:"";display:block;position:absolute;top:-8px;left:-8px;height:calc(100% + 16px);width:calc(100% + 16px);z-index:-2}#header #tabs{width:100%}#header #utility_nav{color:#aaa;display:table-cell;white-space:nowrap;margin:0;padding:0;padding-right:26px;text-align:right}#header #utility_nav a{text-decoration:none}#header #utility_nav a:hover{color:#fff}#header #utility_nav li{display:inline}form ul,form ol,form li,form fieldset,form legend,form input,form textarea,form select,form p{margin:0;padding:0}form ol,form ul{list-style:none}form fieldset{border:0;padding:10px 0;margin-bottom:20px}form fieldset.inputs{background:#f4f4f4;border-radius:4px;box-shadow:inset 0 1px 4px #ddd}form fieldset legend{width:100%}form fieldset legend span{display:block;background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px}form fieldset ol>li{padding:10px}form fieldset ol>li label{display:block;width:20%;float:left;font-size:1.0em;font-weight:bold;color:#5E6469}form fieldset ol>li label abbr{border:none;color:#aaa}form fieldset ol>li.has_many_container{padding:20px 10px}form fieldset ol>li.has_many_container h3{font-size:12px;font-weight:bold}form fieldset ol>li.has_many_container .has_many_fields{margin:10px 0}form fieldset ol>li>li label{line-height:100%;padding-top:0}form fieldset ol>li>li label input{line-height:100%;vertical-align:middle;margin-top:-0.1em}form .has_many_fields{position:relative}form .has_many_container .handle{position:absolute;top:calc(50% - 3em / 2);right:2px;padding:0;cursor:move}form .has_many_container.ui-sortable .has_many_container{margin-right:2em}form .ui-sortable input[type=text],form .ui-sortable input[type=password],form .ui-sortable input[type=email],form .ui-sortable input[type=number],form .ui-sortable input[type=url],form .ui-sortable input[type=tel],form .ui-sortable textarea{width:calc(80% - 22px - 2em - 1px)}form fieldset>ol>li fieldset{position:relative;padding:0;margin-bottom:0}form fieldset>ol>li fieldset:not(.inputs) ol{float:left;width:74%;margin:0;padding:0 0 0 20%}form fieldset>ol>li fieldset:not(.inputs) ol li{padding:0;border:0}form fieldset>ol>li fieldset.inputs ol{float:left;width:100%;margin:0}form input[type=text],form input[type=password],form input[type=email],form input[type=number],form input[type=url],form input[type=tel],form input[type=date],form input[type=time],form textarea{width:calc(80% - 22px);border:1px solid #c9d0d6;border-radius:3px;font-size:0.95em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;outline:none;padding:8px 10px 7px}form input[type=text]:focus,form input[type=password]:focus,form input[type=email]:focus,form input[type=number]:focus,form input[type=url]:focus,form input[type=tel]:focus,form input[type=date]:focus,form input[type=time]:focus,form textarea:focus{border:1px solid #99a2aa;box-shadow:0 0 4px #99a2aa}form input[type=date]{width:calc(100% - 22px)}form fieldset>ol>li p.inline-hints{font-size:0.95em;font-style:italic;color:#666;margin:0.5em 0 0 20%}form fieldset>ol>li.date_select fieldset ol li,form fieldset>ol>li.time_select fieldset ol li,form fieldset>ol>li.datetime_select fieldset ol li{float:left;width:auto;margin:0 0.5em 0 0}form fieldset>ol>li.date_select fieldset ol li label,form fieldset>ol>li.time_select fieldset ol li label,form fieldset>ol>li.datetime_select fieldset ol li label{display:none}form fieldset>ol>li.date_select fieldset ol li input,form fieldset>ol>li.time_select fieldset ol li input,form fieldset>ol>li.datetime_select fieldset ol li input{display:inline;margin:0;padding:0}form fieldset>ol>li.check_boxes fieldset ol,form fieldset>ol>li.radio fieldset ol{margin-bottom:-0.6em}form fieldset>ol>li.check_boxes fieldset ol li,form fieldset>ol>li.radio fieldset ol li{margin:0.1em 0 0.5em 0}form fieldset>ol>li.check_boxes fieldset ol li label,form fieldset>ol>li.radio fieldset ol li label{float:none;width:100%}form fieldset>ol>li.check_boxes fieldset ol li label input,form fieldset>ol>li.radio fieldset ol li label input{margin-right:0.2em}form fieldset>ol>li.boolean{min-height:1.1em}form fieldset>ol>li.boolean label{width:80%;padding-left:20%;padding-right:10px;text-transform:none !important;font-weight:normal}form fieldset>ol>li.boolean label input{margin:0 0.5em 0 0.2em}form fieldset>ol>li.hidden{padding:0}form fieldset>ol>li p.inline-errors{color:#932419;font-weight:bold;margin:0.3em 0 0 20%}form fieldset>ol>li ul.errors{color:#932419;margin:0.5em 0 0 20%;list-style:square}form fieldset>ol>li ul.errors li{padding:0;border:none;display:list-item}form fieldset>ol>li.error input[type=text],form fieldset>ol>li.error input[type=password],form fieldset>ol>li.error input[type=email],form fieldset>ol>li.error input[type=number],form fieldset>ol>li.error input[type=url],form fieldset>ol>li.error input[type=tel],form fieldset>ol>li.error textarea{border:1px solid #932419}form ul.errors{background:#fae6e4;border-radius:4px;color:#932419;font-weight:bold;margin-bottom:10px;padding:10px;list-style:square}form ul.errors li{margin-left:15px;padding:0;border:none;display:list-item}form input[type=submit],form input[type=button],form button{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#838a90;background-image:linear-gradient(180deg, #838a90, #414549);text-shadow:#000 0 1px 0;box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0px rgba(255,255,255,0.2) inset;border:solid 1px #484e53;border-color:#484e53;border-top-color:#616a71;border-right-color:#484e53;border-bottom-color:#363b3f;border-left-color:#484e53;color:#efefef;cursor:pointer}form input[type=submit].disabled,form input[type=button].disabled,form button.disabled{opacity:0.5;cursor:default}form input[type=submit]:not(.disabled):hover,form input[type=button]:not(.disabled):hover,form button:not(.disabled):hover{background-color:#8b9297;background-image:linear-gradient(180deg, #8b9297, #484d51)}form input[type=submit]:not(.disabled):active,form input[type=button]:not(.disabled):active,form button:not(.disabled):active{box-shadow:0 1px 3px rgba(0,0,0,0.4) inset,0 1px 0 0px #fff;background-color:#71797f;background-image:linear-gradient(180deg, #71797f, #35383b)}form .buttons,form .actions{margin-top:15px}form .buttons input[type=submit],form .buttons input[type=button],form .buttons button,form .actions input[type=submit],form .actions input[type=button],form .actions button{margin-right:10px}form .actions .create_another{float:none;margin-bottom:10px}form .actions .create_another label{float:none;display:inline}form fieldset.buttons li,form fieldset.actions li{float:left;padding:0}form fieldset.buttons li.cancel a,form fieldset.actions li.cancel a{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469}form fieldset.buttons li.cancel a.disabled,form fieldset.actions li.cancel a.disabled{opacity:0.5;cursor:default}form fieldset.buttons li.cancel a:not(.disabled):hover,form fieldset.actions li.cancel a:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}form fieldset.buttons li.cancel a:not(.disabled):active,form fieldset.actions li.cancel a:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.sidebar_section label{display:block;text-transform:uppercase;color:#5E6469;font-size:0.9em;font-weight:bold}.sidebar_section select{width:240px}.sidebar_section input[type=text],.sidebar_section input[type=password],.sidebar_section input[type=email],.sidebar_section input[type=url],.sidebar_section input[type=tel],.sidebar_section textarea{width:220px}form.filter_form .filter_form_field{margin-bottom:10px;clear:both}form.filter_form .filter_form_field.select_and_search input[type=text]{margin-left:16px;width:88px}form.filter_form .filter_form_field.select_and_search select{width:108px}form.filter_form .filter_form_field.filter_check_boxes label{margin-bottom:3px}form.filter_form .filter_form_field.filter_check_boxes fieldset{margin-bottom:0px;padding-bottom:0px}form.filter_form .filter_form_field.filter_check_boxes .check_boxes_wrapper label{font-weight:normal;margin-bottom:3px;text-transform:none;font-size:1.0em}form.filter_form .filter_form_field.filter_check_boxes .check_boxes_wrapper label input{vertical-align:baseline}form.filter_form .filter_form_field.filter_date_range input[type=text]{box-sizing:border-box;width:114px}form.filter_form .filter_form_field.filter_date_range input[type=text]+input{margin-left:6px}form.filter_form a.clear_filters_btn{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469}form.filter_form a.clear_filters_btn.disabled{opacity:0.5;cursor:default}form.filter_form a.clear_filters_btn:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}form.filter_form a.clear_filters_btn:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.comments .active_admin_comment{clear:both;margin-top:10px;margin-bottom:40px;max-width:700px}.comments .active_admin_comment .active_admin_comment_meta{width:130px;float:left;overflow:hidden;font-size:0.9em;color:#767e84}.comments .active_admin_comment .active_admin_comment_meta .active_admin_comment_author{font-size:1.2em;font-weight:bold;margin:0;color:#5E6469}.comments .active_admin_comment .active_admin_comment_body{margin-left:150px}.comments form.active_admin_comment{margin:0;padding:0;margin-left:150px}.comments form.active_admin_comment fieldset.inputs{margin:0;padding:0;background:none;box-shadow:none}.comments form.active_admin_comment li{padding:0}.comments form.active_admin_comment fieldset.buttons{padding:0;margin-top:5px}body.logged_in .flash{background-color:#f7f1d3;background-image:linear-gradient(180deg, #f7f1d3, #f5edc5);text-shadow:#fafafa 0 1px 0;border-bottom:1px solid #eee098;color:#cb9810;font-weight:bold;font-size:1.1em;line-height:1.0em;padding:13px 30px 11px;position:relative}body.logged_in .flash.flash_notice{background-color:#dce9dd;background-image:linear-gradient(180deg, #dce9dd, #ccdfcd);border-bottom:1px solid #adcbaf;color:#416347}body.logged_in .flash.flash_error{background-color:#f5e4e4;background-image:linear-gradient(180deg, #f5e4e4, #f1dcdc);border-bottom:1px solid #e0c2c0;color:#b33c33}body.logged_out .flash{box-shadow:none;text-shadow:#fff 0 1px 0;background:none;color:#666;font-weight:bold;line-height:1.0em;padding:0;margin-bottom:8px}.ui-datepicker{background:#fff;background-clip:padding-box;color:#fff;display:none;margin-top:2px;padding:0;text-align:center;width:160px}.ui-datepicker a{text-decoration:none}.ui-datepicker a:hover{cursor:pointer}.ui-datepicker .ui-datepicker-header{height:14px;background-color:#6a7176;background-image:linear-gradient(180deg, #6a7176, #4d5256);border-bottom:1px solid #44484b;padding:12px 5px 7px 4px;margin:0px 0px 2px 2px;width:147px;border-top-left-radius:7px;border-top-right-radius:7px;position:relative;z-index:2000}.ui-datepicker .ui-datepicker-header:before{content:"";position:absolute;right:45%;top:-6px;width:0px;height:0px;border-left:8.5px solid rgba(0,0,0,0);border-right:8.5px solid rgba(0,0,0,0);border-bottom:10px solid #676e73}.ui-datepicker .ui-datepicker-header .ui-datepicker-title{text-shadow:#000 0 1px 0;color:#fff;display:block;font-size:1.1em;font-weight:bold;line-height:0.8em;text-align:center}.ui-datepicker .ui-datepicker-header .ui-datepicker-title .ui-datepicker-month{margin:-4px 0 0 0}.ui-datepicker .ui-datepicker-header .ui-datepicker-title .ui-datepicker-year{margin:-4px 0 0 0}.ui-datepicker .ui-datepicker-header a{color:#fff;display:block;height:19px;margin-top:-4px;width:10px}.ui-datepicker .ui-datepicker-header a.ui-datepicker-prev{float:left;width:0;height:0;margin:0px 0px 0px 4px;border-top:5px solid transparent;border-right:5px solid white;border-bottom:5px solid transparent}.ui-datepicker .ui-datepicker-header a.ui-datepicker-next{float:right;width:0;height:0;margin:0px 4px 0px 0px;border-top:5px solid transparent;border-left:5px solid white;border-bottom:5px solid transparent}.ui-datepicker .ui-datepicker-header a span{display:none}.ui-datepicker table.ui-datepicker-calendar{border-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;box-shadow:0 1px 6px rgba(0,0,0,0.26);background-color:#f4f4f4;border:solid 1px #63686e;left:2px;margin-bottom:0px;position:relative;top:-2px;width:156px}.ui-datepicker table.ui-datepicker-calendar td,.ui-datepicker table.ui-datepicker-calendar th{padding:0px;text-align:center}.ui-datepicker table.ui-datepicker-calendar thead th{background-color:#dbdddf;color:#333333;font-weight:normal;font-size:0.8em;padding-top:1px}.ui-datepicker table.ui-datepicker-calendar tbody{color:#666666}.ui-datepicker table.ui-datepicker-calendar tbody td{border:none;height:24px;width:22px}.ui-datepicker table.ui-datepicker-calendar tbody td a{border-radius:3px;color:#666666;font-weight:bold;font-size:0.85em;padding:4px}.ui-datepicker table.ui-datepicker-calendar tbody td a.ui-state-active{background-color:#5a5f64;color:#fff}.ui-datepicker table.ui-datepicker-calendar tbody td a.ui-state-active.ui-state-hover{background-color:#5a5f64;color:#fff}.ui-datepicker table.ui-datepicker-calendar tbody td a.ui-state-hover{background-color:#eceef0}.ui-datepicker table.ui-datepicker-calendar tbody td a.ui-state-highlight{background-color:#dbdddf}table tr td{vertical-align:top}table tr th{text-align:left}table.index_table{width:100%;margin-bottom:10px;border:0;border-spacing:0}table.index_table th{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px;border-right:none;padding-left:12px;padding-right:12px}table.index_table th a,table.index_table th a:link,table.index_table th a:visited{color:#5E6469;text-decoration:none;display:block;white-space:nowrap}table.index_table th.sortable a{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAABGCAYAAAAAVo4aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUeNpi3LhlOwMU1AExGxDXwARYoHQLEFdD2cxAXAliMKFJgEAFEHfBJEHGMKLhMpgkTsAEdch/NNwCk2xCdiEQtML4LEgCf6EubUX3Cgh0oNvJ+P//f7wOGpUclRwYSZb41CyidNbB8giNM+9oXhmVHHm5bJjUSAABBgDKKiwMMUxPwgAAAABJRU5ErkJggg==") no-repeat 0 4px;padding-left:13px}table.index_table th.sorted-asc a{background-position:0 -27px}table.index_table th.sorted-desc a{background-position:0 -56px}table.index_table th.sorted-asc,table.index_table th.sorted-desc{background-color:#e2e2e2;background-image:linear-gradient(180deg, #e2e2e2, #d2d4d6)}table.index_table th:last-child{border-right:solid 1px #d4d4d4}table.index_table tr.even td{background:#f4f5f5}table.index_table tr.selected td{background:#d9e4ec}table.index_table td{padding:10px 12px 8px 12px;border-bottom:1px solid #e8e8e8;vertical-align:top}.panel_contents table{margin-top:5px}.panel_contents table th{padding-top:10px;background:none;color:#5E6469;box-shadow:none;text-shadow:#fff 0 1px 0;text-transform:uppercase;border-bottom:1px solid #ccc}.panel_contents table tr.odd td{background:#ecedee}.panel_contents table tr.even td{background:#f4f5f5}.attributes_table{overflow:hidden}.attributes_table table col.even{background:#f4f5f5}.attributes_table table col.odd{background:#ecedee}.attributes_table table th,.attributes_table table td{padding:8px 12px 6px 12px;vertical-align:top;border-bottom:1px solid #e8e8e8}.attributes_table table th{box-shadow:none;background:none;width:150px;font-size:0.9em;padding-left:0;text-transform:uppercase;color:#5E6469;text-shadow:#fff 0 1px 0}.attributes_table table td .empty{color:#bbb;font-size:0.8em;text-transform:uppercase;letter-spacing:0.2em}.sidebar_section .attributes_table th{width:50px}#collection_selection_toggle_panel:after{visibility:hidden;display:block;content:"";clear:both;height:0}#collection_selection_toggle_panel>.resource_selection_toggle_cell{float:left}.ui-widget-overlay{position:fixed;background:rgba(0,0,0,0.2);top:0;left:0;right:0;bottom:0;z-index:1001}.ui-dialog{position:fixed;z-index:1002;background:#f4f4f4;border-radius:4px;box-shadow:inset 0 1px 4px #ddd;box-shadow:rgba(0,0,0,0.5) 0 0 10px}.ui-dialog .ui-dialog-titlebar{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px}.ui-dialog .ui-dialog-titlebar span{font-size:1.1em}.ui-dialog ul{list-style-type:none}.ui-dialog li{margin:10px 0}.ui-dialog label{margin-right:10px}.ui-dialog .ui-dialog-buttonpane,.ui-dialog form{padding:7px 15px 13px}.ui-dialog .ui-dialog-buttonpane button{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#838a90;background-image:linear-gradient(180deg, #838a90, #414549);text-shadow:#000 0 1px 0;box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0px rgba(255,255,255,0.2) inset;border:solid 1px #484e53;border-color:#484e53;border-top-color:#616a71;border-right-color:#484e53;border-bottom-color:#363b3f;border-left-color:#484e53;color:#efefef}.ui-dialog .ui-dialog-buttonpane button.disabled{opacity:0.5;cursor:default}.ui-dialog .ui-dialog-buttonpane button:not(.disabled):hover{background-color:#8b9297;background-image:linear-gradient(180deg, #8b9297, #484d51)}.ui-dialog .ui-dialog-buttonpane button:not(.disabled):active{box-shadow:0 1px 3px rgba(0,0,0,0.4) inset,0 1px 0 0px #fff;background-color:#71797f;background-image:linear-gradient(180deg, #71797f, #35383b)}.ui-dialog .ui-dialog-buttonpane button:last-child{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469}.ui-dialog .ui-dialog-buttonpane button:last-child.disabled{opacity:0.5;cursor:default}.ui-dialog .ui-dialog-buttonpane button:last-child:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}.ui-dialog .ui-dialog-buttonpane button:last-child:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.active_admin_dialog.ui-dialog .ui-dialog-titlebar-close{display:none}.blank_slate_container{clear:both;text-align:center}.blank_slate_container .blank_slate{border-radius:3px;border:1px dashed #DADADA;color:#AAA;display:inline-block;font-size:1.2em;font-weight:bold;padding:14px 25px;text-align:center}.blank_slate_container .blank_slate small{display:block;font-size:0.9em;font-weight:normal}.admin_dashboard .blank_slate_container .blank_slate{margin-top:40px;margin-bottom:40px}.with_sidebar .blank_slate_container .blank_slate{margin-top:80px}.breadcrumb{display:block;font-size:0.9em;font-weight:normal;line-height:1.0em;margin-bottom:12px;text-transform:uppercase}.breadcrumb a,.breadcrumb a:link,.breadcrumb a:visited,.breadcrumb a:active{color:#8a949e;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .breadcrumb_sep{margin:0 2px;color:#aab2ba}.dropdown_menu{display:inline}.dropdown_menu .dropdown_menu_button{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469;position:relative;padding-right:22px !important;cursor:pointer}.dropdown_menu .dropdown_menu_button.disabled{opacity:0.5;cursor:default}.dropdown_menu .dropdown_menu_button:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}.dropdown_menu .dropdown_menu_button:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.dropdown_menu .dropdown_menu_button:before{content:' ';position:absolute;width:0;height:0;border-width:3px 3px 0;border-style:solid;border-color:#FFF transparent;right:12px;top:45%}.dropdown_menu .dropdown_menu_button:after{content:' ';position:absolute;width:0;height:0;border-width:3px 3px 0;border-style:solid;border-color:#777 transparent;right:12px;top:45%}.dropdown_menu .dropdown_menu_nipple{content:"";position:absolute;top:-6px;display:block;width:0;height:0;border-width:0 6px 6px;border-style:solid;border-color:#545a5e transparent;z-index:100}.dropdown_menu .dropdown_menu_nipple:before{content:' ';position:absolute;width:0;height:0;border-width:0 5px 5px;border-style:solid;border-color:#838a90 transparent;left:-5px;top:1px}.dropdown_menu .dropdown_menu_nipple:after{content:' ';position:absolute;width:0;height:0;border-width:0 5px 5px;border-style:solid;border-color:#686e74 transparent;left:-5px;top:2px}.dropdown_menu .dropdown_menu_list_wrapper{display:inline-block;position:absolute;background-color:white;padding:2px;box-shadow:rgba(0,0,0,0.4) 0 1px 3px,#838a90 0px 1px 0px 0px inset;background-color:#5E6469;background-color:#686e74;background-image:linear-gradient(180deg, #686e74, #52575c);border:solid 1px #464a4e;border-top-color:#545a5e;border-bottom-color:#35383b;border-radius:4px;z-index:2000;display:none}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list{display:block;background-color:#FFF;border:solid 1px #464a4e;box-shadow:#6a7176 0px 1px 0px 0px;border-radius:3px;margin:0;overflow:hidden;padding:8px;list-style-type:none;padding:0}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li{display:block;border-bottom:solid 1px #ebebeb;box-sizing:border-box}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li a{display:block;box-sizing:padding-box;font-size:0.95em;font-weight:bold;padding:7px 16px 5px;text-decoration:none;text-align:center;white-space:nowrap}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li a:hover{background-color:#75a1c2;background-image:linear-gradient(180deg, #75a1c2, #608cb4);text-shadow:#5a83aa 0 1px 0;color:#FFF}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li a:active{background-color:#608cb4;background-image:linear-gradient(180deg, #608cb4, #75a1c2);color:#FFF}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li:first-child a{border-top-left-radius:2px;border-top-right-radius:2px}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li:last-child{border:none}.dropdown_menu .dropdown_menu_list_wrapper .dropdown_menu_list li:last-child a{border-bottom-left-radius:2px;border-bottom-right-radius:2px}a.member_link{margin-right:7px;white-space:nowrap}a.button,a:link.button,a:visited.button,input[type=submit],input[type=button],button{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#838a90;background-image:linear-gradient(180deg, #838a90, #414549);text-shadow:#000 0 1px 0;box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0px rgba(255,255,255,0.2) inset;border:solid 1px #484e53;border-color:#484e53;border-top-color:#616a71;border-right-color:#484e53;border-bottom-color:#363b3f;border-left-color:#484e53;color:#efefef}a.button.disabled,a:link.button.disabled,a:visited.button.disabled,input[type=submit].disabled,input[type=button].disabled,button.disabled{opacity:0.5;cursor:default}a.button:not(.disabled):hover,a:link.button:not(.disabled):hover,a:visited.button:not(.disabled):hover,input[type=submit]:not(.disabled):hover,input[type=button]:not(.disabled):hover,button:not(.disabled):hover{background-color:#8b9297;background-image:linear-gradient(180deg, #8b9297, #484d51)}a.button:not(.disabled):active,a:link.button:not(.disabled):active,a:visited.button:not(.disabled):active,input[type=submit]:not(.disabled):active,input[type=button]:not(.disabled):active,button:not(.disabled):active{box-shadow:0 1px 3px rgba(0,0,0,0.4) inset,0 1px 0 0px #fff;background-color:#71797f;background-image:linear-gradient(180deg, #71797f, #35383b)}table.index_grid td{border:none;background:none;padding:0 20px 20px 0;margin:0}.columns{clear:both;padding:0}.columns .column{float:left}a,a:link,a:visited{color:#38678b;text-decoration:underline}a:hover{text-decoration:none}.paginated_collection_contents{clear:both}.pagination{float:right;font-size:0.9em;margin-left:10px}.pagination a{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469}.pagination a.disabled{opacity:0.5;cursor:default}.pagination a:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}.pagination a:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.pagination span.page.current{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#838a90;background-image:linear-gradient(180deg, #838a90, #414549);text-shadow:#000 0 1px 0;box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0px rgba(255,255,255,0.2) inset;border:solid 1px #484e53;border-color:#484e53;border-top-color:#616a71;border-right-color:#484e53;border-bottom-color:#363b3f;border-left-color:#484e53;color:#efefef}.pagination span.page.current.disabled{opacity:0.5;cursor:default}.pagination span.page.current:not(.disabled):hover{background-color:#8b9297;background-image:linear-gradient(180deg, #8b9297, #484d51)}.pagination span.page.current:not(.disabled):active{box-shadow:0 1px 3px rgba(0,0,0,0.4) inset,0 1px 0 0px #fff;background-color:#71797f;background-image:linear-gradient(180deg, #71797f, #35383b)}.pagination a,.pagination span.page.current{border-radius:0px;margin-right:4px;padding:2px 5px}.pagination_information{float:right;margin-bottom:5px;color:#b3bcc1}.pagination_information b{color:#5c6469}.download_links{float:left}.pagination_per_page{float:right;margin-left:4px}.pagination_per_page select{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469;border-radius:0px;padding:1px 5px}.pagination_per_page select.disabled{opacity:0.5;cursor:default}.pagination_per_page select:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}.pagination_per_page select:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.comments .pagination{float:left;margin-bottom:30px}.comments .pagination_information{float:left;color:#000}.section,.panel{background:#f4f4f4;border-radius:4px;box-shadow:inset 0 1px 4px #ddd;margin-bottom:20px}.section>h3,.panel>h3{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px}.section>h3 .header_action,.panel>h3 .header_action{float:right}.section>div,.panel>div{padding:3px 15px 15px 15px}.section hr,.panel hr{border:none;border-bottom:1px solid #E8E8E8}.sidebar_section{background:#f4f4f4;border-radius:4px;box-shadow:inset 0 1px 4px #ddd;margin-bottom:20px}.sidebar_section>h3{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px}.sidebar_section>h3 .header_action{float:right}.sidebar_section>div{padding:3px 15px 15px 15px}.sidebar_section hr{border:none;border-bottom:1px solid #E8E8E8}.columns{margin-bottom:10px}.scopes li .count{color:#8e979e;font-weight:normal;font-size:0.9em;line-height:10px}.scopes li:first-child a{margin-left:10px}.status_tag{background:#cacaca;color:#fff;text-transform:uppercase;letter-spacing:0.15em;padding:3px 5px 2px 5px;font-size:0.8em}.status_tag.yes{background:#6090DB}.status_tag.no{background:grey}.table_tools{margin-bottom:16px}.table_tools:after{visibility:hidden;display:block;content:"";clear:both;height:0}.table_tools .dropdown_menu{float:left}a.table_tools_button,.table_tools .dropdown_menu_button{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F0F0F0);border-color:#d0d0d0;border-top-color:#d9d9d9;border-right-color:#d0d0d0;border-bottom-color:#c5c5c5;border-left-color:#d0d0d0;font-size:0.9em;padding:4px 14px 4px;margin:0}a.table_tools_button.disabled,.table_tools .dropdown_menu_button.disabled{opacity:0.5;cursor:default}a.table_tools_button:not(.disabled):hover,.table_tools .dropdown_menu_button:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}a.table_tools_button:not(.disabled):active,.table_tools .dropdown_menu_button:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}a.table_tools_button:not(.disabled):hover,.table_tools .dropdown_menu_button:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F6F6F6)}a.table_tools_button:not(.disabled):active,.table_tools .dropdown_menu_button:not(.disabled):active{border-color:#c8c8c8;border-top-color:#d7d7d7;border-right-color:#c8c8c8;border-bottom-color:#c3c3c3;border-left-color:#c8c8c8;box-shadow:0 1px 1px 0 rgba(0,0,0,0.17) inset;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E8E8E8)}.table_tools_segmented_control{list-style-type:none;padding:0;margin:0}.table_tools_segmented_control li{float:left}.table_tools_segmented_control li a{border-width:1px .5px 1px .5px;border-radius:0}.table_tools_segmented_control li:first-child a{border-left-width:1px;border-top-left-radius:12px;border-bottom-left-radius:12px}.table_tools_segmented_control li:last-child a{border-right-width:1px;border-top-right-radius:12px;border-bottom-right-radius:12px}.table_tools_segmented_control li.selected a{background-color:#F0F0F0;background-image:linear-gradient(180deg, #F0F0F0, #FDFDFD);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1) inset;cursor:default}.table_tools_segmented_control li.selected a:hover{background-color:#F0F0F0;background-image:linear-gradient(180deg, #F0F0F0, #FDFDFD)}.indexes{float:right}.indexes li .count{color:#8e979e;font-weight:normal;font-size:0.9em;line-height:10px}.unsupported_browser{padding:10px 30px;color:#211e14;background-color:#fae692;background-color:#feefae;background-image:linear-gradient(180deg, #feefae, #fae692);border-bottom:1px solid #b3a569}.unsupported_browser h1{font-size:13px;font-weight:bold}.unsupported_browser p{margin-bottom:0.5em}.ui-tabs-nav{list-style:none;display:block;width:auto;margin-bottom:-12px;padding-left:0;overflow:auto;margin-left:15px}.ui-tabs-nav li{display:block;position:relative;margin:0;padding:0;float:left}.ui-tabs-nav li:first-child a{border-left-width:1px;border-top-left-radius:12px;border-bottom-left-radius:12px}.ui-tabs-nav li:last-child a{border-right-width:1px;border-top-right-radius:12px;border-bottom-right-radius:12px}.ui-tabs-nav li a{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F0F0F0);border-color:#d0d0d0;border-top-color:#d9d9d9;border-right-color:#d0d0d0;border-bottom-color:#c5c5c5;border-left-color:#d0d0d0;text-decoration:none;border-radius:0;border-width:1px .5px 1px .5px;margin-right:0;padding:4px 14px 4px}.ui-tabs-nav li a.disabled{opacity:0.5;cursor:default}.ui-tabs-nav li a:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}.ui-tabs-nav li a:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}.ui-tabs-nav li a:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F6F6F6)}.ui-tabs-nav li.ui-tabs-active a{cursor:default;background-color:#F0F0F0;background-image:linear-gradient(180deg, #F0F0F0, #FDFDFD);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1) inset}.ui-tabs-nav li.ui-tabs-active a a:hover{background-color:#F0F0F0;background-image:linear-gradient(180deg, #F0F0F0, #FDFDFD)}.tab-content{border:1px solid #D3D3D3;padding:15px;padding-top:30px;text-align:left}body.logged_out{background:#e8e9ea}body.logged_out #content_wrapper{width:500px;margin:70px auto}body.logged_out #content_wrapper #active_admin_content{box-shadow:0 1px 2px rgba(0,0,0,0.37);background:#fff;padding:13px 30px}body.logged_out h2{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px;background-color:#6a7176;background-image:linear-gradient(180deg, #6a7176, #4d5256);border-bottom:1px solid #44484b;text-shadow:#000 0 1px 0;box-shadow:0 1px 3px rgba(0,0,0,0.3);border:none;color:#fff;margin:-13px -30px 20px -30px}body.logged_out #login form fieldset{box-shadow:none;background:none;padding:0;margin-bottom:0}body.logged_out #login form fieldset li{padding:10px 0}body.logged_out #login form fieldset input[type=text],body.logged_out #login form fieldset input[type=email],body.logged_out #login form fieldset input[type=password]{width:70%}body.logged_out #login form fieldset.buttons{margin-left:20%}body.logged_out #login a{float:right;margin-top:-32px}#footer{padding:30px 30px;font-size:0.8em;clear:both}#footer p{padding-top:10px}#index_footer{padding-top:5px;text-align:right;font-size:0.85em}.index_content{clear:both}#wrapper{width:100%}.index #wrapper{display:table}#active_admin_content{margin:0;padding:30px}#active_admin_content #main_content_wrapper{float:left;width:100%}#active_admin_content #main_content_wrapper #main_content{margin-right:300px}#active_admin_content.without_sidebar #main_content_wrapper #main_content{margin-right:0}#active_admin_content #sidebar{float:left;width:270px;margin-left:-270px}#title_bar{background-color:#efefef;background-image:linear-gradient(180deg, #efefef, #dfe1e2);text-shadow:#fff 0 1px 0;border:solid 1px #cdcdcd;border-color:#d4d4d4;border-top-color:#e6e6e6;border-right-color:#d4d4d4;border-bottom-color:#cdcdcd;border-left-color:#d4d4d4;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 0 1px #fff inset;font-size:1em;font-weight:bold;line-height:18px;margin-bottom:0.5em;color:#5E6469;padding:5px 10px 3px 10px;box-sizing:border-box;box-shadow:0 1px 2px rgba(0,0,0,0.37);display:table;border-bottom-color:#EEE;width:100%;position:relative;margin:0;padding:10px 30px;z-index:800}#title_bar:after{visibility:hidden;display:block;content:"";clear:both;height:0}#title_bar #titlebar_left,#title_bar #titlebar_right{height:50px;vertical-align:middle;display:table-cell}#title_bar #titlebar_right{text-align:right}#title_bar h2{margin:0;padding:0;font-size:2.6em;line-height:100%;font-weight:bold}#title_bar .action_items span.action_item>a,#title_bar .action_items span.action_item>.dropdown_menu>a{border-radius:200px;display:inline-block;font-weight:bold;font-size:1.0em;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:12px;margin-right:3px;padding:7px 16px 6px;text-decoration:none;background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #E7E7E7);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 0 0 rgba(255,255,255,0.8) inset;border:solid 1px #c7c7c7;border-color:#c7c7c7;border-top-color:#d3d3d3;border-right-color:#c7c7c7;border-bottom-color:#c2c2c2;border-left-color:#c7c7c7;text-shadow:#fff 0 1px 0;color:#5E6469;padding:12px 17px 10px;margin:0px}#title_bar .action_items span.action_item>a.disabled,#title_bar .action_items span.action_item>.dropdown_menu>a.disabled{opacity:0.5;cursor:default}#title_bar .action_items span.action_item>a:not(.disabled):hover,#title_bar .action_items span.action_item>.dropdown_menu>a:not(.disabled):hover{background-color:#FFFFFF;background-image:linear-gradient(180deg, #fff, #F1F1F1)}#title_bar .action_items span.action_item>a:not(.disabled):active,#title_bar .action_items span.action_item>.dropdown_menu>a:not(.disabled):active{box-shadow:0 1px 2px rgba(0,0,0,0.22) inset,0 1px 0 0px #EEE;border-color:#b9b9b9;border-top-color:#c2c2c2;border-right-color:#b9b9b9;border-bottom-color:#b7b7b7;border-left-color:#b9b9b9;background-color:#F3F3F3;background-image:linear-gradient(180deg, #F3F3F3, #D8D8D8)}body{font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;line-height:1.5;font-size:72%;background:#FFF;color:#323537}/*! + * Font Awesome Free 5.12.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url("../fonts/font-awesome/fa-solid-900.eot");src:url("../fonts/font-awesome/fa-solid-900.eot#iefix") format("embedded-opentype"),url("../fonts/font-awesome/fa-solid-900.woff2") format("woff2"),url("../fonts/font-awesome/fa-solid-900.woff") format("woff"),url("../fonts/font-awesome/fa-solid-900.ttf") format("truetype"),url("../fonts/font-awesome/fa-solid-900.svg#fontawesome") format("svg")}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:auto;src:url("../fonts/font-awesome/fa-regular-400.eot");src:url("../fonts/font-awesome/fa-regular-400.eot#iefix") format("embedded-opentype"),url("../fonts/font-awesome/fa-regular-400.woff2") format("woff2"),url("../fonts/font-awesome/fa-regular-400.woff") format("woff"),url("../fonts/font-awesome/fa-regular-400.ttf") format("truetype"),url("../fonts/font-awesome/fa-regular-400.svg#fontawesome") format("svg")}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:normal;font-display:auto;src:url("../fonts/font-awesome/fa-brands-400.eot");src:url("../fonts/font-awesome/fa-brands-400.eot#iefix") format("embedded-opentype"),url("../fonts/font-awesome/fa-brands-400.woff2") format("woff2"),url("../fonts/font-awesome/fa-brands-400.woff") format("woff"),url("../fonts/font-awesome/fa-brands-400.ttf") format("truetype"),url("../fonts/font-awesome/fa-brands-400.svg#fontawesome") format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.far{font-family:'Font Awesome 5 Free';font-weight:400}.fab{font-family:'Font Awesome 5 Brands'}.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.3333333333em;line-height:0.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid 0.08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1, -1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(-1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-flip-both{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.quantity{text-align:right !important;white-space:nowrap}table{border-spacing:2px}table th{font-weight:normal}table th a:link,table th a:visited{color:#003;padding:0 0.6em}table.list tbody tr:nth-child(odd){background-color:#def}table.list tbody tr:nth-child(even){background-color:#eee}table.list tbody tr.view{cursor:pointer}table.list tbody tr.view:hover{background-color:lightgrey}table.list td{padding:0.2em;text-align:left}table.list td.kind,table.list td.updated_at{text-align:center}dl dt{clear:left;float:left;padding:0.2em 1em;min-width:12em;text-align:right}dl dd{padding:0.2em 1em;text-align:left}dl dd.quantity{padding-right:16em}dl dd h3{display:inline}ul.counters{text-align:center}ul.counters li{display:inline}ul.counters li a:link,ul.counters li a:visited{color:white;padding:0.4em 1em;display:inline-block;box-shadow:0 0 2px black;border-radius:0.4em;background-color:#258}.edit_link:link,.delete_link:link{display:none} diff --git a/public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css.gz b/public/assets/active_admin-48d16db946da292aaa6151e744ed554d54349f5965b16351e8e2579e92d56c92.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..6329c082f4116cd8a0eca10d2c52d04f8241214f GIT binary patch literal 20847 zcmV({K+?Y-iwFR|^@&~r1MPi#bKJ(2@BjBx%vzO-wc(8L9L$ilsg-T{Z6{9Ry!NJ4 z4WKat5d*+@a5&=ScfZ{YoJIpUXGqG5cT=n7#v*|q`gywhy!*w!|Jx!jssqc?w|o`V z_2MR2Su1Pt{}$hU^{2(RX~grIi@$bhvv0#yR2*L9JSs9)zZie_?=SYvA-l`coGAB>U1scb8D>RveZRNwk|OU4zjXNF3d&op z1AbUo_er{oSSi1}5Wlt+zc{dTT1xi@+G2|jJ*&LE-&c2GaVyJC^W9}6>fxd)@#w1W zzI9dH@G8lQ($U?QP(}Y3t4o%tBN*{ zmtx?H>awX=E})gDZ#;;xn3;;n?kwx;w7e|BH)34sdlrV(e>G{7@qdUmS7OjaJDa9B zT;@g2uO{DKikf&OCz5`%h{g9jz7H?zrYiDX*Q;aK@igD_DsAwWVUdY4?xRA?<8>Hc z)a+0`bxh(U?}b78^lpbt{_Mmd4Y- z|J9XA%GOm`)TtVSif3XlZupg$TtSp9TZ-Cu`DMszEuLG%wrcq9_|VWTjX|nV^>oIqQPD*l1d6L37Jm%xhv! zhFr(9C9hYlSfo|Q;FxZX5p`)P54{gpz-UwqHW~tUE1YszoHkPsCxb+W*8Ssl|9IU$e)rE>{xh&kBgV%SjL&F~?l)-Q0lG73@1VTW016b!HAhH(c(!PH zSns{jC(iT}aY9bN>JH7le>XbzucmCo>@)S%`hl;;&8qMR$hYRz+ zma+H+xRRxf(Uyrf&|Se|?_tfQ{B`kf>7gvDhULwDUrzT@{cgTh6#P>wSlv-gKppG# z`fAPubsX1)=8(*e^TP$sIo0y)7hKDT<567W1&c&^r^AG8G|mgzj(gEtwK-1*7HMG2 zv%8@OiX$G6<7oF6uO;L{v5QTk+OAmeU$Z=B8CNXguP+wA&e|xA*+Otjb&>I3o4n(g z+Wh-0U9{PS_-~O7D@Hsq{>0~gDd(>zvsQ{ab>Fw8+&wSFW)j^O$a5a0@(7Ew+4u+% zB+eFbGoPzC?!jiI>e#%SQoSd}c{oPzoBh1BMv6)c@n&F;FP}wjyiF4E?xKk=dND{J z^`4kvTZlOe`HL^klhu@QUTtQZguU7Xvn`=}Cf0#~^0Qlkqeuqb3sz#so^0Z)pW0OL zCI&67vZ9Ue3|?P+wcBTEjhP)662bjS^pnS<$JSa43W*q(RmBg2Z5U&=))=5jkkh0y|h=87~A? z?)asg0ah({lJ^l3<;V8Miuvwh(SIO*@nYZc*Uzu!dw^JLsn`NM&)az6mExNAEEa5* zpl|V7@F9z87qXA73-z;dgXf)0*~8>4Ejp|$@ zDrzgKJ^C#hZEiuhaW~s5gj$SG_pE-M^I9DJ%jEsa%rzH4U(Xz`S;eqlG^UvBI0Rrd8C|NO}hKmJ~H)%yC=A9nw( zUG3My&zk#?0mSbVdU2I3l_`l2W zS>v&zKkVNlLq9pX`uH(li8Y(wEfMiPhWoX(@#IuZ@+u{`|Ce{o{0bb@yp-5`tkeI-~aNt z_4mL0u#26{VxNBU#yI0UvBfm%g)?>T--B+*XTR`9KB%(M%u^g{DNmR<1XWD$pl18loWe>aj=%exKLG}|>{szidzx52B zxrx|oxrxj-m+m?22g`v&ex`UzLon7a+9u7?=JYyeH?US2V^;|KiE#gOesfC8qCuUI z)A6k8DO&kM9Q+td^YSCyjD@|I_7th{Q2!SFzggP-3p)P(sZ!;4zjwAF^(&~+yT5uX zk@|hmr5XJ9sG^agr0d_P;-1Eh0u+mDO?YaxLySILsRq_#$=;Jc6DHUjpKoa{KJJB1 z$w)to<9J+hKMW@AVDA@#E+)3(tGU?C6Z!K5vAg>~{1PYJ=FUW57W1wJ=6>WlCP_X5 znY8bJ--6haKjwA;Om?iLv0@zf*h1^ecp!80i6Q=lKN){;ErAQm!6Q z_l{)Y&0NwpwWFQxe54FebmjKHOlGvmr0i!>AO=`uEaVdzvfq*S z#TdB!uz0Z$i@iTX45g8EC3wSH%(>J?l2xtRbXiNofjGOc_hSX5qdRAQrber?1j;?< z9~WmKC9CVBAj}6~{J_%e0ZeBceE=l*yax~sM-kcxY%mWSHR_I3P>O%V;4kG~^n6TB zzwH*{Uf0fk*d#H zZMD&>HxK`MY##pg$S&MliVfEqaL5>m!W%fe0@%B!Lw>1TI_QBX-gm=KyzD1|cq^xZ zcqJ!GUV_H7*@ct_D*jwEl@L z?~dRnw*SmW=X)_>&E|5(!|gQ$p2xSB{^)`BcC5)*RJ)>tsY%hwap|?7dtRHxqRmh) zO(tq$Llmse8n}VSRYQ^4tR_iZdI{Ja5%pH@r&V``DzHj>TIlFn?WB|>_sE*h%raen zKf`0g@5&*@IxLEe3vp6vR0m(m^WeUpUFS9iXRH({&deB~R6B^DrQvjfm>?f+!KkO^ zjzRXe^S`<~OXb7X%d4uWYS4UaUB|Pxlrxa@Q9QrdN~INABDPzbis$;LRvbs?i$uAt zkq&wATf+uMl|pb-4?!nv)4_w;AojZ%vJQ{NJt0@E37R={J6~y?O zW2&G>k&$+CFwOVs4}u^@6fpAK@kg@UBS^v+pw4f1&d7GYll}AF#d6$J$C8ajjoGs< zqsoeR<6lRjwlk<`x(&!Rh9Zzmt+Z%sb?MaXJ=dje+zs1WPtc`xA4nG#+w;Bc8RwIk z&dQ$Ytfb0Hft6iKy>op30{$mji{BSw{?VOXvY&%+S z1O1;e=(_l^v`4UCMlq`{N?^gr@-*Uq!};^M`oAZv3bDAve_sXi=lK)Q80>`E&?ih3 z$e+mxGk$2CFtICt&=Y3-&BXNM$RF&4>AxavRcGuS7`;snm2-sm_@m}rg=fx@bCo~# zba_Y0`P`O2&!66W^VoPw`>DfZ=E>_g=xOrm)vE~!hFkfAkl>h>MkF}?W=w)%Ab&6t zgsB%l4gPzecc_3#vh&S?G6#n zqD;)87`SHtm=adqSc>yCe%*z(%|>o4y{)zT`DXLDMj};=CeXGXTTuVR)J}DDHy#G} z-HX$vEz)P*c=WE7nCi9H(ubxT7@N7n`>b!6#%jtky#J>4IxQ-&^a=GTjk9R|Zf;;D z;!JxwvAw5_`I(A-GtxyW%3foIvz1y-ue)dU>#)f`@O2;fx+n2<4-wR(`L%}%`UQEf zr#9sS8-=q`QE@m3NZkp%H$u*h4{83oe|$Hb<)$-^JrAn#tdX;MU@4yHeChbp*9YDJ zA7XbwS%ZK)$(k`^-9TBg4*16V8TAvdSljH2Y8Em{T0SO=@!i^Es1#g6v z7M6yONB7^?V(&~Njtov5@ogMGVQ{(+#4k}4CsBMRVwJ^F$PyR;&tAJ;aJG@kxPwig z&pl~odi(^c59BYl^rJn~MsA6nT`%g;btBguwXtX$O<7~|KjSkzSvS*U0;Ip~XuhZZ zZc?I=K6jD@Ez{_FbPiw6bj(>=UJmlbtq~0|js-Fn)z~A_aIcTJv|a$uytZa7p}g#; zDDbZzTSX?Q@t?~+*c!%2d7A$>1YYZ9==1?oLFe0UggYs|!s-48gXINu6v^b(D1szF zBTpd&!%>mI21sNL7-E&N3!h!4mdeU7TORM;;OWDIsC^Fy^3v-? z8teU4a1v|cUCU>8Dih`p@gmI4%d<>y=;lAaV!hQBF=(EG2Ms)C>abK~{?&RCCf8|mJy6!Z4F z%P=(y^%z-PbigL$vXp8(B}30j!q@GGkjVd$A(3Nt!;C=b^*4qL2Hr1no5E&&!7lK} zDuodBPUduKxK82KHyBmoPhv1VeBmY17;?tLZQ>g&{TzE|W`^8`X@cCc9{KKC@=kHeRe17`-51)MU_b;~T-~af@ z*Wq72&;S1Cud~1XAs-A3wczZa;CZPFTXta;n#0|{G;gTC%ezS`6fMn_uY@T zzdx$}fAaMoe)L~e*I(~;yGb$>6@xRO9hV>!H6=V=vN{?~%2Km2)?(=d4}2Z-bDt}I z=Yh&E9x5K&#~k_dlzmKnAonpx>VJVa4vnlMv~PDujwzr_fX_Sw=!O=_@QjHP!WdVOkyD`&v?_AESQS8nfcowb?> z+efR(-P!=o;RwO?jwr%5VrIoZ0TLXmL5x3k8(45WLdvl z4ADC_=znMo&|`apNIW0B4L^7rKICoqbn<$yo5E1+FXV~%^BeZTFA?`k9C>?n<9ePs zTSi$?PcI}0GnQY!uH}6*M&d0)5JD_r=r;@VF=Ed#;^AXf@8vBVpS_enus~kEe0gTq zJm*WOH9JxyaeUl-_i&>Z-E9$+C&N7QrO!37>Zd^TDlAwPFCH^MhNj5FeMRqA$F$kM z?&adA7P?U-gcWCTRJDij$=yOcsU~(6XCCLEg?zK>1-lsi)v43Rk9sZo)?~aHd{>kD$lL@fMFL=$GOq-k~WU_y?SSc+5~vyd8hN z_%)eZ-*C0+JJLOOdy#H1y?1$N(yYdRjNZ`cdQ7{2KD9id+0qd%@Xj>bd9c}1e+qG*_{~4__Rltu&VNy7SsrWor`i{-m$`sp zxB7D#JVX2QcJ8&*+b`$-1VWjw5d(7j=w%k!Sp~zEeAH?cm zx`tnkWu`|@5BBcC8uq&uf)sdu@b&IOX}Rfi%?W5W!S<`t%vH?M^JS)DdB{P+DH z8Ay$e@=*R;W|4i0MMeTY=B_{Qp=Tu175L1Kp5pV- zeIQqzwTVJ+qRaQ$#${~Ev=g+pGa5jmQV$8JQ>ue z#S~=RdK~rGl!uSacKAyhDXC%VlTMu-CyhBjP(AF?*%Tk0Nbz6Feroz&?y5AN#*Iwf z*@l}U)Lk!*d67~V;-0mKyf#e|qX2mIcG3T0x>~V*QZHsc+U{l@Y{DyAKTK(myQ8&a zqG?Q&_u6m`15Ze!of;|cs5WEMrpotG!U3!E8-)))Bq{u$Gk%JB*`%DuX?M*peknEX zxjH}SYjJ(8F=o=sPX5i|3eFGA?FZ)ei5_X^$mz)&$E<{3(EIEu&G?_{b7t;`7f)H~ z)^wE_QB0S8W(~9W*J&;d^>dzNejB{b;SxrXO_i|-b>Lgn9Y9i(Aj*xEv|o>W-;E+l zUcHvx!rGwtAaBxc_yF=!eqf3|Fh!3wq|cX(_83A|$b{0Kx))Br|K(Y#hg$G~!Fnjs z-%M^(DN-g`UMK1M&hD}5`@W?r)leVhbkW7py_frdvCD^{p5N}>zAEwChiIFBooJh3 z{uZk)SIlc>QqKH^d7=*A$LS4xA%4~2FRl)Mf&b`F7W=CILi{$?;83xRuQu{$7RvWe zr0#J=A87kui?(O8cb=3d@CWI55>Wb7Dh9jLFc+CI)T;VP^G2SJ+_q ze0Zrn(kMEw1h+#zT;VSyz&)nPy*=>hZT=wgp(5YE5}B;!&o4zLqiu8}f3W=|kU#h~ zI{Id^pSbb|-A3Un;^lI!6jaSt{%AG!`I)ABrP((Lsk8i2W&b!3D#VB}b4 zKj3)wxF!sVq!_kT)%p6A4Mu$+fB8)QJbxT110_#&ice@fz1#fUF5Gvn9K0S2WBtST zD*?56EkqQRzU*~a6-U9wo0q-zyVEeNAt=IqAUi_ipvY7w!vDJF9Ia+DRZ z&nKjP!_5!$ZP257=ic1&P&MTGi%A+JqqKkeRy3*ZpTF^pEBxTZ^FcuTUo0Tv^n<4? zr`VejrCO+rIbU^;PMtCO>KDw6akkzMLK|+U`=#frm%JwR>OZ?_lJ_`_=<4dfo1c8J z!T(&gQB<|;b+UIx?vI{f`plI-gB{*C7!nx<=}waHE3RR3kI*=^r(iren_V^ZtZ#x2 zn1l?HgX7F)AXkgzdLI0G@oaL%7Ig2S73v1hucns^&F-O^Rlj#Wn6v(M5|RHm+@bV% zhsN26xjKT@%r`9Q67I24bh&i3Q~naA(P!fKG+&G^?S3$YEp;WA^{C>_JMj7xk&pUp zcHQ(-zv?fSe(GoX=IT4R`SDkeYOubs&lJWS`eTMU)2Yk>u9QihB}LH~61A%(>S^X) zBZQ&0Tl-2jox)_gfsgU~G+`H#N4;v-PcHhG$YF0YltmT~!J$mtM8u+f1B=`8f zJd;5c1*6!-GcmXNFMV3fE=W>sc|r-}r{my9*CLyvQa_2Q)!Cn(T)0KGvM+JoH778f zNxP&3>e2l(l|bzEhdjOiTK8gLw{$;_QyHx-e2}DUVcfX#2>s8Xz=O;R8_P0i>pf-b z*5xgpLEgL9at<%hH;O3WDnyl0eUi)lAli`e@rW#CQt$gSQ7Mqb5Yle|Lg}W;^Uzk^~6_w`E@@cy{T-lNA@Sy*6Pn- zINOvFtgfQ&o~_kNb)#1QUG}|sk+7xOs+Z#H6)&2Po_Ysne(ZuDHgoxD^~BG- z?z8YQM5dc2|5M5TWb!}pg(_fqDBdoM`gYlo;-L^Cs$`4>BXFwarKwk<&hR>IrT~^V z;$%-*&Es>a&}X!L!vsf=YvNY?dc|cr6IH4t?-7R}o4?F^m@h}mL zmn&<%4x}1S6m?r0MJc#?Tp!HG8~xnAy&I`Q)I-O7==2X=^P$^6^vs7||IjxdLPcxy z;kthqm=B=`8}s3&f4DUtZlUqksP$I=I62-SdHy;L$;yES5!WA$v~JGIpWWovfBaji z`JSp;y2(uMdX=60cAh_$Xqq#b>ongBnrT##9S3|j5=yO=B?f2ljPt1hUtaX2B|w>` zf1!H4P?067yt2(Q)t!;!BfRJ|CnF!TgpEE^>uvU=nmx&8Pr`BaBkjSer>b#7#&zjO z)%;O5e-utSWlk)AfY%K#>yL#n z@t@cHlvM1%>jhL~{pxNA1F8ynLG#B_7I}UzwM+AN?z(%cD({{NCQWQ?^)g8_K|hxt zl~u7z%8At}9w z${eh+P6!*-<^=DfHW#Z+6s>DZvb0?8izKGi+Y!4#ZpCkfsDW}-?C-jG%-CzvltQg#q61&l=(w3p~k~Who*0!U(@Gu zK<@f}b~(l5LT!YYjwf{PcjxJDJ=*KF<{j5y_xt@ypUtv1aS~q)e~1&f_XU0Y0n*v# zjPmZN<3!gnKjqV0w7J&ze5lLq<&iG6&C|5vAN}9NS@Vw+fJG6n>r|@b(`cTpUO?UT zMnhXkGbm;Yn4j9T>v%2N6ctq|RmVI=K3cP+{|J5S+3+^5L=(k?7uQ%%!tEFru_{J! zA>iJ$HP#8sa{z&jgB@7#x(GP}2m%Epv^TAmiRjs$ z=YrJdKtHxLFw8>)v2nc~k?jNv!qD0xfC&0rcJzsjksFveIg)8|LV;Tos1^l=TAQej zoxorl4J+9Rr52dGEaQSz;57pB)<9AR_7`Il6QfvHBjTz^W0a_Y%JLo0 zBwvlS#oB6+*eBwm4b?wKbeUK#0w(5PY<&orA_Lp95p-LkP-hG!+8UTBvXP#NqFd*i zFrry&jj1rw@_iE!Ra~7%=sGJ{J@WZ`Rr|Ff~D)Ryac~v8Cs_!3=kU;`Astb;q5fj0X&v;N)t#VJziN&U2~! zs86*tGonWfG*%$0w7y2W4HH+N4hP;;={35vp(J!;OrUv9#%gq-Z45x2GQ5*Oozjs9 z+Zdn?Z7kVYw3+SzDV8y>qbe@45#N0K4KHNj2_3v>crQ8RDwW1n3>X72y6)~1z#78_5Yb@E8!$N0a^2)T zOR?i=y#|2dv6f2w#AeFl2$0$neA~y+)ZXCRx)ta?Zv&vbh$JJ7O{lH+nzY!nxA=|~ zY=HFAs@ca(?vvN(U?)KIX%n{5HA)>eaJvE&6)DOt0>2xk=$diiSPwI)_Gwad90P8E zLS9vPQ7~hfGHIb3T`+>X#Z z6Db5#&SD`yFAuC#vKvd#=J^^POa2Vq+=I$g7HRUs-i&&aTvwsygt*hHwKhi@U||m z-b?pSspPBBigjrXy6S)|qlXM#u>nMNTQ*3R5^`20zt%W$WD3E18D%ZXiUSL$kaZ*j zI?#$84SN&e1%(=MP&!V+G;Alf28z~~C-vT>gv}Y+cj_b(Mfb2Rf2>qiSPEpH-GjS^7EL^0~(r;_G zq?Ok`NKO(fR|&^QjhmCaT26YD*V|pZk^-8GzoRfhq_$Ca$wt zV#BaDD?Fp=0me$;c#SjfiAL1uxdx_r1z3s$a$l4vj*V~xX?SjA!U%1S=O!amPHfVi zXPdZ^q1&bBxhCqTmg6#&=bNw!mz_ONQy{;o#AbNjOlBLyV#292%Ee13PbqhU;_-9J zm`Vkv&hubWD0QOy?ifd&>Ap7x;zwkl`<|j|6`Sd0Eu*VjA3{>b1x*086<4ieRf;{z$LB{XlE#63P0wQboM%`)4 zvqNbPJY`{XH)e_TAw^ZK?#67Pbb-TN!(1)J3EFE|nxV%bOfk+M*^cpE#lzrh)maZP zT<>N_p@yWK;0AQhiX`E{WQ z5JcgC;Q?TAk>M^zYb_^fWP`FCpbZ1uxlM7>M#@^{h3*K5kL!AjIoFk;xROOGvMoYq zA~A3%gJpYsfK)gWX06v_3^5m;<4keq98iJ{>`z4=rM%j4$|UHob-{U(wH!A=1{*zb zdCsFI<~KY;xkbm)oz5FpphvkbtGG^aCfGF*(lCa@^kOSf-_yt+-jjS5_-95kbUl~) zQ_fn9x7g~AwGmE;a6+rAp3of+5WPd6qQ?SV#tx`hr`RRx+2LvNX$sFH6uu$hOWvYi zZ0RrFpmGCe)EB7yz(WFF;_!%sQ)`IF#3vO$q^QA$QuY)|j#xF0HM~bP7Mk~{T3kd35?GXV?V@5^G`uG{GiYWT z;w~S~@E$#d^!eDLynyB>Tj}JIq&3dd^(~F16ZsMqP~eE@A>zO}6}YxP>Nkd1oajWi z9NPj+!$REhXoJcs#?1r{^Wc4!MrnaABAfXDIuucbDoO*;3<%~iD^4-W+qoMKp!&K* zSChL*21tW10BZw~8+7O*{aS`8vkE=aLYNA%4;)yuXV<6^XYE7Z_b3ath4D?{w{e6BDz>AhA)+GQl0beaAIHMT;sf9nSy}t{Sja zDNK!?A3n$(3Zop(P*h-|js=PVx=44pomtnkOB=BP7ZFDdKkhIW9k3DfQS2&KqUw^h zF1G6K{zIh_IJ%Xd9#>y%9Rt!<=z?~)dTwqA%a*eR#M`&14Q&l$nWHB(*h=Ff+M{L% z7d(Ij;u?2K+QP)6`@lMePACyWh5MkUC4YdS939wy6=0cUtie4Dy+F4($Cdvcm?-0- zsCrEeI=IY$QT{#-%yrS6QKISTE^hD^>8d&v4=OA}t1Ff?PEW7sgscsqWSD4~%m+Q9 z!0vD@5V+t9#Bo^`*=a`@EMUK{(l88(P?mU%p%wb>76?~xKDhgk4Tk8rYEg%n^>%o_ ztQ*d=65RuQa2AokS}<(al!&#Cb*oy!9tI&DaeD{}8Pfv`oWPWntx~W39wRnzbf5yg zK-+xBi7A9Oofz(W=x%!iXH|9z(+YJsaku?A@ens=g0_dpJ6vDn!21-BG==ZcJv~VJ zVdI3?s|A*9o^h$xK>cAn@YIlTePx~2Xe5da_7;u0K~cKG3_YblB9Ym6@K`h#03|-X zHXPzSS1JZn%f_uShT5zg@KGHBmofqyWrsEsG;My<^poGDD9__)geW6Jw;~81<(1%X zQQJ1y-FYSBMNtX`M6>4=N4EtJ+$t3YcVZ7<3*}9X`t8F$z}u>zk2ILv8&OYzZYUeD zRPkHEmWl;Ti9Mi}61a>VD66pzN0tFQV}xBJ=tk!I+2MHL7Wl2$NYOJ2WYG>mD(}28 z>YVD%1r@J!;1l}>kLwx@k#IFm?3TIU2NI&B4lPV%C#9bW56sEbV2Y5>cH!o=Y)UxHkqKw6>q^_p5Xpept4M)R8~uV zO=Zd4G29hz4Ia3O^npDaK(#f1;w^>q^$?=G1B3cFYY1-**ll_UseTCo7Nf2}0dO(` zK*@s}Kpb#OldVTvj-qJG8+6;UfVc$gfY$`0m*VyK;qad5unj)<9fl4ij@Bkl#ulQe zz(7%Et!O&}{LEjscdZG;7)lA1HGYJJT=bEtp?0WXpoC1yOC<^# zme>LH#u{2eBrXXxg~&6Ztngv?hZ)CDgJG$V=V!n@10xPzQDd9d_~vW71~@73Ts_+n zWZBzN)&zCA=`bGJn!%`}0sK1@R7vC5q02P&;~vh#3aaH*kSVUM zSc6k_k}=fQ4osJP-}%Z24jCm)+bC(-qNbey{9FVEkC4~fVkYEibc*$kc*f1g8|rBV zso;we<_*^yfy+)(WcZ9)5CzyF$OwcrFpWKq5V9-?((7S_wQ3CpO_{U`jVQ2(_mJfj zrAKd$BiY^v!4d@HfkJl#&Wc?@MJam_ASb^_Bf^ji-l!TR2pe4%ut65Z`Cx2M4`g+A zpf>9{jv6R%4;C+4A-m%y89hNH6FM}lt!Uv{kBAJwR-QXlIJ{;L1Tw5q#WEOqk_y%I z_#pizgc;8UHKPKMYESTm5u^|i>Ng9PRh#ELJL6&kvTf2fVS(~kyq}I8%Ve7WXj$>H z4aLra)*DU0Lf*j@!9GM#NwK74_+}Uaq+XUSIxW7F0Okhe5iQ+*en98Uhu1R1IKy3I z9FRwLyb(+i5n%0r1dgiE9FSpmJ6bK^fRov7U!ZQ1Ylzz2r9^(2aCnb8>2G0*P(7dx zCIj)BSfCrw&q)ZqvSQuP1~+e5+t5T%B9HBkP_$IM9V)!8*fqL#T(C_EP{#1E>jBXa zibFui)G*5Hy~0O2F>wc03AQUmSw#y0Qj86pm>u}IPwQ)rx^ObHR8;c!T@Ar)T#jBH z60pRx!s*e#a}Zh}?km8OB{KCK+OaXN%Tb3m8%!BJvQF{xxQUY5LR5nrz+ty55+dOk z3jmQN< z(O%%cVZhK1SYWs^f%M9ay%G8-GbW;Y0ob{AMcG#DfF5X2R>k7BSHhyv`!?vSck&`B zJVeai45i(mx@aJN>BJ;2s@daKE?_84T&Ipl(Lj+^dLZ&0LEN-}pcMjNBi~ay$;LJ? zAxFp4-#8P{vOaQ#m**PLJ(mf>P?%@H1W^!TFZdrDFd5%f;bpE(a6_R214Wm$F;Rt( zl+hW0U^fGHt~YFsKBoCKiVY1c35qnx%vFp+V*@Hf(9qM0c~g{5bd17%1AYeRgD;W< z5-JQ=9}!iX<1ztsp-mfmu@4kPVe9!VBX$u3OV6nj`2I z6_PyglvCI&B~l+bU;tIHF57jlC__hPZJVO`;LrG;Qot`q7LCNHl z{tQZ|ru1f5A~EH93M4wt3|xiBS2@1f!a7Rpy1;Xh`DU-{k}7UHpipl;(84N!pslPV zXfZN|qu%2gu$*vceS4iUG`lR zawKd(2QQ&VYDKKUPktYx`VQa-#UiB=z<{AoLR2m-)EOCcPXmf%Ad&%Dqa2&R9a@EM z9TsFVRsg9-#s#+kSYm|>aSp@*?de{6*%l?f8hpsOvKQ+w>x_D6(_vPqbZ~3%``@Q! zS)hPe1JES^PBVL@x>sueHx7g1TS$9NfoANmA*ID$swYm%vc&^3!7*a5T=}T%Yys1y zp$a_`-oiNuBkDvgG%+R*NhF#Pp;g@G6n=ytonZ*-a zeLCQZF%RU+eIXcARKwwK^?Q;;y| z(wMw#0*>1rLN0&=U>sdZThPa)yR0bC4)yDTGPGN+2|(2(kSaet#HfxA^4z33?w)Ev zwhwtFIbq@%5N+L{o1g=B;Qlfu)X5u+r2>N*q`^yEzCV|fg8@t|q8+Z=ur(!gX<82G z=qCmy=Z$oW$OH(bVNe#QxxAnqPl^mjPg>j(I%x+?-EzZ3?E)4YxoH#am#8z!269-W zO^Y)oE?C<-#FB99bAc0l!*1}%xW1S-JjRneZ-@7!DcXnF(lrz8C$vyJjrJCDafAJ6!kaL-KZ9?`?s8NxUYawLA#umJq`FZNnBKFcEtDjthYU z*HSRS`_eDi>omGnhaLrpn_rW>tIz6T` z2{Gye07<8>i|Phdm3d&J%fvVl30K$a0i$lCL5Vp8Oi6{TZA}E_)8<2>>mEkCTWxFy zkQHHIbU{@jSfD03p!=g^BIpI=z(q9~Yj>zW%64l2=ow}vidIT)LlZ}78n=3|PF!Al zUZA=NACzZAqC^Ya1I7Ei#M7+l!R80_EV6(ZCd{;+9S`qmUHp0iI-`gW0D7aW=toMI z?t%uaL$)P}12Rt&nQ#f0(;CT5L#?L}=tkreb3y-*;nQjX%P8Lq`bWnbl+1ux z;xIlGg)cY&I*HkgmsUMCzB889zEQGp@l}Mus@tq2T3U*c$8ju!;Kutx| z*_f0cJ<9)i8i^;Gc8B+r$A_!us>pZ7Jv-E;KYAA&!>KEOEQZ3#3xB}5WP-=9`vH%T zOrS_6(*e6^*6w!lDzb<=kYHt;@UDR8o0Kea^j;Gew21m zOv&hh7I*_F+NZep3WNxdzUR6>g2NDOJbn?44_br+YUy;qOHaI(-UZjVFW)wqqA0x| zvnEK?wGZ4x1{Ad^f@_sTmMMM<-g&VgW86NuWRAr9$)dxx%*;eAuY=z8=LJ>0iA^J~K?ic9Dl z*dPUKg&(cpbs+&IsvUJ9h(WSvsGFPPG83^x9lRjOL13=&(8pvbrNZfR0|4HjyPN}2 zfCs)~RNw&kH6Az`^=Ru>?B&fFI4=g4AqlFAOr>PuC)~LQEKUc(P2owNUEQxd<{9oq z6zW#zMTMJH^xEWA)Z&^HN0-uYRGk)p-ti#s0Vb~L*y=HoAhD_9_ZEc)h`KVw2G^$n zMea^p3`qu%`R*J~UT*__AqrbZxQEi(HrqZK(54Dh%68;7DPD)Pc7TlcTc8$5I6IvFrEZoD-C=Zx@> z`S;N7q%{X!Ffambjq|3EC^~0U@&Xt9ZgY+%>0aCVeRC|TYa#aIp(txe%b)X>=n+JX zOAi>z>B5H8Yk7JIGo0b-CyNjsJ@AT`?+NuJcrE8eb4Hry8pP{!F?Qe>mzO9<0scRE zy+L31^PIO$rLG;vcR$z%x{Jg}y@~?~pL$%I)5v}ti#RW?r9m!FuTxa*?;^l6YANuk zEQGidp%Ta%tU^T=pA8UzqYO1(tU*wbaxftRI$F&xZi2?xJkcTy9y! zT5@0m6nh9-)dm(@QKLq1;8zO5l{^5?@1ku;Lsj3KQi!x3N=U%~puGER(Bw!E>Olnt z{gO#{BkCR_JBdt~WI+ibiUBU;4ITgj>DL7$L3bb*%zP!~5bS|>s@i>|cQelH4Fw69 zOht|Abk+c>ShN>=9(8pVa0(JgWvjB|0Ytcu_>f~+<_98$20iC1UKaPpc*RWCC`M^z36+9u4MM57bc!ZOs_uoujqe~_WgfwUpM&A(R#=2qnb&TL?OaxL{kQ!12 zMx9Z`_y+7u+yanb5fitOIC_IGP_4uoL>~Db)jzK_tA%=fIYS$YrSwrnos+=JNq|tw z0ZC7CLlr}{wJxYyOL>7Go&O8wQD!s|^op9K_0CD|% zNu_(+j4|hyu`Vu+;}lQO?fJUAG_NCu@emUWVHVh{|LGPFM1#nGiL(2N1v`8Xcp01`BMn6{}0-0xyUS ztxT76!!z8n0U}ey@w8YTBr#9`Itm#QoXDtPl>PERuT=36&xQs1=Sr*_v00#t(AAKl ziUkjspHR1_p;wgh)CQN1O7KWB`WR)pxvnq9^N!kJZS4?Z)>Axv=4One1uZZv3Lwr0 z2H-^}5a>Ozz|qO~)O|FG9-!{ZOO89!>q$KnH!{U{b-<&J0u9V7{7#^aCZiI~wc~Q% z01$VP+m2&^@J)EF5lV@NF8sjPLsWB_hHgh>drmZw)J1lK>p@(&FGO;x#0A?ys0XMy za>6S^Pst5>_CnXwFvN}Ca4ryTSpnFQDk@1dbhZc!eD%S$LuC-L!I!c_L^uJvd^4b` z1F8^*D^jYW#b*Yzh82Dn5ICk(^;r`jEblh#v%I0a7&MpCW`Jcx0c6JPFwJov6|gyW z$n#;(pg8Za=R%Y{-M~Dj<{tKpw&Z7e+BdIe@iM|~?qE-s5E+7wVm!b|jUTGP4gity zTD--DHc%bcjBuCa@V=3`mQg|pz++K^WZryK5d$8FHEyJ|z!Rg6_8D#y0Trb{6a_w2 zTR>F&7*pqt@9BcXa>otJ0|FO`0^ojXGNvYgn3`@AL=AQ$#F<1)z)AN&a4bZj+YyvB z_=Byb$5FDV?x%wBe3#-pH4qc$F?D}XtUHlqlq3pjJ&C~+JcBK%=G6^hmoX4&B#sS+ z8n9gm(5&}@pT@1BiAE6F6+Ht$>7YO+)u1zbCP+CQ_RQWI1CC$wjM{P>IF#yr$}{p# zMXn3OeP+N=CEv?1Y?a~{6%2>!s-_k!IPU%E*m~Fs-U*|qkCLa0E4q3^BIMed;c6lY z*Vdju2}7b4umN~vgjUJdm?KV#ktQ*9Y0(nDL}l1$m+Bt|jkLM0qf zVJe{D0muUV0f$G z;}?Vax>wh%A&z|TO05+qh9Y1#u2ZUvt%+FXLg+&6;sJPX)z^4_M;|P23ea6A77`Ks zfnI#qC)Q+W4lT#lZ9n1n#zS~>o#C6S4JHN!Q27$jxk@w&=Nj~UXFT2E!wg-QNysYV z(ukNFAZjpaT9WaS%B<(oDbj30OhS(RVWx@wsk`Wm`;%ERJaIq9LAQDn$ zxONC^D76rtP?i9K=!C>7z0imYG<{G+)wt!}(#=&VPqT8*$m`odO)!B{_Bv377;yY5 zc97CXK(bWF1S^*~vcZtba*8F(_U3rJ$!i-!lI8jano80Wo1-he6RR|$d*%>evI%SC z1EOy(3MESp3^<wXh`i4g9$GL*1OB z!S4~b2S_E&j07(T1W6k7AmE_4+fzB8A*FN=tBQi+^VZu@iE0wjrU9u)iArCLgX$w= z6IlpBEx|Wj8v;KSvScVfwgKyq0O65RS`C5cf3v`wN4{6Len!%0hI^^3A&gdmiTozk zW(uNwpS9jY0*hoBvm4Y~a1C*}0F*(X7!Gc86}VFudWo(g-D8|fv9-+6sI-lwq^X(r z4o4-tag(9E^87t98v}Umo*3Ov-t5Wn2P@IAR3+RywCK*`CV_!FQTZVptwO?M$SuuG zsR(k~#m#^n8NOvWi6(12wXE-P13(d&r)j?;a#}cg#EDEazHbc(-YjoYeniCr-K#1U za?idh@JMt^Gvxw^+bW%{iCCfpHtekMs9`12pd;!`;6PYV-KI^1=cTYTx%3!_@j`bU7?T#a7s2k( zmhwuMBc7w$(ae#Ao#|evVI{Hnbob;#)M`Bumv8wH<69r`6zChR zVLPToo=jisA|yoJYfk8!wG!ZTNQxXy^al><^(kk&0?!t^2A^~RLIXSWmM`9ux*Cm< z7Ao9hq~A^&hDW7ZkqKCe$9alpri%?6?i|2O1f_UPMkur@(Cw+)e`SCm87G|RM&Y-t zg!(m}*f4_k_=Xkh?`u>tw3r^e+Y~)Wp|fHSR=h2065RrbqpZ*x+*=fYN(rzAKc0qX zoN&2uKtBZ-(j(7Jbe#toG$GY|Dm@~$O4r*tmXNg}mydWLS+V7jry-gp3w#?IjuUnO z=1M^wV!h%%;|>rKzipO#PGwhxj9m(LOk;EwEU?7lZ#D7nWo8&W%^752kQgFi1t{;E zJy(7dC*GhbsUYovz^U}%2ZBP^5Y;Mx2OgpKqH3a$khI2`8!(p3%l8i5qC}UjJ%h>X zRMAXnP880;gk+ONs!2zy-b)S*EXtYbM=4- z&Z4HZ4E_j4s0%y;L|C{i;6fE^Oz*<5S)}+Ckd_r2fODQ~FfW96Avgrc_jH7`o?RmJ z(AT3~$Q)pV`=$fI4S>S!V=&Z3iXUV_yfG1E_UHht<&9t!@W>z^QesL7N*`e6X^3D3 zUlTJGY!6QO0+6Ol!tZ7cURCO{Mm*piT!926=IRE`in2KSV3Ac=B7>I$+6Vzkk~HeF z7onR}pn)mw5wi7$_T%|LAay~5AAJGn-o^X8?(X(MBUrr|jN-l^EwX?Tp>Z1nK$QZ9 z*bXE;o^Zi%1Jct7NT~`P-CK@J_@RD}-FHV%O;PSqKYM*7RCoen zD>ea3dD|o9Ou$Vb9i_Q;!!huNDljo|rPwjijdu-d$3_{s(RB{%0X^w#$S|qIOH|tk zcV2dgGrAe@RBg~yFQ8g$j)YgS4R%n8Ag-YVWmpe6ckeJv-Ki{GRGjZ;q9v|e2XB}* zZ1bi?*KI#XZHgyr@gPD@44l~8&;TUpvxEqGXQ+L6JH|*;AFlNUexX(OgW<{6EU>T% z5b9D24(akexi#pD($1?C57mQHuO%|lZb82#05^i0k-4s;h`85m%SKqdL>n>ywmFeZ z&W2=10zu?CGs-B)G!iz1=*xTzWr^M&0S7vHQ>+D9w_7x=Pyo(4ZH*=&1hY$v-)CxB z#(OFX1FoY049N<4ARl)~sRqkgi@VW>29mOcco3i6p-AN=m>@bBF=t*fLZL=%4nu=O~6Y%r{{a^FE?&TodDu z)<~1$Q@9ynaKXfJjW(f@OJvMUO%SOMqIg>qTY@I1y3KQx@%D6|#FIMBq!kdCIKUCV z2cq2qKa?BB@YI_g49^Xh3_N`(`yf`|aGWX~P%SFJxrB9V6GvvhgLb9j^d)%nKtu2l zVFxbr=n&@|NSFqq7EriBLcYh9i!J~tmP9uNZ>t6BT?L>wa;{slXJ}~Fn(1LVpf!0G zGXQ6JLdb&K;ZVjf(2d3uVgOTfgP!JK`Mk+*&~^gF$t&$;dP~$O551KsLQZEd5e7e~ zF7ll8<8Xoz?9dXT?{)+uLO(UJcPQMwLesj8k~?uUi95tH-&D%+kxC~XfIN58@;A6M zem@FFmQe{qAgGnRAkl|_Vd>AhCo)!fTU`v1l?J2}l|qc9!woQNNA?zf4?W^ML}QkG zFd~wAVeryFQrcV(ytO)n4AI?D2D4ZrZ_$m*1|{=x&zhQ*cx=5h#?a&ALCnZ;&v_Q@ zS&E8+utOd9hX^GM(9IoF^s;Un9P^JtWGV#*CVoR@MHr|w#|e}V?~9{k3UTTIN0}aX zV7KWZeT#eSO`vH`L+ufiR*X2{ztLRD(leU1VVi{D9jvmN_ z8q|4g&Ge z{d>^dTO$7x_>SKa>DwXErhI?q7zaDrsgHOg64yAO-a4^8ntH*8SiKWSQTkw<@d9c)u?qFXg;jIn=yjYn=wD9!47K+2a7uI8F7ygEn9LKgiX2F} za4OoS4e^NxMvyZ*I+%Cf?$dpXst)BEud8K|XQ#WcyFA9aQW?i8!N`AXT`cS`%}*RFK?G>&JKw{+I99B@S8f6QK&dyfr;g~4da-EscS+INjb#IK z89$xrcMEnY^-&kb-?FU@kHwsbZRYZsWx2!nEv(g=AG)ts(jvQP!XiE`n(8ud_RDCW zX7R^G96!I4zHKtgqVyu{3W|C1z=vFjP1u*5bL`8NbilgnZx`#6hLX6;y_}4B;mX3Y ztN3a3WqhZ*ymI*A%9s+F4`Pg630^b47(Z&uSa62%Yu1?4DGm6djd8Y!8$mlVbX692 zC1`{--LIp17q+PTpl&c$L^^4Tq7GHsq`m69X`2;pptAmhK68aFr&S>qd-pC*Yn1~i zmC8zf-)5^wdXe+0MtWnsU1aH*Z^c_6x7pJ%(J3l7hQjN+G%kA?N^R7YIALTUpkQPq zeJ%v$FG3kkbJZ^inGQop^{SMsIdM7u=6)rWZm*SMRyA)WQ+YRhc%pli7ot!9=l=sB KCci^yrvU&SppLr$ literal 0 HcmV?d00001 diff --git a/public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js b/public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js new file mode 100644 index 00000000..e804480a --- /dev/null +++ b/public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js @@ -0,0 +1,53877 @@ +/* + * File: iframeResizer.js + * Desc: Force iframes to size to content. + * Requires: iframeResizer.contentWindow.js to be loaded into the target frame. + * Doc: https://github.com/davidjbradshaw/iframe-resizer + * Author: David J. Bradshaw - dave@bradshaw.net + * Contributor: Jure Mav - jure.mav@gmail.com + * Contributor: Reed Dadoune - reed@dadoune.com + */ + +// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names +;(function(undefined) { + if (typeof window === 'undefined') return // don't run for server side render + + var count = 0, + logEnabled = false, + hiddenCheckEnabled = false, + msgHeader = 'message', + msgHeaderLen = msgHeader.length, + msgId = '[iFrameSizer]', // Must match iframe msg ID + msgIdLen = msgId.length, + pagePosition = null, + requestAnimationFrame = window.requestAnimationFrame, + resetRequiredMethods = { + max: 1, + scroll: 1, + bodyScroll: 1, + documentElementScroll: 1 + }, + settings = {}, + timer = null, + defaults = { + autoResize: true, + bodyBackground: null, + bodyMargin: null, + bodyMarginV1: 8, + bodyPadding: null, + checkOrigin: true, + inPageLinks: false, + enablePublicMethods: true, + heightCalculationMethod: 'bodyOffset', + id: 'iFrameResizer', + interval: 32, + log: false, + maxHeight: Infinity, + maxWidth: Infinity, + minHeight: 0, + minWidth: 0, + resizeFrom: 'parent', + scrolling: false, + sizeHeight: true, + sizeWidth: false, + warningTimeout: 5000, + tolerance: 0, + widthCalculationMethod: 'scroll', + onClosed: function() {}, + onInit: function() {}, + onMessage: function() { + warn('onMessage function not defined') + }, + onResized: function() {}, + onScroll: function() { + return true + } + } + + function getMutationObserver() { + return ( + window.MutationObserver || + window.WebKitMutationObserver || + window.MozMutationObserver + ) + } + + function addEventListener(el, evt, func) { + el.addEventListener(evt, func, false) + } + + function removeEventListener(el, evt, func) { + el.removeEventListener(evt, func, false) + } + + function setupRequestAnimationFrame() { + var vendors = ['moz', 'webkit', 'o', 'ms'] + var x + + // Remove vendor prefixing if prefixed and break early if not + for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) { + requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'] + } + + if (!requestAnimationFrame) { + log('setup', 'RequestAnimationFrame not supported') + } + } + + function getMyID(iframeId) { + var retStr = 'Host page: ' + iframeId + + if (window.top !== window.self) { + if (window.parentIFrame && window.parentIFrame.getId) { + retStr = window.parentIFrame.getId() + ': ' + iframeId + } else { + retStr = 'Nested host page: ' + iframeId + } + } + + return retStr + } + + function formatLogHeader(iframeId) { + return msgId + '[' + getMyID(iframeId) + ']' + } + + function isLogEnabled(iframeId) { + return settings[iframeId] ? settings[iframeId].log : logEnabled + } + + function log(iframeId, msg) { + output('log', iframeId, msg, isLogEnabled(iframeId)) + } + + function info(iframeId, msg) { + output('info', iframeId, msg, isLogEnabled(iframeId)) + } + + function warn(iframeId, msg) { + output('warn', iframeId, msg, true) + } + + function output(type, iframeId, msg, enabled) { + if (true === enabled && 'object' === typeof window.console) { + // eslint-disable-next-line no-console + console[type](formatLogHeader(iframeId), msg) + } + } + + function iFrameListener(event) { + function resizeIFrame() { + function resize() { + setSize(messageData) + setPagePosition(iframeId) + on('onResized', messageData) + } + + ensureInRange('Height') + ensureInRange('Width') + + syncResize(resize, messageData, 'init') + } + + function processMsg() { + var data = msg.substr(msgIdLen).split(':') + + return { + iframe: settings[data[0]] && settings[data[0]].iframe, + id: data[0], + height: data[1], + width: data[2], + type: data[3] + } + } + + function ensureInRange(Dimension) { + var max = Number(settings[iframeId]['max' + Dimension]), + min = Number(settings[iframeId]['min' + Dimension]), + dimension = Dimension.toLowerCase(), + size = Number(messageData[dimension]) + + log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max) + + if (size < min) { + size = min + log(iframeId, 'Set ' + dimension + ' to min value') + } + + if (size > max) { + size = max + log(iframeId, 'Set ' + dimension + ' to max value') + } + + messageData[dimension] = '' + size + } + + function isMessageFromIFrame() { + function checkAllowedOrigin() { + function checkList() { + var i = 0, + retCode = false + + log( + iframeId, + 'Checking connection is from allowed list of origins: ' + + checkOrigin + ) + + for (; i < checkOrigin.length; i++) { + if (checkOrigin[i] === origin) { + retCode = true + break + } + } + return retCode + } + + function checkSingle() { + var remoteHost = settings[iframeId] && settings[iframeId].remoteHost + log(iframeId, 'Checking connection is from: ' + remoteHost) + return origin === remoteHost + } + + return checkOrigin.constructor === Array ? checkList() : checkSingle() + } + + var origin = event.origin, + checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin + + if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) { + throw new Error( + 'Unexpected message received from: ' + + origin + + ' for ' + + messageData.iframe.id + + '. Message was: ' + + event.data + + '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.' + ) + } + + return true + } + + function isMessageForUs() { + return ( + msgId === ('' + msg).substr(0, msgIdLen) && + msg.substr(msgIdLen).split(':')[0] in settings + ) // ''+Protects against non-string msg + } + + function isMessageFromMetaParent() { + // Test if this message is from a parent above us. This is an ugly test, however, updating + // the message format would break backwards compatibity. + var retCode = messageData.type in { true: 1, false: 1, undefined: 1 } + + if (retCode) { + log(iframeId, 'Ignoring init message from meta parent page') + } + + return retCode + } + + function getMsgBody(offset) { + return msg.substr(msg.indexOf(':') + msgHeaderLen + offset) + } + + function forwardMsgFromIFrame(msgBody) { + log( + iframeId, + 'onMessage passed: {iframe: ' + + messageData.iframe.id + + ', message: ' + + msgBody + + '}' + ) + on('onMessage', { + iframe: messageData.iframe, + message: JSON.parse(msgBody) + }) + log(iframeId, '--') + } + + function getPageInfo() { + var bodyPosition = document.body.getBoundingClientRect(), + iFramePosition = messageData.iframe.getBoundingClientRect() + + return JSON.stringify({ + iframeHeight: iFramePosition.height, + iframeWidth: iFramePosition.width, + clientHeight: Math.max( + document.documentElement.clientHeight, + window.innerHeight || 0 + ), + clientWidth: Math.max( + document.documentElement.clientWidth, + window.innerWidth || 0 + ), + offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10), + offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10), + scrollTop: window.pageYOffset, + scrollLeft: window.pageXOffset, + documentHeight: document.documentElement.clientHeight, + documentWidth: document.documentElement.clientWidth, + windowHeight: window.innerHeight, + windowWidth: window.innerWidth + }) + } + + function sendPageInfoToIframe(iframe, iframeId) { + function debouncedTrigger() { + trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId) + } + debounceFrameEvents(debouncedTrigger, 32, iframeId) + } + + function startPageInfoMonitor() { + function setListener(type, func) { + function sendPageInfo() { + if (settings[id]) { + sendPageInfoToIframe(settings[id].iframe, id) + } else { + stop() + } + } + + ;['scroll', 'resize'].forEach(function(evt) { + log(id, type + evt + ' listener for sendPageInfo') + func(window, evt, sendPageInfo) + }) + } + + function stop() { + setListener('Remove ', removeEventListener) + } + + function start() { + setListener('Add ', addEventListener) + } + + var id = iframeId // Create locally scoped copy of iFrame ID + + start() + + if (settings[id]) { + settings[id].stopPageInfo = stop + } + } + + function stopPageInfoMonitor() { + if (settings[iframeId] && settings[iframeId].stopPageInfo) { + settings[iframeId].stopPageInfo() + delete settings[iframeId].stopPageInfo + } + } + + function checkIFrameExists() { + var retBool = true + + if (null === messageData.iframe) { + warn(iframeId, 'IFrame (' + messageData.id + ') not found') + retBool = false + } + return retBool + } + + function getElementPosition(target) { + var iFramePosition = target.getBoundingClientRect() + + getPagePosition(iframeId) + + return { + x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)), + y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y)) + } + } + + function scrollRequestFromChild(addOffset) { + /* istanbul ignore next */ // Not testable in Karma + function reposition() { + pagePosition = newPosition + scrollTo() + log(iframeId, '--') + } + + function calcOffset() { + return { + x: Number(messageData.width) + offset.x, + y: Number(messageData.height) + offset.y + } + } + + function scrollParent() { + if (window.parentIFrame) { + window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')]( + newPosition.x, + newPosition.y + ) + } else { + warn( + iframeId, + 'Unable to scroll to requested position, window.parentIFrame not found' + ) + } + } + + var offset = addOffset + ? getElementPosition(messageData.iframe) + : { x: 0, y: 0 }, + newPosition = calcOffset() + + log( + iframeId, + 'Reposition requested from iFrame (offset x:' + + offset.x + + ' y:' + + offset.y + + ')' + ) + + if (window.top !== window.self) { + scrollParent() + } else { + reposition() + } + } + + function scrollTo() { + if (false !== on('onScroll', pagePosition)) { + setPagePosition(iframeId) + } else { + unsetPagePosition() + } + } + + function findTarget(location) { + function jumpToTarget() { + var jumpPosition = getElementPosition(target) + + log( + iframeId, + 'Moving to in page link (#' + + hash + + ') at x: ' + + jumpPosition.x + + ' y: ' + + jumpPosition.y + ) + pagePosition = { + x: jumpPosition.x, + y: jumpPosition.y + } + + scrollTo() + log(iframeId, '--') + } + + function jumpToParent() { + if (window.parentIFrame) { + window.parentIFrame.moveToAnchor(hash) + } else { + log( + iframeId, + 'In page link #' + + hash + + ' not found and window.parentIFrame not found' + ) + } + } + + var hash = location.split('#')[1] || '', + hashData = decodeURIComponent(hash), + target = + document.getElementById(hashData) || + document.getElementsByName(hashData)[0] + + if (target) { + jumpToTarget() + } else if (window.top !== window.self) { + jumpToParent() + } else { + log(iframeId, 'In page link #' + hash + ' not found') + } + } + + function on(funcName, val) { + return chkEvent(iframeId, funcName, val) + } + + function actionMsg() { + if (settings[iframeId] && settings[iframeId].firstRun) firstRun() + + switch (messageData.type) { + case 'close': + if (settings[iframeId].closeRequeston) + chkEvent(iframeId, 'onCloseRequest', settings[iframeId].iframe) + else closeIFrame(messageData.iframe) + break + + case 'message': + forwardMsgFromIFrame(getMsgBody(6)) + break + + case 'scrollTo': + scrollRequestFromChild(false) + break + + case 'scrollToOffset': + scrollRequestFromChild(true) + break + + case 'pageInfo': + sendPageInfoToIframe( + settings[iframeId] && settings[iframeId].iframe, + iframeId + ) + startPageInfoMonitor() + break + + case 'pageInfoStop': + stopPageInfoMonitor() + break + + case 'inPageLink': + findTarget(getMsgBody(9)) + break + + case 'reset': + resetIFrame(messageData) + break + + case 'init': + resizeIFrame() + on('onInit', messageData.iframe) + break + + default: + resizeIFrame() + } + } + + function hasSettings(iframeId) { + var retBool = true + + if (!settings[iframeId]) { + retBool = false + warn( + messageData.type + + ' No settings for ' + + iframeId + + '. Message was: ' + + msg + ) + } + + return retBool + } + + function iFrameReadyMsgReceived() { + // eslint-disable-next-line no-restricted-syntax, guard-for-in + for (var iframeId in settings) { + trigger( + 'iFrame requested init', + createOutgoingMsg(iframeId), + document.getElementById(iframeId), + iframeId + ) + } + } + + function firstRun() { + if (settings[iframeId]) { + settings[iframeId].firstRun = false + } + } + + var msg = event.data, + messageData = {}, + iframeId = null + + if ('[iFrameResizerChild]Ready' === msg) { + iFrameReadyMsgReceived() + } else if (isMessageForUs()) { + messageData = processMsg() + iframeId = messageData.id + if (settings[iframeId]) { + settings[iframeId].loaded = true + } + + if (!isMessageFromMetaParent() && hasSettings(iframeId)) { + log(iframeId, 'Received: ' + msg) + + if (checkIFrameExists() && isMessageFromIFrame()) { + actionMsg() + } + } + } else { + info(iframeId, 'Ignored: ' + msg) + } + } + + function chkEvent(iframeId, funcName, val) { + var func = null, + retVal = null + + if (settings[iframeId]) { + func = settings[iframeId][funcName] + + if ('function' === typeof func) { + retVal = func(val) + } else { + throw new TypeError( + funcName + ' on iFrame[' + iframeId + '] is not a function' + ) + } + } + + return retVal + } + + function removeIframeListeners(iframe) { + var iframeId = iframe.id + delete settings[iframeId] + } + + function closeIFrame(iframe) { + var iframeId = iframe.id + log(iframeId, 'Removing iFrame: ' + iframeId) + + try { + // Catch race condition error with React + if (iframe.parentNode) { + iframe.parentNode.removeChild(iframe) + } + } catch (error) { + warn(error) + } + + chkEvent(iframeId, 'onClosed', iframeId) + log(iframeId, '--') + removeIframeListeners(iframe) + } + + function getPagePosition(iframeId) { + if (null === pagePosition) { + pagePosition = { + x: + window.pageXOffset !== undefined + ? window.pageXOffset + : document.documentElement.scrollLeft, + y: + window.pageYOffset !== undefined + ? window.pageYOffset + : document.documentElement.scrollTop + } + log( + iframeId, + 'Get page position: ' + pagePosition.x + ',' + pagePosition.y + ) + } + } + + function setPagePosition(iframeId) { + if (null !== pagePosition) { + window.scrollTo(pagePosition.x, pagePosition.y) + log( + iframeId, + 'Set page position: ' + pagePosition.x + ',' + pagePosition.y + ) + unsetPagePosition() + } + } + + function unsetPagePosition() { + pagePosition = null + } + + function resetIFrame(messageData) { + function reset() { + setSize(messageData) + trigger('reset', 'reset', messageData.iframe, messageData.id) + } + + log( + messageData.id, + 'Size reset requested by ' + + ('init' === messageData.type ? 'host page' : 'iFrame') + ) + getPagePosition(messageData.id) + syncResize(reset, messageData, 'reset') + } + + function setSize(messageData) { + function setDimension(dimension) { + if (!messageData.id) { + log('undefined', 'messageData id not set') + return + } + messageData.iframe.style[dimension] = messageData[dimension] + 'px' + log( + messageData.id, + 'IFrame (' + + iframeId + + ') ' + + dimension + + ' set to ' + + messageData[dimension] + + 'px' + ) + } + + function chkZero(dimension) { + // FireFox sets dimension of hidden iFrames to zero. + // So if we detect that set up an event to check for + // when iFrame becomes visible. + + /* istanbul ignore next */ // Not testable in PhantomJS + if (!hiddenCheckEnabled && '0' === messageData[dimension]) { + hiddenCheckEnabled = true + log(iframeId, 'Hidden iFrame detected, creating visibility listener') + fixHiddenIFrames() + } + } + + function processDimension(dimension) { + setDimension(dimension) + chkZero(dimension) + } + + var iframeId = messageData.iframe.id + + if (settings[iframeId]) { + if (settings[iframeId].sizeHeight) { + processDimension('height') + } + if (settings[iframeId].sizeWidth) { + processDimension('width') + } + } + } + + function syncResize(func, messageData, doNotSync) { + /* istanbul ignore if */ // Not testable in PhantomJS + if (doNotSync !== messageData.type && requestAnimationFrame) { + log(messageData.id, 'Requesting animation frame') + requestAnimationFrame(func) + } else { + func() + } + } + + function trigger(calleeMsg, msg, iframe, id, noResponseWarning) { + function postMessageToIFrame() { + var target = settings[id] && settings[id].targetOrigin + log( + id, + '[' + + calleeMsg + + '] Sending msg to iframe[' + + id + + '] (' + + msg + + ') targetOrigin: ' + + target + ) + iframe.contentWindow.postMessage(msgId + msg, target) + } + + function iFrameNotFound() { + warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found') + } + + function chkAndSend() { + if ( + iframe && + 'contentWindow' in iframe && + null !== iframe.contentWindow + ) { + // Null test for PhantomJS + postMessageToIFrame() + } else { + iFrameNotFound() + } + } + + function warnOnNoResponse() { + function warning() { + if (settings[id] && !settings[id].loaded && !errorShown) { + errorShown = true + warn( + id, + 'IFrame has not responded within ' + + settings[id].warningTimeout / 1000 + + ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.' + ) + } + } + + if ( + !!noResponseWarning && + settings[id] && + !!settings[id].warningTimeout + ) { + settings[id].msgTimeout = setTimeout( + warning, + settings[id].warningTimeout + ) + } + } + + var errorShown = false + + id = id || iframe.id + + if (settings[id]) { + chkAndSend() + warnOnNoResponse() + } + } + + function createOutgoingMsg(iframeId) { + return ( + iframeId + + ':' + + settings[iframeId].bodyMarginV1 + + ':' + + settings[iframeId].sizeWidth + + ':' + + settings[iframeId].log + + ':' + + settings[iframeId].interval + + ':' + + settings[iframeId].enablePublicMethods + + ':' + + settings[iframeId].autoResize + + ':' + + settings[iframeId].bodyMargin + + ':' + + settings[iframeId].heightCalculationMethod + + ':' + + settings[iframeId].bodyBackground + + ':' + + settings[iframeId].bodyPadding + + ':' + + settings[iframeId].tolerance + + ':' + + settings[iframeId].inPageLinks + + ':' + + settings[iframeId].resizeFrom + + ':' + + settings[iframeId].widthCalculationMethod + ) + } + + function setupIFrame(iframe, options) { + function setLimits() { + function addStyle(style) { + if ( + Infinity !== settings[iframeId][style] && + 0 !== settings[iframeId][style] + ) { + iframe.style[style] = settings[iframeId][style] + 'px' + log( + iframeId, + 'Set ' + style + ' = ' + settings[iframeId][style] + 'px' + ) + } + } + + function chkMinMax(dimension) { + if ( + settings[iframeId]['min' + dimension] > + settings[iframeId]['max' + dimension] + ) { + throw new Error( + 'Value for min' + + dimension + + ' can not be greater than max' + + dimension + ) + } + } + + chkMinMax('Height') + chkMinMax('Width') + + addStyle('maxHeight') + addStyle('minHeight') + addStyle('maxWidth') + addStyle('minWidth') + } + + function newId() { + var id = (options && options.id) || defaults.id + count++ + if (null !== document.getElementById(id)) { + id += count++ + } + return id + } + + function ensureHasId(iframeId) { + if ('' === iframeId) { + // eslint-disable-next-line no-multi-assign + iframe.id = iframeId = newId() + logEnabled = (options || {}).log + log( + iframeId, + 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')' + ) + } + + return iframeId + } + + function setScrolling() { + log( + iframeId, + 'IFrame scrolling ' + + (settings[iframeId] && settings[iframeId].scrolling + ? 'enabled' + : 'disabled') + + ' for ' + + iframeId + ) + iframe.style.overflow = + false === (settings[iframeId] && settings[iframeId].scrolling) + ? 'hidden' + : 'auto' + switch (settings[iframeId] && settings[iframeId].scrolling) { + case 'omit': + break + + case true: + iframe.scrolling = 'yes' + break + + case false: + iframe.scrolling = 'no' + break + + default: + iframe.scrolling = settings[iframeId] + ? settings[iframeId].scrolling + : 'no' + } + } + + // The V1 iFrame script expects an int, where as in V2 expects a CSS + // string value such as '1px 3em', so if we have an int for V2, set V1=V2 + // and then convert V2 to a string PX value. + function setupBodyMarginValues() { + if ( + 'number' === + typeof (settings[iframeId] && settings[iframeId].bodyMargin) || + '0' === (settings[iframeId] && settings[iframeId].bodyMargin) + ) { + settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin + settings[iframeId].bodyMargin = + '' + settings[iframeId].bodyMargin + 'px' + } + } + + function checkReset() { + // Reduce scope of firstRun to function, because IE8's JS execution + // context stack is borked and this value gets externally + // changed midway through running this function!!! + var firstRun = settings[iframeId] && settings[iframeId].firstRun, + resetRequertMethod = + settings[iframeId] && + settings[iframeId].heightCalculationMethod in resetRequiredMethods + + if (!firstRun && resetRequertMethod) { + resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' }) + } + } + + function setupIFrameObject() { + if (settings[iframeId]) { + settings[iframeId].iframe.iFrameResizer = { + close: closeIFrame.bind(null, settings[iframeId].iframe), + + removeListeners: removeIframeListeners.bind( + null, + settings[iframeId].iframe + ), + + resize: trigger.bind( + null, + 'Window resize', + 'resize', + settings[iframeId].iframe + ), + + moveToAnchor: function(anchor) { + trigger( + 'Move to anchor', + 'moveToAnchor:' + anchor, + settings[iframeId].iframe, + iframeId + ) + }, + + sendMessage: function(message) { + message = JSON.stringify(message) + trigger( + 'Send Message', + 'message:' + message, + settings[iframeId].iframe, + iframeId + ) + } + } + } + } + + // We have to call trigger twice, as we can not be sure if all + // iframes have completed loading when this code runs. The + // event listener also catches the page changing in the iFrame. + function init(msg) { + function iFrameLoaded() { + trigger('iFrame.onload', msg, iframe, undefined, true) + checkReset() + } + + function createDestroyObserver(MutationObserver) { + if (!iframe.parentNode) { + return + } + + var destroyObserver = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + var removedNodes = Array.prototype.slice.call(mutation.removedNodes) // Transform NodeList into an Array + removedNodes.forEach(function(removedNode) { + if (removedNode === iframe) { + closeIFrame(iframe) + } + }) + }) + }) + destroyObserver.observe(iframe.parentNode, { + childList: true + }) + } + + var MutationObserver = getMutationObserver() + if (MutationObserver) { + createDestroyObserver(MutationObserver) + } + + addEventListener(iframe, 'load', iFrameLoaded) + trigger('init', msg, iframe, undefined, true) + } + + function checkOptions(options) { + if ('object' !== typeof options) { + throw new TypeError('Options is not an object') + } + } + + function copyOptions(options) { + // eslint-disable-next-line no-restricted-syntax + for (var option in defaults) { + if (Object.prototype.hasOwnProperty.call(defaults, option)) { + settings[iframeId][option] = Object.prototype.hasOwnProperty.call( + options, + option + ) + ? options[option] + : defaults[option] + } + } + } + + function getTargetOrigin(remoteHost) { + return '' === remoteHost || 'file://' === remoteHost ? '*' : remoteHost + } + + function depricate(key) { + var splitName = key.split('Callback') + + if (splitName.length === 2) { + var name = + 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1) + this[name] = this[key] + delete this[key] + warn( + iframeId, + "Deprecated: '" + + key + + "' has been renamed '" + + name + + "'. The old method will be removed in the next major version." + ) + } + } + + function processOptions(options) { + options = options || {} + settings[iframeId] = { + firstRun: true, + iframe: iframe, + remoteHost: iframe.src + .split('/') + .slice(0, 3) + .join('/') + } + + checkOptions(options) + Object.keys(options).forEach(depricate, options) + copyOptions(options) + + if (settings[iframeId]) { + settings[iframeId].targetOrigin = + true === settings[iframeId].checkOrigin + ? getTargetOrigin(settings[iframeId].remoteHost) + : '*' + } + } + + function beenHere() { + return iframeId in settings && 'iFrameResizer' in iframe + } + + var iframeId = ensureHasId(iframe.id) + + if (!beenHere()) { + processOptions(options) + setScrolling() + setLimits() + setupBodyMarginValues() + init(createOutgoingMsg(iframeId)) + setupIFrameObject() + } else { + warn(iframeId, 'Ignored iFrame, already setup.') + } + } + + function debouce(fn, time) { + if (null === timer) { + timer = setTimeout(function() { + timer = null + fn() + }, time) + } + } + + var frameTimer = {} + function debounceFrameEvents(fn, time, frameId) { + if (!frameTimer[frameId]) { + frameTimer[frameId] = setTimeout(function() { + frameTimer[frameId] = null + fn() + }, time) + } + } + + // Not testable in PhantomJS + /* istanbul ignore next */ + + function fixHiddenIFrames() { + function checkIFrames() { + function checkIFrame(settingId) { + function chkDimension(dimension) { + return ( + '0px' === + (settings[settingId] && settings[settingId].iframe.style[dimension]) + ) + } + + function isVisible(el) { + return null !== el.offsetParent + } + + if ( + settings[settingId] && + isVisible(settings[settingId].iframe) && + (chkDimension('height') || chkDimension('width')) + ) { + trigger( + 'Visibility change', + 'resize', + settings[settingId].iframe, + settingId + ) + } + } + + Object.keys(settings).forEach(function(key) { + checkIFrame(settings[key]) + }) + } + + function mutationObserved(mutations) { + log( + 'window', + 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type + ) + debouce(checkIFrames, 16) + } + + function createMutationObserver() { + var target = document.querySelector('body'), + config = { + attributes: true, + attributeOldValue: false, + characterData: true, + characterDataOldValue: false, + childList: true, + subtree: true + }, + observer = new MutationObserver(mutationObserved) + + observer.observe(target, config) + } + + var MutationObserver = getMutationObserver() + if (MutationObserver) { + createMutationObserver() + } + } + + function resizeIFrames(event) { + function resize() { + sendTriggerMsg('Window ' + event, 'resize') + } + + log('window', 'Trigger event: ' + event) + debouce(resize, 16) + } + + // Not testable in PhantomJS + /* istanbul ignore next */ + function tabVisible() { + function resize() { + sendTriggerMsg('Tab Visable', 'resize') + } + + if ('hidden' !== document.visibilityState) { + log('document', 'Trigger event: Visiblity change') + debouce(resize, 16) + } + } + + function sendTriggerMsg(eventName, event) { + function isIFrameResizeEnabled(iframeId) { + return ( + settings[iframeId] && + 'parent' === settings[iframeId].resizeFrom && + settings[iframeId].autoResize && + !settings[iframeId].firstRun + ) + } + + Object.keys(settings).forEach(function(iframeId) { + if (isIFrameResizeEnabled(iframeId)) { + trigger(eventName, event, document.getElementById(iframeId), iframeId) + } + }) + } + + function setupEventListeners() { + addEventListener(window, 'message', iFrameListener) + + addEventListener(window, 'resize', function() { + resizeIFrames('resize') + }) + + addEventListener(document, 'visibilitychange', tabVisible) + + addEventListener(document, '-webkit-visibilitychange', tabVisible) + } + + function factory() { + function init(options, element) { + function chkType() { + if (!element.tagName) { + throw new TypeError('Object is not a valid DOM element') + } else if ('IFRAME' !== element.tagName.toUpperCase()) { + throw new TypeError( + 'Expected ') !== -1; + }; + var createFragmentedLevel = function (fragments) { + return { + type: 'fragmented', + fragments: fragments, + content: '', + bookmark: null, + beforeBookmark: null + }; + }; + var createCompleteLevel = function (content) { + return { + type: 'complete', + fragments: null, + content: content, + bookmark: null, + beforeBookmark: null + }; + }; + var createFromEditor = function (editor) { + var fragments, content, trimmedFragments; + fragments = Fragments.read(editor.getBody()); + trimmedFragments = bind(fragments, function (html) { + var trimmed = TrimHtml.trimInternal(editor.serializer, html); + return trimmed.length > 0 ? [trimmed] : []; + }); + content = trimmedFragments.join(''); + return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content); + }; + var applyToEditor = function (editor, level, before) { + if (level.type === 'fragmented') { + Fragments.write(level.fragments, editor.getBody()); + } else { + editor.setContent(level.content, { format: 'raw' }); + } + editor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark); + }; + var getLevelContent = function (level) { + return level.type === 'fragmented' ? level.fragments.join('') : level.content; + }; + var getCleanLevelContent = function (level) { + var elm = Element.fromTag('body', lazyTempDocument()); + set$1(elm, getLevelContent(level)); + each(descendants$1(elm, '*[data-mce-bogus]'), unwrap); + return get$6(elm); + }; + var hasEqualContent = function (level1, level2) { + return getLevelContent(level1) === getLevelContent(level2); + }; + var hasEqualCleanedContent = function (level1, level2) { + return getCleanLevelContent(level1) === getCleanLevelContent(level2); + }; + var isEq$4 = function (level1, level2) { + if (!level1 || !level2) { + return false; + } else if (hasEqualContent(level1, level2)) { + return true; + } else { + return hasEqualCleanedContent(level1, level2); + } + }; + var Levels = { + createFragmentedLevel: createFragmentedLevel, + createCompleteLevel: createCompleteLevel, + createFromEditor: createFromEditor, + applyToEditor: applyToEditor, + isEq: isEq$4 + }; + + var isUnlocked = function (locks) { + return locks.get() === 0; + }; + + var setTyping = function (undoManager, typing, locks) { + if (isUnlocked(locks)) { + undoManager.typing = typing; + } + }; + var endTyping = function (undoManager, locks) { + if (undoManager.typing) { + setTyping(undoManager, false, locks); + undoManager.add(); + } + }; + var endTypingLevelIgnoreLocks = function (undoManager) { + if (undoManager.typing) { + undoManager.typing = false; + undoManager.add(); + } + }; + + var beforeChange = function (editor, locks, beforeBookmark) { + if (isUnlocked(locks)) { + beforeBookmark.set(Option.some(GetBookmark.getUndoBookmark(editor.selection))); + } + }; + var addUndoLevel = function (editor, undoManager, index, locks, beforeBookmark, level, event) { + var settings = editor.settings; + var currentLevel = Levels.createFromEditor(editor); + level = level || {}; + level = Tools.extend(level, currentLevel); + if (isUnlocked(locks) === false || editor.removed) { + return null; + } + var lastLevel = undoManager.data[index.get()]; + if (editor.fire('BeforeAddUndo', { + level: level, + lastLevel: lastLevel, + originalEvent: event + }).isDefaultPrevented()) { + return null; + } + if (lastLevel && Levels.isEq(lastLevel, level)) { + return null; + } + if (undoManager.data[index.get()]) { + beforeBookmark.get().each(function (bm) { + undoManager.data[index.get()].beforeBookmark = bm; + }); + } + if (settings.custom_undo_redo_levels) { + if (undoManager.data.length > settings.custom_undo_redo_levels) { + for (var i = 0; i < undoManager.data.length - 1; i++) { + undoManager.data[i] = undoManager.data[i + 1]; + } + undoManager.data.length--; + index.set(undoManager.data.length); + } + } + level.bookmark = GetBookmark.getUndoBookmark(editor.selection); + if (index.get() < undoManager.data.length - 1) { + undoManager.data.length = index.get() + 1; + } + undoManager.data.push(level); + index.set(undoManager.data.length - 1); + var args = { + level: level, + lastLevel: lastLevel, + originalEvent: event + }; + editor.fire('AddUndo', args); + if (index.get() > 0) { + editor.setDirty(true); + editor.fire('change', args); + } + return level; + }; + var clear = function (editor, undoManager, index) { + undoManager.data = []; + index.set(0); + undoManager.typing = false; + editor.fire('ClearUndos'); + }; + var extra = function (editor, undoManager, index, callback1, callback2) { + if (undoManager.transact(callback1)) { + var bookmark = undoManager.data[index.get()].bookmark; + var lastLevel = undoManager.data[index.get() - 1]; + Levels.applyToEditor(editor, lastLevel, true); + if (undoManager.transact(callback2)) { + undoManager.data[index.get() - 1].beforeBookmark = bookmark; + } + } + }; + var redo = function (editor, index, data) { + var level; + if (index.get() < data.length - 1) { + index.set(index.get() + 1); + level = data[index.get()]; + Levels.applyToEditor(editor, level, false); + editor.setDirty(true); + editor.fire('Redo', { level: level }); + } + return level; + }; + var undo = function (editor, undoManager, locks, index) { + var level; + if (undoManager.typing) { + undoManager.add(); + undoManager.typing = false; + setTyping(undoManager, false, locks); + } + if (index.get() > 0) { + index.set(index.get() - 1); + level = undoManager.data[index.get()]; + Levels.applyToEditor(editor, level, true); + editor.setDirty(true); + editor.fire('Undo', { level: level }); + } + return level; + }; + var reset = function (undoManager) { + undoManager.clear(); + undoManager.add(); + }; + var hasUndo = function (editor, undoManager, index) { + return index.get() > 0 || undoManager.typing && undoManager.data[0] && !Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]); + }; + var hasRedo = function (undoManager, index) { + return index.get() < undoManager.data.length - 1 && !undoManager.typing; + }; + var transact = function (undoManager, locks, callback) { + endTyping(undoManager, locks); + undoManager.beforeChange(); + undoManager.ignore(callback); + return undoManager.add(); + }; + var ignore = function (locks, callback) { + try { + locks.set(locks.get() + 1); + callback(); + } finally { + locks.set(locks.get() - 1); + } + }; + + var registerEvents$1 = function (editor, undoManager, locks) { + var isFirstTypedCharacter = Cell(false); + var addNonTypingUndoLevel = function (e) { + setTyping(undoManager, false, locks); + undoManager.add({}, e); + }; + editor.on('init', function () { + undoManager.add(); + }); + editor.on('BeforeExecCommand', function (e) { + var cmd = e.command; + if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') { + endTyping(undoManager, locks); + undoManager.beforeChange(); + } + }); + editor.on('ExecCommand', function (e) { + var cmd = e.command; + if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') { + addNonTypingUndoLevel(e); + } + }); + editor.on('ObjectResizeStart cut', function () { + undoManager.beforeChange(); + }); + editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel); + editor.on('dragend', addNonTypingUndoLevel); + editor.on('keyup', function (e) { + var keyCode = e.keyCode; + if (e.isDefaultPrevented()) { + return; + } + if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) { + addNonTypingUndoLevel(); + editor.nodeChanged(); + } + if (keyCode === 46 || keyCode === 8) { + editor.nodeChanged(); + } + if (isFirstTypedCharacter.get() && undoManager.typing && Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]) === false) { + if (editor.isDirty() === false) { + editor.setDirty(true); + editor.fire('change', { + level: undoManager.data[0], + lastLevel: null + }); + } + editor.fire('TypingUndo'); + isFirstTypedCharacter.set(false); + editor.nodeChanged(); + } + }); + editor.on('keydown', function (e) { + var keyCode = e.keyCode; + if (e.isDefaultPrevented()) { + return; + } + if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) { + if (undoManager.typing) { + addNonTypingUndoLevel(e); + } + return; + } + var modKey = e.ctrlKey && !e.altKey || e.metaKey; + if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) { + undoManager.beforeChange(); + setTyping(undoManager, true, locks); + undoManager.add({}, e); + isFirstTypedCharacter.set(true); + } + }); + editor.on('mousedown', function (e) { + if (undoManager.typing) { + addNonTypingUndoLevel(e); + } + }); + var isInsertReplacementText = function (event) { + return event.inputType === 'insertReplacementText'; + }; + var isInsertTextDataNull = function (event) { + return event.inputType === 'insertText' && event.data === null; + }; + editor.on('input', function (e) { + if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e))) { + addNonTypingUndoLevel(e); + } + }); + editor.on('AddUndo Undo Redo ClearUndos', function (e) { + if (!e.isDefaultPrevented()) { + editor.nodeChanged(); + } + }); + }; + var addKeyboardShortcuts = function (editor) { + editor.addShortcut('meta+z', '', 'Undo'); + editor.addShortcut('meta+y,meta+shift+z', '', 'Redo'); + }; + + var UndoManager = function (editor) { + var beforeBookmark = Cell(Option.none()); + var locks = Cell(0); + var index = Cell(0); + var undoManager = { + data: [], + typing: false, + beforeChange: function () { + beforeChange(editor, locks, beforeBookmark); + }, + add: function (level, event) { + return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event); + }, + undo: function () { + return undo(editor, undoManager, locks, index); + }, + redo: function () { + return redo(editor, index, undoManager.data); + }, + clear: function () { + clear(editor, undoManager, index); + }, + reset: function () { + reset(undoManager); + }, + hasUndo: function () { + return hasUndo(editor, undoManager, index); + }, + hasRedo: function () { + return hasRedo(undoManager, index); + }, + transact: function (callback) { + return transact(undoManager, locks, callback); + }, + ignore: function (callback) { + ignore(locks, callback); + }, + extra: function (callback1, callback2) { + extra(editor, undoManager, index, callback1, callback2); + } + }; + registerEvents$1(editor, undoManager, locks); + addKeyboardShortcuts(editor); + return undoManager; + }; + + var nonTypingKeycodes = [ + 9, + 27, + VK.HOME, + VK.END, + 19, + 20, + 44, + 144, + 145, + 33, + 34, + 45, + 16, + 17, + 18, + 91, + 92, + 93, + VK.DOWN, + VK.UP, + VK.LEFT, + VK.RIGHT + ].concat(Env.browser.isFirefox() ? [224] : []); + var placeholderAttr = 'data-mce-placeholder'; + var isKeyboardEvent = function (e) { + return e.type === 'keydown' || e.type === 'keyup'; + }; + var isDeleteEvent = function (e) { + var keyCode = e.keyCode; + return keyCode === VK.BACKSPACE || keyCode === VK.DELETE; + }; + var isNonTypingKeyboardEvent = function (e) { + if (isKeyboardEvent(e)) { + var keyCode = e.keyCode; + return !isDeleteEvent(e) && (VK.metaKeyPressed(e) || e.altKey || keyCode >= 112 && keyCode <= 123 || contains(nonTypingKeycodes, keyCode)); + } else { + return false; + } + }; + var isTypingKeyboardEvent = function (e) { + return isKeyboardEvent(e) && !(isDeleteEvent(e) || e.type === 'keyup' && e.keyCode === 229); + }; + var isVisuallyEmpty = function (dom, rootElm, forcedRootBlock) { + if (Empty.isEmpty(Element.fromDom(rootElm), false)) { + var isForcedRootBlockFalse = forcedRootBlock === ''; + var firstElement = rootElm.firstElementChild; + if (!firstElement) { + return true; + } else if (dom.getStyle(rootElm.firstElementChild, 'padding-left') || dom.getStyle(rootElm.firstElementChild, 'padding-right')) { + return false; + } else { + return isForcedRootBlockFalse ? !dom.isBlock(firstElement) : forcedRootBlock === firstElement.nodeName.toLowerCase(); + } + } else { + return false; + } + }; + var setup$6 = function (editor) { + var dom = editor.dom; + var rootBlock = Settings.getForcedRootBlock(editor); + var placeholder = Settings.getPlaceholder(editor); + var updatePlaceholder = function (e, initial) { + if (isNonTypingKeyboardEvent(e)) { + return; + } + var body = editor.getBody(); + var showPlaceholder = isTypingKeyboardEvent(e) ? false : isVisuallyEmpty(dom, body, rootBlock); + var isPlaceholderShown = dom.getAttrib(body, placeholderAttr) !== ''; + if (isPlaceholderShown !== showPlaceholder || initial) { + dom.setAttrib(body, placeholderAttr, showPlaceholder ? placeholder : null); + dom.setAttrib(body, 'aria-placeholder', showPlaceholder ? placeholder : null); + firePlaceholderToggle(editor, showPlaceholder); + editor.on(showPlaceholder ? 'keydown' : 'keyup', updatePlaceholder); + editor.off(showPlaceholder ? 'keyup' : 'keydown', updatePlaceholder); + } + }; + if (placeholder) { + editor.on('init', function (e) { + updatePlaceholder(e, true); + editor.on('change SetContent ExecCommand', updatePlaceholder); + editor.on('remove', function () { + var body = editor.getBody(); + dom.setAttrib(body, placeholderAttr, null); + dom.setAttrib(body, 'aria-placeholder', null); + }); + }); + } + }; + + var SIGNIFICANT_MOVE = 5; + var LONGPRESS_DELAY = 400; + var getTouch = function (event) { + if (event.touches === undefined || event.touches.length !== 1) { + return Option.none(); + } + return Option.some(event.touches[0]); + }; + var isFarEnough = function (touch, data) { + var distX = Math.abs(touch.clientX - data.x()); + var distY = Math.abs(touch.clientY - data.y()); + return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE; + }; + var setup$7 = function (editor) { + var startData = Cell(Option.none()); + var longpressFired = Cell(false); + var debounceLongpress = last$2(function (e) { + editor.fire('longpress', __assign(__assign({}, e), { type: 'longpress' })); + longpressFired.set(true); + }, LONGPRESS_DELAY); + editor.on('touchstart', function (e) { + getTouch(e).each(function (touch) { + debounceLongpress.cancel(); + var data = { + x: constant(touch.clientX), + y: constant(touch.clientY), + target: constant(e.target) + }; + debounceLongpress.throttle(e); + longpressFired.set(false); + startData.set(Option.some(data)); + }); + }, true); + editor.on('touchmove', function (e) { + debounceLongpress.cancel(); + getTouch(e).each(function (touch) { + startData.get().each(function (data) { + if (isFarEnough(touch, data)) { + startData.set(Option.none()); + longpressFired.set(false); + editor.fire('longpresscancel'); + } + }); + }); + }, true); + editor.on('touchend touchcancel', function (e) { + debounceLongpress.cancel(); + if (e.type === 'touchcancel') { + return; + } + startData.get().filter(function (data) { + return data.target().isEqualNode(e.target); + }).each(function () { + if (longpressFired.get()) { + e.preventDefault(); + } else { + editor.fire('tap', __assign(__assign({}, e), { type: 'tap' })); + } + }); + }, true); + }; + var TouchEvents = { setup: setup$7 }; + + var isBlockElement = function (blockElements, node) { + return blockElements.hasOwnProperty(node.nodeName); + }; + var isValidTarget = function (blockElements, node) { + if (NodeType.isText(node)) { + return true; + } else if (NodeType.isElement(node)) { + return !isBlockElement(blockElements, node) && !Bookmarks.isBookmarkNode(node); + } else { + return false; + } + }; + var hasBlockParent = function (blockElements, root, node) { + return exists(Parents.parents(Element.fromDom(node), Element.fromDom(root)), function (elm) { + return isBlockElement(blockElements, elm.dom()); + }); + }; + var shouldRemoveTextNode = function (blockElements, node) { + if (NodeType.isText(node)) { + if (node.nodeValue.length === 0) { + return true; + } else if (/^\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) { + return true; + } + } + return false; + }; + var addRootBlocks = function (editor) { + var dom = editor.dom, selection = editor.selection; + var schema = editor.schema, blockElements = schema.getBlockElements(); + var node = selection.getStart(); + var rootNode = editor.getBody(); + var rng; + var startContainer, startOffset, endContainer, endOffset, rootBlockNode; + var tempNode, wrapped, restoreSelection; + var rootNodeName; + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (!node || !NodeType.isElement(node) || !forcedRootBlock) { + return; + } + rootNodeName = rootNode.nodeName.toLowerCase(); + if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, node)) { + return; + } + rng = selection.getRng(); + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + restoreSelection = EditorFocus.hasFocus(editor); + node = rootNode.firstChild; + while (node) { + if (isValidTarget(blockElements, node)) { + if (shouldRemoveTextNode(blockElements, node)) { + tempNode = node; + node = node.nextSibling; + dom.remove(tempNode); + continue; + } + if (!rootBlockNode) { + rootBlockNode = dom.create(forcedRootBlock, Settings.getForcedRootBlockAttrs(editor)); + node.parentNode.insertBefore(rootBlockNode, node); + wrapped = true; + } + tempNode = node; + node = node.nextSibling; + rootBlockNode.appendChild(tempNode); + } else { + rootBlockNode = null; + node = node.nextSibling; + } + } + if (wrapped && restoreSelection) { + rng.setStart(startContainer, startOffset); + rng.setEnd(endContainer, endOffset); + selection.setRng(rng); + editor.nodeChanged(); + } + }; + var setup$8 = function (editor) { + if (Settings.getForcedRootBlock(editor)) { + editor.on('NodeChange', curry(addRootBlocks, editor)); + } + }; + var ForceBlocks = { setup: setup$8 }; + + var isText$8 = NodeType.isText; + var startsWithCaretContainer$1 = function (node) { + return isText$8(node) && node.data[0] === Zwsp.ZWSP; + }; + var endsWithCaretContainer$1 = function (node) { + return isText$8(node) && node.data[node.data.length - 1] === Zwsp.ZWSP; + }; + var createZwsp = function (node) { + return node.ownerDocument.createTextNode(Zwsp.ZWSP); + }; + var insertBefore = function (node) { + if (isText$8(node.previousSibling)) { + if (endsWithCaretContainer$1(node.previousSibling)) { + return node.previousSibling; + } else { + node.previousSibling.appendData(Zwsp.ZWSP); + return node.previousSibling; + } + } else if (isText$8(node)) { + if (startsWithCaretContainer$1(node)) { + return node; + } else { + node.insertData(0, Zwsp.ZWSP); + return node; + } + } else { + var newNode = createZwsp(node); + node.parentNode.insertBefore(newNode, node); + return newNode; + } + }; + var insertAfter = function (node) { + if (isText$8(node.nextSibling)) { + if (startsWithCaretContainer$1(node.nextSibling)) { + return node.nextSibling; + } else { + node.nextSibling.insertData(0, Zwsp.ZWSP); + return node.nextSibling; + } + } else if (isText$8(node)) { + if (endsWithCaretContainer$1(node)) { + return node; + } else { + node.appendData(Zwsp.ZWSP); + return node; + } + } else { + var newNode = createZwsp(node); + if (node.nextSibling) { + node.parentNode.insertBefore(newNode, node.nextSibling); + } else { + node.parentNode.appendChild(newNode); + } + return newNode; + } + }; + var insertInline$1 = function (before, node) { + return before ? insertBefore(node) : insertAfter(node); + }; + var insertInlineBefore = curry(insertInline$1, true); + var insertInlineAfter = curry(insertInline$1, false); + + var insertInlinePos = function (pos, before) { + if (NodeType.isText(pos.container())) { + return insertInline$1(before, pos.container()); + } else { + return insertInline$1(before, pos.getNode()); + } + }; + var isPosCaretContainer = function (pos, caret) { + var caretNode = caret.get(); + return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode); + }; + var renderCaret = function (caret, location) { + return location.fold(function (element) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlineBefore(element); + caret.set(text); + return Option.some(CaretPosition$1(text, text.length - 1)); + }, function (element) { + return CaretFinder.firstPositionIn(element).map(function (pos) { + if (!isPosCaretContainer(pos, caret)) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlinePos(pos, true); + caret.set(text); + return CaretPosition$1(text, 1); + } else { + return CaretPosition$1(caret.get(), 1); + } + }); + }, function (element) { + return CaretFinder.lastPositionIn(element).map(function (pos) { + if (!isPosCaretContainer(pos, caret)) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlinePos(pos, false); + caret.set(text); + return CaretPosition$1(text, text.length - 1); + } else { + return CaretPosition$1(caret.get(), caret.get().length - 1); + } + }); + }, function (element) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlineAfter(element); + caret.set(text); + return Option.some(CaretPosition$1(text, 1)); + }); + }; + var BoundaryCaret = { renderCaret: renderCaret }; + + var strongRtl = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/; + var hasStrongRtl = function (text) { + return strongRtl.test(text); + }; + + var isInlineTarget = function (editor, elm) { + return is(Element.fromDom(elm), Settings.getInlineBoundarySelector(editor)); + }; + var isRtl$1 = function (element) { + return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent); + }; + var findInlineParents = function (isInlineTarget, rootNode, pos) { + return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget); + }; + var findRootInline = function (isInlineTarget, rootNode, pos) { + var parents = findInlineParents(isInlineTarget, rootNode, pos); + return Option.from(parents[parents.length - 1]); + }; + var hasSameParentBlock = function (rootNode, node1, node2) { + var block1 = getParentBlock(node1, rootNode); + var block2 = getParentBlock(node2, rootNode); + return block1 && block1 === block2; + }; + var isAtZwsp = function (pos) { + return isBeforeInline(pos) || isAfterInline(pos); + }; + var normalizePosition = function (forward, pos) { + if (!pos) { + return pos; + } + var container = pos.container(), offset = pos.offset(); + if (forward) { + if (isCaretContainerInline(container)) { + if (NodeType.isText(container.nextSibling)) { + return CaretPosition$1(container.nextSibling, 0); + } else { + return CaretPosition$1.after(container); + } + } else { + return isBeforeInline(pos) ? CaretPosition$1(container, offset + 1) : pos; + } + } else { + if (isCaretContainerInline(container)) { + if (NodeType.isText(container.previousSibling)) { + return CaretPosition$1(container.previousSibling, container.previousSibling.data.length); + } else { + return CaretPosition$1.before(container); + } + } else { + return isAfterInline(pos) ? CaretPosition$1(container, offset - 1) : pos; + } + } + }; + var normalizeForwards = curry(normalizePosition, true); + var normalizeBackwards = curry(normalizePosition, false); + var InlineUtils = { + isInlineTarget: isInlineTarget, + findRootInline: findRootInline, + isRtl: isRtl$1, + isAtZwsp: isAtZwsp, + normalizePosition: normalizePosition, + normalizeForwards: normalizeForwards, + normalizeBackwards: normalizeBackwards, + hasSameParentBlock: hasSameParentBlock + }; + + var evaluateUntil = function (fns, args) { + for (var i = 0; i < fns.length; i++) { + var result = fns[i].apply(null, args); + if (result.isSome()) { + return result; + } + } + return Option.none(); + }; + var LazyEvaluator = { evaluateUntil: evaluateUntil }; + + var Location = Adt.generate([ + { before: ['element'] }, + { start: ['element'] }, + { end: ['element'] }, + { after: ['element'] } + ]); + var rescope = function (rootNode, node) { + var parentBlock = getParentBlock(node, rootNode); + return parentBlock ? parentBlock : rootNode; + }; + var before$4 = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeForwards(pos); + var scope = rescope(rootNode, nPos.container()); + return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () { + return CaretFinder.nextPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) { + return Location.before(inline); + }); + }, Option.none); + }; + var isNotInsideFormatCaretContainer = function (rootNode, elm) { + return getParentCaretContainer(rootNode, elm) === null; + }; + var findInsideRootInline = function (isInlineTarget, rootNode, pos) { + return InlineUtils.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode)); + }; + var start = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeBackwards(pos); + return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) { + var prevPos = CaretFinder.prevPosition(inline, nPos); + return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none(); + }); + }; + var end = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeForwards(pos); + return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) { + var nextPos = CaretFinder.nextPosition(inline, nPos); + return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none(); + }); + }; + var after$3 = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeBackwards(pos); + var scope = rescope(rootNode, nPos.container()); + return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () { + return CaretFinder.prevPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) { + return Location.after(inline); + }); + }, Option.none); + }; + var isValidLocation = function (location) { + return InlineUtils.isRtl(getElement(location)) === false; + }; + var readLocation = function (isInlineTarget, rootNode, pos) { + var location = LazyEvaluator.evaluateUntil([ + before$4, + start, + end, + after$3 + ], [ + isInlineTarget, + rootNode, + pos + ]); + return location.filter(isValidLocation); + }; + var getElement = function (location) { + return location.fold(identity, identity, identity, identity); + }; + var getName = function (location) { + return location.fold(constant('before'), constant('start'), constant('end'), constant('after')); + }; + var outside = function (location) { + return location.fold(Location.before, Location.before, Location.after, Location.after); + }; + var inside = function (location) { + return location.fold(Location.start, Location.start, Location.end, Location.end); + }; + var isEq$5 = function (location1, location2) { + return getName(location1) === getName(location2) && getElement(location1) === getElement(location2); + }; + var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) { + return lift2(InlineUtils.findRootInline(isInlineTarget, rootNode, from), InlineUtils.findRootInline(isInlineTarget, rootNode, to), function (fromInline, toInline) { + if (fromInline !== toInline && InlineUtils.hasSameParentBlock(rootNode, fromInline, toInline)) { + return Location.after(forward ? fromInline : toInline); + } else { + return location; + } + }).getOr(location); + }; + var skipNoMovement = function (fromLocation, toLocation) { + return fromLocation.fold(constant(true), function (fromLocation) { + return !isEq$5(fromLocation, toLocation); + }); + }; + var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) { + var from = InlineUtils.normalizePosition(forward, pos); + var to = CaretFinder.fromPosition(forward, rootNode, from).map(curry(InlineUtils.normalizePosition, forward)); + var location = to.fold(function () { + return fromLocation.map(outside); + }, function (to) { + return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation)); + }); + return location.filter(isValidLocation); + }; + var findLocationSimple = function (forward, location) { + if (forward) { + return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none); + } else { + return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end)); + } + }; + var findLocation = function (forward, isInlineTarget, rootNode, pos) { + var from = InlineUtils.normalizePosition(forward, pos); + var fromLocation = readLocation(isInlineTarget, rootNode, from); + return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () { + return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos); + }); + }; + var BoundaryLocation = { + readLocation: readLocation, + findLocation: findLocation, + prevLocation: curry(findLocation, false), + nextLocation: curry(findLocation, true), + getElement: getElement, + outside: outside, + inside: inside + }; + + var hasSelectionModifyApi = function (editor) { + return isFunction(editor.selection.getSel().modify); + }; + var moveRel = function (forward, selection, pos) { + var delta = forward ? 1 : -1; + selection.setRng(CaretPosition$1(pos.container(), pos.offset() + delta).toRange()); + selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word'); + return true; + }; + var moveByWord = function (forward, editor) { + var rng = editor.selection.getRng(); + var pos = forward ? CaretPosition$1.fromRangeEnd(rng) : CaretPosition$1.fromRangeStart(rng); + if (!hasSelectionModifyApi(editor)) { + return false; + } else if (forward && isBeforeInline(pos)) { + return moveRel(true, editor.selection, pos); + } else if (!forward && isAfterInline(pos)) { + return moveRel(false, editor.selection, pos); + } else { + return false; + } + }; + var WordSelection = { + hasSelectionModifyApi: hasSelectionModifyApi, + moveByWord: moveByWord + }; + + var setCaretPosition = function (editor, pos) { + var rng = editor.dom.createRng(); + rng.setStart(pos.container(), pos.offset()); + rng.setEnd(pos.container(), pos.offset()); + editor.selection.setRng(rng); + }; + var isFeatureEnabled = function (editor) { + return editor.settings.inline_boundaries !== false; + }; + var setSelected = function (state, elm) { + if (state) { + elm.setAttribute('data-mce-selected', 'inline-boundary'); + } else { + elm.removeAttribute('data-mce-selected'); + } + }; + var renderCaretLocation = function (editor, caret, location) { + return BoundaryCaret.renderCaret(caret, location).map(function (pos) { + setCaretPosition(editor, pos); + return location; + }); + }; + var findLocation$1 = function (editor, caret, forward) { + var rootNode = editor.getBody(); + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var location = BoundaryLocation.findLocation(forward, isInlineTarget, rootNode, from); + return location.bind(function (location) { + return renderCaretLocation(editor, caret, location); + }); + }; + var toggleInlines = function (isInlineTarget, dom, elms) { + var selectedInlines = filter(dom.select('*[data-mce-selected="inline-boundary"]'), isInlineTarget); + var targetInlines = filter(elms, isInlineTarget); + each(difference(selectedInlines, targetInlines), curry(setSelected, false)); + each(difference(targetInlines, selectedInlines), curry(setSelected, true)); + }; + var safeRemoveCaretContainer = function (editor, caret) { + if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + if (CaretPosition$1.isTextPosition(pos) && InlineUtils.isAtZwsp(pos) === false) { + setCaretPosition(editor, CaretContainerRemove.removeAndReposition(caret.get(), pos)); + caret.set(null); + } + } + }; + var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) { + if (editor.selection.isCollapsed()) { + var inlines = filter(elms, isInlineTarget); + each(inlines, function (inline) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) { + return renderCaretLocation(editor, caret, location); + }); + }); + } + }; + var move = function (editor, caret, forward) { + return function () { + return isFeatureEnabled(editor) ? findLocation$1(editor, caret, forward).isSome() : false; + }; + }; + var moveWord = function (forward, editor, caret) { + return function () { + return isFeatureEnabled(editor) ? WordSelection.moveByWord(forward, editor) : false; + }; + }; + var setupSelectedState = function (editor) { + var caret = Cell(null); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + editor.on('NodeChange', function (e) { + if (isFeatureEnabled(editor) && !(Env.browser.isIE() && e.initial)) { + toggleInlines(isInlineTarget, editor.dom, e.parents); + safeRemoveCaretContainer(editor, caret); + renderInsideInlineCaret(isInlineTarget, editor, caret, e.parents); + } + }); + return caret; + }; + var moveNextWord = curry(moveWord, true); + var movePrevWord = curry(moveWord, false); + var BoundarySelection = { + move: move, + moveNextWord: moveNextWord, + movePrevWord: movePrevWord, + setupSelectedState: setupSelectedState, + setCaretPosition: setCaretPosition + }; + + var getNodeClientRects = function (node) { + var toArrayWithNode = function (clientRects) { + return map(clientRects, function (clientRect) { + clientRect = clone$1(clientRect); + clientRect.node = node; + return clientRect; + }); + }; + if (NodeType.isElement(node)) { + return toArrayWithNode(node.getClientRects()); + } + if (NodeType.isText(node)) { + var rng = node.ownerDocument.createRange(); + rng.setStart(node, 0); + rng.setEnd(node, node.data.length); + return toArrayWithNode(rng.getClientRects()); + } + }; + var getClientRects = function (node) { + return foldl(node, function (result, node) { + return result.concat(getNodeClientRects(node)); + }, []); + }; + + var VDirection; + (function (VDirection) { + VDirection[VDirection['Up'] = -1] = 'Up'; + VDirection[VDirection['Down'] = 1] = 'Down'; + }(VDirection || (VDirection = {}))); + var findUntil = function (direction, root, predicateFn, node) { + while (node = findNode(node, direction, isEditableCaretCandidate, root)) { + if (predicateFn(node)) { + return; + } + } + }; + var walkUntil = function (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) { + var line = 0, node; + var result = []; + var targetClientRect; + var add = function (node) { + var i, clientRect, clientRects; + clientRects = getClientRects([node]); + if (direction === -1) { + clientRects = clientRects.reverse(); + } + for (i = 0; i < clientRects.length; i++) { + clientRect = clientRects[i]; + if (isBeflowFn(clientRect, targetClientRect)) { + continue; + } + if (result.length > 0 && isAboveFn(clientRect, ArrUtils.last(result))) { + line++; + } + clientRect.line = line; + if (predicateFn(clientRect)) { + return true; + } + result.push(clientRect); + } + }; + targetClientRect = ArrUtils.last(caretPosition.getClientRects()); + if (!targetClientRect) { + return result; + } + node = caretPosition.getNode(); + add(node); + findUntil(direction, root, add, node); + return result; + }; + var aboveLineNumber = function (lineNumber, clientRect) { + return clientRect.line > lineNumber; + }; + var isLineNumber = function (lineNumber, clientRect) { + return clientRect.line === lineNumber; + }; + var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow); + var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove); + var positionsUntil = function (direction, root, predicateFn, node) { + var caretWalker = CaretWalker(root); + var walkFn, isBelowFn, isAboveFn, caretPosition; + var result = []; + var line = 0, clientRect, targetClientRect; + var getClientRect = function (caretPosition) { + if (direction === 1) { + return ArrUtils.last(caretPosition.getClientRects()); + } + return ArrUtils.last(caretPosition.getClientRects()); + }; + if (direction === 1) { + walkFn = caretWalker.next; + isBelowFn = isBelow; + isAboveFn = isAbove; + caretPosition = CaretPosition$1.after(node); + } else { + walkFn = caretWalker.prev; + isBelowFn = isAbove; + isAboveFn = isBelow; + caretPosition = CaretPosition$1.before(node); + } + targetClientRect = getClientRect(caretPosition); + do { + if (!caretPosition.isVisible()) { + continue; + } + clientRect = getClientRect(caretPosition); + if (isAboveFn(clientRect, targetClientRect)) { + continue; + } + if (result.length > 0 && isBelowFn(clientRect, ArrUtils.last(result))) { + line++; + } + clientRect = clone$1(clientRect); + clientRect.position = caretPosition; + clientRect.line = line; + if (predicateFn(clientRect)) { + return result; + } + result.push(clientRect); + } while (caretPosition = walkFn(caretPosition)); + return result; + }; + var isAboveLine = function (lineNumber) { + return function (clientRect) { + return aboveLineNumber(lineNumber, clientRect); + }; + }; + var isLine = function (lineNumber) { + return function (clientRect) { + return isLineNumber(lineNumber, clientRect); + }; + }; + + var isContentEditableFalse$7 = NodeType.isContentEditableFalse; + var findNode$1 = findNode; + var distanceToRectLeft = function (clientRect, clientX) { + return Math.abs(clientRect.left - clientX); + }; + var distanceToRectRight = function (clientRect, clientX) { + return Math.abs(clientRect.right - clientX); + }; + var isInside = function (clientX, clientRect) { + return clientX >= clientRect.left && clientX <= clientRect.right; + }; + var findClosestClientRect = function (clientRects, clientX) { + return ArrUtils.reduce(clientRects, function (oldClientRect, clientRect) { + var oldDistance, newDistance; + oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX)); + newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX)); + if (isInside(clientX, clientRect)) { + return clientRect; + } + if (isInside(clientX, oldClientRect)) { + return oldClientRect; + } + if (newDistance === oldDistance && isContentEditableFalse$7(clientRect.node)) { + return clientRect; + } + if (newDistance < oldDistance) { + return clientRect; + } + return oldClientRect; + }); + }; + var walkUntil$1 = function (direction, root, predicateFn, node) { + while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) { + if (predicateFn(node)) { + return; + } + } + }; + var findLineNodeRects = function (root, targetNodeRect) { + var clientRects = []; + var collect = function (checkPosFn, node) { + var lineRects; + lineRects = filter(getClientRects([node]), function (clientRect) { + return !checkPosFn(clientRect, targetNodeRect); + }); + clientRects = clientRects.concat(lineRects); + return lineRects.length === 0; + }; + clientRects.push(targetNodeRect); + walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node); + walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node); + return clientRects; + }; + var getFakeCaretTargets = function (root) { + return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget); + }; + var caretInfo = function (clientRect, clientX) { + return { + node: clientRect.node, + before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX) + }; + }; + var closestCaret = function (root, clientX, clientY) { + var closestNodeRect; + var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root)); + var targetNodeRects = filter(contentEditableFalseNodeRects, function (rect) { + return clientY >= rect.top && clientY <= rect.bottom; + }); + closestNodeRect = findClosestClientRect(targetNodeRects, clientX); + if (closestNodeRect) { + closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX); + if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) { + return caretInfo(closestNodeRect, clientX); + } + } + return null; + }; + + var isContentEditableTrue$3 = NodeType.isContentEditableTrue; + var isContentEditableFalse$8 = NodeType.isContentEditableFalse; + var showCaret = function (direction, editor, node, before, scrollIntoView) { + return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView); + }; + var getNodeRange = function (node) { + var rng = node.ownerDocument.createRange(); + rng.selectNode(node); + return rng; + }; + var selectNode = function (editor, node) { + var e = editor.fire('BeforeObjectSelected', { target: node }); + if (e.isDefaultPrevented()) { + return null; + } + return getNodeRange(node); + }; + var renderCaretAtRange = function (editor, range, scrollIntoView) { + var normalizedRange = normalizeRange(1, editor.getBody(), range); + var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange); + var caretPositionNode = caretPosition.getNode(); + if (isContentEditableFalse$8(caretPositionNode)) { + return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false); + } + var caretPositionBeforeNode = caretPosition.getNode(true); + if (isContentEditableFalse$8(caretPositionBeforeNode)) { + return showCaret(1, editor, caretPositionBeforeNode, false, false); + } + var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) { + return isContentEditableFalse$8(node) || isContentEditableTrue$3(node); + }); + if (isContentEditableFalse$8(ceRoot)) { + return showCaret(1, editor, ceRoot, false, scrollIntoView); + } + return null; + }; + var renderRangeCaret = function (editor, range, scrollIntoView) { + if (!range || !range.collapsed) { + return range; + } + var caretRange = renderCaretAtRange(editor, range, scrollIntoView); + if (caretRange) { + return caretRange; + } + return range; + }; + + var isChar = function (forward, predicate, pos) { + return Option.from(pos.container()).filter(NodeType.isText).exists(function (text) { + var delta = forward ? 0 : -1; + return predicate(text.data.charAt(pos.offset() + delta)); + }); + }; + var isBeforeSpace = curry(isChar, true, isWhiteSpace$1); + var isAfterSpace = curry(isChar, false, isWhiteSpace$1); + var isEmptyText = function (pos) { + var container = pos.container(); + return NodeType.isText(container) && container.data.length === 0; + }; + var matchesElementPosition = function (before, predicate) { + return function (pos) { + return Option.from(getChildNodeAtRelativeOffset(before ? 0 : -1, pos)).filter(predicate).isSome(); + }; + }; + var isImageBlock = function (node) { + return node.nodeName === 'IMG' && get$4(Element.fromDom(node), 'display') === 'block'; + }; + var isCefNode = function (node) { + return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node); + }; + var isBeforeImageBlock = matchesElementPosition(true, isImageBlock); + var isAfterImageBlock = matchesElementPosition(false, isImageBlock); + var isBeforeTable = matchesElementPosition(true, NodeType.isTable); + var isAfterTable = matchesElementPosition(false, NodeType.isTable); + var isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode); + var isAfterContentEditableFalse = matchesElementPosition(false, isCefNode); + + var BreakType; + (function (BreakType) { + BreakType[BreakType['Br'] = 0] = 'Br'; + BreakType[BreakType['Block'] = 1] = 'Block'; + BreakType[BreakType['Wrap'] = 2] = 'Wrap'; + BreakType[BreakType['Eol'] = 3] = 'Eol'; + }(BreakType || (BreakType = {}))); + var flip = function (direction, positions) { + return direction === HDirection.Backwards ? reverse(positions) : positions; + }; + var walk$3 = function (direction, caretWalker, pos) { + return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos); + }; + var getBreakType = function (scope, direction, currentPos, nextPos) { + if (NodeType.isBr(nextPos.getNode(direction === HDirection.Forwards))) { + return BreakType.Br; + } else if (isInSameBlock(currentPos, nextPos) === false) { + return BreakType.Block; + } else { + return BreakType.Wrap; + } + }; + var getPositionsUntil = function (predicate, direction, scope, start) { + var caretWalker = CaretWalker(scope); + var currentPos = start, nextPos; + var positions = []; + while (currentPos) { + nextPos = walk$3(direction, caretWalker, currentPos); + if (!nextPos) { + break; + } + if (NodeType.isBr(nextPos.getNode(false))) { + if (direction === HDirection.Forwards) { + return { + positions: flip(direction, positions).concat([nextPos]), + breakType: BreakType.Br, + breakAt: Option.some(nextPos) + }; + } else { + return { + positions: flip(direction, positions), + breakType: BreakType.Br, + breakAt: Option.some(nextPos) + }; + } + } + if (!nextPos.isVisible()) { + currentPos = nextPos; + continue; + } + if (predicate(currentPos, nextPos)) { + var breakType = getBreakType(scope, direction, currentPos, nextPos); + return { + positions: flip(direction, positions), + breakType: breakType, + breakAt: Option.some(nextPos) + }; + } + positions.push(nextPos); + currentPos = nextPos; + } + return { + positions: flip(direction, positions), + breakType: BreakType.Eol, + breakAt: Option.none() + }; + }; + var getAdjacentLinePositions = function (direction, getPositionsUntilBreak, scope, start) { + return getPositionsUntilBreak(scope, start).breakAt.map(function (pos) { + var positions = getPositionsUntilBreak(scope, pos).positions; + return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions); + }).getOr([]); + }; + var findClosestHorizontalPositionFromPoint = function (positions, x) { + return foldl(positions, function (acc, newPos) { + return acc.fold(function () { + return Option.some(newPos); + }, function (lastPos) { + return lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), function (lastRect, newRect) { + var lastDist = Math.abs(x - lastRect.left); + var newDist = Math.abs(x - newRect.left); + return newDist <= lastDist ? newPos : lastPos; + }).or(acc); + }); + }, Option.none()); + }; + var findClosestHorizontalPosition = function (positions, pos) { + return head(pos.getClientRects()).bind(function (targetRect) { + return findClosestHorizontalPositionFromPoint(positions, targetRect.left); + }); + }; + var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1); + var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1); + var isAtFirstLine = function (scope, pos) { + return getPositionsUntilPreviousLine(scope, pos).breakAt.isNone(); + }; + var isAtLastLine = function (scope, pos) { + return getPositionsUntilNextLine(scope, pos).breakAt.isNone(); + }; + var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine); + var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine); + var getFirstLinePositions = function (scope) { + return CaretFinder.firstPositionIn(scope).map(function (pos) { + return [pos].concat(getPositionsUntilNextLine(scope, pos).positions); + }).getOr([]); + }; + var getLastLinePositions = function (scope) { + return CaretFinder.lastPositionIn(scope).map(function (pos) { + return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos); + }).getOr([]); + }; + + var isContentEditableFalse$9 = NodeType.isContentEditableFalse; + var getSelectedNode$1 = getSelectedNode; + var moveToCeFalseHorizontally = function (direction, editor, getNextPosFn, range) { + var forwards = direction === HDirection.Forwards; + var isBeforeContentEditableFalseFn = forwards ? isBeforeContentEditableFalse : isAfterContentEditableFalse; + if (!range.collapsed) { + var node = getSelectedNode$1(range); + if (isContentEditableFalse$9(node)) { + return showCaret(direction, editor, node, direction === HDirection.Backwards, true); + } + } + var rangeIsInContainerBlock = isRangeInCaretContainerBlock(range); + var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + if (isBeforeContentEditableFalseFn(caretPosition)) { + return selectNode(editor, caretPosition.getNode(!forwards)); + } + var nextCaretPosition = InlineUtils.normalizePosition(forwards, getNextPosFn(caretPosition)); + if (!nextCaretPosition) { + if (rangeIsInContainerBlock) { + return range; + } + return null; + } + if (isBeforeContentEditableFalseFn(nextCaretPosition)) { + return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, true); + } + var peekCaretPosition = getNextPosFn(nextCaretPosition); + if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) { + if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) { + return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, true); + } + } + if (rangeIsInContainerBlock) { + return renderRangeCaret(editor, nextCaretPosition.toRange(), true); + } + return null; + }; + var moveToCeFalseVertically = function (direction, editor, walkerFn, range) { + var caretPosition, linePositions, nextLinePositions; + var closestNextLineRect, caretClientRect, clientX; + var dist1, dist2, contentEditableFalseNode; + contentEditableFalseNode = getSelectedNode$1(range); + caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition); + nextLinePositions = filter(linePositions, isLine(1)); + caretClientRect = ArrUtils.last(caretPosition.getClientRects()); + if (isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition)) { + contentEditableFalseNode = caretPosition.getNode(); + } + if (isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition)) { + contentEditableFalseNode = caretPosition.getNode(true); + } + if (!caretClientRect) { + return null; + } + clientX = caretClientRect.left; + closestNextLineRect = findClosestClientRect(nextLinePositions, clientX); + if (closestNextLineRect) { + if (isContentEditableFalse$9(closestNextLineRect.node)) { + dist1 = Math.abs(clientX - closestNextLineRect.left); + dist2 = Math.abs(clientX - closestNextLineRect.right); + return showCaret(direction, editor, closestNextLineRect.node, dist1 < dist2, true); + } + } + if (contentEditableFalseNode) { + var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode); + closestNextLineRect = findClosestClientRect(filter(caretPositions, isLine(1)), clientX); + if (closestNextLineRect) { + return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true); + } + closestNextLineRect = ArrUtils.last(filter(caretPositions, isLine(0))); + if (closestNextLineRect) { + return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true); + } + } + }; + var createTextBlock = function (editor) { + var textBlock = editor.dom.create(Settings.getForcedRootBlock(editor)); + if (!Env.ie || Env.ie >= 11) { + textBlock.innerHTML = '
'; + } + return textBlock; + }; + var exitPreBlock = function (editor, direction, range) { + var pre, caretPos, newBlock; + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + if (range.collapsed && editor.settings.forced_root_block) { + pre = editor.dom.getParent(range.startContainer, 'PRE'); + if (!pre) { + return; + } + if (direction === 1) { + caretPos = getNextVisualCaretPosition(CaretPosition$1.fromRangeStart(range)); + } else { + caretPos = getPrevVisualCaretPosition(CaretPosition$1.fromRangeStart(range)); + } + if (!caretPos) { + newBlock = createTextBlock(editor); + if (direction === 1) { + editor.$(pre).after(newBlock); + } else { + editor.$(pre).before(newBlock); + } + editor.selection.select(newBlock, true); + editor.selection.collapse(); + } + } + }; + var getHorizontalRange = function (editor, forward) { + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + var newRange; + var direction = forward ? HDirection.Forwards : HDirection.Backwards; + var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition; + var range = editor.selection.getRng(); + newRange = moveToCeFalseHorizontally(direction, editor, getNextPosFn, range); + if (newRange) { + return newRange; + } + newRange = exitPreBlock(editor, direction, range); + if (newRange) { + return newRange; + } + return null; + }; + var getVerticalRange = function (editor, down) { + var newRange; + var direction = down ? 1 : -1; + var walkerFn = down ? downUntil : upUntil; + var range = editor.selection.getRng(); + newRange = moveToCeFalseVertically(direction, editor, walkerFn, range); + if (newRange) { + return newRange; + } + newRange = exitPreBlock(editor, direction, range); + if (newRange) { + return newRange; + } + return null; + }; + var moveH = function (editor, forward) { + return function () { + var newRng = getHorizontalRange(editor, forward); + if (newRng) { + editor.selection.setRng(newRng); + return true; + } else { + return false; + } + }; + }; + var moveV = function (editor, down) { + return function () { + var newRng = getVerticalRange(editor, down); + if (newRng) { + editor.selection.setRng(newRng); + return true; + } else { + return false; + } + }; + }; + var isCefPosition = function (forward) { + return function (pos) { + return forward ? isAfterContentEditableFalse(pos) : isBeforeContentEditableFalse(pos); + }; + }; + var moveToLineEndPoint = function (editor, forward) { + return function () { + var from = forward ? CaretPosition$1.fromRangeEnd(editor.selection.getRng()) : CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var result = forward ? getPositionsUntilNextLine(editor.getBody(), from) : getPositionsUntilPreviousLine(editor.getBody(), from); + var to = forward ? last(result.positions) : head(result.positions); + return to.filter(isCefPosition(forward)).fold(constant(false), function (pos) { + editor.selection.setRng(pos.toRange()); + return true; + }); + }; + }; + + var deflate = function (rect, delta) { + return { + left: rect.left - delta, + top: rect.top - delta, + right: rect.right + delta * 2, + bottom: rect.bottom + delta * 2, + width: rect.width + delta, + height: rect.height + delta + }; + }; + var getCorners = function (getYAxisValue, tds) { + return bind(tds, function (td) { + var rect = deflate(clone$1(td.getBoundingClientRect()), -1); + return [ + { + x: rect.left, + y: getYAxisValue(rect), + cell: td + }, + { + x: rect.right, + y: getYAxisValue(rect), + cell: td + } + ]; + }); + }; + var findClosestCorner = function (corners, x, y) { + return foldl(corners, function (acc, newCorner) { + return acc.fold(function () { + return Option.some(newCorner); + }, function (oldCorner) { + var oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y)); + var newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y)); + return Option.some(newDist < oldDist ? newCorner : oldCorner); + }); + }, Option.none()); + }; + var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) { + var cells = descendants$1(Element.fromDom(table), 'td,th,caption').map(function (e) { + return e.dom(); + }); + var corners = filter(getCorners(getYAxisValue, cells), function (corner) { + return isTargetCorner(corner, y); + }); + return findClosestCorner(corners, x, y).map(function (corner) { + return corner.cell; + }); + }; + var getBottomValue = function (rect) { + return rect.bottom; + }; + var getTopValue = function (rect) { + return rect.top; + }; + var isAbove$1 = function (corner, y) { + return corner.y < y; + }; + var isBelow$1 = function (corner, y) { + return corner.y > y; + }; + var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1); + var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1); + var findClosestPositionInAboveCell = function (table, pos) { + return head(pos.getClientRects()).bind(function (rect) { + return getClosestCellAbove(table, rect.left, rect.top); + }).bind(function (cell) { + return findClosestHorizontalPosition(getLastLinePositions(cell), pos); + }); + }; + var findClosestPositionInBelowCell = function (table, pos) { + return last(pos.getClientRects()).bind(function (rect) { + return getClosestCellBelow(table, rect.left, rect.top); + }).bind(function (cell) { + return findClosestHorizontalPosition(getFirstLinePositions(cell), pos); + }); + }; + + var moveToRange = function (editor, rng) { + editor.selection.setRng(rng); + ScrollIntoView.scrollRangeIntoView(editor, rng); + }; + var hasNextBreak = function (getPositionsUntil, scope, lineInfo) { + return lineInfo.breakAt.map(function (breakPos) { + return getPositionsUntil(scope, breakPos).breakAt.isSome(); + }).getOr(false); + }; + var startsWithWrapBreak = function (lineInfo) { + return lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0; + }; + var startsWithBrBreak = function (lineInfo) { + return lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1; + }; + var isAtTableCellLine = function (getPositionsUntil, scope, pos) { + var lineInfo = getPositionsUntil(scope, pos); + if (startsWithWrapBreak(lineInfo) || !NodeType.isBr(pos.getNode()) && startsWithBrBreak(lineInfo)) { + return !hasNextBreak(getPositionsUntil, scope, lineInfo); + } else { + return lineInfo.breakAt.isNone(); + } + }; + var isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine); + var isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine); + var isCaretAtStartOrEndOfTable = function (forward, rng, table) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + return CaretFinder.positionIn(!forward, table).map(function (pos) { + return pos.isEqual(caretPos); + }).getOr(false); + }; + var navigateHorizontally = function (editor, forward, table, td) { + var rng = editor.selection.getRng(); + var direction = forward ? 1 : -1; + if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) { + var newRng = showCaret(direction, editor, table, !forward, true); + moveToRange(editor, newRng); + return true; + } + return false; + }; + var getClosestAbovePosition = function (root, table, start) { + return findClosestPositionInAboveCell(table, start).orThunk(function () { + return head(start.getClientRects()).bind(function (rect) { + return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left); + }); + }).getOr(CaretPosition$1.before(table)); + }; + var getClosestBelowPosition = function (root, table, start) { + return findClosestPositionInBelowCell(table, start).orThunk(function () { + return head(start.getClientRects()).bind(function (rect) { + return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left); + }); + }).getOr(CaretPosition$1.after(table)); + }; + var getTable = function (previous, pos) { + var node = pos.getNode(previous); + return NodeType.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none(); + }; + var renderBlock = function (down, editor, table, pos) { + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (forcedRootBlock) { + editor.undoManager.transact(function () { + var element = Element.fromTag(forcedRootBlock); + setAll(element, Settings.getForcedRootBlockAttrs(editor)); + append(element, Element.fromTag('br')); + if (down) { + after(Element.fromDom(table), element); + } else { + before(Element.fromDom(table), element); + } + var rng = editor.dom.createRng(); + rng.setStart(element.dom(), 0); + rng.setEnd(element.dom(), 0); + moveToRange(editor, rng); + }); + } else { + moveToRange(editor, pos.toRange()); + } + }; + var moveCaret = function (editor, down, pos) { + var table = down ? getTable(true, pos) : getTable(false, pos); + var last = down === false; + table.fold(function () { + return moveToRange(editor, pos.toRange()); + }, function (table) { + return CaretFinder.positionIn(last, editor.getBody()).filter(function (lastPos) { + return lastPos.isEqual(pos); + }).fold(function () { + return moveToRange(editor, pos.toRange()); + }, function (_) { + return renderBlock(down, editor, table, pos); + }); + }); + }; + var navigateVertically = function (editor, down, table, td) { + var rng = editor.selection.getRng(); + var pos = CaretPosition$1.fromRangeStart(rng); + var root = editor.getBody(); + if (!down && isAtFirstTableCellLine(td, pos)) { + var newPos = getClosestAbovePosition(root, table, pos); + moveCaret(editor, down, newPos); + return true; + } else if (down && isAtLastTableCellLine(td, pos)) { + var newPos = getClosestBelowPosition(root, table, pos); + moveCaret(editor, down, newPos); + return true; + } else { + return false; + } + }; + var moveH$1 = function (editor, forward) { + return function () { + return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) { + return Option.from(editor.dom.getParent(td, 'table')).map(function (table) { + return navigateHorizontally(editor, forward, table); + }); + }).getOr(false); + }; + }; + var moveV$1 = function (editor, forward) { + return function () { + return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) { + return Option.from(editor.dom.getParent(td, 'table')).map(function (table) { + return navigateVertically(editor, forward, table, td); + }); + }).getOr(false); + }; + }; + + var isTarget = function (node) { + return contains(['figcaption'], name(node)); + }; + var rangeBefore = function (target) { + var rng = domGlobals.document.createRange(); + rng.setStartBefore(target.dom()); + rng.setEndBefore(target.dom()); + return rng; + }; + var insertElement = function (root, elm, forward) { + if (forward) { + append(root, elm); + } else { + prepend(root, elm); + } + }; + var insertBr = function (root, forward) { + var br = Element.fromTag('br'); + insertElement(root, br, forward); + return rangeBefore(br); + }; + var insertBlock$1 = function (root, forward, blockName, attrs) { + var block = Element.fromTag(blockName); + var br = Element.fromTag('br'); + setAll(block, attrs); + append(block, br); + insertElement(root, block, forward); + return rangeBefore(br); + }; + var insertEmptyLine = function (root, rootBlockName, attrs, forward) { + if (rootBlockName === '') { + return insertBr(root, forward); + } else { + return insertBlock$1(root, forward, rootBlockName, attrs); + } + }; + var getClosestTargetBlock = function (pos, root) { + var isRoot = curry(eq, root); + return closest(Element.fromDom(pos.container()), isBlock, isRoot).filter(isTarget); + }; + var isAtFirstOrLastLine = function (root, forward, pos) { + return forward ? isAtLastLine(root.dom(), pos) : isAtFirstLine(root.dom(), pos); + }; + var moveCaretToNewEmptyLine = function (editor, forward) { + var root = Element.fromDom(editor.getBody()); + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var rootBlock = Settings.getForcedRootBlock(editor); + var rootBlockAttrs = Settings.getForcedRootBlockAttrs(editor); + return getClosestTargetBlock(pos, root).exists(function () { + if (isAtFirstOrLastLine(root, forward, pos)) { + var rng = insertEmptyLine(root, rootBlock, rootBlockAttrs, forward); + editor.selection.setRng(rng); + return true; + } else { + return false; + } + }); + }; + var moveV$2 = function (editor, forward) { + return function () { + if (editor.selection.isCollapsed()) { + return moveCaretToNewEmptyLine(editor, forward); + } else { + return false; + } + }; + }; + + var defaultPatterns = function (patterns) { + return map(patterns, function (pattern) { + return __assign({ + shiftKey: false, + altKey: false, + ctrlKey: false, + metaKey: false, + keyCode: 0, + action: noop + }, pattern); + }); + }; + var matchesEvent = function (pattern, evt) { + return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey; + }; + var match$1 = function (patterns, evt) { + return bind(defaultPatterns(patterns), function (pattern) { + return matchesEvent(pattern, evt) ? [pattern] : []; + }); + }; + var action = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return f.apply(null, args); + }; + }; + var execute = function (patterns, evt) { + return find(match$1(patterns, evt), function (pattern) { + return pattern.action(); + }); + }; + var MatchKeys = { + match: match$1, + action: action, + execute: execute + }; + + var executeKeydownOverride = function (editor, caret, evt) { + var os = detect$3().os; + MatchKeys.execute([ + { + keyCode: VK.RIGHT, + action: moveH(editor, true) + }, + { + keyCode: VK.LEFT, + action: moveH(editor, false) + }, + { + keyCode: VK.UP, + action: moveV(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV(editor, true) + }, + { + keyCode: VK.RIGHT, + action: moveH$1(editor, true) + }, + { + keyCode: VK.LEFT, + action: moveH$1(editor, false) + }, + { + keyCode: VK.UP, + action: moveV$1(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV$1(editor, true) + }, + { + keyCode: VK.RIGHT, + action: BoundarySelection.move(editor, caret, true) + }, + { + keyCode: VK.LEFT, + action: BoundarySelection.move(editor, caret, false) + }, + { + keyCode: VK.RIGHT, + ctrlKey: !os.isOSX(), + altKey: os.isOSX(), + action: BoundarySelection.moveNextWord(editor, caret) + }, + { + keyCode: VK.LEFT, + ctrlKey: !os.isOSX(), + altKey: os.isOSX(), + action: BoundarySelection.movePrevWord(editor, caret) + }, + { + keyCode: VK.UP, + action: moveV$2(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV$2(editor, true) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$9 = function (editor, caret) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride(editor, caret, evt); + } + }); + }; + var ArrowKeys = { setup: setup$9 }; + + var isBeforeRoot = function (rootNode) { + return function (elm) { + return eq(rootNode, Element.fromDom(elm.dom().parentNode)); + }; + }; + var getParentBlock$1 = function (rootNode, elm) { + return contains$2(rootNode, elm) ? closest(elm, function (element) { + return isTextBlock(element) || isListItem(element); + }, isBeforeRoot(rootNode)) : Option.none(); + }; + var placeCaretInEmptyBody = function (editor) { + var body = editor.getBody(); + var node = body.firstChild && editor.dom.isBlock(body.firstChild) ? body.firstChild : body; + editor.selection.setCursorLocation(node, 0); + }; + var paddEmptyBody = function (editor) { + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + placeCaretInEmptyBody(editor); + } + }; + var willDeleteLastPositionInElement = function (forward, fromPos, elm) { + return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) { + var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos); + var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos); + var normalizedFromPos = InlineUtils.normalizePosition(false, fromPos); + if (forward) { + return CaretFinder.nextPosition(elm, normalizedFromPos).map(function (nextPos) { + return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos); + }).getOr(false); + } else { + return CaretFinder.prevPosition(elm, normalizedFromPos).map(function (prevPos) { + return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos); + }).getOr(false); + } + }).getOr(true); + }; + var DeleteUtils = { + getParentBlock: getParentBlock$1, + paddEmptyBody: paddEmptyBody, + willDeleteLastPositionInElement: willDeleteLastPositionInElement + }; + + var blockPosition = function (block, position) { + return { + block: constant(block), + position: constant(position) + }; + }; + var blockBoundary = function (from, to) { + return { + from: constant(from), + to: constant(to) + }; + }; + var getBlockPosition = function (rootNode, pos) { + var rootElm = Element.fromDom(rootNode); + var containerElm = Element.fromDom(pos.container()); + return DeleteUtils.getParentBlock(rootElm, containerElm).map(function (block) { + return blockPosition(block, pos); + }); + }; + var isDifferentBlocks = function (blockBoundary) { + return eq(blockBoundary.from().block(), blockBoundary.to().block()) === false; + }; + var hasSameParent = function (blockBoundary) { + return parent(blockBoundary.from().block()).bind(function (parent1) { + return parent(blockBoundary.to().block()).filter(function (parent2) { + return eq(parent1, parent2); + }); + }).isSome(); + }; + var isEditable = function (blockBoundary) { + return NodeType.isContentEditableFalse(blockBoundary.from().block().dom()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block().dom()) === false; + }; + var skipLastBr = function (rootNode, forward, blockPosition) { + if (NodeType.isBr(blockPosition.position().getNode()) && Empty.isEmpty(blockPosition.block()) === false) { + return CaretFinder.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) { + if (lastPositionInBlock.isEqual(blockPosition.position())) { + return CaretFinder.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) { + return getBlockPosition(rootNode, to); + }); + } else { + return Option.some(blockPosition); + } + }).getOr(blockPosition); + } else { + return blockPosition; + } + }; + var readFromRange = function (rootNode, forward, rng) { + var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng)); + var toBlockPos = fromBlockPos.bind(function (blockPos) { + return CaretFinder.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) { + return getBlockPosition(rootNode, to).map(function (blockPos) { + return skipLastBr(rootNode, forward, blockPos); + }); + }); + }); + return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(function (blockBoundary) { + return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary); + }); + }; + var read$3 = function (rootNode, forward, rng) { + return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none(); + }; + var BlockMergeBoundary = { read: read$3 }; + + var getChildrenUntilBlockBoundary = function (block) { + var children$1 = children(block); + return findIndex(children$1, isBlock).fold(function () { + return children$1; + }, function (index) { + return children$1.slice(0, index); + }); + }; + var extractChildren = function (block) { + var children = getChildrenUntilBlockBoundary(block); + each(children, remove); + return children; + }; + var removeEmptyRoot = function (rootNode, block) { + var parents = Parents.parentsAndSelf(block, rootNode); + return find(parents.reverse(), function (element) { + return Empty.isEmpty(element); + }).each(remove); + }; + var isEmptyBefore = function (el) { + return filter(prevSiblings(el), function (el) { + return !Empty.isEmpty(el); + }).length === 0; + }; + var nestedBlockMerge = function (rootNode, fromBlock, toBlock, insertionPoint) { + if (Empty.isEmpty(toBlock)) { + PaddingBr.fillWithPaddingBr(toBlock); + return CaretFinder.firstPositionIn(toBlock.dom()); + } + if (isEmptyBefore(insertionPoint) && Empty.isEmpty(fromBlock)) { + before(insertionPoint, Element.fromTag('br')); + } + var position = CaretFinder.prevPosition(toBlock.dom(), CaretPosition$1.before(insertionPoint.dom())); + each(extractChildren(fromBlock), function (child) { + before(insertionPoint, child); + }); + removeEmptyRoot(rootNode, fromBlock); + return position; + }; + var sidelongBlockMerge = function (rootNode, fromBlock, toBlock) { + if (Empty.isEmpty(toBlock)) { + remove(toBlock); + if (Empty.isEmpty(fromBlock)) { + PaddingBr.fillWithPaddingBr(fromBlock); + } + return CaretFinder.firstPositionIn(fromBlock.dom()); + } + var position = CaretFinder.lastPositionIn(toBlock.dom()); + each(extractChildren(fromBlock), function (child) { + append(toBlock, child); + }); + removeEmptyRoot(rootNode, fromBlock); + return position; + }; + var findInsertionPoint = function (toBlock, block) { + var parentsAndSelf = Parents.parentsAndSelf(block, toBlock); + return Option.from(parentsAndSelf[parentsAndSelf.length - 1]); + }; + var getInsertionPoint = function (fromBlock, toBlock) { + return contains$2(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Option.none(); + }; + var trimBr = function (first, block) { + CaretFinder.positionIn(first, block.dom()).map(function (position) { + return position.getNode(); + }).map(Element.fromDom).filter(isBr$1).each(remove); + }; + var mergeBlockInto = function (rootNode, fromBlock, toBlock) { + trimBr(true, fromBlock); + trimBr(false, toBlock); + return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock), curry(nestedBlockMerge, rootNode, fromBlock, toBlock)); + }; + var mergeBlocks = function (rootNode, forward, block1, block2) { + return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2); + }; + var MergeBlocks = { mergeBlocks: mergeBlocks }; + + var backspaceDelete = function (editor, forward) { + var rootNode = Element.fromDom(editor.getBody()); + var position = BlockMergeBoundary.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) { + return MergeBlocks.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block()); + }); + position.each(function (pos) { + editor.selection.setRng(pos.toRange()); + }); + return position.isSome(); + }; + var BlockBoundaryDelete = { backspaceDelete: backspaceDelete }; + + var deleteRangeMergeBlocks = function (rootNode, selection) { + var rng = selection.getRng(); + return lift2(DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)), DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer)), function (block1, block2) { + if (eq(block1, block2) === false) { + rng.deleteContents(); + MergeBlocks.mergeBlocks(rootNode, true, block1, block2).each(function (pos) { + selection.setRng(pos.toRange()); + }); + return true; + } else { + return false; + } + }).getOr(false); + }; + var isRawNodeInTable = function (root, rawNode) { + var node = Element.fromDom(rawNode); + var isRoot = curry(eq, root); + return ancestor(node, isTableCell, isRoot).isSome(); + }; + var isSelectionInTable = function (root, rng) { + return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer); + }; + var isEverythingSelected = function (root, rng) { + var noPrevious = CaretFinder.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone(); + var noNext = CaretFinder.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone(); + return !isSelectionInTable(root, rng) && noPrevious && noNext; + }; + var emptyEditor = function (editor) { + editor.setContent(''); + editor.selection.setCursorLocation(); + return true; + }; + var deleteRange = function (editor) { + var rootNode = Element.fromDom(editor.getBody()); + var rng = editor.selection.getRng(); + return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection); + }; + var backspaceDelete$1 = function (editor, forward) { + return editor.selection.isCollapsed() ? false : deleteRange(editor); + }; + var BlockRangeDelete = { backspaceDelete: backspaceDelete$1 }; + + var isBr$5 = function (pos) { + return getElementFromPosition(pos).exists(isBr$1); + }; + var findBr = function (forward, root, pos) { + var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + var scope = head(parentBlocks).getOr(root); + return CaretFinder.fromPosition(forward, scope.dom(), pos).filter(isBr$5); + }; + var isBeforeBr = function (root, pos) { + return getElementFromPosition(pos).exists(isBr$1) || findBr(true, root, pos).isSome(); + }; + var isAfterBr = function (root, pos) { + return getElementFromPrevPosition(pos).exists(isBr$1) || findBr(false, root, pos).isSome(); + }; + var findPreviousBr = curry(findBr, false); + var findNextBr = curry(findBr, true); + + var isCompoundElement = function (node) { + return isTableCell(Element.fromDom(node)) || isListItem(Element.fromDom(node)); + }; + var DeleteAction = Adt.generate([ + { remove: ['element'] }, + { moveToElement: ['element'] }, + { moveToPosition: ['position'] } + ]); + var isAtContentEditableBlockCaret = function (forward, from) { + var elm = from.getNode(forward === false); + var caretLocation = forward ? 'after' : 'before'; + return NodeType.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation; + }; + var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) { + var inSameBlock = function (elm) { + return isInline(Element.fromDom(elm)) && !isInSameBlock(from, to, root); + }; + return getRelativeCefElm(!forward, from).fold(function () { + return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock); + }, inSameBlock); + }; + var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) { + var toCefElm = to.getNode(forward === false); + return DeleteUtils.getParentBlock(Element.fromDom(root), Element.fromDom(from.getNode())).map(function (blockElm) { + return Empty.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm); + }).orThunk(function () { + return Option.some(DeleteAction.moveToElement(toCefElm)); + }); + }; + var findCefPosition = function (root, forward, from) { + return CaretFinder.fromPosition(forward, root, from).bind(function (to) { + if (isCompoundElement(to.getNode())) { + return Option.none(); + } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) { + return Option.none(); + } else if (forward && NodeType.isContentEditableFalse(to.getNode())) { + return deleteEmptyBlockOrMoveToCef(root, forward, from, to); + } else if (forward === false && NodeType.isContentEditableFalse(to.getNode(true))) { + return deleteEmptyBlockOrMoveToCef(root, forward, from, to); + } else if (forward && isAfterContentEditableFalse(from)) { + return Option.some(DeleteAction.moveToPosition(to)); + } else if (forward === false && isBeforeContentEditableFalse(from)) { + return Option.some(DeleteAction.moveToPosition(to)); + } else { + return Option.none(); + } + }); + }; + var getContentEditableBlockAction = function (forward, elm) { + if (forward && NodeType.isContentEditableFalse(elm.nextSibling)) { + return Option.some(DeleteAction.moveToElement(elm.nextSibling)); + } else if (forward === false && NodeType.isContentEditableFalse(elm.previousSibling)) { + return Option.some(DeleteAction.moveToElement(elm.previousSibling)); + } else { + return Option.none(); + } + }; + var skipMoveToActionFromInlineCefToContent = function (root, from, deleteAction) { + return deleteAction.fold(function (elm) { + return Option.some(DeleteAction.remove(elm)); + }, function (elm) { + return Option.some(DeleteAction.moveToElement(elm)); + }, function (to) { + if (isInSameBlock(from, to, root)) { + return Option.none(); + } else { + return Option.some(DeleteAction.moveToPosition(to)); + } + }); + }; + var getContentEditableAction = function (root, forward, from) { + if (isAtContentEditableBlockCaret(forward, from)) { + return getContentEditableBlockAction(forward, from.getNode(forward === false)).fold(function () { + return findCefPosition(root, forward, from); + }, Option.some); + } else { + return findCefPosition(root, forward, from).bind(function (deleteAction) { + return skipMoveToActionFromInlineCefToContent(root, from, deleteAction); + }); + } + }; + var read$4 = function (root, forward, rng) { + var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng); + var from = CaretPosition$1.fromRangeStart(normalizedRange); + var rootElement = Element.fromDom(root); + if (forward === false && isAfterContentEditableFalse(from)) { + return Option.some(DeleteAction.remove(from.getNode(true))); + } else if (forward && isBeforeContentEditableFalse(from)) { + return Option.some(DeleteAction.remove(from.getNode())); + } else if (forward === false && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from)) { + return findPreviousBr(rootElement, from).map(function (br) { + return DeleteAction.remove(br.getNode()); + }); + } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr(rootElement, from)) { + return findNextBr(rootElement, from).map(function (br) { + return DeleteAction.remove(br.getNode()); + }); + } else { + return getContentEditableAction(root, forward, from); + } + }; + + var deleteElement$1 = function (editor, forward) { + return function (element) { + editor._selectionOverrides.hideFakeCaret(); + DeleteElement.deleteElement(editor, forward, Element.fromDom(element)); + return true; + }; + }; + var moveToElement = function (editor, forward) { + return function (element) { + var pos = forward ? CaretPosition$1.before(element) : CaretPosition$1.after(element); + editor.selection.setRng(pos.toRange()); + return true; + }; + }; + var moveToPosition = function (editor) { + return function (pos) { + editor.selection.setRng(pos.toRange()); + return true; + }; + }; + var getAncestorCe = function (editor, node) { + return Option.from(getContentEditableRoot$1(editor.getBody(), node)); + }; + var backspaceDeleteCaret = function (editor, forward) { + var selectedNode = editor.selection.getNode(); + return getAncestorCe(editor, selectedNode).filter(NodeType.isContentEditableFalse).fold(function () { + var result = read$4(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) { + return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor)); + }); + return result.getOr(false); + }, function () { + return true; + }); + }; + var deleteOffscreenSelection = function (rootElement) { + each(descendants$1(rootElement, '.mce-offscreen-selection'), remove); + }; + var backspaceDeleteRange = function (editor, forward) { + var selectedNode = editor.selection.getNode(); + if (NodeType.isContentEditableFalse(selectedNode)) { + var hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(NodeType.isContentEditableFalse); + return hasCefAncestor.fold(function () { + deleteOffscreenSelection(Element.fromDom(editor.getBody())); + DeleteElement.deleteElement(editor, forward, Element.fromDom(editor.selection.getNode())); + DeleteUtils.paddEmptyBody(editor); + return true; + }, function () { + return true; + }); + } + return false; + }; + var getContentEditableRoot$1 = function (root, node) { + while (node && node !== root) { + if (NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var paddEmptyElement = function (editor) { + var br; + var ceRoot = getContentEditableRoot$1(editor.getBody(), editor.selection.getNode()); + if (NodeType.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) { + br = editor.dom.create('br', { 'data-mce-bogus': '1' }); + editor.dom.setHTML(ceRoot, ''); + ceRoot.appendChild(br); + editor.selection.setRng(CaretPosition$1.before(br).toRange()); + } + return true; + }; + var backspaceDelete$2 = function (editor, forward) { + if (editor.selection.isCollapsed()) { + return backspaceDeleteCaret(editor, forward); + } else { + return backspaceDeleteRange(editor, forward); + } + }; + var CefDelete = { + backspaceDelete: backspaceDelete$2, + paddEmptyElement: paddEmptyElement + }; + + var trimEmptyTextNode$1 = function (dom, node) { + if (NodeType.isText(node) && node.data.length === 0) { + dom.remove(node); + } + }; + var deleteContentAndShowCaret = function (editor, range, node, direction, forward, peekCaretPosition) { + var caretRange = showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true); + if (range.collapsed) { + var deleteRange = range.cloneRange(); + if (forward) { + deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset); + } else { + deleteRange.setStart(caretRange.endContainer, caretRange.endOffset); + } + deleteRange.deleteContents(); + } else { + range.deleteContents(); + } + editor.selection.setRng(caretRange); + trimEmptyTextNode$1(editor.dom, node); + return true; + }; + var deleteCefBoundaryText = function (editor, forward) { + var range = editor.selection.getRng(); + if (!NodeType.isText(range.commonAncestorContainer)) { + return false; + } + var direction = forward ? HDirection.Forwards : HDirection.Backwards; + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition; + var isBeforeContentEditableFalseFn = forward ? isBeforeContentEditableFalse : isAfterContentEditableFalse; + var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + var nextCaretPosition = InlineUtils.normalizePosition(forward, getNextPosFn(caretPosition)); + if (!nextCaretPosition || !isMoveInsideSameBlock(caretPosition, nextCaretPosition)) { + return false; + } else if (isBeforeContentEditableFalseFn(nextCaretPosition)) { + return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, nextCaretPosition); + } + var peekCaretPosition = getNextPosFn(nextCaretPosition); + if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) { + if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) { + return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition); + } + } + return false; + }; + var backspaceDelete$3 = function (editor, forward) { + return deleteCefBoundaryText(editor, forward); + }; + var CefBoundaryDelete = { backspaceDelete: backspaceDelete$3 }; + + var isFeatureEnabled$1 = function (editor) { + return editor.settings.inline_boundaries !== false; + }; + var rangeFromPositions = function (from, to) { + var range = domGlobals.document.createRange(); + range.setStart(from.container(), from.offset()); + range.setEnd(to.container(), to.offset()); + return range; + }; + var hasOnlyTwoOrLessPositionsLeft = function (elm) { + return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) { + var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos); + var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos); + return CaretFinder.nextPosition(elm, normalizedFirstPos).map(function (pos) { + return pos.isEqual(normalizedLastPos); + }).getOr(true); + }).getOr(true); + }; + var setCaretLocation = function (editor, caret) { + return function (location) { + return BoundaryCaret.renderCaret(caret, location).map(function (pos) { + BoundarySelection.setCaretPosition(editor, pos); + return true; + }).getOr(false); + }; + }; + var deleteFromTo = function (editor, caret, from, to) { + var rootNode = editor.getBody(); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + editor.undoManager.ignore(function () { + editor.selection.setRng(rangeFromPositions(from, to)); + editor.execCommand('Delete'); + BoundaryLocation.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map(BoundaryLocation.inside).map(setCaretLocation(editor, caret)); + }); + editor.nodeChanged(); + }; + var rescope$1 = function (rootNode, node) { + var parentBlock = getParentBlock(node, rootNode); + return parentBlock ? parentBlock : rootNode; + }; + var backspaceDeleteCollapsed = function (editor, caret, forward, from) { + var rootNode = rescope$1(editor.getBody(), from.container()); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var fromLocation = BoundaryLocation.readLocation(isInlineTarget, rootNode, from); + return fromLocation.bind(function (location) { + if (forward) { + return location.fold(constant(Option.some(BoundaryLocation.inside(location))), Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none); + } else { + return location.fold(Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none, constant(Option.some(BoundaryLocation.inside(location)))); + } + }).map(setCaretLocation(editor, caret)).getOrThunk(function () { + var toPosition = CaretFinder.navigate(forward, rootNode, from); + var toLocation = toPosition.bind(function (pos) { + return BoundaryLocation.readLocation(isInlineTarget, rootNode, pos); + }); + if (fromLocation.isSome() && toLocation.isSome()) { + return InlineUtils.findRootInline(isInlineTarget, rootNode, from).map(function (elm) { + if (hasOnlyTwoOrLessPositionsLeft(elm)) { + DeleteElement.deleteElement(editor, forward, Element.fromDom(elm)); + return true; + } else { + return false; + } + }).getOr(false); + } else { + return toLocation.bind(function (_) { + return toPosition.map(function (to) { + if (forward) { + deleteFromTo(editor, caret, from, to); + } else { + deleteFromTo(editor, caret, to, from); + } + return true; + }); + }).getOr(false); + } + }); + }; + var backspaceDelete$4 = function (editor, caret, forward) { + if (editor.selection.isCollapsed() && isFeatureEnabled$1(editor)) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return backspaceDeleteCollapsed(editor, caret, forward, from); + } + return false; + }; + var BoundaryDelete = { backspaceDelete: backspaceDelete$4 }; + + var getParentInlines = function (rootElm, startElm) { + var parents = Parents.parentsAndSelf(startElm, rootElm); + return findIndex(parents, isBlock).fold(constant(parents), function (index) { + return parents.slice(0, index); + }); + }; + var hasOnlyOneChild = function (elm) { + return children(elm).length === 1; + }; + var deleteLastPosition = function (forward, editor, target, parentInlines) { + var isFormatElement$1 = curry(isFormatElement, editor); + var formatNodes = map(filter(parentInlines, isFormatElement$1), function (elm) { + return elm.dom(); + }); + if (formatNodes.length === 0) { + DeleteElement.deleteElement(editor, forward, target); + } else { + var pos = replaceWithCaretFormat(target.dom(), formatNodes); + editor.selection.setRng(pos.toRange()); + } + }; + var deleteCaret = function (editor, forward) { + var rootElm = Element.fromDom(editor.getBody()); + var startElm = Element.fromDom(editor.selection.getStart()); + var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild); + return last(parentInlines).map(function (target) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + if (DeleteUtils.willDeleteLastPositionInElement(forward, fromPos, target.dom()) && !isEmptyCaretFormatElement(target)) { + deleteLastPosition(forward, editor, target, parentInlines); + return true; + } else { + return false; + } + }).getOr(false); + }; + var backspaceDelete$5 = function (editor, forward) { + return editor.selection.isCollapsed() ? deleteCaret(editor, forward) : false; + }; + var InlineFormatDelete = { backspaceDelete: backspaceDelete$5 }; + + var tableCellRng = function (start, end) { + return { + start: constant(start), + end: constant(end) + }; + }; + var tableSelection = function (rng, table, cells) { + return { + rng: constant(rng), + table: constant(table), + cells: constant(cells) + }; + }; + var deleteAction = Adt.generate([ + { removeTable: ['element'] }, + { emptyCells: ['cells'] } + ]); + var isRootFromElement = function (root) { + return function (cur) { + return eq(root, cur); + }; + }; + var getClosestCell$1 = function (container, isRoot) { + return closest$1(Element.fromDom(container), 'td,th', isRoot); + }; + var getClosestTable = function (cell, isRoot) { + return ancestor$1(cell, 'table', isRoot); + }; + var isExpandedCellRng = function (cellRng) { + return eq(cellRng.start(), cellRng.end()) === false; + }; + var getTableFromCellRng = function (cellRng, isRoot) { + return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) { + return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) { + return someIf(eq(startParentTable, endParentTable), startParentTable); + }); + }); + }; + var getTableCells = function (table) { + return descendants$1(table, 'td,th'); + }; + var getCellRangeFromStartTable = function (cellRng, isRoot) { + return getClosestTable(cellRng.start(), isRoot).bind(function (table) { + return last(getTableCells(table)).map(function (endCell) { + return tableCellRng(cellRng.start(), endCell); + }); + }); + }; + var partialSelection = function (isRoot, rng) { + var startCell = getClosestCell$1(rng.startContainer, isRoot); + var endCell = getClosestCell$1(rng.endContainer, isRoot); + return rng.collapsed ? Option.none() : lift2(startCell, endCell, tableCellRng).fold(function () { + return startCell.fold(function () { + return endCell.bind(function (endCell) { + return getClosestTable(endCell, isRoot).bind(function (table) { + return head(getTableCells(table)).map(function (startCell) { + return tableCellRng(startCell, endCell); + }); + }); + }); + }, function (startCell) { + return getClosestTable(startCell, isRoot).bind(function (table) { + return last(getTableCells(table)).map(function (endCell) { + return tableCellRng(startCell, endCell); + }); + }); + }); + }, function (cellRng) { + return isWithinSameTable(isRoot, cellRng) ? Option.none() : getCellRangeFromStartTable(cellRng, isRoot); + }); + }; + var isWithinSameTable = function (isRoot, cellRng) { + return getTableFromCellRng(cellRng, isRoot).isSome(); + }; + var getCellRng = function (rng, isRoot) { + var startCell = getClosestCell$1(rng.startContainer, isRoot); + var endCell = getClosestCell$1(rng.endContainer, isRoot); + return lift2(startCell, endCell, tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) { + return isWithinSameTable(isRoot, cellRng); + }).orThunk(function () { + return partialSelection(isRoot, rng); + }); + }; + var getTableSelectionFromCellRng = function (cellRng, isRoot) { + return getTableFromCellRng(cellRng, isRoot).map(function (table) { + return tableSelection(cellRng, table, getTableCells(table)); + }); + }; + var getTableSelectionFromRng = function (root, rng) { + var isRoot = isRootFromElement(root); + return getCellRng(rng, isRoot).bind(function (cellRng) { + return getTableSelectionFromCellRng(cellRng, isRoot); + }); + }; + var getCellIndex = function (cells, cell) { + return findIndex(cells, function (x) { + return eq(x, cell); + }); + }; + var getSelectedCells = function (tableSelection) { + return lift2(getCellIndex(tableSelection.cells(), tableSelection.rng().start()), getCellIndex(tableSelection.cells(), tableSelection.rng().end()), function (startIndex, endIndex) { + return tableSelection.cells().slice(startIndex, endIndex + 1); + }); + }; + var getAction = function (tableSelection) { + return getSelectedCells(tableSelection).map(function (selected) { + var cells = tableSelection.cells(); + return selected.length === cells.length ? deleteAction.removeTable(tableSelection.table()) : deleteAction.emptyCells(selected); + }); + }; + var getActionFromRange = function (root, rng) { + return getTableSelectionFromRng(root, rng).bind(getAction); + }; + + var emptyCells = function (editor, cells) { + each(cells, PaddingBr.fillWithPaddingBr); + editor.selection.setCursorLocation(cells[0].dom(), 0); + return true; + }; + var deleteTableElement = function (editor, table) { + DeleteElement.deleteElement(editor, false, table); + return true; + }; + var deleteCellRange = function (editor, rootElm, rng) { + return getActionFromRange(rootElm, rng).map(function (action) { + return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor)); + }); + }; + var deleteCaptionRange = function (editor, caption) { + return emptyElement(editor, caption); + }; + var deleteTableRange = function (editor, rootElm, rng, startElm) { + return getParentCaption(rootElm, startElm).fold(function () { + return deleteCellRange(editor, rootElm, rng); + }, function (caption) { + return deleteCaptionRange(editor, caption); + }).getOr(false); + }; + var deleteRange$1 = function (editor, startElm) { + var rootNode = Element.fromDom(editor.getBody()); + var rng = editor.selection.getRng(); + var selectedCells = TableCellSelection.getCellsFromEditor(editor); + return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm); + }; + var getParentCell = function (rootElm, elm) { + return find(Parents.parentsAndSelf(elm, rootElm), isTableCell); + }; + var getParentCaption = function (rootElm, elm) { + return find(Parents.parentsAndSelf(elm, rootElm), function (elm) { + return name(elm) === 'caption'; + }); + }; + var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) { + return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) { + return getParentCell(rootElm, Element.fromDom(to.getNode())).map(function (toCell) { + return eq(toCell, fromCell) === false; + }); + }); + }; + var emptyElement = function (editor, elm) { + PaddingBr.fillWithPaddingBr(elm); + editor.selection.setCursorLocation(elm.dom(), 0); + return Option.some(true); + }; + var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) { + return CaretFinder.firstPositionIn(fromCaption.dom()).bind(function (first) { + return CaretFinder.lastPositionIn(fromCaption.dom()).map(function (last) { + return forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first); + }); + }).getOr(true); + }; + var emptyCaretCaption = function (editor, elm) { + return emptyElement(editor, elm); + }; + var validateCaretCaption = function (rootElm, fromCaption, to) { + return getParentCaption(rootElm, Element.fromDom(to.getNode())).map(function (toCaption) { + return eq(toCaption, fromCaption) === false; + }); + }; + var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) { + return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) { + return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to); + }).or(Option.some(true)); + }; + var deleteCaretCells = function (editor, forward, rootElm, startElm) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return getParentCell(rootElm, startElm).bind(function (fromCell) { + return Empty.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from); + }).getOr(false); + }; + var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return Empty.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from); + }; + var isNearTable = function (forward, pos) { + return forward ? isBeforeTable(pos) : isAfterTable(pos); + }; + var isBeforeOrAfterTable = function (editor, forward) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return isNearTable(forward, fromPos) || CaretFinder.fromPosition(forward, editor.getBody(), fromPos).map(function (pos) { + return isNearTable(forward, pos); + }).getOr(false); + }; + var deleteCaret$1 = function (editor, forward, startElm) { + var rootElm = Element.fromDom(editor.getBody()); + return getParentCaption(rootElm, startElm).fold(function () { + return deleteCaretCells(editor, forward, rootElm, startElm) || isBeforeOrAfterTable(editor, forward); + }, function (fromCaption) { + return deleteCaretCaption(editor, forward, rootElm, fromCaption).getOr(false); + }); + }; + var backspaceDelete$6 = function (editor, forward) { + var startElm = Element.fromDom(editor.selection.getStart(true)); + var cells = TableCellSelection.getCellsFromEditor(editor); + return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$1(editor, forward, startElm) : deleteRange$1(editor, startElm); + }; + var TableDelete = { backspaceDelete: backspaceDelete$6 }; + + var deleteCaret$2 = function (editor, forward) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return CaretFinder.fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) { + return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos); + }).bind(function (pos) { + return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, pos)); + }).map(function (elm) { + editor.selection.select(elm); + return true; + }).getOr(false); + }; + var backspaceDelete$7 = function (editor, forward) { + return editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : false; + }; + var PageBreakDelete = { backspaceDelete: backspaceDelete$7 }; + + var isEditable$1 = function (target) { + return closest(target, function (elm) { + return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom()); + }).exists(function (elm) { + return NodeType.isContentEditableTrue(elm.dom()); + }); + }; + var parseIndentValue = function (value) { + var number = parseInt(value, 10); + return isNaN(number) ? 0 : number; + }; + var getIndentStyleName = function (useMargin, element) { + var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding'; + var suffix = get$4(element, 'direction') === 'rtl' ? '-right' : '-left'; + return indentStyleName + suffix; + }; + var indentElement = function (dom, command, useMargin, value, unit, element) { + var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element)); + if (command === 'outdent') { + var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value); + dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : ''); + } else { + var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit; + dom.setStyle(element, indentStyleName, styleValue); + } + }; + var validateBlocks = function (editor, blocks) { + return forall(blocks, function (block) { + var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block); + var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0); + var contentEditable = editor.dom.getContentEditable(block.dom()); + return contentEditable !== 'false' && intentValue > 0; + }); + }; + var canOutdent = function (editor) { + var blocks = getBlocksToIndent(editor); + return !editor.mode.isReadOnly() && (blocks.length > 1 || validateBlocks(editor, blocks)); + }; + var isListComponent = function (el) { + return isList(el) || isListItem(el); + }; + var parentIsListComponent = function (el) { + return parent(el).map(isListComponent).getOr(false); + }; + var getBlocksToIndent = function (editor) { + return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) { + return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el); + }); + }; + var handle = function (editor, command) { + var dom = editor.dom, selection = editor.selection, formatter = editor.formatter; + var indentation = Settings.getIndentation(editor); + var indentUnit = /[a-z%]+$/i.exec(indentation)[0]; + var indentValue = parseInt(indentation, 10); + var useMargin = Settings.shouldIndentUseMargin(editor); + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) { + if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) { + formatter.apply('div'); + } + } + each(getBlocksToIndent(editor), function (block) { + indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom()); + }); + }; + + var navigateIgnoreEmptyTextNodes = function (forward, root, from) { + return CaretFinder.navigateIgnore(forward, root, from, isEmptyText); + }; + var getClosestBlock = function (root, pos) { + return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + }; + var isAtBeforeAfterBlockBoundary = function (forward, root, pos) { + return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) { + return getClosestBlock(root, pos).fold(function () { + return isInSameBlock(newPos, pos, root.dom()) === false; + }, function (fromBlock) { + return isInSameBlock(newPos, pos, root.dom()) === false && contains$2(fromBlock, Element.fromDom(newPos.container())); + }); + }); + }; + var isAtBlockBoundary = function (forward, root, pos) { + return getClosestBlock(root, pos).fold(function () { + return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) { + return isInSameBlock(newPos, pos, root.dom()) === false; + }); + }, function (parent) { + return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone(); + }); + }; + var isAtStartOfBlock = curry(isAtBlockBoundary, false); + var isAtEndOfBlock = curry(isAtBlockBoundary, true); + var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false); + var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true); + + var backspaceDelete$8 = function (editor, _caret, _forward) { + if (editor.selection.isCollapsed() && canOutdent(editor)) { + var dom = editor.dom; + var rng = editor.selection.getRng(); + var pos = CaretPosition$1.fromRangeStart(rng); + var block = dom.getParent(rng.startContainer, dom.isBlock); + if (block !== null && isAtStartOfBlock(Element.fromDom(block), pos)) { + handle(editor, 'outdent'); + return true; + } + } + return false; + }; + var Outdent = { backspaceDelete: backspaceDelete$8 }; + + var executeKeydownOverride$1 = function (editor, caret, evt) { + MatchKeys.execute([ + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(Outdent.backspaceDelete, editor, false) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(TableDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(TableDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, true) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var executeKeyupOverride = function (editor, evt) { + MatchKeys.execute([ + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefDelete.paddEmptyElement, editor) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefDelete.paddEmptyElement, editor) + } + ], evt); + }; + var setup$a = function (editor, caret) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$1(editor, caret, evt); + } + }); + editor.on('keyup', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeyupOverride(editor, evt); + } + }); + }; + var DeleteBackspaceKeys = { setup: setup$a }; + + var firstNonWhiteSpaceNodeSibling = function (node) { + while (node) { + if (node.nodeType === 1 || node.nodeType === 3 && node.data && /[\r\n\s]/.test(node.data)) { + return node; + } + node = node.nextSibling; + } + }; + var moveToCaretPosition = function (editor, root) { + var node, rng, lastNode = root; + var dom = editor.dom; + var moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements(); + if (!root) { + return; + } + if (/^(LI|DT|DD)$/.test(root.nodeName)) { + var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild); + if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) { + root.insertBefore(dom.doc.createTextNode(nbsp), root.firstChild); + } + } + rng = dom.createRng(); + root.normalize(); + if (root.hasChildNodes()) { + var walker = new TreeWalker(root, root); + while (node = walker.current()) { + if (NodeType.isText(node)) { + rng.setStart(node, 0); + rng.setEnd(node, 0); + break; + } + if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) { + rng.setStartBefore(node); + rng.setEndBefore(node); + break; + } + lastNode = node; + node = walker.next(); + } + if (!node) { + rng.setStart(lastNode, 0); + rng.setEnd(lastNode, 0); + } + } else { + if (NodeType.isBr(root)) { + if (root.nextSibling && dom.isBlock(root.nextSibling)) { + rng.setStartBefore(root); + rng.setEndBefore(root); + } else { + rng.setStartAfter(root); + rng.setEndAfter(root); + } + } else { + rng.setStart(root, 0); + rng.setEnd(root, 0); + } + } + editor.selection.setRng(rng); + ScrollIntoView.scrollRangeIntoView(editor, rng); + }; + var getEditableRoot = function (dom, node) { + var root = dom.getRoot(); + var parent, editableRoot; + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== 'false') { + if (dom.getContentEditable(parent) === 'true') { + editableRoot = parent; + } + parent = parent.parentNode; + } + return parent !== root ? editableRoot : root; + }; + var getParentBlock$2 = function (editor) { + return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock)); + }; + var getParentBlockName = function (editor) { + return getParentBlock$2(editor).fold(constant(''), function (parentBlock) { + return parentBlock.nodeName.toUpperCase(); + }); + }; + var isListItemParentBlock = function (editor) { + return getParentBlock$2(editor).filter(function (elm) { + return isListItem(Element.fromDom(elm)); + }).isSome(); + }; + var NewLineUtils = { + moveToCaretPosition: moveToCaretPosition, + getEditableRoot: getEditableRoot, + getParentBlock: getParentBlock$2, + getParentBlockName: getParentBlockName, + isListItemParentBlock: isListItemParentBlock + }; + + var hasFirstChild = function (elm, name) { + return elm.firstChild && elm.firstChild.nodeName === name; + }; + var hasParent$1 = function (elm, parentName) { + return elm && elm.parentNode && elm.parentNode.nodeName === parentName; + }; + var isListBlock = function (elm) { + return elm && /^(OL|UL|LI)$/.test(elm.nodeName); + }; + var isNestedList = function (elm) { + return isListBlock(elm) && isListBlock(elm.parentNode); + }; + var getContainerBlock = function (containerBlock) { + var containerBlockParent = containerBlock.parentNode; + if (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) { + return containerBlockParent; + } + return containerBlock; + }; + var isFirstOrLastLi = function (containerBlock, parentBlock, first) { + var node = containerBlock[first ? 'firstChild' : 'lastChild']; + while (node) { + if (NodeType.isElement(node)) { + break; + } + node = node[first ? 'nextSibling' : 'previousSibling']; + } + return node === parentBlock; + }; + var insert = function (editor, createNewBlock, containerBlock, parentBlock, newBlockName) { + var dom = editor.dom; + var rng = editor.selection.getRng(); + if (containerBlock === editor.getBody()) { + return; + } + if (isNestedList(containerBlock)) { + newBlockName = 'LI'; + } + var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR'); + if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) { + if (hasParent$1(containerBlock, 'LI')) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + } else { + dom.replace(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) { + if (hasParent$1(containerBlock, 'LI')) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + newBlock.appendChild(dom.doc.createTextNode(' ')); + newBlock.appendChild(containerBlock); + } else { + containerBlock.parentNode.insertBefore(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + } else { + containerBlock = getContainerBlock(containerBlock); + var tmpRng = rng.cloneRange(); + tmpRng.setStartAfter(parentBlock); + tmpRng.setEndAfter(containerBlock); + var fragment = tmpRng.extractContents(); + if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) { + newBlock = fragment.firstChild; + dom.insertAfter(fragment, containerBlock); + } else { + dom.insertAfter(fragment, containerBlock); + dom.insertAfter(newBlock, containerBlock); + } + } + dom.remove(parentBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + }; + var InsertLi = { insert: insert }; + + var trimZwsp = function (fragment) { + each(descendants(Element.fromDom(fragment), isText), function (text) { + var rawNode = text.dom(); + rawNode.nodeValue = Zwsp.trim(rawNode.nodeValue); + }); + }; + var isEmptyAnchor = function (dom, elm) { + return elm && elm.nodeName === 'A' && dom.isEmpty(elm); + }; + var isTableCell$4 = function (node) { + return node && /^(TD|TH|CAPTION)$/.test(node.nodeName); + }; + var emptyBlock = function (elm) { + elm.innerHTML = '
'; + }; + var containerAndSiblingName = function (container, nodeName) { + return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName; + }; + var canSplitBlock = function (dom, node) { + return node && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true'; + }; + var trimInlineElementsOnLeftSideOfBlock = function (dom, nonEmptyElementsMap, block) { + var node = block; + var firstChilds = []; + var i; + if (!node) { + return; + } + while (node = node.firstChild) { + if (dom.isBlock(node)) { + return; + } + if (NodeType.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + firstChilds.push(node); + } + } + i = firstChilds.length; + while (i--) { + node = firstChilds[i]; + if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') { + dom.remove(node); + } else { + if (isEmptyAnchor(dom, node)) { + dom.remove(node); + } + } + } + }; + var normalizeZwspOffset = function (start, container, offset) { + if (NodeType.isText(container) === false) { + return offset; + } else if (start) { + return offset === 1 && container.data.charAt(offset - 1) === Zwsp.ZWSP ? 0 : offset; + } else { + return offset === container.data.length - 1 && container.data.charAt(offset) === Zwsp.ZWSP ? container.data.length : offset; + } + }; + var includeZwspInRange = function (rng) { + var newRng = rng.cloneRange(); + newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset)); + newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset)); + return newRng; + }; + var trimLeadingLineBreaks = function (node) { + do { + if (NodeType.isText(node)) { + node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, ''); + } + node = node.firstChild; + } while (node); + }; + var getEditableRoot$1 = function (dom, node) { + var root = dom.getRoot(); + var parent, editableRoot; + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== 'false') { + if (dom.getContentEditable(parent) === 'true') { + editableRoot = parent; + } + parent = parent.parentNode; + } + return parent !== root ? editableRoot : root; + }; + var applyAttributes = function (editor, node, forcedRootBlockAttrs) { + Option.from(forcedRootBlockAttrs.style).map(editor.dom.parseStyle).each(function (attrStyles) { + var currentStyles = getAllRaw(Element.fromDom(node)); + var newStyles = __assign(__assign({}, currentStyles), attrStyles); + editor.dom.setStyles(node, newStyles); + }); + var attrClassesOpt = Option.from(forcedRootBlockAttrs.class).map(function (attrClasses) { + return attrClasses.split(/\s+/); + }); + var currentClassesOpt = Option.from(node.className).map(function (currentClasses) { + return filter(currentClasses.split(/\s+/), function (clazz) { + return clazz !== ''; + }); + }); + lift2(attrClassesOpt, currentClassesOpt, function (attrClasses, currentClasses) { + var filteredClasses = filter(currentClasses, function (clazz) { + return !contains(attrClasses, clazz); + }); + var newClasses = __spreadArrays(attrClasses, filteredClasses); + editor.dom.setAttrib(node, 'class', newClasses.join(' ')); + }); + var appliedAttrs = [ + 'style', + 'class' + ]; + var remainingAttrs = filter$1(forcedRootBlockAttrs, function (_, attrs) { + return !contains(appliedAttrs, attrs); + }); + editor.dom.setAttribs(node, remainingAttrs); + }; + var setForcedBlockAttrs = function (editor, node) { + var forcedRootBlockName = Settings.getForcedRootBlock(editor); + if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) { + var forcedRootBlockAttrs = Settings.getForcedRootBlockAttrs(editor); + applyAttributes(editor, node, forcedRootBlockAttrs); + } + }; + var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) { + var newBlock, parentBlock, startNode, node, next, rootBlockName; + var blockName = newBlockName || 'P'; + var dom = editor.dom, editableRoot = getEditableRoot$1(dom, container); + parentBlock = dom.getParent(container, dom.isBlock); + if (!parentBlock || !canSplitBlock(dom, parentBlock)) { + parentBlock = parentBlock || editableRoot; + if (parentBlock === editor.getBody() || isTableCell$4(parentBlock)) { + rootBlockName = parentBlock.nodeName.toLowerCase(); + } else { + rootBlockName = parentBlock.parentNode.nodeName.toLowerCase(); + } + if (!parentBlock.hasChildNodes()) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(editor, newBlock); + parentBlock.appendChild(newBlock); + rng.setStart(newBlock, 0); + rng.setEnd(newBlock, 0); + return newBlock; + } + node = container; + while (node.parentNode !== parentBlock) { + node = node.parentNode; + } + while (node && !dom.isBlock(node)) { + startNode = node; + node = node.previousSibling; + } + if (startNode && editor.schema.isValidChild(rootBlockName, blockName.toLowerCase())) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(editor, newBlock); + startNode.parentNode.insertBefore(newBlock, startNode); + node = startNode; + while (node && !dom.isBlock(node)) { + next = node.nextSibling; + newBlock.appendChild(node); + node = next; + } + rng.setStart(container, offset); + rng.setEnd(container, offset); + } + } + return container; + }; + var addBrToBlockIfNeeded = function (dom, block) { + var lastChild; + block.normalize(); + lastChild = block.lastChild; + if (!lastChild || /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) { + dom.add(block, 'br'); + } + }; + var insert$1 = function (editor, evt) { + var tmpRng, editableRoot, container, offset, parentBlock, shiftKey; + var newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer; + var dom = editor.dom; + var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(); + var rng = editor.selection.getRng(); + var createNewBlock = function (name) { + var node = container, block, clonedNode, caretNode; + var textInlineElements = schema.getTextInlineElements(); + if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') { + block = dom.create(name || newBlockName); + } else { + block = parentBlock.cloneNode(false); + } + caretNode = block; + if (Settings.shouldKeepStyles(editor) === false) { + dom.setAttrib(block, 'style', null); + dom.setAttrib(block, 'class', null); + } else { + do { + if (textInlineElements[node.nodeName]) { + if (isCaretNode(node) || Bookmarks.isBookmarkNode(node)) { + continue; + } + clonedNode = node.cloneNode(false); + dom.setAttrib(clonedNode, 'id', ''); + if (block.hasChildNodes()) { + clonedNode.appendChild(block.firstChild); + block.appendChild(clonedNode); + } else { + caretNode = clonedNode; + block.appendChild(clonedNode); + } + } + } while ((node = node.parentNode) && node !== editableRoot); + } + setForcedBlockAttrs(editor, block); + emptyBlock(caretNode); + return block; + }; + var isCaretAtStartOrEndOfBlock = function (start) { + var node, name; + var normalizedOffset = normalizeZwspOffset(start, container, offset); + if (NodeType.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) { + return false; + } + if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) { + return true; + } + if (start && NodeType.isElement(container) && container === parentBlock.firstChild) { + return true; + } + if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) { + return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start; + } + var walker = new TreeWalker(container, parentBlock); + if (NodeType.isText(container)) { + if (start && normalizedOffset === 0) { + walker.prev(); + } else if (!start && normalizedOffset === container.nodeValue.length) { + walker.next(); + } + } + while (node = walker.current()) { + if (NodeType.isElement(node)) { + if (!node.getAttribute('data-mce-bogus')) { + name = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[name] && name !== 'br') { + return false; + } + } + } else if (NodeType.isText(node) && !/^[ \t\r\n]*$/.test(node.nodeValue)) { + return false; + } + if (start) { + walker.prev(); + } else { + walker.next(); + } + } + return true; + }; + var insertNewBlockAfter = function () { + if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') { + newBlock = createNewBlock(newBlockName); + } else { + newBlock = createNewBlock(); + } + if (Settings.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) { + newBlock = dom.split(containerBlock, parentBlock); + } else { + dom.insertAfter(newBlock, parentBlock); + } + NewLineUtils.moveToCaretPosition(editor, newBlock); + }; + NormalizeRange.normalize(dom, rng).each(function (normRng) { + rng.setStart(normRng.startContainer, normRng.startOffset); + rng.setEnd(normRng.endContainer, normRng.endOffset); + }); + container = rng.startContainer; + offset = rng.startOffset; + newBlockName = Settings.getForcedRootBlock(editor); + shiftKey = !!(evt && evt.shiftKey); + var ctrlKey = !!(evt && evt.ctrlKey); + if (NodeType.isElement(container) && container.hasChildNodes()) { + isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && NodeType.isText(container)) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + editableRoot = getEditableRoot$1(dom, container); + if (!editableRoot) { + return; + } + if (newBlockName && !shiftKey || !newBlockName && shiftKey) { + container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset); + } + parentBlock = dom.getParent(container, dom.isBlock); + containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; + containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; + if (containerBlockName === 'LI' && !ctrlKey) { + parentBlock = containerBlock; + containerBlock = containerBlock.parentNode; + parentBlockName = containerBlockName; + } + if (/^(LI|DT|DD)$/.test(parentBlockName)) { + if (dom.isEmpty(parentBlock)) { + InsertLi.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName); + return; + } + } + if (newBlockName && parentBlock === editor.getBody()) { + return; + } + newBlockName = newBlockName || 'P'; + if (isCaretContainerBlock(parentBlock)) { + newBlock = showCaretContainerBlock(parentBlock); + if (dom.isEmpty(parentBlock)) { + emptyBlock(parentBlock); + } + setForcedBlockAttrs(editor, newBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + } else if (isCaretAtStartOrEndOfBlock()) { + insertNewBlockAfter(); + } else if (isCaretAtStartOrEndOfBlock(true)) { + newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock); + NewLineUtils.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock); + } else { + tmpRng = includeZwspInRange(rng).cloneRange(); + tmpRng.setEndAfter(parentBlock); + fragment = tmpRng.extractContents(); + trimZwsp(fragment); + trimLeadingLineBreaks(fragment); + newBlock = fragment.firstChild; + dom.insertAfter(fragment, parentBlock); + trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock); + addBrToBlockIfNeeded(dom, parentBlock); + if (dom.isEmpty(parentBlock)) { + emptyBlock(parentBlock); + } + newBlock.normalize(); + if (dom.isEmpty(newBlock)) { + dom.remove(newBlock); + insertNewBlockAfter(); + } else { + setForcedBlockAttrs(editor, newBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + } + } + dom.setAttrib(newBlock, 'id', ''); + editor.fire('NewBlock', { newBlock: newBlock }); + }; + var InsertBlock = { insert: insert$1 }; + + var hasRightSideContent = function (schema, container, parentBlock) { + var walker = new TreeWalker(container, parentBlock); + var node; + var nonEmptyElementsMap = schema.getNonEmptyElements(); + while (node = walker.next()) { + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) { + return true; + } + } + }; + var scrollToBr = function (dom, selection, brElm) { + var marker = dom.create('span', {}, ' '); + brElm.parentNode.insertBefore(marker, brElm); + selection.scrollIntoView(marker); + dom.remove(marker); + }; + var moveSelectionToBr = function (dom, selection, brElm, extraBr) { + var rng = dom.createRng(); + if (!extraBr) { + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + } else { + rng.setStartBefore(brElm); + rng.setEndBefore(brElm); + } + selection.setRng(rng); + }; + var insertBrAtCaret = function (editor, evt) { + var selection = editor.selection; + var dom = editor.dom; + var rng = selection.getRng(); + var brElm; + var extraBr; + NormalizeRange.normalize(dom, rng).each(function (normRng) { + rng.setStart(normRng.startContainer, normRng.startOffset); + rng.setEnd(normRng.endContainer, normRng.endOffset); + }); + var offset = rng.startOffset; + var container = rng.startContainer; + if (container.nodeType === 1 && container.hasChildNodes()) { + var isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && container.nodeType === 3) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + var parentBlock = dom.getParent(container, dom.isBlock); + var containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + var containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; + var isControlKey = !!(evt && evt.ctrlKey); + if (containerBlockName === 'LI' && !isControlKey) { + parentBlock = containerBlock; + } + if (container && container.nodeType === 3 && offset >= container.nodeValue.length) { + if (!hasRightSideContent(editor.schema, container, parentBlock)) { + brElm = dom.create('br'); + rng.insertNode(brElm); + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + extraBr = true; + } + } + brElm = dom.create('br'); + rangeInsertNode(dom, rng, brElm); + scrollToBr(dom, selection, brElm); + moveSelectionToBr(dom, selection, brElm, extraBr); + editor.undoManager.add(); + }; + var insertBrBefore = function (editor, inline) { + var br = Element.fromTag('br'); + before(Element.fromDom(inline), br); + editor.undoManager.add(); + }; + var insertBrAfter = function (editor, inline) { + if (!hasBrAfter(editor.getBody(), inline)) { + after(Element.fromDom(inline), Element.fromTag('br')); + } + var br = Element.fromTag('br'); + after(Element.fromDom(inline), br); + scrollToBr(editor.dom, editor.selection, br.dom()); + moveSelectionToBr(editor.dom, editor.selection, br.dom(), false); + editor.undoManager.add(); + }; + var isBeforeBr$1 = function (pos) { + return NodeType.isBr(pos.getNode()); + }; + var hasBrAfter = function (rootNode, startNode) { + if (isBeforeBr$1(CaretPosition$1.after(startNode))) { + return true; + } else { + return CaretFinder.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) { + return NodeType.isBr(pos.getNode()); + }).getOr(false); + } + }; + var isAnchorLink = function (elm) { + return elm && elm.nodeName === 'A' && 'href' in elm; + }; + var isInsideAnchor = function (location) { + return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false)); + }; + var readInlineAnchorLocation = function (editor) { + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var position = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor); + }; + var insertBrOutsideAnchor = function (editor, location) { + location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop); + }; + var insert$2 = function (editor, evt) { + var anchorLocation = readInlineAnchorLocation(editor); + if (anchorLocation.isSome()) { + anchorLocation.each(curry(insertBrOutsideAnchor, editor)); + } else { + insertBrAtCaret(editor, evt); + } + }; + var InsertBr = { insert: insert$2 }; + + var matchesSelector = function (editor, selector) { + return NewLineUtils.getParentBlock(editor).filter(function (parentBlock) { + return selector.length > 0 && is(Element.fromDom(parentBlock), selector); + }).isSome(); + }; + var shouldInsertBr = function (editor) { + return matchesSelector(editor, Settings.getBrNewLineSelector(editor)); + }; + var shouldBlockNewLine = function (editor) { + return matchesSelector(editor, Settings.getNoNewLineSelector(editor)); + }; + var ContextSelectors = { + shouldInsertBr: shouldInsertBr, + shouldBlockNewLine: shouldBlockNewLine + }; + + var newLineAction = Adt.generate([ + { br: [] }, + { block: [] }, + { none: [] } + ]); + var shouldBlockNewLine$1 = function (editor, shiftKey) { + return ContextSelectors.shouldBlockNewLine(editor); + }; + var isBrMode = function (requiredState) { + return function (editor, shiftKey) { + var brMode = Settings.getForcedRootBlock(editor) === ''; + return brMode === requiredState; + }; + }; + var inListBlock = function (requiredState) { + return function (editor, shiftKey) { + return NewLineUtils.isListItemParentBlock(editor) === requiredState; + }; + }; + var inBlock = function (blockName, requiredState) { + return function (editor, shiftKey) { + var state = NewLineUtils.getParentBlockName(editor) === blockName.toUpperCase(); + return state === requiredState; + }; + }; + var inPreBlock = function (requiredState) { + return inBlock('pre', requiredState); + }; + var inSummaryBlock = function () { + return inBlock('summary', true); + }; + var shouldPutBrInPre$1 = function (requiredState) { + return function (editor, shiftKey) { + return Settings.shouldPutBrInPre(editor) === requiredState; + }; + }; + var inBrContext = function (editor, shiftKey) { + return ContextSelectors.shouldInsertBr(editor); + }; + var hasShiftKey = function (editor, shiftKey) { + return shiftKey; + }; + var canInsertIntoEditableRoot = function (editor) { + var forcedRootBlock = Settings.getForcedRootBlock(editor); + var rootEditable = NewLineUtils.getEditableRoot(editor.dom, editor.selection.getStart()); + return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P'); + }; + var match$2 = function (predicates, action) { + return function (editor, shiftKey) { + var isMatch = foldl(predicates, function (res, p) { + return res && p(editor, shiftKey); + }, true); + return isMatch ? Option.some(action) : Option.none(); + }; + }; + var getAction$1 = function (editor, evt) { + return LazyEvaluator.evaluateUntil([ + match$2([shouldBlockNewLine$1], newLineAction.none()), + match$2([inSummaryBlock()], newLineAction.br()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(false), + hasShiftKey + ], newLineAction.br()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(false) + ], newLineAction.block()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(true), + hasShiftKey + ], newLineAction.block()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(true) + ], newLineAction.br()), + match$2([ + inListBlock(true), + hasShiftKey + ], newLineAction.br()), + match$2([inListBlock(true)], newLineAction.block()), + match$2([ + isBrMode(true), + hasShiftKey, + canInsertIntoEditableRoot + ], newLineAction.block()), + match$2([isBrMode(true)], newLineAction.br()), + match$2([inBrContext], newLineAction.br()), + match$2([ + isBrMode(false), + hasShiftKey + ], newLineAction.br()), + match$2([canInsertIntoEditableRoot], newLineAction.block()) + ], [ + editor, + !!(evt && evt.shiftKey) + ]).getOr(newLineAction.none()); + }; + var NewLineAction = { getAction: getAction$1 }; + + var insert$3 = function (editor, evt) { + NewLineAction.getAction(editor, evt).fold(function () { + InsertBr.insert(editor, evt); + }, function () { + InsertBlock.insert(editor, evt); + }, noop); + }; + var InsertNewLine = { insert: insert$3 }; + + var handleEnterKeyEvent = function (editor, event) { + if (event.isDefaultPrevented()) { + return; + } + event.preventDefault(); + endTypingLevelIgnoreLocks(editor.undoManager); + editor.undoManager.transact(function () { + if (editor.selection.isCollapsed() === false) { + editor.execCommand('Delete'); + } + InsertNewLine.insert(editor, event); + }); + }; + var setup$b = function (editor) { + editor.on('keydown', function (event) { + if (event.keyCode === VK.ENTER) { + handleEnterKeyEvent(editor, event); + } + }); + }; + var EnterKey = { setup: setup$b }; + + var insertTextAtPosition = function (text, pos) { + var container = pos.container(); + var offset = pos.offset(); + if (NodeType.isText(container)) { + container.insertData(offset, text); + return Option.some(CaretPosition(container, offset + text.length)); + } else { + return getElementFromPosition(pos).map(function (elm) { + var textNode = Element.fromText(text); + if (pos.isAtEnd()) { + after(elm, textNode); + } else { + before(elm, textNode); + } + return CaretPosition(textNode.dom(), text.length); + }); + } + }; + var insertNbspAtPosition = curry(insertTextAtPosition, nbsp); + var insertSpaceAtPosition = curry(insertTextAtPosition, ' '); + + var isInMiddleOfText = function (pos) { + return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd(); + }; + var getClosestBlock$1 = function (root, pos) { + var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + return head(parentBlocks).getOr(root); + }; + var hasSpaceBefore = function (root, pos) { + if (isInMiddleOfText(pos)) { + return isAfterSpace(pos); + } else { + return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isAfterSpace); + } + }; + var hasSpaceAfter = function (root, pos) { + if (isInMiddleOfText(pos)) { + return isBeforeSpace(pos); + } else { + return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isBeforeSpace); + } + }; + var isPreValue = function (value) { + return contains([ + 'pre', + 'pre-wrap' + ], value); + }; + var isInPre = function (pos) { + return getElementFromPosition(pos).bind(function (elm) { + return closest(elm, isElement); + }).exists(function (elm) { + return isPreValue(get$4(elm, 'white-space')); + }); + }; + var isAtBeginningOfBody = function (root, pos) { + return CaretFinder.prevPosition(root.dom(), pos).isNone(); + }; + var isAtEndOfBody = function (root, pos) { + return CaretFinder.nextPosition(root.dom(), pos).isNone(); + }; + var isAtLineBoundary = function (root, pos) { + return isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos) || isAtEndOfBlock(root, pos) || isAfterBr(root, pos) || isBeforeBr(root, pos); + }; + var needsToHaveNbsp = function (root, pos) { + if (isInPre(pos)) { + return false; + } else { + return isAtLineBoundary(root, pos) || hasSpaceBefore(root, pos) || hasSpaceAfter(root, pos); + } + }; + var needsToBeNbspLeft = function (root, pos) { + if (isInPre(pos)) { + return false; + } else { + return isAtStartOfBlock(root, pos) || isBeforeBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos); + } + }; + var leanRight = function (pos) { + var container = pos.container(); + var offset = pos.offset(); + if (NodeType.isText(container) && offset < container.data.length) { + return CaretPosition(container, offset + 1); + } else { + return pos; + } + }; + var needsToBeNbspRight = function (root, pos) { + var afterPos = leanRight(pos); + if (isInPre(afterPos)) { + return false; + } else { + return isAtEndOfBlock(root, afterPos) || isAfterBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos); + } + }; + var needsToBeNbsp = function (root, pos) { + return needsToBeNbspLeft(root, pos) || needsToBeNbspRight(root, pos); + }; + var isNbspAt = function (text, offset) { + return isNbsp(text.charAt(offset)); + }; + var hasNbsp = function (pos) { + var container = pos.container(); + return NodeType.isText(container) && contains$1(container.data, nbsp); + }; + var normalizeNbspMiddle = function (text) { + var chars = text.split(''); + return map(chars, function (chr, i) { + if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) { + return ' '; + } else { + return chr; + } + }).join(''); + }; + var normalizeNbspAtStart = function (root, node) { + var text = node.data; + var firstPos = CaretPosition(node, 0); + if (isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos)) { + node.data = ' ' + text.slice(1); + return true; + } else { + return false; + } + }; + var normalizeNbspInMiddleOfTextNode = function (node) { + var text = node.data; + var newText = normalizeNbspMiddle(text); + if (newText !== text) { + node.data = newText; + return true; + } else { + return false; + } + }; + var normalizeNbspAtEnd = function (root, node) { + var text = node.data; + var lastPos = CaretPosition(node, text.length - 1); + if (isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos)) { + node.data = text.slice(0, -1) + ' '; + return true; + } else { + return false; + } + }; + var normalizeNbsps = function (root, pos) { + return Option.some(pos).filter(hasNbsp).bind(function (pos) { + var container = pos.container(); + var normalized = normalizeNbspAtStart(root, container) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container); + return normalized ? Option.some(pos) : Option.none(); + }); + }; + var normalizeNbspsInEditor = function (editor) { + var root = Element.fromDom(editor.getBody()); + if (editor.selection.isCollapsed()) { + normalizeNbsps(root, CaretPosition.fromRangeStart(editor.selection.getRng())).each(function (pos) { + editor.selection.setRng(pos.toRange()); + }); + } + }; + + var locationToCaretPosition = function (root) { + return function (location) { + return location.fold(function (element) { + return CaretFinder.prevPosition(root.dom(), CaretPosition$1.before(element)); + }, function (element) { + return CaretFinder.firstPositionIn(element); + }, function (element) { + return CaretFinder.lastPositionIn(element); + }, function (element) { + return CaretFinder.nextPosition(root.dom(), CaretPosition$1.after(element)); + }); + }; + }; + var insertInlineBoundarySpaceOrNbsp = function (root, pos) { + return function (checkPos) { + return needsToHaveNbsp(root, checkPos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos); + }; + }; + var setSelection$1 = function (editor) { + return function (pos) { + editor.selection.setRng(pos.toRange()); + editor.nodeChanged(); + return true; + }; + }; + var insertSpaceOrNbspAtSelection = function (editor) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var root = Element.fromDom(editor.getBody()); + if (editor.selection.isCollapsed()) { + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor)); + } else { + return false; + } + }; + + var executeKeydownOverride$2 = function (editor, evt) { + MatchKeys.execute([{ + keyCode: VK.SPACEBAR, + action: MatchKeys.action(insertSpaceOrNbspAtSelection, editor) + }], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$c = function (editor) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$2(editor, evt); + } + }); + }; + var SpaceKey = { setup: setup$c }; + + var findBlockCaretContainer = function (editor) { + return descendant(Element.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) { + return elm.dom(); + }); + }; + var removeIeControlRect = function (editor) { + editor.selection.setRng(editor.selection.getRng()); + }; + var showBlockCaretContainer = function (editor, blockCaretContainer) { + if (blockCaretContainer.hasAttribute('data-mce-caret')) { + showCaretContainerBlock(blockCaretContainer); + removeIeControlRect(editor); + editor.selection.scrollIntoView(blockCaretContainer); + } + }; + var handleBlockContainer = function (editor, e) { + var blockCaretContainer = findBlockCaretContainer(editor); + if (!blockCaretContainer) { + return; + } + if (e.type === 'compositionstart') { + e.preventDefault(); + e.stopPropagation(); + showBlockCaretContainer(editor, blockCaretContainer); + return; + } + if (hasContent(blockCaretContainer)) { + showBlockCaretContainer(editor, blockCaretContainer); + editor.undoManager.add(); + } + }; + var setup$d = function (editor) { + editor.on('keyup compositionstart', curry(handleBlockContainer, editor)); + }; + var CaretContainerInput = { setup: setup$d }; + + var browser$5 = detect$3().browser; + var setupIeInput = function (editor) { + var keypressThrotter = first(function () { + if (!editor.composing) { + normalizeNbspsInEditor(editor); + } + }, 0); + if (browser$5.isIE()) { + editor.on('keypress', function (e) { + keypressThrotter.throttle(); + }); + editor.on('remove', function (e) { + keypressThrotter.cancel(); + }); + } + }; + var setup$e = function (editor) { + setupIeInput(editor); + editor.on('input', function (e) { + if (e.isComposing === false) { + normalizeNbspsInEditor(editor); + } + }); + }; + + var executeKeydownOverride$3 = function (editor, evt) { + MatchKeys.execute([ + { + keyCode: VK.END, + action: moveToLineEndPoint(editor, true) + }, + { + keyCode: VK.HOME, + action: moveToLineEndPoint(editor, false) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$f = function (editor) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$3(editor, evt); + } + }); + }; + var HomeEndKeys = { setup: setup$f }; + + var setup$g = function (editor) { + var caret = BoundarySelection.setupSelectedState(editor); + CaretContainerInput.setup(editor); + ArrowKeys.setup(editor, caret); + DeleteBackspaceKeys.setup(editor, caret); + EnterKey.setup(editor); + SpaceKey.setup(editor); + setup$e(editor); + HomeEndKeys.setup(editor); + }; + var KeyboardOverrides = { setup: setup$g }; + + var NodeChange = function () { + function NodeChange(editor) { + this.lastPath = []; + this.editor = editor; + var lastRng; + var self = this; + if (!('onselectionchange' in editor.getDoc())) { + editor.on('NodeChange click mouseup keyup focus', function (e) { + var nativeRng, fakeRng; + nativeRng = editor.selection.getRng(); + fakeRng = { + startContainer: nativeRng.startContainer, + startOffset: nativeRng.startOffset, + endContainer: nativeRng.endContainer, + endOffset: nativeRng.endOffset + }; + if (e.type === 'nodechange' || !RangeCompare.isEq(fakeRng, lastRng)) { + editor.fire('SelectionChange'); + } + lastRng = fakeRng; + }); + } + editor.on('contextmenu', function () { + editor.fire('SelectionChange'); + }); + editor.on('SelectionChange', function () { + var startElm = editor.selection.getStart(true); + if (!startElm || !Env.range && editor.selection.isCollapsed()) { + return; + } + if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) { + editor.nodeChanged({ selectionChange: true }); + } + }); + editor.on('mouseup', function (e) { + if (!e.isDefaultPrevented() && hasAnyRanges(editor)) { + if (editor.selection.getNode().nodeName === 'IMG') { + Delay.setEditorTimeout(editor, function () { + editor.nodeChanged(); + }); + } else { + editor.nodeChanged(); + } + } + }); + } + NodeChange.prototype.nodeChanged = function (args) { + var selection = this.editor.selection; + var node, parents, root; + if (this.editor.initialized && selection && !this.editor.settings.disable_nodechange && !this.editor.mode.isReadOnly()) { + root = this.editor.getBody(); + node = selection.getStart(true) || root; + if (node.ownerDocument !== this.editor.getDoc() || !this.editor.dom.isChildOf(node, root)) { + node = root; + } + parents = []; + this.editor.dom.getParent(node, function (node) { + if (node === root) { + return true; + } + parents.push(node); + }); + args = args || {}; + args.element = node; + args.parents = parents; + this.editor.fire('NodeChange', args); + } + }; + NodeChange.prototype.isSameElementPath = function (startElm) { + var i, currentPath; + currentPath = this.editor.$(startElm).parentsUntil(this.editor.getBody()).add(startElm); + if (currentPath.length === this.lastPath.length) { + for (i = currentPath.length; i >= 0; i--) { + if (currentPath[i] !== this.lastPath[i]) { + break; + } + } + if (i === -1) { + this.lastPath = currentPath; + return true; + } + } + this.lastPath = currentPath; + return false; + }; + return NodeChange; + }(); + + var preventSummaryToggle = function (editor) { + editor.on('click', function (e) { + if (editor.dom.getParent(e.target, 'details')) { + e.preventDefault(); + } + }); + }; + var filterDetails = function (editor) { + editor.parser.addNodeFilter('details', function (elms) { + each(elms, function (details) { + details.attr('data-mce-open', details.attr('open')); + details.attr('open', 'open'); + }); + }); + editor.serializer.addNodeFilter('details', function (elms) { + each(elms, function (details) { + var open = details.attr('data-mce-open'); + details.attr('open', isString(open) ? open : null); + details.attr('data-mce-open', null); + }); + }); + }; + var setup$h = function (editor) { + preventSummaryToggle(editor); + filterDetails(editor); + }; + + var isTextBlockNode = function (node) { + return NodeType.isElement(node) && isTextBlock(Element.fromDom(node)); + }; + var normalizeSelection$1 = function (editor) { + var rng = editor.selection.getRng(); + var startPos = CaretPosition.fromRangeStart(rng); + var endPos = CaretPosition.fromRangeEnd(rng); + if (CaretPosition.isElementPosition(startPos)) { + var container = startPos.container(); + if (isTextBlockNode(container)) { + CaretFinder.firstPositionIn(container).each(function (pos) { + return rng.setStart(pos.container(), pos.offset()); + }); + } + } + if (CaretPosition.isElementPosition(endPos)) { + var container = startPos.container(); + if (isTextBlockNode(container)) { + CaretFinder.lastPositionIn(container).each(function (pos) { + return rng.setEnd(pos.container(), pos.offset()); + }); + } + } + editor.selection.setRng(RangeNormalizer.normalize(rng)); + }; + var setup$i = function (editor) { + editor.on('click', function (e) { + if (e.detail >= 3) { + normalizeSelection$1(editor); + } + }); + }; + + var getAbsolutePosition = function (elm) { + var doc, docElem, win, clientRect; + clientRect = elm.getBoundingClientRect(); + doc = elm.ownerDocument; + docElem = doc.documentElement; + win = doc.defaultView; + return { + top: clientRect.top + win.pageYOffset - docElem.clientTop, + left: clientRect.left + win.pageXOffset - docElem.clientLeft + }; + }; + var getBodyPosition = function (editor) { + return editor.inline ? getAbsolutePosition(editor.getBody()) : { + left: 0, + top: 0 + }; + }; + var getScrollPosition = function (editor) { + var body = editor.getBody(); + return editor.inline ? { + left: body.scrollLeft, + top: body.scrollTop + } : { + left: 0, + top: 0 + }; + }; + var getBodyScroll = function (editor) { + var body = editor.getBody(), docElm = editor.getDoc().documentElement; + var inlineScroll = { + left: body.scrollLeft, + top: body.scrollTop + }; + var iframeScroll = { + left: body.scrollLeft || docElm.scrollLeft, + top: body.scrollTop || docElm.scrollTop + }; + return editor.inline ? inlineScroll : iframeScroll; + }; + var getMousePosition = function (editor, event) { + if (event.target.ownerDocument !== editor.getDoc()) { + var iframePosition = getAbsolutePosition(editor.getContentAreaContainer()); + var scrollPosition = getBodyScroll(editor); + return { + left: event.pageX - iframePosition.left + scrollPosition.left, + top: event.pageY - iframePosition.top + scrollPosition.top + }; + } + return { + left: event.pageX, + top: event.pageY + }; + }; + var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) { + return { + pageX: mousePosition.left - bodyPosition.left + scrollPosition.left, + pageY: mousePosition.top - bodyPosition.top + scrollPosition.top + }; + }; + var calc = function (editor, event) { + return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event)); + }; + var MousePosition = { calc: calc }; + + var isContentEditableFalse$a = NodeType.isContentEditableFalse, isContentEditableTrue$4 = NodeType.isContentEditableTrue; + var isDraggable = function (rootElm, elm) { + return isContentEditableFalse$a(elm) && elm !== rootElm; + }; + var isValidDropTarget = function (editor, targetElement, dragElement) { + if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) { + return false; + } + return !isContentEditableFalse$a(targetElement); + }; + var cloneElement = function (elm) { + var cloneElm = elm.cloneNode(true); + cloneElm.removeAttribute('data-mce-selected'); + return cloneElm; + }; + var createGhost = function (editor, elm, width, height) { + var clonedElm = elm.cloneNode(true); + editor.dom.setStyles(clonedElm, { + width: width, + height: height + }); + editor.dom.setAttrib(clonedElm, 'data-mce-selected', null); + var ghostElm = editor.dom.create('div', { + 'class': 'mce-drag-container', + 'data-mce-bogus': 'all', + 'unselectable': 'on', + 'contenteditable': 'false' + }); + editor.dom.setStyles(ghostElm, { + position: 'absolute', + opacity: 0.5, + overflow: 'hidden', + border: 0, + padding: 0, + margin: 0, + width: width, + height: height + }); + editor.dom.setStyles(clonedElm, { + margin: 0, + boxSizing: 'border-box' + }); + ghostElm.appendChild(clonedElm); + return ghostElm; + }; + var appendGhostToBody = function (ghostElm, bodyElm) { + if (ghostElm.parentNode !== bodyElm) { + bodyElm.appendChild(ghostElm); + } + }; + var moveGhost = function (ghostElm, position, width, height, maxX, maxY) { + var overflowX = 0, overflowY = 0; + ghostElm.style.left = position.pageX + 'px'; + ghostElm.style.top = position.pageY + 'px'; + if (position.pageX + width > maxX) { + overflowX = position.pageX + width - maxX; + } + if (position.pageY + height > maxY) { + overflowY = position.pageY + height - maxY; + } + ghostElm.style.width = width - overflowX + 'px'; + ghostElm.style.height = height - overflowY + 'px'; + }; + var removeElement = function (elm) { + if (elm && elm.parentNode) { + elm.parentNode.removeChild(elm); + } + }; + var isLeftMouseButtonPressed = function (e) { + return e.button === 0; + }; + var hasDraggableElement = function (state) { + return state.element; + }; + var applyRelPos = function (state, position) { + return { + pageX: position.pageX - state.relX, + pageY: position.pageY + 5 + }; + }; + var start$1 = function (state, editor) { + return function (e) { + if (isLeftMouseButtonPressed(e)) { + var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$a, isContentEditableTrue$4)).getOr(null); + if (isDraggable(editor.getBody(), ceElm)) { + var elmPos = editor.dom.getPos(ceElm); + var bodyElm = editor.getBody(); + var docElm = editor.getDoc().documentElement; + state.element = ceElm; + state.screenX = e.screenX; + state.screenY = e.screenY; + state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2; + state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2; + state.relX = e.pageX - elmPos.x; + state.relY = e.pageY - elmPos.y; + state.width = ceElm.offsetWidth; + state.height = ceElm.offsetHeight; + state.ghost = createGhost(editor, ceElm, state.width, state.height); + } + } + }; + }; + var move$1 = function (state, editor) { + var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) { + editor._selectionOverrides.hideFakeCaret(); + editor.selection.placeCaretAt(clientX, clientY); + }, 0); + return function (e) { + var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY)); + if (hasDraggableElement(state) && !state.dragging && movement > 10) { + var args = editor.fire('dragstart', { target: state.element }); + if (args.isDefaultPrevented()) { + return; + } + state.dragging = true; + editor.focus(); + } + if (state.dragging) { + var targetPos = applyRelPos(state, MousePosition.calc(editor, e)); + appendGhostToBody(state.ghost, editor.getBody()); + moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY); + throttledPlaceCaretAt(e.clientX, e.clientY); + } + }; + }; + var getRawTarget = function (selection) { + var rng = selection.getSel().getRangeAt(0); + var startContainer = rng.startContainer; + return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer; + }; + var drop = function (state, editor) { + return function (e) { + if (state.dragging) { + if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) { + var targetClone_1 = cloneElement(state.element); + var args = editor.fire('drop', { + targetClone: targetClone_1, + clientX: e.clientX, + clientY: e.clientY + }); + if (!args.isDefaultPrevented()) { + targetClone_1 = args.targetClone; + editor.undoManager.transact(function () { + removeElement(state.element); + editor.insertContent(editor.dom.getOuterHTML(targetClone_1)); + editor._selectionOverrides.hideFakeCaret(); + }); + } + } + } + removeDragState(state); + }; + }; + var stop = function (state, editor) { + return function () { + if (state.dragging) { + editor.fire('dragend'); + } + removeDragState(state); + }; + }; + var removeDragState = function (state) { + state.dragging = false; + state.element = null; + removeElement(state.ghost); + }; + var bindFakeDragEvents = function (editor) { + var state = {}; + var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument; + pageDom = DOMUtils$1.DOM; + rootDocument = domGlobals.document; + dragStartHandler = start$1(state, editor); + dragHandler = move$1(state, editor); + dropHandler = drop(state, editor); + dragEndHandler = stop(state, editor); + editor.on('mousedown', dragStartHandler); + editor.on('mousemove', dragHandler); + editor.on('mouseup', dropHandler); + pageDom.bind(rootDocument, 'mousemove', dragHandler); + pageDom.bind(rootDocument, 'mouseup', dragEndHandler); + editor.on('remove', function () { + pageDom.unbind(rootDocument, 'mousemove', dragHandler); + pageDom.unbind(rootDocument, 'mouseup', dragEndHandler); + }); + }; + var blockIeDrop = function (editor) { + editor.on('drop', function (e) { + var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null; + if (isContentEditableFalse$a(realTarget) || isContentEditableFalse$a(editor.dom.getContentEditableParent(realTarget))) { + e.preventDefault(); + } + }); + }; + var init = function (editor) { + bindFakeDragEvents(editor); + blockIeDrop(editor); + }; + var DragDropOverrides = { init: init }; + + var setup$j = function (editor) { + var renderFocusCaret = first(function () { + if (!editor.removed && editor.getBody().contains(domGlobals.document.activeElement)) { + var rng = editor.selection.getRng(); + if (rng.collapsed) { + var caretRange = renderRangeCaret(editor, editor.selection.getRng(), false); + editor.selection.setRng(caretRange); + } + } + }, 0); + editor.on('focus', function () { + renderFocusCaret.throttle(); + }); + editor.on('blur', function () { + renderFocusCaret.cancel(); + }); + }; + var CefFocus = { setup: setup$j }; + + var isContentEditableTrue$5 = NodeType.isContentEditableTrue; + var isContentEditableFalse$b = NodeType.isContentEditableFalse; + var getContentEditableRoot$2 = function (editor, node) { + var root = editor.getBody(); + while (node && node !== root) { + if (isContentEditableTrue$5(node) || isContentEditableFalse$b(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var SelectionOverrides = function (editor) { + var isBlock = function (node) { + return editor.dom.isBlock(node); + }; + var rootNode = editor.getBody(); + var fakeCaret = FakeCaret(editor, rootNode, isBlock, function () { + return EditorFocus.hasFocus(editor); + }); + var realSelectionId = 'sel-' + editor.dom.uniqueId(); + var selectedContentEditableNode; + var isFakeSelectionElement = function (elm) { + return editor.dom.hasClass(elm, 'mce-offscreen-selection'); + }; + var getRealSelectionElement = function () { + var container = editor.dom.get(realSelectionId); + return container ? container.getElementsByTagName('*')[0] : container; + }; + var setRange = function (range) { + if (range) { + editor.selection.setRng(range); + } + }; + var getRange = function () { + return editor.selection.getRng(); + }; + var showCaret = function (direction, node, before, scrollIntoView) { + if (scrollIntoView === void 0) { + scrollIntoView = true; + } + var e; + e = editor.fire('ShowCaret', { + target: node, + direction: direction, + before: before + }); + if (e.isDefaultPrevented()) { + return null; + } + if (scrollIntoView) { + editor.selection.scrollIntoView(node, direction === -1); + } + return fakeCaret.show(before, node); + }; + var showBlockCaretContainer = function (blockCaretContainer) { + if (blockCaretContainer.hasAttribute('data-mce-caret')) { + showCaretContainerBlock(blockCaretContainer); + setRange(getRange()); + editor.selection.scrollIntoView(blockCaretContainer); + } + }; + var registerEvents = function () { + editor.on('mouseup', function (e) { + var range = getRange(); + if (range.collapsed && EditorView.isXYInContentArea(editor, e.clientX, e.clientY)) { + setRange(renderCaretAtRange(editor, range, false)); + } + }); + editor.on('click', function (e) { + var contentEditableRoot; + contentEditableRoot = getContentEditableRoot$2(editor, e.target); + if (contentEditableRoot) { + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + editor.focus(); + } + if (isContentEditableTrue$5(contentEditableRoot)) { + if (editor.dom.isChildOf(contentEditableRoot, editor.selection.getNode())) { + removeContentEditableSelection(); + } + } + } + }); + editor.on('blur NewBlock', function () { + removeContentEditableSelection(); + }); + editor.on('ResizeWindow FullscreenStateChanged', function () { + return fakeCaret.reposition(); + }); + var handleTouchSelect = function (editor) { + editor.on('tap', function (e) { + var contentEditableRoot = getContentEditableRoot$2(editor, e.target); + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + setContentEditableSelection(selectNode(editor, contentEditableRoot)); + } + }, true); + }; + var hasNormalCaretPosition = function (elm) { + var caretWalker = CaretWalker(elm); + if (!elm.firstChild) { + return false; + } + var startPos = CaretPosition$1.before(elm.firstChild); + var newPos = caretWalker.next(startPos); + return newPos && !isBeforeContentEditableFalse(newPos) && !isAfterContentEditableFalse(newPos); + }; + var isInSameBlock = function (node1, node2) { + var block1 = editor.dom.getParent(node1, editor.dom.isBlock); + var block2 = editor.dom.getParent(node2, editor.dom.isBlock); + return block1 === block2; + }; + var hasBetterMouseTarget = function (targetNode, caretNode) { + var targetBlock = editor.dom.getParent(targetNode, editor.dom.isBlock); + var caretBlock = editor.dom.getParent(caretNode, editor.dom.isBlock); + if (targetBlock && editor.dom.isChildOf(targetBlock, caretBlock) && isContentEditableFalse$b(getContentEditableRoot$2(editor, targetBlock)) === false) { + return true; + } + return targetBlock && !isInSameBlock(targetBlock, caretBlock) && hasNormalCaretPosition(targetBlock); + }; + handleTouchSelect(editor); + editor.on('mousedown', function (e) { + var contentEditableRoot; + var targetElm = e.target; + if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) { + return; + } + if (EditorView.isXYInContentArea(editor, e.clientX, e.clientY) === false) { + return; + } + contentEditableRoot = getContentEditableRoot$2(editor, targetElm); + if (contentEditableRoot) { + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + setContentEditableSelection(selectNode(editor, contentEditableRoot)); + } else { + removeContentEditableSelection(); + if (!(isContentEditableTrue$5(contentEditableRoot) && e.shiftKey) && !RangePoint.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) { + hideFakeCaret(); + editor.selection.placeCaretAt(e.clientX, e.clientY); + } + } + } else if (isFakeCaretTarget(targetElm) === false) { + removeContentEditableSelection(); + hideFakeCaret(); + var caretInfo = closestCaret(rootNode, e.clientX, e.clientY); + if (caretInfo) { + if (!hasBetterMouseTarget(e.target, caretInfo.node)) { + e.preventDefault(); + var range = showCaret(1, caretInfo.node, caretInfo.before, false); + editor.getBody().focus(); + setRange(range); + } + } + } + }); + editor.on('keypress', function (e) { + if (VK.modifierPressed(e)) { + return; + } + switch (e.keyCode) { + default: + if (isContentEditableFalse$b(editor.selection.getNode())) { + e.preventDefault(); + } + break; + } + }); + editor.on('GetSelectionRange', function (e) { + var rng = e.range; + if (selectedContentEditableNode) { + if (!selectedContentEditableNode.parentNode) { + selectedContentEditableNode = null; + return; + } + rng = rng.cloneRange(); + rng.selectNode(selectedContentEditableNode); + e.range = rng; + } + }); + editor.on('SetSelectionRange', function (e) { + e.range = normalizeShortEndedElementSelection(e.range); + var rng = setContentEditableSelection(e.range, e.forward); + if (rng) { + e.range = rng; + } + }); + var isPasteBin = function (node) { + return node.id === 'mcepastebin'; + }; + editor.on('AfterSetSelectionRange', function (e) { + var rng = e.range; + if (!isRangeInCaretContainer(rng) && !isPasteBin(rng.startContainer.parentNode)) { + hideFakeCaret(); + } + if (!isFakeSelectionElement(rng.startContainer.parentNode)) { + removeContentEditableSelection(); + } + }); + editor.on('copy', function (e) { + var clipboardData = e.clipboardData; + if (!e.isDefaultPrevented() && e.clipboardData && !Env.ie) { + var realSelectionElement = getRealSelectionElement(); + if (realSelectionElement) { + e.preventDefault(); + clipboardData.clearData(); + clipboardData.setData('text/html', realSelectionElement.outerHTML); + clipboardData.setData('text/plain', realSelectionElement.outerText); + } + } + }); + DragDropOverrides.init(editor); + CefFocus.setup(editor); + }; + var isWithinCaretContainer = function (node) { + return isCaretContainer(node) || startsWithCaretContainer(node) || endsWithCaretContainer(node); + }; + var isRangeInCaretContainer = function (rng) { + return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer); + }; + var normalizeShortEndedElementSelection = function (rng) { + var shortEndedElements = editor.schema.getShortEndedElements(); + var newRng = editor.dom.createRng(); + var startContainer = rng.startContainer; + var startOffset = rng.startOffset; + var endContainer = rng.endContainer; + var endOffset = rng.endOffset; + if (has(shortEndedElements, startContainer.nodeName.toLowerCase())) { + if (startOffset === 0) { + newRng.setStartBefore(startContainer); + } else { + newRng.setStartAfter(startContainer); + } + } else { + newRng.setStart(startContainer, startOffset); + } + if (has(shortEndedElements, endContainer.nodeName.toLowerCase())) { + if (endOffset === 0) { + newRng.setEndBefore(endContainer); + } else { + newRng.setEndAfter(endContainer); + } + } else { + newRng.setEnd(endContainer, endOffset); + } + return newRng; + }; + var setContentEditableSelection = function (range, forward) { + var node; + var $ = editor.$; + var dom = editor.dom; + var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone; + if (!range) { + return null; + } + if (range.collapsed) { + if (!isRangeInCaretContainer(range)) { + if (forward === false) { + caretPosition = getNormalizedRangeEndPoint(-1, rootNode, range); + if (isFakeCaretTarget(caretPosition.getNode(true))) { + return showCaret(-1, caretPosition.getNode(true), false, false); + } + if (isFakeCaretTarget(caretPosition.getNode())) { + return showCaret(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false); + } + } else { + caretPosition = getNormalizedRangeEndPoint(1, rootNode, range); + if (isFakeCaretTarget(caretPosition.getNode())) { + return showCaret(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false); + } + if (isFakeCaretTarget(caretPosition.getNode(true))) { + return showCaret(1, caretPosition.getNode(true), false, false); + } + } + } + return null; + } + startContainer = range.startContainer; + startOffset = range.startOffset; + endOffset = range.endOffset; + if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$b(startContainer.parentNode)) { + startContainer = startContainer.parentNode; + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + if (startContainer.nodeType !== 1) { + return null; + } + if (endOffset === startOffset + 1 && startContainer === range.endContainer) { + node = startContainer.childNodes[startOffset]; + } + if (!isContentEditableFalse$b(node)) { + return null; + } + targetClone = origTargetClone = node.cloneNode(true); + e = editor.fire('ObjectSelected', { + target: node, + targetClone: targetClone + }); + if (e.isDefaultPrevented()) { + return null; + } + $realSelectionContainer = descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () { + return $([]); + }, function (elm) { + return $([elm.dom()]); + }); + targetClone = e.targetClone; + if ($realSelectionContainer.length === 0) { + $realSelectionContainer = $('
').attr('id', realSelectionId); + $realSelectionContainer.appendTo(editor.getBody()); + } + range = editor.dom.createRng(); + if (targetClone === origTargetClone && Env.ie) { + $realSelectionContainer.empty().append('

\xA0

').append(targetClone); + range.setStartAfter($realSelectionContainer[0].firstChild.firstChild); + range.setEndAfter(targetClone); + } else { + $realSelectionContainer.empty().append(nbsp).append(targetClone).append(nbsp); + range.setStart($realSelectionContainer[0].firstChild, 1); + range.setEnd($realSelectionContainer[0].lastChild, 0); + } + $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y }); + $realSelectionContainer[0].focus(); + sel = editor.selection.getSel(); + sel.removeAllRanges(); + sel.addRange(range); + var nodeElm = Element.fromDom(node); + each(descendants$1(Element.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) { + if (!eq(nodeElm, elm)) { + remove$1(elm, 'data-mce-selected'); + } + }); + if (!editor.dom.getAttrib(node, 'data-mce-selected')) { + node.setAttribute('data-mce-selected', '1'); + } + selectedContentEditableNode = node; + hideFakeCaret(); + return range; + }; + var removeContentEditableSelection = function () { + if (selectedContentEditableNode) { + selectedContentEditableNode.removeAttribute('data-mce-selected'); + descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove); + selectedContentEditableNode = null; + } + descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove); + selectedContentEditableNode = null; + }; + var destroy = function () { + fakeCaret.destroy(); + selectedContentEditableNode = null; + }; + var hideFakeCaret = function () { + fakeCaret.hide(); + }; + if (Env.ceFalse) { + registerEvents(); + } + return { + showCaret: showCaret, + showBlockCaretContainer: showBlockCaretContainer, + hideFakeCaret: hideFakeCaret, + destroy: destroy + }; + }; + + var Quirks = function (editor) { + var each = Tools.each; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + var mceInternalUrlPrefix = 'data:text/mce-internal,'; + var mceInternalDataType = isIE ? 'Text' : 'URL'; + var setEditorCommandState = function (cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + } + }; + var isDefaultPrevented = function (e) { + return e.isDefaultPrevented(); + }; + var setMceInternalContent = function (e) { + var selectionHtml, internalContent; + if (e.dataTransfer) { + if (editor.selection.isCollapsed() && e.target.tagName === 'IMG') { + selection.select(e.target); + } + selectionHtml = editor.selection.getContent(); + if (selectionHtml.length > 0) { + internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml); + e.dataTransfer.setData(mceInternalDataType, internalContent); + } + } + }; + var getMceInternalContent = function (e) { + var internalContent; + if (e.dataTransfer) { + internalContent = e.dataTransfer.getData(mceInternalDataType); + if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) { + internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(','); + return { + id: unescape(internalContent[0]), + html: unescape(internalContent[1]) + }; + } + } + return null; + }; + var insertClipboardContents = function (content, internal) { + if (editor.queryCommandSupported('mceInsertClipboardContent')) { + editor.execCommand('mceInsertClipboardContent', false, { + content: content, + internal: internal + }); + } else { + editor.execCommand('mceInsertContent', false, content); + } + }; + var emptyEditorWhenDeleting = function () { + var serializeRng = function (rng) { + var body = dom.create('body'); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, { format: 'html' }); + }; + var allContentsSelected = function (rng) { + var selection = serializeRng(rng); + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); + var allSelection = serializeRng(allRng); + return selection === allSelection; + }; + editor.on('keydown', function (e) { + var keyCode = e.keyCode; + var isCollapsed, body; + if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); + if (isCollapsed && !dom.isEmpty(body)) { + return; + } + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } + e.preventDefault(); + editor.setContent(''); + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + editor.nodeChanged(); + } + }); + }; + var selectAll = function () { + editor.shortcuts.add('meta+a', null, 'SelectAll'); + }; + var inputMethodFocus = function () { + if (!editor.inline) { + dom.bind(editor.getDoc(), 'mousedown mouseup', function (e) { + var rng; + if (e.target === editor.getDoc().documentElement) { + rng = selection.getRng(); + editor.getBody().focus(); + if (e.type === 'mousedown') { + if (isCaretContainer(rng.startContainer)) { + return; + } + selection.placeCaretAt(e.clientX, e.clientY); + } else { + selection.setRng(rng); + } + } + }); + } + }; + var removeHrOnBackspace = function () { + editor.on('keydown', function (e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (!editor.getBody().getElementsByTagName('hr').length) { + return; + } + if (selection.isCollapsed() && selection.getRng().startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; + if (node.nodeName === 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + }; + var focusBody = function () { + if (!domGlobals.Range.prototype.getClientRects) { + editor.on('mousedown', function (e) { + if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') { + var body_1 = editor.getBody(); + body_1.blur(); + Delay.setEditorTimeout(editor, function () { + body_1.focus(); + }); + } + }); + } + }; + var selectControlElements = function () { + editor.on('click', function (e) { + var target = e.target; + if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') { + e.preventDefault(); + editor.selection.select(target); + editor.nodeChanged(); + } + if (target.nodeName === 'A' && dom.hasClass(target, 'mce-item-anchor')) { + e.preventDefault(); + selection.select(target); + } + }); + }; + var removeStylesWhenDeletingAcrossBlockElements = function () { + var getAttributeApplyFunction = function () { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); + return function () { + var target = selection.getStart(); + if (target !== editor.getBody()) { + dom.setAttrib(target, 'style', null); + each(template, function (attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + }; + var isSelectionAcrossElements = function () { + return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock); + }; + editor.on('keypress', function (e) { + var applyAttributes; + if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); + dom.bind(editor.getDoc(), 'cut', function (e) { + var applyAttributes; + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + Delay.setEditorTimeout(editor, function () { + applyAttributes(); + }); + } + }); + }; + var disableBackspaceIntoATable = function () { + editor.on('keydown', function (e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng().startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') { + e.preventDefault(); + return false; + } + } + } + }); + }; + var removeBlockQuoteOnBackSpace = function () { + editor.on('keydown', function (e) { + var rng, container, offset, root, parent; + if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) { + return; + } + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; + if (!rng.collapsed || offset !== 0) { + return; + } + while (parent && parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) { + parent = parent.parentNode; + } + if (parent.tagName === 'BLOCKQUOTE') { + editor.formatter.toggle('blockquote', null, parent); + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + }; + var setGeckoEditingOptions = function () { + var setOpts = function () { + setEditorCommandState('StyleWithCSS', false); + setEditorCommandState('enableInlineTableEditing', false); + if (!settings.object_resizing) { + setEditorCommandState('enableObjectResizing', false); + } + }; + if (!settings.readonly) { + editor.on('BeforeExecCommand mousedown', setOpts); + } + }; + var addBrAfterLastLinks = function () { + var fixLinks = function () { + each(dom.select('a'), function (node) { + var parentNode = node.parentNode; + var root = dom.getRoot(); + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } + parentNode = parentNode.parentNode; + } + dom.add(parentNode, 'br', { 'data-mce-bogus': 1 }); + } + }); + }; + editor.on('SetContent ExecCommand', function (e) { + if (e.type === 'setcontent' || e.command === 'mceInsertLink') { + fixLinks(); + } + }); + }; + var setDefaultBlockType = function () { + if (settings.forced_root_block) { + editor.on('init', function () { + setEditorCommandState('DefaultParagraphSeparator', Settings.getForcedRootBlock(editor)); + }); + } + }; + var normalizeSelection = function () { + editor.on('keyup focusin mouseup', function (e) { + if (!VK.modifierPressed(e)) { + selection.normalize(); + } + }, true); + }; + var showBrokenImageIcon = function () { + editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}'); + }; + var restoreFocusOnKeyDown = function () { + if (!editor.inline) { + editor.on('keydown', function () { + if (domGlobals.document.activeElement === domGlobals.document.body) { + editor.getWin().focus(); + } + }); + } + }; + var bodyHeight = function () { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function (e) { + var rng; + if (e.target.nodeName === 'HTML') { + if (Env.ie > 11) { + editor.getBody().focus(); + return; + } + rng = editor.selection.getRng(); + editor.getBody().focus(); + editor.selection.setRng(rng); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + }; + var blockCmdArrowNavigation = function () { + if (Env.mac) { + editor.on('keydown', function (e) { + if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) { + e.preventDefault(); + var selection_1 = editor.selection.getSel(); + selection_1.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary'); + } + }); + } + }; + var disableAutoUrlDetect = function () { + setEditorCommandState('AutoUrlDetect', false); + }; + var tapLinksAndImages = function () { + editor.on('click', function (e) { + var elm = e.target; + do { + if (elm.tagName === 'A') { + e.preventDefault(); + return; + } + } while (elm = elm.parentNode); + }); + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + }; + var blockFormSubmitInsideEditor = function () { + editor.on('init', function () { + editor.dom.bind(editor.getBody(), 'submit', function (e) { + e.preventDefault(); + }); + }); + }; + var removeAppleInterchangeBrs = function () { + parser.addNodeFilter('br', function (nodes) { + var i = nodes.length; + while (i--) { + if (nodes[i].attr('class') === 'Apple-interchange-newline') { + nodes[i].remove(); + } + } + }); + }; + var ieInternalDragAndDrop = function () { + editor.on('dragstart', function (e) { + setMceInternalContent(e); + }); + editor.on('drop', function (e) { + if (!isDefaultPrevented(e)) { + var internalContent = getMceInternalContent(e); + if (internalContent && internalContent.id !== editor.id) { + e.preventDefault(); + var rng = CaretRangeFromPoint.fromPoint(e.x, e.y, editor.getDoc()); + selection.setRng(rng); + insertClipboardContents(internalContent.html, true); + } + } + }); + }; + var refreshContentEditable = function () { + }; + var isHidden = function () { + var sel; + if (!isGecko || editor.removed) { + return false; + } + sel = editor.selection.getSel(); + return !sel || !sel.rangeCount || sel.rangeCount === 0; + }; + removeBlockQuoteOnBackSpace(); + emptyEditorWhenDeleting(); + if (!Env.windowsPhone) { + normalizeSelection(); + } + if (isWebKit) { + inputMethodFocus(); + selectControlElements(); + setDefaultBlockType(); + blockFormSubmitInsideEditor(); + disableBackspaceIntoATable(); + removeAppleInterchangeBrs(); + if (Env.iOS) { + restoreFocusOnKeyDown(); + bodyHeight(); + tapLinksAndImages(); + } else { + selectAll(); + } + } + if (Env.ie >= 11) { + bodyHeight(); + disableBackspaceIntoATable(); + } + if (Env.ie) { + selectAll(); + disableAutoUrlDetect(); + ieInternalDragAndDrop(); + } + if (isGecko) { + removeHrOnBackspace(); + focusBody(); + removeStylesWhenDeletingAcrossBlockElements(); + setGeckoEditingOptions(); + addBrAfterLastLinks(); + showBrokenImageIcon(); + blockCmdArrowNavigation(); + disableBackspaceIntoATable(); + } + return { + refreshContentEditable: refreshContentEditable, + isHidden: isHidden + }; + }; + + var DOM$4 = DOMUtils$1.DOM; + var appendStyle = function (editor, text) { + var head = Element.fromDom(editor.getDoc().head); + var tag = Element.fromTag('style'); + set(tag, 'type', 'text/css'); + append(tag, Element.fromText(text)); + append(head, tag); + }; + var createParser = function (editor) { + var parser = DomParser(editor.settings, editor.schema); + parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name) { + var i = nodes.length, node, value; + var dom = editor.dom; + var internalName = 'data-mce-' + name; + while (i--) { + node = nodes[i]; + value = node.attr(name); + if (value && !node.attr(internalName)) { + if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) { + continue; + } + if (name === 'style') { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + if (!value.length) { + value = null; + } + node.attr(internalName, value); + node.attr(name, value); + } else if (name === 'tabindex') { + node.attr(internalName, value); + node.attr(name, null); + } else { + node.attr(internalName, editor.convertURL(value, name, node.name)); + } + } + } + }); + parser.addNodeFilter('script', function (nodes) { + var i = nodes.length, node, type; + while (i--) { + node = nodes[i]; + type = node.attr('type') || 'no/type'; + if (type.indexOf('mce-') !== 0) { + node.attr('type', 'mce-' + type); + } + } + }); + if (editor.settings.preserve_cdata) { + parser.addNodeFilter('#cdata', function (nodes) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + node.type = 8; + node.name = '#comment'; + node.value = '[CDATA[' + editor.dom.encode(node.value) + ']]'; + } + }); + } + parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function (nodes) { + var i = nodes.length, node; + var nonEmptyElements = editor.schema.getNonEmptyElements(); + while (i--) { + node = nodes[i]; + if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) { + node.append(new Node$1('br', 1)).shortEnded = true; + } + } + }); + return parser; + }; + var autoFocus = function (editor) { + if (editor.settings.auto_focus) { + Delay.setEditorTimeout(editor, function () { + var focusEditor; + if (editor.settings.auto_focus === true) { + focusEditor = editor; + } else { + focusEditor = editor.editorManager.get(editor.settings.auto_focus); + } + if (!focusEditor.destroyed) { + focusEditor.focus(); + } + }, 100); + } + }; + var moveSelectionToFirstCaretPosition = function (editor) { + var root = editor.dom.getRoot(); + if (!editor.inline && (!hasAnyRanges(editor) || editor.selection.getStart(true) === root)) { + CaretFinder.firstPositionIn(root).each(function (pos) { + var node = pos.getNode(); + var caretPos = NodeType.isTable(node) ? CaretFinder.firstPositionIn(node).getOr(pos) : pos; + if (Env.browser.isIE()) { + SelectionBookmark.storeNative(editor, caretPos.toRange()); + } else { + editor.selection.setRng(caretPos.toRange()); + } + }); + } + }; + var initEditor = function (editor) { + editor.bindPendingEventDelegates(); + editor.initialized = true; + fireInit(editor); + editor.focus(true); + moveSelectionToFirstCaretPosition(editor); + editor.nodeChanged({ initial: true }); + editor.execCallback('init_instance_callback', editor); + autoFocus(editor); + }; + var getStyleSheetLoader = function (editor) { + return editor.inline ? DOM$4.styleSheetLoader : editor.dom.styleSheetLoader; + }; + var initContentBody = function (editor, skipWrite) { + var settings = editor.settings; + var targetElm = editor.getElement(); + var doc = editor.getDoc(), body, contentCssText; + if (!settings.inline) { + editor.getElement().style.visibility = editor.orgVisibility; + } + if (!skipWrite && !editor.inline) { + doc.open(); + doc.write(editor.iframeHTML); + doc.close(); + } + if (editor.inline) { + editor.on('remove', function () { + var bodyEl = this.getBody(); + DOM$4.removeClass(bodyEl, 'mce-content-body'); + DOM$4.removeClass(bodyEl, 'mce-edit-focus'); + DOM$4.setAttrib(bodyEl, 'contentEditable', null); + }); + DOM$4.addClass(targetElm, 'mce-content-body'); + editor.contentDocument = doc = domGlobals.document; + editor.contentWindow = domGlobals.window; + editor.bodyElement = targetElm; + editor.contentAreaContainer = targetElm; + settings.root_name = targetElm.nodeName.toLowerCase(); + } + body = editor.getBody(); + body.disabled = true; + editor.readonly = !!settings.readonly; + if (!editor.readonly) { + if (editor.inline && DOM$4.getStyle(body, 'position', true) === 'static') { + body.style.position = 'relative'; + } + body.contentEditable = editor.getParam('content_editable_state', true); + } + body.disabled = false; + editor.editorUpload = EditorUpload(editor); + editor.schema = Schema(settings); + editor.dom = DOMUtils$1(doc, { + keep_values: true, + url_converter: editor.convertURL, + url_converter_scope: editor, + hex_colors: settings.force_hex_style_colors, + update_styles: true, + root_element: editor.inline ? editor.getBody() : null, + collect: function () { + return editor.inline; + }, + schema: editor.schema, + contentCssCors: Settings.shouldUseContentCssCors(editor), + referrerPolicy: Settings.getReferrerPolicy(editor), + onSetAttrib: function (e) { + editor.fire('SetAttrib', e); + } + }); + editor.parser = createParser(editor); + editor.serializer = Serializer$1(settings, editor); + editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor); + editor.annotator = Annotator(editor); + editor.formatter = Formatter(editor); + editor.undoManager = UndoManager(editor); + editor._nodeChangeDispatcher = new NodeChange(editor); + editor._selectionOverrides = SelectionOverrides(editor); + TouchEvents.setup(editor); + setup$h(editor); + setup$i(editor); + KeyboardOverrides.setup(editor); + ForceBlocks.setup(editor); + setup$6(editor); + firePreInit(editor); + if (!settings.browser_spellcheck && !settings.gecko_spellcheck) { + doc.body.spellcheck = false; + DOM$4.setAttrib(body, 'spellcheck', 'false'); + } + editor.quirks = Quirks(editor); + firePostRender(editor); + var directionality = Settings.getDirectionality(editor); + if (directionality !== undefined) { + body.dir = directionality; + } + if (settings.protect) { + editor.on('BeforeSetContent', function (e) { + Tools.each(settings.protect, function (pattern) { + e.content = e.content.replace(pattern, function (str) { + return ''; + }); + }); + }); + } + editor.on('SetContent', function () { + editor.addVisual(editor.getBody()); + }); + editor.load({ + initial: true, + format: 'html' + }); + editor.startContent = editor.getContent({ format: 'raw' }); + editor.on('compositionstart compositionend', function (e) { + editor.composing = e.type === 'compositionstart'; + }); + if (editor.contentStyles.length > 0) { + contentCssText = ''; + Tools.each(editor.contentStyles, function (style) { + contentCssText += style + '\r\n'; + }); + editor.dom.addStyle(contentCssText); + } + getStyleSheetLoader(editor).loadAll(editor.contentCSS, function (_) { + initEditor(editor); + }, function (urls) { + initEditor(editor); + }); + if (settings.content_style) { + appendStyle(editor, settings.content_style); + } + }; + var InitContentBody = { initContentBody: initContentBody }; + + var DOM$5 = DOMUtils$1.DOM; + var relaxDomain = function (editor, ifr) { + if (domGlobals.document.domain !== domGlobals.window.location.hostname && Env.browser.isIE()) { + var bodyUuid = Uuid.uuid('mce'); + editor[bodyUuid] = function () { + InitContentBody.initContentBody(editor); + }; + var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain="' + domGlobals.document.domain + '";' + 'var ed = window.parent.tinymce.get("' + editor.id + '");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()'; + DOM$5.setAttrib(ifr, 'src', domainRelaxUrl); + return true; + } + return false; + }; + var createIframeElement = function (id, title, height, customAttrs) { + var iframe = Element.fromTag('iframe'); + setAll(iframe, customAttrs); + setAll(iframe, { + id: id + '_ifr', + frameBorder: '0', + allowTransparency: 'true', + title: title + }); + add$3(iframe, 'tox-edit-area__iframe'); + return iframe; + }; + var getIframeHtml = function (editor) { + var bodyId, bodyClass, iframeHTML; + iframeHTML = Settings.getDocType(editor) + ''; + if (Settings.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) { + iframeHTML += ''; + } + iframeHTML += ''; + bodyId = Settings.getBodyId(editor); + bodyClass = Settings.getBodyClass(editor); + if (Settings.getContentSecurityPolicy(editor)) { + iframeHTML += ''; + } + iframeHTML += '
'; + return iframeHTML; + }; + var createIframe = function (editor, o) { + var title = editor.editorManager.translate('Rich Text Area. Press ALT-0 for help.'); + var ifr = createIframeElement(editor.id, title, o.height, Settings.getIframeAttrs(editor)).dom(); + ifr.onload = function () { + ifr.onload = null; + editor.fire('load'); + }; + var isDomainRelaxed = relaxDomain(editor, ifr); + editor.contentAreaContainer = o.iframeContainer; + editor.iframeElement = ifr; + editor.iframeHTML = getIframeHtml(editor); + DOM$5.add(o.iframeContainer, ifr); + return isDomainRelaxed; + }; + var init$1 = function (editor, boxInfo) { + var isDomainRelaxed = createIframe(editor, boxInfo); + if (boxInfo.editorContainer) { + DOM$5.get(boxInfo.editorContainer).style.display = editor.orgDisplay; + editor.hidden = DOM$5.isHidden(boxInfo.editorContainer); + } + editor.getElement().style.display = 'none'; + DOM$5.setAttrib(editor.id, 'aria-hidden', 'true'); + if (!isDomainRelaxed) { + InitContentBody.initContentBody(editor); + } + }; + var InitIframe = { init: init$1 }; + + var DOM$6 = DOMUtils$1.DOM; + var initPlugin = function (editor, initializedPlugins, plugin) { + var Plugin = PluginManager.get(plugin); + var pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\/$/, ''); + plugin = Tools.trim(plugin); + if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) { + Tools.each(PluginManager.dependencies(plugin), function (dep) { + initPlugin(editor, initializedPlugins, dep); + }); + if (editor.plugins[plugin]) { + return; + } + try { + var pluginInstance = new Plugin(editor, pluginUrl, editor.$); + editor.plugins[plugin] = pluginInstance; + if (pluginInstance.init) { + pluginInstance.init(editor, pluginUrl); + initializedPlugins.push(plugin); + } + } catch (e) { + ErrorReporter.pluginInitError(editor, plugin, e); + } + } + }; + var trimLegacyPrefix = function (name) { + return name.replace(/^\-/, ''); + }; + var initPlugins = function (editor) { + var initializedPlugins = []; + Tools.each(editor.settings.plugins.split(/[ ,]/), function (name) { + initPlugin(editor, initializedPlugins, trimLegacyPrefix(name)); + }); + }; + var initIcons = function (editor) { + var iconPackName = Tools.trim(editor.settings.icons); + var currentIcons = editor.ui.registry.getAll().icons; + var defaultIcons = getAll(); + var loadIcons = __assign(__assign({}, defaultIcons), IconManager.get(iconPackName).icons); + each$1(loadIcons, function (svgData, icon) { + if (!has(currentIcons, icon)) { + editor.ui.registry.addIcon(icon, svgData); + } + }); + }; + var initTheme = function (editor) { + var theme = editor.settings.theme; + if (isString(theme)) { + editor.settings.theme = trimLegacyPrefix(theme); + var Theme = ThemeManager.get(theme); + editor.theme = new Theme(editor, ThemeManager.urls[theme]); + if (editor.theme.init) { + editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\/$/, ''), editor.$); + } + } else { + editor.theme = {}; + } + }; + var renderFromLoadedTheme = function (editor) { + return editor.theme.renderUI(); + }; + var renderFromThemeFunc = function (editor) { + var elm = editor.getElement(); + var theme = editor.settings.theme; + var info = theme(editor, elm); + if (info.editorContainer.nodeType) { + info.editorContainer.id = info.editorContainer.id || editor.id + '_parent'; + } + if (info.iframeContainer && info.iframeContainer.nodeType) { + info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer'; + } + info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight; + return info; + }; + var createThemeFalseResult = function (element) { + return { + editorContainer: element, + iframeContainer: element + }; + }; + var renderThemeFalseIframe = function (targetElement) { + var iframeContainer = DOM$6.create('div'); + DOM$6.insertAfter(iframeContainer, targetElement); + return createThemeFalseResult(iframeContainer); + }; + var renderThemeFalse = function (editor) { + var targetElement = editor.getElement(); + return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement); + }; + var renderThemeUi = function (editor) { + var elm = editor.getElement(); + editor.orgDisplay = elm.style.display; + if (isString(editor.settings.theme)) { + return renderFromLoadedTheme(editor); + } else if (isFunction(editor.settings.theme)) { + return renderFromThemeFunc(editor); + } else { + return renderThemeFalse(editor); + } + }; + var init$2 = function (editor) { + editor.fire('ScriptsLoaded'); + initIcons(editor); + initTheme(editor); + initPlugins(editor); + var boxInfo = renderThemeUi(editor); + editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null; + appendContentCssFromSettings(editor); + if (editor.inline) { + return InitContentBody.initContentBody(editor); + } else { + return InitIframe.init(editor, boxInfo); + } + }; + var Init = { init: init$2 }; + + var DOM$7 = DOMUtils$1.DOM; + var hasSkipLoadPrefix = function (name) { + return name.charAt(0) === '-'; + }; + var loadLanguage = function (scriptLoader, editor) { + var languageCode = Settings.getLanguageCode(editor); + var languageUrl = Settings.getLanguageUrl(editor); + if (I18n.hasCode(languageCode) === false && languageCode !== 'en') { + var url_1 = languageUrl !== '' ? languageUrl : editor.editorManager.baseURL + '/langs/' + languageCode + '.js'; + scriptLoader.add(url_1, noop, undefined, function () { + ErrorReporter.languageLoadError(editor, url_1, languageCode); + }); + } + }; + var loadTheme = function (scriptLoader, editor, suffix, callback) { + var settings = editor.settings, theme = settings.theme; + if (isString(theme)) { + if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) { + var themeUrl = settings.theme_url; + if (themeUrl) { + ThemeManager.load(theme, editor.documentBaseURI.toAbsolute(themeUrl)); + } else { + ThemeManager.load(theme, 'themes/' + theme + '/theme' + suffix + '.js'); + } + } + scriptLoader.loadQueue(function () { + ThemeManager.waitFor(theme, callback); + }); + } else { + callback(); + } + }; + var getIconsUrlMetaFromUrl = function (editor) { + return Option.from(Settings.getIconsUrl(editor)).filter(function (url) { + return url.length > 0; + }).map(function (url) { + return { + url: url, + name: Option.none() + }; + }); + }; + var getIconsUrlMetaFromName = function (editor) { + return Option.from(Settings.getIconPackName(editor)).filter(function (name) { + return name.length > 0 && !IconManager.has(name); + }).map(function (name) { + return { + url: editor.editorManager.baseURL + '/icons/' + name + '/icons.js', + name: Option.some(name) + }; + }); + }; + var loadIcons = function (scriptLoader, editor) { + getIconsUrlMetaFromUrl(editor).orThunk(function () { + return getIconsUrlMetaFromName(editor); + }).each(function (urlMeta) { + scriptLoader.add(urlMeta.url, noop, undefined, function () { + ErrorReporter.iconsLoadError(editor, urlMeta.url, urlMeta.name.getOrUndefined()); + }); + }); + }; + var loadPlugins = function (editor, settings, suffix) { + if (isArray(settings.plugins)) { + settings.plugins = settings.plugins.join(' '); + } + Tools.each(settings.external_plugins, function (url, name) { + PluginManager.load(name, url, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, url, name); + }); + settings.plugins += ' ' + name; + }); + Tools.each(settings.plugins.split(/[ ,]/), function (plugin) { + plugin = Tools.trim(plugin); + if (plugin && !PluginManager.urls[plugin]) { + if (hasSkipLoadPrefix(plugin)) { + plugin = plugin.substr(1, plugin.length); + var dependencies = PluginManager.dependencies(plugin); + Tools.each(dependencies, function (depPlugin) { + var defaultSettings = { + prefix: 'plugins/', + resource: depPlugin, + suffix: '/plugin' + suffix + '.js' + }; + var dep = PluginManager.createUrl(defaultSettings, depPlugin); + PluginManager.load(dep.resource, dep, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, dep.prefix + dep.resource + dep.suffix, dep.resource); + }); + }); + } else { + var url_2 = { + prefix: 'plugins/', + resource: plugin, + suffix: '/plugin' + suffix + '.js' + }; + PluginManager.load(plugin, url_2, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, url_2.prefix + url_2.resource + url_2.suffix, plugin); + }); + } + } + }); + }; + var loadScripts = function (editor, suffix) { + var scriptLoader = ScriptLoader.ScriptLoader; + loadTheme(scriptLoader, editor, suffix, function () { + loadLanguage(scriptLoader, editor); + loadIcons(scriptLoader, editor); + loadPlugins(editor, editor.settings, suffix); + scriptLoader.loadQueue(function () { + if (!editor.removed) { + Init.init(editor); + } + }, editor, function () { + if (!editor.removed) { + Init.init(editor); + } + }); + }); + }; + var render = function (editor) { + var settings = editor.settings, id = editor.id; + I18n.setCode(Settings.getLanguageCode(editor)); + var readyHandler = function () { + DOM$7.unbind(domGlobals.window, 'ready', readyHandler); + editor.render(); + }; + if (!EventUtils.Event.domLoaded) { + DOM$7.bind(domGlobals.window, 'ready', readyHandler); + return; + } + if (!editor.getElement()) { + return; + } + if (!Env.contentEditable) { + return; + } + if (!settings.inline) { + editor.orgVisibility = editor.getElement().style.visibility; + editor.getElement().style.visibility = 'hidden'; + } else { + editor.inline = true; + } + var form = editor.getElement().form || DOM$7.getParent(id, 'form'); + if (form) { + editor.formElement = form; + if (settings.hidden_input && !NodeType.isTextareaOrInput(editor.getElement())) { + DOM$7.insertAfter(DOM$7.create('input', { + type: 'hidden', + name: id + }), id); + editor.hasHiddenInput = true; + } + editor.formEventDelegate = function (e) { + editor.fire(e.type, e); + }; + DOM$7.bind(form, 'submit reset', editor.formEventDelegate); + editor.on('reset', function () { + editor.resetContent(); + }); + if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) { + form._mceOldSubmit = form.submit; + form.submit = function () { + editor.editorManager.triggerSave(); + editor.setDirty(false); + return form._mceOldSubmit(form); + }; + } + } + editor.windowManager = WindowManager(editor); + editor.notificationManager = NotificationManager(editor); + if (settings.encoding === 'xml') { + editor.on('GetContent', function (e) { + if (e.save) { + e.content = DOM$7.encode(e.content); + } + }); + } + if (settings.add_form_submit_trigger) { + editor.on('submit', function () { + if (editor.initialized) { + editor.save(); + } + }); + } + if (settings.add_unload_trigger) { + editor._beforeUnload = function () { + if (editor.initialized && !editor.destroyed && !editor.isHidden()) { + editor.save({ + format: 'raw', + no_events: true, + set_dirty: false + }); + } + }; + editor.editorManager.on('BeforeUnload', editor._beforeUnload); + } + editor.editorManager.add(editor); + loadScripts(editor, editor.suffix); + }; + var Render = { render: render }; + + var hasOnlyOneChild$1 = function (node) { + return node.firstChild && node.firstChild === node.lastChild; + }; + var isPaddingNode = function (node) { + return node.name === 'br' || node.value === nbsp; + }; + var isPaddedEmptyBlock = function (schema, node) { + var blockElements = schema.getBlockElements(); + return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild); + }; + var isEmptyFragmentElement = function (schema, node) { + var nonEmptyElements = schema.getNonEmptyElements(); + return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node)); + }; + var isListFragment = function (schema, fragment) { + var firstChild = fragment.firstChild; + var lastChild = fragment.lastChild; + if (firstChild && firstChild.name === 'meta') { + firstChild = firstChild.next; + } + if (lastChild && lastChild.attr('id') === 'mce_marker') { + lastChild = lastChild.prev; + } + if (isEmptyFragmentElement(schema, lastChild)) { + lastChild = lastChild.prev; + } + if (!firstChild || firstChild !== lastChild) { + return false; + } + return firstChild.name === 'ul' || firstChild.name === 'ol'; + }; + var cleanupDomFragment = function (domFragment) { + var firstChild = domFragment.firstChild; + var lastChild = domFragment.lastChild; + if (firstChild && firstChild.nodeName === 'META') { + firstChild.parentNode.removeChild(firstChild); + } + if (lastChild && lastChild.id === 'mce_marker') { + lastChild.parentNode.removeChild(lastChild); + } + return domFragment; + }; + var toDomFragment = function (dom, serializer, fragment) { + var html = serializer.serialize(fragment); + var domFragment = dom.createFragment(html); + return cleanupDomFragment(domFragment); + }; + var listItems$1 = function (elm) { + return Tools.grep(elm.childNodes, function (child) { + return child.nodeName === 'LI'; + }); + }; + var isPadding = function (node) { + return node.data === nbsp || NodeType.isBr(node); + }; + var isListItemPadded = function (node) { + return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild); + }; + var isEmptyOrPadded = function (elm) { + return !elm.firstChild || isListItemPadded(elm); + }; + var trimListItems = function (elms) { + return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms; + }; + var getParentLi = function (dom, node) { + var parentBlock = dom.getParent(node, dom.isBlock); + return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null; + }; + var isParentBlockLi = function (dom, node) { + return !!getParentLi(dom, node); + }; + var getSplit = function (parentNode, rng) { + var beforeRng = rng.cloneRange(); + var afterRng = rng.cloneRange(); + beforeRng.setStartBefore(parentNode); + afterRng.setEndAfter(parentNode); + return [ + beforeRng.cloneContents(), + afterRng.cloneContents() + ]; + }; + var findFirstIn = function (node, rootNode) { + var caretPos = CaretPosition$1.before(node); + var caretWalker = CaretWalker(rootNode); + var newCaretPos = caretWalker.next(caretPos); + return newCaretPos ? newCaretPos.toRange() : null; + }; + var findLastOf = function (node, rootNode) { + var caretPos = CaretPosition$1.after(node); + var caretWalker = CaretWalker(rootNode); + var newCaretPos = caretWalker.prev(caretPos); + return newCaretPos ? newCaretPos.toRange() : null; + }; + var insertMiddle = function (target, elms, rootNode, rng) { + var parts = getSplit(target, rng); + var parentElm = target.parentNode; + parentElm.insertBefore(parts[0], target); + Tools.each(elms, function (li) { + parentElm.insertBefore(li, target); + }); + parentElm.insertBefore(parts[1], target); + parentElm.removeChild(target); + return findLastOf(elms[elms.length - 1], rootNode); + }; + var insertBefore$1 = function (target, elms, rootNode) { + var parentElm = target.parentNode; + Tools.each(elms, function (elm) { + parentElm.insertBefore(elm, target); + }); + return findFirstIn(target, rootNode); + }; + var insertAfter$1 = function (target, elms, rootNode, dom) { + dom.insertAfter(elms.reverse(), target); + return findLastOf(elms[0], rootNode); + }; + var insertAtCaret = function (serializer, dom, rng, fragment) { + var domFragment = toDomFragment(dom, serializer, fragment); + var liTarget = getParentLi(dom, rng.startContainer); + var liElms = trimListItems(listItems$1(domFragment.firstChild)); + var BEGINNING = 1, END = 2; + var rootNode = dom.getRoot(); + var isAt = function (location) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + var caretWalker = CaretWalker(dom.getRoot()); + var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos); + return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true; + }; + if (isAt(BEGINNING)) { + return insertBefore$1(liTarget, liElms, rootNode); + } else if (isAt(END)) { + return insertAfter$1(liTarget, liElms, rootNode, dom); + } + return insertMiddle(liTarget, liElms, rootNode, rng); + }; + var InsertList = { + isListFragment: isListFragment, + insertAtCaret: insertAtCaret, + isParentBlockLi: isParentBlockLi, + trimListItems: trimListItems, + listItems: listItems$1 + }; + + var isAfterNbsp = function (container, offset) { + return NodeType.isText(container) && container.nodeValue[offset - 1] === nbsp; + }; + var trimOrPadLeftRight = function (rng, html) { + var container, offset; + container = rng.startContainer; + offset = rng.startOffset; + var hasSiblingText = function (siblingName) { + return container[siblingName] && container[siblingName].nodeType === 3; + }; + if (container.nodeType === 3) { + if (offset > 0) { + html = html.replace(/^ /, ' '); + } else if (!hasSiblingText('previousSibling')) { + html = html.replace(/^ /, ' '); + } + if (offset < container.length) { + html = html.replace(/ (
|)$/, ' '); + } else if (!hasSiblingText('nextSibling')) { + html = html.replace(/( | )(
|)$/, ' '); + } + } + return html; + }; + var trimNbspAfterDeleteAndPadValue = function (rng, value) { + var container, offset; + container = rng.startContainer; + offset = rng.startOffset; + if (container.nodeType === 3 && rng.collapsed) { + if (container.data[offset] === nbsp) { + container.deleteData(offset, 1); + if (!/[\u00a0| ]$/.test(value)) { + value += ' '; + } + } else if (container.data[offset - 1] === nbsp) { + container.deleteData(offset - 1, 1); + if (!/[\u00a0| ]$/.test(value)) { + value = ' ' + value; + } + } + } + return value; + }; + + var isTableCell$5 = NodeType.matchNodeNames([ + 'td', + 'th' + ]); + var selectionSetContent = function (editor, content) { + var rng = editor.selection.getRng(); + var container = rng.startContainer; + var offset = rng.startOffset; + if (rng.collapsed && isAfterNbsp(container, offset) && NodeType.isText(container)) { + container.insertData(offset - 1, ' '); + container.deleteData(offset, 1); + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + editor.selection.setContent(content); + }; + var validInsertion = function (editor, value, parentNode) { + if (parentNode.getAttribute('data-mce-bogus') === 'all') { + parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode); + } else { + var node = parentNode.firstChild; + var node2 = parentNode.lastChild; + if (!node || node === node2 && node.nodeName === 'BR') { + editor.dom.setHTML(parentNode, value); + } else { + selectionSetContent(editor, value); + } + } + }; + var trimBrsFromTableCell = function (dom, elm) { + Option.from(dom.getParent(elm, 'td,th')).map(Element.fromDom).each(PaddingBr.trimBlockTrailingBr); + }; + var reduceInlineTextElements = function (editor, merge) { + var textInlineElements = editor.schema.getTextInlineElements(); + var dom = editor.dom; + if (merge) { + var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom); + Tools.each(dom.select('*[data-mce-fragment]'), function (node) { + for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) { + if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) { + dom.remove(node, true); + } + } + }); + } + }; + var markFragmentElements = function (fragment) { + var node = fragment; + while (node = node.walk()) { + if (node.type === 1) { + node.attr('data-mce-fragment', '1'); + } + } + }; + var umarkFragmentElements = function (elm) { + Tools.each(elm.getElementsByTagName('*'), function (elm) { + elm.removeAttribute('data-mce-fragment'); + }); + }; + var isPartOfFragment = function (node) { + return !!node.getAttribute('data-mce-fragment'); + }; + var canHaveChildren = function (editor, node) { + return node && !editor.schema.getShortEndedElements()[node.nodeName]; + }; + var moveSelectionToMarker = function (editor, marker) { + var parentEditableFalseElm, parentBlock, nextRng; + var dom = editor.dom, selection = editor.selection; + var node, node2; + var getContentEditableFalseParent = function (node) { + var root = editor.getBody(); + for (; node && node !== root; node = node.parentNode) { + if (editor.dom.getContentEditable(node) === 'false') { + return node; + } + } + return null; + }; + if (!marker) { + return; + } + editor.selection.scrollIntoView(marker); + parentEditableFalseElm = getContentEditableFalseParent(marker); + if (parentEditableFalseElm) { + dom.remove(marker); + selection.select(parentEditableFalseElm); + return; + } + var rng = dom.createRng(); + node = marker.previousSibling; + if (node && node.nodeType === 3) { + rng.setStart(node, node.nodeValue.length); + if (!Env.ie) { + node2 = marker.nextSibling; + if (node2 && node2.nodeType === 3) { + node.appendData(node2.data); + node2.parentNode.removeChild(node2); + } + } + } else { + rng.setStartBefore(marker); + rng.setEndBefore(marker); + } + var findNextCaretRng = function (rng) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + var caretWalker = CaretWalker(editor.getBody()); + caretPos = caretWalker.next(caretPos); + if (caretPos) { + return caretPos.toRange(); + } + }; + parentBlock = dom.getParent(marker, dom.isBlock); + dom.remove(marker); + if (parentBlock && dom.isEmpty(parentBlock)) { + editor.$(parentBlock).empty(); + rng.setStart(parentBlock, 0); + rng.setEnd(parentBlock, 0); + if (!isTableCell$5(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) { + rng = nextRng; + dom.remove(parentBlock); + } else { + dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' })); + } + } + selection.setRng(rng); + }; + var insertHtmlAtCaret = function (editor, value, details) { + var parser, serializer, parentNode, rootNode, fragment, args; + var marker, rng, node, bookmarkHtml, merge; + var selection = editor.selection, dom = editor.dom; + if (/^ | $/.test(value)) { + value = trimOrPadLeftRight(selection.getRng(), value); + } + parser = editor.parser; + merge = details.merge; + serializer = Serializer({ validate: editor.settings.validate }, editor.schema); + bookmarkHtml = '​'; + args = { + content: value, + format: 'html', + selection: true, + paste: details.paste + }; + args = editor.fire('BeforeSetContent', args); + if (args.isDefaultPrevented()) { + editor.fire('SetContent', { + content: args.content, + format: 'html', + selection: true, + paste: details.paste + }); + return; + } + value = args.content; + if (value.indexOf('{$caret}') === -1) { + value += '{$caret}'; + } + value = value.replace(/\{\$caret\}/, bookmarkHtml); + rng = selection.getRng(); + var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null); + var body = editor.getBody(); + if (caretElement === body && selection.isCollapsed()) { + if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) { + rng = dom.createRng(); + rng.setStart(body.firstChild, 0); + rng.setEnd(body.firstChild, 0); + selection.setRng(rng); + } + } + if (!selection.isCollapsed()) { + editor.selection.setRng(RangeNormalizer.normalize(editor.selection.getRng())); + editor.getDoc().execCommand('Delete', false, null); + value = trimNbspAfterDeleteAndPadValue(editor.selection.getRng(), value); + } + parentNode = selection.getNode(); + var parserArgs = { + context: parentNode.nodeName.toLowerCase(), + data: details.data, + insert: true + }; + fragment = parser.parse(value, parserArgs); + if (details.paste === true && InsertList.isListFragment(editor.schema, fragment) && InsertList.isParentBlockLi(dom, parentNode)) { + rng = InsertList.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment); + editor.selection.setRng(rng); + editor.fire('SetContent', args); + return; + } + markFragmentElements(fragment); + node = fragment.lastChild; + if (node.attr('id') === 'mce_marker') { + marker = node; + for (node = node.prev; node; node = node.walk(true)) { + if (node.type === 3 || !dom.isBlock(node.name)) { + if (editor.schema.isValidChild(node.parent.name, 'span')) { + node.parent.insert(marker, node, node.name === 'br'); + } + break; + } + } + } + editor._selectionOverrides.showBlockCaretContainer(parentNode); + if (!parserArgs.invalid) { + value = serializer.serialize(fragment); + validInsertion(editor, value, parentNode); + } else { + selectionSetContent(editor, bookmarkHtml); + parentNode = selection.getNode(); + rootNode = editor.getBody(); + if (parentNode.nodeType === 9) { + parentNode = node = rootNode; + } else { + node = parentNode; + } + while (node !== rootNode) { + parentNode = node; + node = node.parentNode; + } + value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode); + value = serializer.serialize(parser.parse(value.replace(//i, function () { + return serializer.serialize(fragment); + }))); + if (parentNode === rootNode) { + dom.setHTML(rootNode, value); + } else { + dom.setOuterHTML(parentNode, value); + } + } + reduceInlineTextElements(editor, merge); + moveSelectionToMarker(editor, dom.get('mce_marker')); + umarkFragmentElements(editor.getBody()); + trimBrsFromTableCell(editor.dom, editor.selection.getStart()); + editor.fire('SetContent', args); + editor.addVisual(); + }; + var processValue = function (value) { + var details; + if (typeof value !== 'string') { + details = Tools.extend({ + paste: value.paste, + data: { paste: value.paste } + }, value); + return { + content: value.content, + details: details + }; + } + return { + content: value, + details: {} + }; + }; + var insertAtCaret$1 = function (editor, value) { + var result = processValue(value); + insertHtmlAtCaret(editor, result.content, result.details); + }; + var InsertContent = { insertAtCaret: insertAtCaret$1 }; + + var nativeCommand = function (editor, command) { + editor.getDoc().execCommand(command, false, null); + }; + var deleteCommand = function (editor) { + if (Outdent.backspaceDelete(editor, false)) { + return; + } else if (CefDelete.backspaceDelete(editor, false)) { + return; + } else if (CefBoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (BoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (BlockBoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (TableDelete.backspaceDelete(editor)) { + return; + } else if (BlockRangeDelete.backspaceDelete(editor, false)) { + return; + } else if (InlineFormatDelete.backspaceDelete(editor, false)) { + return; + } else { + nativeCommand(editor, 'Delete'); + DeleteUtils.paddEmptyBody(editor); + } + }; + var forwardDeleteCommand = function (editor) { + if (CefDelete.backspaceDelete(editor, true)) { + return; + } else if (CefBoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (BoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (BlockBoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (TableDelete.backspaceDelete(editor)) { + return; + } else if (BlockRangeDelete.backspaceDelete(editor, true)) { + return; + } else if (InlineFormatDelete.backspaceDelete(editor, true)) { + return; + } else { + nativeCommand(editor, 'ForwardDelete'); + } + }; + var DeleteCommands = { + deleteCommand: deleteCommand, + forwardDeleteCommand: forwardDeleteCommand + }; + + var ancestor$3 = function (scope, transform, isRoot) { + var element = scope.dom(); + var stop = isFunction(isRoot) ? isRoot : constant(false); + while (element.parentNode) { + element = element.parentNode; + var el = Element.fromDom(element); + var transformed = transform(el); + if (transformed.isSome()) { + return transformed; + } else if (stop(el)) { + break; + } + } + return Option.none(); + }; + var closest$2 = function (scope, transform, isRoot) { + var current = transform(scope); + return current.orThunk(function () { + return isRoot(scope) ? Option.none() : ancestor$3(scope, transform, isRoot); + }); + }; + + var legacyPropNames = { + 'font-size': 'size', + 'font-family': 'face' + }; + var getSpecifiedFontProp = function (propName, rootElm, elm) { + var getProperty = function (elm) { + return getRaw(elm, propName).orThunk(function () { + if (name(elm) === 'font') { + return get(legacyPropNames, propName).bind(function (legacyPropName) { + return getOpt(elm, legacyPropName); + }); + } else { + return Option.none(); + } + }); + }; + var isRoot = function (elm) { + return eq(Element.fromDom(rootElm), elm); + }; + return closest$2(Element.fromDom(elm), function (elm) { + return getProperty(elm); + }, isRoot); + }; + var round$1 = function (number, precision) { + var factor = Math.pow(10, precision); + return Math.round(number * factor) / factor; + }; + var toPt = function (fontSize, precision) { + if (/[0-9.]+px$/.test(fontSize)) { + return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt'; + } + return fontSize; + }; + var normalizeFontFamily = function (fontFamily) { + return fontFamily.replace(/[\'\"\\]/g, '').replace(/,\s+/g, ','); + }; + var getComputedFontProp = function (propName, elm) { + return Option.from(DOMUtils$1.DOM.getStyle(elm, propName, true)); + }; + var getFontProp = function (propName) { + return function (rootElm, elm) { + return Option.from(elm).map(Element.fromDom).filter(isElement).bind(function (element) { + return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom())); + }).getOr(''); + }; + }; + var FontInfo = { + getFontSize: getFontProp('font-size'), + getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')), + toPt: toPt + }; + + var findFirstCaretElement = function (editor) { + return CaretFinder.firstPositionIn(editor.getBody()).map(function (caret) { + var container = caret.container(); + return NodeType.isText(container) ? container.parentNode : container; + }); + }; + var isRangeAtStartOfNode = function (rng, root) { + return rng.startContainer === root && rng.startOffset === 0; + }; + var getCaretElement = function (editor) { + return Option.from(editor.selection.getRng()).bind(function (rng) { + var root = editor.getBody(); + return isRangeAtStartOfNode(rng, root) ? Option.none() : Option.from(editor.selection.getStart(true)); + }); + }; + var fromFontSizeNumber = function (editor, value) { + if (/^[0-9\.]+$/.test(value)) { + var fontSizeNumber = parseInt(value, 10); + if (fontSizeNumber >= 1 && fontSizeNumber <= 7) { + var fontSizes = Settings.getFontStyleValues(editor); + var fontClasses = Settings.getFontSizeClasses(editor); + if (fontClasses) { + return fontClasses[fontSizeNumber - 1] || value; + } else { + return fontSizes[fontSizeNumber - 1] || value; + } + } else { + return value; + } + } else { + return value; + } + }; + var normalizeFontNames = function (font) { + var fonts = font.split(/\s*,\s*/); + return map(fonts, function (font) { + if (font.indexOf(' ') !== -1 && !(startsWith(font, '"') || startsWith(font, '\''))) { + return '\'' + font + '\''; + } else { + return font; + } + }).join(','); + }; + var fontNameAction = function (editor, value) { + var font = fromFontSizeNumber(editor, value); + editor.formatter.toggle('fontname', { value: normalizeFontNames(font) }); + editor.nodeChanged(); + }; + var fontNameQuery = function (editor) { + return getCaretElement(editor).fold(function () { + return findFirstCaretElement(editor).map(function (caretElement) { + return FontInfo.getFontFamily(editor.getBody(), caretElement); + }).getOr(''); + }, function (caretElement) { + return FontInfo.getFontFamily(editor.getBody(), caretElement); + }); + }; + var fontSizeAction = function (editor, value) { + editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) }); + editor.nodeChanged(); + }; + var fontSizeQuery = function (editor) { + return getCaretElement(editor).fold(function () { + return findFirstCaretElement(editor).map(function (caretElement) { + return FontInfo.getFontSize(editor.getBody(), caretElement); + }).getOr(''); + }, function (caretElement) { + return FontInfo.getFontSize(editor.getBody(), caretElement); + }); + }; + + var each$f = Tools.each; + var map$3 = Tools.map, inArray$2 = Tools.inArray; + var EditorCommands = function () { + function EditorCommands(editor) { + this.commands = { + state: {}, + exec: {}, + value: {} + }; + this.editor = editor; + this.setupCommands(editor); + } + EditorCommands.prototype.execCommand = function (command, ui, value, args) { + var func, customCommand, state = false; + var self = this; + if (self.editor.removed) { + return; + } + if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) { + self.editor.focus(); + } else { + SelectionBookmark.restore(self.editor); + } + args = self.editor.fire('BeforeExecCommand', { + command: command, + ui: ui, + value: value + }); + if (args.isDefaultPrevented()) { + return false; + } + customCommand = command.toLowerCase(); + if (func = self.commands.exec[customCommand]) { + func(customCommand, ui, value); + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + each$f(this.editor.plugins, function (p) { + if (p.execCommand && p.execCommand(command, ui, value)) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + state = true; + return false; + } + }); + if (state) { + return state; + } + if (self.editor.theme && self.editor.theme.execCommand && self.editor.theme.execCommand(command, ui, value)) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + try { + state = self.editor.getDoc().execCommand(command, ui, value); + } catch (ex) { + } + if (state) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + return false; + }; + EditorCommands.prototype.queryCommandState = function (command) { + var func; + if (this.editor.quirks.isHidden() || this.editor.removed) { + return; + } + command = command.toLowerCase(); + if (func = this.commands.state[command]) { + return func(command); + } + try { + return this.editor.getDoc().queryCommandState(command); + } catch (ex) { + } + return false; + }; + EditorCommands.prototype.queryCommandValue = function (command) { + var func; + if (this.editor.quirks.isHidden() || this.editor.removed) { + return; + } + command = command.toLowerCase(); + if (func = this.commands.value[command]) { + return func(command); + } + try { + return this.editor.getDoc().queryCommandValue(command); + } catch (ex) { + } + }; + EditorCommands.prototype.addCommands = function (commandList, type) { + var self = this; + type = type || 'exec'; + each$f(commandList, function (callback, command) { + each$f(command.toLowerCase().split(','), function (command) { + self.commands[type][command] = callback; + }); + }); + }; + EditorCommands.prototype.addCommand = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.exec[command] = function (command, ui, value, args) { + return callback.call(scope || _this.editor, ui, value, args); + }; + }; + EditorCommands.prototype.queryCommandSupported = function (command) { + command = command.toLowerCase(); + if (this.commands.exec[command]) { + return true; + } + try { + return this.editor.getDoc().queryCommandSupported(command); + } catch (ex) { + } + return false; + }; + EditorCommands.prototype.addQueryStateHandler = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.state[command] = function () { + return callback.call(scope || _this.editor); + }; + }; + EditorCommands.prototype.addQueryValueHandler = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.value[command] = function () { + return callback.call(scope || _this.editor); + }; + }; + EditorCommands.prototype.hasCustomCommand = function (command) { + command = command.toLowerCase(); + return !!this.commands.exec[command]; + }; + EditorCommands.prototype.execNativeCommand = function (command, ui, value) { + if (ui === undefined) { + ui = false; + } + if (value === undefined) { + value = null; + } + return this.editor.getDoc().execCommand(command, ui, value); + }; + EditorCommands.prototype.isFormatMatch = function (name) { + return this.editor.formatter.match(name); + }; + EditorCommands.prototype.toggleFormat = function (name, value) { + this.editor.formatter.toggle(name, value ? { value: value } : undefined); + this.editor.nodeChanged(); + }; + EditorCommands.prototype.storeSelection = function (type) { + this.selectionBookmark = this.editor.selection.getBookmark(type); + }; + EditorCommands.prototype.restoreSelection = function () { + this.editor.selection.moveToBookmark(this.selectionBookmark); + }; + EditorCommands.prototype.setupCommands = function (editor) { + var self = this; + this.addCommands({ + 'mceResetDesignMode,mceBeginUndoLevel': function () { + }, + 'mceEndUndoLevel,mceAddUndoLevel': function () { + editor.undoManager.add(); + }, + 'Cut,Copy,Paste': function (command) { + var doc = editor.getDoc(); + var failed; + try { + self.execNativeCommand(command); + } catch (ex) { + failed = true; + } + if (command === 'paste' && !doc.queryCommandEnabled(command)) { + failed = true; + } + if (failed || !doc.queryCommandSupported(command)) { + var msg = editor.translate('Your browser doesn\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.'); + if (Env.mac) { + msg = msg.replace(/Ctrl\+/g, '\u2318+'); + } + editor.notificationManager.open({ + text: msg, + type: 'error' + }); + } + }, + 'unlink': function () { + if (editor.selection.isCollapsed()) { + var elm = editor.dom.getParent(editor.selection.getStart(), 'a'); + if (elm) { + editor.dom.remove(elm, true); + } + return; + } + editor.formatter.remove('link'); + }, + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function (command) { + var align = command.substring(7); + if (align === 'full') { + align = 'justify'; + } + each$f('left,center,right,justify'.split(','), function (name) { + if (align !== name) { + editor.formatter.remove('align' + name); + } + }); + if (align !== 'none') { + self.toggleFormat('align' + align); + } + }, + 'InsertUnorderedList,InsertOrderedList': function (command) { + var listElm, listParent; + self.execNativeCommand(command); + listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul'); + if (listElm) { + listParent = listElm.parentNode; + if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) { + self.storeSelection(); + editor.dom.split(listParent, listElm); + self.restoreSelection(); + } + } + }, + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) { + self.toggleFormat(command); + }, + 'ForeColor,HiliteColor': function (command, ui, value) { + self.toggleFormat(command, value); + }, + 'FontName': function (command, ui, value) { + fontNameAction(editor, value); + }, + 'FontSize': function (command, ui, value) { + fontSizeAction(editor, value); + }, + 'RemoveFormat': function (command) { + editor.formatter.remove(command); + }, + 'mceBlockQuote': function () { + self.toggleFormat('blockquote'); + }, + 'FormatBlock': function (command, ui, value) { + return self.toggleFormat(value || 'p'); + }, + 'mceCleanup': function () { + var bookmark = editor.selection.getBookmark(); + editor.setContent(editor.getContent()); + editor.selection.moveToBookmark(bookmark); + }, + 'mceRemoveNode': function (command, ui, value) { + var node = value || editor.selection.getNode(); + if (node !== editor.getBody()) { + self.storeSelection(); + editor.dom.remove(node, true); + self.restoreSelection(); + } + }, + 'mceSelectNodeDepth': function (command, ui, value) { + var counter = 0; + editor.dom.getParent(editor.selection.getNode(), function (node) { + if (node.nodeType === 1 && counter++ === value) { + editor.selection.select(node); + return false; + } + }, editor.getBody()); + }, + 'mceSelectNode': function (command, ui, value) { + editor.selection.select(value); + }, + 'mceInsertContent': function (command, ui, value) { + InsertContent.insertAtCaret(editor, value); + }, + 'mceInsertRawHTML': function (command, ui, value) { + editor.selection.setContent('tiny_mce_marker'); + var content = editor.getContent(); + editor.setContent(content.replace(/tiny_mce_marker/g, function () { + return value; + })); + }, + 'mceInsertNewLine': function (command, ui, value) { + InsertNewLine.insert(editor, value); + }, + 'mceToggleFormat': function (command, ui, value) { + self.toggleFormat(value); + }, + 'mceSetContent': function (command, ui, value) { + editor.setContent(value); + }, + 'Indent,Outdent': function (command) { + handle(editor, command); + }, + 'mceRepaint': function () { + }, + 'InsertHorizontalRule': function () { + editor.execCommand('mceInsertContent', false, '
'); + }, + 'mceToggleVisualAid': function () { + editor.hasVisual = !editor.hasVisual; + editor.addVisual(); + }, + 'mceReplaceContent': function (command, ui, value) { + editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, editor.selection.getContent({ format: 'text' }))); + }, + 'mceInsertLink': function (command, ui, value) { + var anchor; + if (typeof value === 'string') { + value = { href: value }; + } + anchor = editor.dom.getParent(editor.selection.getNode(), 'a'); + value.href = value.href.replace(/ /g, '%20'); + if (!anchor || !value.href) { + editor.formatter.remove('link'); + } + if (value.href) { + editor.formatter.apply('link', value, anchor); + } + }, + 'selectAll': function () { + var editingHost = editor.dom.getParent(editor.selection.getStart(), NodeType.isContentEditableTrue); + if (editingHost) { + var rng = editor.dom.createRng(); + rng.selectNodeContents(editingHost); + editor.selection.setRng(rng); + } + }, + 'delete': function () { + DeleteCommands.deleteCommand(editor); + }, + 'forwardDelete': function () { + DeleteCommands.forwardDeleteCommand(editor); + }, + 'mceNewDocument': function () { + editor.setContent(''); + }, + 'InsertLineBreak': function (command, ui, value) { + InsertBr.insert(editor, value); + return true; + } + }); + var alignStates = function (name) { + return function () { + var nodes = editor.selection.isCollapsed() ? [editor.dom.getParent(editor.selection.getNode(), editor.dom.isBlock)] : editor.selection.getSelectedBlocks(); + var matches = map$3(nodes, function (node) { + return !!editor.formatter.matchNode(node, name); + }); + return inArray$2(matches, true) !== -1; + }; + }; + self.addCommands({ + 'JustifyLeft': alignStates('alignleft'), + 'JustifyCenter': alignStates('aligncenter'), + 'JustifyRight': alignStates('alignright'), + 'JustifyFull': alignStates('alignjustify'), + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) { + return self.isFormatMatch(command); + }, + 'mceBlockQuote': function () { + return self.isFormatMatch('blockquote'); + }, + 'Outdent': function () { + return canOutdent(editor); + }, + 'InsertUnorderedList,InsertOrderedList': function (command) { + var list = editor.dom.getParent(editor.selection.getNode(), 'ul,ol'); + return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL'); + } + }, 'state'); + self.addCommands({ + Undo: function () { + editor.undoManager.undo(); + }, + Redo: function () { + editor.undoManager.redo(); + } + }); + self.addQueryValueHandler('FontName', function () { + return fontNameQuery(editor); + }, this); + self.addQueryValueHandler('FontSize', function () { + return fontSizeQuery(editor); + }, this); + }; + return EditorCommands; + }(); + + var nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' '); + var EventDispatcher = function () { + function EventDispatcher(settings) { + this.bindings = {}; + this.settings = settings || {}; + this.scope = this.settings.scope || this; + this.toggleEvent = this.settings.toggleEvent || never; + } + EventDispatcher.isNative = function (name) { + return !!nativeEvents[name.toLowerCase()]; + }; + EventDispatcher.prototype.fire = function (name, args) { + var handlers, i, l, callback; + name = name.toLowerCase(); + args = args || {}; + args.type = name; + if (!args.target) { + args.target = this.scope; + } + if (!args.preventDefault) { + args.preventDefault = function () { + args.isDefaultPrevented = always; + }; + args.stopPropagation = function () { + args.isPropagationStopped = always; + }; + args.stopImmediatePropagation = function () { + args.isImmediatePropagationStopped = always; + }; + args.isDefaultPrevented = never; + args.isPropagationStopped = never; + args.isImmediatePropagationStopped = never; + } + if (this.settings.beforeFire) { + this.settings.beforeFire(args); + } + handlers = this.bindings[name]; + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + callback = handlers[i]; + if (callback.once) { + this.off(name, callback.func); + } + if (args.isImmediatePropagationStopped()) { + args.stopPropagation(); + return args; + } + if (callback.func.call(this.scope, args) === false) { + args.preventDefault(); + return args; + } + } + } + return args; + }; + EventDispatcher.prototype.on = function (name, callback, prepend, extra) { + var handlers, names, i; + if (callback === false) { + callback = never; + } + if (callback) { + var wrappedCallback = { func: callback }; + if (extra) { + Tools.extend(wrappedCallback, extra); + } + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = this.bindings[name]; + if (!handlers) { + handlers = this.bindings[name] = []; + this.toggleEvent(name, true); + } + if (prepend) { + handlers.unshift(wrappedCallback); + } else { + handlers.push(wrappedCallback); + } + } + } + return this; + }; + EventDispatcher.prototype.off = function (name, callback) { + var i, handlers, bindingName, names, hi; + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = this.bindings[name]; + if (!name) { + for (bindingName in this.bindings) { + this.toggleEvent(bindingName, false); + delete this.bindings[bindingName]; + } + return this; + } + if (handlers) { + if (!callback) { + handlers.length = 0; + } else { + hi = handlers.length; + while (hi--) { + if (handlers[hi].func === callback) { + handlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1)); + this.bindings[name] = handlers; + } + } + } + if (!handlers.length) { + this.toggleEvent(name, false); + delete this.bindings[name]; + } + } + } + } else { + for (name in this.bindings) { + this.toggleEvent(name, false); + } + this.bindings = {}; + } + return this; + }; + EventDispatcher.prototype.once = function (name, callback, prepend) { + return this.on(name, callback, prepend, { once: true }); + }; + EventDispatcher.prototype.has = function (name) { + name = name.toLowerCase(); + return !(!this.bindings[name] || this.bindings[name].length === 0); + }; + return EventDispatcher; + }(); + + var getEventDispatcher = function (obj) { + if (!obj._eventDispatcher) { + obj._eventDispatcher = new EventDispatcher({ + scope: obj, + toggleEvent: function (name, state) { + if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) { + obj.toggleNativeEvent(name, state); + } + } + }); + } + return obj._eventDispatcher; + }; + var Observable = { + fire: function (name, args, bubble) { + var self = this; + if (self.removed && name !== 'remove' && name !== 'detach') { + return args; + } + var dispatcherArgs = getEventDispatcher(self).fire(name, args); + if (bubble !== false && self.parent) { + var parent_1 = self.parent(); + while (parent_1 && !dispatcherArgs.isPropagationStopped()) { + parent_1.fire(name, dispatcherArgs, false); + parent_1 = parent_1.parent(); + } + } + return dispatcherArgs; + }, + on: function (name, callback, prepend) { + return getEventDispatcher(this).on(name, callback, prepend); + }, + off: function (name, callback) { + return getEventDispatcher(this).off(name, callback); + }, + once: function (name, callback) { + return getEventDispatcher(this).once(name, callback); + }, + hasEventListeners: function (name) { + return getEventDispatcher(this).has(name); + } + }; + + var internalContentEditableAttr = 'data-mce-contenteditable'; + var toggleClass = function (elm, cls, state) { + if (has$2(elm, cls) && state === false) { + remove$4(elm, cls); + } else if (state) { + add$3(elm, cls); + } + }; + var setEditorCommandState = function (editor, cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + } + }; + var setContentEditable = function (elm, state) { + elm.dom().contentEditable = state ? 'true' : 'false'; + }; + var switchOffContentEditableTrue = function (elm) { + each(descendants$1(elm, '*[contenteditable="true"]'), function (elm) { + set(elm, internalContentEditableAttr, 'true'); + setContentEditable(elm, false); + }); + }; + var switchOnContentEditableTrue = function (elm) { + each(descendants$1(elm, '*[' + internalContentEditableAttr + '="true"]'), function (elm) { + remove$1(elm, internalContentEditableAttr); + setContentEditable(elm, true); + }); + }; + var removeFakeSelection = function (editor) { + Option.from(editor.selection.getNode()).each(function (elm) { + elm.removeAttribute('data-mce-selected'); + }); + }; + var restoreFakeSelection = function (editor) { + editor.selection.setRng(editor.selection.getRng()); + }; + var toggleReadOnly = function (editor, state) { + var body = Element.fromDom(editor.getBody()); + toggleClass(body, 'mce-content-readonly', state); + if (state) { + editor.selection.controlSelection.hideResizeRect(); + editor._selectionOverrides.hideFakeCaret(); + removeFakeSelection(editor); + editor.readonly = true; + setContentEditable(body, false); + switchOffContentEditableTrue(body); + } else { + editor.readonly = false; + setContentEditable(body, true); + switchOnContentEditableTrue(body); + setEditorCommandState(editor, 'StyleWithCSS', false); + setEditorCommandState(editor, 'enableInlineTableEditing', false); + setEditorCommandState(editor, 'enableObjectResizing', false); + if (EditorFocus.hasEditorOrUiFocus(editor)) { + editor.focus(); + } + restoreFakeSelection(editor); + editor.nodeChanged(); + } + }; + var isReadOnly = function (editor) { + return editor.readonly; + }; + var registerFilters = function (editor) { + editor.parser.addAttributeFilter('contenteditable', function (nodes) { + if (isReadOnly(editor)) { + each(nodes, function (node) { + node.attr(internalContentEditableAttr, node.attr('contenteditable')); + node.attr('contenteditable', 'false'); + }); + } + }); + editor.serializer.addAttributeFilter(internalContentEditableAttr, function (nodes) { + if (isReadOnly(editor)) { + each(nodes, function (node) { + node.attr('contenteditable', node.attr(internalContentEditableAttr)); + }); + } + }); + editor.serializer.addTempAttr(internalContentEditableAttr); + }; + var registerReadOnlyContentFilters = function (editor) { + if (editor.serializer) { + registerFilters(editor); + } else { + editor.on('PreInit', function () { + registerFilters(editor); + }); + } + }; + var isClickEvent = function (e) { + return e.type === 'click'; + }; + var isInAnchor = function (editor, target) { + return editor.dom.getParent(target, 'a') !== null; + }; + var preventReadOnlyEvents = function (editor, e) { + var target = e.target; + if (isClickEvent(e) && !VK.metaKeyPressed(e) && isInAnchor(editor, target)) { + e.preventDefault(); + } + }; + var registerReadOnlySelectionBlockers = function (editor) { + editor.on('ShowCaret', function (e) { + if (isReadOnly(editor)) { + e.preventDefault(); + } + }); + editor.on('ObjectSelected', function (e) { + if (isReadOnly(editor)) { + e.preventDefault(); + } + }); + }; + + var DOM$8 = DOMUtils$1.DOM; + var customEventRootDelegates; + var getEventTarget = function (editor, eventName) { + if (eventName === 'selectionchange') { + return editor.getDoc(); + } + if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) { + return editor.getDoc().documentElement; + } + if (editor.settings.event_root) { + if (!editor.eventRoot) { + editor.eventRoot = DOM$8.select(editor.settings.event_root)[0]; + } + return editor.eventRoot; + } + return editor.getBody(); + }; + var isListening = function (editor) { + return !editor.hidden && !isReadOnly(editor); + }; + var fireEvent = function (editor, eventName, e) { + if (isListening(editor)) { + editor.fire(eventName, e); + } else if (isReadOnly(editor)) { + preventReadOnlyEvents(editor, e); + } + }; + var bindEventDelegate = function (editor, eventName) { + var eventRootElm, delegate; + if (!editor.delegates) { + editor.delegates = {}; + } + if (editor.delegates[eventName] || editor.removed) { + return; + } + eventRootElm = getEventTarget(editor, eventName); + if (editor.settings.event_root) { + if (!customEventRootDelegates) { + customEventRootDelegates = {}; + editor.editorManager.on('removeEditor', function () { + var name; + if (!editor.editorManager.activeEditor) { + if (customEventRootDelegates) { + for (name in customEventRootDelegates) { + editor.dom.unbind(getEventTarget(editor, name)); + } + customEventRootDelegates = null; + } + } + }); + } + if (customEventRootDelegates[eventName]) { + return; + } + delegate = function (e) { + var target = e.target; + var editors = editor.editorManager.get(); + var i = editors.length; + while (i--) { + var body = editors[i].getBody(); + if (body === target || DOM$8.isChildOf(target, body)) { + fireEvent(editors[i], eventName, e); + } + } + }; + customEventRootDelegates[eventName] = delegate; + DOM$8.bind(eventRootElm, eventName, delegate); + } else { + delegate = function (e) { + fireEvent(editor, eventName, e); + }; + DOM$8.bind(eventRootElm, eventName, delegate); + editor.delegates[eventName] = delegate; + } + }; + var EditorObservable = __assign(__assign({}, Observable), { + bindPendingEventDelegates: function () { + var self = this; + Tools.each(self._pendingNativeEvents, function (name) { + bindEventDelegate(self, name); + }); + }, + toggleNativeEvent: function (name, state) { + var self = this; + if (name === 'focus' || name === 'blur') { + return; + } + if (state) { + if (self.initialized) { + bindEventDelegate(self, name); + } else { + if (!self._pendingNativeEvents) { + self._pendingNativeEvents = [name]; + } else { + self._pendingNativeEvents.push(name); + } + } + } else if (self.initialized) { + self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]); + delete self.delegates[name]; + } + }, + unbindAllNativeEvents: function () { + var self = this; + var body = self.getBody(); + var dom = self.dom; + var name; + if (self.delegates) { + for (name in self.delegates) { + self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]); + } + delete self.delegates; + } + if (!self.inline && body && dom) { + body.onload = null; + dom.unbind(self.getWin()); + dom.unbind(self.getDoc()); + } + if (dom) { + dom.unbind(body); + dom.unbind(self.getContainer()); + } + } + }); + + var defaultModes = [ + 'design', + 'readonly' + ]; + var switchToMode = function (editor, activeMode, availableModes, mode) { + var oldMode = availableModes[activeMode.get()]; + var newMode = availableModes[mode]; + try { + newMode.activate(); + } catch (e) { + domGlobals.console.error('problem while activating editor mode ' + mode + ':', e); + return; + } + oldMode.deactivate(); + if (oldMode.editorReadOnly !== newMode.editorReadOnly) { + toggleReadOnly(editor, newMode.editorReadOnly); + } + activeMode.set(mode); + fireSwitchMode(editor, mode); + }; + var setMode = function (editor, availableModes, activeMode, mode) { + if (mode === activeMode.get()) { + return; + } else if (!has(availableModes, mode)) { + throw new Error('Editor mode \'' + mode + '\' is invalid'); + } + if (editor.initialized) { + switchToMode(editor, activeMode, availableModes, mode); + } else { + editor.on('init', function () { + return switchToMode(editor, activeMode, availableModes, mode); + }); + } + }; + var registerMode = function (availableModes, mode, api) { + var _a; + if (contains(defaultModes, mode)) { + throw new Error('Cannot override default mode ' + mode); + } + return __assign(__assign({}, availableModes), (_a = {}, _a[mode] = __assign(__assign({}, api), { + deactivate: function () { + try { + api.deactivate(); + } catch (e) { + domGlobals.console.error('problem while deactivating editor mode ' + mode + ':', e); + } + } + }), _a)); + }; + + var create$4 = function (editor) { + var activeMode = Cell('design'); + var availableModes = Cell({ + design: { + activate: noop, + deactivate: noop, + editorReadOnly: false + }, + readonly: { + activate: noop, + deactivate: noop, + editorReadOnly: true + } + }); + registerReadOnlyContentFilters(editor); + registerReadOnlySelectionBlockers(editor); + return { + isReadOnly: function () { + return isReadOnly(editor); + }, + set: function (mode) { + return setMode(editor, availableModes.get(), activeMode, mode); + }, + get: function () { + return activeMode.get(); + }, + register: function (mode, api) { + availableModes.set(registerMode(availableModes.get(), mode, api)); + } + }; + }; + + var each$g = Tools.each, explode$3 = Tools.explode; + var keyCodeLookup = { + f1: 112, + f2: 113, + f3: 114, + f4: 115, + f5: 116, + f6: 117, + f7: 118, + f8: 119, + f9: 120, + f10: 121, + f11: 122, + f12: 123 + }; + var modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access'); + var Shortcuts = function () { + function Shortcuts(editor) { + this.shortcuts = {}; + this.pendingPatterns = []; + this.editor = editor; + var self = this; + editor.on('keyup keypress keydown', function (e) { + if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) { + each$g(self.shortcuts, function (shortcut) { + if (self.matchShortcut(e, shortcut)) { + self.pendingPatterns = shortcut.subpatterns.slice(0); + if (e.type === 'keydown') { + self.executeShortcutAction(shortcut); + } + return true; + } + }); + if (self.matchShortcut(e, self.pendingPatterns[0])) { + if (self.pendingPatterns.length === 1) { + if (e.type === 'keydown') { + self.executeShortcutAction(self.pendingPatterns[0]); + } + } + self.pendingPatterns.shift(); + } + } + }); + } + Shortcuts.prototype.add = function (pattern, desc, cmdFunc, scope) { + var self = this; + var cmd; + cmd = cmdFunc; + if (typeof cmdFunc === 'string') { + cmdFunc = function () { + self.editor.execCommand(cmd, false, null); + }; + } else if (Tools.isArray(cmd)) { + cmdFunc = function () { + self.editor.execCommand(cmd[0], cmd[1], cmd[2]); + }; + } + each$g(explode$3(Tools.trim(pattern)), function (pattern) { + var shortcut = self.createShortcut(pattern, desc, cmdFunc, scope); + self.shortcuts[shortcut.id] = shortcut; + }); + return true; + }; + Shortcuts.prototype.remove = function (pattern) { + var shortcut = this.createShortcut(pattern); + if (this.shortcuts[shortcut.id]) { + delete this.shortcuts[shortcut.id]; + return true; + } + return false; + }; + Shortcuts.prototype.parseShortcut = function (pattern) { + var id, key; + var shortcut = {}; + each$g(explode$3(pattern.toLowerCase(), '+'), function (value) { + if (value in modifierNames) { + shortcut[value] = true; + } else { + if (/^[0-9]{2,}$/.test(value)) { + shortcut.keyCode = parseInt(value, 10); + } else { + shortcut.charCode = value.charCodeAt(0); + shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0); + } + } + }); + id = [shortcut.keyCode]; + for (key in modifierNames) { + if (shortcut[key]) { + id.push(key); + } else { + shortcut[key] = false; + } + } + shortcut.id = id.join(','); + if (shortcut.access) { + shortcut.alt = true; + if (Env.mac) { + shortcut.ctrl = true; + } else { + shortcut.shift = true; + } + } + if (shortcut.meta) { + if (Env.mac) { + shortcut.meta = true; + } else { + shortcut.ctrl = true; + shortcut.meta = false; + } + } + return shortcut; + }; + Shortcuts.prototype.createShortcut = function (pattern, desc, cmdFunc, scope) { + var shortcuts; + shortcuts = Tools.map(explode$3(pattern, '>'), this.parseShortcut); + shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], { + func: cmdFunc, + scope: scope || this.editor + }); + return Tools.extend(shortcuts[0], { + desc: this.editor.translate(desc), + subpatterns: shortcuts.slice(1) + }); + }; + Shortcuts.prototype.hasModifier = function (e) { + return e.altKey || e.ctrlKey || e.metaKey; + }; + Shortcuts.prototype.isFunctionKey = function (e) { + return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123; + }; + Shortcuts.prototype.matchShortcut = function (e, shortcut) { + if (!shortcut) { + return false; + } + if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) { + return false; + } + if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) { + return false; + } + if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) { + e.preventDefault(); + return true; + } + return false; + }; + Shortcuts.prototype.executeShortcutAction = function (shortcut) { + return shortcut.func ? shortcut.func.call(shortcut.scope) : null; + }; + return Shortcuts; + }(); + + var create$5 = function () { + var buttons = {}; + var menuItems = {}; + var popups = {}; + var icons = {}; + var contextMenus = {}; + var contextToolbars = {}; + var sidebars = {}; + var add = function (collection, type) { + return function (name, spec) { + return collection[name.toLowerCase()] = __assign(__assign({}, spec), { type: type }); + }; + }; + var addIcon = function (name, svgData) { + return icons[name.toLowerCase()] = svgData; + }; + return { + addButton: add(buttons, 'button'), + addGroupToolbarButton: add(buttons, 'grouptoolbarbutton'), + addToggleButton: add(buttons, 'togglebutton'), + addMenuButton: add(buttons, 'menubutton'), + addSplitButton: add(buttons, 'splitbutton'), + addMenuItem: add(menuItems, 'menuitem'), + addNestedMenuItem: add(menuItems, 'nestedmenuitem'), + addToggleMenuItem: add(menuItems, 'togglemenuitem'), + addAutocompleter: add(popups, 'autocompleter'), + addContextMenu: add(contextMenus, 'contextmenu'), + addContextToolbar: add(contextToolbars, 'contexttoolbar'), + addContextForm: add(contextToolbars, 'contextform'), + addSidebar: add(sidebars, 'sidebar'), + addIcon: addIcon, + getAll: function () { + return { + buttons: buttons, + menuItems: menuItems, + icons: icons, + popups: popups, + contextMenus: contextMenus, + contextToolbars: contextToolbars, + sidebars: sidebars + }; + } + }; + }; + + var registry = function () { + var bridge = create$5(); + return { + addAutocompleter: bridge.addAutocompleter, + addButton: bridge.addButton, + addContextForm: bridge.addContextForm, + addContextMenu: bridge.addContextMenu, + addContextToolbar: bridge.addContextToolbar, + addIcon: bridge.addIcon, + addMenuButton: bridge.addMenuButton, + addMenuItem: bridge.addMenuItem, + addNestedMenuItem: bridge.addNestedMenuItem, + addSidebar: bridge.addSidebar, + addSplitButton: bridge.addSplitButton, + addToggleButton: bridge.addToggleButton, + addGroupToolbarButton: bridge.addGroupToolbarButton, + addToggleMenuItem: bridge.addToggleMenuItem, + getAll: bridge.getAll + }; + }; + + var each$h = Tools.each, trim$4 = Tools.trim; + var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' '); + var DEFAULT_PORTS = { + ftp: 21, + http: 80, + https: 443, + mailto: 25 + }; + var URI = function () { + function URI(url, settings) { + url = trim$4(url); + this.settings = settings || {}; + var baseUri = this.settings.base_uri; + var self = this; + if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) { + self.source = url; + return; + } + var isProtocolRelative = url.indexOf('//') === 0; + if (url.indexOf('/') === 0 && !isProtocolRelative) { + url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url; + } + if (!/^[\w\-]*:?\/\//.test(url)) { + var baseUrl = this.settings.base_uri ? this.settings.base_uri.path : new URI(domGlobals.document.location.href).directory; + if (this.settings.base_uri && this.settings.base_uri.protocol == '') { + url = '//mce_host' + self.toAbsPath(baseUrl, url); + } else { + var match = /([^#?]*)([#?]?.*)/.exec(url); + url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2]; + } + } + url = url.replace(/@@/g, '(mce_at)'); + var urlMatch = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url); + each$h(queryParts, function (v, i) { + var part = urlMatch[i]; + if (part) { + part = part.replace(/\(mce_at\)/g, '@@'); + } + self[v] = part; + }); + if (baseUri) { + if (!self.protocol) { + self.protocol = baseUri.protocol; + } + if (!self.userInfo) { + self.userInfo = baseUri.userInfo; + } + if (!self.port && self.host === 'mce_host') { + self.port = baseUri.port; + } + if (!self.host || self.host === 'mce_host') { + self.host = baseUri.host; + } + self.source = ''; + } + if (isProtocolRelative) { + self.protocol = ''; + } + } + URI.parseDataUri = function (uri) { + var type; + var uriComponents = decodeURIComponent(uri).split(','); + var matches = /data:([^;]+)/.exec(uriComponents[0]); + if (matches) { + type = matches[1]; + } + return { + type: type, + data: uriComponents[1] + }; + }; + URI.getDocumentBaseUrl = function (loc) { + var baseUrl; + if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') { + baseUrl = loc.href; + } else { + baseUrl = loc.protocol + '//' + loc.host + loc.pathname; + } + if (/^[^:]+:\/\/\/?[^\/]+\//.test(baseUrl)) { + baseUrl = baseUrl.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(baseUrl)) { + baseUrl += '/'; + } + } + return baseUrl; + }; + URI.prototype.setPath = function (path) { + var pathMatch = /^(.*?)\/?(\w+)?$/.exec(path); + this.path = pathMatch[0]; + this.directory = pathMatch[1]; + this.file = pathMatch[2]; + this.source = ''; + this.getURI(); + }; + URI.prototype.toRelative = function (uri) { + var output; + if (uri === './') { + return uri; + } + var relativeUri = new URI(uri, { base_uri: this }); + if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') { + return relativeUri.getURI(); + } + var tu = this.getURI(), uu = relativeUri.getURI(); + if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) { + return tu; + } + output = this.toRelPath(this.path, relativeUri.path); + if (relativeUri.query) { + output += '?' + relativeUri.query; + } + if (relativeUri.anchor) { + output += '#' + relativeUri.anchor; + } + return output; + }; + URI.prototype.toAbsolute = function (uri, noHost) { + var absoluteUri = new URI(uri, { base_uri: this }); + return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri)); + }; + URI.prototype.isSameOrigin = function (uri) { + if (this.host == uri.host && this.protocol == uri.protocol) { + if (this.port == uri.port) { + return true; + } + var defaultPort = DEFAULT_PORTS[this.protocol]; + if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) { + return true; + } + } + return false; + }; + URI.prototype.toRelPath = function (base, path) { + var items, breakPoint = 0, out = '', i, l; + var normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/'); + items = path.split('/'); + if (normalizedBase.length >= items.length) { + for (i = 0, l = normalizedBase.length; i < l; i++) { + if (i >= items.length || normalizedBase[i] !== items[i]) { + breakPoint = i + 1; + break; + } + } + } + if (normalizedBase.length < items.length) { + for (i = 0, l = items.length; i < l; i++) { + if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) { + breakPoint = i + 1; + break; + } + } + } + if (breakPoint === 1) { + return path; + } + for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) { + out += '../'; + } + for (i = breakPoint - 1, l = items.length; i < l; i++) { + if (i !== breakPoint - 1) { + out += '/' + items[i]; + } else { + out += items[i]; + } + } + return out; + }; + URI.prototype.toAbsPath = function (base, path) { + var i, nb = 0, o = [], tr, outPath; + tr = /\/$/.test(path) ? '/' : ''; + var normalizedBase = base.split('/'); + var normalizedPath = path.split('/'); + each$h(normalizedBase, function (k) { + if (k) { + o.push(k); + } + }); + normalizedBase = o; + for (i = normalizedPath.length - 1, o = []; i >= 0; i--) { + if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') { + continue; + } + if (normalizedPath[i] === '..') { + nb++; + continue; + } + if (nb > 0) { + nb--; + continue; + } + o.push(normalizedPath[i]); + } + i = normalizedBase.length - nb; + if (i <= 0) { + outPath = reverse(o).join('/'); + } else { + outPath = normalizedBase.slice(0, i).join('/') + '/' + reverse(o).join('/'); + } + if (outPath.indexOf('/') !== 0) { + outPath = '/' + outPath; + } + if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) { + outPath += tr; + } + return outPath; + }; + URI.prototype.getURI = function (noProtoHost) { + if (noProtoHost === void 0) { + noProtoHost = false; + } + var s; + if (!this.source || noProtoHost) { + s = ''; + if (!noProtoHost) { + if (this.protocol) { + s += this.protocol + '://'; + } else { + s += '//'; + } + if (this.userInfo) { + s += this.userInfo + '@'; + } + if (this.host) { + s += this.host; + } + if (this.port) { + s += ':' + this.port; + } + } + if (this.path) { + s += this.path; + } + if (this.query) { + s += '?' + this.query; + } + if (this.anchor) { + s += '#' + this.anchor; + } + this.source = s; + } + return this.source; + }; + return URI; + }(); + + var DOM$9 = DOMUtils$1.DOM; + var extend$3 = Tools.extend, each$i = Tools.each; + var resolve$3 = Tools.resolve; + var ie$1 = Env.ie; + var Editor = function () { + function Editor(id, settings, editorManager) { + var _this = this; + this.plugins = {}; + this.contentCSS = []; + this.contentStyles = []; + this.loadedCSS = {}; + this.isNotDirty = false; + this.editorManager = editorManager; + this.documentBaseUrl = editorManager.documentBaseURL; + extend$3(this, EditorObservable); + this.settings = getEditorSettings(this, id, this.documentBaseUrl, editorManager.defaultSettings, settings); + if (this.settings.suffix) { + editorManager.suffix = this.settings.suffix; + } + this.suffix = editorManager.suffix; + if (this.settings.base_url) { + editorManager._setBaseUrl(this.settings.base_url); + } + this.baseUri = editorManager.baseURI; + if (this.settings.referrer_policy) { + ScriptLoader.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy); + DOMUtils$1.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy); + } + AddOnManager$1.languageLoad = this.settings.language_load; + AddOnManager$1.baseURL = editorManager.baseURL; + this.id = id; + this.setDirty(false); + this.documentBaseURI = new URI(this.settings.document_base_url, { base_uri: this.baseUri }); + this.baseURI = this.baseUri; + this.inline = !!this.settings.inline; + this.shortcuts = new Shortcuts(this); + this.editorCommands = new EditorCommands(this); + if (this.settings.cache_suffix) { + Env.cacheSuffix = this.settings.cache_suffix.replace(/^[\?\&]+/, ''); + } + this.ui = { registry: registry() }; + var self = this; + var modeInstance = create$4(self); + this.mode = modeInstance; + this.setMode = modeInstance.set; + editorManager.fire('SetupEditor', { editor: this }); + this.execCallback('setup', this); + this.$ = DomQuery.overrideDefaults(function () { + return { + context: _this.inline ? _this.getBody() : _this.getDoc(), + element: _this.getBody() + }; + }); + } + Editor.prototype.render = function () { + Render.render(this); + }; + Editor.prototype.focus = function (skipFocus) { + EditorFocus.focus(this, skipFocus); + }; + Editor.prototype.hasFocus = function () { + return EditorFocus.hasFocus(this); + }; + Editor.prototype.execCallback = function (name) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var self = this; + var callback = self.settings[name], scope; + if (!callback) { + return; + } + if (self.callbackLookup && (scope = self.callbackLookup[name])) { + callback = scope.func; + scope = scope.scope; + } + if (typeof callback === 'string') { + scope = callback.replace(/\.\w+$/, ''); + scope = scope ? resolve$3(scope) : 0; + callback = resolve$3(callback); + self.callbackLookup = self.callbackLookup || {}; + self.callbackLookup[name] = { + func: callback, + scope: scope + }; + } + return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1)); + }; + Editor.prototype.translate = function (text) { + return I18n.translate(text); + }; + Editor.prototype.getParam = function (name, defaultVal, type) { + return getParam(this, name, defaultVal, type); + }; + Editor.prototype.nodeChanged = function (args) { + this._nodeChangeDispatcher.nodeChanged(args); + }; + Editor.prototype.addCommand = function (name, callback, scope) { + this.editorCommands.addCommand(name, callback, scope); + }; + Editor.prototype.addQueryStateHandler = function (name, callback, scope) { + this.editorCommands.addQueryStateHandler(name, callback, scope); + }; + Editor.prototype.addQueryValueHandler = function (name, callback, scope) { + this.editorCommands.addQueryValueHandler(name, callback, scope); + }; + Editor.prototype.addShortcut = function (pattern, desc, cmdFunc, scope) { + this.shortcuts.add(pattern, desc, cmdFunc, scope); + }; + Editor.prototype.execCommand = function (cmd, ui, value, args) { + return this.editorCommands.execCommand(cmd, ui, value, args); + }; + Editor.prototype.queryCommandState = function (cmd) { + return this.editorCommands.queryCommandState(cmd); + }; + Editor.prototype.queryCommandValue = function (cmd) { + return this.editorCommands.queryCommandValue(cmd); + }; + Editor.prototype.queryCommandSupported = function (cmd) { + return this.editorCommands.queryCommandSupported(cmd); + }; + Editor.prototype.show = function () { + var self = this; + if (self.hidden) { + self.hidden = false; + if (self.inline) { + self.getBody().contentEditable = 'true'; + } else { + DOM$9.show(self.getContainer()); + DOM$9.hide(self.id); + } + self.load(); + self.fire('show'); + } + }; + Editor.prototype.hide = function () { + var self = this, doc = self.getDoc(); + if (!self.hidden) { + if (ie$1 && doc && !self.inline) { + doc.execCommand('SelectAll'); + } + self.save(); + if (self.inline) { + self.getBody().contentEditable = 'false'; + if (self === self.editorManager.focusedEditor) { + self.editorManager.focusedEditor = null; + } + } else { + DOM$9.hide(self.getContainer()); + DOM$9.setStyle(self.id, 'display', self.orgDisplay); + } + self.hidden = true; + self.fire('hide'); + } + }; + Editor.prototype.isHidden = function () { + return !!this.hidden; + }; + Editor.prototype.setProgressState = function (state, time) { + this.fire('ProgressState', { + state: state, + time: time + }); + }; + Editor.prototype.load = function (args) { + var self = this; + var elm = self.getElement(), html; + if (self.removed) { + return ''; + } + if (elm) { + args = args || {}; + args.load = true; + var value = NodeType.isTextareaOrInput(elm) ? elm.value : elm.innerHTML; + html = self.setContent(value, args); + args.element = elm; + if (!args.no_events) { + self.fire('LoadContent', args); + } + args.element = elm = null; + return html; + } + }; + Editor.prototype.save = function (args) { + var self = this; + var elm = self.getElement(), html, form; + if (!elm || !self.initialized || self.removed) { + return; + } + args = args || {}; + args.save = true; + args.element = elm; + html = args.content = self.getContent(args); + if (!args.no_events) { + self.fire('SaveContent', args); + } + if (args.format === 'raw') { + self.fire('RawSaveContent', args); + } + html = args.content; + if (!NodeType.isTextareaOrInput(elm)) { + if (args.is_removing || !self.inline) { + elm.innerHTML = html; + } + if (form = DOM$9.getParent(self.id, 'form')) { + each$i(form.elements, function (elm) { + if (elm.name === self.id) { + elm.value = html; + return false; + } + }); + } + } else { + elm.value = html; + } + args.element = elm = null; + if (args.set_dirty !== false) { + self.setDirty(false); + } + return html; + }; + Editor.prototype.setContent = function (content, args) { + return setContent(this, content, args); + }; + Editor.prototype.getContent = function (args) { + return getContent(this, args); + }; + Editor.prototype.insertContent = function (content, args) { + if (args) { + content = extend$3({ content: content }, args); + } + this.execCommand('mceInsertContent', false, content); + }; + Editor.prototype.resetContent = function (initialContent) { + if (initialContent === undefined) { + setContent(this, this.startContent, { format: 'raw' }); + } else { + setContent(this, initialContent); + } + this.undoManager.reset(); + this.setDirty(false); + this.nodeChanged(); + }; + Editor.prototype.isDirty = function () { + return !this.isNotDirty; + }; + Editor.prototype.setDirty = function (state) { + var oldState = !this.isNotDirty; + this.isNotDirty = !state; + if (state && state !== oldState) { + this.fire('dirty'); + } + }; + Editor.prototype.getContainer = function () { + var self = this; + if (!self.container) { + self.container = DOM$9.get(self.editorContainer || self.id + '_parent'); + } + return self.container; + }; + Editor.prototype.getContentAreaContainer = function () { + return this.contentAreaContainer; + }; + Editor.prototype.getElement = function () { + if (!this.targetElm) { + this.targetElm = DOM$9.get(this.id); + } + return this.targetElm; + }; + Editor.prototype.getWin = function () { + var self = this; + var elm; + if (!self.contentWindow) { + elm = self.iframeElement; + if (elm) { + self.contentWindow = elm.contentWindow; + } + } + return self.contentWindow; + }; + Editor.prototype.getDoc = function () { + var self = this; + var win; + if (!self.contentDocument) { + win = self.getWin(); + if (win) { + self.contentDocument = win.document; + } + } + return self.contentDocument; + }; + Editor.prototype.getBody = function () { + var doc = this.getDoc(); + return this.bodyElement || (doc ? doc.body : null); + }; + Editor.prototype.convertURL = function (url, name, elm) { + var self = this, settings = self.settings; + if (settings.urlconverter_callback) { + return self.execCallback('urlconverter_callback', url, elm, true, name); + } + if (!settings.convert_urls || elm && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) { + return url; + } + if (settings.relative_urls) { + return self.documentBaseURI.toRelative(url); + } + url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host); + return url; + }; + Editor.prototype.addVisual = function (elm) { + var self = this; + var settings = self.settings; + var dom = self.dom; + var cls; + elm = elm || self.getBody(); + if (self.hasVisual === undefined) { + self.hasVisual = settings.visual; + } + each$i(dom.select('table,a', elm), function (elm) { + var value; + switch (elm.nodeName) { + case 'TABLE': + cls = settings.visual_table_class || 'mce-item-table'; + value = dom.getAttrib(elm, 'border'); + if ((!value || value === '0') && self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + return; + case 'A': + if (!dom.getAttrib(elm, 'href')) { + value = dom.getAttrib(elm, 'name') || elm.id; + cls = settings.visual_anchor_class || 'mce-item-anchor'; + if (value && self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + return; + } + }); + self.fire('VisualAid', { + element: elm, + hasVisual: self.hasVisual + }); + }; + Editor.prototype.remove = function () { + remove$6(this); + }; + Editor.prototype.destroy = function (automatic) { + destroy(this, automatic); + }; + Editor.prototype.uploadImages = function (callback) { + return this.editorUpload.uploadImages(callback); + }; + Editor.prototype._scanForImages = function () { + return this.editorUpload.scanForImages(); + }; + Editor.prototype.addButton = function () { + throw new Error('editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead'); + }; + Editor.prototype.addSidebar = function () { + throw new Error('editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead'); + }; + Editor.prototype.addMenuItem = function () { + throw new Error('editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead'); + }; + Editor.prototype.addContextToolbar = function () { + throw new Error('editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead'); + }; + return Editor; + }(); + + var DOM$a = DOMUtils$1.DOM; + var explode$4 = Tools.explode, each$j = Tools.each, extend$4 = Tools.extend; + var instanceCounter = 0, boundGlobalEvents = false; + var beforeUnloadDelegate; + var legacyEditors = []; + var editors = []; + var isValidLegacyKey = function (id) { + return id !== 'length'; + }; + var globalEventDelegate = function (e) { + var type = e.type; + each$j(EditorManager.get(), function (editor) { + switch (type) { + case 'scroll': + editor.fire('ScrollWindow', e); + break; + case 'resize': + editor.fire('ResizeWindow', e); + break; + } + }); + }; + var toggleGlobalEvents = function (state) { + if (state !== boundGlobalEvents) { + if (state) { + DomQuery(window).on('resize scroll', globalEventDelegate); + } else { + DomQuery(window).off('resize scroll', globalEventDelegate); + } + boundGlobalEvents = state; + } + }; + var removeEditorFromList = function (targetEditor) { + var oldEditors = editors; + delete legacyEditors[targetEditor.id]; + for (var i = 0; i < legacyEditors.length; i++) { + if (legacyEditors[i] === targetEditor) { + legacyEditors.splice(i, 1); + break; + } + } + editors = filter(editors, function (editor) { + return targetEditor !== editor; + }); + if (EditorManager.activeEditor === targetEditor) { + EditorManager.activeEditor = editors.length > 0 ? editors[0] : null; + } + if (EditorManager.focusedEditor === targetEditor) { + EditorManager.focusedEditor = null; + } + return oldEditors.length !== editors.length; + }; + var purgeDestroyedEditor = function (editor) { + if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) { + removeEditorFromList(editor); + editor.unbindAllNativeEvents(); + editor.destroy(true); + editor.removed = true; + editor = null; + } + return editor; + }; + var isQuirksMode = domGlobals.document.compatMode !== 'CSS1Compat'; + var EditorManager = __assign(__assign({}, Observable), { + baseURI: null, + baseURL: null, + defaultSettings: {}, + documentBaseURL: null, + suffix: null, + $: DomQuery, + majorVersion: '5', + minorVersion: '2.1', + releaseDate: '2020-03-25', + editors: legacyEditors, + i18n: I18n, + activeEditor: null, + focusedEditor: null, + settings: {}, + setup: function () { + var self = this; + var baseURL, documentBaseURL, suffix = ''; + documentBaseURL = URI.getDocumentBaseUrl(domGlobals.document.location); + if (/^[^:]+:\/\/\/?[^\/]+\//.test(documentBaseURL)) { + documentBaseURL = documentBaseURL.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(documentBaseURL)) { + documentBaseURL += '/'; + } + } + var preInit = window.tinymce || window.tinyMCEPreInit; + if (preInit) { + baseURL = preInit.base || preInit.baseURL; + suffix = preInit.suffix; + } else { + var scripts = domGlobals.document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src || ''; + if (src === '') { + continue; + } + var srcScript = src.substring(src.lastIndexOf('/')); + if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) { + if (srcScript.indexOf('.min') !== -1) { + suffix = '.min'; + } + baseURL = src.substring(0, src.lastIndexOf('/')); + break; + } + } + if (!baseURL && domGlobals.document.currentScript) { + var src = domGlobals.document.currentScript.src; + if (src.indexOf('.min') !== -1) { + suffix = '.min'; + } + baseURL = src.substring(0, src.lastIndexOf('/')); + } + } + self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL); + self.documentBaseURL = documentBaseURL; + self.baseURI = new URI(self.baseURL); + self.suffix = suffix; + FocusController.setup(self); + }, + overrideDefaults: function (defaultSettings) { + var baseUrl, suffix; + baseUrl = defaultSettings.base_url; + if (baseUrl) { + this._setBaseUrl(baseUrl); + } + suffix = defaultSettings.suffix; + if (defaultSettings.suffix) { + this.suffix = suffix; + } + this.defaultSettings = defaultSettings; + var pluginBaseUrls = defaultSettings.plugin_base_urls; + for (var name_1 in pluginBaseUrls) { + AddOnManager$1.PluginManager.urls[name_1] = pluginBaseUrls[name_1]; + } + }, + init: function (settings) { + var self = this; + var result, invalidInlineTargets; + invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' '); + var isInvalidInlineTarget = function (settings, elm) { + return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets; + }; + var createId = function (elm) { + var id = elm.id; + if (!id) { + id = elm.name; + if (id && !DOM$a.get(id)) { + id = elm.name; + } else { + id = DOM$a.uniqueId(); + } + elm.setAttribute('id', id); + } + return id; + }; + var execCallback = function (name) { + var callback = settings[name]; + if (!callback) { + return; + } + return callback.apply(self, Array.prototype.slice.call(arguments, 2)); + }; + var hasClass = function (elm, className) { + return className.constructor === RegExp ? className.test(elm.className) : DOM$a.hasClass(elm, className); + }; + var findTargets = function (settings) { + var l, targets = []; + if (Env.browser.isIE() && Env.browser.version.major < 11) { + ErrorReporter.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/'); + return []; + } else if (isQuirksMode) { + ErrorReporter.initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.'); + return []; + } + if (settings.types) { + each$j(settings.types, function (type) { + targets = targets.concat(DOM$a.select(type.selector)); + }); + return targets; + } else if (settings.selector) { + return DOM$a.select(settings.selector); + } else if (settings.target) { + return [settings.target]; + } + switch (settings.mode) { + case 'exact': + l = settings.elements || ''; + if (l.length > 0) { + each$j(explode$4(l), function (id) { + var elm; + if (elm = DOM$a.get(id)) { + targets.push(elm); + } else { + each$j(domGlobals.document.forms, function (f) { + each$j(f.elements, function (e) { + if (e.name === id) { + id = 'mce_editor_' + instanceCounter++; + DOM$a.setAttrib(e, 'id', id); + targets.push(e); + } + }); + }); + } + }); + } + break; + case 'textareas': + case 'specific_textareas': + each$j(DOM$a.select('textarea'), function (elm) { + if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) { + return; + } + if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) { + targets.push(elm); + } + }); + break; + } + return targets; + }; + var provideResults = function (editors) { + result = editors; + }; + var initEditors = function () { + var initCount = 0; + var editors = []; + var targets; + var createEditor = function (id, settings, targetElm) { + var editor = new Editor(id, settings, self); + editors.push(editor); + editor.on('init', function () { + if (++initCount === targets.length) { + provideResults(editors); + } + }); + editor.targetElm = editor.targetElm || targetElm; + editor.render(); + }; + DOM$a.unbind(window, 'ready', initEditors); + execCallback('onpageload'); + targets = DomQuery.unique(findTargets(settings)); + if (settings.types) { + each$j(settings.types, function (type) { + Tools.each(targets, function (elm) { + if (DOM$a.is(elm, type.selector)) { + createEditor(createId(elm), extend$4({}, settings, type), elm); + return false; + } + return true; + }); + }); + return; + } + Tools.each(targets, function (elm) { + purgeDestroyedEditor(self.get(elm.id)); + }); + targets = Tools.grep(targets, function (elm) { + return !self.get(elm.id); + }); + if (targets.length === 0) { + provideResults([]); + } else { + each$j(targets, function (elm) { + if (isInvalidInlineTarget(settings, elm)) { + ErrorReporter.initError('Could not initialize inline editor on invalid inline target element', elm); + } else { + createEditor(createId(elm), settings, elm); + } + }); + } + }; + self.settings = settings; + DOM$a.bind(window, 'ready', initEditors); + return new promiseObj(function (resolve) { + if (result) { + resolve(result); + } else { + provideResults = function (editors) { + resolve(editors); + }; + } + }); + }, + get: function (id) { + if (arguments.length === 0) { + return editors.slice(0); + } else if (isString(id)) { + return find(editors, function (editor) { + return editor.id === id; + }).getOr(null); + } else if (isNumber(id)) { + return editors[id] ? editors[id] : null; + } else { + return null; + } + }, + add: function (editor) { + var self = this; + var existingEditor; + existingEditor = legacyEditors[editor.id]; + if (existingEditor === editor) { + return editor; + } + if (self.get(editor.id) === null) { + if (isValidLegacyKey(editor.id)) { + legacyEditors[editor.id] = editor; + } + legacyEditors.push(editor); + editors.push(editor); + } + toggleGlobalEvents(true); + self.activeEditor = editor; + self.fire('AddEditor', { editor: editor }); + if (!beforeUnloadDelegate) { + beforeUnloadDelegate = function (e) { + var event = self.fire('BeforeUnload'); + if (event.returnValue) { + e.preventDefault(); + e.returnValue = event.returnValue; + return event.returnValue; + } + }; + window.addEventListener('beforeunload', beforeUnloadDelegate); + } + return editor; + }, + createEditor: function (id, settings) { + return this.add(new Editor(id, settings, this)); + }, + remove: function (selector) { + var self = this; + var i, editor; + if (!selector) { + for (i = editors.length - 1; i >= 0; i--) { + self.remove(editors[i]); + } + return; + } + if (isString(selector)) { + each$j(DOM$a.select(selector), function (elm) { + editor = self.get(elm.id); + if (editor) { + self.remove(editor); + } + }); + return; + } + editor = selector; + if (isNull(self.get(editor.id))) { + return null; + } + if (removeEditorFromList(editor)) { + self.fire('RemoveEditor', { editor: editor }); + } + if (editors.length === 0) { + window.removeEventListener('beforeunload', beforeUnloadDelegate); + } + editor.remove(); + toggleGlobalEvents(editors.length > 0); + return editor; + }, + execCommand: function (cmd, ui, value) { + var self = this, editor = self.get(value); + switch (cmd) { + case 'mceAddEditor': + if (!self.get(value)) { + new Editor(value, self.settings, self).render(); + } + return true; + case 'mceRemoveEditor': + if (editor) { + editor.remove(); + } + return true; + case 'mceToggleEditor': + if (!editor) { + self.execCommand('mceAddEditor', 0, value); + return true; + } + if (editor.isHidden()) { + editor.show(); + } else { + editor.hide(); + } + return true; + } + if (self.activeEditor) { + return self.activeEditor.execCommand(cmd, ui, value); + } + return false; + }, + triggerSave: function () { + each$j(editors, function (editor) { + editor.save(); + }); + }, + addI18n: function (code, items) { + I18n.add(code, items); + }, + translate: function (text) { + return I18n.translate(text); + }, + setActive: function (editor) { + var activeEditor = this.activeEditor; + if (this.activeEditor !== editor) { + if (activeEditor) { + activeEditor.fire('deactivate', { relatedTarget: editor }); + } + editor.fire('activate', { relatedTarget: activeEditor }); + } + this.activeEditor = editor; + }, + _setBaseUrl: function (baseUrl) { + this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\/+$/, '')); + this.baseURI = new URI(this.baseURL); + } + }); + EditorManager.setup(); + + function RangeUtils(dom) { + var walk = function (rng, callback) { + return RangeWalk.walk(dom, rng, callback); + }; + var split = split$1; + var normalize = function (rng) { + return NormalizeRange.normalize(dom, rng).fold(constant(false), function (normalizedRng) { + rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset); + rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset); + return true; + }); + }; + return { + walk: walk, + split: split, + normalize: normalize + }; + } + (function (RangeUtils) { + RangeUtils.compareRanges = RangeCompare.isEq; + RangeUtils.getCaretRangeFromPoint = CaretRangeFromPoint.fromPoint; + RangeUtils.getSelectedNode = getSelectedNode; + RangeUtils.getNode = getNode; + }(RangeUtils || (RangeUtils = {}))); + var RangeUtils$1 = RangeUtils; + + var awaiter = function (resolveCb, rejectCb, timeout) { + if (timeout === void 0) { + timeout = 1000; + } + var done = false; + var timer = null; + var complete = function (completer) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (!done) { + done = true; + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + completer.apply(null, args); + } + }; + }; + var resolve = complete(resolveCb); + var reject = complete(rejectCb); + var start = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (!done && timer === null) { + timer = domGlobals.setTimeout(function () { + return reject.apply(null, args); + }, timeout); + } + }; + return { + start: start, + resolve: resolve, + reject: reject + }; + }; + var create$6 = function () { + var tasks = {}; + var resultFns = {}; + var load = function (id, url) { + var loadErrMsg = 'Script at URL "' + url + '" failed to load'; + var runErrMsg = 'Script at URL "' + url + '" did not call `tinymce.Resource.add(\'' + id + '\', data)` within 1 second'; + if (tasks[id] !== undefined) { + return tasks[id]; + } else { + var task = new promiseObj(function (resolve, reject) { + var waiter = awaiter(resolve, reject); + resultFns[id] = waiter.resolve; + ScriptLoader.ScriptLoader.loadScript(url, function () { + return waiter.start(runErrMsg); + }, function () { + return waiter.reject(loadErrMsg); + }); + }); + tasks[id] = task; + return task; + } + }; + var add = function (id, data) { + if (resultFns[id] !== undefined) { + resultFns[id](data); + delete resultFns[id]; + } + tasks[id] = promiseObj.resolve(data); + }; + return { + load: load, + add: add + }; + }; + var Resource = create$6(); + + var min = Math.min, max = Math.max, round$2 = Math.round; + var relativePosition = function (rect, targetRect, rel) { + var x, y, w, h, targetW, targetH; + x = targetRect.x; + y = targetRect.y; + w = rect.w; + h = rect.h; + targetW = targetRect.w; + targetH = targetRect.h; + rel = (rel || '').split(''); + if (rel[0] === 'b') { + y += targetH; + } + if (rel[1] === 'r') { + x += targetW; + } + if (rel[0] === 'c') { + y += round$2(targetH / 2); + } + if (rel[1] === 'c') { + x += round$2(targetW / 2); + } + if (rel[3] === 'b') { + y -= h; + } + if (rel[4] === 'r') { + x -= w; + } + if (rel[3] === 'c') { + y -= round$2(h / 2); + } + if (rel[4] === 'c') { + x -= round$2(w / 2); + } + return create$7(x, y, w, h); + }; + var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) { + var pos, i; + for (i = 0; i < rels.length; i++) { + pos = relativePosition(rect, targetRect, rels[i]); + if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) { + return rels[i]; + } + } + return null; + }; + var inflate = function (rect, w, h) { + return create$7(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2); + }; + var intersect = function (rect, cropRect) { + var x1, y1, x2, y2; + x1 = max(rect.x, cropRect.x); + y1 = max(rect.y, cropRect.y); + x2 = min(rect.x + rect.w, cropRect.x + cropRect.w); + y2 = min(rect.y + rect.h, cropRect.y + cropRect.h); + if (x2 - x1 < 0 || y2 - y1 < 0) { + return null; + } + return create$7(x1, y1, x2 - x1, y2 - y1); + }; + var clamp$1 = function (rect, clampRect, fixedSize) { + var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2; + x1 = rect.x; + y1 = rect.y; + x2 = rect.x + rect.w; + y2 = rect.y + rect.h; + cx2 = clampRect.x + clampRect.w; + cy2 = clampRect.y + clampRect.h; + underflowX1 = max(0, clampRect.x - x1); + underflowY1 = max(0, clampRect.y - y1); + overflowX2 = max(0, x2 - cx2); + overflowY2 = max(0, y2 - cy2); + x1 += underflowX1; + y1 += underflowY1; + if (fixedSize) { + x2 += underflowX1; + y2 += underflowY1; + x1 -= overflowX2; + y1 -= overflowY2; + } + x2 -= overflowX2; + y2 -= overflowY2; + return create$7(x1, y1, x2 - x1, y2 - y1); + }; + var create$7 = function (x, y, w, h) { + return { + x: x, + y: y, + w: w, + h: h + }; + }; + var fromClientRect = function (clientRect) { + return create$7(clientRect.left, clientRect.top, clientRect.width, clientRect.height); + }; + var Rect = { + inflate: inflate, + relativePosition: relativePosition, + findBestRelativePosition: findBestRelativePosition, + intersect: intersect, + clamp: clamp$1, + create: create$7, + fromClientRect: fromClientRect + }; + + var each$k = Tools.each, extend$5 = Tools.extend; + var extendClass, initializing; + var Class = function () { + }; + Class.extend = extendClass = function (prop) { + var self = this; + var _super = self.prototype; + var prototype, name, member; + var Class = function () { + var i, mixins, mixin; + var self = this; + if (!initializing) { + if (self.init) { + self.init.apply(self, arguments); + } + mixins = self.Mixins; + if (mixins) { + i = mixins.length; + while (i--) { + mixin = mixins[i]; + if (mixin.init) { + mixin.init.apply(self, arguments); + } + } + } + } + }; + var dummy = function () { + return this; + }; + var createMethod = function (name, fn) { + return function () { + var self = this; + var tmp = self._super; + var ret; + self._super = _super[name]; + ret = fn.apply(self, arguments); + self._super = tmp; + return ret; + }; + }; + initializing = true; + prototype = new self(); + initializing = false; + if (prop.Mixins) { + each$k(prop.Mixins, function (mixin) { + for (var name_1 in mixin) { + if (name_1 !== 'init') { + prop[name_1] = mixin[name_1]; + } + } + }); + if (_super.Mixins) { + prop.Mixins = _super.Mixins.concat(prop.Mixins); + } + } + if (prop.Methods) { + each$k(prop.Methods.split(','), function (name) { + prop[name] = dummy; + }); + } + if (prop.Properties) { + each$k(prop.Properties.split(','), function (name) { + var fieldName = '_' + name; + prop[name] = function (value) { + var self = this; + if (value !== undefined) { + self[fieldName] = value; + return self; + } + return self[fieldName]; + }; + }); + } + if (prop.Statics) { + each$k(prop.Statics, function (func, name) { + Class[name] = func; + }); + } + if (prop.Defaults && _super.Defaults) { + prop.Defaults = extend$5({}, _super.Defaults, prop.Defaults); + } + for (name in prop) { + member = prop[name]; + if (typeof member === 'function' && _super[name]) { + prototype[name] = createMethod(name, member); + } else { + prototype[name] = member; + } + } + Class.prototype = prototype; + Class.constructor = Class; + Class.extend = extendClass; + return Class; + }; + + var min$1 = Math.min, max$1 = Math.max, round$3 = Math.round; + var Color = function (value) { + var self = {}; + var r = 0, g = 0, b = 0; + var rgb2hsv = function (r, g, b) { + var h, s, v, d, minRGB, maxRGB; + h = 0; + s = 0; + v = 0; + r = r / 255; + g = g / 255; + b = b / 255; + minRGB = min$1(r, min$1(g, b)); + maxRGB = max$1(r, max$1(g, b)); + if (minRGB === maxRGB) { + v = minRGB; + return { + h: 0, + s: 0, + v: v * 100 + }; + } + d = r === minRGB ? g - b : b === minRGB ? r - g : b - r; + h = r === minRGB ? 3 : b === minRGB ? 1 : 5; + h = 60 * (h - d / (maxRGB - minRGB)); + s = (maxRGB - minRGB) / maxRGB; + v = maxRGB; + return { + h: round$3(h), + s: round$3(s * 100), + v: round$3(v * 100) + }; + }; + var hsvToRgb = function (hue, saturation, brightness) { + var side, chroma, x, match; + hue = (parseInt(hue, 10) || 0) % 360; + saturation = parseInt(saturation, 10) / 100; + brightness = parseInt(brightness, 10) / 100; + saturation = max$1(0, min$1(saturation, 1)); + brightness = max$1(0, min$1(brightness, 1)); + if (saturation === 0) { + r = g = b = round$3(255 * brightness); + return; + } + side = hue / 60; + chroma = brightness * saturation; + x = chroma * (1 - Math.abs(side % 2 - 1)); + match = brightness - chroma; + switch (Math.floor(side)) { + case 0: + r = chroma; + g = x; + b = 0; + break; + case 1: + r = x; + g = chroma; + b = 0; + break; + case 2: + r = 0; + g = chroma; + b = x; + break; + case 3: + r = 0; + g = x; + b = chroma; + break; + case 4: + r = x; + g = 0; + b = chroma; + break; + case 5: + r = chroma; + g = 0; + b = x; + break; + default: + r = g = b = 0; + } + r = round$3(255 * (r + match)); + g = round$3(255 * (g + match)); + b = round$3(255 * (b + match)); + }; + var toHex = function () { + var hex = function (val) { + val = parseInt(val, 10).toString(16); + return val.length > 1 ? val : '0' + val; + }; + return '#' + hex(r) + hex(g) + hex(b); + }; + var toRgb = function () { + return { + r: r, + g: g, + b: b + }; + }; + var toHsv = function () { + return rgb2hsv(r, g, b); + }; + var parse = function (value) { + var matches; + if (typeof value === 'object') { + if ('r' in value) { + r = value.r; + g = value.g; + b = value.b; + } else if ('v' in value) { + hsvToRgb(value.h, value.s, value.v); + } + } else { + if (matches = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(value)) { + r = parseInt(matches[1], 10); + g = parseInt(matches[2], 10); + b = parseInt(matches[3], 10); + } else if (matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value)) { + r = parseInt(matches[1], 16); + g = parseInt(matches[2], 16); + b = parseInt(matches[3], 16); + } else if (matches = /#([0-F])([0-F])([0-F])/gi.exec(value)) { + r = parseInt(matches[1] + matches[1], 16); + g = parseInt(matches[2] + matches[2], 16); + b = parseInt(matches[3] + matches[3], 16); + } + } + r = r < 0 ? 0 : r > 255 ? 255 : r; + g = g < 0 ? 0 : g > 255 ? 255 : g; + b = b < 0 ? 0 : b > 255 ? 255 : b; + return self; + }; + if (value) { + parse(value); + } + self.toRgb = toRgb; + self.toHsv = toHsv; + self.toHex = toHex; + self.parse = parse; + return self; + }; + + var serialize = function (obj) { + var data = JSON.stringify(obj); + if (!isString(data)) { + return data; + } + return data.replace(/[\u0080-\uFFFF]/g, function (match) { + var hexCode = match.charCodeAt(0).toString(16); + return '\\u' + '0000'.substring(hexCode.length) + hexCode; + }); + }; + var JSONUtils = { + serialize: serialize, + parse: function (text) { + try { + return JSON.parse(text); + } catch (ex) { + } + } + }; + + var JSONP = { + callbacks: {}, + count: 0, + send: function (settings) { + var self = this, dom = DOMUtils$1.DOM, count = settings.count !== undefined ? settings.count : self.count; + var id = 'tinymce_jsonp_' + count; + self.callbacks[count] = function (json) { + dom.remove(id); + delete self.callbacks[count]; + settings.callback(json); + }; + dom.add(dom.doc.body, 'script', { + id: id, + src: settings.url, + type: 'text/javascript' + }); + self.count++; + } + }; + + var XHR = __assign(__assign({}, Observable), { + send: function (settings) { + var xhr, count = 0; + var ready = function () { + if (!settings.async || xhr.readyState === 4 || count++ > 10000) { + if (settings.success && count < 10000 && xhr.status === 200) { + settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings); + } else if (settings.error) { + settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings); + } + xhr = null; + } else { + Delay.setTimeout(ready, 10); + } + }; + settings.scope = settings.scope || this; + settings.success_scope = settings.success_scope || settings.scope; + settings.error_scope = settings.error_scope || settings.scope; + settings.async = settings.async !== false; + settings.data = settings.data || ''; + XHR.fire('beforeInitialize', { settings: settings }); + xhr = new domGlobals.XMLHttpRequest(); + if (xhr) { + if (xhr.overrideMimeType) { + xhr.overrideMimeType(settings.content_type); + } + xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async); + if (settings.crossDomain) { + xhr.withCredentials = true; + } + if (settings.content_type) { + xhr.setRequestHeader('Content-Type', settings.content_type); + } + if (settings.requestheaders) { + Tools.each(settings.requestheaders, function (header) { + xhr.setRequestHeader(header.key, header.value); + }); + } + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + xhr = XHR.fire('beforeSend', { + xhr: xhr, + settings: settings + }).xhr; + xhr.send(settings.data); + if (!settings.async) { + return ready(); + } + Delay.setTimeout(ready, 10); + } + } + }); + + var extend$6 = Tools.extend; + var JSONRequest = function () { + function JSONRequest(settings) { + this.settings = extend$6({}, settings); + this.count = 0; + } + JSONRequest.sendRPC = function (o) { + return new JSONRequest().send(o); + }; + JSONRequest.prototype.send = function (args) { + var ecb = args.error, scb = args.success; + var xhrArgs = extend$6(this.settings, args); + xhrArgs.success = function (c, x) { + c = JSONUtils.parse(c); + if (typeof c === 'undefined') { + c = { error: 'JSON Parse error.' }; + } + if (c.error) { + ecb.call(xhrArgs.error_scope || xhrArgs.scope, c.error, x); + } else { + scb.call(xhrArgs.success_scope || xhrArgs.scope, c.result); + } + }; + xhrArgs.error = function (ty, x) { + if (ecb) { + ecb.call(xhrArgs.error_scope || xhrArgs.scope, ty, x); + } + }; + xhrArgs.data = JSONUtils.serialize({ + id: args.id || 'c' + this.count++, + method: args.method, + params: args.params + }); + xhrArgs.content_type = 'application/json'; + XHR.send(xhrArgs); + }; + return JSONRequest; + }(); + + var create$8 = function () { + return function () { + var data = {}; + var keys = []; + var storage = { + getItem: function (key) { + var item = data[key]; + return item ? item : null; + }, + setItem: function (key, value) { + keys.push(key); + data[key] = String(value); + }, + key: function (index) { + return keys[index]; + }, + removeItem: function (key) { + keys = keys.filter(function (k) { + return k === key; + }); + delete data[key]; + }, + clear: function () { + keys = []; + data = {}; + }, + length: 0 + }; + Object.defineProperty(storage, 'length', { + get: function () { + return keys.length; + }, + configurable: false, + enumerable: false + }); + return storage; + }(); + }; + + var localStorage; + try { + localStorage = domGlobals.window.localStorage; + } catch (e) { + localStorage = create$8(); + } + var LocalStorage = localStorage; + + var publicApi = { + geom: { Rect: Rect }, + util: { + Promise: promiseObj, + Delay: Delay, + Tools: Tools, + VK: VK, + URI: URI, + Class: Class, + EventDispatcher: EventDispatcher, + Observable: Observable, + I18n: I18n, + XHR: XHR, + JSON: JSONUtils, + JSONRequest: JSONRequest, + JSONP: JSONP, + LocalStorage: LocalStorage, + Color: Color + }, + dom: { + EventUtils: EventUtils, + Sizzle: Sizzle, + DomQuery: DomQuery, + TreeWalker: TreeWalker, + TextSeeker: TextSeeker, + DOMUtils: DOMUtils$1, + ScriptLoader: ScriptLoader, + RangeUtils: RangeUtils$1, + Serializer: Serializer$1, + ControlSelection: ControlSelection, + BookmarkManager: BookmarkManager$1, + Selection: Selection$1, + Event: EventUtils.Event + }, + html: { + Styles: Styles, + Entities: Entities, + Node: Node$1, + Schema: Schema, + SaxParser: SaxParser$1, + DomParser: DomParser, + Writer: Writer, + Serializer: Serializer + }, + Env: Env, + AddOnManager: AddOnManager$1, + Annotator: Annotator, + Formatter: Formatter, + UndoManager: UndoManager, + EditorCommands: EditorCommands, + WindowManager: WindowManager, + NotificationManager: NotificationManager, + EditorObservable: EditorObservable, + Shortcuts: Shortcuts, + Editor: Editor, + FocusManager: FocusManager, + EditorManager: EditorManager, + DOM: DOMUtils$1.DOM, + ScriptLoader: ScriptLoader.ScriptLoader, + PluginManager: AddOnManager$1.PluginManager, + ThemeManager: AddOnManager$1.ThemeManager, + IconManager: IconManager, + Resource: Resource, + trim: Tools.trim, + isArray: Tools.isArray, + is: Tools.is, + toArray: Tools.toArray, + makeMap: Tools.makeMap, + each: Tools.each, + map: Tools.map, + grep: Tools.grep, + inArray: Tools.inArray, + extend: Tools.extend, + create: Tools.create, + walk: Tools.walk, + createNS: Tools.createNS, + resolve: Tools.resolve, + explode: Tools.explode, + _addCacheSuffix: Tools._addCacheSuffix, + isOpera: Env.opera, + isWebKit: Env.webkit, + isIE: Env.ie, + isGecko: Env.gecko, + isMac: Env.mac + }; + var tinymce = Tools.extend(EditorManager, publicApi); + + var exportToModuleLoaders = function (tinymce) { + if (typeof module === 'object') { + try { + module.exports = tinymce; + } catch (_) { + } + } + }; + var exportToWindowGlobal = function (tinymce) { + window.tinymce = tinymce; + window.tinyMCE = tinymce; + }; + exportToWindowGlobal(tinymce); + exportToModuleLoaders(tinymce); + +}(window)); + + + +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/** + * Jquery integration plugin. + * + * @class tinymce.core.JqueryIntegration + * @private + */ +!function(){var f,c,u,p,d,s=[];d="undefined"!=typeof global?global:window,p=d.jQuery;function v(){ +// Reference to tinymce needs to be lazily evaluated since tinymce +// might be loaded through the compressor or other means +return d.tinymce}p.fn.tinymce=function(o){var e,t,i,l=this,r=""; +// No match then just ignore the call +if(!l.length)return l; +// Get editor instance +if(!o)return v()?v().get(l[0].id):null;l.css("visibility","hidden");function n(){var a=[],c=0; +// Apply patches to the jQuery object, only once +u||(m(),u=!0), +// Create an editor instance for each matched node +l.each(function(e,t){var n,i=t.id,r=o.oninit; +// Generate unique id for target element if needed +i||(t.id=i=v().DOM.uniqueId()), +// Only init the editor once +v().get(i)||( +// Create editor instance and render it +n=v().createEditor(i,o),a.push(n),n.on("init",function(){var e,t=r;l.css("visibility",""), +// Run this if the oninit setting is defined +// this logic will fire the oninit callback ones each +// matched editor instance is initialized +r&&++c==a.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:v().resolve(t.replace(/\.\w+$/,"")),t=v().resolve(t)), +// Call the oninit function with the object +t.apply(e||v(),a))}))}), +// Render the editor instances in a separate loop since we +// need to have the full editors array used in the onInit calls +p.each(a,function(e,t){t.render()})} +// Load TinyMCE on demand, if we need to +if(d.tinymce||c||!(e=o.script_url)) +// Delay the init call until tinymce is loaded +1===c?s.push(n):n();else{c=1,t=e.substring(0,e.lastIndexOf("/")), +// Check if it's a dev/src version they want to load then +// make sure that all plugins, themes etc are loaded in source mode as well +-1!=e.indexOf(".min")&&(r=".min"), +// Setup tinyMCEPreInit object this will later be used by the TinyMCE +// core script to locate other resources like CSS files, dialogs etc +// You can also predefined a tinyMCEPreInit object and then it will use that instead +d.tinymce=d.tinyMCEPreInit||{base:t,suffix:r}, +// url contains gzip then we assume it's a compressor +-1!=e.indexOf("gzip")&&(i=o.language||"en",e=e+(/\?/.test(e)?"&":"?")+"js=true&core=true&suffix="+escape(r)+"&themes="+escape(o.theme||"modern")+"&plugins="+escape(o.plugins||"")+"&languages="+(i||""), +// Check if compressor script is already loaded otherwise setup a basic one +d.tinyMCE_GZ||(d.tinyMCE_GZ={start:function(){function n(e){v().ScriptLoader.markDone(v().baseURI.toAbsolute(e))} +// Add core languages +n("langs/"+i+".js"), +// Add themes with languages +n("themes/"+o.theme+"/theme"+r+".js"),n("themes/"+o.theme+"/langs/"+i+".js"), +// Add plugins with languages +p.each(o.plugins.split(","),function(e,t){t&&(n("plugins/"+t+"/plugin"+r+".js"),n("plugins/"+t+"/langs/"+i+".js"))})},end:function(){}}));var a=document.createElement("script");a.type="text/javascript",a.onload=a.onreadystatechange=function(e){e=e||window.event,2===c||"load"!=e.type&&!/complete|loaded/.test(a.readyState)||(v().dom.Event.domLoaded=1,c=2, +// Execute callback after mainscript has been loaded and before the initialization occurs +o.script_loaded&&o.script_loaded(),n(),p.each(s,function(e,t){t()}))},a.src=e,document.body.appendChild(a)}return l}, +// Add :tinymce pseudo selector this will select elements that has been converted into editor instances +// it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements. +p.extend(p.expr[":"],{tinymce:function(e){var t;return!!(e.id&&"tinymce"in d&&(t=v().get(e.id))&&t.editorManager===v())}}); +// This function patches internal jQuery functions so that if +// you for example remove an div element containing an editor it's +// automatically destroyed by the TinyMCE API +var m=function(){function r(e){ +// If the function is remove +"remove"===e&&this.each(function(e,t){var n=u(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=v().get(t.id.replace(/_parent$/,""));n&&n.remove()})}function o(i){var e,t=this; +// Handle set value +/*jshint eqnull:true */if(null!=i)r.call(t), +// Saves the contents before get/set value of textarea/div +t.each(function(e,t){var n;(n=v().get(t.id))&&n.setContent(i)});else if(0])*>/g,""):n.getContent({save:!0}):a.apply(p(t),r)}),i}}), +// Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe +p.each(["append","prepend"],function(e,t){var n=s[t]=p.fn[t],r="prepend"===t;p.fn[t]=function(i){var e=this;return l(e)?i!==f?("string"==typeof i&&e.filter(":tinymce").each(function(e,t){var n=u(t);n&&n.setContent(r?i+n.getContent():n.getContent()+i)}),n.apply(e.not(":tinymce"),arguments),e):void 0:n.apply(e,arguments)}}), +// Makes sure that the editor instance gets properly destroyed when the parent element is removed +p.each(["remove","replaceWith","replaceAll","empty"],function(e,t){var n=s[t]=p.fn[t];p.fn[t]=function(){return r.call(this,t),n.apply(this,arguments)}}),s.attr=p.fn.attr, +// Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents +p.fn.attr=function(e,t){var n=this,i=arguments;if(!e||"value"!==e||!l(n))return s.attr.apply(n,i);if(t!==f)return o.call(n.filter(":tinymce"),t),s.attr.apply(n.not(":tinymce"),i),n;// return original set for chaining +var r=n[0],a=u(r);return a?a.getContent({save:!0}):s.attr.apply(p(r),i)}}}(); + + +/*! + * Modernizr v2.7.1 + * www.modernizr.com + * + * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton + * Available under the BSD and MIT licenses: www.modernizr.com/license/ + */ + +/* + * Modernizr tests which native CSS3 and HTML5 features are available in + * the current UA and makes the results available to you in two ways: + * as properties on a global Modernizr object, and as classes on the + * element. This information allows you to progressively enhance + * your pages with a granular level of control over the experience. + * + * Modernizr has an optional (not included) conditional resource loader + * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). + * To get a build that includes Modernizr.load(), as well as choosing + * which tests to include, go to www.modernizr.com/download/ + * + * Authors Faruk Ates, Paul Irish, Alex Sexton + * Contributors Ryan Seddon, Ben Alman + */ + +window.Modernizr = (function( window, document, undefined ) { + + var version = '2.7.1', + + Modernizr = {}, + + /*>>cssclasses*/ + // option for enabling the HTML classes to be added + enableClasses = true, + /*>>cssclasses*/ + + docElement = document.documentElement, + + /** + * Create our "modernizr" element that we do most feature tests on. + */ + mod = 'modernizr', + modElem = document.createElement(mod), + mStyle = modElem.style, + + /** + * Create the input element for various Web Forms feature tests. + */ + inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , + + /*>>smile*/ + smile = ':)', + /*>>smile*/ + + toString = {}.toString, + + // TODO :: make the prefixes more granular + /*>>prefixes*/ + // List of property values to set for css tests. See ticket #21 + prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), + /*>>prefixes*/ + + /*>>domprefixes*/ + // Following spec is to expose vendor-specific style properties as: + // elem.style.WebkitBorderRadius + // and the following would be incorrect: + // elem.style.webkitBorderRadius + + // Webkit ghosts their properties in lowercase but Opera & Moz do not. + // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ + // erik.eae.net/archives/2008/03/10/21.48.10/ + + // More here: github.com/Modernizr/Modernizr/issues/issue/21 + omPrefixes = 'Webkit Moz O ms', + + cssomPrefixes = omPrefixes.split(' '), + + domPrefixes = omPrefixes.toLowerCase().split(' '), + /*>>domprefixes*/ + + /*>>ns*/ + ns = {'svg': 'http://www.w3.org/2000/svg'}, + /*>>ns*/ + + tests = {}, + inputs = {}, + attrs = {}, + + classes = [], + + slice = classes.slice, + + featureName, // used in testing loop + + + /*>>teststyles*/ + // Inject element with style element and some CSS rules + injectElementWithStyles = function( rule, callback, nodes, testnames ) { + + var style, ret, node, docOverflow, + div = document.createElement('div'), + // After page load injecting a fake body doesn't work so check if body exists + body = document.body, + // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. + fakeBody = body || document.createElement('body'); + + if ( parseInt(nodes, 10) ) { + // In order not to give false positives we create a node for each test + // This also allows the method to scale for unspecified uses + while ( nodes-- ) { + node = document.createElement('div'); + node.id = testnames ? testnames[nodes] : mod + (nodes + 1); + div.appendChild(node); + } + } + + // '].join(''); + div.id = mod; + // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. + // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 + (body ? div : fakeBody).innerHTML += style; + fakeBody.appendChild(div); + if ( !body ) { + //avoid crashing IE8, if background image is used + fakeBody.style.background = ''; + //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible + fakeBody.style.overflow = 'hidden'; + docOverflow = docElement.style.overflow; + docElement.style.overflow = 'hidden'; + docElement.appendChild(fakeBody); + } + + ret = callback(div, rule); + // If this is done after page load we don't want to remove the body so check if body exists + if ( !body ) { + fakeBody.parentNode.removeChild(fakeBody); + docElement.style.overflow = docOverflow; + } else { + div.parentNode.removeChild(div); + } + + return !!ret; + + }, + /*>>teststyles*/ + + /*>>mq*/ + // adapted from matchMedia polyfill + // by Scott Jehl and Paul Irish + // gist.github.com/786768 + testMediaQuery = function( mq ) { + + var matchMedia = window.matchMedia || window.msMatchMedia; + if ( matchMedia ) { + return matchMedia(mq).matches; + } + + var bool; + + injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { + bool = (window.getComputedStyle ? + getComputedStyle(node, null) : + node.currentStyle)['position'] == 'absolute'; + }); + + return bool; + + }, + /*>>mq*/ + + + /*>>hasevent*/ + // + // isEventSupported determines if a given element supports the given event + // kangax.github.com/iseventsupported/ + // + // The following results are known incorrects: + // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative + // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 + // ... + isEventSupported = (function() { + + var TAGNAMES = { + 'select': 'input', 'change': 'input', + 'submit': 'form', 'reset': 'form', + 'error': 'img', 'load': 'img', 'abort': 'img' + }; + + function isEventSupported( eventName, element ) { + + element = element || document.createElement(TAGNAMES[eventName] || 'div'); + eventName = 'on' + eventName; + + // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those + var isSupported = eventName in element; + + if ( !isSupported ) { + // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element + if ( !element.setAttribute ) { + element = document.createElement('div'); + } + if ( element.setAttribute && element.removeAttribute ) { + element.setAttribute(eventName, ''); + isSupported = is(element[eventName], 'function'); + + // If property was created, "remove it" (by setting value to `undefined`) + if ( !is(element[eventName], 'undefined') ) { + element[eventName] = undefined; + } + element.removeAttribute(eventName); + } + } + + element = null; + return isSupported; + } + return isEventSupported; + })(), + /*>>hasevent*/ + + // TODO :: Add flag for hasownprop ? didn't last time + + // hasOwnProperty shim by kangax needed for Safari 2.0 support + _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; + + if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { + hasOwnProp = function (object, property) { + return _hasOwnProperty.call(object, property); + }; + } + else { + hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ + return ((property in object) && is(object.constructor.prototype[property], 'undefined')); + }; + } + + // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js + // es5.github.com/#x15.3.4.5 + + if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { + + var target = this; + + if (typeof target != "function") { + throw new TypeError(); + } + + var args = slice.call(arguments, 1), + bound = function () { + + if (this instanceof bound) { + + var F = function(){}; + F.prototype = target.prototype; + var self = new F(); + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return self; + + } else { + + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + + return bound; + }; + } + + /** + * setCss applies given styles to the Modernizr DOM node. + */ + function setCss( str ) { + mStyle.cssText = str; + } + + /** + * setCssAll extrapolates all vendor-specific css strings. + */ + function setCssAll( str1, str2 ) { + return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); + } + + /** + * is returns a boolean for if typeof obj is exactly type. + */ + function is( obj, type ) { + return typeof obj === type; + } + + /** + * contains returns a boolean for if substr is found within str. + */ + function contains( str, substr ) { + return !!~('' + str).indexOf(substr); + } + + /*>>testprop*/ + + // testProps is a generic CSS / DOM property test. + + // In testing support for a given CSS property, it's legit to test: + // `elem.style[styleName] !== undefined` + // If the property is supported it will return an empty string, + // if unsupported it will return undefined. + + // We'll take advantage of this quick test and skip setting a style + // on our modernizr element, but instead just testing undefined vs + // empty string. + + // Because the testing of the CSS property names (with "-", as + // opposed to the camelCase DOM properties) is non-portable and + // non-standard but works in WebKit and IE (but not Gecko or Opera), + // we explicitly reject properties with dashes so that authors + // developing in WebKit or IE first don't end up with + // browser-specific content by accident. + + function testProps( props, prefixed ) { + for ( var i in props ) { + var prop = props[i]; + if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { + return prefixed == 'pfx' ? prop : true; + } + } + return false; + } + /*>>testprop*/ + + // TODO :: add testDOMProps + /** + * testDOMProps is a generic DOM property test; if a browser supports + * a certain property, it won't return undefined for it. + */ + function testDOMProps( props, obj, elem ) { + for ( var i in props ) { + var item = obj[props[i]]; + if ( item !== undefined) { + + // return the property name as a string + if (elem === false) return props[i]; + + // let's bind a function + if (is(item, 'function')){ + // default to autobind unless override + return item.bind(elem || obj); + } + + // return the unbound function or obj or value + return item; + } + } + return false; + } + + /*>>testallprops*/ + /** + * testPropsAll tests a list of DOM properties we want to check against. + * We specify literally ALL possible (known and/or likely) properties on + * the element including the non-vendor prefixed one, for forward- + * compatibility. + */ + function testPropsAll( prop, prefixed, elem ) { + + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); + + // did they call .prefixed('boxSizing') or are we just testing a prop? + if(is(prefixed, "string") || is(prefixed, "undefined")) { + return testProps(props, prefixed); + + // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) + } else { + props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); + return testDOMProps(props, prefixed, elem); + } + } + /*>>testallprops*/ + + + /** + * Tests + * ----- + */ + + // The *new* flexbox + // dev.w3.org/csswg/css3-flexbox + + tests['flexbox'] = function() { + return testPropsAll('flexWrap'); + }; + + // The *old* flexbox + // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ + + tests['flexboxlegacy'] = function() { + return testPropsAll('boxDirection'); + }; + + // On the S60 and BB Storm, getContext exists, but always returns undefined + // so we actually have to call getContext() to verify + // github.com/Modernizr/Modernizr/issues/issue/97/ + + tests['canvas'] = function() { + var elem = document.createElement('canvas'); + return !!(elem.getContext && elem.getContext('2d')); + }; + + tests['canvastext'] = function() { + return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); + }; + + // webk.it/70117 is tracking a legit WebGL feature detect proposal + + // We do a soft detect which may false positive in order to avoid + // an expensive context creation: bugzil.la/732441 + + tests['webgl'] = function() { + return !!window.WebGLRenderingContext; + }; + + /* + * The Modernizr.touch test only indicates if the browser supports + * touch events, which does not necessarily reflect a touchscreen + * device, as evidenced by tablets running Windows 7 or, alas, + * the Palm Pre / WebOS (touch) phones. + * + * Additionally, Chrome (desktop) used to lie about its support on this, + * but that has since been rectified: crbug.com/36415 + * + * We also test for Firefox 4 Multitouch Support. + * + * For more info, see: modernizr.github.com/Modernizr/touch.html + */ + + tests['touch'] = function() { + var bool; + + if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { + bool = true; + } else { + injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { + bool = node.offsetTop === 9; + }); + } + + return bool; + }; + + + // geolocation is often considered a trivial feature detect... + // Turns out, it's quite tricky to get right: + // + // Using !!navigator.geolocation does two things we don't want. It: + // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 + // 2. Disables page caching in WebKit: webk.it/43956 + // + // Meanwhile, in Firefox < 8, an about:config setting could expose + // a false positive that would throw an exception: bugzil.la/688158 + + tests['geolocation'] = function() { + return 'geolocation' in navigator; + }; + + + tests['postmessage'] = function() { + return !!window.postMessage; + }; + + + // Chrome incognito mode used to throw an exception when using openDatabase + // It doesn't anymore. + tests['websqldatabase'] = function() { + return !!window.openDatabase; + }; + + // Vendors had inconsistent prefixing with the experimental Indexed DB: + // - Webkit's implementation is accessible through webkitIndexedDB + // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB + // For speed, we don't test the legacy (and beta-only) indexedDB + tests['indexedDB'] = function() { + return !!testPropsAll("indexedDB", window); + }; + + // documentMode logic from YUI to filter out IE8 Compat Mode + // which false positives. + tests['hashchange'] = function() { + return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); + }; + + // Per 1.6: + // This used to be Modernizr.historymanagement but the longer + // name has been deprecated in favor of a shorter and property-matching one. + // The old API is still available in 1.6, but as of 2.0 will throw a warning, + // and in the first release thereafter disappear entirely. + tests['history'] = function() { + return !!(window.history && history.pushState); + }; + + tests['draganddrop'] = function() { + var div = document.createElement('div'); + return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); + }; + + // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 + // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. + // FF10 still uses prefixes, so check for it until then. + // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ + tests['websockets'] = function() { + return 'WebSocket' in window || 'MozWebSocket' in window; + }; + + + // css-tricks.com/rgba-browser-support/ + tests['rgba'] = function() { + // Set an rgba() color and check the returned value + + setCss('background-color:rgba(150,255,150,.5)'); + + return contains(mStyle.backgroundColor, 'rgba'); + }; + + tests['hsla'] = function() { + // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, + // except IE9 who retains it as hsla + + setCss('background-color:hsla(120,40%,100%,.5)'); + + return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); + }; + + tests['multiplebgs'] = function() { + // Setting multiple images AND a color on the background shorthand property + // and then querying the style.background property value for the number of + // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! + + setCss('background:url(https://),url(https://),red url(https://)'); + + // If the UA supports multiple backgrounds, there should be three occurrences + // of the string "url(" in the return value for elemStyle.background + + return (/(url\s*\(.*?){3}/).test(mStyle.background); + }; + + + + // this will false positive in Opera Mini + // github.com/Modernizr/Modernizr/issues/396 + + tests['backgroundsize'] = function() { + return testPropsAll('backgroundSize'); + }; + + tests['borderimage'] = function() { + return testPropsAll('borderImage'); + }; + + + // Super comprehensive table about all the unique implementations of + // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance + + tests['borderradius'] = function() { + return testPropsAll('borderRadius'); + }; + + // WebOS unfortunately false positives on this test. + tests['boxshadow'] = function() { + return testPropsAll('boxShadow'); + }; + + // FF3.0 will false positive on this test + tests['textshadow'] = function() { + return document.createElement('div').style.textShadow === ''; + }; + + + tests['opacity'] = function() { + // Browsers that actually have CSS Opacity implemented have done so + // according to spec, which means their return values are within the + // range of [0.0,1.0] - including the leading zero. + + setCssAll('opacity:.55'); + + // The non-literal . in this regex is intentional: + // German Chrome returns this value as 0,55 + // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 + return (/^0.55$/).test(mStyle.opacity); + }; + + + // Note, Android < 4 will pass this test, but can only animate + // a single property at a time + // daneden.me/2011/12/putting-up-with-androids-bullshit/ + tests['cssanimations'] = function() { + return testPropsAll('animationName'); + }; + + + tests['csscolumns'] = function() { + return testPropsAll('columnCount'); + }; + + + tests['cssgradients'] = function() { + /** + * For CSS Gradients syntax, please see: + * webkit.org/blog/175/introducing-css-gradients/ + * developer.mozilla.org/en/CSS/-moz-linear-gradient + * developer.mozilla.org/en/CSS/-moz-radial-gradient + * dev.w3.org/csswg/css3-images/#gradients- + */ + + var str1 = 'background-image:', + str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', + str3 = 'linear-gradient(left top,#9f9, white);'; + + setCss( + // legacy webkit syntax (FIXME: remove when syntax not in use anymore) + (str1 + '-webkit- '.split(' ').join(str2 + str1) + + // standard syntax // trailing 'background-image:' + prefixes.join(str3 + str1)).slice(0, -str1.length) + ); + + return contains(mStyle.backgroundImage, 'gradient'); + }; + + + tests['cssreflections'] = function() { + return testPropsAll('boxReflect'); + }; + + + tests['csstransforms'] = function() { + return !!testPropsAll('transform'); + }; + + + tests['csstransforms3d'] = function() { + + var ret = !!testPropsAll('perspective'); + + // Webkit's 3D transforms are passed off to the browser's own graphics renderer. + // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in + // some conditions. As a result, Webkit typically recognizes the syntax but + // will sometimes throw a false positive, thus we must do a more thorough check: + if ( ret && 'webkitPerspective' in docElement.style ) { + + // Webkit allows this media query to succeed only if the feature is enabled. + // `@media (transform-3d),(-webkit-transform-3d){ ... }` + injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { + ret = node.offsetLeft === 9 && node.offsetHeight === 3; + }); + } + return ret; + }; + + + tests['csstransitions'] = function() { + return testPropsAll('transition'); + }; + + + /*>>fontface*/ + // @font-face detection routine by Diego Perini + // javascript.nwbox.com/CSSSupport/ + + // false positives: + // WebOS github.com/Modernizr/Modernizr/issues/342 + // WP7 github.com/Modernizr/Modernizr/issues/538 + tests['fontface'] = function() { + var bool; + + injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { + var style = document.getElementById('smodernizr'), + sheet = style.sheet || style.styleSheet, + cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; + + bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; + }); + + return bool; + }; + /*>>fontface*/ + + // CSS generated content detection + tests['generatedcontent'] = function() { + var bool; + + injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { + bool = node.offsetHeight >= 3; + }); + + return bool; + }; + + + + // These tests evaluate support of the video/audio elements, as well as + // testing what types of content they support. + // + // We're using the Boolean constructor here, so that we can extend the value + // e.g. Modernizr.video // true + // Modernizr.video.ogg // 'probably' + // + // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 + // thx to NielsLeenheer and zcorpan + + // Note: in some older browsers, "no" was a return value instead of empty string. + // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 + // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 + + tests['video'] = function() { + var elem = document.createElement('video'), + bool = false; + + // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); + + // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 + bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); + + bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); + } + + } catch(e) { } + + return bool; + }; + + tests['audio'] = function() { + var elem = document.createElement('audio'), + bool = false; + + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); + bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); + + // Mimetypes accepted: + // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements + // bit.ly/iphoneoscodecs + bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); + bool.m4a = ( elem.canPlayType('audio/x-m4a;') || + elem.canPlayType('audio/aac;')) .replace(/^no$/,''); + } + } catch(e) { } + + return bool; + }; + + + // In FF4, if disabled, window.localStorage should === null. + + // Normally, we could not test that directly and need to do a + // `('localStorage' in window) && ` test first because otherwise Firefox will + // throw bugzil.la/365772 if cookies are disabled + + // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem + // will throw the exception: + // QUOTA_EXCEEDED_ERRROR DOM Exception 22. + // Peculiarly, getItem and removeItem calls do not throw. + + // Because we are forced to try/catch this, we'll go aggressive. + + // Just FWIW: IE8 Compat mode supports these features completely: + // www.quirksmode.org/dom/html5.html + // But IE8 doesn't support either with local files + + tests['localstorage'] = function() { + try { + localStorage.setItem(mod, mod); + localStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + tests['sessionstorage'] = function() { + try { + sessionStorage.setItem(mod, mod); + sessionStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + + tests['webworkers'] = function() { + return !!window.Worker; + }; + + + tests['applicationcache'] = function() { + return !!window.applicationCache; + }; + + + // Thanks to Erik Dahlstrom + tests['svg'] = function() { + return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; + }; + + // specifically for SVG inline in HTML, not within XHTML + // test page: paulirish.com/demo/inline-svg + tests['inlinesvg'] = function() { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; + }; + + // SVG SMIL animation + tests['smil'] = function() { + return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); + }; + + // This test is only for clip paths in SVG proper, not clip paths on HTML content + // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg + + // However read the comments to dig into applying SVG clippaths to HTML content here: + // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 + tests['svgclippaths'] = function() { + return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); + }; + + /*>>webforms*/ + // input features and input types go directly onto the ret object, bypassing the tests loop. + // Hold this guy to execute in a moment. + function webforms() { + /*>>input*/ + // Run through HTML5's new input attributes to see if the UA understands any. + // We're using f which is the element created early on + // Mike Taylr has created a comprehensive resource for testing these attributes + // when applied to all input types: + // miketaylr.com/code/input-type-attr.html + // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + + // Only input placeholder is tested while textarea's placeholder is not. + // Currently Safari 4 and Opera 11 have support only for the input placeholder + // Both tests are available in feature-detects/forms-placeholder.js + Modernizr['input'] = (function( props ) { + for ( var i = 0, len = props.length; i < len; i++ ) { + attrs[ props[i] ] = !!(props[i] in inputElem); + } + if (attrs.list){ + // safari false positive's on datalist: webk.it/74252 + // see also github.com/Modernizr/Modernizr/issues/146 + attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); + } + return attrs; + })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); + /*>>input*/ + + /*>>inputtypes*/ + // Run through HTML5's new input types to see if the UA understands any. + // This is put behind the tests runloop because it doesn't return a + // true/false like all the other tests; instead, it returns an object + // containing each input type with its corresponding true/false value + + // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ + Modernizr['inputtypes'] = (function(props) { + + for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { + + inputElem.setAttribute('type', inputElemType = props[i]); + bool = inputElem.type !== 'text'; + + // We first check to see if the type we give it sticks.. + // If the type does, we feed it a textual value, which shouldn't be valid. + // If the value doesn't stick, we know there's input sanitization which infers a custom UI + if ( bool ) { + + inputElem.value = smile; + inputElem.style.cssText = 'position:absolute;visibility:hidden;'; + + if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { + + docElement.appendChild(inputElem); + defaultView = document.defaultView; + + // Safari 2-4 allows the smiley as a value, despite making a slider + bool = defaultView.getComputedStyle && + defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && + // Mobile android web browser has false positive, so must + // check the height to see if the widget is actually there. + (inputElem.offsetHeight !== 0); + + docElement.removeChild(inputElem); + + } else if ( /^(search|tel)$/.test(inputElemType) ){ + // Spec doesn't define any special parsing or detectable UI + // behaviors so we pass these through as true + + // Interestingly, opera fails the earlier test, so it doesn't + // even make it here. + + } else if ( /^(url|email)$/.test(inputElemType) ) { + // Real url and email support comes with prebaked validation. + bool = inputElem.checkValidity && inputElem.checkValidity() === false; + + } else { + // If the upgraded input compontent rejects the :) text, we got a winner + bool = inputElem.value != smile; + } + } + + inputs[ props[i] ] = !!bool; + } + return inputs; + })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); + /*>>inputtypes*/ + } + /*>>webforms*/ + + + // End of test definitions + // ----------------------- + + + + // Run through all tests and detect their support in the current UA. + // todo: hypothetically we could be doing an array of tests and use a basic loop here. + for ( var feature in tests ) { + if ( hasOwnProp(tests, feature) ) { + // run the test, throw the return value into the Modernizr, + // then based on that boolean, define an appropriate className + // and push it into an array of classes we'll join later. + featureName = feature.toLowerCase(); + Modernizr[featureName] = tests[feature](); + + classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); + } + } + + /*>>webforms*/ + // input tests need to run. + Modernizr.input || webforms(); + /*>>webforms*/ + + + /** + * addTest allows the user to define their own feature tests + * the result will be added onto the Modernizr object, + * as well as an appropriate className set on the html element + * + * @param feature - String naming the feature + * @param test - Function returning true if feature is supported, false if not + */ + Modernizr.addTest = function ( feature, test ) { + if ( typeof feature == 'object' ) { + for ( var key in feature ) { + if ( hasOwnProp( feature, key ) ) { + Modernizr.addTest( key, feature[ key ] ); + } + } + } else { + + feature = feature.toLowerCase(); + + if ( Modernizr[feature] !== undefined ) { + // we're going to quit if you're trying to overwrite an existing test + // if we were to allow it, we'd do this: + // var re = new RegExp("\\b(no-)?" + feature + "\\b"); + // docElement.className = docElement.className.replace( re, '' ); + // but, no rly, stuff 'em. + return Modernizr; + } + + test = typeof test == 'function' ? test() : test; + + if (typeof enableClasses !== "undefined" && enableClasses) { + docElement.className += ' ' + (test ? '' : 'no-') + feature; + } + Modernizr[feature] = test; + + } + + return Modernizr; // allow chaining. + }; + + + // Reset modElem.cssText to nothing to reduce memory footprint. + setCss(''); + modElem = inputElem = null; + + /*>>shiv*/ + /** + * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed + */ + ;(function(window, document) { + /*jshint evil:true */ + /** version */ + var version = '3.7.0'; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i>shiv*/ + + // Assign private properties to the return object with prefix + Modernizr._version = version; + + // expose these for the plugin API. Look in the source for how to join() them against your input + /*>>prefixes*/ + Modernizr._prefixes = prefixes; + /*>>prefixes*/ + /*>>domprefixes*/ + Modernizr._domPrefixes = domPrefixes; + Modernizr._cssomPrefixes = cssomPrefixes; + /*>>domprefixes*/ + + /*>>mq*/ + // Modernizr.mq tests a given media query, live against the current state of the window + // A few important notes: + // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false + // * A max-width or orientation query will be evaluated against the current state, which may change later. + // * You must specify values. Eg. If you are testing support for the min-width media query use: + // Modernizr.mq('(min-width:0)') + // usage: + // Modernizr.mq('only screen and (max-width:768)') + Modernizr.mq = testMediaQuery; + /*>>mq*/ + + /*>>hasevent*/ + // Modernizr.hasEvent() detects support for a given event, with an optional element to test on + // Modernizr.hasEvent('gesturestart', elem) + Modernizr.hasEvent = isEventSupported; + /*>>hasevent*/ + + /*>>testprop*/ + // Modernizr.testProp() investigates whether a given style property is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testProp('pointerEvents') + Modernizr.testProp = function(prop){ + return testProps([prop]); + }; + /*>>testprop*/ + + /*>>testallprops*/ + // Modernizr.testAllProps() investigates whether a given style property, + // or any of its vendor-prefixed variants, is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testAllProps('boxSizing') + Modernizr.testAllProps = testPropsAll; + /*>>testallprops*/ + + + /*>>teststyles*/ + // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards + // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) + Modernizr.testStyles = injectElementWithStyles; + /*>>teststyles*/ + + + /*>>prefixed*/ + // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input + // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' + + // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. + // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: + // + // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); + + // If you're trying to ascertain which transition end event to bind to, you might do something like... + // + // var transEndEventNames = { + // 'WebkitTransition' : 'webkitTransitionEnd', + // 'MozTransition' : 'transitionend', + // 'OTransition' : 'oTransitionEnd', + // 'msTransition' : 'MSTransitionEnd', + // 'transition' : 'transitionend' + // }, + // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + + Modernizr.prefixed = function(prop, obj, elem){ + if(!obj) { + return testPropsAll(prop, 'pfx'); + } else { + // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' + return testPropsAll(prop, obj, elem); + } + }; + /*>>prefixed*/ + + + /*>>cssclasses*/ + // Remove "no-js" class from element, if it exists: + docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + + + // Add the new classes to the element. + (enableClasses ? ' js ' + classes.join(' ') : ''); + /*>>cssclasses*/ + + return Modernizr; + +})(this, this.document); +/* @preserve + * Leaflet 1.5.1, a JS library for interactive maps. http://leafletjs.com + * (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";var i=Object.freeze;function h(t){var i,e,n,o;for(e=1,n=arguments.length;e=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.xi.y&&n.y=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lati.lng&&n.lng';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}();function kt(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var Bt=(Object.freeze||Object)({ie:it,ielt9:et,edge:nt,webkit:ot,android:st,android23:rt,androidStock:ht,opera:ut,chrome:lt,gecko:ct,safari:_t,phantom:dt,opera12:pt,win:mt,ie3d:ft,webkit3d:gt,gecko3d:vt,any3d:yt,mobile:xt,mobileWebkit:wt,mobileWebkit3d:Pt,msPointer:Lt,pointer:bt,touch:Tt,mobileOpera:zt,mobileGecko:Mt,retina:Ct,canvas:St,svg:Zt,vml:Et}),At=Lt?"MSPointerDown":"pointerdown",It=Lt?"MSPointerMove":"pointermove",Ot=Lt?"MSPointerUp":"pointerup",Rt=Lt?"MSPointerCancel":"pointercancel",Nt=["INPUT","SELECT","OPTION"],Dt={},jt=!1,Wt=0;function Ht(t,i,e,n){return"touchstart"===i?function(t,i,e){var n=a(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(Nt.indexOf(t.target.tagName)<0))return;Di(t)}qt(t,i)});t["_leaflet_touchstart"+e]=n,t.addEventListener(At,n,!1),jt||(document.documentElement.addEventListener(At,Ft,!0),document.documentElement.addEventListener(It,Ut,!0),document.documentElement.addEventListener(Ot,Vt,!0),document.documentElement.addEventListener(Rt,Vt,!0),jt=!0)}(t,e,n):"touchmove"===i?function(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&qt(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(It,n,!1)}(t,e,n):"touchend"===i&&function(t,i,e){var n=function(t){qt(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(Ot,n,!1),t.addEventListener(Rt,n,!1)}(t,e,n),this}function Ft(t){Dt[t.pointerId]=t,Wt++}function Ut(t){Dt[t.pointerId]&&(Dt[t.pointerId]=t)}function Vt(t){delete Dt[t.pointerId],Wt--}function qt(t,i){for(var e in t.touches=[],Dt)t.touches.push(Dt[e]);t.changedTouches=[t],i(t)}var Gt=Lt?"MSPointerDown":bt?"pointerdown":"touchstart",Kt=Lt?"MSPointerUp":bt?"pointerup":"touchend",Yt="_leaflet_";function Xt(t,o,i){var s,r,a=!1;function e(t){var i;if(bt){if(!nt||"mouse"===t.pointerType)return;i=Wt}else i=t.touches.length;if(!(1this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,D(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},panInside:function(t,i){var e=I((i=i||{}).paddingTopLeft||i.padding||[0,0]),n=I(i.paddingBottomRight||i.padding||[0,0]),o=this.getCenter(),s=this.project(o),r=this.project(t),a=this.getPixelBounds(),h=a.getSize().divideBy(2),u=R([a.min.add(e),a.max.subtract(n)]);if(!u.contains(r)){this._enforcingBounds=!0;var l=s.subtract(r),c=I(r.x+l.x,r.y+l.y);(r.xu.max.x)&&(c.x=s.x-l.x,0u.max.y)&&(c.y=s.y-l.y,0=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,r=!1;s;){if((e=this._targets[u(s)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){r=!0;break}if(e&&e.listens(i,!0)){if(o&&!Ki(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!Ki(s,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!Gi(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i&&"keyup"!==i&&"keydown"!==i||zi(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,e){if("click"===t.type){var n=h({},t);n.type="preclick",this._fireDOMEvent(n,n.type,e)}if(!t._stopped&&(e=(e||[]).concat(this._findEventTargets(t,i))).length){var o=e[0];"contextmenu"===i&&o.listens(i,!0)&&Di(t);var s={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var r=o.getLatLng&&(!o._radius||o._radius<=10);s.containerPoint=r?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),s.layerPoint=this.containerPointToLayerPoint(s.containerPoint),s.latlng=r?o.getLatLng():this.layerPointToLatLng(s.layerPoint)}for(var a=0;athis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(M(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pi(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&mi(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),M(function(){this._moveEnd(!0)},this))}});function $i(t){return new Qi(t)}var Qi=Z.extend({options:{position:"topright"},initialize:function(t){p(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pi(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(ui(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+u(this),n),this._layerControlInputs.push(i),i.layerId=u(t.layer),Ei(i,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("div");return e.appendChild(s),s.appendChild(i),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;0<=s;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;si.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),ie=Qi.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=hi("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=hi("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),Ni(s),Ei(s,"click",ji),Ei(s,"click",o,this),Ei(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";mi(this._zoomInButton,i),mi(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMinZoom()||pi(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMaxZoom()||pi(this._zoomInButton,i)}});Ji.mergeOptions({zoomControl:!0}),Ji.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new ie,this.addControl(this.zoomControl))});var ee=Qi.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=hi("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=hi("div",i,e)),t.imperial&&(this._iScale=hi("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;5280Leaflet'},initialize:function(t){p(this,t),this._attributions={}},onAdd:function(t){for(var i in(t.attributionControl=this)._container=hi("div","leaflet-control-attribution"),Ni(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});Ji.mergeOptions({attributionControl:!0}),Ji.addInitHook(function(){this.options.attributionControl&&(new ne).addTo(this)});Qi.Layers=te,Qi.Zoom=ie,Qi.Scale=ee,Qi.Attribution=ne,$i.layers=function(t,i,e){return new te(t,i,e)},$i.zoom=function(t){return new ie(t)},$i.scale=function(t){return new ee(t)},$i.attribution=function(t){return new ne(t)};var oe=Z.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});oe.addTo=function(t,i){return t.addHandler(i,this),this};var se,re={Events:E},ae=Tt?"touchstart mousedown":"mousedown",he={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},ue={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},le=k.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){p(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(Ei(this._dragStartTarget,ae,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(le._dragging===this&&this.finishDrag(),Bi(this._dragStartTarget,ae,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!di(this._element,"leaflet-zoom-anim")&&!(le._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((le._dragging=this)._preventOutline&&zi(this._element),bi(),$t(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t,e=Ci(this._element);this._startPoint=new B(i.clientX,i.clientY),this._parentScale=Si(e),Ei(document,ue[t.type],this._onMove,this),Ei(document,he[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&1i.max.x&&(e|=2),t.yi.max.y&&(e|=8),e}function fe(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||De.prototype._containsPoint.call(this,t,!0)}});var We=Ee.extend({initialize:function(t,i){p(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=v(t)?t:t.features;if(o){for(i=0,e=o.length;iu.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),ji(t)},_getAnchor:function(){return I(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ji.mergeOptions({closePopupOnClick:!0}),Ji.include({openPopup:function(t,i,e){return t instanceof nn||(t=new nn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Se.include({bindPopup:function(t,i){return t instanceof nn?(p(t,i),(this._popup=t)._source=this):(this._popup&&!i||(this._popup=new nn(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){return this._popup&&this._map&&(i=this._popup._prepareOpen(this,t,i),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(ji(t),i instanceof Oe?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var on=en.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){en.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){en.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=en.prototype.getEvents.call(this);return Tt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=hi("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=I(this.options.offset),u=this._getAnchor();t="top"===s?t.add(I(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t.subtract(I(r/2-h.x,-h.y,!0)):"center"===s?t.subtract(I(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.xthis.options.maxZoom||ethis.options.maxZoom||void 0!==this.options.minZoom&&oe.max.x)||!i.wrapLat&&(t.ye.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return D(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new N(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new B(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(ui(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pi(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=l,t.onmousemove=l,et&&this.options.opacity<1&&vi(t,this.options.opacity),st&&!rt&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&M(a(this._tileReady,this,t,null,o)),wi(o,e),this._tiles[n]={el:o,coords:t,current:!0},i.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);(e=this._tiles[n])&&(e.loaded=+new Date,this._map._fadeAnimated?(vi(e.el,0),C(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(pi(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),et||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new B(this._wrapX?r(t.x,this._wrapX):t.x,this._wrapY?r(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new O(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var an=rn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=p(this,i)).detectRetina&&Ct&&0')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),pn={_initContainer:function(){this._container=hi("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ln.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=dn("shape");pi(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=dn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[u(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ui(i),t.removeInteractiveTarget(i),delete this._layers[u(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=dn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=v(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=dn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ci(t._container)},_bringToBack:function(t){_i(t._container)}},mn=Et?dn:$,fn=ln.extend({getEvents:function(){var t=ln.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=mn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=mn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ui(this._container),Bi(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){ln.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),wi(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=mn("path");t.options.className&&pi(i,t.options.className),t.options.interactive&&pi(i,"leaflet-interactive"),this._updateStyle(t),this._layers[u(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ui(t._path),t.removeInteractiveTarget(t._path),delete this._layers[u(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,Q(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){ci(t._path)},_bringToBack:function(t){_i(t._path)}});function gn(t){return Zt||Et?new fn(t):null}Et&&fn.include(pn),Ji.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&_n(t)||gn(t)}});var vn=je.extend({initialize:function(t,i){je.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=D(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});fn.create=mn,fn.pointsToPath=Q,We.geometryToLayer=He,We.coordsToLatLng=Fe,We.coordsToLatLngs=Ue,We.latLngToCoords=Ve,We.latLngsToCoords=qe,We.getFeature=Ge,We.asFeature=Ke,Ji.mergeOptions({boxZoom:!0});var yn=oe.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ei(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Bi(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ui(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),$t(),bi(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ei(document,{contextmenu:ji,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=hi("div","leaflet-zoom-box",this._container),pi(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new O(this._point,this._startPoint),e=i.getSize();wi(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ui(this._box),mi(this._container,"leaflet-crosshair")),Qt(),Ti(),Bi(document,{contextmenu:ji,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0);var i=new N(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ji.addInitHook("addHandler","boxZoom",yn),Ji.mergeOptions({doubleClickZoom:!0});var xn=oe.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Ji.addInitHook("addHandler","doubleClickZoom",xn),Ji.mergeOptions({dragging:!0,inertia:!rt,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var wn=oe.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new le(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}pi(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mi(this._map._container,"leaflet-grab"),mi(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=D(this._map.options.maxBounds);this._offsetLimit=R(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)i.getMaxZoom()&&1= currentZoom) { + visibleLayer = visibleLayer.__parent; + } + } + + if (this._currentShownBounds.contains(visibleLayer.getLatLng())) { + if (this.options.animateAddingMarkers) { + this._animationAddLayer(layer, visibleLayer); + } else { + this._animationAddLayerNonAnimated(layer, visibleLayer); + } + } + return this; + }, + + removeLayer: function (layer) { + + if (layer instanceof L.LayerGroup) { + return this.removeLayers([layer]); + } + + //Non point layers + if (!layer.getLatLng) { + this._nonPointGroup.removeLayer(layer); + this.fire('layerremove', { layer: layer }); + return this; + } + + if (!this._map) { + if (!this._arraySplice(this._needsClustering, layer) && this.hasLayer(layer)) { + this._needsRemoving.push({ layer: layer, latlng: layer._latlng }); + } + this.fire('layerremove', { layer: layer }); + return this; + } + + if (!layer.__parent) { + return this; + } + + if (this._unspiderfy) { + this._unspiderfy(); + this._unspiderfyLayer(layer); + } + + //Remove the marker from clusters + this._removeLayer(layer, true); + this.fire('layerremove', { layer: layer }); + + // Refresh bounds and weighted positions. + this._topClusterLevel._recalculateBounds(); + + this._refreshClustersIcons(); + + layer.off(this._childMarkerEventHandlers, this); + + if (this._featureGroup.hasLayer(layer)) { + this._featureGroup.removeLayer(layer); + if (layer.clusterShow) { + layer.clusterShow(); + } + } + + return this; + }, + + //Takes an array of markers and adds them in bulk + addLayers: function (layersArray, skipLayerAddEvent) { + if (!L.Util.isArray(layersArray)) { + return this.addLayer(layersArray); + } + + var fg = this._featureGroup, + npg = this._nonPointGroup, + chunked = this.options.chunkedLoading, + chunkInterval = this.options.chunkInterval, + chunkProgress = this.options.chunkProgress, + l = layersArray.length, + offset = 0, + originalArray = true, + m; + + if (this._map) { + var started = (new Date()).getTime(); + var process = L.bind(function () { + var start = (new Date()).getTime(); + for (; offset < l; offset++) { + if (chunked && offset % 200 === 0) { + // every couple hundred markers, instrument the time elapsed since processing started: + var elapsed = (new Date()).getTime() - start; + if (elapsed > chunkInterval) { + break; // been working too hard, time to take a break :-) + } + } + + m = layersArray[offset]; + + // Group of layers, append children to layersArray and skip. + // Side effects: + // - Total increases, so chunkProgress ratio jumps backward. + // - Groups are not included in this group, only their non-group child layers (hasLayer). + // Changing array length while looping does not affect performance in current browsers: + // http://jsperf.com/for-loop-changing-length/6 + if (m instanceof L.LayerGroup) { + if (originalArray) { + layersArray = layersArray.slice(); + originalArray = false; + } + this._extractNonGroupLayers(m, layersArray); + l = layersArray.length; + continue; + } + + //Not point data, can't be clustered + if (!m.getLatLng) { + npg.addLayer(m); + if (!skipLayerAddEvent) { + this.fire('layeradd', { layer: m }); + } + continue; + } + + if (this.hasLayer(m)) { + continue; + } + + this._addLayer(m, this._maxZoom); + if (!skipLayerAddEvent) { + this.fire('layeradd', { layer: m }); + } + + //If we just made a cluster of size 2 then we need to remove the other marker from the map (if it is) or we never will + if (m.__parent) { + if (m.__parent.getChildCount() === 2) { + var markers = m.__parent.getAllChildMarkers(), + otherMarker = markers[0] === m ? markers[1] : markers[0]; + fg.removeLayer(otherMarker); + } + } + } + + if (chunkProgress) { + // report progress and time elapsed: + chunkProgress(offset, l, (new Date()).getTime() - started); + } + + // Completed processing all markers. + if (offset === l) { + + // Refresh bounds and weighted positions. + this._topClusterLevel._recalculateBounds(); + + this._refreshClustersIcons(); + + this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds); + } else { + setTimeout(process, this.options.chunkDelay); + } + }, this); + + process(); + } else { + var needsClustering = this._needsClustering; + + for (; offset < l; offset++) { + m = layersArray[offset]; + + // Group of layers, append children to layersArray and skip. + if (m instanceof L.LayerGroup) { + if (originalArray) { + layersArray = layersArray.slice(); + originalArray = false; + } + this._extractNonGroupLayers(m, layersArray); + l = layersArray.length; + continue; + } + + //Not point data, can't be clustered + if (!m.getLatLng) { + npg.addLayer(m); + continue; + } + + if (this.hasLayer(m)) { + continue; + } + + needsClustering.push(m); + } + } + return this; + }, + + //Takes an array of markers and removes them in bulk + removeLayers: function (layersArray) { + var i, m, + l = layersArray.length, + fg = this._featureGroup, + npg = this._nonPointGroup, + originalArray = true; + + if (!this._map) { + for (i = 0; i < l; i++) { + m = layersArray[i]; + + // Group of layers, append children to layersArray and skip. + if (m instanceof L.LayerGroup) { + if (originalArray) { + layersArray = layersArray.slice(); + originalArray = false; + } + this._extractNonGroupLayers(m, layersArray); + l = layersArray.length; + continue; + } + + this._arraySplice(this._needsClustering, m); + npg.removeLayer(m); + if (this.hasLayer(m)) { + this._needsRemoving.push({ layer: m, latlng: m._latlng }); + } + this.fire('layerremove', { layer: m }); + } + return this; + } + + if (this._unspiderfy) { + this._unspiderfy(); + + // Work on a copy of the array, so that next loop is not affected. + var layersArray2 = layersArray.slice(), + l2 = l; + for (i = 0; i < l2; i++) { + m = layersArray2[i]; + + // Group of layers, append children to layersArray and skip. + if (m instanceof L.LayerGroup) { + this._extractNonGroupLayers(m, layersArray2); + l2 = layersArray2.length; + continue; + } + + this._unspiderfyLayer(m); + } + } + + for (i = 0; i < l; i++) { + m = layersArray[i]; + + // Group of layers, append children to layersArray and skip. + if (m instanceof L.LayerGroup) { + if (originalArray) { + layersArray = layersArray.slice(); + originalArray = false; + } + this._extractNonGroupLayers(m, layersArray); + l = layersArray.length; + continue; + } + + if (!m.__parent) { + npg.removeLayer(m); + this.fire('layerremove', { layer: m }); + continue; + } + + this._removeLayer(m, true, true); + this.fire('layerremove', { layer: m }); + + if (fg.hasLayer(m)) { + fg.removeLayer(m); + if (m.clusterShow) { + m.clusterShow(); + } + } + } + + // Refresh bounds and weighted positions. + this._topClusterLevel._recalculateBounds(); + + this._refreshClustersIcons(); + + //Fix up the clusters and markers on the map + this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds); + + return this; + }, + + //Removes all layers from the MarkerClusterGroup + clearLayers: function () { + //Need our own special implementation as the LayerGroup one doesn't work for us + + //If we aren't on the map (yet), blow away the markers we know of + if (!this._map) { + this._needsClustering = []; + this._needsRemoving = []; + delete this._gridClusters; + delete this._gridUnclustered; + } + + if (this._noanimationUnspiderfy) { + this._noanimationUnspiderfy(); + } + + //Remove all the visible layers + this._featureGroup.clearLayers(); + this._nonPointGroup.clearLayers(); + + this.eachLayer(function (marker) { + marker.off(this._childMarkerEventHandlers, this); + delete marker.__parent; + }, this); + + if (this._map) { + //Reset _topClusterLevel and the DistanceGrids + this._generateInitialClusters(); + } + + return this; + }, + + //Override FeatureGroup.getBounds as it doesn't work + getBounds: function () { + var bounds = new L.LatLngBounds(); + + if (this._topClusterLevel) { + bounds.extend(this._topClusterLevel._bounds); + } + + for (var i = this._needsClustering.length - 1; i >= 0; i--) { + bounds.extend(this._needsClustering[i].getLatLng()); + } + + bounds.extend(this._nonPointGroup.getBounds()); + + return bounds; + }, + + //Overrides LayerGroup.eachLayer + eachLayer: function (method, context) { + var markers = this._needsClustering.slice(), + needsRemoving = this._needsRemoving, + thisNeedsRemoving, i, j; + + if (this._topClusterLevel) { + this._topClusterLevel.getAllChildMarkers(markers); + } + + for (i = markers.length - 1; i >= 0; i--) { + thisNeedsRemoving = true; + + for (j = needsRemoving.length - 1; j >= 0; j--) { + if (needsRemoving[j].layer === markers[i]) { + thisNeedsRemoving = false; + break; + } + } + + if (thisNeedsRemoving) { + method.call(context, markers[i]); + } + } + + this._nonPointGroup.eachLayer(method, context); + }, + + //Overrides LayerGroup.getLayers + getLayers: function () { + var layers = []; + this.eachLayer(function (l) { + layers.push(l); + }); + return layers; + }, + + //Overrides LayerGroup.getLayer, WARNING: Really bad performance + getLayer: function (id) { + var result = null; + + id = parseInt(id, 10); + + this.eachLayer(function (l) { + if (L.stamp(l) === id) { + result = l; + } + }); + + return result; + }, + + //Returns true if the given layer is in this MarkerClusterGroup + hasLayer: function (layer) { + if (!layer) { + return false; + } + + var i, anArray = this._needsClustering; + + for (i = anArray.length - 1; i >= 0; i--) { + if (anArray[i] === layer) { + return true; + } + } + + anArray = this._needsRemoving; + for (i = anArray.length - 1; i >= 0; i--) { + if (anArray[i].layer === layer) { + return false; + } + } + + return !!(layer.__parent && layer.__parent._group === this) || this._nonPointGroup.hasLayer(layer); + }, + + //Zoom down to show the given layer (spiderfying if necessary) then calls the callback + zoomToShowLayer: function (layer, callback) { + + if (typeof callback !== 'function') { + callback = function () {}; + } + + var showMarker = function () { + if ((layer._icon || layer.__parent._icon) && !this._inZoomAnimation) { + this._map.off('moveend', showMarker, this); + this.off('animationend', showMarker, this); + + if (layer._icon) { + callback(); + } else if (layer.__parent._icon) { + this.once('spiderfied', callback, this); + layer.__parent.spiderfy(); + } + } + }; + + if (layer._icon && this._map.getBounds().contains(layer.getLatLng())) { + //Layer is visible ond on screen, immediate return + callback(); + } else if (layer.__parent._zoom < Math.round(this._map._zoom)) { + //Layer should be visible at this zoom level. It must not be on screen so just pan over to it + this._map.on('moveend', showMarker, this); + this._map.panTo(layer.getLatLng()); + } else { + this._map.on('moveend', showMarker, this); + this.on('animationend', showMarker, this); + layer.__parent.zoomToBounds(); + } + }, + + //Overrides FeatureGroup.onAdd + onAdd: function (map) { + this._map = map; + var i, l, layer; + + if (!isFinite(this._map.getMaxZoom())) { + throw "Map has no maxZoom specified"; + } + + this._featureGroup.addTo(map); + this._nonPointGroup.addTo(map); + + if (!this._gridClusters) { + this._generateInitialClusters(); + } + + this._maxLat = map.options.crs.projection.MAX_LATITUDE; + + //Restore all the positions as they are in the MCG before removing them + for (i = 0, l = this._needsRemoving.length; i < l; i++) { + layer = this._needsRemoving[i]; + layer.newlatlng = layer.layer._latlng; + layer.layer._latlng = layer.latlng; + } + //Remove them, then restore their new positions + for (i = 0, l = this._needsRemoving.length; i < l; i++) { + layer = this._needsRemoving[i]; + this._removeLayer(layer.layer, true); + layer.layer._latlng = layer.newlatlng; + } + this._needsRemoving = []; + + //Remember the current zoom level and bounds + this._zoom = Math.round(this._map._zoom); + this._currentShownBounds = this._getExpandedVisibleBounds(); + + this._map.on('zoomend', this._zoomEnd, this); + this._map.on('moveend', this._moveEnd, this); + + if (this._spiderfierOnAdd) { //TODO FIXME: Not sure how to have spiderfier add something on here nicely + this._spiderfierOnAdd(); + } + + this._bindEvents(); + + //Actually add our markers to the map: + l = this._needsClustering; + this._needsClustering = []; + this.addLayers(l, true); + }, + + //Overrides FeatureGroup.onRemove + onRemove: function (map) { + map.off('zoomend', this._zoomEnd, this); + map.off('moveend', this._moveEnd, this); + + this._unbindEvents(); + + //In case we are in a cluster animation + this._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', ''); + + if (this._spiderfierOnRemove) { //TODO FIXME: Not sure how to have spiderfier add something on here nicely + this._spiderfierOnRemove(); + } + + delete this._maxLat; + + //Clean up all the layers we added to the map + this._hideCoverage(); + this._featureGroup.remove(); + this._nonPointGroup.remove(); + + this._featureGroup.clearLayers(); + + this._map = null; + }, + + getVisibleParent: function (marker) { + var vMarker = marker; + while (vMarker && !vMarker._icon) { + vMarker = vMarker.__parent; + } + return vMarker || null; + }, + + //Remove the given object from the given array + _arraySplice: function (anArray, obj) { + for (var i = anArray.length - 1; i >= 0; i--) { + if (anArray[i] === obj) { + anArray.splice(i, 1); + return true; + } + } + }, + + /** + * Removes a marker from all _gridUnclustered zoom levels, starting at the supplied zoom. + * @param marker to be removed from _gridUnclustered. + * @param z integer bottom start zoom level (included) + * @private + */ + _removeFromGridUnclustered: function (marker, z) { + var map = this._map, + gridUnclustered = this._gridUnclustered, + minZoom = Math.floor(this._map.getMinZoom()); + + for (; z >= minZoom; z--) { + if (!gridUnclustered[z].removeObject(marker, map.project(marker.getLatLng(), z))) { + break; + } + } + }, + + _childMarkerDragStart: function (e) { + e.target.__dragStart = e.target._latlng; + }, + + _childMarkerMoved: function (e) { + if (!this._ignoreMove && !e.target.__dragStart) { + var isPopupOpen = e.target._popup && e.target._popup.isOpen(); + + this._moveChild(e.target, e.oldLatLng, e.latlng); + + if (isPopupOpen) { + e.target.openPopup(); + } + } + }, + + _moveChild: function (layer, from, to) { + layer._latlng = from; + this.removeLayer(layer); + + layer._latlng = to; + this.addLayer(layer); + }, + + _childMarkerDragEnd: function (e) { + var dragStart = e.target.__dragStart; + delete e.target.__dragStart; + if (dragStart) { + this._moveChild(e.target, dragStart, e.target._latlng); + } + }, + + + //Internal function for removing a marker from everything. + //dontUpdateMap: set to true if you will handle updating the map manually (for bulk functions) + _removeLayer: function (marker, removeFromDistanceGrid, dontUpdateMap) { + var gridClusters = this._gridClusters, + gridUnclustered = this._gridUnclustered, + fg = this._featureGroup, + map = this._map, + minZoom = Math.floor(this._map.getMinZoom()); + + //Remove the marker from distance clusters it might be in + if (removeFromDistanceGrid) { + this._removeFromGridUnclustered(marker, this._maxZoom); + } + + //Work our way up the clusters removing them as we go if required + var cluster = marker.__parent, + markers = cluster._markers, + otherMarker; + + //Remove the marker from the immediate parents marker list + this._arraySplice(markers, marker); + + while (cluster) { + cluster._childCount--; + cluster._boundsNeedUpdate = true; + + if (cluster._zoom < minZoom) { + //Top level, do nothing + break; + } else if (removeFromDistanceGrid && cluster._childCount <= 1) { //Cluster no longer required + //We need to push the other marker up to the parent + otherMarker = cluster._markers[0] === marker ? cluster._markers[1] : cluster._markers[0]; + + //Update distance grid + gridClusters[cluster._zoom].removeObject(cluster, map.project(cluster._cLatLng, cluster._zoom)); + gridUnclustered[cluster._zoom].addObject(otherMarker, map.project(otherMarker.getLatLng(), cluster._zoom)); + + //Move otherMarker up to parent + this._arraySplice(cluster.__parent._childClusters, cluster); + cluster.__parent._markers.push(otherMarker); + otherMarker.__parent = cluster.__parent; + + if (cluster._icon) { + //Cluster is currently on the map, need to put the marker on the map instead + fg.removeLayer(cluster); + if (!dontUpdateMap) { + fg.addLayer(otherMarker); + } + } + } else { + cluster._iconNeedsUpdate = true; + } + + cluster = cluster.__parent; + } + + delete marker.__parent; + }, + + _isOrIsParent: function (el, oel) { + while (oel) { + if (el === oel) { + return true; + } + oel = oel.parentNode; + } + return false; + }, + + //Override L.Evented.fire + fire: function (type, data, propagate) { + if (data && data.layer instanceof L.MarkerCluster) { + //Prevent multiple clustermouseover/off events if the icon is made up of stacked divs (Doesn't work in ie <= 8, no relatedTarget) + if (data.originalEvent && this._isOrIsParent(data.layer._icon, data.originalEvent.relatedTarget)) { + return; + } + type = 'cluster' + type; + } + + L.FeatureGroup.prototype.fire.call(this, type, data, propagate); + }, + + //Override L.Evented.listens + listens: function (type, propagate) { + return L.FeatureGroup.prototype.listens.call(this, type, propagate) || L.FeatureGroup.prototype.listens.call(this, 'cluster' + type, propagate); + }, + + //Default functionality + _defaultIconCreateFunction: function (cluster) { + var childCount = cluster.getChildCount(); + + var c = ' marker-cluster-'; + if (childCount < 10) { + c += 'small'; + } else if (childCount < 100) { + c += 'medium'; + } else { + c += 'large'; + } + + return new L.DivIcon({ html: '
' + childCount + '
', className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) }); + }, + + _bindEvents: function () { + var map = this._map, + spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom, + showCoverageOnHover = this.options.showCoverageOnHover, + zoomToBoundsOnClick = this.options.zoomToBoundsOnClick; + + //Zoom on cluster click or spiderfy if we are at the lowest level + if (spiderfyOnMaxZoom || zoomToBoundsOnClick) { + this.on('clusterclick', this._zoomOrSpiderfy, this); + } + + //Show convex hull (boundary) polygon on mouse over + if (showCoverageOnHover) { + this.on('clustermouseover', this._showCoverage, this); + this.on('clustermouseout', this._hideCoverage, this); + map.on('zoomend', this._hideCoverage, this); + } + }, + + _zoomOrSpiderfy: function (e) { + var cluster = e.layer, + bottomCluster = cluster; + + while (bottomCluster._childClusters.length === 1) { + bottomCluster = bottomCluster._childClusters[0]; + } + + if (bottomCluster._zoom === this._maxZoom && + bottomCluster._childCount === cluster._childCount && + this.options.spiderfyOnMaxZoom) { + + // All child markers are contained in a single cluster from this._maxZoom to this cluster. + cluster.spiderfy(); + } else if (this.options.zoomToBoundsOnClick) { + cluster.zoomToBounds(); + } + + // Focus the map again for keyboard users. + if (e.originalEvent && e.originalEvent.keyCode === 13) { + this._map._container.focus(); + } + }, + + _showCoverage: function (e) { + var map = this._map; + if (this._inZoomAnimation) { + return; + } + if (this._shownPolygon) { + map.removeLayer(this._shownPolygon); + } + if (e.layer.getChildCount() > 2 && e.layer !== this._spiderfied) { + this._shownPolygon = new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions); + map.addLayer(this._shownPolygon); + } + }, + + _hideCoverage: function () { + if (this._shownPolygon) { + this._map.removeLayer(this._shownPolygon); + this._shownPolygon = null; + } + }, + + _unbindEvents: function () { + var spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom, + showCoverageOnHover = this.options.showCoverageOnHover, + zoomToBoundsOnClick = this.options.zoomToBoundsOnClick, + map = this._map; + + if (spiderfyOnMaxZoom || zoomToBoundsOnClick) { + this.off('clusterclick', this._zoomOrSpiderfy, this); + } + if (showCoverageOnHover) { + this.off('clustermouseover', this._showCoverage, this); + this.off('clustermouseout', this._hideCoverage, this); + map.off('zoomend', this._hideCoverage, this); + } + }, + + _zoomEnd: function () { + if (!this._map) { //May have been removed from the map by a zoomEnd handler + return; + } + this._mergeSplitClusters(); + + this._zoom = Math.round(this._map._zoom); + this._currentShownBounds = this._getExpandedVisibleBounds(); + }, + + _moveEnd: function () { + if (this._inZoomAnimation) { + return; + } + + var newBounds = this._getExpandedVisibleBounds(); + + this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, newBounds); + this._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), newBounds); + + this._currentShownBounds = newBounds; + return; + }, + + _generateInitialClusters: function () { + var maxZoom = Math.ceil(this._map.getMaxZoom()), + minZoom = Math.floor(this._map.getMinZoom()), + radius = this.options.maxClusterRadius, + radiusFn = radius; + + //If we just set maxClusterRadius to a single number, we need to create + //a simple function to return that number. Otherwise, we just have to + //use the function we've passed in. + if (typeof radius !== "function") { + radiusFn = function () { return radius; }; + } + + if (this.options.disableClusteringAtZoom !== null) { + maxZoom = this.options.disableClusteringAtZoom - 1; + } + this._maxZoom = maxZoom; + this._gridClusters = {}; + this._gridUnclustered = {}; + + //Set up DistanceGrids for each zoom + for (var zoom = maxZoom; zoom >= minZoom; zoom--) { + this._gridClusters[zoom] = new L.DistanceGrid(radiusFn(zoom)); + this._gridUnclustered[zoom] = new L.DistanceGrid(radiusFn(zoom)); + } + + // Instantiate the appropriate L.MarkerCluster class (animated or not). + this._topClusterLevel = new this._markerCluster(this, minZoom - 1); + }, + + //Zoom: Zoom to start adding at (Pass this._maxZoom to start at the bottom) + _addLayer: function (layer, zoom) { + var gridClusters = this._gridClusters, + gridUnclustered = this._gridUnclustered, + minZoom = Math.floor(this._map.getMinZoom()), + markerPoint, z; + + if (this.options.singleMarkerMode) { + this._overrideMarkerIcon(layer); + } + + layer.on(this._childMarkerEventHandlers, this); + + //Find the lowest zoom level to slot this one in + for (; zoom >= minZoom; zoom--) { + markerPoint = this._map.project(layer.getLatLng(), zoom); // calculate pixel position + + //Try find a cluster close by + var closest = gridClusters[zoom].getNearObject(markerPoint); + if (closest) { + closest._addChild(layer); + layer.__parent = closest; + return; + } + + //Try find a marker close by to form a new cluster with + closest = gridUnclustered[zoom].getNearObject(markerPoint); + if (closest) { + var parent = closest.__parent; + if (parent) { + this._removeLayer(closest, false); + } + + //Create new cluster with these 2 in it + + var newCluster = new this._markerCluster(this, zoom, closest, layer); + gridClusters[zoom].addObject(newCluster, this._map.project(newCluster._cLatLng, zoom)); + closest.__parent = newCluster; + layer.__parent = newCluster; + + //First create any new intermediate parent clusters that don't exist + var lastParent = newCluster; + for (z = zoom - 1; z > parent._zoom; z--) { + lastParent = new this._markerCluster(this, z, lastParent); + gridClusters[z].addObject(lastParent, this._map.project(closest.getLatLng(), z)); + } + parent._addChild(lastParent); + + //Remove closest from this zoom level and any above that it is in, replace with newCluster + this._removeFromGridUnclustered(closest, zoom); + + return; + } + + //Didn't manage to cluster in at this zoom, record us as a marker here and continue upwards + gridUnclustered[zoom].addObject(layer, markerPoint); + } + + //Didn't get in anything, add us to the top + this._topClusterLevel._addChild(layer); + layer.__parent = this._topClusterLevel; + return; + }, + + /** + * Refreshes the icon of all "dirty" visible clusters. + * Non-visible "dirty" clusters will be updated when they are added to the map. + * @private + */ + _refreshClustersIcons: function () { + this._featureGroup.eachLayer(function (c) { + if (c instanceof L.MarkerCluster && c._iconNeedsUpdate) { + c._updateIcon(); + } + }); + }, + + //Enqueue code to fire after the marker expand/contract has happened + _enqueue: function (fn) { + this._queue.push(fn); + if (!this._queueTimeout) { + this._queueTimeout = setTimeout(L.bind(this._processQueue, this), 300); + } + }, + _processQueue: function () { + for (var i = 0; i < this._queue.length; i++) { + this._queue[i].call(this); + } + this._queue.length = 0; + clearTimeout(this._queueTimeout); + this._queueTimeout = null; + }, + + //Merge and split any existing clusters that are too big or small + _mergeSplitClusters: function () { + var mapZoom = Math.round(this._map._zoom); + + //In case we are starting to split before the animation finished + this._processQueue(); + + if (this._zoom < mapZoom && this._currentShownBounds.intersects(this._getExpandedVisibleBounds())) { //Zoom in, split + this._animationStart(); + //Remove clusters now off screen + this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds()); + + this._animationZoomIn(this._zoom, mapZoom); + + } else if (this._zoom > mapZoom) { //Zoom out, merge + this._animationStart(); + + this._animationZoomOut(this._zoom, mapZoom); + } else { + this._moveEnd(); + } + }, + + //Gets the maps visible bounds expanded in each direction by the size of the screen (so the user cannot see an area we do not cover in one pan) + _getExpandedVisibleBounds: function () { + if (!this.options.removeOutsideVisibleBounds) { + return this._mapBoundsInfinite; + } else if (L.Browser.mobile) { + return this._checkBoundsMaxLat(this._map.getBounds()); + } + + return this._checkBoundsMaxLat(this._map.getBounds().pad(1)); // Padding expands the bounds by its own dimensions but scaled with the given factor. + }, + + /** + * Expands the latitude to Infinity (or -Infinity) if the input bounds reach the map projection maximum defined latitude + * (in the case of Web/Spherical Mercator, it is 85.0511287798 / see https://en.wikipedia.org/wiki/Web_Mercator#Formulas). + * Otherwise, the removeOutsideVisibleBounds option will remove markers beyond that limit, whereas the same markers without + * this option (or outside MCG) will have their position floored (ceiled) by the projection and rendered at that limit, + * making the user think that MCG "eats" them and never displays them again. + * @param bounds L.LatLngBounds + * @returns {L.LatLngBounds} + * @private + */ + _checkBoundsMaxLat: function (bounds) { + var maxLat = this._maxLat; + + if (maxLat !== undefined) { + if (bounds.getNorth() >= maxLat) { + bounds._northEast.lat = Infinity; + } + if (bounds.getSouth() <= -maxLat) { + bounds._southWest.lat = -Infinity; + } + } + + return bounds; + }, + + //Shared animation code + _animationAddLayerNonAnimated: function (layer, newCluster) { + if (newCluster === layer) { + this._featureGroup.addLayer(layer); + } else if (newCluster._childCount === 2) { + newCluster._addToMap(); + + var markers = newCluster.getAllChildMarkers(); + this._featureGroup.removeLayer(markers[0]); + this._featureGroup.removeLayer(markers[1]); + } else { + newCluster._updateIcon(); + } + }, + + /** + * Extracts individual (i.e. non-group) layers from a Layer Group. + * @param group to extract layers from. + * @param output {Array} in which to store the extracted layers. + * @returns {*|Array} + * @private + */ + _extractNonGroupLayers: function (group, output) { + var layers = group.getLayers(), + i = 0, + layer; + + output = output || []; + + for (; i < layers.length; i++) { + layer = layers[i]; + + if (layer instanceof L.LayerGroup) { + this._extractNonGroupLayers(layer, output); + continue; + } + + output.push(layer); + } + + return output; + }, + + /** + * Implements the singleMarkerMode option. + * @param layer Marker to re-style using the Clusters iconCreateFunction. + * @returns {L.Icon} The newly created icon. + * @private + */ + _overrideMarkerIcon: function (layer) { + var icon = layer.options.icon = this.options.iconCreateFunction({ + getChildCount: function () { + return 1; + }, + getAllChildMarkers: function () { + return [layer]; + } + }); + + return icon; + } +}); + +// Constant bounds used in case option "removeOutsideVisibleBounds" is set to false. +L.MarkerClusterGroup.include({ + _mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-Infinity, -Infinity), new L.LatLng(Infinity, Infinity)) +}); + +L.MarkerClusterGroup.include({ + _noAnimation: { + //Non Animated versions of everything + _animationStart: function () { + //Do nothing... + }, + _animationZoomIn: function (previousZoomLevel, newZoomLevel) { + this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel); + this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); + + //We didn't actually animate, but we use this event to mean "clustering animations have finished" + this.fire('animationend'); + }, + _animationZoomOut: function (previousZoomLevel, newZoomLevel) { + this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel); + this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); + + //We didn't actually animate, but we use this event to mean "clustering animations have finished" + this.fire('animationend'); + }, + _animationAddLayer: function (layer, newCluster) { + this._animationAddLayerNonAnimated(layer, newCluster); + } + }, + + _withAnimation: { + //Animated versions here + _animationStart: function () { + this._map._mapPane.className += ' leaflet-cluster-anim'; + this._inZoomAnimation++; + }, + + _animationZoomIn: function (previousZoomLevel, newZoomLevel) { + var bounds = this._getExpandedVisibleBounds(), + fg = this._featureGroup, + minZoom = Math.floor(this._map.getMinZoom()), + i; + + this._ignoreMove = true; + + //Add all children of current clusters to map and remove those clusters from map + this._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) { + var startPos = c._latlng, + markers = c._markers, + m; + + if (!bounds.contains(startPos)) { + startPos = null; + } + + if (c._isSingleParent() && previousZoomLevel + 1 === newZoomLevel) { //Immediately add the new child and remove us + fg.removeLayer(c); + c._recursivelyAddChildrenToMap(null, newZoomLevel, bounds); + } else { + //Fade out old cluster + c.clusterHide(); + c._recursivelyAddChildrenToMap(startPos, newZoomLevel, bounds); + } + + //Remove all markers that aren't visible any more + //TODO: Do we actually need to do this on the higher levels too? + for (i = markers.length - 1; i >= 0; i--) { + m = markers[i]; + if (!bounds.contains(m._latlng)) { + fg.removeLayer(m); + } + } + + }); + + this._forceLayout(); + + //Update opacities + this._topClusterLevel._recursivelyBecomeVisible(bounds, newZoomLevel); + //TODO Maybe? Update markers in _recursivelyBecomeVisible + fg.eachLayer(function (n) { + if (!(n instanceof L.MarkerCluster) && n._icon) { + n.clusterShow(); + } + }); + + //update the positions of the just added clusters/markers + this._topClusterLevel._recursively(bounds, previousZoomLevel, newZoomLevel, function (c) { + c._recursivelyRestoreChildPositions(newZoomLevel); + }); + + this._ignoreMove = false; + + //Remove the old clusters and close the zoom animation + this._enqueue(function () { + //update the positions of the just added clusters/markers + this._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) { + fg.removeLayer(c); + c.clusterShow(); + }); + + this._animationEnd(); + }); + }, + + _animationZoomOut: function (previousZoomLevel, newZoomLevel) { + this._animationZoomOutSingle(this._topClusterLevel, previousZoomLevel - 1, newZoomLevel); + + //Need to add markers for those that weren't on the map before but are now + this._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds()); + //Remove markers that were on the map before but won't be now + this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel, this._getExpandedVisibleBounds()); + }, + + _animationAddLayer: function (layer, newCluster) { + var me = this, + fg = this._featureGroup; + + fg.addLayer(layer); + if (newCluster !== layer) { + if (newCluster._childCount > 2) { //Was already a cluster + + newCluster._updateIcon(); + this._forceLayout(); + this._animationStart(); + + layer._setPos(this._map.latLngToLayerPoint(newCluster.getLatLng())); + layer.clusterHide(); + + this._enqueue(function () { + fg.removeLayer(layer); + layer.clusterShow(); + + me._animationEnd(); + }); + + } else { //Just became a cluster + this._forceLayout(); + + me._animationStart(); + me._animationZoomOutSingle(newCluster, this._map.getMaxZoom(), this._zoom); + } + } + } + }, + + // Private methods for animated versions. + _animationZoomOutSingle: function (cluster, previousZoomLevel, newZoomLevel) { + var bounds = this._getExpandedVisibleBounds(), + minZoom = Math.floor(this._map.getMinZoom()); + + //Animate all of the markers in the clusters to move to their cluster center point + cluster._recursivelyAnimateChildrenInAndAddSelfToMap(bounds, minZoom, previousZoomLevel + 1, newZoomLevel); + + var me = this; + + //Update the opacity (If we immediately set it they won't animate) + this._forceLayout(); + cluster._recursivelyBecomeVisible(bounds, newZoomLevel); + + //TODO: Maybe use the transition timing stuff to make this more reliable + //When the animations are done, tidy up + this._enqueue(function () { + + //This cluster stopped being a cluster before the timeout fired + if (cluster._childCount === 1) { + var m = cluster._markers[0]; + //If we were in a cluster animation at the time then the opacity and position of our child could be wrong now, so fix it + this._ignoreMove = true; + m.setLatLng(m.getLatLng()); + this._ignoreMove = false; + if (m.clusterShow) { + m.clusterShow(); + } + } else { + cluster._recursively(bounds, newZoomLevel, minZoom, function (c) { + c._recursivelyRemoveChildrenFromMap(bounds, minZoom, previousZoomLevel + 1); + }); + } + me._animationEnd(); + }); + }, + + _animationEnd: function () { + if (this._map) { + this._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', ''); + } + this._inZoomAnimation--; + this.fire('animationend'); + }, + + //Force a browser layout of stuff in the map + // Should apply the current opacity and location to all elements so we can update them again for an animation + _forceLayout: function () { + //In my testing this works, infact offsetWidth of any element seems to work. + //Could loop all this._layers and do this for each _icon if it stops working + + L.Util.falseFn(document.body.offsetWidth); + } +}); + +L.markerClusterGroup = function (options) { + return new L.MarkerClusterGroup(options); +}; + +var MarkerCluster = L.MarkerCluster = L.Marker.extend({ + options: L.Icon.prototype.options, + + initialize: function (group, zoom, a, b) { + + L.Marker.prototype.initialize.call(this, a ? (a._cLatLng || a.getLatLng()) : new L.LatLng(0, 0), + { icon: this, pane: group.options.clusterPane }); + + this._group = group; + this._zoom = zoom; + + this._markers = []; + this._childClusters = []; + this._childCount = 0; + this._iconNeedsUpdate = true; + this._boundsNeedUpdate = true; + + this._bounds = new L.LatLngBounds(); + + if (a) { + this._addChild(a); + } + if (b) { + this._addChild(b); + } + }, + + //Recursively retrieve all child markers of this cluster + getAllChildMarkers: function (storageArray, ignoreDraggedMarker) { + storageArray = storageArray || []; + + for (var i = this._childClusters.length - 1; i >= 0; i--) { + this._childClusters[i].getAllChildMarkers(storageArray); + } + + for (var j = this._markers.length - 1; j >= 0; j--) { + if (ignoreDraggedMarker && this._markers[j].__dragStart) { + continue; + } + storageArray.push(this._markers[j]); + } + + return storageArray; + }, + + //Returns the count of how many child markers we have + getChildCount: function () { + return this._childCount; + }, + + //Zoom to the minimum of showing all of the child markers, or the extents of this cluster + zoomToBounds: function (fitBoundsOptions) { + var childClusters = this._childClusters.slice(), + map = this._group._map, + boundsZoom = map.getBoundsZoom(this._bounds), + zoom = this._zoom + 1, + mapZoom = map.getZoom(), + i; + + //calculate how far we need to zoom down to see all of the markers + while (childClusters.length > 0 && boundsZoom > zoom) { + zoom++; + var newClusters = []; + for (i = 0; i < childClusters.length; i++) { + newClusters = newClusters.concat(childClusters[i]._childClusters); + } + childClusters = newClusters; + } + + if (boundsZoom > zoom) { + this._group._map.setView(this._latlng, zoom); + } else if (boundsZoom <= mapZoom) { //If fitBounds wouldn't zoom us down, zoom us down instead + this._group._map.setView(this._latlng, mapZoom + 1); + } else { + this._group._map.fitBounds(this._bounds, fitBoundsOptions); + } + }, + + getBounds: function () { + var bounds = new L.LatLngBounds(); + bounds.extend(this._bounds); + return bounds; + }, + + _updateIcon: function () { + this._iconNeedsUpdate = true; + if (this._icon) { + this.setIcon(this); + } + }, + + //Cludge for Icon, we pretend to be an icon for performance + createIcon: function () { + if (this._iconNeedsUpdate) { + this._iconObj = this._group.options.iconCreateFunction(this); + this._iconNeedsUpdate = false; + } + return this._iconObj.createIcon(); + }, + createShadow: function () { + return this._iconObj.createShadow(); + }, + + + _addChild: function (new1, isNotificationFromChild) { + + this._iconNeedsUpdate = true; + + this._boundsNeedUpdate = true; + this._setClusterCenter(new1); + + if (new1 instanceof L.MarkerCluster) { + if (!isNotificationFromChild) { + this._childClusters.push(new1); + new1.__parent = this; + } + this._childCount += new1._childCount; + } else { + if (!isNotificationFromChild) { + this._markers.push(new1); + } + this._childCount++; + } + + if (this.__parent) { + this.__parent._addChild(new1, true); + } + }, + + /** + * Makes sure the cluster center is set. If not, uses the child center if it is a cluster, or the marker position. + * @param child L.MarkerCluster|L.Marker that will be used as cluster center if not defined yet. + * @private + */ + _setClusterCenter: function (child) { + if (!this._cLatLng) { + // when clustering, take position of the first point as the cluster center + this._cLatLng = child._cLatLng || child._latlng; + } + }, + + /** + * Assigns impossible bounding values so that the next extend entirely determines the new bounds. + * This method avoids having to trash the previous L.LatLngBounds object and to create a new one, which is much slower for this class. + * As long as the bounds are not extended, most other methods would probably fail, as they would with bounds initialized but not extended. + * @private + */ + _resetBounds: function () { + var bounds = this._bounds; + + if (bounds._southWest) { + bounds._southWest.lat = Infinity; + bounds._southWest.lng = Infinity; + } + if (bounds._northEast) { + bounds._northEast.lat = -Infinity; + bounds._northEast.lng = -Infinity; + } + }, + + _recalculateBounds: function () { + var markers = this._markers, + childClusters = this._childClusters, + latSum = 0, + lngSum = 0, + totalCount = this._childCount, + i, child, childLatLng, childCount; + + // Case where all markers are removed from the map and we are left with just an empty _topClusterLevel. + if (totalCount === 0) { + return; + } + + // Reset rather than creating a new object, for performance. + this._resetBounds(); + + // Child markers. + for (i = 0; i < markers.length; i++) { + childLatLng = markers[i]._latlng; + + this._bounds.extend(childLatLng); + + latSum += childLatLng.lat; + lngSum += childLatLng.lng; + } + + // Child clusters. + for (i = 0; i < childClusters.length; i++) { + child = childClusters[i]; + + // Re-compute child bounds and weighted position first if necessary. + if (child._boundsNeedUpdate) { + child._recalculateBounds(); + } + + this._bounds.extend(child._bounds); + + childLatLng = child._wLatLng; + childCount = child._childCount; + + latSum += childLatLng.lat * childCount; + lngSum += childLatLng.lng * childCount; + } + + this._latlng = this._wLatLng = new L.LatLng(latSum / totalCount, lngSum / totalCount); + + // Reset dirty flag. + this._boundsNeedUpdate = false; + }, + + //Set our markers position as given and add it to the map + _addToMap: function (startPos) { + if (startPos) { + this._backupLatlng = this._latlng; + this.setLatLng(startPos); + } + this._group._featureGroup.addLayer(this); + }, + + _recursivelyAnimateChildrenIn: function (bounds, center, maxZoom) { + this._recursively(bounds, this._group._map.getMinZoom(), maxZoom - 1, + function (c) { + var markers = c._markers, + i, m; + for (i = markers.length - 1; i >= 0; i--) { + m = markers[i]; + + //Only do it if the icon is still on the map + if (m._icon) { + m._setPos(center); + m.clusterHide(); + } + } + }, + function (c) { + var childClusters = c._childClusters, + j, cm; + for (j = childClusters.length - 1; j >= 0; j--) { + cm = childClusters[j]; + if (cm._icon) { + cm._setPos(center); + cm.clusterHide(); + } + } + } + ); + }, + + _recursivelyAnimateChildrenInAndAddSelfToMap: function (bounds, mapMinZoom, previousZoomLevel, newZoomLevel) { + this._recursively(bounds, newZoomLevel, mapMinZoom, + function (c) { + c._recursivelyAnimateChildrenIn(bounds, c._group._map.latLngToLayerPoint(c.getLatLng()).round(), previousZoomLevel); + + //TODO: depthToAnimateIn affects _isSingleParent, if there is a multizoom we may/may not be. + //As a hack we only do a animation free zoom on a single level zoom, if someone does multiple levels then we always animate + if (c._isSingleParent() && previousZoomLevel - 1 === newZoomLevel) { + c.clusterShow(); + c._recursivelyRemoveChildrenFromMap(bounds, mapMinZoom, previousZoomLevel); //Immediately remove our children as we are replacing them. TODO previousBounds not bounds + } else { + c.clusterHide(); + } + + c._addToMap(); + } + ); + }, + + _recursivelyBecomeVisible: function (bounds, zoomLevel) { + this._recursively(bounds, this._group._map.getMinZoom(), zoomLevel, null, function (c) { + c.clusterShow(); + }); + }, + + _recursivelyAddChildrenToMap: function (startPos, zoomLevel, bounds) { + this._recursively(bounds, this._group._map.getMinZoom() - 1, zoomLevel, + function (c) { + if (zoomLevel === c._zoom) { + return; + } + + //Add our child markers at startPos (so they can be animated out) + for (var i = c._markers.length - 1; i >= 0; i--) { + var nm = c._markers[i]; + + if (!bounds.contains(nm._latlng)) { + continue; + } + + if (startPos) { + nm._backupLatlng = nm.getLatLng(); + + nm.setLatLng(startPos); + if (nm.clusterHide) { + nm.clusterHide(); + } + } + + c._group._featureGroup.addLayer(nm); + } + }, + function (c) { + c._addToMap(startPos); + } + ); + }, + + _recursivelyRestoreChildPositions: function (zoomLevel) { + //Fix positions of child markers + for (var i = this._markers.length - 1; i >= 0; i--) { + var nm = this._markers[i]; + if (nm._backupLatlng) { + nm.setLatLng(nm._backupLatlng); + delete nm._backupLatlng; + } + } + + if (zoomLevel - 1 === this._zoom) { + //Reposition child clusters + for (var j = this._childClusters.length - 1; j >= 0; j--) { + this._childClusters[j]._restorePosition(); + } + } else { + for (var k = this._childClusters.length - 1; k >= 0; k--) { + this._childClusters[k]._recursivelyRestoreChildPositions(zoomLevel); + } + } + }, + + _restorePosition: function () { + if (this._backupLatlng) { + this.setLatLng(this._backupLatlng); + delete this._backupLatlng; + } + }, + + //exceptBounds: If set, don't remove any markers/clusters in it + _recursivelyRemoveChildrenFromMap: function (previousBounds, mapMinZoom, zoomLevel, exceptBounds) { + var m, i; + this._recursively(previousBounds, mapMinZoom - 1, zoomLevel - 1, + function (c) { + //Remove markers at every level + for (i = c._markers.length - 1; i >= 0; i--) { + m = c._markers[i]; + if (!exceptBounds || !exceptBounds.contains(m._latlng)) { + c._group._featureGroup.removeLayer(m); + if (m.clusterShow) { + m.clusterShow(); + } + } + } + }, + function (c) { + //Remove child clusters at just the bottom level + for (i = c._childClusters.length - 1; i >= 0; i--) { + m = c._childClusters[i]; + if (!exceptBounds || !exceptBounds.contains(m._latlng)) { + c._group._featureGroup.removeLayer(m); + if (m.clusterShow) { + m.clusterShow(); + } + } + } + } + ); + }, + + //Run the given functions recursively to this and child clusters + // boundsToApplyTo: a L.LatLngBounds representing the bounds of what clusters to recurse in to + // zoomLevelToStart: zoom level to start running functions (inclusive) + // zoomLevelToStop: zoom level to stop running functions (inclusive) + // runAtEveryLevel: function that takes an L.MarkerCluster as an argument that should be applied on every level + // runAtBottomLevel: function that takes an L.MarkerCluster as an argument that should be applied at only the bottom level + _recursively: function (boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel) { + var childClusters = this._childClusters, + zoom = this._zoom, + i, c; + + if (zoomLevelToStart <= zoom) { + if (runAtEveryLevel) { + runAtEveryLevel(this); + } + if (runAtBottomLevel && zoom === zoomLevelToStop) { + runAtBottomLevel(this); + } + } + + if (zoom < zoomLevelToStart || zoom < zoomLevelToStop) { + for (i = childClusters.length - 1; i >= 0; i--) { + c = childClusters[i]; + if (c._boundsNeedUpdate) { + c._recalculateBounds(); + } + if (boundsToApplyTo.intersects(c._bounds)) { + c._recursively(boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel); + } + } + } + }, + + //Returns true if we are the parent of only one cluster and that cluster is the same as us + _isSingleParent: function () { + //Don't need to check this._markers as the rest won't work if there are any + return this._childClusters.length > 0 && this._childClusters[0]._childCount === this._childCount; + } +}); + +/* +* Extends L.Marker to include two extra methods: clusterHide and clusterShow. +* +* They work as setOpacity(0) and setOpacity(1) respectively, but +* don't overwrite the options.opacity +* +*/ + +L.Marker.include({ + clusterHide: function () { + var backup = this.options.opacity; + this.setOpacity(0); + this.options.opacity = backup; + return this; + }, + + clusterShow: function () { + return this.setOpacity(this.options.opacity); + } +}); + +L.DistanceGrid = function (cellSize) { + this._cellSize = cellSize; + this._sqCellSize = cellSize * cellSize; + this._grid = {}; + this._objectPoint = { }; +}; + +L.DistanceGrid.prototype = { + + addObject: function (obj, point) { + var x = this._getCoord(point.x), + y = this._getCoord(point.y), + grid = this._grid, + row = grid[y] = grid[y] || {}, + cell = row[x] = row[x] || [], + stamp = L.Util.stamp(obj); + + this._objectPoint[stamp] = point; + + cell.push(obj); + }, + + updateObject: function (obj, point) { + this.removeObject(obj); + this.addObject(obj, point); + }, + + //Returns true if the object was found + removeObject: function (obj, point) { + var x = this._getCoord(point.x), + y = this._getCoord(point.y), + grid = this._grid, + row = grid[y] = grid[y] || {}, + cell = row[x] = row[x] || [], + i, len; + + delete this._objectPoint[L.Util.stamp(obj)]; + + for (i = 0, len = cell.length; i < len; i++) { + if (cell[i] === obj) { + + cell.splice(i, 1); + + if (len === 1) { + delete row[x]; + } + + return true; + } + } + + }, + + eachObject: function (fn, context) { + var i, j, k, len, row, cell, removed, + grid = this._grid; + + for (i in grid) { + row = grid[i]; + + for (j in row) { + cell = row[j]; + + for (k = 0, len = cell.length; k < len; k++) { + removed = fn.call(context, cell[k]); + if (removed) { + k--; + len--; + } + } + } + } + }, + + getNearObject: function (point) { + var x = this._getCoord(point.x), + y = this._getCoord(point.y), + i, j, k, row, cell, len, obj, dist, + objectPoint = this._objectPoint, + closestDistSq = this._sqCellSize, + closest = null; + + for (i = y - 1; i <= y + 1; i++) { + row = this._grid[i]; + if (row) { + + for (j = x - 1; j <= x + 1; j++) { + cell = row[j]; + if (cell) { + + for (k = 0, len = cell.length; k < len; k++) { + obj = cell[k]; + dist = this._sqDist(objectPoint[L.Util.stamp(obj)], point); + if (dist < closestDistSq || + dist <= closestDistSq && closest === null) { + closestDistSq = dist; + closest = obj; + } + } + } + } + } + } + return closest; + }, + + _getCoord: function (x) { + var coord = Math.floor(x / this._cellSize); + return isFinite(coord) ? coord : x; + }, + + _sqDist: function (p, p2) { + var dx = p2.x - p.x, + dy = p2.y - p.y; + return dx * dx + dy * dy; + } +}; + +/* Copyright (c) 2012 the authors listed at the following URL, and/or +the authors of referenced articles or incorporated external code: +http://en.literateprograms.org/Quickhull_(Javascript)?action=history&offset=20120410175256 + +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. + +Retrieved from: http://en.literateprograms.org/Quickhull_(Javascript)?oldid=18434 +*/ + +(function () { + L.QuickHull = { + + /* + * @param {Object} cpt a point to be measured from the baseline + * @param {Array} bl the baseline, as represented by a two-element + * array of latlng objects. + * @returns {Number} an approximate distance measure + */ + getDistant: function (cpt, bl) { + var vY = bl[1].lat - bl[0].lat, + vX = bl[0].lng - bl[1].lng; + return (vX * (cpt.lat - bl[0].lat) + vY * (cpt.lng - bl[0].lng)); + }, + + /* + * @param {Array} baseLine a two-element array of latlng objects + * representing the baseline to project from + * @param {Array} latLngs an array of latlng objects + * @returns {Object} the maximum point and all new points to stay + * in consideration for the hull. + */ + findMostDistantPointFromBaseLine: function (baseLine, latLngs) { + var maxD = 0, + maxPt = null, + newPoints = [], + i, pt, d; + + for (i = latLngs.length - 1; i >= 0; i--) { + pt = latLngs[i]; + d = this.getDistant(pt, baseLine); + + if (d > 0) { + newPoints.push(pt); + } else { + continue; + } + + if (d > maxD) { + maxD = d; + maxPt = pt; + } + } + + return { maxPoint: maxPt, newPoints: newPoints }; + }, + + + /* + * Given a baseline, compute the convex hull of latLngs as an array + * of latLngs. + * + * @param {Array} latLngs + * @returns {Array} + */ + buildConvexHull: function (baseLine, latLngs) { + var convexHullBaseLines = [], + t = this.findMostDistantPointFromBaseLine(baseLine, latLngs); + + if (t.maxPoint) { // if there is still a point "outside" the base line + convexHullBaseLines = + convexHullBaseLines.concat( + this.buildConvexHull([baseLine[0], t.maxPoint], t.newPoints) + ); + convexHullBaseLines = + convexHullBaseLines.concat( + this.buildConvexHull([t.maxPoint, baseLine[1]], t.newPoints) + ); + return convexHullBaseLines; + } else { // if there is no more point "outside" the base line, the current base line is part of the convex hull + return [baseLine[0]]; + } + }, + + /* + * Given an array of latlngs, compute a convex hull as an array + * of latlngs + * + * @param {Array} latLngs + * @returns {Array} + */ + getConvexHull: function (latLngs) { + // find first baseline + var maxLat = false, minLat = false, + maxLng = false, minLng = false, + maxLatPt = null, minLatPt = null, + maxLngPt = null, minLngPt = null, + maxPt = null, minPt = null, + i; + + for (i = latLngs.length - 1; i >= 0; i--) { + var pt = latLngs[i]; + if (maxLat === false || pt.lat > maxLat) { + maxLatPt = pt; + maxLat = pt.lat; + } + if (minLat === false || pt.lat < minLat) { + minLatPt = pt; + minLat = pt.lat; + } + if (maxLng === false || pt.lng > maxLng) { + maxLngPt = pt; + maxLng = pt.lng; + } + if (minLng === false || pt.lng < minLng) { + minLngPt = pt; + minLng = pt.lng; + } + } + + if (minLat !== maxLat) { + minPt = minLatPt; + maxPt = maxLatPt; + } else { + minPt = minLngPt; + maxPt = maxLngPt; + } + + var ch = [].concat(this.buildConvexHull([minPt, maxPt], latLngs), + this.buildConvexHull([maxPt, minPt], latLngs)); + return ch; + } + }; +}()); + +L.MarkerCluster.include({ + getConvexHull: function () { + var childMarkers = this.getAllChildMarkers(), + points = [], + p, i; + + for (i = childMarkers.length - 1; i >= 0; i--) { + p = childMarkers[i].getLatLng(); + points.push(p); + } + + return L.QuickHull.getConvexHull(points); + } +}); + +//This code is 100% based on https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet +//Huge thanks to jawj for implementing it first to make my job easy :-) + +L.MarkerCluster.include({ + + _2PI: Math.PI * 2, + _circleFootSeparation: 25, //related to circumference of circle + _circleStartAngle: 0, + + _spiralFootSeparation: 28, //related to size of spiral (experiment!) + _spiralLengthStart: 11, + _spiralLengthFactor: 5, + + _circleSpiralSwitchover: 9, //show spiral instead of circle from this marker count upwards. + // 0 -> always spiral; Infinity -> always circle + + spiderfy: function () { + if (this._group._spiderfied === this || this._group._inZoomAnimation) { + return; + } + + var childMarkers = this.getAllChildMarkers(null, true), + group = this._group, + map = group._map, + center = map.latLngToLayerPoint(this._latlng), + positions; + + this._group._unspiderfy(); + this._group._spiderfied = this; + + //TODO Maybe: childMarkers order by distance to center + + if (childMarkers.length >= this._circleSpiralSwitchover) { + positions = this._generatePointsSpiral(childMarkers.length, center); + } else { + center.y += 10; // Otherwise circles look wrong => hack for standard blue icon, renders differently for other icons. + positions = this._generatePointsCircle(childMarkers.length, center); + } + + this._animationSpiderfy(childMarkers, positions); + }, + + unspiderfy: function (zoomDetails) { + /// Argument from zoomanim if being called in a zoom animation or null otherwise + if (this._group._inZoomAnimation) { + return; + } + this._animationUnspiderfy(zoomDetails); + + this._group._spiderfied = null; + }, + + _generatePointsCircle: function (count, centerPt) { + var circumference = this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + count), + legLength = circumference / this._2PI, //radius from circumference + angleStep = this._2PI / count, + res = [], + i, angle; + + legLength = Math.max(legLength, 35); // Minimum distance to get outside the cluster icon. + + res.length = count; + + for (i = 0; i < count; i++) { // Clockwise, like spiral. + angle = this._circleStartAngle + i * angleStep; + res[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round(); + } + + return res; + }, + + _generatePointsSpiral: function (count, centerPt) { + var spiderfyDistanceMultiplier = this._group.options.spiderfyDistanceMultiplier, + legLength = spiderfyDistanceMultiplier * this._spiralLengthStart, + separation = spiderfyDistanceMultiplier * this._spiralFootSeparation, + lengthFactor = spiderfyDistanceMultiplier * this._spiralLengthFactor * this._2PI, + angle = 0, + res = [], + i; + + res.length = count; + + // Higher index, closer position to cluster center. + for (i = count; i >= 0; i--) { + // Skip the first position, so that we are already farther from center and we avoid + // being under the default cluster icon (especially important for Circle Markers). + if (i < count) { + res[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round(); + } + angle += separation / legLength + i * 0.0005; + legLength += lengthFactor / angle; + } + return res; + }, + + _noanimationUnspiderfy: function () { + var group = this._group, + map = group._map, + fg = group._featureGroup, + childMarkers = this.getAllChildMarkers(null, true), + m, i; + + group._ignoreMove = true; + + this.setOpacity(1); + for (i = childMarkers.length - 1; i >= 0; i--) { + m = childMarkers[i]; + + fg.removeLayer(m); + + if (m._preSpiderfyLatlng) { + m.setLatLng(m._preSpiderfyLatlng); + delete m._preSpiderfyLatlng; + } + if (m.setZIndexOffset) { + m.setZIndexOffset(0); + } + + if (m._spiderLeg) { + map.removeLayer(m._spiderLeg); + delete m._spiderLeg; + } + } + + group.fire('unspiderfied', { + cluster: this, + markers: childMarkers + }); + group._ignoreMove = false; + group._spiderfied = null; + } +}); + +//Non Animated versions of everything +L.MarkerClusterNonAnimated = L.MarkerCluster.extend({ + _animationSpiderfy: function (childMarkers, positions) { + var group = this._group, + map = group._map, + fg = group._featureGroup, + legOptions = this._group.options.spiderLegPolylineOptions, + i, m, leg, newPos; + + group._ignoreMove = true; + + // Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition. + // The reverse order trick no longer improves performance on modern browsers. + for (i = 0; i < childMarkers.length; i++) { + newPos = map.layerPointToLatLng(positions[i]); + m = childMarkers[i]; + + // Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it. + leg = new L.Polyline([this._latlng, newPos], legOptions); + map.addLayer(leg); + m._spiderLeg = leg; + + // Now add the marker. + m._preSpiderfyLatlng = m._latlng; + m.setLatLng(newPos); + if (m.setZIndexOffset) { + m.setZIndexOffset(1000000); //Make these appear on top of EVERYTHING + } + + fg.addLayer(m); + } + this.setOpacity(0.3); + + group._ignoreMove = false; + group.fire('spiderfied', { + cluster: this, + markers: childMarkers + }); + }, + + _animationUnspiderfy: function () { + this._noanimationUnspiderfy(); + } +}); + +//Animated versions here +L.MarkerCluster.include({ + + _animationSpiderfy: function (childMarkers, positions) { + var me = this, + group = this._group, + map = group._map, + fg = group._featureGroup, + thisLayerLatLng = this._latlng, + thisLayerPos = map.latLngToLayerPoint(thisLayerLatLng), + svg = L.Path.SVG, + legOptions = L.extend({}, this._group.options.spiderLegPolylineOptions), // Copy the options so that we can modify them for animation. + finalLegOpacity = legOptions.opacity, + i, m, leg, legPath, legLength, newPos; + + if (finalLegOpacity === undefined) { + finalLegOpacity = L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity; + } + + if (svg) { + // If the initial opacity of the spider leg is not 0 then it appears before the animation starts. + legOptions.opacity = 0; + + // Add the class for CSS transitions. + legOptions.className = (legOptions.className || '') + ' leaflet-cluster-spider-leg'; + } else { + // Make sure we have a defined opacity. + legOptions.opacity = finalLegOpacity; + } + + group._ignoreMove = true; + + // Add markers and spider legs to map, hidden at our center point. + // Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition. + // The reverse order trick no longer improves performance on modern browsers. + for (i = 0; i < childMarkers.length; i++) { + m = childMarkers[i]; + + newPos = map.layerPointToLatLng(positions[i]); + + // Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it. + leg = new L.Polyline([thisLayerLatLng, newPos], legOptions); + map.addLayer(leg); + m._spiderLeg = leg; + + // Explanations: https://jakearchibald.com/2013/animated-line-drawing-svg/ + // In our case the transition property is declared in the CSS file. + if (svg) { + legPath = leg._path; + legLength = legPath.getTotalLength() + 0.1; // Need a small extra length to avoid remaining dot in Firefox. + legPath.style.strokeDasharray = legLength; // Just 1 length is enough, it will be duplicated. + legPath.style.strokeDashoffset = legLength; + } + + // If it is a marker, add it now and we'll animate it out + if (m.setZIndexOffset) { + m.setZIndexOffset(1000000); // Make normal markers appear on top of EVERYTHING + } + if (m.clusterHide) { + m.clusterHide(); + } + + // Vectors just get immediately added + fg.addLayer(m); + + if (m._setPos) { + m._setPos(thisLayerPos); + } + } + + group._forceLayout(); + group._animationStart(); + + // Reveal markers and spider legs. + for (i = childMarkers.length - 1; i >= 0; i--) { + newPos = map.layerPointToLatLng(positions[i]); + m = childMarkers[i]; + + //Move marker to new position + m._preSpiderfyLatlng = m._latlng; + m.setLatLng(newPos); + + if (m.clusterShow) { + m.clusterShow(); + } + + // Animate leg (animation is actually delegated to CSS transition). + if (svg) { + leg = m._spiderLeg; + legPath = leg._path; + legPath.style.strokeDashoffset = 0; + //legPath.style.strokeOpacity = finalLegOpacity; + leg.setStyle({opacity: finalLegOpacity}); + } + } + this.setOpacity(0.3); + + group._ignoreMove = false; + + setTimeout(function () { + group._animationEnd(); + group.fire('spiderfied', { + cluster: me, + markers: childMarkers + }); + }, 200); + }, + + _animationUnspiderfy: function (zoomDetails) { + var me = this, + group = this._group, + map = group._map, + fg = group._featureGroup, + thisLayerPos = zoomDetails ? map._latLngToNewLayerPoint(this._latlng, zoomDetails.zoom, zoomDetails.center) : map.latLngToLayerPoint(this._latlng), + childMarkers = this.getAllChildMarkers(null, true), + svg = L.Path.SVG, + m, i, leg, legPath, legLength, nonAnimatable; + + group._ignoreMove = true; + group._animationStart(); + + //Make us visible and bring the child markers back in + this.setOpacity(1); + for (i = childMarkers.length - 1; i >= 0; i--) { + m = childMarkers[i]; + + //Marker was added to us after we were spiderfied + if (!m._preSpiderfyLatlng) { + continue; + } + + //Close any popup on the marker first, otherwise setting the location of the marker will make the map scroll + m.closePopup(); + + //Fix up the location to the real one + m.setLatLng(m._preSpiderfyLatlng); + delete m._preSpiderfyLatlng; + + //Hack override the location to be our center + nonAnimatable = true; + if (m._setPos) { + m._setPos(thisLayerPos); + nonAnimatable = false; + } + if (m.clusterHide) { + m.clusterHide(); + nonAnimatable = false; + } + if (nonAnimatable) { + fg.removeLayer(m); + } + + // Animate the spider leg back in (animation is actually delegated to CSS transition). + if (svg) { + leg = m._spiderLeg; + legPath = leg._path; + legLength = legPath.getTotalLength() + 0.1; + legPath.style.strokeDashoffset = legLength; + leg.setStyle({opacity: 0}); + } + } + + group._ignoreMove = false; + + setTimeout(function () { + //If we have only <= one child left then that marker will be shown on the map so don't remove it! + var stillThereChildCount = 0; + for (i = childMarkers.length - 1; i >= 0; i--) { + m = childMarkers[i]; + if (m._spiderLeg) { + stillThereChildCount++; + } + } + + + for (i = childMarkers.length - 1; i >= 0; i--) { + m = childMarkers[i]; + + if (!m._spiderLeg) { //Has already been unspiderfied + continue; + } + + if (m.clusterShow) { + m.clusterShow(); + } + if (m.setZIndexOffset) { + m.setZIndexOffset(0); + } + + if (stillThereChildCount > 1) { + fg.removeLayer(m); + } + + map.removeLayer(m._spiderLeg); + delete m._spiderLeg; + } + group._animationEnd(); + group.fire('unspiderfied', { + cluster: me, + markers: childMarkers + }); + }, 200); + } +}); + + +L.MarkerClusterGroup.include({ + //The MarkerCluster currently spiderfied (if any) + _spiderfied: null, + + unspiderfy: function () { + this._unspiderfy.apply(this, arguments); + }, + + _spiderfierOnAdd: function () { + this._map.on('click', this._unspiderfyWrapper, this); + + if (this._map.options.zoomAnimation) { + this._map.on('zoomstart', this._unspiderfyZoomStart, this); + } + //Browsers without zoomAnimation or a big zoom don't fire zoomstart + this._map.on('zoomend', this._noanimationUnspiderfy, this); + + if (!L.Browser.touch) { + this._map.getRenderer(this); + //Needs to happen in the pageload, not after, or animations don't work in webkit + // http://stackoverflow.com/questions/8455200/svg-animate-with-dynamically-added-elements + //Disable on touch browsers as the animation messes up on a touch zoom and isn't very noticable + } + }, + + _spiderfierOnRemove: function () { + this._map.off('click', this._unspiderfyWrapper, this); + this._map.off('zoomstart', this._unspiderfyZoomStart, this); + this._map.off('zoomanim', this._unspiderfyZoomAnim, this); + this._map.off('zoomend', this._noanimationUnspiderfy, this); + + //Ensure that markers are back where they should be + // Use no animation to avoid a sticky leaflet-cluster-anim class on mapPane + this._noanimationUnspiderfy(); + }, + + //On zoom start we add a zoomanim handler so that we are guaranteed to be last (after markers are animated) + //This means we can define the animation they do rather than Markers doing an animation to their actual location + _unspiderfyZoomStart: function () { + if (!this._map) { //May have been removed from the map by a zoomEnd handler + return; + } + + this._map.on('zoomanim', this._unspiderfyZoomAnim, this); + }, + + _unspiderfyZoomAnim: function (zoomDetails) { + //Wait until the first zoomanim after the user has finished touch-zooming before running the animation + if (L.DomUtil.hasClass(this._map._mapPane, 'leaflet-touching')) { + return; + } + + this._map.off('zoomanim', this._unspiderfyZoomAnim, this); + this._unspiderfy(zoomDetails); + }, + + _unspiderfyWrapper: function () { + /// _unspiderfy but passes no arguments + this._unspiderfy(); + }, + + _unspiderfy: function (zoomDetails) { + if (this._spiderfied) { + this._spiderfied.unspiderfy(zoomDetails); + } + }, + + _noanimationUnspiderfy: function () { + if (this._spiderfied) { + this._spiderfied._noanimationUnspiderfy(); + } + }, + + //If the given layer is currently being spiderfied then we unspiderfy it so it isn't on the map anymore etc + _unspiderfyLayer: function (layer) { + if (layer._spiderLeg) { + this._featureGroup.removeLayer(layer); + + if (layer.clusterShow) { + layer.clusterShow(); + } + //Position will be fixed up immediately in _animationUnspiderfy + if (layer.setZIndexOffset) { + layer.setZIndexOffset(0); + } + + this._map.removeLayer(layer._spiderLeg); + delete layer._spiderLeg; + } + } +}); + +/** + * Adds 1 public method to MCG and 1 to L.Marker to facilitate changing + * markers' icon options and refreshing their icon and their parent clusters + * accordingly (case where their iconCreateFunction uses data of childMarkers + * to make up the cluster icon). + */ + + +L.MarkerClusterGroup.include({ + /** + * Updates the icon of all clusters which are parents of the given marker(s). + * In singleMarkerMode, also updates the given marker(s) icon. + * @param layers L.MarkerClusterGroup|L.LayerGroup|Array(L.Marker)|Map(L.Marker)| + * L.MarkerCluster|L.Marker (optional) list of markers (or single marker) whose parent + * clusters need to be updated. If not provided, retrieves all child markers of this. + * @returns {L.MarkerClusterGroup} + */ + refreshClusters: function (layers) { + if (!layers) { + layers = this._topClusterLevel.getAllChildMarkers(); + } else if (layers instanceof L.MarkerClusterGroup) { + layers = layers._topClusterLevel.getAllChildMarkers(); + } else if (layers instanceof L.LayerGroup) { + layers = layers._layers; + } else if (layers instanceof L.MarkerCluster) { + layers = layers.getAllChildMarkers(); + } else if (layers instanceof L.Marker) { + layers = [layers]; + } // else: must be an Array(L.Marker)|Map(L.Marker) + this._flagParentsIconsNeedUpdate(layers); + this._refreshClustersIcons(); + + // In case of singleMarkerMode, also re-draw the markers. + if (this.options.singleMarkerMode) { + this._refreshSingleMarkerModeMarkers(layers); + } + + return this; + }, + + /** + * Simply flags all parent clusters of the given markers as having a "dirty" icon. + * @param layers Array(L.Marker)|Map(L.Marker) list of markers. + * @private + */ + _flagParentsIconsNeedUpdate: function (layers) { + var id, parent; + + // Assumes layers is an Array or an Object whose prototype is non-enumerable. + for (id in layers) { + // Flag parent clusters' icon as "dirty", all the way up. + // Dumb process that flags multiple times upper parents, but still + // much more efficient than trying to be smart and make short lists, + // at least in the case of a hierarchy following a power law: + // http://jsperf.com/flag-nodes-in-power-hierarchy/2 + parent = layers[id].__parent; + while (parent) { + parent._iconNeedsUpdate = true; + parent = parent.__parent; + } + } + }, + + /** + * Re-draws the icon of the supplied markers. + * To be used in singleMarkerMode only. + * @param layers Array(L.Marker)|Map(L.Marker) list of markers. + * @private + */ + _refreshSingleMarkerModeMarkers: function (layers) { + var id, layer; + + for (id in layers) { + layer = layers[id]; + + // Make sure we do not override markers that do not belong to THIS group. + if (this.hasLayer(layer)) { + // Need to re-create the icon first, then re-draw the marker. + layer.setIcon(this._overrideMarkerIcon(layer)); + } + } + } +}); + +L.Marker.include({ + /** + * Updates the given options in the marker's icon and refreshes the marker. + * @param options map object of icon options. + * @param directlyRefreshClusters boolean (optional) true to trigger + * MCG.refreshClustersOf() right away with this single marker. + * @returns {L.Marker} + */ + refreshIconOptions: function (options, directlyRefreshClusters) { + var icon = this.options.icon; + + L.setOptions(icon, options); + + this.setIcon(icon); + + // Shortcut to refresh the associated MCG clusters right away. + // To be used when refreshing a single marker. + // Otherwise, better use MCG.refreshClusters() once at the end with + // the list of modified markers. + if (directlyRefreshClusters && this.__parent) { + this.__parent._group.refreshClusters(this); + } + + return this; + } +}); + +exports.MarkerClusterGroup = MarkerClusterGroup; +exports.MarkerCluster = MarkerCluster; + +}))); +/* + Leaflet.AwesomeMarkers, a plugin that adds colorful iconic markers for Leaflet, based on the Font Awesome icons + (c) 2012-2013, Lennard Voogdt + + http://leafletjs.com + https://github.com/lvoogdt +*/ + +/*global L*/ + +(function (window, document, undefined) { + "use strict"; + /* + * Leaflet.AwesomeMarkers assumes that you have already included the Leaflet library. + */ + + L.AwesomeMarkers = {}; + + L.AwesomeMarkers.version = '2.0.1'; + + L.AwesomeMarkers.Icon = L.Icon.extend({ + options: { + iconSize: [35, 45], + iconAnchor: [17, 42], + popupAnchor: [1, -32], + shadowAnchor: [10, 12], + shadowSize: [36, 16], + className: 'awesome-marker', + prefix: 'glyphicon', + spinClass: 'fa-spin', + extraClasses: '', + icon: 'home', + markerColor: 'blue', + iconColor: 'white' + }, + + initialize: function (options) { + options = L.Util.setOptions(this, options); + }, + + createIcon: function () { + var div = document.createElement('div'), + options = this.options; + + if (options.icon) { + div.innerHTML = this._createInner(); + } + + if (options.bgPos) { + div.style.backgroundPosition = + (-options.bgPos.x) + 'px ' + (-options.bgPos.y) + 'px'; + } + + this._setIconStyles(div, 'icon-' + options.markerColor); + return div; + }, + + _createInner: function() { + var iconClass, iconSpinClass = "", iconColorClass = "", iconColorStyle = "", options = this.options; + + if(options.icon.slice(0,options.prefix.length+1) === options.prefix + "-") { + iconClass = options.icon; + } else { + iconClass = options.prefix + "-" + options.icon; + } + + if(options.spin && typeof options.spinClass === "string") { + iconSpinClass = options.spinClass; + } + + if(options.iconColor) { + if(options.iconColor === 'white' || options.iconColor === 'black') { + iconColorClass = "icon-" + options.iconColor; + } else { + iconColorStyle = "style='color: " + options.iconColor + "' "; + } + } + + return ""; + }, + + _setIconStyles: function (img, name) { + var options = this.options, + size = L.point(options[name === 'shadow' ? 'shadowSize' : 'iconSize']), + anchor; + + if (name === 'shadow') { + anchor = L.point(options.shadowAnchor || options.iconAnchor); + } else { + anchor = L.point(options.iconAnchor); + } + + if (!anchor && size) { + anchor = size.divideBy(2, true); + } + + img.className = 'awesome-marker-' + name + ' ' + options.className; + + if (anchor) { + img.style.marginLeft = (-anchor.x) + 'px'; + img.style.marginTop = (-anchor.y) + 'px'; + } + + if (size) { + img.style.width = size.x + 'px'; + img.style.height = size.y + 'px'; + } + }, + + createShadow: function () { + var div = document.createElement('div'); + + this._setIconStyles(div, 'shadow'); + return div; + } + }); + + L.AwesomeMarkers.icon = function (options) { + return new L.AwesomeMarkers.Icon(options); + }; + +}(this, document)); + + + +(function() { + $(document).on('turbolinks:load', function() { + $('#event_start_time').change(function() { + if ($('#event_start_time').val() >= $('#event_end_time').val()) { + return $('#event_end_time').val($('#event_start_time').val()); + } + }); + $('#event_end_time').change(function() { + if ($('#event_start_time').val() >= $('#event_end_time').val()) { + return $('#event_start_time').val($('#event_end_time').val()); + } + }); + $('#event_repeat').each(function() { + if ($(this).val() === '0') { + $('.field.rule').hide(); + } + return $(this).change(function() { + if ($(this).val() > 0) { + $('.field.rule').show(); + return $('.field.rule input').attr('required', 'required'); + } else { + $('.field.rule').hide(); + return $('.field.rule input').removeAttr('required'); + } + }); + }); + return $('#event_tags').each(function() { + var elt; + elt = $(this); + return $.ajax({ + url: '/tags.json' + }).done(function(data) { + var tags; + return tags = jQuery.map(data, function(n) { + return n[0]; + }); + }); + }); + }); + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() { + $('body.pages form :input').prop('disabled', false); + return $('form').submit(function() { + $('input[name=utf8]').prop('disabled', true); + return $('button').prop('disabled', true); + }); + }); + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() {}); + +}).call(this); + +/* + @licstart The following is the entire license notice for the JavaScript code in this page. + + frTypo, la typographie française simplifiée + + Copyright (C) 2013 acoeuro + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + @licend The above is the entire license notice for the JavaScript code in this page. + */ + +(function() { + var regexp, regexpPost; + + regexp = /(^|[\wàéèêç])\s*([!?:;»%€¢]+)(\s|[^\w\/]|$)/g; + + regexpPost = /([«])\s*([\w])/g; + + $(document).on('turbolinks:load', function() { + if ($('html').attr('lang') === 'fr') { + return $('body *').contents().filter(function() { + return this.nodeType === Node.TEXT_NODE; + }).filter(function() { + return 0 > ['CODE', 'PRE', 'STYLE', 'TEXTAREA'].indexOf(this.parentNode.tagName); + }).filter(function() { + return !$(this).parent().hasClass('finePre') && !$(this).parent().hasClass('start_time') && !$(this).parent().hasClass('end_time'); + }).filter(function() { + return (this.nodeValue.match(regexp) != null) || (this.nodeValue.match(regexpPost) != null); + }).each(function() { + return $(this).replaceWith(function() { + return this.nodeValue.replace(regexp, '$1$2$3').replace(regexpPost, '$1$2'); + }); + }); + } + }); + +}).call(this); +(function() { + var visit; + + $(document).on('turbolinks:load', function() { + $('table.list td.view a').each(function() { + return visit($(this)); + }); + return $('.pagination .next a').attr('data-remote', true).each(function() { + return $(document).scroll((function(_this) { + return function() { + if ($(_this).visible(true, true)) { + return $(_this).click().parents('.pagination').hide(); + } + }; + })(this)); + }); + }); + + $(document).on('ajax:success', '.pagination .next a', function(event, data) { + var next; + $(this).parents('tfoot').prev().append($('tbody tr', data)).find('td.view a').each(function() { + return visit($(this)); + }); + next = $('.pagination .next a', data).attr('href'); + if (next != null) { + return $(this).attr('href', next).parents('.pagination').show(); + } + }); + + visit = (function(_this) { + return function(elt) { + return elt.closest('tr').addClass('view').click(function(event) { + var target; + target = $(event.target); + if (!((target.attr('target') != null) || (target.parents('a').attr('target') != null))) { + return Turbolinks.visit(elt.attr('href')); + } + }); + }; + })(this); + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() { + $('#map.list').each(function() { + var controls, map; + map = L.map('map'); + map.fitBounds([[60, -20], [30, 30]]); + L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: '© OpenStreetMap' + }).addTo(map); + controls = L.control.layers(null, null, { + collapsed: false + }).addTo(map); + return $('li a', this).each(function() { + var markerColor, text, url; + url = $(this).attr('href'); + text = $(this).html(); + markerColor = $('.awesome-marker', this).attr('class').substr('awesome-marker awesome-marker-icon-'.length); + if (location.search && url.indexOf('?') >= 0) { + url += '&' + location.search.substr(1); + } else { + url += location.search; + } + return $.getJSON(url, function(json) { + var layer; + if (!(json != null ? json.length : void 0)) { + return; + } + layer = L.markerClusterGroup({ + maxClusterRadius: 30 + }).addLayer(L.geoJson(json, { + pointToLayer: function(feature, latlng) { + var marker; + marker = L.AwesomeMarkers.icon({ + prefix: 'fa', + icon: feature.properties.icon || 'calendar', + markerColor: markerColor + }); + return L.marker(latlng, { + icon: marker + }); + }, + onEachFeature: function(feature, layer) { + if (feature.properties && feature.properties.popupContent) { + return layer.bindPopup(feature.properties.popupContent); + } + } + })); + map.addLayer(layer); + controls.addOverlay(layer, text + ' - ' + json.length); + if ((/maps\//.test(location.href) || /maps.json/.test(url)) && layer.getBounds()._northEast && layer.getBounds()._southWest) { + return map.fitBounds(layer.getBounds()); + } + }); + }); + }); + return $('#map.event, #map.orga').each(function() { + var coord, map, marker, url; + coord = [$(this).data('latitude'), $(this).data('longitude')]; + map = L.map('map').setView([coord[0], coord[1]], 16); + L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: '© OpenStreetMap' + }).addTo(map); + url = $(this).data('url'); + if (location.search && url.indexOf('?') >= 0) { + url += '&' + location.search.substr(1); + } else { + url += location.search; + } + marker = L.AwesomeMarkers.icon({ + prefix: 'fa', + icon: $(this).data('icon') || 'calendar', + markerColor: 'darkred' + }); + L.marker([coord[0], coord[1]], { + icon: marker + }).addTo(map); + return $.getJSON(url, function(json) { + var layer; + layer = L.markerClusterGroup({ + maxClusterRadius: 30 + }).addLayer(L.geoJson(json, { + pointToLayer: function(feature, latlng) { + marker = L.AwesomeMarkers.icon({ + prefix: 'fa', + icon: feature.properties.icon || 'calendar', + markerColor: 'blue' + }); + return L.marker(latlng, { + icon: marker + }); + }, + onEachFeature: function(feature, layer) { + if (feature.properties && feature.properties.popupContent) { + return layer.bindPopup(feature.properties.popupContent); + } + } + })); + return map.addLayer(layer); + }); + }); + }); + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() { + $('body.moderations .radios label').click(function() { + return $('body.moderations #event_reason').parent().slideUp(); + }); + return $('body.moderations .radios label:last-child').click(function() { + return $('body.moderations #event_reason').parent().slideDown(); + }); + }); + +}).call(this); +(function() { + + +}).call(this); +(function() { + + +}).call(this); +(function() { + var showPosition; + + $(document).on('turbolinks:load', function() { + if (!navigator.geolocation) { + return; + } + return $('a.near-me').click(function(event) { + event.preventDefault(); + window.goto = event.target.href; + return navigator.geolocation.getCurrentPosition(showPosition, function(error) { + switch (error.code) { + case error.PERMISSION_DENIED: + return $('ul.regions li#near-me').remove(); + } + }); + }); + }); + + showPosition = function(position) { + return location.replace(window.goto.replace('[me]', "[" + position.coords.latitude + ", " + position.coords.longitude + "]")); + }; + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() { + return tinyMCE.init({ + width: '100%', + height: '40em', + menubar: false, + branding: false, + language: 'fr_FR', + selector: 'input.description', + content_css: '/assets/application-7676810a8b1f72354c8821c38a3c8729f54bb8ed5ae767e94159b98f4ab74837.css', + relative_urls: false, + entity_encoding: 'raw', + document_base_url: '/', + add_unload_trigger: true, + browser_spellcheck: true, + style_formats_autohide: true, + toolbar: [' cut copy paste | undo redo | link image media charmap table | code visualblocks searchreplace', ' removeformat bold italic strikethrough superscript subscript | bullist numlist outdent indent | alignleft aligncenter alignright alignjustify alignnone'], + plugins: 'lists advlist autolink link image charmap paste print preview table fullscreen searchreplace media insertdatetime visualblocks wordcount code' + }); + }); + + $(document).on('turbolinks:before-cache', function() { + return tinymce.remove(); + }); + +}).call(this); +(function() { + $(document).on('turbolinks:load', function() { + $('table.list.dates tbody tr').each(function() { + var vals; + vals = $(this).find('td.quantity').map(function() { + var val; + val = $(this).find('a').html().replace(' ', '').trim(); + if (val && val !== '') { + return parseInt(val); + } else { + return 0; + } + }); + return $(this).find('.sparkline').sparkline(vals, { + width: '5em' + }); + }); + return $('table.list.dates tfoot').each(function() { + var vals; + vals = $(this).find('th.quantity').map(function() { + return parseInt($(this).html().replace(' ', '')); + }); + return $(this).find('.sparkline').sparkline(vals, { + type: 'bar', + height: '3em', + barWidth: '100%', + barColor: '#9CC5EE', + barSpacing: 2 + }); + }); + }); + +}).call(this); +tinymce.addI18n('fr_FR',{ +"Redo": "R\u00e9tablir", +"Undo": "Annuler", +"Cut": "Couper", +"Copy": "Copier", +"Paste": "Coller", +"Select all": "Tout s\u00e9lectionner", +"New document": "Nouveau document", +"Ok": "Ok", +"Cancel": "Annuler", +"Visual aids": "Aides visuelle", +"Bold": "Gras", +"Italic": "Italique", +"Underline": "Soulign\u00e9", +"Strikethrough": "Barr\u00e9", +"Superscript": "Exposant", +"Subscript": "Indice", +"Clear formatting": "Effacer la mise en forme", +"Align left": "Aligner \u00e0 gauche", +"Align center": "Centrer", +"Align right": "Aligner \u00e0 droite", +"Justify": "Justifier", +"Bullet list": "Puces", +"Numbered list": "Num\u00e9rotation", +"Decrease indent": "Diminuer le retrait", +"Increase indent": "Augmenter le retrait", +"Close": "Fermer", +"Formats": "Formats", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas la copie directe. Merci d'utiliser les touches Ctrl+X\/C\/V.", +"Headers": "Titres", +"Header 1": "Titre 1", +"Header 2": "Titre 2", +"Header 3": "Titre 3", +"Header 4": "Titre 4", +"Header 5": "Titre 5", +"Header 6": "Titre 6", +"Headings": "En-t\u00eates", +"Heading 1": "En-t\u00eate 1", +"Heading 2": "En-t\u00eate 2", +"Heading 3": "En-t\u00eate 3", +"Heading 4": "En-t\u00eate 4", +"Heading 5": "En-t\u00eate 5", +"Heading 6": "En-t\u00eate 6", +"Preformatted": "Pr\u00e9-formatt\u00e9", +"Div": "Div", +"Pre": "Pre", +"Code": "Code", +"Paragraph": "Paragraphe", +"Blockquote": "Citation", +"Inline": "En ligne", +"Blocks": "Blocs", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.", +"Fonts": "Polices", +"Font Sizes": "Taille de police", +"Class": "Classe", +"Browse for an image": "Parcourir pour s\u00e9lectionner une image", +"OR": "OU", +"Drop an image here": "Glisser une image ici", +"Upload": "D\u00e9poser", +"Block": "Bloquer", +"Align": "Aligner", +"Default": "Par d\u00e9faut", +"Circle": "Cercle", +"Disc": "Disque", +"Square": "Carr\u00e9", +"Lower Alpha": "Alpha minuscule", +"Lower Greek": "Grec minuscule", +"Lower Roman": "Romain minuscule", +"Upper Alpha": "Alpha majuscule", +"Upper Roman": "Romain majuscule", +"Anchor...": "Ancre...", +"Name": "Nom", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'Id doit commencer par une lettre suivi par des lettres, nombres, tirets, points, deux-points ou underscores", +"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?", +"Restore last draft": "Restaurer le dernier brouillon", +"Special characters...": "Caract\u00e8res sp\u00e9ciaux...", +"Source code": "Code source", +"Insert\/Edit code sample": "Ins\u00e9rer \/ modifier une exemple de code", +"Language": "Langue", +"Code sample...": "Extrait de code...", +"Color Picker": "S\u00e9lecteur de couleur", +"R": "R", +"G": "V", +"B": "B", +"Left to right": "Gauche \u00e0 droite", +"Right to left": "Droite \u00e0 gauche", +"Emoticons...": "\u00c9motic\u00f4nes...", +"Metadata and Document Properties": "M\u00e9tadonn\u00e9es et propri\u00e9t\u00e9s du document", +"Title": "Titre", +"Keywords": "Mots-cl\u00e9s", +"Description": "Description", +"Robots": "Robots", +"Author": "Auteur", +"Encoding": "Encodage", +"Fullscreen": "Plein \u00e9cran", +"Action": "Action", +"Shortcut": "Raccourci", +"Help": "Aide", +"Address": "Adresse", +"Focus to menubar": "Cibler la barre de menu", +"Focus to toolbar": "Cibler la barre d'outils", +"Focus to element path": "Cibler le chemin vers l'\u00e9l\u00e9ment", +"Focus to contextual toolbar": "Cibler la barre d'outils contextuelle", +"Insert link (if link plugin activated)": "Ins\u00e9rer un lien (si le module link est activ\u00e9)", +"Save (if save plugin activated)": "Enregistrer (si le module save est activ\u00e9)", +"Find (if searchreplace plugin activated)": "Rechercher (si le module searchreplace est activ\u00e9)", +"Plugins installed ({0}):": "Modules install\u00e9s ({0}) : ", +"Premium plugins:": "Modules premium :", +"Learn more...": "En savoir plus...", +"You are using {0}": "Vous utilisez {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Raccourcis utiles", +"Horizontal line": "Ligne horizontale", +"Insert\/edit image": "Ins\u00e9rer\/modifier une image", +"Image description": "Description de l'image", +"Source": "Source", +"Dimensions": "Dimensions", +"Constrain proportions": "Conserver les proportions", +"General": "G\u00e9n\u00e9ral", +"Advanced": "Avanc\u00e9", +"Style": "Style", +"Vertical space": "Espacement vertical", +"Horizontal space": "Espacement horizontal", +"Border": "Bordure", +"Insert image": "Ins\u00e9rer une image", +"Image...": "Image...", +"Image list": "Liste d'images", +"Rotate counterclockwise": "Rotation anti-horaire", +"Rotate clockwise": "Rotation horaire", +"Flip vertically": "Retournement vertical", +"Flip horizontally": "Retournement horizontal", +"Edit image": "Modifier l'image", +"Image options": "Options de l'image", +"Zoom in": "Zoomer", +"Zoom out": "D\u00e9zoomer", +"Crop": "Rogner", +"Resize": "Redimensionner", +"Orientation": "Orientation", +"Brightness": "Luminosit\u00e9", +"Sharpen": "Affiner", +"Contrast": "Contraste", +"Color levels": "Niveaux de couleur", +"Gamma": "Gamma", +"Invert": "Inverser", +"Apply": "Appliquer", +"Back": "Retour", +"Insert date\/time": "Ins\u00e9rer date\/heure", +"Date\/time": "Date\/heure", +"Insert\/Edit Link": "Ins\u00e9rer\/Modifier un lien", +"Insert\/edit link": "Ins\u00e9rer\/modifier un lien", +"Text to display": "Texte \u00e0 afficher", +"Url": "Url", +"Open link in...": "Ouvrir le lien dans...", +"Current window": "Fen\u00eatre courante", +"None": "n\/a", +"New window": "Nouvelle fen\u00eatre", +"Remove link": "Enlever le lien", +"Anchors": "Ancres", +"Link...": "Lien...", +"Paste or type a link": "Coller ou taper un lien", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?", +"Link list": "Liste de liens", +"Insert video": "Ins\u00e9rer une vid\u00e9o", +"Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o", +"Insert\/edit media": "Ins\u00e9rer\/modifier un m\u00e9dia", +"Alternative source": "Source alternative", +"Alternative source URL": "Source alternative", +"Media poster (Image URL)": "Affiche de m\u00e9dia (URL d'image)", +"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :", +"Embed": "Int\u00e9grer", +"Media...": "M\u00e9dia...", +"Nonbreaking space": "Espace ins\u00e9cable", +"Page break": "Saut de page", +"Paste as text": "Coller comme texte", +"Preview": "Pr\u00e9visualiser", +"Print...": "Imprimer...", +"Save": "Enregistrer", +"Find": "Chercher", +"Replace with": "Remplacer par", +"Replace": "Remplacer", +"Replace all": "Tout remplacer", +"Previous": "Pr\u00e9c\u00e9dent", +"Next": "Suiv", +"Find and replace...": "Chercher et remplacer...", +"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.", +"Match case": "Respecter la casse", +"Find whole words only": "Chercher uniquement les mots entiers", +"Spell check": "Lancer la correction orthographique", +"Ignore": "Ignorer", +"Ignore all": "Tout ignorer", +"Finish": "Finie", +"Add to Dictionary": "Ajouter au dictionnaire", +"Insert table": "Ins\u00e9rer un tableau", +"Table properties": "Propri\u00e9t\u00e9s du tableau", +"Delete table": "Supprimer le tableau", +"Cell": "Cellule", +"Row": "Ligne", +"Column": "Colonne", +"Cell properties": "Propri\u00e9t\u00e9s de la cellule", +"Merge cells": "Fusionner les cellules", +"Split cell": "Diviser la cellule", +"Insert row before": "Ins\u00e9rer une ligne avant", +"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s", +"Delete row": "Effacer la ligne", +"Row properties": "Propri\u00e9t\u00e9s de la ligne", +"Cut row": "Couper la ligne", +"Copy row": "Copier la ligne", +"Paste row before": "Coller la ligne avant", +"Paste row after": "Coller la ligne apr\u00e8s", +"Insert column before": "Ins\u00e9rer une colonne avant", +"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s", +"Delete column": "Effacer la colonne", +"Cols": "Colonnes", +"Rows": "Lignes", +"Width": "Largeur", +"Height": "Hauteur", +"Cell spacing": "Espacement inter-cellulles", +"Cell padding": "Espacement interne cellule", +"Show caption": "Afficher le sous-titre", +"Left": "Gauche", +"Center": "Centr\u00e9", +"Right": "Droite", +"Cell type": "Type de cellule", +"Scope": "Etendue", +"Alignment": "Alignement", +"H Align": "Alignement H", +"V Align": "Alignement V", +"Top": "Haut", +"Middle": "Milieu", +"Bottom": "Bas", +"Header cell": "Cellule d'en-t\u00eate", +"Row group": "Groupe de lignes", +"Column group": "Groupe de colonnes", +"Row type": "Type de ligne", +"Header": "En-t\u00eate", +"Body": "Corps", +"Footer": "Pied", +"Border color": "Couleur de la bordure", +"Insert template...": "Ins\u00e9rer un mod\u00e8le...", +"Templates": "Th\u00e8mes", +"Template": "Mod\u00e8le", +"Text color": "Couleur du texte", +"Background color": "Couleur d'arri\u00e8re-plan", +"Custom...": "Personnalis\u00e9...", +"Custom color": "Couleur personnalis\u00e9e", +"No color": "Aucune couleur", +"Remove color": "Supprimer la couleur", +"Table of Contents": "Table des mati\u00e8res", +"Show blocks": "Afficher les blocs", +"Show invisible characters": "Afficher les caract\u00e8res invisibles", +"Word count": "Nombre de mots", +"Words: {0}": "Mots : {0}", +"{0} words": "{0} mots", +"File": "Fichier", +"Edit": "Editer", +"Insert": "Ins\u00e9rer", +"View": "Voir", +"Format": "Format", +"Table": "Tableau", +"Tools": "Outils", +"Powered by {0}": "Propuls\u00e9 par {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.", +"Image title": "Titre d'image", +"Border width": "\u00c9paisseur de la bordure", +"Border style": "Style de la bordure", +"Error": "\u00c9rreur", +"Warn": "Avertissement", +"Valid": "Valide", +"To open the popup, press Shift+Enter": "Pour ouvrir la popup, presser Shift+Entr\u00e9e", +"Rich Text Area. Press ALT-0 for help.": "Zone de texte riche. Presser ALT-0 pour l'aide.", +"System Font": "Police syst\u00e8me", +"Failed to upload image: {0}": "\u00c9chec d'envoi de l'image : {0}", +"Failed to load plugin: {0} from url {1}": "\u00c9chec de chargement du module : {0} \u00e0 partir de l'URL {1}", +"Failed to load plugin url: {0}": "\u00c9chec de chargement de l'URL de module : {0}", +"Failed to initialize plugin: {0}": "\u00c9chec d'initialisation du module : {0}", +"example": "exemple", +"Search": "Rechercher", +"All": "Tous", +"Currency": "Mon\u00e9taire", +"Text": "Texte", +"Quotations": "Citations", +"Mathematical": "Math\u00e9matique", +"Extended Latin": "Latin \u00e9tendu", +"Symbols": "Symboles", +"Arrows": "Fl\u00e8ches", +"User Defined": "D\u00e9fini par l'utilisateur", +"dollar sign": "Symbole dollar", +"currency sign": "Symbole devise", +"euro-currency sign": "Symbole euro", +"colon sign": "Symbole col\u00f3n", +"cruzeiro sign": "Symbole cruzeiro", +"french franc sign": "Symbole franc fran\u00e7ais", +"lira sign": "Symbole lire", +"mill sign": "Symbole milli\u00e8me", +"naira sign": "Symbole naira", +"peseta sign": "Symbole peseta", +"rupee sign": "Symbole roupie", +"won sign": "Symbole won", +"new sheqel sign": "Symbole nouveau ch\u00e9kel", +"dong sign": "Symbole dong", +"kip sign": "Symbole kip", +"tugrik sign": "Symbole tougrik", +"drachma sign": "Symbole drachme", +"german penny symbol": "Symbole pfennig", +"peso sign": "Symbole peso", +"guarani sign": "Symbole guarani", +"austral sign": "Symbole austral", +"hryvnia sign": "Symbole hryvnia", +"cedi sign": "Symbole cedi", +"livre tournois sign": "Symbole livre tournois", +"spesmilo sign": "Symbole spesmilo", +"tenge sign": "Symbole tenge", +"indian rupee sign": "Symbole roupie indienne", +"turkish lira sign": "Symbole lire turque", +"nordic mark sign": "Symbole du mark nordique", +"manat sign": "Symbole manat", +"ruble sign": "Symbole rouble", +"yen character": "Sinogramme Yen", +"yuan character": "Sinogramme Yuan", +"yuan character, in hong kong and taiwan": "Sinogramme Yuan, Hong Kong et Taiwan", +"yen\/yuan character variant one": "Symbole Yen\/Yuan", +"Loading emoticons...": "Chargement des \u00e9motic\u00f4nes...", +"Could not load emoticons": "\u00c9chec de chargement des \u00e9motic\u00f4nes", +"People": "Smileys et personnes", +"Animals and Nature": "Animaux & nature", +"Food and Drink": "Nourriture & boisson", +"Activity": "Activit\u00e9", +"Travel and Places": "Voyages & lieux", +"Objects": "Objets", +"Flags": "Drapeaux", +"Characters": "Caract\u00e8res", +"Characters (no spaces)": "Caract\u00e8res (espaces non compris)", +"Error: Form submit field collision.": "Erreur : conflit de champ lors de la soumission du formulaire", +"Error: No form element found.": "Erreur : aucun \u00e9l\u00e9ment de formulaire trouv\u00e9.", +"Update": "Mettre \u00e0 jour", +"Color swatch": "Palette de couleurs", +"Turquoise": "Turquoise", +"Green": "Vert", +"Blue": "Bleu", +"Purple": "Violet", +"Navy Blue": "Bleu oc\u00e9an", +"Dark Turquoise": "Turquoise fonc\u00e9", +"Dark Green": "Vert fonc\u00e9", +"Medium Blue": "Bleu moyen", +"Medium Purple": "Violet moyen", +"Midnight Blue": "Bleu nuit", +"Yellow": "Jaune", +"Orange": "Orange", +"Red": "Rouge", +"Light Gray": "Gris clair", +"Gray": "Gris", +"Dark Yellow": "Jaune fonc\u00e9", +"Dark Orange": "Orange fonc\u00e9", +"Dark Red": "Rouge fonc\u00e9", +"Medium Gray": "Gris moyen", +"Dark Gray": "Gris fonc\u00e9", +"Black": "Noir", +"White": "Blanc", +"Switch to or from fullscreen mode": "Activer ou quitter le mode plein \u00e9cran", +"Open help dialog": "Ouvrir l'aide", +"history": "historique", +"styles": "styles", +"formatting": "mise en forme", +"alignment": "alignement", +"indentation": "indentation", +"permanent pen": "crayon ind\u00e9l\u00e9bile", +"comments": "commentaires", +"Anchor": "Ancre", +"Special character": "Caract\u00e8res sp\u00e9ciaux", +"Code sample": "Extrait de code", +"Color": "Couleur", +"Emoticons": "Emotic\u00f4nes", +"Document properties": "Propri\u00e9t\u00e9 du document", +"Image": "Image", +"Insert link": "Ins\u00e9rer un lien", +"Target": "Cible", +"Link": "Lien", +"Poster": "Publier", +"Media": "M\u00e9dia", +"Print": "Imprimer", +"Prev": "Pr\u00e9c ", +"Find and replace": "Trouver et remplacer", +"Whole words": "Mots entiers", +"Spellcheck": "V\u00e9rification orthographique", +"Caption": "Titre", +"Insert template": "Ajouter un th\u00e8me" +}); +(function() { + $(document).on('turbolinks:load', function() { + if (!Modernizr.testAllProps('forceBrokenImageIcon')) { + $('img.favicon').one('error', function() { + return $(this).css({ + visibility: 'hidden' + }); + }); + } + return $('.field.tags input').tagsInput({ + delimiter: ' ', + defaultText: '', + autocomplete_url: '/tags.json', + onChange: function() { + var value; + value = $(this).val(); + if (value.indexOf(',') >= 0) { + return $(this).val(value.replace(/,/, '')); + } + } + }); + }); + +}).call(this); diff --git a/public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js.gz b/public/assets/application-1bb7c69177d6ee9e256363487fdac0eaf627316c141c14e3c3f7822ff0d29384.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..5b19221323d1c267c7eb623a1f323986325fc43f GIT binary patch literal 464862 zcmV(^K-Iq=iwFR|^@&~r1MIzPd)r2mDE!&{6)=-$NZJ%7*-6Hct$1z8o@my$wUlJ{ z$jSsFAqh4Ga0t+nCi401Z{51Py3ruz#B<{5$@6kP&g6ZS)MbKA@ZWJ+)LBuFu<6_EpNo8+RbfZc z=9j#flo!w~es`QD(=wf8lO!+T&-x5{OXsIqozSP$-);#bpVjrO+FD;f&FizpG4yr5 zK1o03llRB-bW)wA7wbIO+MGwj51%aRvvR(b>|(>@@1x|Yv`y9$_&ECy^X;g}YW!da zW;oA}7d3wM_r*L*UZx+R@q73=I!{0T$LV>RPjT=@>$e%KVK<$Wiz0(B=J4l#O!!Y} zzuxJruP0eGg_W*N@+v)^W@|-uS+Bv9EUC&OoxiWv$K`2}*ZIe64L+Mqv&+1`8YV@# z1``Fi;rd|Iah*-p3fzUx!~V&l7}t4O^cTe>JAuw7gXH&40^m>j_0=pZPm&7)da}K} zo%C$0-T>xVFXlx86PuJpuTJKRA~`ANNtMk%X7Eow$)F8t`Z2Tem{=7QjKPlk>D5p9uzH>tt`&eQ0~$n|Qs>U>0x6 zDo1ESgJLnA@{2j(Gywidkwd@mlE#D<4A)WgwfVBjYB>^q=FBBrcMe2x!MmOPRjA(98S`+X@>vU_w@P`w}L_Iyf~$yR#Y=p>2LNe(`I5y^!3mj4RdPy>X6KSwx-&prY!y~r!LoneC6beLox>mfBUv(2WX zW<%3x$Vk-ed!C(_AG4cvA8osG1US8m+1nWPwSdM;3woWDbEI>Jz4P*4a82|svf~eV zjlW9#&w155vdu3$^b@Xk;MK~1z`d3hljL}wr5}UY<+h-*>otk`~o_Zjt?)7lDkPS3J_V}Cte%! z2Jx}om_Xn9J%TVoDB39|o2VuV^HsHq+?(G?! z^d2n3G3$0L}Tn~t1Io=$6Pz$}1qFh?N* zfXP)B>#g?+U$>Yew5nxfWrTE0gV2Ea>`4A^;27)VSwy66(XaET4H5s-{u}LBF z;-p;OJ+}Dc{nPccw0~^T>>sa=W^eKha_x;TnAfq}K-@iaLQK89LoDx=$M3Uo-J|Co z`;QV>1-H0E_hkYJh#b=1uxI?&A@+IHZ^b``K?@;Z=1LKGI9p~q>e|4YdCw=~jrZPt z40wkUKwl(@-Ly^z`sEwN*t@CP7A0{I!V$n;MY@qgi7aOY;^1EKHZ4xGevjEJ%U}d= ziOGVOhVQy6#ym=&7vT*BL>3uCOGSOC%;x17+Pl%~x#15q};c(*m?x@??QG_0e*2s$BRNSaQ&w+FS z)l23GAbN`ng6C`WJH50$A_bu-Ji;d4apH-=Q~M|wem|=tBiAJj26ECO>orb}9q$L4 zMr6G7^7F@ot!^1F4p6*|u_qieieY&rq6ErX?No@Q)hE*_Z0v-ER*xe2?U3SmuNhBs zr$|v8!%jKLjJBksULr`mwiZ6#Q->Nrv5U+sDmj7WBq>ignZkq;xEV^Cc}3ia*NZ2P zt2YBZBjRr#!ZIG|*23Px^SgKbH8T#Vrib|v-BUb`u(5`Q61B|#i0Ss8ed@%2J5~yN z>$oN@+qDnSn`V&>Ln)=sh*8~+aX^}6Iu^)%73^m0JU2IuSw+{$pt&-JAAvG5m|CZ_ z*Sm%HIzV?^!)9U!Pv-OV3V1n&_lISkL0V^G1dE8pUumQq{uFkXY+YE*9WZk6L3Sb40WxBmH_<5S^g0o*p2ZJ zQ0Cx2?9n+1n=0xgm+B~=gkO#lqt>`cBZrhhO$hulCkbRHuJ^*5RcNe$l*L7cn*9GDN2#SE|jCgldeoi+V3vz}a(i>c979H-+CAel_61nms) z?QvdTjXIjt8PcmU6&W=I*YC8OsFY@mphx(jx$2js^=)98k0&D#nX=2*Cxj!6Y0fGE#D@Eb4h7Ig z$ii@ngE;5GeeFu8{U%o$%~@KJ?(}!Vs{3SMH6d{lP2*dhmEZc4Im&~M7LQ&UD@{ar zXwE_L(`M+u@4tS9`jpB+!))Xr&g8DGwFpC}EYj_vaPPDJWLY-^63p+xlZSH;Fl#_d*wVPXd+S?g&8Xbwdtf4jDhq*!nftGCr6>I z72N^-!N|g8q6LtK%9}ca)72kDg)t?IJUp~^!lcLgu-?%KZqH}w_{@1VWFKpPvUEwn z^+3GHU9={VGGHn|5(fsioSvQub}I$~F+}O6uH~l&lc6>aSLbUV?GE+CWCUx9n6#F4 z3fR!z>yya@y9|wRQAsRE#|VRa$O`TN$5*4L%^1Xg;Qhzt3>bI#FER2=;?O_BXeoIr zp4z4bb36n=xEMg9j0b-%RpsgSP5k$VT_GmwuHy5HHdQz}$)*{=XvGIh*F$m?vwP1j zVS}oGHJKyhP)?09L#-3VRg!9&>_)@Xt$AkNxjsok`b)C-49GZlf~<-<0d5kkU-HkV zW2CWB8|x((hE=Gu%a*^`1}DXhR&h_Kt-AU){q?2r8z<8e@JDp1k!u^7czLVcd`6c8 zb#Y(apff;+w!W?ggXI`c-pZ<RXqrjx ztmA=x1sjV3Ad2%Sjs0f|@?FzRGBZ%rNEG@wWf$hJ2K%CpM;l`vBV|Bk#=M@G&xEGr zuy;-6H#4>aD`br>HD7oY{e<~u_03f$ym}%emzLQO&RcEB{w)+~VD7Vn5>KSt*5q;0 z6IY`IB(UD#$k*elJ@6Onzq<0&uuCprq7ygK6#qnKLvrM#iQ_ME3V;j3pwBS2Rz+Om z(~9Z{864Y*1&#Xlag4M?2%`D~WMagjjUl4NhV$<6;0D8KjO^S{{(ftZj{*tlBjmyq zJpxR?m#Gcb`a(6#Fxo7Ty$4SAZaOq9b$mzyd~SD1aAe^I#Ok07?qpUF;xt$-uy0s6 zO;`rOCA`%B+L+>^2tQdq(-VNl0bMVB$%g zr4Z0)f53nmxAd*}{6Be}@VGhPk9vbhm7r`VOmy_(Lw|hI~`K&Aut!IMM_#)qH2aj~<|Na{tu}fT zs;a|{maWyB*;`JrfS%y*S0qq>Os5TH^!V%p33_T=|AT0^DgEQShEa4$$x%rvSL#7@d84Tdmp$XWhew!VUw??)c{C1_XNIM=W3ThOs3y zxdhrx8p`P6mogP>Rt}bALKL=q>vvPnuj~xp4OVt*`94L&OV>2Aa-Bsb12eKfCEd_JK0^i-~C?R`up06MW2Y42i;r?^ojk zMT>Y{(UT_L-e6{Vqa)>2rx{UV6AlF;*N$B6$u~P++ zRaZrwUJjGf1(32eSmT;?_aW~d(&d;{Dm!^h(XKgP5t5wfLC4+H}kcDEuY=1#+HEl}^mFj03wUj|WZS%hnku$+O@Iy*;rGmE=dujCq4+y%by zq5+BW{G3i3$hK_bq?d@BtQpwj<9lYRo_l&|&$9C%V~yo@Bb>SO-a3G;8XjC`4#b;V zx_PK0FDL>69cz$vPc0~W%PEMX(J;}LxF_a^jHSllpxy#?YOLc%XQ?rwx#Nnh{fq$` zsDI9i3I>oLnv%u`(JrQ$cN-N)0N*~PSK zWiGd38V>6@KoYNY#_~9i$C2h7pU<1g|NN1e90c~o)jHk3W$Zy_ zRojf|zC8#j!m#o9%JYf(6pKW>*>>M<-EO0!FzPaYTEk#IgBz}S|4Xg8T`${&Mx>=I zGZJDSp`US?ClV;+sdAS@0a;%VmavA2{Sk3p3wRihk|=QdtqjO}I0c@X;(m{>JRzXZ z@>#>?OG3!wq-Vnf$za4(S*Q^IH>57H8T-*jSsex&F$AJPwGA+apoca#yrn;BM&S^9 z7ECH&y;LHKp;fRDi+$Z@Z_rM5Ntx%na1h(`9wwzF#Ya_&sP*!ad=`0_4Bl)03 z@#_*(c&-WIvU+EJbmgbjz5c?^1Is$Skf2N-!VN0us3)f&@QCN61U%foa&k)qXCFn^ip&w+_Ju&j6z6~bfSN(?5eRxyo$%g7eeiyJ}at!^PS_*W16Zp@; z=3={U*Chh_Jx9A$KM71h5QIx&h2u}>1y26Q{q5|lm zoMQmy5To9%$_2G2-s~(35+j-LIG_M2unMPV*_>mL@l)iL$fIg8n*o3-j_{HWMmIF! zd#B>|?FQA<*dHK;`fLgCBd5Y^4P?VCmgubf(GTzi;nlg(ZZFrTAzAluQw2Y>JM#pc z7M3y}n(fe}Mv*iB+_foD+wBtZ+)WMkzo%TiB5aDzi+0m*ENgSq4>0Y@4V#+WW;bmg zNxF8^PhEPs&j;2`zi3JM_BjK(On0C2l_a&h=_fX!+RgXLrop@ECoXB+O}~hzbZbc- zM#-T(?ekD*V-?dFyvWaU&nsSMA=^i}y-(76c+JgEaOT{+-ee^(xFs;2n;f3f%jrMAql1tSAzmSX)OogRBE+ zm;^|@2@(KVJnz|5k@hR~&SZp)y^}nW@z31wso`zBZHW;^I7h&>StRXp#{k7>0xiFk{UZIP8b&6g|PA+eMGI{8pJoosVzMpPY%Jv z93buiU!GgE&S!PPd0;5}22hb9sX^h~Jx^F4BGg;{L>e9!cT&fzsG&q4kLM6GdHl0RjbH~-BejT(n~ zF?;F+4s24jsb6{pMOG0V)weTyY1|w!9nbE0ejD}sAL?kSz#12=wwJfKSwEhmdoRwH zc|wZj&6dQ8z71@blx%jg7-t-wi*^|6RR;TPJ|3dgBwfI<+k5t)S0#Vn2jt7f3l+Zy zJ&}&&vPKtK)SpzzaXJ4WscK0b!ANd6m#&W6%koZ+J&o_48Ae$*-7cgz3e ztr0^6n)%yBB^$2MXll2^>^Y|WjUYnVK3;kyB{V!_GAd^N-w2B~cTdZ0{36#sTFX;3 zN${eQ`XV0#$pDVwBGXbV3PE_*)9KW7Val;kKU_2fJx)*?j>MWQ?nJRMvI}WAWfRNH z=WMOF$uoeNE7`XWP5);Z`wr2Cz}dOzp(xk`OA^qqzUO%y=KUoFeLP2t^jH=+?_OXz zw4Nd^Z?eiNC|7B_=7S{vUG#Y`uWTazFh72%47t73V=?eY@!}mRDX%{o3yw*n8h|?y z@}}|!v5%W+QOv9G5ScWUAF~Ng8k62rM#s@?Ue+aEHzN>*$Jq$+&Gs_VpHT9FeK2zo=54rkJ+;b0C}Pfndarw!M+ zTtb9ap3Er2`H7Z#0a%d-tSc>%(0n(%Eum3e(@T&gpaGXTpdX zF%ag3)u4ssg&8)UUYu2D~(p)gW3-F{ftF&zoc#o01-J$_%pAyRFX5hFsH<(*Iv*hcrtUhejUIE$aH6VW8Boj)U` zYUe2LnAq|cD-uWh1S_O1OA~evLdD^o<+>e2?H{vw)=Xj?3!)^aRKMVu^Ke??kl8eb zkkhxT?Bk}PqDkWTt$gR5_P?W2(6P?dpv%^S?Ui0M*Ru=#2^VYe-_qE;8+b?z0aE=ar3sh)k z)mp1Tqy{;AzJX9%$(MRnN8Epma(i|eD$cd_%MR;nLEYoF_=Q1>HM%+Xy!x3v>HFC< zI%8|C&88zxKgIE~v0mH!0lal+_P`F_zP5q?N#6su_4USU)qf)n+k-amftVtw_p@`j zXLa`HY4IA9kG5+`PSNlc&{wIApl=Gw9|ul9kd z#d;Qfs`A;>d8*6eBtH#w+-c2)e6uQK&(you(+S;nLCH+sr*xizG&o1s`(_v3>!saz z8U@d>a&cVGvn*6KsN~fv6ip#YSdOd=)gBDep+Kq;7V=q&jOA*KwjFM{#&v3uYH8^( zFC?%qIhm0YF?#(Tp@53wJGVv82u+NKpj_+9vj;F z`3pWskCUHShtX?UEGb~bJ;8V8aY0M_ut{NQNYg9=A)c?Iy&(+~YPU_!P#%_1pX`|Ht9H^}Vh@c4_ucR!iF-(`08vaYAA)^& zgM2J4nbSYD_>X!TNyol5bd@G)w<{MOloJ%1*8ZWn@nbc8ed-dNleV4>ETC_9R1CMF z&g~7pU*m$bYb*L`lmSigp1W!i1`@@LMh_T1+NdaN`~h{TjZl-@@(En>r>`2y__!jL zaMR_|_?S-fNwWL;r5V20$g@bKXYcvjCoiA%gfsO<^>tmV=iqaA&rJ2EM?Az20Ls&$ zWLtbhRNNm9S(zU`BSfPC*2KY6(*o-xEgv*=CMJfc8qF5fneBIFAd%C*Emf~a96TdV z{EbxOS|b^A`WG#?Qt6Q{ZkWudnW*ZjB*l9T_9~rTq*w6g$26as>(E&fd#gi41W28Z zg= z6;sQN5l^6lsvK4`>d% zS17Yk1JivILNs}u7;rp?K#!j3fX17;6h>*5D)B~T)F|ARoNGPkvwv-?TdknwvUsAu z{}+N&pP&BMo(kvd(TUEVfEl2A$XU4@-3VFy_dRt5x1Xi8Ckw3W!0~TZ59TN=_3e52 zxPcn4B<&JS{p;wth$>EKf2d|wrVNtbw7e7jP1lDsuWj1Zu!M1J-4hFKj|MH4bA0E9lG6;F3-!!Vk%u4 z>nL>Sy&VDamh-yuTG@#7b+X)(QSum2AH=H@w%UguJ1(NbU^3Nve6)x?1!CYn{xs+h z9(LC6bdo#Cb2PvSC)gIciS2f?YP^-~731k*l8I+w&R0WPT(S4bafYrZHoTLa5R8)i zjyc{Xu5_I7jl!<;l+K>!3BRb+ABqct9Qjvqc*)a2r|iw%>%kCLa-HdzCz^D+Am z^X;g>KyQTKdZ)9@23?g!I)7iSkIPd){QP6K#*ROiz&B!${TlQJFxH0Zf=JXuCnH!I z%?P7Vk2ji;%H1*pb0T446F~18eTk&l4rv0a9Q}*n;K8az$*qK*ZKc#WMk>FZY)b9h zAmnb_Ca2bJxXDKNY`>ldZMD0N_36{0d9L|bTtOwOa$BooCM6txSGWhYMb?XObBMLh z#viD}AvY(%Xa^(trbeH?dG7(gQ~t1S`K;;0X8Lb*PJIanc9*X%oGYz~6ZytkLX+sH z+!jgVi*o$I8yX+JtTZ5WRH4f~X=6gSv67Yd=s=k~hDKX*%FtCn!~_JpIF6*M#FRqw zBe>B3eO@jqw9+D%V~-f6McCW5-(sCkE^EHGE7o)A_=@|L`N!OMm45F$z1%WzrrO@> zF9a_ez0|`X*O-0ZQ5rWT^ut6*Zzr>%l*rlqJg+^lTRo+h-(A0BW2D;qJJO>I6SYS` zgmc_n3OiCz_g*!33VEQqp1N0?-|>qJIR%^Q&j>=AdR@&%w6^9)re$H*&QDx*%k7vn zPU43uf$4(SfZMSINpDG6P=eE-JNr`ArHZ^C13s4LH1!4o8L#cAk&NfLL!X;tJ$6p! z%jT_EoYp*dY^32>z)qm^6&Lc=)8eiD6SJbynY{B}DL)N+#7&$z|1uw{qDgojXz;D^f`s%}v9wL&gcA#tZ-MqEunD53Nv&B&@)(%3z^Sm=f;`_{K*%&Nn867y(6ywG!>!p~ z?09ZLDATA-=Oq$lt^5+%W|T*;#dx6HlOKX{LuGArBgWG#of{Vq(?aV*;z*z*@F-|* zgeL#D@kHr9B7@hl%r<^-dHL^!&N>9min$F`Xc_Ca(qd)@dmA>WOJ?;1hWwV z(4oy}D^!MWx#wW_s#53oSb+r6-W@6Y3#01$jTN<-5s4KFCi`!nAq{%tDU#~UZAm&o zKLHdjyt+hWa>XhgIoxuUOV-WWN?YjZY@VHHZKdDesnU(J5bgd(uRh5nacqTgU_gB7 zJl1^1(zUb|Sz9~+3WW3ylA`DN+jhq?6>K>ZkPj_A}}i|-6Pv?F`=}$CJur&!^W&pWk8pC6{B=L5A7rqF4Q2x{-|0UL!-Wtst3k*c*{7ei%5;1Vd1TY>cuL7 z*gXK7Z5{#lCzUwm!2tL_^%>@v#c1|T3Q7a)WV2>m`w|)99*$sOAWv`z|Jy(T5$WfC zqo4cKk9-uWJ0d-N6R!0e>cD)&wq331iuCbaV;0|0C+@qbc8gm6^(e0Vi45}qhcUml zf=}YgHfsI-QAAh9`zi>b^$;<9Xd(n-g#9i&YGQ(H>8`o^o4oz5z>24ZiS=>c0t0_; zsSl$1i&z)mxGuiIF1&9dp2m@|k) zLUkslWTtP1bbCJc>g}}GSj%?f;^E;YqX&a`|;rAi{vjfM`PGAJBBQKH&Qp{ zJS{L?I9uSj+*F`nM^?dR+HfW&V7Qf8!n)i>{cO(2#=^aa4mKj7S{Fa(yX!qd_ot}G zO~i!{9h=IEtqTZao>#Q) z_{l9kXN^$@M&*dy)*e8aeyy5X?ix0x=Q{a!Oz~MU zSv9$g^p4@Q@WU@Rp}k_Zh-@IGV#7CIY@nAVX6yTD79HyxUoK`}dbHj0qG%s)f^War zh`=(!AH26aexRiuxpd7Wu;Gi%;0=h((X9lOIssgs@%yBAoB?~8@t>u+J_wT`!6>t=D^BV5qzcB zuu^78@N$32%W~Pfa8!A9^zQ(}iVG$NioEej1RQ&@Mj9m12IZ>vv03~( z!P9!V#Q>A3#u1P_^IvOV1h2~WH~wg`rIY%HT^J=;(qAc_DeWPX=l&200W*;elYr6Ja{zO%-l@5BgU0-X|)U8FfKwE4D zC=LCWzgJN$*)aOla~~zgJs!?hSrv_0iy#mhk7a(LUM)I3U#k{-*qj^UYl#=?#*v6~gpy?ZJ%y=~y86?d#J*`C9jn?jOzdbqkIJ%*xBD7#m0i&nN3r& z!yQk{@rPclkyB!B#5A4hYzC)q2e0|Q`LeB^lXiUx?VqPDWxeg4@&Ag{FE3Ib$#f|n zSeWYUO;i|fstTrOQ}pzEioP3wPCHYSs^1c27%Ja)uf}>~&pPc}hNht^gHzLYqmHHs z&17?9Kn3FEeOR3yUTcU)JF3x@eOW(O^m-}4V3Q_n(CQnfw@6xp_lxt{K`HH;5!47) zY~n*H+z1n8+*ZQ}ldn@fgc6T01u;$G*d+b0!s1eAX>}Gn>J5^#Mu>-P^}I%x;a3RS zrC(e{_(#gZUY+*+hQnZ}p^5J~C?)8O5<&m>U;YO$1zjkxf<$dPOBNL-9VfE0e&NN1 zbhLiHLiaA~o+yqlU-bs)L3Vv@-we3|2Ho#p;T3?zGj(n<>}i+XEG8MIGXLrA-cETw zL&>J@<6DJ)Cf=$OiE9t?mY9CMQYF#mVk2;0pweB53%*6MiF7fXY%3`nV%pvx!7p2o z*VRO&vNM%bF$TPq>^4hqW@CtDDtgXw3pHst0UC6$y3)xD+2J3ddB0Jz3qj?aS8*9= zbp0yw!ZU|8i2!-NE}sqt&~qh(XqG^_{cwdr{ygXR4DWU@_%oaIgM=vA2%Y5tlp-7S z2f7LZ@PhBFGc>-EFo+&hTg2f|$WCNY6!Z>1o|x=o{T?n)=fDec^%;=y{m}f*Pk0s! z3+ho^E9|aX=92s;H_Ir|o=u{c9^%w~-R^$XJ<^#Z>^8*mA9;J(f?4eefDnyrTAc=R zw$#Ti@|x-p`^9>sH1UZXOO8#)GRPKb`B0JunmQ59ij&h!HxiHVCJvq1bnjB43n%4*QIt1(X@sz1M&1*iN>?5@g3$UC0iQ-7m7Iwy#1O&c9; z-aNZ=sS@eF&)xnB$ zTPjM?K71~T;Ti!>MjV`*3~H)2UrbTbaLEoLIopE)g7_gfj2n8Xil#BLb67S*N2S=d z{3n5fxGu0GwVB*?i+?}w`{}g3Tbx>`Bj-f*M(2PVd&(_^|MojK;X_vvwjX?MVy?Fu z;v+tNj>=W?ehxRg)futTI*9BxO~U#^Zv8W9+{{GQ+Nl>VzPjgq*xg>_+O&X)SAFsx zKktY9j;0-oP4GCdp%d#W9p}t{hdbvAmG$&d9nqU!vr{7(sD90(=Y0?zu3}gRB8HYK z{-8Y3m;*~Ee`Y3sO1^RPi50ifPoMXxSc>+oTyi*_ZZa%?Rh?jV>OR=n1*m$n9TQnKD zSlFgjiEG0E*PAy=@*rt0(p`BYWt~mv8BF%vvBP1u9ray2U%!q|2|8R-$b)s_3j0d*^uHfmDS|61(v=>YcT=7m>D+gwE&ZOzuxpGS6o$ z*f>_#DDfCeQ-vB6oi?_~Fo3YSgg67vmJi9Td{2bfthn0o3});x-) zpjnBwOTS);wQZ1#>tW7~6;u3BPzlEl<%kUYU(6<`O;Rmj`^Y(eH9lJM>34=yStWco z7zF_IYTvnBdhK(U>X%;j@?_bvdiFDlHa~ZYrrt6TQDW0SGRpHbM;(GU7Hn8PZ5{9? zg(jL;c`x`(SFLTl`!i)HoVIQ^gA10lbH8NA|C!gxdh(Q1>1lOUj47FdU9u~hnx1m* zVm2w8+>@p#YNxG4XYBg=e>E=tXpM`oP{n6gxFDLiLy+chp72x4bFHj};oD73^Dz5@ zq3@I?+N`iyH=`3+q#G@Od6rjxOenaA}%T)k4e%traDsD$UljMkTp0f9zhscyA;>xJ(Z&v2Hs%9A$_Bly}y3 zU~2oO`wik-9|WQjW80X#uRzkmN}IMk$f3G~W%pqn(NZ@ShHC0|6?;#YkP9ZN<&Ybt zN;JNg^K6>q4x!PLKfiG0w$U0(X|)!on1!^Q5qFQ2HcgHxTuCBXJHEFD+MIz@PB^>~ zn9&&~yw+$0$LwcHC9)wY?Z|BdkF)2Kv)m424lMWNmd)b*&v|w+YD@;Lc<7Zj@ISVW zYVzc<{5ZtPV^WI^k33k<3~n`~Y`xJ~U}h-JINzODK+hy4n>SLI!Og3ZSv2yI-b?Oq zO+AfE9NuTz0-TV{p|(!Mv7i?%NNe2Ln`Dx7A(F)T6kWISv@q$LQ5lyNr!*10{V&r? z;~j?ij%~7YFUHe6dm$M-95vI4Y!NjCQHCyCZSZ727q{PNdP8_Q7zQN^{mgf^ByoGUPw_+rkp;ZlTJ{UJRZ+Phrdk6g}Z=Mv_><&?&;w*gUY?C+zqGVCAHeJZGuObEZep*~UZ2@$+`b#d0x+X`wq>mF*9)I2O)SwCH zbI){yBj&}b5%c2DjCcy1xE>PzY#-2_23RK_11xd?e~^|1ldH1#JIExH1U(EmeMe)| zX?X$cuWUkaF5ty#AoqO|5Idv5c)K?%t~lvNQC#%!M*=cz(AH%nrPg$PYspo(6vn}= z>88@dj8SXCss_n}yu9otHYuRs%jr-np;(y`-XnI)uZbHDQo6?f9#VI~P5%tJS-q4v zwTZ9lGf3>`54;SVRb+{95LySZN6;Xd&s|#FYvUFNH=?sEhra>QVsO*aIZbW3; z#+$R}LyX{suUaUACQS6n61wyUs8Q?UBgDuI@6jTig3Oc8JXZtpJkk|QI5$w^3EE(E zjSg+P_l@=~rE!CFQL6aPcri!s0q@E;Wl-cD_ucWmbRYP*cAjUbwcMCDc>Cp4kIch{P^?e^52gft(&!X1rMSJvvbi{x8 zOW23(wO))pW^J4P9GM^T+)R&~8N1Bh^fmsVHsN$|;o{ef= zQu#RW-^z=4F{R~@@*SvJ`dALDX?eQG`TzQXDI4T`_SeUbIYwCyP>V&9_6^hD>=VD) z4+|j2HwBi_4!<_P$&gG%JR9P>Yd014GVuGdU}&p=>LKwkLZ^6{QG!E-J27`TyVYvC zrJxRIFSVZsk^&(9Wg!WR#Wae@4cd##sX(TP{w!Lm zZq?LIPAmsWZPwOot+!}oRFHmvdwh$BwI8E$mIGYHy%=tA1q*UR#xTruvE(LErlhm+ zd85qZXOx2M=;Rrc{pF^lsd*E4fbE$;ftJaP&m#u-m2es+tq${Te$)X4_tV+7xmbHS z#@?#_Ds(7n>lEIYRS}HOd5Gq++ArmlswR|>kFM@Cb5M_vR@L zLWYYGmwHK#uNrlBJlxgv>5bne66@uL;NDFlau|iVnkAuJ^DvOndsKGj4(k z6hRhAOh0EVf;rHliMNgfWZfu^>;^Gps7|CD_Khse?gI~T%|pL;idff!E0wCYk_ASx zj>}jQgbJEREzrbc2ZVw0s?!baCE{26>i1#trAzINxxECXFV}$!0_;;b7P-arO|xL2 z#Ih*f7BynSv8?E1txV4MrSfxzc z<4e)c!EgX%60Z;PBsAPaF7Xa2`x+<5*%aoosIY7hyo3Ksi)3*+y&}iEA>1Vw82mX* z7Bhgpvr$6-Xu`Dh-Kd&ha#1d@&v}-9NR9);e|`)UZL|t`5MAyav1$Q%71AZp6-&y5 zxK;}edX#1m#c;^WRKvq&FWN`7L}$YmuEnp88gFx``a0^zR9^vp0y5lI+t{pD{S%O+ z8N1mVnD_nT?=y;VNXdK+y$W1pZS0p}jPx`@AUD_4GXFLhjXZ8_b&4P1Jk09h#8N<1 zH%#`^AXq`-pYAAm%d9G5{|UJtOWnwSaa`0*vQ-3B+ATN)aU@m{jtXYf;7AF&c0c6f z4;3EN;!?xqai$`Q>ZhNG?4@=EW}Do2%uPK+ucI_*A_`cF#?3A-B zGA1T}-%rQ|j`QcF=)nhj%eAv9LZzHjZ*Q|HI{;G|Zo-|Hdj|%PuJaB zY=BjBw~~7so8PZ(e7m->d2nxYYvY^$)xoIMzVif=RE%#58|UCgqN%*D9w z0_1KX?j-&-i)5zDg=V{?oz-v6RqMCnzHdq4%$@T599_W)4(1Qw**;`RR(#CoWx*ba zaFXDJr+6-B0F2)l9e(4E;H*d@H4xh_v+;ro_+@rE*f$E4av!_Vy&>u|xcVj~In|T@ zd}@c`s4Do|92Ob4Utz*_ILWWd2_nG&$A?pb-`c^e030$tUDW9qwyR#iHdRv2Ps&5# z9~9?;I06t&u@2YNPDuL5MyDfA^T*h{O>$K}&-z`)iS9rS4xm1LfjNF^%z9NPUu}N# z?EptWxW6~w(`e^RK2J*QH{3kI4(s5MJcdTMWO)vENF^~yw&Sm-@yq{Jtox| zvzi%lmvHuRh^(M!6*`X4dBSI`uCw!5&7q1E#=vgrX@Zv@WsDtl0)mAHBc0DFLQVd( z$Y;yonJ3Z!bN3*-4h^InrFnw;{rW_jQAJUz&pzksqVgPQ_&BZQ1^*#$FkW4r<4<`i zQjolmzf50Kz{YzVE}s1UNuJiFNlKv_jLcJM1kAoij>7b@~L712glyJRn5ol51>xtO#k_k?jwnqrBUqtf>3*gF?2-8 zh6KPNZj{U(e-VeP8Qr!AKNr8-Z6B$(f-M` zMj=T_&LU_VFoYN4o7rHxLGJIq0fJ6wnMuYw4LaVVgYnTDS(;`8V zeU*rQ3hy3NLV!SIIyugO>}L`n32oMp2S&h3uq+BkX5qlNL?YTQ;Fh>JT|cYOr|WrD zfo!^d@BVk+$G*ZgqY9+&5r0Jd@>jHkH5WK;zC7Ud0bA$8gEZA}h$|FP6th;PA5fY# zpZ_MjCbJlbqrYKNTDsJ7GM59J@&Wloo&YX91sRS~9l}*B-C)Jbl#U->Mf8*lxMQP3 zKrc!!+?Xbw(Z)l>Mq!r-TR#fxK|GjXb>+7oawElK;eS5y$r_!3Bt`$0mt)}I`% z;J4Z7v&-3_bE}1<8e$G$ZKt-#0lTa9&|b=N74j-*Yixg8LiM=Ahn-I#h#CfT|LXj> zoT5-hSsYFn4~P$y7C=QttlXZDLCye(v5t;O6>`KV3eS<_;!}($$=_n1i$b$Z1)u!c zG#vxA%rO~Ub`G3gdV*qRDXgv;nn1`{o*Pl7!?y^~dagMR2-zj6xjW?T*yS!#%7;3I z<2<`^++gRH6;~WrTuGc3fHi}DGBle8makeg5eL$r%DE0}*)6*5kGS#gF2 zyh)Gyd6f|aa?+$Wx^5+)JK>N(mS-Cqy3x7C@3$~8xO1y6DPc|!v1Xx8Y_}XZLQM_ezh#UPuV6G` z>^K@fOU~08Xt<53q-sI0-+EtNoR!mfLt@U*ji^9|J%!ym^UioG4u-*?%*DVua8 zqAR~UQouc+i%X`Cn`zgD7)pW;9I?`*k*R9TR!Zs;9^B9;JU0;_!^y%v_VF_fT5M7& z;67cTszdUNt85ad74=BF9MQ5QbPa1I&dp^WilGGTziNP?;Ux{^Mj1aNE_ z9Gr0`WPuW;o0{u1&_jQ#Wc|~tHMF@jrYySz|0uXW6V+B~bHEZ^MxN@b4a=cBU>mY@ ze5OHZzxPg*KnEN5MQh<2nt7b3v(-HjWbG#QE!@*tzo8Dni4T!A@$lXBD=06Gcz*=< z;R`z}Iv#D5BAgAMB@S?r=~%Uf?v(5&OFPZ}*@rV^KLCzkb^EnV_d)hg4NC(9DxjSe zf;cvt0ssdXk>qZUnIi$BpRK(+st&RYJ;MASXoadzC4%N4G7%v&Wl@ z$1#1_B1!{bspuvpO$_|P2Q$V7dPKiFpWH17cQLHb5d*lg?IVB9xDQg48D_(EB`_r# zax?tjy^1D1#H7>(iL2Ii$zs$YK%Q8^-#=jk%uun3Kc*&ahEu7zot|Xb%s3@IWJq!i zZ)ElG9dT4uj;dprpRb!Yb3mT;xGeFS=^BBU`{fpfB<+95XGAolF_Cfno13+)DmSYl z@%Qds$BWBM$7z+B9Aor3GHpf}1hhb14cW?){;aI3T(ZO1?ZfpIKv>C{1 z?X+oBuGIzx1;>Bs!NM;4#@sZ=9iR1)Q*|%T>Ch-7>wKW-v6#$%z zWa@H|s0-{hjySPN+fXfwH~+eGLZsY0mEjKh1{<3jF|gVhqf&4yrJcpSV5m9e1fn!$ zyOLgwFi5y%>#rYjyQ7CzQ}Kq2fEWd-V= z1;RKChr)5-UwdEW)f@bl*V#AoxW49z^fd_pcyZ#+od3412NoM|k)q3Zt(AFmt0@r8w9=j-eE(eWn&yV?~)Sjn8*?! zO62tUaH8+MYHG@q6;1>jH`OOXiWDyha&>-^XA^r!&3!ABx^aQ^jo9{6k%KtKoFL}$ z^<{0;|JhuQx3bF_(B^W>SlGJ6N*H19E(cuBvB^1HfrHUJBPBsUS%0^?emYFLaF58v z{-mma04XV&?DAe>1b!kKgIjq;-T_9l3zI<^Tk}8YVl8AfvVi&punY%a&gYBzeB`*< zX;<*n(Cyne0VHWLEfL*khay|>+>g2eGc0FAsNGELQ^qhQJ(4al@c#L`Zjhw>+b+oxquZ#*}c?FQ2t}4bwpNm}bqsdNE%gFed;>E9h-Hn@z9hVpV_V`ZmAevs$q~9B z7Kx-s^M~v%yUJPOO%9JCu~wIvGU=$@`?rkR@pRoc)f}Q$P;ZD;qdI&dtCg^dSv?f2(6JNk1pFWz*dHNv>6?n*c4ei$sLs&awo&%{o zJaTw~Cj8sJQmlzThC9K=n&t8}J}}NuE@~zTMk>e+-#NM(KON`tK?sU$rsjLzMK=u*C>fy%N%xfRvm8C7Lv}8F%@4sL-B?!b%M0)DvDPK^)g{2x(-CiYGG40}82{-8RrVodQuQ#b1hIvT7E=VTrUXbf!=boVHr`HE6r_=_`#QUJv@ z98`}jr$?GA>;|TI1?^eBo%nt8ejNI(0wYZ$5-U5l!&xt{l!>IfbPs>H8$Spf*m7!jnL8m;X8Z7MZ!Tn2ayXcnr zV02I15jbl%Y~N%tHd@arKSxNF^8tPSTV5DflZE7fmeRY)-}es0Jl#J%Tf4XU&A0rC z`26J+YBT5~a+#hiNIGSvQ%SbO#hqe0Xn-?1YG5T5quhiE?LF%#;)r(uiLoFLboo)& z@WJd4rtUN`D|F5Nx)eGYa zhjW(4Kd@n>Z~k5bo@gLTLo`Mhu#F)N|Es|O zSWUq6xE=`v_-1Y60Y?CYKFN%}>>6k32K<8aHXo9y`v7EwA&S2L{qn^SP4pkKBL5d& zniw6HPw^MKKERK10R-W^tm++>OT|{RSIidp8xVGPf#w;Qn^49VD93pH6r%KVF=kUj5hp6Z`umGZDj%;XY{2e( z#W=})K3|aXeuJh=T2cH- z1ZfB8U}lS3&|lOofw=9Z0Da!}9z^zn4!l9rwuZPbujdoWb)uxTVR9^IktH!YMCOsV zfs&6UP+x4QYtlg1)X^mbU@ztV@1F*Ne=^L;xNakC%bD?=E@wlw|NVnkrhKa9h5w}C zsXgo%r5+ojX0vRvHX#omamG$Tu&sN*UZzz|XASNp9*haCJ!mk~6FSzgp!phoUY@Ld ztk9;v{w>OS#=G0W6v?bHV_Oc?6BOV#Hc|{p7NfERPWahU$&t#|Oh(KU>B zv37KQ`0KlkH5fYGI2znF13FJlJN2#jEY#Ahld4-UoD%I?-F^4&5Q&poIPf!f`uI%E z5}plUnqf=P=gx$S>yOh}jrOQ}=+pwe9Nzi$>+9S9`{?oZApU9BEsMpR&S&Y*Ywt{c91*TpyQy4SJA z53XY?=-zqvj!|M(Ws6Bk5Z!74-n(~wd?OBu7=;Pk95cGiWS|Ua_ldZ264vF$G=4gO z;?MJGjiK3mfjG2)|Tyw+K9URDbtJC|$9gpG3d_twwjaX?O7M9d3)^1TwBsh8z(Z#R>=2P}2H+wgf_2W~D|G@TYYi-poiV_^lJ^<`V_=EF1_vi#(>MUdQgL4F@H|d^| zXkk4tb?ff0&9is+8sYY&abBc^gE#1@ zfB3`Q|IK^qzZtX-F@e2d_nCIkUH@Pf#YZb>Y|b0?=aJLqjQykdwe(9&9rCFXVA9>& z?QR8Me-%5*yog)fofl8`_Zy$UPA&WB;K|<_pG4YUAKp2#-#j@uc-#0WI7Hm?&Hl5W zc3(%^YJkDqf82Y~T<%t%Zdp=vUZZQ;by1(;|F7X6gS9@Tj<^Png>q9cO^c94q`WA4 zUYC;zVDsT!xYP#yckd>52E}y@FQ6xB)zTY$dl$}n>{}rMNjEp}Lgu6iWWK#DT!^01+7FRe!*Zf61sVxz-}P^#&w%!YT0z_>D<9#{G6l z!y+h=$-x&zV8~>mI9}C4G3A6#X!EmkPkYS>%X48o6tje zYB}-sUk`u%{pjwy-``bt-W|&0cNgo%e3@4H^lFV#>maYVj;Ras>?0Kh+uOyf3{DjO zL#HuOY|b25MbabB&2+!&A0mGRh}3^~0sn=QDi2_?G%a)~<6y=0L)ZZ`3*<%kI;lR3 z`I9SX&D|$3#-iZIA*rGp5-!L|x^{B(`{wYwPt6^BeBF-_+UpT-om@00Y6K@m{9`Cf znAjh`xNe+aah9K=Jk;H|#F5M;x|VEQZf?N;Bq;n<`U<2nJV$tSq9u4%=0)9!#-%;F z_l+Exa{eKmQwbu}M->_QP5|#R2g#Y#@^IbOHiG>wPQpnaG&8gj(2wiu$TG+lXXZ>s zN@`1fuf}=j>B~2Xp75<(V#-Ii_Z`@&9ZYY`gWNUCHeu>!c}x+~Y4T>87Mbf0V;r|&&^q8GNF$e)K-=De%wNBB#ikwRel>@IO3H>!*l?x)bG5a5e;K86oh7;H7m1!DI1B{OK-jz^k8L zys*)KKi!3)c9XZy-n@9S^X%obR|m>o0deb`&zR#3gPm|-p*DR(vyw!NZE5eDnhibLcH9V+dge#Y8_KFICl(v4>q z_-XhDYjq1=JVCF)vyoOU+VJXrviTi_(PdvQIQ`? zm(ov?oSy80Yy*Nkea<>+(IhVl%sIo3!SjZr^(}93XDQzmmBRBpn@%crK%Pu?EKA$( z=u{J0@nI5E!K0B;Oh`iT1w}{F8w`b8AQh9y+M}Z_hgdKx00@lZ3H@vDdx6N zC4LG>)lEKi&{3d6VsxFKqo9YtRqTvlsl%dMjxFBlTJJrDJ}yc5y_E z8+HN=AaOe_Z)q|yZ-7VNj5a#T^9`R;oZ7(jl!B{NRIu2^-n! z1Q*-hvq#^nvv-lBZji!SamN8Z2!-Xdpd2jLwO8BsZ;98F5Tz8YGk}D!`34K5weWl> zcqdYm`SAVSyGLXIt`2kfNrn+JVtV7Czbg_KQNDg6>zh5WY^;bxBw9xtbl5OXtdwib zM%n;==fGhQBRs@vS&JElLSz?4pG*<@*@ZB}?N7n>!6YL)vC2kkCM~ zSbmQMAW%hYdeJY9CY^EuOiU&?)AF$$&c57AzJEw2Blaqa_!l`B+$^0V_G73V;){4Q z<^{P=SkRHK#rW81`>AbkTl*5hIJfN^vPgM(88%Inwtez_QTqLA+Tl0OI9nOQ#vT15-8M~U-OaV|wJD8jiJ$Ou2M zTuivRXnCa5h3IKToDn9mawisuyq75gBqj68c|!D28%13mZXT)j?BOo(x5#^|F`;e3 zKj+rZozk6ZHv-cMNLq}iS9_Cwa_&v-R!CNdtV|xF!`KJO`XJdAUhlr%GFp-=5i zntxJp9TJ=Af#3GhxjE=oLherkj*-GqbVN`=0{1kI2Y>mC0f@1y_TBjq=FGKe?oH<= zd(#H%TYfMQp|p2MbOZ+*~Rqkk4(Mb*cOV>3A$zus5f7p{hBtlb!EO6m&mQG+QR5>D2PkKFMa|2y z=BUezg9Y#*CkYnRgWg1CpAt>71_Hdrav&7qkcL@uF#iN5tg>l%Fvk|=W5eK1`~Y5; z^ACyWfhg1v!+LXAAdng41@cQW{g7**yOPQJWjZC-BTnsC=-bVP)f*|448<1qE>%xj zd>|eX#T)d=K*_##NlP$QC`Cz)I`NB-E@ETIXkd_kneK@Bid@=c!}fNOhpq|MdCk7X zlrSX2EPCnuO5M2q0;!%peJbNlHwPhdpu_99HT+lkh5|&TNvLz+Bj~>vH^L0v4K+qP*Q+lI~aJp9hm= zGH@4TsigaU;#v;;2t)t4$FU?1m!h81=EzLO0H-(J?o11{1Pn z*7eEWgeo(V3MIW|&%1)Ys0P~Tx4{p0D>v$$Ye_9(<>jrV6x~YhK$_XJ((Xr`Kx?s* z6M&kYPB3C~YFEH#PVRf-P&H^EDJP3+90+e)BY~8#SoWK%tcxJe%gwJD((?5tYS>$) zVfJCY!~S}lX6ZwAwZ;y`P_CB2ClNZ?L0|k> zDfM@Hg8oJo%vJ~qx|ni+I#NgI{+7+_MjRY=&?ja28c8^pST9Q=>`B>~vnWKUS8d2`Ih|ngdB9hoVCXUEl1ppJb{-( z2i|bQh;nJ)opETuy}`4HlY!{0|rn&LO!~O*yFx20_lTzyu)y=^+nOo#iK(u>L4;f9tzO zmVeo1AaDjWm+b`FX@q;3;-%`eu0)SS4UBe5xLaATLnsF{B|T4mH;%P%_zFt9q|&Pa ze>wl)?;$>MzPRuS0RkPp&G|fXUVX+Fx6rfPH;D%UOE^0eBc9<;S||60(ki$l$148~ zqOCbXsm(~iXVafQ_A#&B%n=2%X|mmxsMD!*iSQfpYHF0;J|P`4n`aCm%;KKN9(6OS z@{ILIa9~Y__Twv~!RlCv)V}}-^SpM$^=Tav| zx7!SRV09xLqI8kN9F9rTI)%}Ly`6}$pwEL3Z8vtSSw~K9#qYm+-5r<|D^ACZd)?$P zhzj7xJPgJAAqR0p5yv!C0L&e9jI5k4t0Z?>1mZ<$cm)pxf_DJE=+k5Ww&1`AcQ;Hk zir@m=-#|_>72hRHmWi5JMC`fu{-ngrbrtoiASpAW*=vtpsk54(KQHhqDP^6(P;IIU zO^-%R9{ITW3^6#B8eMzn@QSsX_1_Pz7q@^a>$Juk1_1F#*qM1BSFfJ1t zIAnQiDVV0g;*DaQcQ|})hS?IXW?A&);fvVKOFr~(s2^5B^L!1RirK_WEV=}gwMeci zYTjjLp-FbF*~~^?)MW1wgTv>poE=L(Yt>KblYjHF`;B#DhE@BFr`;WVVQ6e+1sN&V zw~V<`14g2wJ|)(cNz68VXdXS37$4nR42Z_4YQSi_w6RP7S)ez(?O6I{L;1(7+Dgnt zdT5#)0bj)?&@J>Y6PL1narfRJ*&3&XsmQf#t5i;;G2H8EUN|*}Q(~HxC3@-n>C!yE z?1G-2X6u|c0cAGw>M`=cngQ9D=u1tE$VwNJ{B=#hqqbEr1!GD8@(YO)=Ia8l04lgQ z%}}pK-Z^$x3~;ujr#o~bvvvP`4Va@6xJAWTN!CfXtFnpmd2-V=WA_!W7Xv>|fe~5b zk^f9jm|J32ubpHXcDyXkKhd@fcuRu)7Z{ue3McTylpwGZkm4Y+sYW6jbv(0!V)G28 z@Ej3b76_Y`J6I=$Rgg?%_(`)?vX67Y6Q|JX!Zn&reI&cp_BO(W23`}2BlYHO$xT$* z)arK;eikI}(t6qNsJMlBL)mvocr}E}**dK-jOlmmL26()<}Ju7tHIH8RK4n1qGHCX zhJG=oy?Mr}Q8kyLjC-CIl#EzDx|6&InGkkt?U#+s2S|jK&BG0eTH@PwOluoyI=)yk z*#ISj@CIO)Kn1oIU*rYQc+?&{bR(vGO#TVLmD^sVwidZ87`=dfsd3*Vr~jA(Wj|-< zq;a~yAV-X*TwwTno%9J0hjLpCK_Vy?6hA-yFc?zUGX^qKRS=koRJr+x+U!e`H%RYz zj^AUdW{jbe(`Y0`lCDP`-@?*zHg1HiF30Y6HF=C(J&vQ4d^bO1U{%c(Zl+dsFHyXN;pou47v398YCCV7MBC^K|f zAV?6P*d-LdF}xl>GY&LrBF>pcf2Wg$aN=yw(n*1^AR`8XZq6TfT6E8Bq=IQ2CjIxp zfFL6d5@k4~X75pIyxo_j@}Kgek$HgB3%+uZ1hZyUK=Y}`mL@lFL^*I(^34Ofl(M6<2{IoJ7je#yFwA}UP2KBDs>Q2LH5JtNiGf?6~J_gyK<_unsHh|t*z z+D}Y2p4i)&(nva&BoE#Wz{sPc1WO<1yv4;DxvQ8#37!;A?WSw~jL9=boH5Z#EYp|= zKfT=>a&d-dY_liZebZY9pAKwnvaI!CkhuV^;z!#Lbh1C1IoTG2PvP&3@(x^O;_@;~ zOlh>7jFySi9Q6E74Xbv%IITvi$Q~CcTmR<4{reV^Zc_k**jXF|*foe&3&X-)2Fr>MCP*IQBG9~^Sy^EO}%COq+HYv7I&RvhU3LC=VBPz`Z?72F&7kR zpc1|Gy}n|ubve~f!b4!3>PQR8DI!g*amRXg@hz-|!FnTsuN<2F@o|WYzP`x%jTxQM zPgnuhR=2QQ?ve!sFXlPH&Ne_5B)_Z^Pm~e7>mKnmZoO zD^F}f>_2T%adl_T<$A&{*X(Xx!G*;MIltPx|NZ^%ObTVsC(rZ9Bc`)&H{Dw+tFC{} zvkP%bkw&AsoKY|CGbh07Rk}4A#}Cs(Sl-im2DY~77#h*&IE=h=2Er z0AcEx>6NplxcEYjs;!kBtrK`U?mc^8qw5AX7s$wqHWveozNQ3#*>p6vZb+y|>ne8f zHoWz`9=f(|*KkJ!MaLratHIN&J6{}@R(%}x@ao>_4lM8}bB}WhiaKZ+E@lN}yoyPI ztqLoklC7#c@G|-f%;J-D-V~oAv<7|KSNM}{ClbOZ*Q=dWn`2pIl+BGckdhmsfn(@| zXiLN#&(U!t{LFWzo#mJhX@+Qf3S<)a?R?A;GH`_wPr%7ND!yCOguIf{W0Z5frO+yH ztsZD-#ATaj*b8q5@$E>v(dcc9L(;G&OJ4V#lSE{D_jbjRn@%#ie0O};IN(gQ~!YENPrC97Y2t2&$pER|>2B({@fzQ#4 zfO0*TMU%d|MOV>PTSDg!lZus6W?O+9r-HO$P{#f3rpvzhx?2|RoXiy%Ow-`7n>tyi z9gT{ZErL`-%b179L8#g3XJYFTZAw6tm%F#a$Oa!(1c?oNA%%%t%cOxlefIR=Rp(a7 zWIIpqmeHF|i!!oJz)kUb%RypDHlMWmeCBfSs$8xVFMb8noz1SGhrAeL7zHMfNs~VF z9|K+oh5w;y31eF0ORvkaqoNhsP`m}6ob!hi@V55Nn0dd-?J;~pHs?ET@4{0d!-wa> z*`We|4Tt6crC5kX485VL-H(Xl=qKSyh(Yu)o|CGy;=GP%&{5^)ak$SbG2eA~V|u;p zFsNXNv1Wcvm?cRm|F!>QT{OS@Hp1fz3o01pfSg`1j?L&wje?i`t#ph$J<2fHs1iAu zD>9*KvcLE2`*jL40!e*@$)mhfiPn{q!Vl8^7Uh3i(w&s(zPHKo6p!qQ1e@d-Q! zo;>AI<@>SHhAH@oUcYFKze>_cIU_d!bVl6Gv(qwp1B^qFqamkNwBZ#_r4*-B zaQ4bKW3Gh79JTKz;s>`i=k(U-CcO8o2Y;X#%X&_(mkMIcG#}?2LrubQ`l9i2UN z{WO>N&@`oBU~;G=Yd8GCra`n&az$!sxoTtX-T#(qLNAfviXxkf3a|Sp1(smDM>$hO z47;0jdp|r{Pk)f~Jh!@!DuGwC?P+FA)h2X+wS$$$KussRG;|r(K#YNAgJb9(`hflwfO%xqB98H}A!2;(bupje z(RMt6RS(nUy`xNDep(T|5%S37t_~DzUE(jhY$YyhJ{lQ1x6f@-0g1VeugYxSP1e$q z`0?=;P2#$dEUSH8OvNAF`+lghMSL?%_S2Jeo6I#nJTT9~6=IHwo7piYx z6aYP+{O|4XxM0Pj6-(^GSHYAyG*)h~wPZ_Dmzo3M1%j}rkoK=pNZQE$bZ=vGbN%hJ zoi#tZ=o&uX`2ODa>tD%OCgS|r19O9M+7ogXK_nnAXWV@ZQ<$>TE}X1t#on8>tlW9k zvSmMc-;xKsYYFdANHQ-7l(c++-o-!Q;b?rCKL*;idH=fy-)@?P7HjA|WzwOQ^RF;H z0(;V~xllqIb@Ll#6scArMfz2M5qIz003$|UjqYM%udb37n8jXl&%p#jQhzqjPJm=s zuaE7X`PD-4qYW9o)|V1*HY!xfgX9&5v^<&3Dou2$auzD*k<--lWRB{5q}_zd6V7(2 zRst)|PYcP9!8wJ=wBH^L!OpExzyp7W5rQ}w%tXfdd=0?}71%t?Ap95?fFJL6mDCfV zozDumHO5>l6b@QJKBnmUfb4?@gcVl+Hr~Dwsidhzvh>;Pwhh|&{CRSJ^evK@hLDZ&~ka#&K@{E2MQbg zh~5BfUlN5q8Lbgt<{9OJYq;oD%b7FhoMp3&F9U*I$CrhIa9tY!0k=dhRmh3N>NQT; zYE0bX!6nD0Ing`AtxGw9A#EFu?riZZ_84ji5uqp;3KV@;jmW^&JfWyl^N=b3%b+)} z$$9y&rSHq-Usu8Ffl3;(Tp(d%61hl_LW#1nTYU-T1WFpBH+@-(k1&W91>gRp`Rk)e zc)%832BU8CQWCM4@eU)mW+|$BTNQfZ#HyY%%{w*Vrd+he(6w!PWaH8!dQNm zBpj-Klpgo6x{b^%ph=?fkdNsSNN0y<3JV0MhNf^e5rGuJi;KxHPlAzHXhiG#>;CVpXDn?L}0{ zU^@)n`aXFKk3vtGEe`v-b?bOBGl5{o%JW-Wl%)0pG(^MY?LPg)_KR60POMMe(q!D+ zrM8~`lshsBId7${J46v_EiX+ce@R#x9@tcGZLlI@dfZg29wQtS2tu9eF&na)W)gcZ zHNw=J^*!Yb>;nM;HtvgS3wQkx#mWq$i+m`gd)$e^$QH;tWv6;u=!4=@)9L5c1knXS ztVcDjA1Sp&g_7SODS31?cIGe7C=q9L?@d8Id+=|!6$N(g%aFab|&ap z8Ro_M^Il{L>TtLwFOIM8Ky1Bf>mr92XcfZfFaIBT@7mqAk)@4(7JmiAWG19VQj%ro zLRt25Y^U2ZxxKN|nRR3(hDeBlO#y6xw5*Obzx~v{)~*6b$w_9;S?le|BqC6#d+plS zXCoR8<`3PLD;2ic(+u3EFsLCpUEf0)A{Xd~kx^yIu^)t|A~Y5C#h7rKyf)qJLUe)p zxY;STd(^rU#?uY&11CB5JVpv-UpVUC-w+#WiG*$M^pCf9+GuY-WJ|wuAK~5N^Q6Ne zH+xsJE-?x2NvfNke>K3x7`DDSMGPFG(EbF62g7ZJdy=CR6U#vPR@#eR-1*WwhGNbP zG^#;81Z_6?^Av_7oTG$}DPDD{A@TT_Z@~C*ik3vz1u`a{($CXG^FjWI>4}n8M zyb~uyCD}tp+K`m5Q@Xu=Z(O&!g=k{wu8!Zx3#iPN!=Li&FWv$j3$*A5E@AL!c!8kJ zDMYU!t|0|VMNXKw7|d3L<8KRFZ=fU#IRilc1h_H`fvg$XAg_Gj7sm*|PR(n)Gbk85 zJ!}sUZ(#t^#b{L!(gy{XD_$i<(ciwN)ApJeRXv@*O^}I0n^XnTe_6f-b7w$uE|2m-?Bcl7DH0{njOkd3kp*Kc^r4)IpZTqT0Sf@Z} zTFBAsYb`P#jw3+j>j@0scdBTJp0HHIQ_zn-11S~$*M{e(pD>4@;8;F=cq~5q$yUi7 z#Q)Fgh8aDS$ib<;jq#!BgSK1;*Xs`i(~IQ6%M3P4vpyo1X^!m6X~sd#hH=3P&cx>g zjpfN##tYAQ@F&58Q5%48fcUjE&NU&<&03T%+W#KmE5yJEPl={Hurywc?rvqXCU|%enUnX#dyGJ)Ds<&(M>bbaDM%XL%d(i*c8|u{?t%yf5rP!D zGx8y*k0jwWdm$2MMHo(IFSX>{s6|C8cqQ<_(cy0YHVBcnZZtU9sxN9zi%v>y(B~lv zU@z&uxN=+ny{Ir(MU_p;8Q?rlO`gUvLNj75LA2ddd*cf>T_x!yRJ9NUU}|FJYjHKh zC^zo=3gJ9oP*A5IfH>nBJTP(!^lhkT;2RMM*y)sl!wO{O9Zz`&WaK-_$5NgIUk&6v z!I(&5G{rxq6N@J*6;loR3LNJ=Pj1S=!xtEXizNh8%XcI9|lo@J7K0~ zOh!iJ?XxTu2~AV1M;=-;CxWd|^RP?qK%9qpcj1oM?%lih!|A7k*J(I6noa!kGM|HC zGQi~H1Xco!fOiHRXz+6@D4RU|4XE;sAY?S> z2#8yD2B2S5rN+k=ZoXD@0BO&30>%~&EN6++5NOH4dL#f>Pu#ABy*qugLd2v~3aVJu zpfxklpyTBJ9waPbFby=YjRUv~O+7hIGy^3(^UTdS`5m(vfkU+XjhaixWREFT<-@M~ zqb<1*F58&cZcIVsgss-1{C3B_tsGe@S2ZteYi<9%p**BA!p>@jTJA09uQXf(iV(bU zBm;#>Msai8k|;6(LlYKamILAo(a~k8(D>lSh>A7NhYR@~3;NqPeQ<*Mbp7G>BK>{O z{Cyw)?t+ietvVNG4ZvdyPHb{mOv{8$tq(N2R|wRD?@a=+draXlJC3IFTrE|D^VhW)_4NUgnQvUKh2juXLhGG(}!7#jVsYSqvlj0YX5>&~*Q|yTrik-(bGSL1>U-*_ zDofqpaJwCN{+&1>;U;_v?GTv;;;ek$0)M;|*5{~E?52CX3HNGam4gN)PdOUmxE;tI7fL)sGOaq1?IH}eILGNeZ4QrO8Y}g?c^KQ zUiW+*L0aS9uj_Kd2i3RaHHM7T<_P+p1@V42%q91VX@(W64BUtns${zTYe&!4g}%21 z4YnW`U|rq5aFD!AmVs-q$fUcZtbCY(5shu3#J3@2pVSdvqygz7R4d!SaVbq&jm8{G zFKD8+kGck-ju{v&5`XKRoHRfb+uAwOOQO9Q$1Fec9XsL)V4tr>k9^tf&1HYZvQ$8| zWu7?8G(*|F_8RWou7-!+t{zqJX=?>c{D%14d!*km^#8`XdMre6Ri3c<12y1m7M#`M zWBU7{eJQ~6FzEUo?^5af4h9eV4t)@}g;XNq{Rddnuj5T2>0}+Qw5>PiFh~#sm4vpA3+DDH( zYON;S1k6tq40=WXHkZQob_B93X>-VUz7-pf)ZX;|!klRIZ~+<$EC?vXpU{ue(W#36 zCMXK{HzHULl6sj|OUWMOWPb?GrkRGRl9_zurq`>5+(Nf#6u1rsCq9aCgEd1D-PkwQzfO&=?yRWvX0^f7YRlqyXcxZBW`ax#JaSzw?11#eQV0Ze%Ht|<*%4j|e zB!uWTVZLl0Nu%oY=_6xBDE#LbKMkNOq&1$HNB%KZyOBkJDIK?c5QX}iBC!{0l+@Dx zg`6Sj7AXO;sJq87bx!()yh4`*y(_4XQ*hR-%f42E`wWZ)xWyDDzYA61)w)e3++V>~ zYoyz3@vv1C5^d$!>|ELbM(GLog!By7pB|kYn(YCwoUqOC4CB7&frbN9F=aKUPr?*U zZX#Y&U9atqk;dI%bnC`>QM2rA@)~x^Ym#O#r3aoUH>VSFmn7ETeC4`f9RVUnm)F+)gPXToQ`J_IM*7xFP0FA2o&>EOL55Drb5?PO*ok4!=bO!ct z6rBprAk#1i&(4SYU+jIQJHwDFAPd^lV?t%2*Uz6~M|C&#HkFGyKjErPL&vlMPbBxV znLJ8GawG|z_L38ZfUcY*QKMrfz1jCrFhYI&_rBQOB&B{jO|Kk)55O z8jEDZ#KohQdwd>*=b;E1^dYkw5Pg#2{PlCCh&0$#k}-oxrn4CTYV95%_H z(v~>SFWZfpr&c_Z^F~&iARTc)8MZ#+jJIDifA);uaLE7UDgR@~{G-nKM;!D&e$pF9 z{jjl5V5VAb5A#;oL%4qI{ld?C_@e(v6Q|hEeIleVZNyf%D>cAiUX}|)MLR`v3LX6$ z&ix;wHCum%Y>1cB{~Y(@b4|PdF*%8NBD4j<9$E^`0&_x^0)~7saRklnMSs4{hwIPt zUvV&RKAV63c>duN`mu-fHe|X%o6X@0pxfH7fd(zN%xoKndmXcp2yHMaD>vcbGK0x4 z&(7*>362l$awC~nC;DnK&nV-kp%KF)loAiaxG;ZmQJ{q7r)U3WM9e+(zJ;f|{Pf`w zJNuY`vdzW_Qq&IO+zl`^dNoAF72%|!`zglUy8&_3eYOb^L#^n$pV-I;okgyRfni2%g*c9V^AGye}sI~Dt;u~M9yo~)K^%R6Qq^{e+bW$^k_$EI%ZocL%thINlW2TsGFCqz#oEd1Kb0gJ^~_9)e00Q z`HW0UXF&px&|vWOYMER}ypg0;0LieNPti)7q7A_`vTIKor#&2D?P*ZcLV8wMvko7v zvA9_MSc2bDju7Nvo}atR)t}IAQ7*gV^{Hb*;}3c}<;=Ory9FnaEwTE1F7(SoxWN$t zp=X{^?g@}UmX%}8F&vg4#z374M$*Ki*VHkDia<$vtVel5la8@I)Q1}rP76J-wz90U z$MI3;wmWu{UeLo~!u{(vFgGYQk&C|jdf>+7w{p%IY=ZncZ5eia)sF1H=E`4h%Ii*i zAN!x_=a^T=oDAIWd6-uRe`4yAc1YHKt3htvBmhG|yuab%l5N$ohIXXTFl&qQhS&Y@DZ&!M@(JLGmKZa+u$=uw_eOv;5|yYlklU{40DM6bCu4; z`+!1T&vMs~CmekN2~x9JUSPs8WRBv3Nq%vWO(DgjYnjmesJGo=m-De<%4OKlh~IeT zz7Y;~Q#WB)?ox&9hJaQVF^TglQ+d!I#k#<_L3R(OTvomXjP&SsZpCQAM?<!n z!Up3oJowgCPISZFAQrBoCvOc9mjrazEz#7EoS9fANVeT))3TK4au*4_G|ql%>2z3Yi^*gdMsa-01$0q8JzWvk!PD`(Wk@0 zs1r@|dXc`(YMrv->D7>PREcjW_5cIT8TInAtlskX25)s;2HZIDt+eFzzRh&2x`3Dh zoK2LvLzzjTeF^xxn}&VUeTWtK3lZ(w1nLV(F~EC}7yxBM_ff+v@X8c-+yjnioE#h` z6EJ9wlY55=+RE?)L|pO8FFXLoT6Cbh~w5b5zDS`SNg0SjIT{!qvE(j0EFQ z$?SvVb6gM)25y2cdw2VQ76Hu>_&&;He{obx3oJf#D)!DWHu46FQ@F$&gmDwi+zyma zyc14rRE_Q!CZoF~d!nB+iU3Z8&8nN)si>I5%m;15i?4N(MiKaeX8`BpLz$wiC+>vgKBVDHU2BIbYu&AqwL!>hk{oQkUn;zi!c`@8Oz@GCN-P@cBb|&JtHpYRl%+ z)=3!-bF=^*{#A1^`yZc+jr%_s+|G_&^FKX62p^TGPk+UNZ|F&E^#M8n9yY*YPNxao z7v`o_{WNto2S)Puq)MlGNpX|x6MI^|m)~bOgm}{5ppbU_%~XEp7wIgMfJ+)^XoSj9 zaZk&Fk?10I;K;ATZq%#Oi+m|{gL-Ot+q%ETfku^MHtn>&N*@3CoT8dVT@D`q-qPZ; zefwuX)UP|n8siZ`j%<`#9j(A&Coi`($svy%vW{x14OZCKs@V} zSyw)wupqaqm+V7Ym*1rB%UM;f7Vfb|xuVIC{dzcnoj%H3n?66cQb;kSM+)K5H6Jb(#D*MY8`DY2)t^-vneBmkppDX^=nWWa zUUFn5id@FTtk5Hqx)lLM{%%(PD?$<`3b=+1!!KL z9I_K2WJ@0o(CFj4P7dz={m4DQF2Bte;R{enz?-+(73?^84{A{=j-18!Wg+S3080yOZOiPxB?D%F-Z&|N8D*Qs@mJ+ciQtQ!>uetjNytC3!@d zj6A@Au-gMJgSCaKW!?-Qu<6UJYYC8mQ{lG5deC^MNZT)f~EV#?M0U$BkZ` zf69S#z3(OtGVt9@dYj&dJ*N04piGYL5CuEhsJOF>*IWTH=NyJE^~7Sxk%>LHf!v)~ z|6M8A>a*=%?#oL#O;H5SW6Y5Re3zcWx>UCgh?E$DsUV%9V_m6^{()`AIwMFm81w=Ph z;JIL$;VsJXpf?`vFy5`@a2r?L+vZNNw>8hnchU#$ObFsD53MWWqmLl%-mOpTIP9$P zZ?e2$1&qf{B=2KP4#<^h-FqkDTwJ&flrQGl6Kbip%o(>{51J5(5$7c({XjRcT1_`1 z`5Y0Ut;f`L3%H)?y!&qII5kA=Frxcnz}~HGt7F~V+^+oDc)5{(UNkhV+3=MYpkXI* zW07ooAixcSzS)6|HUUdjjsntOH|zvEf|kV0e2rpnb@RC2k*>_|o)Dtf)*jBh<1h61 zsEjr+OR6j|WVn*o^tW3x{yT*0pg>$LjwWIMv*~+miXMd>@-KK3nW~|6Q#JftS9LL6 zQ+3-2g5A2&50kfYE9rpUxy&xy4$cSO8`I73cd1EF4lRcdstgmMWCQisL@_(h`%FcB>FRTs$wGKL> zZ6mmnlHHRN96dJu9Z(aq!=p7Dt3|J-0dd1WtUS0lOU;arDfeX>>?PL=ngq;<2fL)K zFu)jlYc@0j8~VkTy@U;zU5gPT`0XPz{&DcFD`QWJKon?jp?k`{f`QQzN_~ES z{nM2BM7{NRv6x?(Igkc|Sz))-3zEuZgV+Y-G!iZKANTkqyEEG81n>Qyiy<*tXRHU+ zb9w59T?$0(MIsToI!4J)0!`eCy^y;HJ_!A${aB7=EZ{Y5-KbrIjd#YU`nsvZ7<)WAsNK|8v7(@-xnyBATuy5Uu(pD;r25bCiRW;(%uxzgKFc{+& zZs}$oBfoTH-VqkSFCgbB$8U3Tfdxc_)DBX<$3_6^SPmsy0Y}3rPPVA<6RSB=h>u1*YQ5+V-t{Y<} z})uM&5fkPw3N_qqCk9woeTL{=U2V9?;?cY zek7n!xo_O2dx?74rWzPU&L=`)mGgYFK{L$3JwGv~u2{(gWA|8ezZyqw%OJhC~ATy9Mt z?XmSUyG}kl6t7qeYCBJh8HRJfeYh^*DC(<*9EB-hu1Vc|qp0hH+}cl8E+;Fpo$`W( z+hx7RM$dbn-KCmTHS{iMc0foI5jOu;BRmfy$A*Yb4OVZ5N#MFn3oO9BKZL7k163-rXUr8S zYbO?B4$Al%QeTo^IFc=$U#3@_osTn3VnfPKfNOw`$tZ#vnjk;3u9Hkyi|H|9@}Bfa z6=Y^dd-5~pEnjA{tWrx1fLBP45QNXr?+gju;?h5(=>o22`FuxjRGA3&S0>KNP22gX z0)l(d!%KN@w9ow^wh)IFL@N`vUc9zjjayzDZX|7$=k8DaD#F~h5(BvZ8Npw-x@b#` zNYQD!hkrHTm=%e4FXtIzk$|=T+Z>!ij8X9UGe@pywB1AgaGX3SRsfUnue6(v9U7xc7x@& zsnzyERhpq;hCzzymr^ccJN3NAI$x>Inlpsb5nk_j|Ab40yD^*R7r?7$EbDMuEKbkX ziAgFC^C7qd>OozHh=aFA&ze=yEm%hrD`dBVSExf=aGJ>&u%pG@uJ%av3i-6^?fkBw<>a@72j#&>iY@>6`*PP zjE;?k3kmiQ?qUG62G>+Uod+?*QS8~gJOz^FIGrNHyk7RkT65!Wyl>a@io~QgLxNY{ z#=aFKqo(u!s1pJEB!S4%m&~O42xTpX7V^;${y|$X1eu|B?>GVq$r9W~1%4gff$!`Z zzYlV&^?a&`Br*Rg&owB5o3Cz)i`WhVBhdI$5Ko)>EQ)U7G?|M&Wd$kUXe)tvLf1_~ zXH@4@<8TvbpMp#7Mrh~`Fi|~E1@xB1gQ70K;wrK9tpc5nG#ccv!OoHW<{Zo9} z&BuQfH;go4U3NS02>XSGfR)Zx3P8_cHRe1VL@2RW42zW8JRCyWcU zSi{W~JEp*KZMH9RT5XG(@>8VqI4S6La?C{Vr0pG0;}h&%$g7H3Sv*QHn<(`$PKdaM zcqpr2ZXG$oL^XUQ75tY2s=(BV(HFV{k0i}X9pu%KHoJ70aI+nMX!WM?r?+RejnqG~ zJ}dG!???~RCVw#)aED|jl*AnaBW!JuPUBe@d;z<%VvrmIP&A}IAsVeBy3-AchjpliTDC(j`t zoGJ}B<&GjELb*w;JGP)=0N-#FqSUK^W*VXmiGr!2tKJWE z)g50a8gGnJ%C&mJ-4%Vljg)FbRO$~*%6HrYNgv%N8|sM&W=vfay?C*N@(i)6KMR0D}uoC;0rlcpyzj}d1FAx5KxgvzptnwUbSDB`6( z7%W2?K}Q=UO$a5*XXne|vUIfeY^e$)dsR|~I$-x}W{5OVopr#%c*kH{t+`yIO_uxM zhsURYE6PbGK>KgZ1D!Rtj~<7g(hk9#9_IS>x|nMp;|3eco0QxpOCmcK@z;RGFyJel z&L6E5%$l6Znvq5#6iIFfC;AA9B%4Oo?&CGkV65)1xE;xW6`Hm&7!Tg4MX|Y+=pLKKDMSLsjWMHNB#&`XLdxAZG7FGGqNhfqI{764o zo$%U2le&Hx28nn2ML7ikx@ib=it3ckmZ2E9ei7Q}K;v`!y$(6T&~>afgh*#f$->p; zaNDRmqfKUJ{-d`SrK@krsqW;sA{#FA3pc44mO)A_cmXmX0LPzVzV!}c>|wV17fbYz zI1>IEciFPn?e_6?52e^2D)e_5y(#koUQq-KeLzjC-u=nB<9V}W|K9N6{tm(dkZr|v z31XUkj(Wa=A+arHyz$tx!gi-sUK_?#yFJa8ZuXw~njDL>eV*3(gu3*clv}`%Sd2!- zx6<3RV^!n*Xf(fMr*HG+gZl?xj1KN5L&3oMe6%+@*yW+#y$@vXJ*JwG;otqD-@#y{ zC5Z|I6y??sU0B>kP=Lwg4oY9>6?!LF8U6SOCNFbqVf{4d&{D=MgNC+0Kph(Ws*`)J zYuJoyvTqELBbwh#1}+E|J&!0yI0wvD_qy&B&8Kdv5WDf;0deFyo-9PK2DsHcv4=aZ_e%d;hPa5pQ4t9o~ypF*6TD{%kd^Lux{ z`nS7Z{^P~y%lrR!_p4D_FWz^EnysB9H(Ja*k4%%}wH~AiAmJT-_Q_`tAMB~e>$B~Uh-ao&_Excdg`4m#BHC${cePLch(4lb* z*|tvt1f`%e{CTkkQ3(Nx*vxm=TcQ=CA~2G5*!sxl;va-pT9CpHl|aEXAPdy(^Q6mu zHK=3YJbwGNKsWYXT!V1(>tMXx>_E~(-n?G&iR7H_wlA2}`*G`Yi4IjJhEZ#o-(9>Y~u5JyG1YMnl5{WkLlqOP0m!yC8y zG2xG$DEyz>$t^pbJ-&Lb&Ni4Xn5G`5^2A%#l^daN67mC&6zhPPdah2~y8My^=+2Jd zUH5y8Fp83Kr$fP{BW8T196xn;WEHCk93M-B^C>_g!+kZi#gCKjxQjmI=AlP>;fG$g z>kF>L1)!n-)z4TQ;sOlvtZ#8e+?C)<;1hi>Xw_D2N>BWNk-7GXf2ANj#|i8B2>*E3 zK-_+^Dx3h=K%G&YsoN0+W^_2>l3@JN46_!%C4e@R=-C#m+HDlD%_(n%vNhiN+67k? zja#guZo+yxfHi{BI&1267$ddxdb2(`5ezgJ4H* zo@KMx#?^bnu)dLyIrWx;-Gy+;oQ)N>nB)=ByQvd(S|V+u_GtvT?eLxqN{6J~9rS?& z4eCA>k3jX1A{5JxWTp}YBHy6hv3rC$(D4DLNavv{$*x1)?>bEKmW6@KTQo;rX+rxN z+v{VvCiWL%H8Cj45WSXaWZaFVU$^ctIrCkHw#YODG*#Lv90grw#k2=sL(Ai2Z3YWA zGq@&D>BV6m=eZ5~08P>vKR(n*wbBfCcSey7@d%Dj*dBLd_sj;c3MA7zXd!41 zx&{k@&n_HG z!HbNX`-M=t{p1pHfXseEQksIYgfod;mPvPkNkX<-jdXHkAfLTucUqMFbq=tUQW>w&=KQwGRYQ8w0x#>^mJKfW~n=JQZ90GWCL@Bq^#p{*Q?W{H#;BR z-QRd5S+9AQ5+oRrU3XSqChjpbm1ZKVGtPGMS)g+ ztDwt1+wlUI76sna-6}YefoqO;^P)Us=gW&Z*q^|kHi6Jdutcd@yiUB11Wv>!CN4++hQ^VFa^8az!dC}yrVT& z{0x&wVEc2X$>j@t6l>E3a(Y%C^ zkhrpHr@{nR?6*(H;UcSMnOuwfOh4>de{P%uNfu{({9AxSU0S;v9jF$Xki?fh@OHKGFHHS0w|WvH<81}+dVWV~=>YR$gJ@Qm?Gy!pEGe@1@rE^sLl<<*8 zIb#D*MZZDXEt3ss(3l7YL{dF7E!{J)3%-j_fB24C=;ll4WP8gdYvj{Ll%;j zz`=$-gcuEOn^G1ukrBN{#5?JTaNgNs0OK|hy&fc?dmjRftSFRMp#f?5k#;FI<81kf zjM)4-R5BSGi!Y&W(mwTud0RlFn_RSnB!o_=pTVI{ep8?4-;C21=d9cyn;YfQhGn5w zZcca(a19Re0WfnbQlSa6$_3rOJaPs>?h} za!T2ks9mO>vMPCOu6oKuu)ys0Wihnw&}7jQM%6YddRJj&HfmR4+eC9~xQ)=#gq=Lx z47+e05#v}xbrHwdtWmpp5c;wITh0dg^kmgVUJ&&b{S)x2CgCjzf2?al8iteInl+2I z@%N>g83u{Pc|lJM+!?w@TWtmY(guez`4MiaM?!h38k|{y96F-i(+tI9fsWx$J(muc z6unk1S0l?Bg>Y!U2o0qJ)8oLA_Sk*=)p4yA%lwe6K%f z&_vr5GL-$Oe-K}FOTDfu-LqO3h7C|25Oxj;df=8EKGBQK*DoDmour3JB{MXW0x-{G zSG@UNiDO{A4@l0o*mO+9%c`;#DR8gDo1MXJg!b2 z{{0%oO>wguc$XDu!n5JGYa&WB>g!SFy|teB-WhTE0QaJ+GGMFUUG#~)b!cg}eP;!=r^1tW*E3~t8xGpc&|VHuX?Y=H%UNMIunryEbvPVnc%S_px_D%C zl}!)?et#IDt@2x7jc#F5Xml~Y(gp!zXj-xw5*w0@@n;u+;o$w>eZ*8O;OdMjiopgh zHB|Bc1d>mkB_%rSBP1H#8h6nA0Q6$$-sJDlQtJC)rF<59*wre^A~mY0gK0AEI7r9(Ha3kVFHn)K98Fd+uS zzAZA7YmXe-$td6mk$kG&D8v$C@{U8@-^4v|SrTG;QSbX|NZ0NEoBJ_O#lem$KBh-- zPFViFwyw-nh`fL?O7{tN7vi)WSBnV87$&)5FyAau$NmIESwSqR$L>q_&lY!h3^ED* z?F3}}9yULuNE_A}d}b$+0)HX+ZUT^qS#n-pLS?}9Wl=XyGe94yDTem~uzQz~)R9}F z8bt?;T}r;b($I@|OxR}X<{q7}K#aopfv^xdD`E6H)CRe7fy^ru1H`@5BW~+Q0oajw zkZCC<*%**Apg{r-O`2naRxnoe6lDY4NE64AQtvRsOy!>TxzY=Fva2htmVkZ{Maa#y zrW#?)ixe$`FvXN7>B_h5xNZ!ArW~eci1{wTvF9md_|6LM4+a({DVW;H{eVJcA?;Kb zy93z5U8zelA+PB_k(GE_%o^GGz)tdf6s0F;Hk4N?u9xNFhvFNsOOLlO@S|ESXj#!{ zikd&ujs&fcKLggWD_r~&E)=@I+B3`%W<)6D1*#JpRHKbnI5G&j9|=B&SUmJ#$T@_b zq(mpnNY$#h(g*e`0byw^!2wSW^@3&1qq}Og09<}Rk-&)$Xa>MX1DcZSBkl%3CR$ZM zu)(P>uPCUL{t&#}Zy`-0>=xR2co%>s$NkqykQDRo1GQ;W1^NGs0rrj!m!$G;U+d1!9TIM zt$>slU_p##%D3Iq=)lt}*x0)j-O*{yTcNMBO0^v&!+jlZUU|Av^K977Y3}}Kh3mFE zF=R>|>eTSu0QfQe0kC*{)xZ%`larV#v_0}a0w}SJ0%&!bDBFSirpmyQPfB$&hLW*f zh!j=8E?s0y@R1)N3Ueg0b>y|hqV>ed7QJ>7Pmt#ra91TqTs}xUDKh@fj{W=ruII?) zxc2Z#tHMx9xC+$22m@skQp#zH3+8K}zT=>a3TR8+Lxs*je~?uhPBMALsV-BN#n80K zIQk!}iv=P%0h(EX-V-x+9>ASjmkB6V9FL#XP_|H~Lyq>00+z%!sJQ{(gDc)KhB>n_M3S#-l>xIpHq4}IE!33Fs zra2;L{(e%!H~Z86Zjmj`ZHJuG#PM*MqW1XX&9-!=j*)sXumE8P<6v`{HJ%bSsx4B= zT8xqAHHD2L)goqtAowiQ7<~;`RlJVImt)<21>srtEFFBt#pTtB0>-@oEJ3YfTFq>- zz<>*fcM+HE9yOrOtnrxMTbGY;*R!3G6W*MGn_=5WxD9w9_*Q*2)LA32Uqcx;ZSFro zJU%E2rTT^=wbqE27t(GISYxTys9z>F@ z+1doRZ}u-;tSwtOUf)$CG9q4Nw2#8Ji&BqpxP%wl^MY;g?(+fmWWYuGiAi%|)>rWr zpcG>)c>2zMiacXjMjd`=-_ad*6kIoE7n#Qj+8O2Oll5Ca*_3M)Fwc{j+ZX0i%xlYo zkG%b(@U|r=grBLA$?@O_cT6ClUfA%Y$g#(SGzB$A)^Sk=nWTG#7#ibc0Obx7E4DWJ znfJJNYxdTBZh4=0d*PLFBY})Bh1=}yrxXX9jEGLUYaQ$h4!%@*SQDLYk{)e%;?DONWGE%T6kIWAU zv8K=EQ+u6L4+1!uzv3>@3A0+6#-ueSs%2sDI+sZl1#@sCZtlrTF93&qq5O0#3ZqU& z{8Eb5L_Z%G?{&!SNYw*FHs{Sk;C zJsA@iu+kjyYmwns_aPJrV1WxDW_9F-c)K1U()PygH0Cz$04Qc!I-#NiI3!i&JbBIa zyf!=e6rI#j&c~bf6FSNh*olnKki6!lM7ShQGce}5?~o)nb|ituYccJTqleOWom%}4 z6ay`v?T4TBi2=kPB73WyZqWSP?>aTEkW>qv;jr}e?&BTwc0f&E_8vl3yb*vVm@W^B zIi83|

pyB7d)n%PL*?wO9NtjnQz_u}VqN;BM>1!d>CS`gJ7HIH*xSA*6MTp%4W) zppCB<;5=IU4vj$LKS6JAol8ALYJe0YAhJ)&z~yeom|19>c0%LMn_ zE=@8*D-(Y2ki}f@>_&asv>IXn^llXDBH7uJp$Dv>`^&mXt`>7dW;#~kJH?U%6y4zt z2ISg-C#;$ZV>B8ibf_?o4}zq629|j9W6A?qFVkgqf*&3yUB|%YXIEXciVNc1kjiE>QOmf1pkaS)oBIQ) zAKQfQs9~I0V2+q6>vAStBECm*$wH}?8&0pWC8BX{DIc{(nO539newJ$%5AP{rrnLp zyCp(^8tLLG>#mVh)R%__gIi7VTb&h(kUa=BQ;U4j9y0_lY)iY2pcYTv7@)Rq(j063 zkvF8mMT;nVRxp=FLpuy(J$MD>yxGKXMRtjg*C|Wr09r{JaAx6Q9B>2KS^2p3gu_97NmbevmeLcF!cI zm=~<{^8gYo|2-l~psAnvdh!ePzd=>uEp(8l zfhOr|fF-o;JG{@qH{d7<=g`ZTthduQ7hs@9Q6x5rZMAJ?^usOu@ef%d!}mGCh{kw# zbU^RD7gP2&yRJ>#s8l_e;SFT!C&9F=FaYbAQ-r=k0G!WRt9`A z6J5hChPwY(4^9R06OTrpo53&{ZW+r4b&+VH{{~<~ zYGNe`&+$4!c{|?w&k1wD1xeZz3UZEYvjComuKet2XyAIdWT2jMHOA_5c($z>#Um?` zdpStFI&mz2TQ5rTO5yHv*iA=0CBZ^8WGu3Y06uj-PRY$$CU*E>1)BBl=jso`U-mjp9?_o^ zHS2go6K5<|n$T}8%_btrCeANRM`RBVyd$a}OSSQh*lVcMq(p1V$hkd8h5)32%O@q; zno!ub3QYHrC!n9@*Z&y^Nqpjo(qm4gNm~qAr z1r$k6t3*?wcT`8ooZf1_lvaR@F1dA~3jw&c7FXgEWV{NHq_J0x*T~okeK_}HS0~Wq zZ4)-n1p_1({`NeZFW_3fjI1&guVb8`;5v~t)3o-kIAW;7W$&Z`$DLy$@0uN-)4ZS? zM)!llA~kDbHaCl$0dv$hb5;7CX-p12Ve+NR)HvNRnh{)I?24PS(u)iHgQQAF&cOqR zr`YUXZ4lP^BCR1<;HhCd_)&w?@AX@|>fOXs2&P8XZnbco&Va89;`{Q3d$GQHXI7;- zRzkiyGOhvPVC8+hCJYO-W+L3tekVzLd}8%vIP}YGEhaQC0Xa*eeyV2}uR-K3X~=}; zPZ$!yEJn%rzNHuwQ{dHIKY5jO{(r(+4K2iS-6Fn|{En&Bj~5NVGEjk-D|% zP|u}t5803+mwpMQGZM@!_VyB^bTjp{N;O99^uNQvSD zh%FGvmyQ+uikX5{wH`6o`cgM7?aVx9Re*m zTLmjPCS0T2lHrpPPADX>K-gj2vN}PG&wvj`0ZKzlCB38@O^H_$jT6kLf%Uk0>vZN$ zGW}%L5>F0o7)sv6wW0g-GpVULu?*$ZROCe57JDbdCxVE;4bjf@7d)n{cTGM0;XB3* zrH$kM`j!N|#`P0mJd(rqQPU?39I3ey*CBQXgLiz&e*qHJKI|Og*FBz9Np2Dtn&P(G zYC#pyHh@SP0*8TsTTs^FJRvJiZl&&&rc)aS*kP`H=DJ1+wIK*+G$9m<))`j;Iqa#H zG3;Bwjv72n>*)y!1v0+qv;*Bf&2Tv$B`-2`@J2xGl7l_U2?VW;AkD*1@WGf=sG27L z*&QGZCBr0~yB%-=CnR5H7a04f_S@6U{X6Rj^FbZZ0CRU1To1D3lh42Sa-Wy+7x(En z+2__+e8#gXqd)@@V$N3FJ)KBw*E{8E&SXkq4o6&KRL;x!6wxmz*j3^I1k9FBIn-v7 z*bRqvZJ?u$p-}j2oU0JF$g;FQWt7IkZ?SMJTTw+4x7`t~P%5S>`0l4@B9W7xR2cyf zB1i>vk3kUtbHk2lTgK!FQ_G+pqUZRUaXh!P={*)sAus9xK0&J<*aGl&a`XGC&)Ok{ z5j+9|R^Ss4Gs0+8Iu#!70nansrBQlH$3Y@g7W=7#jSJla+?%>|QwD%63FIMmr=JtQ zf(!V&tP5ABD+36|Xe9CT=h}Ngx+UQ3WYEOgwHL%VT9_mOi`AseBl&{?u-)$$ld7E0 zmCy480urK|*c7t=Aj_h815itfgI^V3^acY_Hc$1;x7>AhnQ&(sQx7x4P%G@as|fSP z?5cD+{n#zVl=e&{Eg-4XJ-1Zui-E!VA&>0jvaH_fAX=Ji+lSY3Q6nSlGucUmjB6I6 z5a>KD#d--ysV4AUP9nbDtqE;rp>Y(anNS48XhAcUzjKiXfUG5T-AE_NfMRd6tAT{! zOwOG|f*L&%p#BE9%~g8oL!1=Em~v#z~Qr`b|R`7qXvTn(=siG@L#IjPf=7hI9`p-2#xO!{+J++fS8AmL?KlWwp@Z)?^^8 z2hxi}ewp|c5_cxzeFMX%%{%WsZURqZUiGuW)Et8~`fb**l)&d}KyZT|UxxxFDZq+W z%;`8g+F8-_=^jK*#4f>n`DC}6=$3xi>En-b*jnKu+JyZ;8LeqQ33^(0Nh6nC?GqBZ zZ7JtMH-ZTqx1G^Eh9*(kBipe(-?6c7dX^m|)s3Sy)3gToIl@^$j&kAzrg{D^K)OKr z;iCSray$M#ik-uYdbsP(c?I7+o-fW*cs!&Wp#9w$@eM!M1Q~=?K?c#p1k96-9+PMH z`krMt)51NtR|XifCmtC($R#Qp%AcLQps7i(0|Y!C5QLjag@+^>onBF(YE90d2$*tF zPFE07*nV;E50Yo#;jj;x?f38Fyh;9bgs&-)xj#o>oAWHM5_cy|G0qcb4AOCZan}se zjIlP>DGdgKM*l?S`XqU$3otNKM|X~p{KfJqj4{9igM>K#a(~R}tbjim z;}bVfz_+Bo<=5!hx6i(N_WjG>zW?Frv*^{+AD;Xiy&E!km@oObxbirD(1jQh9dMnR z&%Z+4kzTSBz4J1#&Mb_y$Kkwr4Y_mO8ka#bU3{>EB}c1#3jUXF>&Q<^*g-#S#t4`x z#5WtSnZ^Kg0(l^O$svWpBO<>@KxsbJH-_b7@#7@u_K6WoiqhRxgp>xilin@?DV558 z_a>8HC|Hv=f`p;rKykiTU&qtlF!Mt*iR1RX~O+Ji+#nen6scgB+iWLR>< z2AJv#!7IY{;~gY7Q0weV@)iw;Ab@2j>b?CBT0%hgsOsx1|ewLg2cq|;>4bClBg>l`5+kKKsE3< zOjg>P)LPnS$p#Vx^0a0X5WPR5Drd{aX&K-MLJj~i#a&0SWdaf8ycqaHcS@KE40Vd<*wjteOKaMTk#-jabkF@pecUe_P)OGFq z*9=`>T-i;4dA*8kczQJiW|ZAeXm-343NbtI3G74e6s>Br&sdE53?+~0!HMNm6dN8s z=4G6~w!R34Ouanek&tN6KA1rx)cko7=m@eL z4*wY6QGq1cA3;V6XasN{H6x(BzB__+pLD}F3Js917A3bUUPz|?mtr&S!sXFT7U`0_ zq&>v|vC#{WQ%Si&-;;u!sz+`M)@h)Chk%x~Zd5P5P!Vl88Q4q3>syu;p?W}v+%Tms zJXy_M!Pci9zw}tsQq&wi_mZ!)NaT_`!@?;;!iQjYT6NklqS=HuoU|(CwHYLm?>oiU z3OGccf&$L08c67Xrij|#q=!}xSYVDY>Jtddnt6RJV84WUD_!!mU2#r{z zhR+G_7*~`x3>jD;iPmMQSpZ>iA$1n``_`g9=cxom!h(GAaDh)#wkXhk!b)K$gQ2T9 zzH<^0|2WAQKOIAl`5ZQ2&YDDpGI84rVLgLHq7@Zu5zS-es_x6C9N!6Cs@VvM`EJ2Q z*CRpmnWjza(ZSJeV3gPFKEU!|$lmb&1D1?xr#hU>Erou`MArmcEuf2#GP>luA5~NI z5uO})PayGu91!ydR5m7&hqjA!3KUBS2Vb)}Z-B%)UyfR!BAGkYp*cwlfxuy^fI&hS zaI7utwZ{%-0sI)Bo`?wEg)`HCD`cd28g)lme8R48z94heFIs4+*CDLsC> zQZQdYV#G;8&>T5MzS3#mAAL1?@5Dd1mCm6WcOAKAD%t#`CHV~Ww>jp~5hR1$r37nqSD>*7ed zjuKT}oF%O3-YEI)d&s)*8ywTpRqD&*MF!g&rgH+4W$)z=Pk$IEPk{ygjbxJFh_J#u z_o2f3?l#6O>sTGyp2JC}jgC=CSg`~d_p;eYNrgXrSn1~@@N)rH4-^3icZfGCaPm?0 ztHrEJr^vhglBI6}f5cJByLBaZo=;r6nsA zX{acYn{|7*nVhf~T~-`Morygt8rO3CJXQ5k1n65YOeZve#0+;FFz~su(9F+JFC`rxdSZRh&?k>_On6Yrh)LOWPH|8_l z$PCpFkGSrcnVdhBTQm`SGskMOt@AeX=eEn|0!UEZwcf}eJ>UStyaKTR(P_rtK7S_Z z(ELl#lF)Q%W?0@_7!TI_WdGimU)}3lcx)^#8HqJ!l&P$G4yGCtSnpcZ7DTiLsE^fOhnB zqRxtpIYAe>26T;aq8%VhIOg=Ve)pPkjzsi>bx81)#!7%=YiiH~D6~bOrATv`Lc9#p z0g|C|5JIMzH!KM)YF8I}4a{R-E9g!`eo5?dx;Uf<@y3~$A`W?zr2z66uq;5Au&n35ZSHKgfD>H>=CXVC z9*C)vqVOw%g%^1Fw%c~e*7}aZQh}fP!ZBF%)hVLzk`~=|R z9bOgGnj5Qz&^W``IGt9fy7H4%kehH&)|P zXcYw;RHpSpsLAi{D7o9v$}A<1d#sgV-U8kqnwx{D6y}?C7y_n-RgY5<3liv`^{-Wdv}2V6b3s2#qLko+pdcH{`fX*muf zYy=O|fLp**TXbV9Ru`P6duMp^2+T6mJFi9``md%t?#FTV>;zx9pC9_W?gFUGRfP#m z(V#P_>+i7wu=o9x&7QqqxH|)^J3aWUfApc>1Jye=&Kk? ztl{t9PQn4g4}uq1XNN}Cry8xMnrebR0y||{6Y^0aKgc05xjt-0Ba_SaPT;fsrTdxx z@FLmY8|`5z*66N@S4OX0O5aAB6Y%YJ9Nl?3Eichbj!}1Mm1k^OS2r5)Q#-i72O2!v z4QXo_w)6}$u+qx}(!*mghgdgXQx{%fv#;4Z%sqDJ;HR=&f}8d00oLQlCh zjX?Ir2t;sr*E~bPrz5fZMA2TR46oMz$a;$3ml%Jf&7Q6)Ybu*n98%J!Eplnk>%ZsI zX;uJD%Zry)mbFBgWOL)l*YX8Iev&!|k<^emr_p?Jmd}CtkSY(kl7dVS;1W1cB^xS- zPBTVkP*$d+n)3{iRN;q;HpSf0N5_R<&Cv(=Vu4!nFdAfpuK`zS0iknbB!x^WJdNwh zbOmKQ^31_40TaC<_ob_O7CW0jqUN&_5;NXAu-+z5LDy6iRK3JoB_}?E1xME*c}42P@iW=!d-XVSjkBjRpogR(j6VIG;xCQ`~9j<4@T;>8>Bi<_@=a#*ZSjf>#=B z6y#I`b?7e3aM@5#I+w9!|5QpvL5i~bWx{LQ+MjgV`SMGDT6-bRq=aL*rFkaxFD@<69`R7Uq ziG>bgXB;=fW(ME&=f%&|&(NwyK=vED<~ojbBFDHOv1Lc5LxAv^&ly2vVQHwFZg|=bZ1N76Mv+gLDU6i;9oJshtRpX%71w*RPP2u)#vV!0< z;tXo?SKq&fmOQ`s^4Bg4(O^}mK$8jmgf)TQQAnDf1iwY_KW;*sgVno)`i`F5?yOhk z`}_h?t|*bUBZvRWsxql%YoNbx%OdLvxz_dr_B=Rd#`X!^3``U`d`=l_Cvn`YyAIt5 zXDd*O^)O=yw2Z&Anr;E?RJmIAC3@%^*M5C2kyCia6SrX@ARa;yfgN+-?kByA^sP9V zIhu0^XsjFcbTwI`hbg#e!E{i?Jf}#k!qXa#e~0&tmm?rK-;n#!Pww#V9zTgsb+Vh7 z`P&gy-RK4nvlw5WAQt%)BecFJ5A3RUQ(2ck&c?k6m*J7 zPY7n6|IV=D72nfPV%)JiVQx-QiIm_K=Ok zkeegu8{vpPYR>*n&`m0~gC0b`VJW&WL^Sazo3xi?NOVNkvhXMW=R`E4)5Sf_@3Md^osbN zIVNREo1HmM^urS+?@~VWprMDngP=D36Kf~HR#m71bRGa~167HWFF6*AWN z9@*Ol$7#99Lv9Hi`&=~`*-AQCZV9{5Z*<)7=j^Ma?R8H9pcI)>P_=EC4j7({xzm^h z>q%IjmzPeY$*f8Tp7|Bz&qz=i$SFmP`V(SMC-}YMaa_1$mo_7 z8$ZefNZY*>3hr|qAC6C1-xIEyersgDN=vHk!Q%crZF{~`gYrtSxESaJKj}^JNGsBL z68Q&XW-f6k?vHnQEiTck1%_%n`a8{r=O{s%`F8S;!r+r9Mm;YtCFv^(T$b<3Nv+93 z5d^Nr*}(C>Cbd;K$vp}tQlSauM>nkqBsW}^!&AiQ$2ctSTfcU1%4X0>USqYj(v_pX zK3|&&JT{f6=CMsS4U>mo2W}hduYy^lGz=2@)u)9ST_hRQxc1$XAYx}S^I#S3Y??SX&un*mZ@W3 z9qa3Mrkq4Q`8OR&e`lNV3y?X_Pvg8c);+4=&=1aNJ1C>)^%{E>oY+PpRKZG6O2}3R zV!%Xq`3wqXTSgbbK zSUBfb^E^=RlhDF0kGa)mv`kdYcZUy1q}8sFoIxP?OYsH4kOO>tTE72KrPI9Zf4Z9| z61!3@(;2e|uJ8jw208xq)$Xgkhp*n>-FvlsRlO=+ot@n2+ph>j%Cz$7hhHh|lHnkaF(2@QIs<4X^+G)QO#b@pAt=@#>{5Y;n4}o1rKT}zpsF3)f(qV? zbjCgatUa=a8-4Wv7#QaAGQDD0yL6V+LJ`Al1htjDdhkFKqE`1I@TquJ`aokMsMIrIfpWLeVGUD(X4WvR~Ra5Jhn>WSCtvU|C?GEz@ zHN#p48#M)%XJxrGzhx5aqf{V4^&^<^Ltp2)eFv!y0v7%;_-1f2qyg@T{<_^e^p42_ zr^d!Txhy~;A8PV&jwpw;=@U|oxPQ(e6OKkWeX@Vw{a;_zrOFa>&D=5ICzvO%zrK3O zGyyMKwG^6A91yKHeAvTbf)()&GwT+dD{A?lK;mBD2`noBI=@Y;@keW0^q+=8E);J> ze!@e?&j_pEShnD15~s7Qnz@q4QWmVA&|tq!!75-*)mw$(OKTv8aM}fX27@9pR@xYp zM#q%=ZC;+Hb5Q6gMwsIoWd7Sw-y+O6n3({0%ffC2>`x~I--4grnKn=9)3KA921~T{lu`J5r~s+Ne6gr2W(RWwe=eq*BQ5A_8Up9B3ElC`XXT)iR}+fy^*VE zvLY8xwoRE30ps099iX5Y3Tg3`-+>s7;NhJ%_z&GjR8dcgG6 zHh9E#_B1*B#hx0C=(haw5K&TgRLGQV_xlF3s(Y4pIiuF=^I z=8fDW;NNcbWKV?(k+5A=ia43$UDvlu!oA}k@^qg6D?>bt6ztsKzP)e~r9`4qvq0G( zGLktv*53P=vtzwhlRm1>ngM`YTZm(?*V-`>K(rdjMJG44ch$&?BCC*bqVGg4$BPbA zhWKb;wblOYaM8Pxr-%nT$uI!I-NmzWEV2OhiP3c`v8)+WAHd5?>F?# z#EmB;1To*Mg&QNdTYa*B_u#9$eO+JJsf^O<6$POb%m@s;US!^ou5^^Hw$#)ix(VRH zylg#*Nx`liBdt8~_zSR5Z}Wxc!R7X3TeaNA9+x%g0Xp~a-rkoUPfD)}xb_7LpkN%*PHRDgAUD`t42y_nc{G_uV$@>c9@q!N8K^VFCe~nz zfD!G>6IIY8{-pn1tXf+0g|R?a9R(W1>mE8%-5VXmepICOz_gic&LckpLbGv)fB)|O z7m>TvFNmgG0||p|>BNg)etAq~Uc=X~(Zu)~mg6j+$uq6^2xPwFi<3 z4k0My#szi2Erl8jve~zmL)8WXM(dyJ3qv2Fq)gZpT*K{}&~&ezOt=Y*fJX4(M9)36 z!5m=VxGy}*ld>Y-45*Xr26r%6(=o!*Pv(?#4?2aF5DP+@vX&=$fsMGa!#1JP3Y6Yz z2&B;w`;-*oq8{pt8Hn66DCMG~;{fRZ%};5@>^<*9e6H%@dnd}v-*7j`;EEDQ_Jn8T zDB0d_AEFCWog>s&6&cXYIQt}vZ_d#M&pxsHn!XiaEEEj}v zUouh{)g~C7z6PI9Lj2`&f1wh_J*LHxPTaBv#BK{}!S3{^7g`yPhvNZFjo{IQN-y3> z;D4cjr=l&xcr%jVxeugTlN@A4l7shxE(XoRi>qSNj5*3K=3PS3K(*l{7aeHNqw zr+*kuH|eiiOUWki7=utS-H<}z+sd)u6lS|B1lo;04N#rl{F9wIFLsx1`)14C{ey$A z4veCprQ3kC%UB#@v25)GCaqC8jtXNtlIvhYhw(ZpaF>c13Q+Dq%kWj z0*ru9CB{BYE}XQ%PVDurWOM8^9Ngc1&JKvjx@K5b(2nX~Guua-XWNdPyF`7`2`=!&z_yIl49qw?%bYdthZG3tgmrnV*k)gVw%RHNNv2Eg2PNzU38o^B5QTp`_~ zN^w-98G(3nJNOHoDeVLG0+}HIIO|jc|LayWoP=1v<8&i7)`?S1(B{x3?`yIyN5b!P zk~_)YF^8tf=mQ7%A}!Jxj0CH$li?6AxdpfevBj4|B*_;MpsAoTfOp1w_i5(loY8H6Q2GEUlr2-Hsg-+rLPgI!=DaFe_JCdqkxhF;mp$uxTR! zjiw@w-aU7-gRKxm@<3yzXw2^Sz!#=SW$@!l=h}>h-6=y=4{%+9=xa#TQ%^`kj|MNN zJ}rTxCK*(wdnGby0lz%-Zz_F?Wk$AyAyc-9C1o-WRrI9b z9P1?Ze5z|-GpnI+9*97~b4{uJLg!IVV-g1*<%GU05d(s;ZXoNEUN)MI2Kr^BeQ9KR zbA)#~Vn=5&@if9=qOmR(0Ey9V zkrhOO6f9rWN~D6^VBkq;nBvcBCbjMkTuo3>0$eb_H2NcI&=fE(9Ta#SA415-fNTYr z{(zsT=3{LM@-HO5A*ha%Mwu_DH&LByiv>4SU|WEo6wp(nyD)jb&XF#VNTQHkt z70EjCJ+kz0x4mPTg5!WF&sXY>=ZpY#R+tBhf%ZifBld&gaALEf*Z2kPyUL+tMoOhe zL98wn1g9C;osFmslU6rEK((8KXHhYccyT;v@#z(4_!)kexnALFM9Z}aWfxWZ(BhKg zIW0t%DBG5CIAAElRCbyL!}x=V!tnp#!8lZ*aL_ zTPwjirF$*RrYF(jnF0?|u(Do*CW#4d7k(`KJIsPf`|;ec$Gl|*9v?pHLb}K$s#z0U zP^xk1gJQsFrH`bJ5x_@47GGSlu|7U^)Q?ep!354C8Zma{SuUMWfbk-`M9*%-Wc)Lu z*9#1lO=-;p8NlemNe?bfnsIhI081fu*s`hiqU%S(p2?C

OMjB^m+c(h8&Hy~ag3-p7cm0w~KaH|7g8$621?TK_d;&q< z=}voxho>TU9AFg(Hi({ED@_(t-J)n6cmzg7B69)<;#?uTrZRKssiZWK5Ne?JC zOdW6AvN5#FcwUKe0mhB#OVu^8sP~4XF`Ul-HSsP6zjbtRt>_oYX_Qs$X2!QE$o+tk zfUs&P)qvU1EBQqYcSs9$kz#UAbiPDB^8Ys0>*oSk0e|^AS-Rw42(1>y6G?&7S5`>( zXe$F2sy=nqesAHeLm(wa5%E*ey2~4Yq-`AE$FV1W9VfN%vNX#oekrtE6n?uEpo{c= z{qXA5s1L9rO@_d|={*{c?z{pF69)b3!H-Y-UBecze}-oJp#F52SCR|*jVJyAx^A0C zjb+N@n`2kQiM@k*0VRUufx3Nj+=0XC~Si6u+Gi3@)EUye4v)lK+k}Xycv(jfdo7(W8MNqY9S`uFkcIen$!p zC2I)Onye6zC7G@;xevDB3YBMT1U8e#L^nC$O-EZi0;rV9S!QW9Eia1(Hz_Yd^gYW; zHk2uC?4;(@)@13SF{n{X;IGDzfFWI3ml#KJ*rNDz6~dzt%sSw85EK-9jx~_-7@N~y1igs)A^SvEXNoQ& z@XuuBl({elx4F;a&wdZAH6-}GhwPleY*r~++?VGm8S{H!yhkNVKbYVSjhZ0t_*%pI zCDk`%XGJgPcq)Q4&s0Z_b!b6$f9BoGDmS@s3HgDr*A9)gp3z0Kr@X5W*iYFLx_$US z!2xiG1~k2=X+DPoFwJU+s_8@o)7Iw*M$2P9`?Pvun~N=kEqtjD)inwZyRqVRRa(_( z(6i;^K<5o0sxl5*`M#b9c65w!e&gT1%R`X9^P&s0g4J3D(J`>sC3~|MG8Tj{38nFX&z`l zaE6}YNami;ufSt;d(3P(|Ngp#sS53nMA6E6c_T?{kS+U>`0cj5Ya?E9sH>e1!Sj^k zHje!gEGe?NO3dZyI9a__|E}r;ejvua+TNBz4*A}Tm5J?qFkyVID!H3R1Q{gs@f(nH zeqH?Z>v=kPJ3KGlCVlabzabV5B9&@ z>vPWnsHP1NZ+Fc*!moBKIeeFwfU4rSU-V!E_1ZL_&=WGiE~*^z%q8pq2`Gh2^?^V5 z^7H+ElrZq}@^W-}fSCec{Px1rO^)v5VgD zXdjYWjnFfRzJiSbbO4!%gtiGRi3bxwxsf8ajV-gJbW`9xZEV~%hbVv94-2}R75x2V zg-XN-0S4Bf^YuRY{Hy)_LGsC$`=8%;|JmO^`0_6P_lwUt+YBX5wHwA~%-J*%@QF4E z??_GJNmz6WjplwUK96cS-m)Ct9&vcVaS7PFwd#Rf)dO~7%i_%Sen}~yI6JzV#AS)Y zGoVH^-v@m!ekZL0`cBeKy4nynY(RvlzhzZ22gaE=OvG%tYA^(5kPh~RF0OUUU^la$a()*mEm#Q)n5!Rv5H zg%dW=Pg>Fs*~;ZQO{Y^}5kff_GB@FUPrc&PK>PDYItf?3Kz8#-MKV7TuU$B)ssbuN zP`r$OU7Y2!Rqz;|V+Q%W{zf~(U7$VPfLb(}z<_hh3kVAm*`2qW4BS=JUNl^FJ`R7T zsb(RI(dnC_A=fbEHF==cO*r!}^Oa+46g+Uo-Zk|{$*!S}HI5~jWg{pS z7`aYYrvyIegwjh4F~Ty~k@9PJ$@8R8({Rg~mVRF57#JJqfBSIbp8N7PPW$AYxH5)wO*l!nP`*eb6%>lhV+5V05Fb=A}s}AG8%3-T80XG_XL+C1Wth4OJmcFK*_03Ey&V9xRwDhj0xZB z5ZVg4iND7sjmr7hn@Amsx=tTm!@eYr^DH3o_FQ-}OcBg+qUh>ry~ZT{E$_80-oF3$ z?2K;^V2xZTPAO#_&jE=S%KZNi?voA6zjn!iCvRVNl3Xx-v(a}2u7cG{*SzD`6cJ5_ z9Cn0AUFga&xf)5T;9v!DGB0!dQDH^p<^fjYxT{0>cFB?B?Svq=SmruTlRNGQcmQR&AEp??`d*$I; z&=w^BPP%8dtQKRuHaenJq`teiqx+m6N#tfa2V@6!JffMRK*+N^n@=U6&7BLQk_+@j zjr8*Lb`8VQ@^WNbJ&Khtjlg9FMKa<11O_q5(7jeXOXlL9gdWjE=OHa)u>#HHP_JjG ztG+5+Jxej>AsiJd5USOJkclOamg8}A$SA3*Pl)xX7w(9_`GdOd&?dg4p8M#AzJ&Y6 zz?BT>mi~Xqd-LwLjci}^Z}C&WOu9|l93%AT6(Ia({4Ol>xc zQ=t3Js{>x(Kcn&p($ruID|Lc2#sWDRma$;4pp^6rC0?PWzeQ+Mhv(vPL=>+nT#2A!DoDhdc}bZV}<3Kl2rta+QSErw!7Bk z4IQ!Ku<~plFi)pcZ-CJD89Y&tE*sRV}) zHy(co$g|P|FO;vJKTj0u89IGuRPA`ZsqHY)_Y2UxPa6-R*^tIU(_|g=rkc%$9))*< zjttHTv0y9YPv7{69zY|;6B6}_sH$vw-oPpsyZg~yyRL&$BZtttZ(vKf(~(w{+qpjG zNx#sWQy5=KqGMS4rB9|@+qXVNX3EYMXNZ`AqQEHzF1b@Z@X44VY$+R`%^525G+R;} zQ&CQ+wF|dt-G2w=U^xIz{U4q({v+wQ3h7EUovP1+A5E3q!&snubnKi6prs*Pp({y^ zfwRc6nObJim*_a1kgvmJ1#VbIM6w~gom;pJCf(2}Fyivo*a2-Yitdm|i=oPs^w<$I zG}M(>-BMz~r_(Tf2Ur;nt${AjZ=Zy%;>L`8puGjwNZtE-Oh}f8>7))Lf0h zU*;HZAd487h@l^TJl;}(iO4I)W5!ua)}QiLpnI2i5*#{bt!!4ZN|**;B%%Y}@y}u8 z^k>&A^E65LF(BOP%~_n(ZjIKhX_UwV9KKw4C~L^9L<^#hY0UZJ>22pHZQNQ}Hjz9u zHjuVuA|Om7Q4qws*PW>8JrQIAKP21XsvJ{NjLLWPIZF3rWnJdvy#hO--~{G(=h?+w zFgISflhM-97CK{Wo7Kp`fe2=S>a?x`wH@(X^sB((j1EpYMt`AlJg_OD>&okWD6=Q; z*yC6}6Jzx&7Q}?CaiU;}heekjG?-$b!YnO88cQpo-00Q>L=>V5H97;}{t|R+L@c>7 z%k~g|9Mq&F4v@+e&+0&Wm{)xNeJ^!$e<$%{7V#V3?MGtrCgiGQl(5Y?ziMn*=3; zXM1*glbeZQ(xMIPkHh!w1UmN9QNtWmTM{Z@&9}u|qK4{6$Di{WO{SZqcK&!tQ;b=6 zCwsO)FRb~vn5l=ms(A36U><53fcxYFezG4NT7B&9_Lr`9w>TFaK?Otf-h2s1>?FU0 z<3;>*&A1|QKdhz+hz$UJOEl%ncW)oaDNie(6$g$iOw+3uZ=Zi4puTU@`RNKmp1%f- z#Qe0i)`4Spd;7ughnM}jBS#-zZ9jOhGX!|{KB46GkEudL>1?gJ@&I*W3)2-q^g2X9 z+Jf%htJ8;(g+{>=bq~CHnGNoG^}-+W*$Vfq>I@(ou;tckxdl)GE*X3SlI)LCBdzl! z#^Cd!D+Yg~ol#%MM#+JkptmBn@DKL0K1qMDr;S{y>1xxm{J}nNSmA%6^Xr+UYi+w} zkg7_3GapY^h=e*tOU|qik&Nh0j_-l4{BJ>_15Ws@N1x-qs|pu6P@`{1Lg#r++;BR8$+ry1iE0CRtge*0chMzJ5G z-~K)OzP*{mPber{#yWP~&-};ex37in*m(Yz1p|?oCqW5BvR!AMpku;bYWsoH+Me-u zAxRiGaPXYdU@c>Lpb`e?OW_g45a%7lqBu!@B@3o0W1ht?M*M(RZ!dDn@ttI|{0_1( zpncm*cJc37K5=a4o?~m^7os<}LZ4=;#Py%&q-IJn2#*^^hE;MEe^y8>9r4ay6kn}H zcjKZD))svj7u_{Q`O$W>A1#iO=uNL?8u%WQX?jVBX$C0(M+`HV&)YrJ`N)F;OmD8X zIPHC18?jM|v9HlKjlL8R^eL&ds{%VPBo$PZ{d0vDC%|SQp`lgxrLcfy>-`RD&H)@1 zLja4$Jz!ly=$9=Q+kLDu!dhTVeB>W=9*BJh&~>2hIbh~ty_J1)&+EPYBX;k|>`j(d zyJtqh4#G^$q`>ejH=an~jLP9OOV1U_hOpl7EvVmzAe5&9{L=^Kn*47nG&mNVaGLmZ zY7@ozqC~%DIVUZ26eZ;*cym#HTqNhz2mV1_LDeNaz&^;|tEH=_)gbFVR+vtHP-T!W z){oImZjlrxP8Qh%P2#8q%L&@}S-zSf2fi4}&tYCwtE?K*1^q0a>_2?Gz5D11fxD8m zz;PVNg(JEqse)XUNhe=YU?iDW3xpef0rh4+D}4%y>88`}pvG(XzB^)}%K@1?@CQzm zzHwy4-;eTzS<93Kg%<_BsD+-M1eu)UUd zTwq4D$Ml+bMsHa+@@}sd&Kw25>{-W<+TI^a$c71jmG&S?XthKi57f4hJkPa#_w^|G zu1G?8oShJ`6}(A@*j7d^u;PzGzH&b3UfM$(Mfrh_?y7LOBWX1m6wp&}`S^ z5L@7228%rOYk0&swCizzSw#$ptT7O900C@sO04T_fJq>+fX#rsvg?}00RuRh9~lVU zTLT`i1I%qg%(YO)8?q}lLWR_zT_a#fnSNntA-KVXs@)C4s2bg_l_+{tW9YDhWbPU+@(@&7MW%B8) z{FKj5KcU0iCvXz{1VZ^I0REeGJDYMZ9{&9+_urp}U%Afof&pZ6?7#LqME~DLvso{B zH95_aon824GC{nVyJACpM@(Cpoo1H_X27e^u&o%GX} zFh#?h0h2h(!M@M)AdcLigDuCJUtq|8{#4!TJR2SUegEjwzWZC!Bn-MxrTYMKfwEo| z@cvzqFYf@_|KW?5&kvseboi;??|y;@M?W3G-(R^BpAS!o2Zl^Wh(Jjh1<}t0d^<=> zpAb?33dMBOB5YxHk-*jM9n)s%JYRq&%l#lCDF!-DZbWAWkCJtoMRWyhL;WtJq;+#+ zQ2-WTXU7TlQt3#``1C+fVQHLjgDiJ~&P0ic+z25<2MoLo5Cz+01vkjn0oFC4;=d=y z=OHIRCQb-?muhMdpiG>QMgrtu1_90<(`?z<@^i>1m{!teNcX8>_QhU#+K^<#6~5!K z%iUEogsVnB-m8tqWOl%z)LRyZvN$)5Sc$iL$s@_g1|rz7ZLOx&WQwmwbdZ_nlSq|ghD z77JAh&~ZO%Dy$G>@_67!YqWBDp))#*w85+f-kka@z~*h;gqCHZFWuVI5T!iGMx0=< z(O;CtXg~?IB0}X@lP<|E)-EsB3gi$Nidm7rRtR|Aup+B)MX+FPMOJ=AVwBHozvWmB zqScr+(+V`ZBznbM!j%Y;I&cV?W*G)$qM^u66nO*JbK`js8VmiGeT^yhq6B(4MX%wq z!|)6c)ho8E2YG=I1esFnXc8W{)hI5SG>(Ia{1eq+pL@!*8@)N3ElNqB-(|8 ztU=ma<-#&%q`*i?stGpRvO(X!roo^uC=3Q2S_o1+%!SZ61oRuU&n1aa+jc!jOceMW zaFU>{Fh|Lxn7xJDqGJ-k5hg?rMRj0E!t|gt3+{4RBI5LwyRA|2g8rs%AdK?kF3xef z6yf&p$O28+3}HP|Z<@5E?nHc$zhT4(h+fMW>buKl8B2UuNOq_xuyDN=dr=W?4&m_V z!#5hhiFxH-$H9%f;y+-b9LZRPeg&GEiga?!y2z&O0X>rJg+A-NX^y-;I9rsLaSk$IMkEFK`-rqZe|U^(36$?4Md}Pjx8qh=h1r zv?KC~vEUh44GJD7Xh83Dt%&CLA{5xL3$3`qGc4&;OyapH4KCNF?18o8m+gE}f3XsS!fq9bU7`Oo(u`s3N089GE3iAp` z7nK`a798B6+V^9MjH3SGARIl3vNB5ILA_6AsauOUccRUc*bA9TUQB<0fdX-IL7&?< z0M}CQN}UYR^+J|2Cn;nz{sP?5Ag+(~zBGvA4CO9xGXXpdaCBTP_=DpN{aR*@!lGU{ zNG>WhnR)Q7OX94wE*t zfhsbmIdGr|Ss>rWO5dWZ=an7j6odIE~5ix7H!|NgYC|3c!{ICZNMdD&Go z3w}q{&elyn-=mO`qyL!g%85)pc13F zb*Cm1@R|iV%6<8o;v8;oa{9A@tDadKut!-#FG7AXq0|(!VzMH6Uh6^#W8|b9C3*h8 zp8x20FUVF&5vbtUeu2;_3Q(NQy>NJs<(n-bn&2P?V@rN8#Iu-br82{a$S$RoPKb6A@$~w-y)FK?dw4rjGafOw_xsr(b@) z^VOHb&v(CSdn63J$LiqhKxN#G^orFO6P_r26e6Wfdm!4dXHiAsr~X3Z78V0g^;1is zibeAI_uwJADWxGa8e8|zn#8S0%COyNKe6gBdc0#`7!^hK$G6|Q>qk{(#@^th zk*soky+}Ufzy9h-5o({&$e)!b;LZTF#fgO#dWebE`Iib_qpI2MCU=YW&#QigH4Jx2 z1>|ggR@b_iPd2Gs0%d}Hz<0atnANrfIDnvHQBUd0gWW27$s#!p z$3_vy`%9E@&ATt21N+OZZagJh^?40`noo3|o3&TBoX4#OUF9vOlWD!ZSK`W8;cj+> zU4vWYO5e20!UXJFUM(7p+{w(_YtpO-WFWc2C)^!KyE1hO>V+;<=?J%-EsYor&pa99 z>mVj&mQs-c+e8xGj7UtRNwdHBtBrHMV-x;rv-U*06(}kF7*f^+*(3t&Zb^TNFAu$5 z*SqE$7(6{PgE%okq={`V6F_eULE;e~wKl(j%11tc62kziGe?BSD+Dq^MD(Pgrn?oI zp3X9YOKRewZbTTL)X~K)OBO`429g%LB7M34;1T4Qf8>LfpI4O=!i@)~k#fn>NUCvC z#llK{M%`;^_MFCbi_FZ@I}J!X^m=8x*uVYX>3r0W=FWRGkF`E7=-eH;5=R*U)Mv(; z#2YeX;1RFqk@-Ef`FbePRWo)PS0SPmRj~$Ujmvr^p`ZC@RuqNyIs(f%@(vT2_qNkr z<1=8P+Wk*C<035MIuK^ogfdC<{dQuCh&~)9RMT|VE zdJ&-xNaeqA*a5Uqli`|ygbkCxo^CWS=Go2r2-ePttp6XK0Md7Sjb6S=d+C)|v^Gx) zxd#6S=AXQL#(YI#1EYG`y=a7_-HdOH!1G1a+O%zN z9{FClzd&d3@3UbTea}(wHwrgxL^?kl=$Z0?YChP zJ#Ye}Tt8r{SW>bUWnRG%{}({VLUV@H;7|Al17UK<`iDiPKv6ARl^0CUK>%Q^eTB!T=ABA*Yq5{yr@ z(m}Eih|iG^$BYs#E3NP)#uEB3+?vow_CVZ^Z%;!AL?1Wjd_`=l&IZDq%mt7-#5oCtFroOQ z_oW~U&VfNaQzBK%9gHUCeYUb03*Z`d27oTmEFI7-()sLzwr-zZyBii4ZA3duE=G^S zE8U@nnK3%_lW?S(q`g|oi`!al0e%RW?XKF$|BwaOd_B7AR=hANH*`38@7hJvnbael7xR!Ft&x!8W8wc(ncW2_TU?+#!@dpw6$%q^MWL7{mE6#B5P4 zRtrW$dHot;hAH)u|LmlMt?OMf80fMs?pS$t0n_-Rm@QVWRvb>7_cKJ1i}50`MGwr^ zCIc*%hwQKL$Dml)B+FbE#X!XicHYzrBYR%+e3!??CBBOmZCq8aP;VpoH9w(UQI@LJ z>clafh)4ydZ$us|AmTE=%%k1kjQ(6@?h=_G2=!_ycxK+^m!<G zRZLyodl2b1>hHk+7MFV$`NUnrUu?TS-3fxa+cS3q=JWotSd5^=BAoyj!)SZ&7!lA$ z+bGRUz=t<%4Zqd~G1e_V&-NhF$xZj@cv_4@i)8b-OjR7Dv z>dPoyEemPh_G!m-TSoGyJ?#0PsF%F=S+O5#Np#whZukOcT2mFeU$T7}IKRH>`3pz$ z?1uasYU<_t0i=RMF9hsdtC=WO2AMNe8I62?C^`wSM$k6dUbl`24 z0$g#`@r}>4FgwNX?B2Q$3f1&C-3e>$7QP(m2jqC+7 zV2jML9B#r-Ghz`rA65c@Vy9=6Igc=(=69FD216_Z*vxKm+d9c#GgYZ>F?gzh#{J-n zy#^Xj(02xf3bF@|0SUHp{D&*W2y)^`H*rK^PQk%&#W(J1CEyTe8xy8m^cr{c4ZW^) zI66sSQOn%61tdm*qkZtj)2H3m8ZG@74_hWz5a{5XoQQU5^gI5w0Ib`S69A}72nXZ` z>>}daZtr5ne%XW)z{&~r!R4c#(EvX{z`u-ao`->LWr&DfX6wd>J8)Ythg)XuJ13vy zCuHn}1M3KX4&FVqDc1Hf=Qp>j?MP@2s$YK*WGw}w1MCV{_eWt1H5NJ zN|P=|$(UHQRr%t>2b)B@C(P=^d)MKm(}RR2Kk#4aCI5x653S~u504Nwmi!>fJUd4u zVcedKyP_>YlJYY|Q~+=eH}eG84DM0HD7brP=`oCnSD?}mbCQv_mAzXlJ_acA;1Ag5 z+Tgx#o1A87`&jQISGRjE$)_j)CO~H$VVNWWX18;fG?jO|Nk{Ks5CV4}J$T#=3ikWs zmAg}BQnUNwvj;m5A?qNe91NzP6%g`p5O;|b9;9uRLO$(Q%OqgMb5H8sx`Ub#BD@Z^ z^1@q>n+Y(e5{VyWXQ+01k-UZ6MOsd(Hh;wI01vuFp0Oq#&ySK@tOiu_aZqy30aN>&! zR_Njsfn?lY#ccSQyMK%6c{b_mo(p~TLh{qWv<0e>VAVM#vxOHT^@^7?EuHbkd+#>z z?3l6aRez&xZ_y0w(=j4u5D&i`O?@Q~=q(>t|CS%9Itb81nZp5boEn5V28J*7dy+J~ zC?)e58`PVQTa!*RvPit8FM^)Dhk*B`(d$mk@WcB2@M}E@hF|NJAAan>TF+GctWo(> z6Aj!`*~-7Z!QdvEsD(_s(>&gITukQpz5ME^`}+qiQBAMVEIEXPoiHd)Ie+?Ec~k57^-mV|h^( z80Aw6?P1gv>;_;e(*i=90(C|B{66|rG7EVP573K&xlB9SEFkUh{BH!v3QuYf5?tM=1WjMzAb)*e`Zx1BM8xyqP*K?ewYX|fJ3@TE6VQ?A(P{nz1Lxy z(Chw!dZ19iR}k@~8{BU_UmL+0Fm>YHhTh0Xo2gu))gmMeF$&{!!C|`akRsxi#a|Z- zwfNn~HxX((sK(7y83U^1pU?Y!zM|$-zbQ`o?)%cXx_V+sh~)ND8ycGDT>9EaE9=}X z3gC}1g?yh=ev3h-s%XX=rb1@ehBZ3^-Y};Wvx?MxKdxD=6z)zpOKh)oj=NI}hvMMD zBNS|In1gT%u9Xfnv53}^BJGkE+B9@7=a#*(Cho^2G zKR9j{j%1>$PowYXCFi-MDRj@z@`)pT?Vbz(jA5V_1$arU>^lS%JSfw71quX)ZgW)8 zF`OS3Xz+C3Y=e<(>%<9mKV+cVa*rNvZ?{S3uKTfa{3CYhJo|11oQCjsY@)4J$B?Of zX(0d6r-k&kN$38s-xc-%LA^!00U-ETo*)pN@WC2$xAF*BM_ZoK4+FU>VPvaW=rrI# zKct}CzkgXdE>bxCyYX`0dU?5Ou;%u++f(fEzxJbz7mJhDFRUXO3U~) zSZJW38O%}z#~y&66H-MB>6V_buD@+?J>0nNTZ$>u3!mKg_9Ko?pm11LJ_pjv8}yuk zo1L>`VdfvB7wK`jNGEQ51RkZ$1_p#b(kX$zxsxgz*x56@Jz(~79XE`{H+A!f3^rm@ zr+UCqCdZnmMyD5z4%&_evu@~=)E@T<*jZ$!+iQFG^$PL}f}Rut))F{nA3>uAHZ6!p zzsRes7A`_N`rp@=t(z9#Xz4qm)4wlE=KiAh-P*>`Gf|XOeYjQp_R!(kMU$@$?KQh3 zJPzjc+4buGtDDHO(Ltwh08)|Z;kpeKo!5>1`@?H!@o=7x$C&kd-d4j&cJjNW&R^}buMVrByisCEe}99wFj;m{`wDul)yx=- zda}^Hu$Mi`IVV$0krAsId3T{88JE{};gnG1{)eq%vYD1S*})x%KgL-;?X)z4qD}pW zh0$B5nU&YqhM$MK)Tk+OuKJ$d;h%J}@z3qSBY!40P2y_)aqdO}{!4BNF9btn;$*{e z27=z&MQY!Hdq$9p#sGUwp(IXDG{)Z0}|ZpHb$bRpyfvX=C3}$$hUNtLgqb zII}n@DEpZswx7fmk+*3h@!*1O1z8a)L8Q_X^R@x#v29rfjO_Y|0~Bb)%`!^$P#bMd zX8ZrO^RgG2puBDW(Zkl36-gn@CY)$;EuZ&M^(Y!SCroBwctkHf2-)qS>S+NIX$hG* z1kNf}PM#yDX~Wq4ehp%T1TB=NsSWNIZ8{!|W91GUTK1R4`h$%0_gr-8REf`kMi~yt zdY;dxaH`ec2@lM?@CUeJlK>vuM~`>9t+jq_JH~UNrMbaDBek}p&;_;gqxl!RV@&*H zIp5yx)=Y>``__DTyS8v*kaY2(1&SwjB7u#9TENc)({a29jvEz zG!soj`EtQ~2qC;e*=I`#2Jsf=^P|0hk^4^62A~^<-os{T@yGSeLYK1&g|_Y4cdyWd7M?zOh+lh;#IMAcKX3uS4e(@5#!3{wD; zfxv*su11{fIGv6;430_Q6ZEx#c3YVG5;0X5utl2yIa(r;0%#Q~230)_if$sp;5bwg zcWeL%TZD#nmY(NO=0vTtuxvt>)2LR|WT75rgxjJ3#TDqkaF2wh2ZiDdETLNs_EC); zcGQuR19FOMGF;73$3^!Nf;e!qk`T2_*ccVu`fV=NPJEJPH4m{J)vf&wEV~%B!k}V? zP9~=**vam=b7EeQ$5DqwR#R}KCNs%Ze>KmSm><_BNF+7cF*w7+EVR=(&<;0EZ`?M( zKVE;?9s`RS|qr1=GM$MLK8VdwZ!LmlpEtpd0ozNvM(sLunPLES*>O(M9gWso)7& z`+_G$G2`EUC-6x#*%&YII!5D3a#gGxgHxTso`Ccn3dpVb3yqdT^;~=n-t^&>%PB8=ZH@6PoU|3 zJCKc+G!BlMCDb`XfpI_OfaimrwUEvpaD@A;OCJ~wrWq#BJR9C3gO<)%pj`b6Bp-)q z)mvFjWSl>T<@nV+egWBL@cyx^8QvS#ELMA^{m}3*GFYPUOWHcQm-y(|(9F=}&jV&S za2qM93e6YA9NiS!_xDLh*57Z_UCo9Px_AHt^6`U*kGetJWi8&49dw#aBJ4VnEir)7 z1jRE9Eiy1QCoYbZ5nKCfG(kgdqtBl1K6p$ad^El`b+sL80i!L7fxd9OK~ciy9|$pH zI^agRv-3r_7Vt{nff-Y$If$-pwBx@y@fY_6)7j7Lo)+3p?K0vaIlZzjLi$pQ%FAi;OJG%`;iJjaL!6U zVKg;viQA{aWN{q0kS>}ilShLE=Nl&~%sS=Q|6RDQ(&@0D%-l#OYwrYWr)$sfpQZOE$-iT9jTm18a0Cuql|A@^Q+J zPeNZG-(o&LDcG=-&(WJ{ijjI~9GXc@;Ir+>&uoS1X2DrVwOrz?MFgCv9;$DSv$@;R z%iwM>E?G=IHzxib1;3DWl?g= zERwHPm8N+qdSiL-+B#@aJr_qx0@;iih|GKM*lruUu&k_s_BH()EulD zWY4djXIt0XWr?E-gZ2MdfXYZ#i%!;cK=^DEI)YqbccY(>lWdLzFRx+?JU9n7F)2J5%HJU=T+xz zyv8bE4FfgXfS3p5M;@vCbphyyZsKiKCRiVqz?!4(NXG2wxFw+4X-UDyK$-3Z*LJEh z>Ph;MR?(XGnb%;;6G9!agOd#f7WpM`e`#1j73yR{`}>hk$-mdD1d(m@&Zc<{Z^Et= zyp<=W*l+3^hid`HN?lbZLn)NnDKQJp8$`rP0Q>(RE>dZCgR z-=#@j;I)l0hhSvJ2yDw7Cc|`?5sO%LYvml%- zv1gNG+j0oINzmcjG3`|L$b!>*S7!q~C%rVIuK76nX;8wp^e}b$tB>yK{>e6{UI`AS zwC9f4ZfK-uMeoGFqKAh==W{_O^$Rdfo|(I_=`0QRFF=L9pxRLN*iK^VHyD( zqXAq)oV7t-G2WU9xZKRs(W!&H#1zUDU^<4NgV{WS9h?CwBE>(!VjeZpS$$u-dG>6g zA`OOE)EB+UbP?b-*W!2me2!Ypyp)OZjf{Xb?7pugiMnKXR-ed&i!9T1hbm;@qa7xdl0m0K2=eiel6+f)M%4m=dB!c92->pB%xNhHUyL++%n0Jv>L zB@uNlZx9XEH`^m41g$!uA$malJ$beu{U7|J&$!$B(toeUq6dSY+0R11;9h|H4gIBW zFqTRn2j>`bL>O_al3)R-#W~PR_g{U2ecz`ctT8WO*XyPQj7eIRjVO(xu+v#zFm3U3 zab%%jRkfz-GupsLn`TkRqiS`YY)S56xw4245?yW){v5YC>1kuP>9j{i=2aL>R^))8 z7DN1^sAz5Rk_uM#FtHopi1=gfTW?L(_Yy6z-Ai`X6l)2KYRv`>-Ql{#m(y$;9vWCGbWBMbkn%QnC@gu)&hrInCS<@b7N9c zUkM8+K}nwrJb*x6S92(keV+u4YU-Pbo>TAZLy6# z{tg6~sUQfL58ZBatbAvuOebBcfTjo|9s7C3k?XLDBA&y~Vb9DVWo^^__R7p#CCI&= zwSWm=58f29TTlX~?r+ zVs4hqUKMS3`<{J?!0@6zwJ}PLeAPAQv>T6rxyW@}i2jB<Mlo^LIQ*!Pu$ z5nc>v5JPXEiX6}UJRiHQfT6zNRSlre0LrO;a>*kYt8RiTj2&% zttaGbS23i2_1p@#ogJN+fU}@}fvaO0B-dMnBG-c1qv`@B`?ck^2aubG6nRAjukX>X z@87tB!(^B1@%LLBt8Ckzom|#0O1w#FRloK}IQepC@FYPI5>-zWFCLyC0k~kKfvuCv z?|^a0=Wa)zI(hDkt12EDGqZxi%r+K)PW z!{51Wc#zMs0`uH);hv#R=>M;FO}r}oOLygc>~!}$^o2I>fr+cD`S`3X=EbT4Mg#6k z%y?=a8!R#W>NTtjO(v7wF7i?v&XW zJAyZ~Bkl+rAY-$Ed-KaE_h6&ih(UbMwD6aNo77o2a=|0UA(kgjpf{*=6VwHW8^@djQ`vH4r zOMQy?WGWCP61)#XGHLl)3BlS6x~p^>_%&X#_`l_I(4sJ;r(u94va(W%81h=Udmb_p zk3p5(RJ45$b6())K{P1dK$5oIq`Xztl3yJB0#!?tm=S)5xn||k*$;D90qj#Wu9 zot!wShQ1`dj3mB(NhWl~NRh}?t_zp4<7<#kCDCBf-1u>-uscxOcZQa}3(&NOV3VUirZnq$F9EP%ytk$|{qqg7I;Clt3J zofg@a;)fPcKZxVG6VO@8u@U<*}A~Oz+tKU5z5{IpUjIIc`5(T*psmXTT^N`0K-p$r*- zH5+`u4S6yaeHGqpjdj*8Y41=dm(N5$*yw-glTB;$=r~Jp>fZY@>V{(GXe(iXP@^K` z1j7BGYE<6gs&=X_`c%6|MVXd4cy6&nm&ctW`=^__Z{Ya4^+x99sAtm()#u4`M>6BA z<%_%dd#0+X9}W4ypR*@J3=DxFZ}6y(sCkWZFDL=7vklMt47Z0dH^GSSg!{&7|Lk~9 zKzl2ZE@q*9c1Wx>1oaKz3MIJ=+;GK7vH)(S`C?br!V^!uaga}$V0NemkCSlS8h4j6 z8e6wIN5MJ=)$gg7OMKGmM}jSk;g{DY%XHlFaM@x|DC~Dgd0!Gd}id2z3G1B+Mt zGN|7BWJENwUT~+e;D6T(?y_&Z<@eqIM~b$e=AB_LU{pix#cUv7roU;FCa6!Qrn<^q zunUgaboaexI#Bh=+Rdlg+>tZ~jJ`~>bw$^#iklG?(wVT8o#&XiuZMGMvR7 z-+6PSL`sY6+4mY1G2gG*OuiiXj5K|>6+KkVz;%;$2nxSuy%1}JFg7!tzA|1w=;a66 zD~-luCmYrjp>WK~5{*f+>dS4Lz$wVa`I z>5Z{*CW@9yg;`?5o|v>11PQcE{<+HC`_I|GkR3%X5P$-1%Zn0TqqhP~<;Uzwt?%zM zN{D+G$9Grdu8WMqdq^2nf)|D3L|n^l@6@SVC5%>=qgUHWKJV(9B{OpjL@eA+zBKKK z7*EDre~lY4_^@^WRXuHK8JW1%zs(;)vdoi46g4F4RoGtdy%5!}I0q62F$jCs3F;+3 zfsDZ$lyw9zg6=6q;yE$Jh<%wSns(LfATVbQ#P#l)w6O53LH$UM_^khloK1vp;^{|B zdx}^C6Bbm4<|s(EVy#_0u0t}vM<|g?4IS~HPFHCVe{g|lM^=yH6P z=402bv^qne2RbAv1lcC5N>VWVV+WzG!N5x>*Z+W&rMnNGJ|_QikQz}okf98l`U#)* ztoK?1%91|Hoa~5ew~W~|X=p47lcnFz0786dXET$lsQKGY#7+-W-A8QldrF6c=h1U>2sVpIiRg9% zhOz02!CZWUoJwa+i`rIv60gN{ld^G6D|7>&<#1(d-sDlDaas$4MT&9Ht}XrJV11Ci zY9%Rvn^|m2bw}!Kp7HNy?_HcXLtzy-K-_Ss4qsSA^4DEtkw2?ZqEI<8M{NBLdV3SW-HDkrDeh)wC}sKr0^{=RnM*H=eW8TUZ@YNzcYzm_axnkI~S_z=cGEtn9$z)nOlc zc5Z2S$rBt6&g%UrS05Uw!R@sYAWK&JS>@b7c!63+lt}op8r6?$>Yak;~=CRXJIeAEp! z1i_C{t``px4wcZ&-$!`GG^~y2pkFn@CM>RT6eDmhg;xl z6uB9=e8=~lfz+!=Djw~?W8f(iBoqR>2IwEDpc`$XK;-Ttp(9PB6%rsv`b5l7b!UAGB=i@SkEtnE5ua#5?(zkt6IooLuK~1M6`-~9Mk}UV zq(eM*GFwqCRYYb#TBBH|Ew@J30xSxT$RN_b3N>35=6G~RIIl1$k%hG?$!D`{0trl5 z*GbrJ_%V2M1dcn@jW*TNwt9KAY@+!#aB%UyrFQxTQ~@SpeeM}Xzg4w)8kV6W6#nr{ z<6j9{!!8ZSGUHo5u(p<7SXkn9BE<#yQz0(vf6-T=v`k0|#p1u1j`=Sm`wSKHK&MNJ zQx~mz^pqx0n?kx`B7y0~SxRiE!f9}8^4-4aI9BU_dKZ6%C$^y>xL$cErZxKA zQ^R%56HVy9m!ZixY3)()g|{KGQ=FIIS;STxS>6=!cinaV7Lh>=yQ$UPx&z=^Rj%gj zRV<^hzDb+=W&MG!Td|?eEdkEtAYl6Y{k?FesF3d&0XFQDV5R_LirK8JLj0X!8=$1| zQ{IY;8oCo48$4pNqrA~cDnR6!u^6L!R>2lJt)!ePeGc&ZY$u~?IV>5KZRm(`kyb#= z306~#qzAMk+3F-gUSrl`=B0O+SM@`W0(!UtEH6U=yhlWeqsCor8R|@N;68pH@kSK9OCc<8FLi6LjK%9iX`4MBi|) z8YabTQR_3=jJnIAC_Rqt=!t7u489vCYIl;yYb&kJjWbN`*(QBQBozp*9_u*#jZ@Qo z92bRSdFE~6EwMj?bg`IT$-z*3rhvm#Ifuht$+?QQ*$uLeK=;`=TZ~Q^ua=Y@iqXW4 z4{8i3S54jIzAP^0Bk6#|_VoDWUl;xrt%SZhz@_r9dFikKNT_dItwwy~ny>loyVWv$ zO|{Ewsoa*32ChSNJDM}&H1=;;@o;gxU);^h5s-aQxVk+UMs?TJ4yc2M@tUmN8jIu?S`;N>4Hb%mq(PfUrShA%>!M&~F6~yK5FC z$`V{1uxL8%sv9I35xN2SMJO5Wg5LKLE$#P}l3KU%JHfz0q&&nS0RLa4E={590rtT_ zroyl$zDL2Fiv^or@3n#!9ft=^hIMOX|9-ObV6PRGuWf*441*w=%Dhzzu?Iqk+h?IM zYQhAWoWKAOtAe{#bGVySG8>=Mv2!Q>7i=kiu zp6Tk;-FC-U$qR5(PQJ;eC%_p|Sn~q11Xq;U(0zTjTrR57aCng&57Kgc=2(V7QJ%u@ z;qLa%_V$C_hub?3A3uCNgrctGv8!}a<)>~NqE&2&_t;=@ws0S8KOJsA9{z&)nELKo zO0R}SvxX09JE3RTf+abZdEks^4XRZvbR+_aW9Q%>w@i(^Y%8ENMhXrnn>$#&KqVlg z0s{Z`lLi0>`UE?Gr^j$^bx%9~9))$SL8=$^0bSU*tepnJmCqO07X{lO1KKN6Ep{Ln z#1-JAi{u!%sWg?~;%sriM*~Xl^WrR@PCDzqC$lT+meBqSjSnP~5~dZBtf1?X(V8^0 zve7y91g1KWIwYOpapoF@?D3k72MWBKBgO+X?qML?wRS^Lc}TJVVSyAb!Q;**n7|IR zhd>4fK5Xi@M5TQ5?)eA)kk#K(&y9^gpYv)?iwZP*%SwWuP(6H{xnsq!5q)!Gcw2|jtKj?K3ubP<8 zr`nlQG;SE3yBB04bOQGf&;d=5EoUU`X*xp8C@b&7f-_#>a3%N{s%B^bcb3=%833sjD)yC_X?erQYEko_-$0tmt$8%{(F zpWBeyE()5cZce9F&pW07#?6=mjmfkqXxHqmkm%fJ6u<~rcnub3Eelw(HUn7D*D(Cr z_EMDahW~MF1MY@+T3Z|zGVf!=2cBzx#soa?0ZMsYIf9k%sFg%%DdXlPaKrI1xl2$F9jO=T#}3mrTf_LH2K2?Kbqf z9p#tvX`Q?l-d9GED}nC4wmTY99yi}M^{IjW;~s2nsYEI!Tu-DiH7+C{0_Y0>XM~JA z-yFRCHbIY}$_efnl{w_LUx!>Pm>yoch7HqBSk{lHO=>|lJEkxIXeC`PotbPCCA&S#SX1TE%Kegrz z2VwGh|GG)|MpJmR;>aA7mQuzhFvBKt^INM%54|>BBLh&1uQx|`A?9T)=(E=CNT@YK zt)*e6xIfwOaIc1w2ZpoUIo8D;{&aDFcnS)#4JtuM#*Fg4XZacu(MqV(1K>sJ@h2PC8 zw={<{O(FLUoWdCpPUDz2PySv5*KGjrqnwPl;*kF@@UsdHN?^HReDhim`Trc_DrtPo z1hP{v&n&Z!=`m_rn0;)>)fiyLG~rDJ5udohrBZ~FqIggAwbwJ7NpT5vrdblu_%m_} zI0grDcPTnzm4g?6TPXSN22JV1ot>R8b{{-=;5DTu(^Wokg9o=ZEP6aGPC-ffWVpRE z+F?~tOgj?`j%jc_V;ihxj=6p9{sfxZ9#7M% zf~WY$cN8mcxXosjA7!@72$vtR%>sp^VvGXJ891dNUVCy3=_(1Ozs!JrU#j1zd=Fo6 zHU!dAasn*j$udNH1h~3TnTbe%rVcs;5EKFhAYb_c9uv$-QUdgHdtUTcb4aGu2c9uQ z3qsXK-3I}wOgvl;WPopJLS=WlAkj=d0V^9}_|t5FR(0<9tyU-=TE(ih5g8bAuXkOO z?KP>PwIq!L7-2fTw!pSvzy%_b%f;#O$vspEmvEGm{%Qa*->SVC1dCpazY;dBDGk8? zsR2cOk2>t>!1__&YS^K)Y~zpEIia=H7IF^9t__JqA)_e%n5CEBBJ+m7#@TfG0qoY0 z^OApm&xp(TX>s9R&*@z;)xX`ey-gSRCk9}C&DjsJ80Lt4HOZH-t=p}mIBi|bTOdOi zE9v$*!ckdg@>6r98`%~>D^3>>2J0nwcPv~tIIb4OdpPzjd-*syrA%wW{Ab``y1?s0 z>g~I0BG3E2cAqj3Gg~a4&nGXqY^TObE{l)ZT!sEMvc3=akxLf88vIh^bIuhSJZh(jZlDAe()#Q*$_xJmc+*I%6^)FWgBdfE!o!qp-$ zB21nQ!cOu_qyQGTrGfOEYYQCKTxb09b2h84rpNHyDvu1kqZ?P#cb^MH2*O^Y#EHmA z9E+7nGFv2J2itN_3e*6veF_rX;P)HOlGckEDwBwZf=WHWmLf*kUgP5V;X6Sx>bb9K zfXvpr6X^|o%FQNULSTqbI1NqT-?wEnqqL|uHB289I723(Q^XdYQ?-VvIYc{Qhu zu8uizeSibO8MXb6LoCFG=?OKjI$!9U>OYROu~icl=mj4%c}UlN+e2~x|D^}bbpBsC zYs7ff)FKT%Bl$q5z1{wwc49s19^f@9Lj(*ef?uNwnAl=)<;K^90Go8G46+py>FWN^ zJ^OqdypH*vTk?C3afkFCW67(nwcSV`zH&lPOd$60voc#uQ}7R~eb&>9{r|s|gWMyV zDMybYSpTNxBxI+&W0G(ZL?kL#E}zJdm$J*0!*F~XTewtn=C z4|#ZfV-PXEsFRzRi2OkUm#-smW{x{z>WisdUZ-+)`g;=TLl12B^4}fxr1Czt>SUUe zo_|)^xTJWtl`at+symSRc|KXW4&wJ@+_NcrvCpmnRnUY^;l9-y=xsz+=p*^2!N8^` z_yzb?B^g3(=y#|2IiP-!pi*U!X9xuFY0lx0jKSmjJvd7%UK9U$5aI-df*obbDf+TS zoS{$r?rbP;G(3K?FV5UCF!LNIne#lo*SNCNd328S3NjNJ?>&P>WCw0$maujGOIKDD zj2^GGG69@F|Ez_7{<+<&58UGn5g?l)6`x_gM?Z83D$N1C=`N;QtiWgVA83U9N6%!5 zn2QrK)Mcg*tLWqm`i7uv2$F*EXUFhCm7cpQ^JRCSLADC@bWBMHz%K}-R)7k|D%>r6 zo>NXO`W#wF=U14ouB-imY?E4nU&Ug?W&4dzl!QgW1n2z17LjCoX|PKpuZ8Bn`tnQ@US zR0_Bq2Sy>sjZ6_6Io2^oHNjsQB+sJQLld$lLZbz*E54j1ZtyxXRPyWnWcX7#JY8pI zbZfdv0N|WVXkEj1Z}h6`iA7!~Y}=+tUdvePJcdDDUM26^VN(8z-hXm(^3l{?K~qBcVzts5+aA}FFHlqD^c`i9RgRnUEQF9R_~rfPPwRZQVPdF7 z3z6oY^wtoO$YU(tGv4`7!1ioZ=UT!*N@pPqYu<0B3B)yk0|51}@+Z27m#*Hp$$qV7^xZy_953w&&ZU}29$qB3#o9hTU)dAQr}UN_c4K}fXQ0OW(!LZ zC|-dPa}{x^P_W6P>PL~Sn&O!kxGz?xX9}vS22ce*v>>LgeQ3}`BkFuoqzZiELlT?a zEP_4y=GBw_Q+2IaEhZQPE1jUI71#U>EY*&jbUxdC^k}DR1jCMObN$Fsha8thTnZff zA&MwsNvUwb2zqI3BAkrXe#>u0BlYu&@g2KoYW)H8l)Cu=MH*P`Q@EtC zR@hB6$Cb4ez+ejo-}VqSrIv9V&7{xjP{|FW@MXb)V9ZwG z?(;eKH@ew*pv0HU7U6lTSaM>yQrBCjFaSOFTHA(T8q|0^S5&Mw99qE?z+w{J0Xs+-B&g5@AnW;P|+>P;e>9I z$U6o+AHi)m21cMDgq{gvOxAe-gxnSy{eNrSW@FzXCraquN5PIZheWhLiTYuI8m3sd$^r^#QLZd@lr!j-rr_>rjA4D~Ad3qNq?GpFr?B zim%^l$!O5IEQdqtn&BVFmr@Y!Uf{+2wkQ{8;*rdS@t;rl-(s~qp03L7=R?LG1MlGU z6hR(dc=T5@DLfyMwTkCepyHH6&-2{aaGNJe=F4&A=n zWA8my*+R_ZNnT10w4{Wr-tOsz&sVJbnVlsWJIU^_0dKBs5}Rj2YYu#BY=?uuS|~}0 zWH}}Y*Sg0D;Sjf+oo1H{ilxT%HRosogdTx}h>t?$UUsr;c>U^XwvMPv8n9LYAttIKbd3bq+!38MjJVjI}&iP&Kxfi?mf~jnW{icCU=t}3^B_$Q^hm_};`+Af-*wd1_ z8sUPmPnawzl`U=I`15Bn74NgtSCBg=Aq6L z)6L?G={|anS(Es#5c&wYe#-O$l465bFGWqe$pHE&MfXFx!;cxz4K-H3UHiEU_7p)+ zLvbNj4UYu#iEcv%W89C??doLrrNn#lSQq|^cE{aadT`t)=ipC)IgpYc9=wooLl>NE z`}8Tvwt&5Y7c6e0La&t`8PePn<~WiIq=5u$aXKxI-TV|6^Q?R+mnz)cuHwhL54&sU z9Vigp>2PBu6l^zi0fOd)F4kxQV} zlMEt;+_m-c-P^8LotJmXH+6Fa}o zOHY}_v7fi8Yo%pe1dM5)Je8y?-ew28L#Vf5L_bjan~n}6WSC^G4ePe=gj@)eBMqn7 z5hI%u3KNWk`-)eKZx$X{5GL7)z#@@#ZPRgME9q}eA~>|1fL87d57q zHvB2%1HU5b5pJ>Xf_pOPH1id1e%;rH^7E+HBEUJC#^5&uJ}j0mU3=mU7VIT|zijR$ zbD_Z}G3k>k!N%_XWrUqhx9)-;uC--_-hf^GxR_ieTni^Il4z2Ytf0U;=K(WXCtk7> zUusGRs;}cI7Ap#s&I#O=sN&-1dIk7n2&iO@w*hY%JO2^A6xPp?Xy%a|c}Qm2@~oK1 zS>%fxakNmY2gYiOM6CQ_RR;)_E5iB0qfJDhhbqmxVtVAe!QBQq=wW~fao55ZJCC=! zEu+el?H6QNz_>d;Al=PZL!e;o%N+~BKl9h`-Z90Id{qd63kXH-m0K*D5cZu=;mV!@ zqvC=Bp);N@sL*J!10in>(=~+3Kk+lp><~p4K|Zo6M2KARWd%+sic`$am*o>d@NRG92&iSJ=J2*|pNr zF>!o>ec;-@!agEO|D>1$0OC2jl2-X_H6>ZoyO=s|y2T-p6T)8xF61A`)pQ&K@CjJf z?mw8HYi&s-bwqh$D_N-Wc?)WJks9T-uGgdBUu@Mx#1yQa4s-Q^o1ctO+>*JWZP2t3 zZd3Fa)GO z`Qd~6$1SFy@gCnW3w{FV%Z3?`Qh2VPFyEtCQc#3aw4Y3iv832xbW?e2LVcvmqONfc-9us_IMJ`{itkzyhE|m55uw835oLdvyFQ0+qY3)V_sp zJcu~{yt6idley9BI(TP*If32~;;2(F_Q7jMy*`l3A_@oj{2ZbH7)ujw!YgbF#suRA zmVsx@(bn&w3IK2J4x-vbGuH-t#L#`sF}02$fkw&Oo2X)|mGn@~@XpPG`v)Xt<`t{2 zuMW~va%yN}t7TS}1^C7_f z?9!5CRW~j_>~owk^&U91FU=G#cbGYI(jTlLxN8PNvCNaidNe$Q_vq?BI!@C z$k-h+xDz|h|Mxg|iCF3nws>T7WCDo)@NcaVncb&}5^xGy2P&UPK z{ycHlz=nWm{ypk*@U3f;T^rt&fzz^gXH_4QRKM#1JuW_?Wd}?vtBSU#^&n|kZ^S0o z?4ZGCEp;;T&pT{pil5VIax#sE0RZ1c$Kl_wHR1klpF zo=CVAIh3LsD1xl)dquwD`dZy;t!#Qanx&Ojk#s4#IM9g7O<{4;@zwVO4mn+QQmL%WP_-I z5`Uy@Pzt~5nkfr60I)_@CltHyhrua(t&PDW5&n{mj@cLj67KjlF(9=Fkl*k^XV*6a z{{^z56`1&kMCzMsk@#2Gf&$^?-wgWTy+@Ygg!@?s$xo)f5PjV~)yVvI2x=N)rVV6G=D(Jn>6< zIsBz6=8M5E6=yC>vda|G4R*2KU97jtuwt;sWRnrTaR2KkU%z_&?)@uwTYr=+K`Gn~ z^9tlwU+nqogIDkA77A|x*NXuPamX|Ih}sIMAZQ0(@=JCJauq)4BCC><(M!gIuO4>s z8Oo<%IjXK^$8P4@_uA-Db&NAJ!J?14ZkX;m#7Nt^k%4m)BF90y*||HQ z9ts7{l^dN%-tBwC_Q1`v8+8Z!)s>d#<1+|eNNKCFf+p03f~G2W_0hll#fIc1Dc!8L zID$EXHz(_q@b{kPJ4yhh&27~cL@~FG|JndflO9VPsCl8Q?CyRqJS2p**6eMg%x zF384=&UHBi6T1UbEjfr;^Z3HYXoVuV|Go(_ZfIsuQ9899j_kiD&{}2>9s2$q5xz~s zbDSu5DX-?_;>y$GW2HT)0;OqcQ11TGHpz)e8f*q?l=GL*5s?&O&=n88U?HBUE*u3< zz5I#ePj5VP67GWu(Sb6g(|7XVmw*2F&3j%^%8i9}5+W#vAZBnMYR#y2_2(J$;(5|a zdHtdunhj-=iEEB0h(hF6qiL29n?Ok2F!z>e{JH1n@Ll;j1p;?v8D06<%$jSm{!QoR z>GK{-5v>X8w#0@x`8&1QMSqj}bl8fH{0WqRD?O!tzc+m;PEYZ&G?a+|A;OUETCXEs z{!S+`$g=BO@uA2nK>J;B?K944hil^{%7V1QP8(dbm_Sy)#H&|M-gEDWi!wPed+uJ- zFi-?>apK_8NupKKKAEP=wnk5O=HwuG3=Uk`f-A`;T{3$^WYlL*pFDYNE=O1QD;EF7 zkcM?;j zlzb+BS|d!c?M8|^DEw<5{R!d!r1ZXNL=`BKo;zDaRuGwt5<-?`N~m18_VkWc?jFNT zR0!nkdYU0`kkSOp4K!*w4zdrhWE0{-Da1pGMQ4^x@^pz_Vap4^DQBeG{!)0!?2@UV zeAJ~nCA=T`Sb#r=UQEcpojTM4W;0lK>hgQ(uv-hJ8$B}$Pk|v0g0m_Dsd*{91SP|M zX;=&HHS7_{A4xxYt&q_$XJt>+S%^!NuE53DGSINn!Avl>z|u=g8HDKcAz`~G_qr!V zCbopIoR-Zn1(;s38qD&Ux>Mu)fIuzN_6X)%~ac-c{CI$W0vE$@FhOw7sMBt{C zW$c}eel)4>9Swo5?b%kygz;+S^Jv>KT;R(_o{zkTBJJ*hyGR*eBnLC0mak1=+>)^; zn=ZKp#|;b>V!~ZXRa1nG;nhEk3LdG!?4H}Zvq@h~D@O)x&|bovEtK%~!7i&E;m`mmxLr#^$bE5D0Dq9p|tx!)Wv z3Qpckp?OcM&H>lBC_f5O8W#(+0(qJ((NmCb4p0do^skuYCt!1?BuEj9QC+6_ zFDRVQ^k1#7s&U4Wbu@;e?eSxvK#=n{=7Zgk61uVK^fCw3oWU2xN*i?>g4 zN7sSoiqqjOzi#j<3@n#A!w9H63cUt<`WAnWXdurL0DfqHSD4G6XdP^SJv5*v_w+@V zZm)UmLSaLVpwg>~ZlyNG0gU`O!%Q~c&@$y%-Tl8FyzW0~6F+$m2H<38N8U$d zX`uDO@D{@%`X^3|Daq6=PrzBp-Rl$o1ZUj;q(d|!eIP#YPBZ2y8>@LKwg{(*h(9mD zmb-jMi5SS(Z~W5roIGgK=8*0stV463kLZi5VufrGNcQgUGC@TYIWb607`K|A&%{yb9ir#++r353Buz9KV6}oPi4-$6JL;4tS8lWCA6~sMr+|)oJapm+iiq6vH))&4rO

ux_0@7DqNH+oS!AekEOu+`kgA=QSOjz}L(il!q)jOCmSzxQ+Y`|*`*smC9G zyBjE3B3;Usjy7)DEkbjX0TzU?H(ZT|voHuZK9;zIo>%Q%`wjCxy)fwkU}HR=PQ$%X zHAMAF!+s|`TeCzX15skyeL(@Th{A^DIcL-Iy*)~HTN<})0}LK+$JjAlQ`t8hP>Kty zn<@N$z3nG%6Hp*y(}!_R`Ns8==!Rg5-Z?R=%qPa>A+*t(c`LZ+TQ;P}I1#^N!i+WE z+Es7U;mxGj&|=#?uto*cW-JhB+}WT&6a6uY=vU|qO&5Q4?2q*I?>91FPG1fvLvNk{gND$hD0viaXS$Xc(u$TgziY6FT9sUHZ<>4Uh zTpd!GBSey|KkiZIxy;dKrR~Pmdx5u)HNH|@>oE!pCU+9{;eeO`vu?;}9WWE(%K$6H zcbr|-WzB(X%ll~$u+fgGGDJn+nz)(lxO=amM16>@EkSYcs1y^!pvd2#)tlv*oVv(N}-c&y3tJFiwwWl zpaXRu42NxtcbTV^qJ9y&I%o*c*{DK5NX9eyY-e|S`yuv^gSN!WkH2=^lP61NSnWF# z-$jCUnU0snp3az_#yCzctlnfwj>ecP@s=*wFgr&&)MSi!3zK4&qR$ISRymRZL~$Wq zj`v_tOdPth(RG7uH&kHYZPi%!OR72|)GF28923xL%1!YE;TU?!tI27W?Cip?M-u=0 zs+K|p(WB5LpvbAPSAf1|gF_91h5F9MWv`Wcv~k@x6gX zha_C->@rgXkQ957nT`oThM?M1eSnGLZXpLz%(P! zEP?q_Y`A6i3%QgXlShN6*D9ehKu6<*)YHrv%`rtvv6YZ<=Tgsw^6tk{XvVWKQ~)W! z*;)tdz)1MOn^07WrKQKJ*Ma@54m0?01AVeH5I5dhQ z`fuv1A(%N@&DJ`3O9CgM4cq-6GF(4IuZpxV73fS@L6cS=(WGjj+wmLGOPmC#NU+%6 zbu-5-CePo#?5{wGO{#G=Ps_Z3`|Hup4yIQ!x}6Bcm{yefCUf(Hf%XMvitrI+zAEpm z<|}ozi1G%Fi1+WKvT!@u2)5QnO%H^VwZmoq>taEkP_);{9bA=u=3# z6cbwJ`93f!g!CkS#qtU=IsnqZC}}?<1Q)8)UzeXf{o={)NK(;adlKlL16nE&-&LjO z8BfXz{VUy-On%E5&>XGUBKrbI?3R*~SjBqqP}wBR48=LuAa>2J($(=BOCzM+?)rR3 z6&PlHZ$CrrpZ5tI2T`>!uh)H5D~IFz9#!oXd6}5uu|Fx)k28t!smGZQfJ-{3XZ@YW z4|cnB4-wn#SJbq}ccMERj)>m<)9&_N*h+Wr-%T(@aE|I>Hvbdm0-^}>X~Bkezo2Y( zL4eNMi<5#qG+sdY-ynhP&8`TNhi1EW+tMFq^>&?vhGBn})_&l0UNzFSiE8zb?U=j& zs(;7~QjK|b!Mw2!=X?=ZZ;?a49^RvzrT<9(1YlipH`~3ND~%k`!)Oe(9%E@>8EY!`fTco__ z%VLhUh*QR_7VOEu#fG3dB!?0VrAkZ4F>s6+3bMnFGuN5y16-e;B>9J(X1sWW~R zV3MPct!Ir5uRt~xmN6!nAw&cX^&5;CY1TT0ql8BY<^VTlGA-r^^PP~XMp+|k#lc$I z%J)Oifx9HUg3xVHt9^=%Uju|)f)hc{Y1XNOr1q)?l>{XCS0|2VfmbB?>7Kyci5|$p ztJnaZYqMbEy#Q_!Y{ZWT4dn*HMl{N<4PhiZk^pM7UWEdXR_}b4hlU8 z*|C+~0lqRxQmsRP2NZSZnrrGbSaIyWPug6AF%y}l>@0Ytjj<${fMKJ_tP=+ zM0Pi7G~Q>Zg-RAhwd{NE1C!UcwaFeyA7^nUSb=ZP2wV*1VnX(!>in+E8ZK2ud)!=M|OVJx+=6K~>`>2(*_(L>U9}B|5|{gZzQV+XgAknE&V* z6ALThj`($3^`87cLfAO%Dl{kkwoDE2pcq1MQvCAX{(*U_NIN;AhzlJkl+I^@X5XaY`=O3Bj${rgTR94vK7;rw58-n;o;k}#;xNYAp zGuO6LQ|+`~)x>v%n~Ir3c5%$h16QY>{0rA0HJr#*NbPB{YCy!7>(}=G-u?wh5_y4H zuB*UKcN|@fZL?Rarzs|@ktkX#!L5mmSm0biXOF-xo#|y?=W2?C+NIogk-~5_B{vdd zfDa`P$bBg2X2}jTN; zF%h|;izwzqou4ahAZJvSH+1b4KaE&4I!PuWYiy;&v+a#HZ4+woO4nibs?7Nh#m+@^ z)M&}?*mWmOPRc{MLn&k<9hoSFZv~5jIMz%8Uq-bj zs04(@(;3?RG@1`iF>4;FA1PdPH*lQO{$&CX*PixzMY8Ca5!=+o_!v8yZAHS)5-Q|WOqjndL~pKmN4-lbXqY-#bWP$sjd@+&M2n}{t>~h)r2SS z!Z=1M;y32~g`Vw%k?9oUBT%qP{9@u%W8-bpu9sn`)y@8FB6HX6k4PG$a{d@$gsvIM ztBZYg*?0dr$*8MlKn24X>)(ABXLN4#alR2N>Y z)n!F>(@rh7vf>*_($R(!*c*>s70!BW@cze{qX=yGF=>pq)4inOVc;yI%OuSl~e z0Van*B=fck;GrX@K`9+P&53cYUbL7(^iZXZ`scco ziF(AMSY}pO;^4z3zzyro%ja>On1z zeCZZId?i1YZA9L7UnxG{ydmb)FC}p^yw@sthRTcO#l&IdxX7j5Kwv5nwHZ4{jPQdz zkg*+IqvIp!j8FRn!IBbeJ%=MRpxD<)J1t)`_e*DA z8BukR!rSgm5_utJYhO~tEb^`=c_^FpN)8CJsvQyCOj!*}#*v?La!5#%Kl0Nuy+|hW zfBXXj3tePv|9AypfEkb-YOcclmT+CrS;?DXC@sY7Bx9RZbp4rR(~i;)pQL3@IloZ8 zA-4;ChichV!<^jV%r3|>x6dYGV)=sRyJE_q(8*E=M7JAmLv6^h>H~V!GDP~WzStJL zc8I{LzltanwRB%L5})}lp@=C_vy;&1#O`9pT&f)jLY2pxpELm*=*4kfkf2V>(Cg8aes6gT~VYOxwCmfx;0D!m1q%K9e7kkn4#(jRqixN85fZRp&|@-e z9~a3lKkwfonTJW?dXkURDJFKCrv1(afaOuksf|RAs-bR&W!EERqKMgeR7z(gxMbS; z;PHSt(sSx0*DBh96yk_E zL9^E$u%q78O*5@Zzi^eS%5W5%!JFwe2kwbG>@( z_*`L1wFnV|VajDK5lW~kU<@c;Xtac$)6r}+eYE*)`WcN_uO_ZYtjF7iyQq@X2Kn&5 zvn(kslMA*_)J83^3vzWXm-b=87-1|mVDt}sA7wV2R4c*E1t+B9n9*&kEblR8XpR(9 zfR{Ri*lE2ifF(k)w~GM8@YtbM6gN~lm;qc3c7xLOK6^Xp5Dm*1l+~T89!fUj)UUM} z-wNjZH?dt90s0jTfrZlQ)D)EFE3b|^`J&*6H+J0VCdnMm(ZnRBOfi<_S zF4tz-&R9V)0?2<;;b+9^O)j&KeuP^o3BRXe1E(AUpnZ=01(X0*i47!D%j54Vo2}F? zf@2ovsI~bx@V&iN&5HJXn&T!qS8^9hyzy?z{$FGpYI2sLHw;O|OTMPV>7tYpCgd+A zRn-pH2XOw<34vY~v6NNzm00-Ah(|3?!lX~=@;EF*Ml}J;j91EN>+(nhp%pjkVJZ5; zRWAS`IT4u{h1Pq?TkCjYWc~AKy~~dIvdUr%H=d#De(krD=CdAl^G~eN;`bD}P%1eJ zizN}ZF1Jl)V9#9F9|CDz)d>c!R`NB#+- zzgbINha#fGBpsKF7teEa5o4sld~Rn%YPG?2Twqf@^cB{GP@+I(ZAgL{%x57UbA3l@ zL#_~gxTBq1b<){vT3T+Ckr|PZ6L-H&rLC+?f?l?UwoXLzF(RDNTS!T6SD)~!r>iPR zP8Ubn^hQC!m~;uw9Q#FuJniYiJN$wY==8*Y+f>6rtr9aN@pO~u?J)an$DH7XyX+=s zjwGw5311^*&~3oFf53-saM^m6JXl8)O%!FC62U2Fvs=hi$?=Xcz-%{6I>sq+A;yvf zBzTP<+4KU~+5V?YIq#{U0C<@eMFgpgnzGQ23akAur2U9n#b{t+s7Ye-Ddp>=%%@we z-<~y}ZT;<^w_E@G?b&b7)_8NNpjli{h0BQ3Tq@JU7+Ty7YMtqw>Nl8}EgwbUnKi`j z1Q1ZtZX20C(4~Uh2z@U?0syN8b%S;eGZibzY%Gg{yr7({ZOZ~qNpX=5=7IYN3LIUOJ=7=4f<)}n1ac>(h9 zjFTA2!+E*2$1__y(A8@do>%#TRpTG4quE6r7=;9Ul^dhV((DdUtXN>|tN6I8Jgv;( zl@Etu_8pO=mJI&MDpF{ZxyJ-(p}amyh_0bW+E%O5JUcy^BOipanx z*|{<*cj2NuO^?hgN+@Fgw){@1XYm-m>)^8ET_oqDkFMIS6^9l2U~AkB9I&||pb%Sr zw@$19v7EOIN$9!^cn%ygM>I}{_*za=%`7W+)#N~s5^SY*9H{pEsC;_MdJ1_q?QOb{ z!gzBRDa+~je!6Nqwt9(vbkjQdfDXCDL0D;CmRDwo=VEPF;}TZ}&Dd@eWT}Rl7nXudv(8*cv{A>T3aA8oA-hP(7pt_ag}w`knt%L7D3u$B z!y&Y6KQ^ZnsPmFVDK7IsIbcJoV_EwmUb77wxeywpqUhg2qPM`w#^5Vu5i&H|MiOI& zWxZ`y>{w@rv2Ee*J=Z)lvBIH@GIFoO^Nom;;eXV%ClC#2@!~-`Os9GBBa0Y`2AFq> zqb(&W`XKq7rzZFnD(=WIildWpnV%0|zfz`P*dDrqrIQl%d?zX($vIqk*_9mChZJjF zg+vA#O~zPa0jTr8b?NGt^-~PKMjz7|o1kGUbAZxSa-OAxxF|B$;g3=FMiDpEtf(an zk5%^8)=uVtix=6+r+n5erl)J=S#j|ZUUvJZ`LlemwQ>K4`}cn^#s|R^$%(+FamdV3 z+=#6kfU3zsA+R1S7XAUw3eW({Af0}KV0-#xjsMs`aB*e1shTm+Q3fjHZbJsHq^zf$ ztje&MIW5ahgPA`BF&ZE73Ud76rb-vy>XCaE3J}N-l2>Y)p0cU3c=0Ke$=NDMHPc?9 z5c($9_`pJzPgyoO5ZRR19p^5k#`AH1G#_MIiiIWts-ui;rX;eJomW60>83Mp>tQ*4 z8<~ccVmKD}N&tU!YzZ`^iUJ!klP5)irD z0XkcimJ^Bf4mv|C5EYngdW1fTED~gywo2i}VJVpDK|r2Msw8FZb8;n`^a^~|p$4kA ziAh-}^SkNRaNIR}$6i;~rDU8z?#TCkem7)YXWAI8W`TPA>r4&Oa#uLiSr{Y;i zGmVm>&yb4j@uP=y@uAN3$^~Hn@v~yx@L2`6)01{0KyF%)i3ksL!;MqkBcwSs$t*n;ER$wk)UN^p7giY!k2k%MonYAP zmqIkq-GWATY;8z2!j{JJ(hO1_U2{>zjp>@UkjYBBBxK<{o1Vhm1v8oRusq{Nvg%vA za|iQYzCs~aDzQXKu`|JN;+WUc*m;Xu&~q4|8))hKtC+0p=v~e^h_zMu3R|;^`7-`2 zh7uUjx^O3}7HqJ<)1lbBk!)PGTCC3eSbrM4Tc?9n81&Hh*?fsZt~> z!#=HqR?0kI6C6Y$r?Q=)iH2o!c`J_ij~m#eOi9#~=U3*Yc_Tzp7kwSl&`Cwet(Z85 zs@X8tg%UfzdwU>q=M~Qx)HaysOraPL_*3Ra@s-5wqoG1j6E-676>*(Kq`TD_rCe6p zLnj_!o4svFHm-b*Y~T6rip9$FRi_Yj78%AFbx$er>nPhp;E0mXB5o)uBZ=}tQC>#c z8^v}ngQwQ@z-hvSGWqv&V0 zzi(>Z;~l|baEM%IR(f-d1r&RFFh4)P0%r5G@xFCA6fHvD+f5qpFj@fRP6FP24DC0> ze8;&_u0DbGP=>Ef+I?mwfLN=GS=b$O@SZU~)VEF*zL+u$aU>2Wcz}xSykdnp)k<3O z{>cWV@ZS0sb&4s0nVCfIIx=~|C%Tufu2`ydN%oLaL=0p(nWxw5Mxf8gM&UD=|0%jd z9z+!#b2m=UtPBubQ-T3aWq=qM%yS$%wJ-|NC2l0Ii50HR=t|k_>nTvsViiQf0JW{- zlK39Jwu!$vrr4PNT3^~Ekah}y9K&DO(`sNWqt-DWVPl*FXh=mNwkxi0N8Sja<`Akp=X~=jt0uCuuY#GAHBF=K|0RQ zQ;CaHZTGJEc>5q)F>&|p|Ji$h^M=5~Tl(4a24#hJ z$}N>3TxH)CC0W!`w(D2fa7GV12M346gdWvjZdiSllIf^V*`9POh+z}?VQlRCWvRxo zs=ls@#}2f&%Pvrg7%>#NscA7$nM6#yINbr;(*RlQaBSCNvNp=dx0MZc$t)N19U;5l zr-s$-!3>h`Sy(_D9+C$}IlCHVU28I{DvtE37WZnna5CmyT_flg8ZcRuM!S&ZO%wTjfi{WQ!kSvjJjvzam8wHDWn89AR7SOr-=wGeM4fjL?d zAT5OJK%lHYiECxb8I?7G+55vezpyM?B;8 zVeu)bWpI3(Im;lzlkCqp$Ozy25)u#;(*fp$M6s8W$51fSA0MzGW{@jQT*Mdy^LF4$ zeQnVN#nzh{XqSuvbuUhEd)n3XVaqGnF)h;X7USe0ug|sLHsMjU@exDZD{41CV$k1J zbk80ADv2OgE$0j`KV6p!I3QwT)rz4CVIu8kT}WBXY{q?eSJ*R|NeM@=&)5)*nL)VI zoNxkylj4%nFIYkZk$|s!R|Ka)n8xp&q%hH;j_7ztZ9MH-0*7X9J&#E_ur%s8Y74fz zB?hXeA8VXPzjIEsu0G5Z$73I1%F50l9iC@X(zIVlzus93F!Jb9_B-HcpnZ) zOU7hFVpM1sE$b-evyugBI!T4*2f|IPE?v%0Th1lMt;1B+y`*^1<&gr@Mt<(AZ5@*% zXp4#O5{)5;7HQ3ih(15zD0JL|v?GzK1vi*Zm$4J0Fth6lPq98*CWgRYs zHAAmKc~{vYPF6SRokVnQ*kV|jh`$R&KRGP$Hb7z;xFMH4YGb2C?piYwkwrx}##i|e zZP;`YWOq4c@$RWv_|G4ODAr{~*sg@i-ZMiGUJBW)Y{pq1H2s2-_qimIfPy1tsPDiD zcC)U|pdy`73F44CWPo7-iH{a+cEyMYi!!r<4ks6Qjbi^`O71tFi4O+)3yqRdJ|v+g zNgT=*mC>Cu!<}TD+YJzwE1iqM%`ltNC0Rldcl8ixIY-55-fv^9+KhtTi}U2^JjMJN zned!Q^u@6$ow1U!$gP#0bCPX)y#n^Y7I{U3+4!7+dtC85KC&vvc=EMWcM;KbM_`$< z@C_t9eEfsw+6ljA9F3S;rJH!l#{TdV@9>P~o;34|RlWyPGA!e2+tigW!g8)A*S5G% zVvW&N(5UD5I_y?MAYmzlxFyt#Mt=L8j$A1s`**3!lP?ccgHY9UoWgXJmHo`J#vzj> z+PS5|5cs)ig@^h;U$ywt3ivF%fgM_sP3)0jaL&EQk!n7dFH24>;JD*fax#5v<{AEb z#DG4=;Ed3y0iWOGh4u)cL3Gt>iev6AT%l*wanHXlh)-Xv#IO27p(98*#&+(QIE$<~ z+nj}JNABUas5)Y5^M1S+Pf>HU_}!qAfKnbrEQz;JzoFu0hv{e^6{rg-98R4pPy6h$(s7PmIKe8m1}r5 z%v#G#*G`JrtT9KvCL!lt~H_Wv?N8Ie%*>e_$}ezE04Q&qy2>1bHN-hmz*{3JgOJ z3=O5l&=|ahS8ceD+Nz}0ZL3v}{wRrzeI7A%escbceg z454QeHwv@V<{!jSVmu0dcfmh_>rv&1_|b0;*;H{PaA8zI(*rCq74Kn?AmmwH`p?$< zfx1dHCXxcEOk+e-bFLxGyu_tUR#%}2jZGC{|8&ddjL9cOXXXL0v8opRy=Jim#xOxA zG{jtM@@;G8#*_dLAl;OE1TpvOMQ*Q$-FZAN9c zf~sm9bUY9b4KH~}`pq-NYLkIKUoo`V*HY&vuYsGb9H$EBrtFjI!%;f}-?nVI4XoD$ z_tZhQb|yxMl+K9`rIU18N-DB@k6S?;6kHoieIrPs{9#l)1U`9OEW=~c`m8V4{w*8o z^-0)aD*Arhw%m}n7V+;iHv^zLPQaEy1Pq-9;x6lp7%)dR1do$KakJrj9=`j&ts5md z3ta+WbDR?WkbKz+&adIP03Q0XX@d)IDeSfZV=``7m)K{JJaayy%L;m_l4FwAaXB)5>ypbmhj*{G8Bwa; z`ktL8Nk1Fej=F7eeUxv820c>*qUVHb*56y3>du|C{7Ah_q|xYdG)IS~{=DRWp*i}C zS7x~7p`V|K!C`6OEF7GS_<_8?SI-NyohmMX)xak-b;7^o6GBgD7bQ>g89(4vRNet0 zgo50Z+zHtZ2UvoWbKpKcWmnWX{KZ>ri4V|;m^%V2=V^r`cc|2B+l};eAstA3teh`24;+nydxp^L zITjah>81^T=d*}8h=I2%3(zu>@tfJ^mAJTk=&D)X~`@4xE&K4Rvvj6sUnqr6aSN+~} zJby4r1(d)){6c?5E>|3})uYvPGzhfyo$nF!l^^xDJ~TAi5g!rttiP)K3>L;nNk5McF|^59jL7l* zfKE-OSSbITk+Tq6#iM5}?Z#9iPQO600uejdKhUaafwCh%!Zgf8c6gH3lx57uUCoY@ zsNxLDMboE7fBTzKV{2wMd6T{=v3Hy$%Km5KOwQ5?oJezZRm?rQ-7b=j^BlNBphZBl zVTS?ZfJ{?|`&M9S^I3ofZJ5&TEV~5wK^=?+(_CG@gr-!hrRcZF@DW|EQ58sFLFF}o z2!;qHffm67Pru`sobe*IY$M=fh9OA`Y0Z?ct?vow)0s-lNUJHFlnS#0)v+<8no~O45P6F674l!!=*n)g zZ4DWHGt(hjjgvm6KyqE20M*8}FqIrR;q!F6$tySsr=&IdgM9zV<)O4J#7#fUdQgB_ zaweR@Y7f|a0q4t~+tjN7ijG!{_CbMtMo@k#dDxSY>Q{k_s&_F&86897ZH^aCK!X1M)!IT0e$~ExLpeZ;F}t z%^*tv_ggrq&J&a}ie*F_5cFi4PII-=sB^}ZmC3VnCxfa#O3Af5I|ud&_eg3lr7RM=}lROR0*y!xZ^-Iw40I4GyCbRc_tc%6A{-tIi!O zSm3pRICs0MiQA_3ZTm3M80TC7vut7=#;P7cM#jQ(G+&aBw}nZfD%1i%&KYoJeLcUA z23o!!9#cQ^nwb>ZhL%w9wy}Ug`+PDU&uOb+`R4aOY^>k=9=#n<2)hBtUJQ$9CDoq^ zT(Q<3KKy~0Z|q`+d?o((0d1}m;qZjB30?8US6Cuspq zPmR#RpD!XzQ?JTxD@hd{>Ed(veq6x$GB43ck0~*2#6dclNj`RN5X(j;K1FvKnRjRY zM+wESB2rhU7d2JY`K0Q)bwR6Le%7rvr-HF`kXCEGa6F^COHinO#6H-1Ny6T^{;8 zbIc>2<{Z;o#a~pJ2F}P$3NC3$(!kRKPxJn)v58}(wY%LVfJEY(qM5{P3CPkg@FGJu z75JM1KoYeZ+-kt;CCRnS{@@HKF>=}D5r|qU7)^>i!wkhUX_+&3P6xqcegYs&cqEqh z4gv@dZj42a-@3S52^rAh&rSJpdtky2+-|BLEt;g7-&Ugj^2{ib?f8?i_&Y(<7$E*!V?cX`#p zIUf6Oj~ne3HPq+x*{m2Z9_$H~^M}iCBSXUT=D0=A6!M4*w%UnZL(Q_biZxd5c=1^C z@nnvH^v0)|HC7g1IAd*dQSTkz9O2M*A#DxgC5~?4AaD)`B#E@ffG_=)Xb8)-w?`B6 z)?la`Il|L-i^ZRKih3XN^Yk=R?`0h#HTVm!34TVb3Y+KUYKQHs50MVMPxQ;~X8~k% zaFM}$ssfv^u$P=Wsj8H*z+&tcQKF(y*i(Hci`v)U7rG3wrc?|xwf!vY!W8hKBi!r20~3`|-)JKRz`%RR@sTPMA+CBP z3rhM!qFYX6IQYJ9D71O7P+bpn*a&G>_-{E@znl&a z@t0?Cm@wKAJ9@j>fODL&XA3KIsQz)I#Svp0V&1^~PJ*@!dN}*9B;W#z7Rc6yLstM3R&v(;;SWL%xs2RAZ z^x06C%c`|NVQVqY%9fCuAu#@DI0_m>X)lMGE3AWcQqyXzHj=y6ylEwy=&09N#pS^; z)B#k&i5;?vko|N>Ye~`9w81m6_hP)nlDu4^eNtgI)J3@heH4N+`HEfzvUwRl#q$r2bwxOiG2Onp-qVtxB`T zhYe7p_+YOG8*m3ByUo#0)aS~9iHwkPk=njp7&NI18^s?dY!@{oDnjkylQkx3B^Z;u zKUzPQm`vW7C_#mUxDaZ+N(hQ-36o;Oj+LQb~n=2L} z=2u}4W0VHuZ&y|S7_dLauXud z-8VYGYD-Usr=wcTOQx>w@DpWh>~{^9tsY-iI?OCkNM$a}LsI4Wh*V!Tt)@Aw(=zR{ zCL`9a`eL^$S;KEP&CY4Tp*PJbq&BJHnob2kxpTlC_&5-YClY&*4Gz2#GZ`L_RgHq* zG4r-?8tw=Y@N#Q+fX!p)prP`8)A_up7q--JDqXKEUEN;8NJ}?Zsi3xH&~ITJ@1=+o zVmTyS8mXqED2Av~8aJB3D!C1DlqlRH(gOVfZsTvrhs4V+2ZM;z=w>j$taLqgYDoMqaf%DqH z^c#29?ri?KwcdRQ&lvh#wJ(`(BwdF`$gYENEjm|mp3vQqGr{9lI9|2hifiUZO0JHV zCvPMnB3e9-#h}E7er+#r$)TsL#bBgRv9+9wTkTl6A)IZ{!m&%-?fzBNxd0oe_HtdT zHVmYxa!s$KorrfSnTD6^nTmSdN&|IsHu-FNLJ#tC$GmI;rD&NgZZSXPP>KGVq=63@ zHB@5l?LO-KNO~N**6J<`U?eLGCP6(se5d?tR>}5G#7_>V<@Mk~CCuu(-t%AB z5Q-8tO5RBZg=I+u6z&GUBj|tE^bV8$V#2pkI{xI09ifo0^tW8wQioI0S!bQw55nC=V+_cEpg_|Mj&{%XqUSRJd+!}2IZWwYGKRBx>%dN z>7b%+0Qj)AH9U`9OvOn-+YV)kbgyfBU0XX@au#Mb9n(=cnXGD6I9iq|rUzi@Exbj; z1E_J@qzb~ojs{Bf!Hn4|%I;W70LSPV^wd+upQI#m*;-x0h_dC{!_~y9xV4I=<|u8L zW}~gualzpbq>PBHwpO=cYFEXamMG#iHE0nW9FI$JWdB(lER``w zn`Vaby~hcgQev_!rT9wB@9a`q_!$!tyTwR?>J$^1swqY?SiD|0DB6Fbz&8N|Sxxu? z$bwm#B+6n{Mu3Jp!4#)OY8_~=@r3n0EZ6<0R+H}I+?;>}8zf$QYn8)6tR`zu8;*>| z%p?#-8CV3LZpHWqoP)z;y5qj<4;%+-x~H*PQ!u?(&B8mjNpw#Oisvr^(Ou=Xpg_wy ziK!Ht@-=mcUT4ti?P1Yupd*<%)u<+4>YJhP^XF`YhM2}>fzz;vT-?$1i&-a92xUIc zZq?`qtTbCIhGei@zZ4|``Z^@5_-<9p;K?e{j?ZD`u+rVCa5kLwp%5JqswY%mI_L-W zh@i|*Fk%)u9xDjQnQSxi_}ch&1d>pKn~|U;&tP}pBg$;m;4lU5CnM-2JE&eMHK1641&1d|XjoZDdc6i;h$*p;uDs8AvP^aI1|a#Wj?di) zRD=x!Io;AhW?LTUMDJ+*4>X*L-C46u4_;P-+5#}&3az5D7W~1pVra3?U8u>^EroqI zZ&P|->uB?qAgr>ikXe$Di4SUpkOR?1$p`^)8i<_@K#c~#zhSgIx}`v(;Vewcl~r5S zZdKj#L$RKXG;OVa5X-7&%esyE->eQ>0WDJ=|>u`J#hLC*^}Mo?q9eQ{IV z4<(QOva}W=w?@zf4TY#Ji8@}y%WvYD(#KE(33|*T2CcYKqDrKvr4O*)?@d>5VGl@; zHtP+WH?@ee!S|PBQ2V7tyfx(CXgfmU1>XBh=I0KCAfG!BrU zn~uv1aw;K(FhYiYM_Zd@j{Ox>IusVq<7xV7mK8pRg#4DqJpz_*5vmpGwpMnKL6DF0(K8_6R= zr|I%cJvBggjR+I1svT%&>TxlCjx}858loJF8=>o_g-kRw^OJVdVL^rvZR=PYan)2W3e2L(L1rB6SjX*xv#4*7^G@`V*URFPZbX`#o1?%rJ6nAS0c zBp+>0*+$Wql?Tej#YOkxKE(_>++Rap;~|M9O3J;gP!BY1 z1}8&g=t(8VyiQG9nblb#64pcgTkXDcwuDzPNy72ejbqcR?-C5_S2rCDnzh3Uw39we zKV&R%9!n+*jv#=Wk&ztpzjvKVi`R~*zWj(=Y(#XEHm%cm=FY)x3(fgdzn?B9xCipuDyGPC0;R&2<|;|`sq~|k}W*xU=p3b zeA+2UEPLPu;v+EuF>O>Im3#pvNfvT*szj*=u>b^Z!eAW}5v#!V?jaHW~OS&TFaGGS683!^)#bi%q^u)x}>1nF6uT-fA zt(mF2ylsAol0BiRSzK<#$V zQi!jR6k!YlnZJ_$NOW|C2Lulx6PWHz3vEuWl7_qR4bB5+NkW#uh;Jdw;N@8;$e_i} zXo_fSU%%qtNXWqfrlJVJt%&c63ek2$*~f~q;P5Vi+W8c&O!T^!(xv@5#~v#!4wtQB z-%T?S#`_lGZH)_W)eAJ+`NE#Mw{*56qajM@u1bS(T{g&318%O@YG*4|y%>2F(@&*| zjFa*+C2AEre-1RR5|h#`zhoB@tCuC@mTmmmfE}4?p%9^rvJ-j>Lw_}J zz!>(Ik;EbwNz*=7l+k>xFf(zkLF7>}%Cs-CT!vPv4H;crbNLx}0Jd~Av^cc+mtY1F zU$OtTX)HGdXDWJ&(dzl8VwF>DCkrLcacT37I*z)#Ezxzgu)Csri>^7dcI_?7vp^-bBXQq7dz1%apN;;;YADCweZMw zMRTgpzx|CzrLC7^$lY=^ZVJxSam1lQ`JJedeQ_||>6?ZkHn<9eXfA{1xNI;ZK2{YX zM6tlIyhe;AhV@bn)w%`l>s-I69*R_Hv5H#K5}stnVk*UmF4+{t7aYQhLh@MxZl0(+ zD&-;LZsyqT@x~gtINB|DF=4Hn(4nT)grb6k_cfP0UkQxdd2PbYXB)}*1Fta%Tz*SN zjOnX4rS{7&LQGOeMe78K*l}|U?R$Rw-1X!?{Y{I4eL{@Hs+n#sHzZkcd!|W>3 z?2R?R?VDhBtX&(wud8pK75GPfD;@$yJX)4L6_%mfG2FWuL0?4emYzNv3whHIBYITN zUR#s#nP?FL2YK~8Ne6Cy z9Lol$4tYjVrO<>#juDRAE!ND15++&|12003qbE_JNWzT1A1TF5NCpMv22sHk*4xHs)(2)CZbBv)MO zAX5{seD{WHc8FpfhZac1f=^Pap>j8}_kj`;bOFzU;%U5y9;P9NT1xsice=>+=N3vupCw=LZ;wNB&`#}1WzvFOCq3~J4Otc`*B=!n zCMOcx-%bA*uTqv8Gy3mQyXg#B9Pxdo)Fa!z>$k)Ov6vHz%c3;d63owm*^&oAFgTkl zajnOfat;sLQ*Qjrx24_GgSM0eWeG_VI)&bdcl{hl^GSJ+i^~yMl&yaChP}C*>t8v- z2wANfU^9%!qgX&Mcu&)+OC)Hz|lH{GY__>z0#r`e}s0ZvQCh{pWk#jqZJT zX!cvl!DKWa15dLz?!%iM^fl|xddW|~Qp2wL0LzX6zUkNhDyb~Wwp%M4c(k{+R-BLX zNin13x!G*Z?{tm2{3#n}Q!*CG$M`nU-_cfaI+MM_=D+g^=71iko3I$tG1@^}q&=mo zz$E^B`1%#~up|CxBhHoz^8uO$1H#y{qhbo}JnF9Bm3Y(x_@qL>9O*myg zqrxCPMJS2HJ-G)Bv?ZBeJ9!IdOxjMeS-(XCc*Oxyd&!&ZB6)uBLcNgDO|B@r9l`wG z`o_JsKpp|#g%aE7d4VNLVm+syQO$r=_cOq9CNX)TjXH7eWig)u(~56^TR@JMtZmv7 z2z;tpC73WJqTq~lcj&q_L6^_jjP0dSO+7GYs+Fj=04{`mSLu$G&3ZH_vZ(fkMpi~L zraq>8J(n~MDl{1B^Wc*L1+ee{qP8@bu$|5*XSYDR=kdTB7IfPmrErc zBIF45Ct3`Zb(&hjn8xSnl^)AU#zEF$djXY(uOwSSN^-#c+0k*dXYo zTT}^8pfZ{`V3=wk3yf*RoH9Zm{=9dP9K3yb_+fj0H-YDO`)~ig_hR=&^88o$xSQ;} zefR7B-cLUtCO^M@^h3S^_ID2s zlDGTG-s^X-_Mkave}DVU;oj~6kheEGuin4dd-GE}fhLkSZx54Kd$0Enq1fTuHgy|T zgJ$2pOkVHq@B9oewx934+B^J}`h2-}_y&7>3Egcc@3!|3_jcaD+TKszz2ATL_Fy-` zslC`c*mn57y5@jlik1XzBzprmZ*c`)Chre+ z+tA11Hgye+0KDKcJU@Sbut$*FdvmzEzyJQ-;ojRfc$)nD_5(l%#<>lZUl5SrzM%;N znBMOHip?S7+_UJ+m=!{R3eLvKdWX zyOgWxsQM}9m%?N)K=V{m5;Q)8i-ivHFxO2*_zk40Hx6D1r(RkM_2j z+3@F0_YKpYGxH-4X2-2am3y%&lpc)!(G{WU-x&&+3WP*fC-!oZ{|B*0iG;~-lPUqd zBosCnca}=fDFlvPzb}Wvvom{GkMj><~ zWbbXX?{$CZJ!s$WKIlDaKZO51>iyXM5#Bv)KknUcZ>;wo-Ut^GSlW%_c5(#mwjbaF zG~IrL4-fed00aL(AF$%^@VI>+|7@(o&qPq*`ISn!s>y^T{lK|mBoaXdv4qKxjnS#5 zbm}P0jH@e1Z^0&p!QX>*!f}7$uuYAVblSM)QHg1f3wNMSCmb9_A{CsgtN}oIkX6Y> z!*0SBJi{!V%{j(_Z6PL8O_1$4JwryeH`%unZ2k|~~C>Fg~tJrQo4S4dKmc%+-X@_$-tI?>o zBw8pXT)I!v!O}}Zp^i%6LNP5jp97N4v?Hma>slpucDIy?#-gn3?vOP)RNhC031zTgZ@(2P8$_n?~L*Z zu0Q_4D<`zcjmrv{w${#bI}bddstY^3T{%+<;rq)?0Q}3h1@JF7f$%SX9m2qAU{fX(g_=A@-`G2%X+K9G`-L_HolYcb(HJrtV6Q`*VAO6 z;*ChrcO)A-(&tmSb25jNj-6J$;ZVNJ8M%V+br#0M?8~;MXV9D6X&E;69w3kELhyeoQ&C;jG0q#xTtoqsmzoj)a1-yiES+^m8#_ z?_0&-!YoI{g*`|Trb)Uxe~>&zJhF7IYAXCS=WurZTqDOZ(%}P#J`y(;ax@)9+v5KN+so%aoidq3(#^tqlMJ?Lq2s z$*ux|?1E&Y`#_H92kZZVd7Gw~ABy(~gK3A)#B6HOMz-;P@%FV9VJ1@*EFKlk`+=n7 zgT6Y>bhXGHqv$vtBFjY*u#PaB>4^M>`uYRnKBi!$rEzeBGVPjcFJZ4{Eh&+?UX0YD z#L~!HO8t(fz|X}6pe&GHW-XEwgO=-yHLYwiDQFXLzC)c)OF=>S-(M1-|7F<8uivth zY0$|_%EX5iZ76D&X_bQjBN$*nF7$KYfa@$hrK=@iD_oMV_>y7usO7rr`n8D+++sKtvElTtdIg%< zX;;s@(@{fb(?p z8g^P$4;hf1{V92uIaU;qkP!LI zA0)3l9;Sw1=yMgXyK|kqJz2%Vt3ppGz!qKjHLA6czAFF1tLqS7`-|5B@b> zP0K6GMoa1*7ky24SYfM>kwqenf`km?eopg$Ag=+3GaASUE&=kQrQk)O<-&j>ItDnm zz3TA6)_-Vmb~#}@(w8+`XzUKp6?Awzh!u)3G{d~X1l~~Xx8p;)Q6X_*AqCrSai3h% z+!0A~!mA{iMtpwo9Rc=THYE}n2t$Njz_<^zBxG5K_@=|xxk8-8W*=>oIXuf`Al77Y zS`x8G^TLEm4oj=io=ybh=a{z*JA7ryotEy9Z)`W}kS33_D+5lIs2+2jxI!frLVs>N z26FA%jst_uzRj`MVLbX261_MgW+!=`POAySiAVx%Asf8o%P2#D)` zG*<5)*|dn)BJm-94!WBA@;s-CeZ0F^SD-!(^L~pGe75pIn$w% zT{J922>U=YRzWuz?~u-M-44|*BeVxPIGCh;1ZyYx3E-iqUIpB6MYn;|$HmL=TENWk zRR`JsM1oh-vTMS^440gP!Xdzl3J{2djFaZm^;SDUtz6Q4vffH$Qzp%=b;H{N^2V?f z>o14T)P4koV`ZuP5L(M3*i8ZZ|9gZ~A`oJXG!!hlh6MTNP`2){IdU#}$JP3Os0+~P zG@YD@h|w~{L0{(4Kpl0W_@u~2n1GqDb$qgEISR?Z=Avwxasv#13^R^OaA8yErPY^R zRuOe#3{B4z#Eak2fPv*G=cJ03gSD8#HM}RWgWI-Fs?CtykiYlj@BMbt?RNDj3Lm!I zQg}uR*f6hl4mS`Luo^j_Z0glkI|FN9*!mQwQUvv_;a85pR=b^NDWx%V`8D0#R5Mbg z+RvqZ*b~D12}qdF_)KF=#>>?y)33g@Ho%^vXg1fJc*uxj?sDDVwq-2P5BkQ|sJxkd zLBbfSc}m$+fdxCAX1pEcBi-clDdwBR$_Sw8RnmD(>DBK(UN=;SFe9W<^jdQtD#rlA zRZXm2xqa5raYLGDc|FzgtGaE~zuWHj>+9=k0~E-WKZk!Oqap@l9JOY@RAxNBl%cSq zgL;fPSsOxq#cZXeProfT%~E9d;9R))Sj=amJe#)Z2e4!1C;ai}26}4`@)TILKVcUk ze`vnaFRAEt@&PZnBD-a|DoVMK_R6qP>K14cmF?e&fP(0a*D|^Usp%r9pIL86sj!14=;@)8(I0=-hb`mEeg+n*hoMdMrs!+-RwXm z{m{)>W8COIwD9QCX3uG$V{h|A8N2*TOC$W!++-Bm*`;NrROwfyX{}|EBEcMMMR$L|37a3U^O5`o$4q=3TAQ7szg#Is4`Q_6m;q*o7$^iuuU*E75^9)=ac}NBf(Bab2QyA^^5cL5;)Ud@^F0} zkCg#MReFE{YFCUGf(iQbI-Q-h9j8``H)T$I)ajFqy;Gu}9&#_|`9Ik9*)%vLUDTEG zp2&wyoH}yy)Gh~^P^BB_xXK^8>AB-b%Ws=U4F*8t7~NsHY4M9NF%rZp0)tlYV|O?< z%i#D6aT8KQheW!zCU9GoZ{R7)9;GTV20AXie{-;V`0*{-v{H~!;}iv(SRJkHgd>}i z605Cs3T^Z*oxt{MCyHdZMMwlNCC1bLUApevpP@irvdFcKs+%@YiF0@w40a9<+Hf65 zu8i&!Z4vFN!XkQ`mM|z_a3Uv zBO`QGXH~5^sy~=Tqq-$h=*5eK7ABRm^z>Q_%6WR8C~8F1TQJIYqq3w?QbDmb> zN97npo0XoG2O^r~(9S*1w|mQwc*Wmgv3;qPJ;W^ixZbEikpsKz!{Nh5Ejrmu*u8s^ zvW6=~qA*I&L|;XftOj_d12>n1znM5#91jRCJ?`$FkDaLw-DfAlE2Y?d&XFz>;G z7@A|K|7>6i9+?)Q(x89;@y0!R91b5prt3=M`;GO-k2Zd!$48ISbUlXB#L#^|7(96J z!w*z)ef{y{{v&$Ch8{l#4l}5w6)W|qJJ+XeO(`X_uR0F&^(c7|{U~zm=$8CS1YWWv z+WS`TGLe}7cOW?N2w#unS{o9&_=j_KYAh1 zdJkk$vE!KH1CKPL^$7N*r~TlgEOv3S6dQCr4ek%pA=wappZ<9AXgH+DABK+~z~ga@ zKw$g;vu--XH2EZA!eNm|lMOqGb6M3+(g?gt^7orABpJ?q%C35Bd3k-EbP~O&H`uUT z9i9+IgkCUVWc%M45Mt8aJnG$>>kwMKA~0e~Fm3K^jPS{hHRef-=mp z;`_ESW%V*3vL;%aNV!b_{a-}~ zO7_~?Zvw^LY0@uCcCe5DCS-c?$DgILvqm#qwkcu5a@SR3#S$&Dm=}{$cdh!s>Lqub zkv2#?ND`d%q%21BS+*IJ836!*a!xM8PcxJOM8AB_OUYf|6R)VSj4?RqCDYTB=6XB9 z|8Lo@s&%zGLTjOJ+FU1f)q3|)E3Cq~5_*$qaheZ$FMioOPfxQ$?1aK}z0OhnR}5#} zQ%o|1p>^rB=ksee-J;V4|3ex7AbcI^vU6T`q}ycmU)S+!*s}nI)Kw8s6ev&JfHg}} z435)IN<6!=X+DfBZ+1EBq@(;4@B^_REJ3|=D7XX=lj35UPQpTybTFVx*~1v7oQN&Y z1`G*MFdtM69Zn!re^EduN$Ev z<^2pdQl1%|2|ZX^E=Osyb|*PPmbK6NucLEPBcb`z@o}4#d$i}FAwOY*sLbGSDoqs0 zum?Y0E%MJ@Y_&@+VHAI@Z5)y8=&No#R9!?x8GM>-_>DW|j@FM`5%z|Lh$(7k1uAeb zEMXTwjhW-|gtMzRTh_>qf&p}rjpHCOo9f_WIiFDWO}jzUt(Su>49HtG*ahR+tT

QNI0c`y^7TMpc(e00L;`BC%j%vNV4)@*%plGE;K{l>xB*Ie8MpE+27r2*OKf3qq zU%hjn6KAC^u_oDk6!WDvnf8F&viEn>Qln3S(ysmX<+m@*qu(yN$9JE#n!RQh{#hbrf+-?2VZT>d6+gfW|NmyXd_NdunmC{~drP#<7N%F6Tr@M2ltE5a3AZdu(%{0{#?N21k;ZyA1vf8F%){LGO6C~mJ@S8 z+G$kdr>cz6k-~VTUCu;I*c@)0Oxn(o#XnCk{iGUL_z8Zk$T0z5Vhoh3`qXdJu9{xf zWL1LN?$EWJv^RFLhW*pOiF_WpH-$fmR0nMBX9NYBPj-huPNveH;)BMi4$P?f+yefB+KcVA4vA+kK zRoD#`|0CIe(W?R5uo$(hp}QaWo`X|?$=Y*`-(g_f7<~H%(`KYqv~Z|wkVE?~-4+VG zE8C(ZbIZ3y+*xH~6}(%dHIZ0`4ULh%pQO_=dpRnAE+X9H{2X-&z!+AY&;qPs9sjnN zfO)pTKJJu0^5kudG>#UqTgj2NvGDTP%;6vFR&@&;bCj9g#En7L-ljG%Wyb)82Q<_hV|P{@keC9lpP2pQ9A3Q4FS7yFY@wILC)!} z%TpD(@shpEB(O0T$Hd9!lNske#wG(E4$8G9JGfg7)LKUJY zTYP-9NS2bc(130ygGC!SWxe zV@#w0*r_G&RQgW+LZ3(Q=Qx0_{QJYWm@{ICl-&jIp0O za2@IN%d#__kFt^lmF(hTUuybg2w#kWnP-^6(xnbM&K!$0NjrIPmSwX5!qck=l2ul3 zwz@EkLkuRqh1%09cGG8S`?PbLSq!5ASbMw4lda@2d2y8#Z58fw_cz$Wqr{F&KoEiz zN7du(2~0Ttuo|1 zzdB4$F&1dEfx(*_E!1Lgkg}b#d^Bi6n_l8No`VlB-FT^&q&$kfw6z&kOBTIJ!AOp@ z7n>cekX!G5$WA`xvuzlAIwjY5+=?uuZ@@L-PI5s7l43l%O75(|E@|ZBaW=&PG+?*z zFATNUI1UEnZ=!dcMg%qW=q}pP0qfBdVwmqB-IjTPX@n`w* zGy8irT2%=txn?vO9d>lv@%`&clAnqs&;-#BSp&n?jWB1zl{s`JRnAz_v9R|UrC<5` z>sJ)8Ed31VNTG+SPa_|*>W5e<1*ZI#W`R^fh%59W?vOZ$lPFRL7wkA(OlNA;Jm^4w zk&S9Lxmt(tM80*anT@(+Iy9yv3b3Hgi)Q2AAhLim5g8K(s)+*7AZGv~L-{=nRmc}Z z&dB1RtjqN;T-adb+7=a4I7ba7>EWaoluTVPF0#(ACnXZ2Vwk>t2?&b38*}Q zK0|?TyOe!6Tv0PDr8-l3dG)(eFYl|;&(ldvZ%sO8vSXJ&l>f|?tms<_Y7lc2v`=DN znsv34?pa#Cy%@ivq^z?mtVB`@;hIQIY;i^S3Ep+dMC$FZ+2{eI^b~D9s;CCp!EaF| zksS0I6?z#e3*02-^5sV-e<<)@oxL#`AYGvl!3Zu?@!EzrOv4*N!*%U$)VF)@n3UC% zqiX%CUMrSH(a+W*eeiW?9C1!41ph`1Cv1E$&!`V|X`F3GL59YjJ|%{CcH3@ep@J?q z7;4GTY_w}?iJ+R)5o>Q-BrK@as7J(e)uv5)l(Cld&D|_c-Syo^Xk7~~>(xqijnYrH zBoquKd>3?lDlc1$)!qu#zD}cg9b(Z~4&^Eba>NHnVz1Cfz3 z&teagd59<)YDV<7loAds22)*@A7XfGnv0c@mt6|FOYueF&N`VEmuyvQy=Rusw~%n^ z17Gzyi`1w0_4O&kNTe#g539OBF5N?kl}>_-HP{f@EE*HkhC$+6*POq@x?H*$Ijg;m zSfQMaBa(rIL(pRQL#1{xbv3c_^wex=@!%cG#{rU)k0QTQa4$ubD6;! zC!Sqk2TxA{y-W)g>uFG~cCNRZj)1P!osUm|$!s>LJ}v@U+50mMYQ^fblMoR(98(O1 zZTcCCTw}yP>!Jkrm&Hc_7yPxl;4Ym9U0+b9#Wy}K$B6kNl*U5?PGc$Fv`@SRSS}>< zojCn8W!`Nyuh!-w_O+7c1_(nmrdMMN`*rw2w!agbk>y_zGqZBim*7-#*f4V#DTzY7 za-Xxnt3x;1prbfi_N=y1gHQWf68G&WTF6>ludGBF=yg`u3&f&Ydj^08W|U{nDd7y? z=l9{LEykL6XjYm}dccpHpTMl2=<+sh4-Rh|5r=wp~1!uWC(pne2x~i)F8maoLsX8krk(#n_80E9g z6i8jm+Y+OI&hDzSriz1(Dn|dM#6gP;fI`4@efr=cd|QAme}Ap8{NgshDP_4SVX@XA z%HQ!kcc@fMY-ZJ8l7owLai*CHSS=zG9tk*X2r>*HNeK_tc2;0)R|HduF#$UHW5tlv_Xc_CI81f5^$LJGQ-?8X7rq{lxd$iGo89zV`NFkx0X1^IWI+$73USZVbLdw#Ia>_T9rjH z7uc4?SVhI3L}Frm!R_V++(e5Db0-Db3oDBk(xmK9i_s`9%TU$oDtW>TW|cos#TWT` zStHZ%i`H}Brd)54>pqW;VP+8(QkJg~ILb9k= zvmyc+FOVuJ_80M@7OZ;mYm_xY&aX=U!QiW07Y*GC6PX3urCRFY*0Is(vYlMTaOiTe zE47{#F{qa}@x5M#Ex**-Xl}maA01&MS5B2Hx5^=&8p~NcIkQUme@k?4cfFPH|H2{E zUkYy7lmytnTNW{bp9`=kzW-KS7N_$Q^_oXmfh30;f2(WFoKENn)Sj{W9oo9Ah(=0+l}&&o5Ee3?{anziQt`K`S3 zimc%>A1>@Q)+j$Zw$(U(?)e+3tgdJ zO{=yQG!%4=pb=>DK7I#sPXsDhtqXO*5Ow&o5I zEN0Ce^j&4zUC|95EVg~0bXaY2U<~@J$7kq$eGr`5ZMMt=LR0U*u=*BMDx*^^rZP66 zK;M+FAru6cNX2YA9T&5FcvTOb6ea;9fin$#lG%kRoy}5mXx8IP3>Smn#{e24ACjoN zNHXPDrVBQ1h7V@AZ4wdO=(MZ88^)EBA%}G29`#of82_;hQ1L2K#A8}oo3TzT?M~cW zf5FZRoGY|RWoRTBQ5i)HwUx&Q^Adz^aT`ya!-|noyQ!4TMo$TOS{E0bqE?0r`a%@qOmhY^vA+d>rffNLG) z3RkUsmI%)ydZzmfyo9Ftg17WGY$kz6VVa#}X9CbdcT#D!xt)!RS1;-U7 zkW>nuS`nWhbBP(4#DG?sz@}DR-Zo`Finj5iNZM-siO~8y$K0Kp&g(%zcebiXCzDYO zS&}E%PE7xuS>=!NV<%pz!Xh$p=bffRgmN&@2er?F&G@Bisj(w;v_{Zpqv}O=#uctM zd+lyU+#g|C2%GX&rL;r_-yaoaR?Z|%ts)Zkv4`uh#FmHcu1=q`v;@958>7oT9Aj{L zVb*9S27_ccEzW7*zj*sP>fJv~ayY@rEpbL}yt)~3=Etf7Zh~{o(=eg=KjAo-#ahG^ z)pl%)?n)J{qS&!&eAr1p1-^>oUQjR4Kd}8WmF~Z9-RdH;P_=rx=#ew5AvDn?YR1bh zh;faM^n64latL~na$}N>rCm)ZG)0BPMH2)HRGbaossn$Z6UuU0RGt3vFbMX{l6KR+ zT#4hq;1KciZz^WcNeF*&fdq%_c%Bz#r;T10i?)`cV4P8=K~F5c2xpgD48 zgYD@Vz>ni4&%&DaoxvV2RE3>q(^I=09q0VZwL;SXk8Qkng}=78)IiqWIOI(l?v;tc zhA5V_V^QJwv`zCVj0jrQ;nf^|N}AQdtpM28yJh?e?WJC%B=C1u%#}7S${bl!*R`Se zlK9{@;7T85zIPEwwE^!!8RJ3`BllYkBJT``;@xt7QqHEBn`1-7Vn>bo=B-*Abd566 zU+&e*8l7XuRIGRBl#Z*S++7(9EHAf`*YcDz;bpQvcw8X@H4{`h0I^xLZ zE(LpLO+V=c1NRM9JvQf~a5QmlP=p)bM%#MqbUgGw%*4IG?cPA4x5(Z)*;u4<#{Ly-HKXFv%%U=`9-! z)#CDq|ARW-?XV$eGH(KJH7#2o$C@VzJGCTMZF`9ESWC8f_#htot=5=?0r|nUDU--0 zltlAGxYAzLpB>vWyY9~sB)DE?nYa71c{&EBF1++GgsK0^CxGCzyV&@&JrER7MA79nt*4Kr$S! z3rIYVbvsqU^stIKNZ|_ZgSpl(g@sL)qvp~~k&gitYhpa9F22!#k(S(Wz|oyvNf2rR z?gSJ8E!j~6APjTEHYG3Zq-~x;4&HLkvtyX zq-9>SXu}HmIHOj5vu1-WhM3Oo?1RqPr8j5?O2<~g8WXSuPU96yK@@Ix(BHL>$1UZO zr2z3m0Y;2-)U!T{cp+;!8rNS+kT(2mGSB75N6xrwV#_uEa563cU9+a#!dQAWaT%St z9Q|=@kKpUGW@!x4O)uVYBlbaIOjhs;iJ}y9pjsPoK(}7$S?(pHEGwguNH9!Q-iZ?a zrAnO2O-GV*EyZz~G?<(xQhviVqoJ}5H!8624~D@X2m^r}{Hk`YXZocOp^I5gMkBJ- ziS5LLPx%B3)LV#Y#gcBfy~w786c@cHJ!iepqHJ*Gd|27S0ex$QUyi*xpeXBUZ6HhaMhtvi@+G@v%o^(nnjP^)2E;A|j|!RGVYTai$Jv zJ#Nm1@>?KHi*oe#Vdx3ABOH&%m^zGfI_hgSdWUmu+ir{SqBczAnNv5g%yquT5Rh+b z#hGm<=M;=(dU^t+BJhr&0MX7M>XyVQxQHi^kylyET+UELne6}c+)k7d zj2|Yx_J6)_9<6sCr=8((EB17IE$6(keVzc27Q4=ud)KY%A714+fu^BUIsp=BE6!`O zn`Bi3bzsK@evmv%HXbEC-~G1g#JRsPh6xXam5q{&u}LZFrUl#`cp7`-89yB5==qB_ zFppYr-=k69Q3%(fOhxw|KKu%s*Q5dCXd)Hi@yOO~Gqc=kEVPM@Zt1>@bW%mTP@Saa zmi`)Z%A+#!hWFubBSv&(`V#&=a+ypgS#G#nmf0TQ+w#ci;W#Q^9!RyzhBBF@v;IXRDV>L{?TsyZNAEE8WzusbcoucJjK3=(w+! z3TL}Wt74q)6kdsT^DFn1J)_vZs@R2?nE;`dlPspfiMc;2yC2K>gv{SP+u^?$!p!j^ ztG>#W)jKe+*lMNhu4=~I+jM0u*PT~hOM?pnx2EUx#{xSKGe5i{aA1o%zbP4wL}=C( z^TCa6)P20+!!sY0Uzz<{CcbzIVW*|uZwKlpj&d%UorwY+s=(59w^nI_p~TTb4hzO-0P?!oC;cJ-e4Q$P?(Bnptpn zOdYT_LmS%360OB-FS6+@?`LIIh<08fPWcfnaH$Dv^z+q%&*%C0JiV;?j7R*8&iI2# zG20tdM~a7anGqh<6*ATrHSuyny>y-aH?KM!7-TLCX}`f)UrHHr&S7>*g_A4eq+2(! zka}~BJSna6R*og>m>CLRR~#wxh6opJfE0q?y90S6%amz_#yH)zlwjH8~bb&joLl zUpf%f0KJAaPCXb37gXD4J zI4*WI{kIK4YR3jr8Qse&Nym@#CVH=t0khB5_7Hts>1ySlW!^Xzswl%Ht_9yK=4~wS z;Ts!xmZ{KTG10(WuK=c7T!jjX3XvFnECg!%*g;;<{3E6F;U6C zo4RDnQ76Xgsf^wgHH#C>Bu$C=^e4(DjR}p5VM5h6;~@=rPfw=S8?smz}Z`6nGv&h z$}&T(ELkfeaE6uFN0btrP%O82ds%NAW76l=2u+;1k&D<@N?&5jiXJO9a+uh{)>OH< z$}?o>1-fw+w@16;6&J_lgDIH+lJHzi(S4VcK{(rVG8tWwZm6vw5EDbd7t;zn+pXl| zidLe7xvc74=2X%9WmR{kTAl3UveI?Mkp8RcGMenmlbyEPI_M_T0&XlNWgrwUqHksE z$Zlbr+b|E*!0y+mCAw9DW>Q%{y==51_XuwQx0Z>c>eYE-@Tb;vT9D1Hy==|{Z=z2P z=GXVh+r+JX^Xvz%GY*O{&7y<`$v321G5Hax5IEHE(Z8ruBINg<|u%Slmt z_JUPUidUf>tTThHzGz)fFyI_~K3-(LR zS!R=1yaT^6n>0+0iNSH(iFG4(FSnMrjpPrGij4zu8=k>mL38UHNu!o$S2GHDZ{OK1 zOAg0LsFS$A?<7s19CmCHyruxqiiw$&Yo66x(0tIk3zU}CM>K4Q7HjOo-NIQwoVK@G z%Inb*0@VUkBxtRO4({ga>1EI9nmWE~LvJ0`!4%Slo4zw|pasKf3PE_=zT!K<*MWHTRaMsPrQPPp)y`SYH8}iFuwiZn(z5G^Fs=5yRg(D*fWiqpd#)y?d$JmwFfuyeG$_nVh8a(K6u~ch#a%4 zO{l@TvXo2i5n8Xgxmu{Yxin(PsOIKU#-z)TRen4j&{bVK!1B6`jB{gbIvfca{5!|K z+}AE+VsFJvqejP`GBOvys8shzm6q!jm>uiGX2b%WfrOL13)EDPsYCDZ!Wjz(=2%<- zW)K>{=3Q4;fEXk#T#29PR|`Ygk>+Pnd}h6x6pK_Fge{ED9LN4xF;Rrz<5wBRs@vmY z#mvprOHOX3I=Qey{0io`eg@pj5|UuI7btksUTz_TYkb-)Hddz-t#QZjmr;Ua^VQat z2-$S>_-46Sl+jhB)tktft|~=K73gW^BL+&FD~mC&vgmc)F=6iXk?mqG`LUCPy@7cP zEprS^>imFZ!%}ONKEO+0P;ic0hJkfhXQ2>29$8(f$nb5ov>{%#j%!GVfuf-_-IBsA zuh%JEc}T?#b7aHzVV9<9)+m!=Ji1C!xCM?+M`);#^N(yjc`s_+ZB{>u#e z|7?Dp*UQ4LZ@*rqaa^yY()8L=BP?E2toVWRbKPL+TSP$C~cu8~uixylx?Cw*B>u*VvO;-+YbPO7Z_oYbGz7h>r(j%kry_f3I3 z{O^@{A5|}hs?{JX_9Fk_R_Gx79R1K1`Ujt+$WrjXi@k$`xFHdTVJP!${e{u81R7O_ zAUZCKvyQ3&GOZiy5oCb^2a~kV`JF4ICf?WECy?9r-$tmpf$!o+0eo8Of+z^c?W~e(qSGlv% z3xpzj%Dwg<*|gZcL|^dB6#j6!`F3)St)m+Wh3cWc=pp7KQ`K#R` z@TXp9&_#k`pqI@5W$$g;+c>U9!8Q3ST8Q2N5J8ZXY{v#g>B^G)TKBarT}z3Rp&8vK z&?MUe&@dVh$v9lhau&0gXLhrjV>)AmHPQv3-+VsZ0V8=dw^#taCBvMwM8J=>C#S2< zxIdo##MMk|y$R}T!fM)nA6nGWw5AHZNX_eN2JCnrSv<75N1UG2yr~;X#3anZ96!~@ zm9T>GXeKyybID`8l)IhWkC;7Zu}H_CR~t1XS7SXdvxxcI3DdDlLtRuER=B_}72yt| zo+N%`ifV9t?}mzPETeWHMf`g3Xm6fOhm;ubhMPCAZw<=7l!}B;NirE_wXpe1FLF@pd zlZM0#sPg6Oexv>ydRtfNE#)7@Q(&xE_N_=pto60v9`w-dv5PLMf~?mZl+5Abdc^~< zU?>o4t@OC;)L(XMYvNbH;W`VqdhymCLA7^1S75Yx{R|}9)gQRKy!#1gGWbL{u(xTk6xSdKAylH)&o}b;Q`$_FsMiTEH$H6hfdNEvA%cV3EZeSsqN~-YY+*X43F*g)yN^MXKZbX;`E9aB>ufZV~=0UGMe~)D#Aa6N7HTa${9k}!L{x% zsC+1Oj@CGNjsjsD!N=6xp`5Vf-@IfjAifT>i!|j_#r)C+G&+VIpajeF08dnMOINQz znUKzx5s!=*#6@&Var0B^b4Vf6bj=GzhyX_s)atLLl&G_B7)IklE*{v+dlAZ@Ig$qQ zG!aU?w~AI41$(uei&DY}kghhXlQ%qJkE26!zzNi%8V2Z<6*sSWa zzo`)@R*l}5E4^C;Ti7F1!S1e&M3Dx5Mz7j#SEW_EM2?bSj-2WAZzZg$pn1;pr%AWHfikGC<8Cp74ib9 zd51yN@Br?ZHA%9E#dMKR>x?nt0)N+XttH1*d}4$(8#G6LASU920xSlGhJk`4Ce(nd zeJhq^tPxyn|9k5ihmvka-z^aNA+l{~^)09sNT%8Ye(8YCKwhJi1R!(kfQNm}xvFl= z8rC(TZ-niJo@$AjC~KnV{F?Y7b@V}P^8tDbvJ|eDklyibYvZRgE9(mo)k>n3yHf#w z_ZspLQt8UYwH_B%Yh3zfo*QJdSSJI`LW;tfw~x1DYbp)?k795dD8P7jw`X|xo3mQ7 z;vGsaC$pu!oYBmdNm*D9WseDF4-EXl?|dgsIL{Eh?n+B&q9n@#q>| z%!=~HGT@3p_4BoayEWN|D}iJ`M8bEAhv_#j`J0YU>f*{0(LanFm@q~yaSLdu z5YsBVPW%|dUNaQTY4ch#zx}vOehp{_?#~Ttzdj_g8vAz07T*BGFXJY?*XeH6WU3Xt z9_}|meht@JkwVw;uNI{>M$1|+8CfF_{6YM0^t69C%exN8`7AFD&$t%HIg+9WiF&*p zj#C=EU5-;){RKEZi&3x5YE2qllIrYC8@-WgDtStii5H=L4HnS5%g%{sCnvUaxhUGC zAMkiYYnF9h!}#V9$d)9sikd%XM`_<|B36BoO}_I+8C2T;wdBlb%);>7%$U)bf8hi2 zWi)V%9!E^*vUU)FknELTiLXOnLikmbLDib@Ub5SNP*K+F#@0zscUz3E1^xeIazC6U z{Z$du6PE%6oV9B##O0vfOf#J(8S~!M4(z?MF#sA9F9x=2>}G zj7KV{5$VF>#ZYPhO6|uz|~Pr%u0I?Ol<#UB5?&wn4R zLpDbu2vo^g(>-G*17fOUv**k4C^^om@om|vh3P{I7uu~Ds8Be2_aylx$@t~){t@}W zRV`TX<=&CAPTgy&9md+eE)Q^B^1nhS0%$V%)2J$N{%qs`2~UF>*PgZ9vZ&*g1fcDA zzrjPVfyGgNFjZf;)r?#-uSfjgC|#s=C9cmqwLj|bW|OvA+&X5-zl!f><9?Y>X5$Rd zVdvaWTNNmnCbOb66k{a-2jy({t<&p*c2eq*xXH=Suk%5Neb|(IMcl0?3s*UA zqc8OU-Uz zx?Ej1(F~oz;f-cgZ=}C(;_nc^k~;J&*$k}eFaIbTgK#VcAwe{Y^L#NpOFH$N5v8OI z&P>|#_8=a`0eW(I(U6s)xVrHz)7(tl-ssrSH1GCnhA~@z7_Z#L-1(qB7wh-QIOhi4 zT{YeX750@n@8_f18|F|-U{H(t!>h5`Je!TvVfJ0VIHM553`afct}(4(B}wIcx`K1X z+fwm?eAegFI*V($&*G92lEnd6V;go7#;%Ain91oiGYsAhHn%Aj%XZfc4_rQvejav2 zcfJ-+5=$<*i*~bW#ZXos^-!%B;aB!o9jCQ%Bhbdx4c?3FFO*z&d!^Oe*N;E26@|*Qn9$yHP? z2i2AnfGGU8FD$k0OSL*o<_Y7?ynIGtd>s8o5JPR(G!LoOtwOY+9=_|CF@C+ znmF7}j?om7X9d}Jqp8jI+N{8B?uf=Uit7Ka0lXsIhW#mVr@IqwBi&u8smTH*Y`O7SY9*$VL!A?w4ufd47<`d83C8%#7b-y3_?R_X>Z@9pk3n`-;<2tZ|F znP7jh{%uux@jAavL+*c~xDM=?aX$XN{2H}5eqAN;h_th|-0y}0zV&1|GMn!HHDyjx zu~F=#3N=Wcs^mJZ<_+v0)}zhWwSTbKSK;D_S6DGOBmOR?UQwUgwT=s6C3+i87l7$L zfW|i`7O#Ou9$*#$-YZZzh>d|^nS z=}4snh*?la0~$BGRyQ&?&~I)2S~Hx++_tnXL`G1oy7z@Sq@(WZD6DM83-ZwE;!v1}(3~$o0`sSNh=IiXU!`yLjB}!mtvA zbNO5*{@-LQbyyEw-L6sB&yCa&^H-T9N)zljrCSnv zK(lH<>t##}Ax06`7I<{4b)rDE?0RV;sTTEmu9t)Cx*UsgyvUCLcR?P~V%lCXC?ekC z#@1C}(fP_(Wyh<~3ci2`bE7PZd6xXJEGe@qQy=xMMWh$`HMy@Fq*p2~FeYiU*;N4| zX!`di23N(!?aC%hgC8V(xIO>u+b}F?HnzSK3t_n0NMvsvgdIe=dYw;}V~A^Dh1-M51w)M=~C;2oU<00@23e)B^ zS$>8V*(=lIP11{1gFs)N_#oouqz!|p$+G9tV;;m9RXG&BM9_mFUw<_J{J3ZSf8YH7 zfuR*`p}8v*p?>qfWkC4li`V8UMgyx0`vYj;W|6xgb>l(fDkaOa;`}Aer?i&)o;>~I zI+o8OXDcD!t>GXo8dDa@@sdC8xia_b%G`Hl9@Le2;L3bdQ)XTn)yH)uD>MD%=$a9> zs!OoD#uDtUu>|+mSb_&@FTqDgHx8^W=Iq6M(Q#-wHM|e7BaG8i;LG4GYJtC_6Xfvpc8-TW3tclCi-uZlI0gn;zx zKO6F>&bz74Rmw|Cu>*(UF2k6fK@CwJW9rQ6afr3$7ET^xZMjl&TgodYx3Klq6Jbur zk|o=YOxmiTnj4&XkJNBUD=O*eDYtbr3#lIJwi5MUyP*%AzQroC&=2j_)~d`aqBd9C z^#uXh?BKT4nypGh?xLftnF?I5(3(|vxL-M6!|PT2B6m@Hubp1r!t^71KCZFU^Z#7x zYiD`i*#QaKX3ff?p<FqNXayJiocc57Kzkz`*q?n_vB zjlD2SJqEeS6p3?#k~(4Q+qc&5n0j=k#2+u)mJQ`)I}D{Y)KiCu@wu z7fsVRRzvF?TU-ZR^*ral7<4}P?L+7Mmx9juZw@*q*(gt^7-it*>uoscU*P)sIXeAp z)xy$xtytFz$xo{pC-zGsu5U)2uiU0^)uO|?;X;OOSB|}Dw~SL2zwEHKnub;H2GeLQ z|4-Y9wHI{_EPQ)|+Pd9AU4Ij9sJGuqUT2HtEJ>61+59r000c?veLi0-(=pGm1t#v3 z^j(&~{z6o9Fh4lS&J#AVKhKhBmW`4uEpxu)P0Mc#5>Cwj(%~>G%lz0hoR-Pm&Ph>p zb*O_bjpa|T*>*x31pHL1k~ zjH1EbQG1J(4|k914WeupD-ucE?L%}C3$*RGKm1s}eNV@$O)dvD4hDi!^;TT$^^!~T z|BL(Pulc_vAn7q`#HGCmp-lp_!$WH8sFxg4Yez>l?bQzto6_T(p{7x_aw3fFnge`$ zno)SpP8C9f2uHMy7`}$C^}y zW!AV>>DWxI)27Cz#UepU09H5~wQF|aEiFiBk^w3-@-5VHB{(Cmf=4?EP zSfDum!C*B!iH2SU{WieboUOPFSssT(~?mSm--H8mBG3=LUl;iZ{UVQe}ULn zjXXU8z~iBt+iJaKCnWv^>fUTRVFNebiAnL^ovV|1F~JGck9>|bA{Q+WyLS0iwHprh zi+t)}J!Q-PSvJg1azh_n>|B~FVY`@*@~J@vWgVTs&c*9EDf8G}r5mp@fD6exG%o25|;E!n@j` zkBZ?ECfuhvFrnIMGhf;L6|uBTn7QG1`$G^)K#B*0qb>)DIo&{*Zy%3~;k!03$G~5e zfnA;VX7_Wmcu&Up=@c>^7PEH6AdaX5!Wz2orp1j=ah2^>v#8x3KMaGT4(coTv5abS z-?#wZ2GT%m#gEqxj7nd#A2B0$Y*^$MZa9ki+9=U#U(l$+XkAG<1?Q^(SqNO+ zU+{o{i;H?=L%tn{~I6KX!uhJ@CBL#r!c~hVm&|D(mAhnh3 z_CKb{!J9pP)2;DP-=pp^LG0qpxosv7X;^i3y!rsi0P@NJay{}vBh1u$cR{Tk4`xrF})P}==4ydQ~PRS&%JiN!!TK<*8_497*8#RmG%f|&nA z$c=CxYJUQl|4=oMQ*YXa4^b0@T26EEa|e~*=8-x*V%1UQMW7vxoftja>j)a_LN-JK zpnB9PxeH5;?n+&EJSZhEVD+O<%HLETX(QheIqgj#LVfPvbY(0BX;){RkRMVQV{TY* zu5%jjO4lssD$k&`;*T{geHmH%k{7@Hu+_&e5G)heqL_0og`zsi=j9@B7V?+hjA-TZ zOJ_2D@G(1DBPYrAH@bAn4BEW?dRV{#nY~yA0{wDE(Ou#$mUTN_i85zr1#5c!FfGAi ztheZD_}DGdk)_0*siKnTN#vsTAXHrhm8-~=XI*qtUBCySlH0%!Ya<8?9pD${mN&k% z*FD_?&uYx0xaD$>55;>9ER4w8#nySBfWub0s@R-w6P#Wp2E zzkNt(kZWElrC+Y56snr5fYPg@YokKL+6+NG6d6#7~ z7q+ZS()m2SY`S0~QrUGRvkKL1#x;NMC*#{x`^C=1>AYCZvcRNN_5UF%z+YUAx1J8N zoTZgq*Vj`3VvakE2iBfv;}l@Zyfru0{A665o405AXp~J?stPA&YB{vBJG+2p)6poO zp4#6rP2#_VB9Vaw68VY&Mx+8q6c;Tn-Z-@4|jNO zkJ|Ms#?9(ddaNDf zdMN9P6q(I4wr(&x)c)rxliov3#ICVq(`L^g3p0tusL@`6Lbnl|r!i@7dbK3r?hVyD z?^%6=3jz^NoPr0un%X_@<=#>Ay++f3ARjmiCK-3DB;yCGV`-tZ7PwNo&4oq>Erf?w z0udhN?RNy|cmmxB5X4(t1eF(;;JNytlCL#W@WBK?9x(GhFGhw!@C{% zf=ge0-+&GY5gJ5>c+sM~K?BNLg*4^9PxD@{>2f1 zJGliUl)J5yR(sH{f6m}|L7$g=NHE9-zPXS$?p#TH>wDx(i(l2btbQgc1m@lZ>c0X# z;d>$&u#pS?dx;HQ;J=r>Rc8Z*Hg*gMS~84!k3c~6$U^?<>#veB%O;pq=`1x&BzQj< zmLfSnGxP!_B}lR5?8hY}fCsa0e9>RQ!ggdB;6Q8#NI^3@N`2m~&4$1;N_P9Zb)!xF z@rt`_YWB@QBxf^NoTUrHHf1Hm6{jif#xg8Of8OXCLs-(jf$Ye@o$@*+=lY`T=!xHB znCb3U+qeV?Q>2a3;Q2M$0C;H_g#(EC`b{H<){jHsg+Sm1s7+;V^y;!s=vW6T5A810 zh#w71yqah44GY2U)Dy6N#w-yfnVBDF01uPgH2cl~h~c1911iNB9FDT4oDJ>vI^nO( z0J5?){hM2Qe3_gU=&W6U>k#=!Eb@8AaM%L@jbV8qro5YF9P}@e1HGxSE6#%**}#hb)GS;u2+Qc0OWh*TOZDvLOZs3B(MECP(a&`E@BPN^`v0WTe;F$M!m`3h z%_Qe(J*j??{7mHeFKXgZvD~P&@d%AUu5aS8(!AM8iTe3;n$1DF)F9Ehj>!m;Y?&mW z`Vf)73s%o^sag{tnMt$2?0rR8w!(YT%DNy`WJpwA{c3GmvI}#S!zBv>!1nJVC@7+d zx}7bPt`B#Q`h~$l0$8=@@`FrBAd(w9FkQbT$MIq_N4u6cgc?UTX4dIqi^X5ew7bM-SEtQej{=hqmT`%v48H6~rB zfZ(lp3R;Jbnn3q93={mcwb|I<(tf!-HWXCn({4S=&2Ma4;8e~{*AYaW#V`PXTXN)i z#0NPC7gLpVXlC%vqWL~^H?w~s)o7rV{-()PO*x-lb-Py`(UwxWGze+evFl)-(&3^o zd?U;W{&&>vZ!);RyT0L=OG+Ty+UxJ#@9(u>(M(-f zyv?0^cQy^X&)xj-Me-ln<**oK36+I!XN$#bu(Lx`F%1rjiFplQo))u9ibKlvzW{+k ziogfq6v&MoEI{V@@zPAF+(ZZFah8G*dxW zot;OI#_4f39>{R<6@uKrjA~B5M_Dk04B1Ytc*rKhF=GmKvqi1m_Ie~0(_=Y%&6TD%lsQL?%5`ID#r@%q)1r_Tq; zr@hUMr!T+$`pF>K`xJgWd;Zn)H|E1fpTLio-+f~qcg^GTZ=Ma32Os0po9Ew};t$~Y z_0uP>OzHc7Fh9P0`L%g`02RM_{>2;f2yb6K`S<5U#xzg}2_R93Yw3 z8YhTLmIj#67^O_aegtG;G$;AgU*k-|!rP9wXyF-b2Z=Bs%$FVf>uUYJMoVt!W4^S>FuLk;~7NLc<3Bv>~8I|A$ulo8V% zD6uGJQsB5)EX-~|37Z^x=kWWj@3)V>A8mEM?;n0YI@;_n^$V0*u&G( zOp^~%4>TX9-NmIhLoD}VYI?bg=3cSlJ=2e=WN3n2zZ0{X&ujoLs!EMx*2eT4iP3C= zi?Poq%e?MS4X%HKaXZby`i!c`fZ%b1?Zu$71ZaX~+Yrk!{2*bd@C&WcAo(c)5g!<^ zpv=$od}Tgg;fbID-0kP(clmTwoa0~sPv3t3SfIpH^`@AaGCUmh9>UU^V;Bw()@MdK zif7qL3W+ak$G7VZYBx3zY%V>`{vsog7k}10tG4yjk%|4z&EK0oaky#?q-XkyKRO05 zuMlSL_SNw;{gfWY8Tg24gO(zOn*wJ#DlOxWRoI7Fn*Rexp6{8%ejk@jG7S23s83YsB#tSSC* z#}wm#TZAh%ko9?n<2A3f;ToMQQwHX7T#O8VV8ahXS-c50&i60~2{pnSW0wY7gmd4L zvBPCVyVF7n#x!uhwgK5H=)-J`Dakv6bxh+p#{O`e8+cax!96>9g#+-KeLsLcwy_6* zS+g?0BV(Bt)009$5K6o9DUSs9U8eSDj9CjGEe-&zW?wyH=FgzmRx26c#_>l+i@{oL zU&toOo4?$87njn-Sz5kS6H$`_@d!_Hc zsJ{QQqVK=N`{w(rsdLuFAOJ@&pEsVziNh{^AF*^GkEV|%y=7ckRd6K1+jltL5Z-wB z3gBp7Y-&w-MhYP?AXxC}7AQIJZYHke^c*f%}Xv^d8^vAhI%TxXUyclXuOk zqHmyftR!933dsCI;bmw6DpE|YMSH^nOXv}$p!2l=B1rU@2Y} znrlbk%c11(Xe-o-#o#miFR=gFn9X{3N6xcyS01*i#`~VO6bf#9g~AIPc!3;7J^k zow;`?T@|?kpjv4!iAq&>f4Ex%stnEBoP}MkQTNvDO6z2t&)~iVvt&a)w-UzFOs%tb z%;ts)QF{F*QNJsm?xN;ATFwlpj(Ss561(5sF? zQa3j=R8+vutI*}vX(1+;C<#dy*2wF9I?hLl;!okbWkqHGOKig|drC2CSY)I45kv(_Z0TobVa=E=7t%lp;wTbpCBinE{KKqDOxxyrfUsQhj?HO z#s+YTfzpPX1D_puDKmL#SDJvwv@UkqfaCXs6r)}hzs_u>d2iWNytknNGsPirrDirX z!4?)ELdEj)buDb@YPKyHfHa{>^i)})(rt^Y2JC(eY%}}Pz#cUa8||L1z86%d^X1}9 z^HJWcZUm;|#3zbrti}eT@V6*lcuxvj_MV~P0L2c~E*~f1D_MZu2wa%r{tH{!ls%HU zew&S!Lp-5BELjO`&j(^ebDiN^w-h1p@^Gz`rm`UTr&n8M&z7NqZCu#{{!KBTm_ztC zIC+A4Iixmoi1IoH`1Yd!gnB^&3Ah`v9fvO&`haRhF;OU6vLvbIURu>MJBSt8^q~H&&E8#D2}2u2KwazFm>u#of^yx?NO z@*nz`9k7OmlAisX5Ik=AK*9tC9Q%QSU4EG^2I_L-m&D%*yRMdq76*S{5k-ci=v538 z;0+dq zTF8RCYD~9<=7JbSB;IM`S2mAJ zORv)}MUbqnBI%YulqcxA{ZeUpy?&LhTIO2mb&_6m)T9gnfj?wwU9)Vi2n;|<*kN=d zJ?E2IF<+!8(QUcuOZTGwZ>S_=_eSjDEDB=6L>MBNoi#kzZ>yOUcnXpw!=$Cs!TLSX_fTM0&V#fj>M zuUc6pKtbj(yH$92knFnSqi0gtlP%ZGIt#VAu@Qn5oun!;YunvUs%zOibwU%7d3%Jo zos*hBcIZ#vAD9nO>kP(Vq%+zG%p7NjR>sH1y@osFMr#MwI5OB64WN;&;f446T`}Da zhxM)msNWPtaw4?T_M;?)@ImAWfv>XBX|@?zd<%OrqgoKy54)mO^!uWBb)C7Lj`y~G z;EL@#niGX}$7tdQwmyPrVJ8XcY=$cst{+}gAs(xsp`e5!j!{>la?rW*qmi59#`9p%iq|}%%)KF22Adi{#;1sa0DTKvgEX$Py;HbhGV$g&=BLb zkU4kq$m?=_bPfwwgUH`7Dam+@7a@ws?E?AI0o%-a>$CUsPaeZ5$3&;ovt7D#YHjEozhz>|Gs_AaA?!u?<;)zGD+@!rseSfKL}F z)Tykt09pl&`nz30*#^r@gC2Mx>rl4Z*Jx*qvV&v!K{%Th%}3dUtwMC;e^>aLOjtlg z{Bu*`ioQnY-GC5Zi{_>_JX-mt)cwywzE>LEPTY`hi+B%PR1$8i?Fo{J|7R`iHhy=U zIICW(wOB&H)i&bQHb}jw6+Bqb(`|YE<7ds~>jA`cY%+lDx|%WuYc9SGF;}p3p`?Zt z7RP(zXf~hNd#H}`3a-NL!Il$HZb@3Anq6hVXB}UrBq?6!Fsi@*J$#4K1UvF>9Y3Ii z>an3JF~MqzRIT1k4v)8LBA*SHPD6WjK`cpb)&mznzX#Dygblgzdi?Cvts`7R{P-qL z%SOmpYC}_?HzS&Fog5Aul#RVrS~zHuu1AaAtojPXnHAItg)3;1TMqGLMXgprlzzn~ zOzDj(f+!yeF4WBy!wnLWo zrNx#o_-+l|eREtHAqCxnUjHoBt(w-HY3Q%6hETx)o}}47j1v4eT?(J5tds6?H=aDW z4;2tCH`%RLD&>pSbs~tnegvl6bqBDj%9YsqUL{@hYS2!u${$UN<|p%Xl0DkoSeTgsJf*>y;|<`t4KV~lhdSkRS6dyNc%0F; zKeO#*Z%W=)qn$yM6z0nww*mym zj%w$x)b;nHt-CvH)9nUo4Y9;zlbs8nEEe-l(#l7z(6$HHzuS0d4ZjZl8NZPeOQT&o zf(c+;fnkV7h513?HY^wB{GKewpbS0*R~8B%W(Gf*nAtpe^`gIipc86iWn=~^_AeQi zVUxrNumXRy$Jo8Y(9-7R6UfNZpUsO!0qfAmxV30)0XdPT&p9y0A3~HR9A1sx`^oCFB(uhDa_0a^4~$kON04YF(O$d+GQ+_9=_zQy z={~?Ke44=(o|?ku)+oVmXOT}(;=Vy+L95@lnEZxE)uIn_k_jZZu-SZi;&bnC*IkKB z(C1-%Y0l#~1FS$rTMmJ-wEjzi(BtK4$v}-jy2yv`43K_$|G~$E>MU&sy)jF)0gGK4JJ(VHg$2^XnQ@97s3dUeKVTr&`vx0S0aZ!HMi|zz6AK{0a9^4&@@^qGKFk@ zUl_XAz9xsUlH5HA8H`kK=&uEl01Z|`&p=Zb+bIi*jh!#d%%|WHwFKOSL6Rr=g{c4_ zGg*!o`D~n7^wIga+lYW@r7-=#-5Rb@EaoiR^W3f( z(W4(Eut6zAo5Qz{=bF zZ*a%L4wm@@j!8Z>ltFGP3^QtE0-8ebm-NOA@n69aYGjV@F(9~fe4bvG$t*2POxJc= zc4b~xEFpeTf|@JSt)CF>I_RGfY+3sXLCPfxqTV`ih)m~mR!pbUOQa(5p@fmivywoS z=vfbCMUmQ1u__bYK|4@sY}>$U=hqGbg>HM&=pQ z6HuISGCQSiyv6E+!2d)YQyIydIapE($|E#M8%umB5~bX@48(g^`hziO^#sWkR|#9= zIQ2Q02EWBvAZpnRadmiPJ?Olv05G9}=%U~3vf0{1+}^=*&G;!|E}lk2PN2G+{dnNvGFPdp@MrolA&+A*D0 zrs^3~DGVSj9w4^kUSM+HV?SUOf#wci_b+TI`7Zu2!BuvM%^ z##y3dgqBBR)C5y?)S$G~EYc(jCusNy)c_2V+^i43`5NvMFXp$@rA-NnzxKn=I3m9c zzH$Yrk3Z2eZ(0`BwyqlvTd|+HO*LU`Q1-83DPujZ>awm+e=gP#nK0NRQQ`PpMvVcYb;yPM26OOFg3Y0|SJ1saJyxOZPL?KH4dly+)%!n@FMo+)^*Div1lKO6gvG}h#Cpy{Tt7TBY(<|*=h(&)t`J-uDbcT9dVvcc ze%A_me4#HweBsWKHPZT469Uu>?-KbrV0K&psqpejOKw3TT$r_4VzR~KWrYriEOLgx zOgg7?rpx?M_dPbI4{S_Oz`#=})m?UimC zh5v;bLlEO{)w;|!o~HBT^pxEC4OM|BpObg5x8+*=LhMCXY9?#*g z@ZCXCD>hN@#lgkHyB>ogL0yDr&!@8`nQ>TQ4twL+E2RfP3-(p<7t>L8L2@AX@+*#U zK))nVJQXlZ0zbW%JCVdU`?|r0x*`3=N^hvrJ46rk{ZKb>`Bf^c7Q=)MFQfIMi@8%Ad%SD5MOL`=yft0ipJ4Y>>-K{8FLS#Pg5`$I-UD8h!yA z(qtn_XL^Ml8p(*cxmnGnxfu3|r_yt&>5ZFrHo?gEWRSxO zj3Z9zC>(=2@C3r553`8%Z@2)CM)g(tE`9=52mqcAOhjhI9GC@rC4!+(N^ZH9}Lg+f=KCB zKv-chl-6T~h69!o``%Z{*u3F{y0SWU zJYkE#;e&?0leEkwH7yqCu+6gqZFwT1LovwN*k~C-ASdC674D$SXWs@Cg;MEa0g%9w z3D+v5zS^=gHrIOFN}_{N`)sJp;n3DSqVT*nP}x~Je_}8im?hytzHK$lcUl;hV0czL zDkR)vv$v87yG_C96-=njQsWjDOFlVnQcYjC0vChbLj&I7w@PT(3drahegiD(w}@X? zL|WqYA|1Z-#sfj*AZCcQz1yfBgE&xD!wooXl9MD_SvrVLvXWB;qR0>32mtKt(TAlA z1b!Q};*wAd?Y2Z@(JT+poP84#So^eZIJzJ_i}HpAHx3=3aM^;FSG)ff7C~*d|Dn?j zmRw(n@j>>GKrfgqu<}t-D@T>xO6Tq~^H*|vepglX?A)u$UhnOoCTZW+h>*3I^<6dU z2?Wf;jCNmenbHVpG$xPj8y!n1#(Ru9$EGc$0%qX06~J`drM&UL7NY7 z-E+ayFvf5jjl@O{3i2lgswNn%^xW=03+Rtn^;k2(? zTdpcB);CHgMT{4IbE_X)S1n7@pluaI;LI)$dt8sr}L7i&sJM93nF!LpU>f72vF95ITMZbOTw#(DW z_9d3*!9lRAmYx`8kmd0*JfrGpaXAxizNhNz2$_x8# z_4rl_#*MfO)aRY9I=~Lg6NU+=S!Zta(^a*K?Ew@%(*msGEza^@L7(~s1M(ndnS~-E z#XxX^Obz-X@2WlWTEu1eH(yn;0X_8Ja)vRe&FpWF*y=#s^Ie8w7)XR|_Ty5d!f;%c zQ$Sltqk^+(a=*VT^58Kabc@%@vtl_OC8q^i*)C7d5{o~&0q%t{g6{!OFhHwa{7j>G zX0PLrM|2y`0fx?zskf&gl0iLF8N|GYKZnnG(k$FRR7MLt3IOsSJ zue*rdo3j{pH}9Zn*D5n7caZ z0??tH)GeDsKwltFH#Kh&6Pal2)%AnfG4~GOsyTN(7P8tgq*)1^lqp$?=Am^`6#e6L z-bxN0B|jN%rGRkZ=EWd+`}S>eg_$lCCHxabFT!=ArSt4a@FR|dma<=-uL0JUjN)H+ZWQY<%k*;4X?4Qw03?{Eu4yO@Y;TG8A%~xEjW*ATD zbH~X&BLq-oT`RpPRKJ2w3HxcB=Tl*XPAY~0HnuDj`H$?|&aILZE3(9!dtmI8oS)^xGf=%s!)VSGwu$3` z0@OA&Xlx}MvT=UFHS)#~>8K~m)be!qo3XL3P`q2>9B1d7i?%dH@CedYNo}I$5n4r5H*X@z1 z!n7bI6b7g<1R?oFZE76kV_*-8eX)p)2HZ@L2H(a{t@=~oi%+Wc@l(rR;B1P9Doq5r zcPamr1mdpb%2E9M>1M3~4Cuz*4y(6I^=b!6C5r*$JZ3a~ik#=&_32K~4zuMsVDA4j)-R+a(l|{FNm93OqS`g8YCpS*N0J-qdo(U=3L4C~g{qr1f?= z#f$l=w*;-aaLs^@m9=ICK6SbN1e`fK$}xGqZ2CF!*AZ4ta-Xl`&cmE zL6z#n<@~`=Fq{d-qK4?)>qM~?te~Y#H9*uXWfD7!DZ4vpA+IY6Qs`~RRy6>u<&F7{ zpkv^Pj{P&BJoj)t)HM)E$JP@Wf!ZVwC40AKtWuA0z3Wkkf}g273u@Gxs~yJ@~JE-god6ns zqGW(PRI9AnSM-8;8*K~A#Cth#3hyg78);8QtmZHsF~i^qj>!NbSjg3*4TP#>UZ~bx ziU^^+zv)zq`1vwp15cfZw~%0CnMyB2w)`gInKaM;phH(SS7* zHr(~HTo{`DZ^VaL4GcEGye`z+cAwZi7Eru4Ibv{$RKOzy)!2Llh&cL)Jb_t+_xWfE ziPu12sGQ8>VDtOmvw~1*_$wMDlwts~6oG_t`#wucKH`oC(2}5TDDu`5phHVS4WjcCXe0su`b1HO|9En=kZ#J>W}Q=$pTG4!=JiY#-h0eqY|}^zU`= z?(l@IqcIx>Vhu^~VYk~?t=Njz`_b0B&)H&VQS5hFf#Br!?a3m|x0LUBQy&VOO2!QLaWE-EbRdw zH%K`7zA$hxG4$8`GBKaufs^mv?(WB*bffkU0Y)T3FUIFYY#{;$e^q7Qz#@NY~=w+r=O&5y({?@nDAmfx_}hRxB4CZ?rNY17Evp{&u12(;HV7 zIauN9ZRglKpRI%F3mK;Os5d8}x=t2%R~Q6lZr?DUutID^b`jX2fz~Gbm56}prhNve zz(Vkfwbjrcfd2Yxi*@qp&#|ytp2iD{uMCX+Ov~!`7%VFrkLa$+uZw9Y6|IxQ4;VHV z+;psloGsRpgFvB&7Ik#Nj3~4Q{;`TvnjuKo&}_s`*?#M@O&*QNsa~qCYG`qag$Bxq zC@i%_?R0(DenHc3&QyY38VUpm8$#qPj)ZmTf`YNDjKQ73S{tg)wBmY)LFHRi}6+ovQANrvOG`Q8$j#Rv{JxEaw0 zIqp=RNiCaZ9Sg_uUIy_LB2)8h5+Ie~AAsbm#^ z*9aK;KQ1#+E+}s*P-Iu4nW@QnB76S;X~aUVO&X>6ss!k#Bg~G9`9Xs8z>rHvNyGmt zq0+w2rpw<-pfnh(4wFV$tgJ>#BdgF7jn0rHGi$jl*NJ`x1y=?=bA^Uw*(U@4<=mj+ zet*aO4_vmhatFLycZS70>zh*Rm4=4B()ck}5}&c?uOjjqs(U2(8vZcjeV1KA*cH1^6n!k@V4`jdnGa5>rpOre0P4_nnjs@+DrY0)u? zJ7+A%kLUw(stnN1H%Oq=NxlRYFhx;kWAr9=++PTHLp!0NPUei84Gs&N=|aIULpIE+#pislG*H;Oi|eKd3kJ5 zKnaGzV)4wzsJLV@6y!3=Saqa@;1z>t3Fyg|%qbcvvzG;~ou`P0R~+s>Jw`9;L9%O+ z_hyx&gDq#^f=3BtAWz$XVd0pBjHETVeI=^|TSF{F2@&wvv}&AB-+{pg=Cgy2IA9Sj zqq3udxDy>}gH6UcxQIci7)|JpUje}atxnVT`6=E6WQ^0owZs%XeV)xWfNQIs(IiTk zH<-!cj^WoBJt$s|V z9h%?KZqgZ2Z0Y8Pj>#z8p4T0ym4HxkP=B6}#|-))GR>0TefH5OpY^qOs&F6R&7ac# zy*8L&M*N5G@e`a5Agu$RQ5fGWng5mj6Pe}w~GPrZN`#(IsnY`LKSa-Az#^|&VdI+=Htk1 zpR&wim;(q-Frc^1#)i>Xdgc$tYQ%%aV|R_blz3ge1W<9MMMJ<2;Srjin&VzfA%f@o zyv&cswjJji#8m-a-A{I8s@bN%02@q@vUG0cmDmo%1fAPGW75_06YDulfx^VKj<)Er zUYt%1VMS*^+&|9Gazp6>y_24S_6vOZaW)M9d%GWf{ApiWU@TcCEOH~e$n$vt$}d<) z40h^TLwidMc8=Luq&GQ;(rjKzBt72WsSi1B;Q`m>rs@~@c;R$~p>j(js%1KUQ;X6f z&`k@;T7HQmq3Z?`y!~)_34M%Yfx%b|;R2^t%Chc#^3k3$*H_~tT#5dT>UYyjT~r&3 zFBw2dT}iiDjylRx2!LsJKE9-V5I5EBcV1K8W@^^|F2ms5Bbw%+@6FYQ~O}5O`qQ$B){Y4_lmPC-ba4>nM$+p$AGx3MI*uQ#!8FH_EyT zpdvidoP3-06j@z@1V;T{IAr@4vE$3Bcn{-9I#u!Vij~k8OA0fuF4R4>%Q$rQbgAV@a@j*ei!t5lje?#`o zirI3eJUE}Rn@7itrR#0EX1J=(po9uQ%?_(_Dt8CrlJK$4>@tL4o|^p0QBtTyPQ&y`7E4e6=2flBBiM7 zNPL*io%VTr(ph;UzE6-kj_l;`@ z1gO_)Q~Rd zc;l)Hx?H>Zw=e$vOR67ZL+)rkBrofDXaB;Dv5HqKH{#9nZwJv&uU|cRs<&Lol(nb$ z{Poi(ub!{HMl3EIL=TX=HsF)o1OfYi21jJoX-=Z6#nK#3!no37AE@`IrZXs4K?5|_2rGGl zGkhZq<)(9cu){VS2Cj|31h0XWQg~Kjdb(I^%QdC!kC6M;0-0!TK#J2ZU?7C?|{bg2~ApR;e?w(i)kQ@WB zjG6#ib7m624uXmU1BT)|;a#PsBhkr80Ye6t5@SA9t-8Q=v=X7GsoI3~pkw3udvfJ~ zB|3-*%}+gO_A5AO2LZ5bRA5wwSIYx%#MDUZOl9`W@!H*uSv0PwdgUo-156@1(OOBX zbz>BCS4Rlk0@@Cn(8TAVM=l<;;TX4%B67ld)L)5!SP`mvxiBGgCh{s#3LHtbo(Mgr z+4*ZG-|)u^`}#W~lO=YK_2I$apv4JHmHMdi=`+C=(&Vd{Tq>t^2%evWr3bMSu6xJ0Q9gJ44t2${ZG8|+V01++yN$B+! zn!}jAZ?TF6`)P=LHzC!NrLCFKX1N3EW8tWD z=5(0%n>1P8Nm)~^1#iqn!1^swYijU9V@l7T2uC4ovcO=SP$&Y{_J%DJ7Q|pSH88x! zph7#~89{LzG5Ka%Cg>btj=FTLv^@I0ZeZ#d!Xiu^K}KFaqdqz;hw@$X)H0Kt%|Z+h z&0FU{Y3LZgO)p#!qCkozPRk+D{+)Dhl+GyZw_rXiJ&3G8&&l*I0>rmX@RIj%lBF{ z@Rl=acMF30z!%d+0f8YqR%_s!xG+Z-qRb^&F2O<__2cFOo21k96m*4#_&SHm(Fl}y3N;>xflWoa zYxgcfeTa|hm-*@07>${D!C6&l5or&mWpJ#`6-@x(uRh{;swvk?yl6$ zbHQ0-Kq>l{AX^-ayXqjTwDYSN)k-@X68tW-2WG~AVLY-RyauF%!on)ly`32NAfnDh z(gdrSc7qG#Es7q%;so&ukHE)!o^=@xO}2JF7R6MIHy8>0gjEJ~ptYFXKk*s?1(=6a z#&5uLWo92S>lamsNd}_zKoqw4D_!9b}=Y8)Cy)_s0YpmkTb8HV3*ssjK7#HAi za2HHNy*nFLfv@J4t@T|#TAUGA4jyG3UQtGRtu|e?pgo$cYykc0fP8S4Y=@17pWXDf z)e4fBlguy2;F5@a+maASam8vLZikXAohy z8Zc`8OA;x=X0#e20GNIC{OiGLhQVI!m`T|p2ZfgWkP}RqaZvX9mC`&J>cZjPV*U$% zpX3*4iS$KoShnIKIbNQ!@RclE(xm@!GBbt7>@S8vIM@Wak7}7fov4vync^ zERe#KP2-Bbn1LiREX)>Oqkcozx_7GA4jTc?GQE!bo3Zv6Wo@HocXe_zZwmrWj~m={dgmHVy4}G_!&ao`i;(Q> zJBeNgT6kqS5y2vob7!q3TMa5s{c#Qy>D)#tOsCT0xG3IXU<(cTbX1skbr!QhY%``B zV9a6o8u9Q639^bM-ip0f;T~xcC*V;7${fS!Ks*T^Ft~`981O&>Gh&i&(aT_Wi3_Z0 zs*w~7sNM7Q(rIGU)FM%k)vPN~SX3GjKAGM+@kByKO2@M-=I;!*ffMwsRTn9yBII{u zicU0piE@ZJDW>YfXyR86cdVf+CMZTW4^w-XE=FYoW}eT4r$_`W<6CJ4#U z1#68%Oxt9u!(z-}AIU5}wwJZ6ZZ9TpCsvMnFgTDOBB5?8JUb>R7`KVSc0^^pR$EXwY7>P`<>eR9#|tFU z8zQ*YXsDs_xQ#_{&hzrC^yb~vn{tHcBuvjk{wL_1EH)g~18@pHO+7-w(q#T54IbiS3e*6Co^ z=W+SY!w$?6;Da1n_#Iiq>R{BZ7Q+~aykFw+?YN)tz+EVC7Nf)_ghx_LaR2QkXDlFU zVySBk`~1xI4tN}-JNZ&w*{CcEtl)fEwif4L-)Ei_Mo42%1heMxsnO|2)v9t*V-hGF z^)|03h;uxZcC%YRMXnmSYOD=2n*`o>e0oa`*Fa9^Q6~sEu1#XE3puw5I2INEY9OZp zzuzk4YzgE%`eh(T2$LWXy8@AHycniV-L4y0yBhe<=KmYgMlWq65l zCp!jPHi3?h0u<4jwuKhI|4bZ98EokPQ`9DaZF(^aQ?Z|iZt_x<`0JuUF#E<{5$0|S1)FMJz$oHygr^_a4rcL~tILY1xH{nUg zA((Z9*p}~8?#~>k0+(t|zbM!NwHq^G^4Md51m{@=}Lk6p_3{#r}`% z@)efFkQ|uG%AAx5Cb$A2fBU_)rle-h*gq5+@jCA(zx%`ePd=kkf1Da>X0e=_35_Y_ zG@Ka}`~Dt;L3W6og{g#4XMzJ~5Er~SUu)do(lW^C$#Y)fj@xdiB^!7ln?jTCrp0-6 z8kp)yBKQ~tk)PoBc`PKoh82S8{^7IFB&k6#tX|DP-TN1CmPqMqR)zxwRtyvS^3e~* zNhbQ`8*|&HW^aICv5lZ+lRvb$Aa+(Mg~z#N1AB6vk}YU4cn&6p--di=Vuoz0cqKp& zJI=5O(R2Ve9Ihu7g5~)rr@&@jV9*!OO(T%a3;-Wu{7~CvSZh;)&hvdPf?c=~Xe<_J zF;0TnU@TXl?>g+>WgAHAN~_EcehriS3U8G}EhNit0?v{qp{O@ZD zrx$Lm-;MNQcxY1zIcV6ymP#+4m)~UPqUI16)mSVhjoY_rha;L@(NOpoLCdg=zOjMz zWcTC#uJF9o40OPk0VV;0SGz=RRFIJuvBx_x@lOFZ@XAEOc0~GfUW=9fBA+V#sWO}s z6aByrJU2^jqsgzBoik%j#jBR7B8(PEOW>fZ{5WI1SwGur^(XScwfnl(q)a7_eQYPT zc1PEokLrq*1M79e-nllm6q%{8Vi?U}fFA+db)+mdgRn+qs^X+tE`HMQKH2^F<769x zRn1d~jAqba3i&rmxx45hHMdnU94_asCS@+)SRm*TI9VzGLN?(2~E{;0o;U+B^(N~3vCq-wGew>pXAtwpTyH>6kzm3#^BON?@{+{_p%Y9yJ{=Ws zA)+aZ>a$oL+row}GgmScFR2{Gm^uR^Xn>z}prX1L+F5)h#{uhh0k@i zqnd#xI&|KQl@YII<9rC__$9C<;BR8{BmoJI$$>B)BZhm&CJktb!Wi%%BD0_Qw!HoO z@Rn}8TfNh+eQPNI$5XQ=bQ3XD0qqEl)C`bSNL+b7ucG0;x>a}SY{Ui@Y~dQZ#9Q+` zLe;wU<{(+_(innq+xT;EIE(tnyYKbXXT+M2W)B>zcI6MR3gzU02rl9t?h)_#G+(?% zF-XU80M3J$g8Yif63cKz?PY(9Jtx%bs90+3>6ASA_Qex~62tHJC|m>F-t+7fgs_YB zT~?xXE=9jf7s`8@gd@)HS=m@oZ!O6<)2eaVtsu%?g$H8CQs<;wVQu{SE@w~1dhwcYpM1J5nw<0vN#7NU(XkJnfk*F zjG1hMaC6a`jeKGDbT~@L=Yd<%zS9D$aIm8C0HY%A+s$CN)$2D`Q0CO?|+p1?z6qUPrCuG zcOn-*-kui4ROq=#QW+2)MIFVwQqFCx%Jzu&vHl>N(=R}8K~Xa?eQ__Q=i8`ijQ#8~ z!H^yAqIeX2m)Y33+8DvW5?UU(z!JVR$|?rGw~sbc?q}!UOf#k#}fB(oT zfo+okW#Jl)IT@VJRa1wC8~<~X)OND0dCeP0 z=Ffs)*Tb(NaU0Brq(^(ZpC#LH*K#xFmN_pJL9xJ?A*5T$hQ-ufcVO*bUQUN+hIA?* zCQ4l*FX`9TMDd5J3O)tkNa4R4Y7wV?$p+7Fji8p3p!gih9;L z+wM@SoM*5y~8d;*OIm?44^Uyj#2+s>xQS?MmRA!hkIm%~t3+%I(L?M`w48}KJMNv&J8RhA? zIBnJS5s<1u%hemgwj!`*JpdWF?XisR1!k%@H0XRBhD)@^9+DhBfntHZCt(2x43zZ# zAXdoPg>xmH*OCp0FgPljA6ZI7UT{tz&j?S9KY0S&2y3VWU5Dul+14&LjaZ^gvnsbb z9~W0np(c(b7a%7mMds2#a;HC}7dFJ28Qj3`8|By?*uLF6I1GmT_@NZjJP>jtRp7Zf zxir82!n@q8mYFd?IiDBvLEP?EDjpuy$xEV!_jVm?R{P3bW=f!5hsoBwf8Dz^9Nb@% z=8kC9 zpm=*WI^>^7V-~x8Dmpc;1twp4HvbQ}IQgLgX;3A7LP-=5jKeGVRJez76&e}yrD76#$<|-Zsmze^~@#XL^h(Rkxr@q%u zQo|a#OQ*^s!Wua>o63|N4=18KdMn#g4Q&@)c};h+$>`SB{yOGgK+6-Jw#7*@&1Y1H zU02uzayP>w54e8;n70;dDbMb=&KNe94Fr>F93)#?oMOeO zww3tsY z6l^fLn7fViXd^2BBy|S1@|EIU?)a!d;(Ho&B&FS>iivio3S55lGjewbcOx7v7)rGQ zm$OYLIhBpTv)dD`97W*LTDOZH|L&RK=> zc&0OO_yc|P$9oU3h8e~=ji3ceH8rGevPDi)8&$VxE@3|UG@8JwhI|FJc3A?!#$9$l zuVM@!y1dxM9O#|80zCQ*HFDBP^(^`&V*^X7KH#dBF4w63Qv(QlUfnCIIL3KkDAh?K z8c&6=x)sHRfw%5D(Nk&!jq6|9^~_&gj00@jkBWf0Zn z*!;|PC{_*>5zlqF?+S?A*oau$wN`rB5Aw8IJF4MwUP7qCB00`Z^C@V`cEHx6V*3UL z45fBpTraJUHWhn%Hirft9(=q@k?b;M5uS2Th98!OpdvrPs^3w?Zwt?}X$rzKaKc2J zR+nAd<{2g-Bfj2Df=1EDYT#X64t93Ht+9Vv6sO}1J*;Otpy8h6%gIh|D8j7V8D)z! zA3x4V2M_ih?0$M56)C}BJbKp?<~PZ_8O*E=5*`W^l!?2Y(*W=?3@eMEv8B-# zm1@$D#DHX)v(v?;FYyARxYdS+`R|jgEK@@+|M!H*K&bT1%Qw#l$s3Ss7fGYGwy&Tf%J&Oym?<=*R&?V(xOA(g9%7)~wiAjGVBuBj*sVg~Ca9E*^L$ z8nQd@5euuV-6DjabhOIYO%9(u^#QE92q`=F%sz5dhd1eINsiaatMSrYwaH%pLH~g% z;KHADhTY`;?%rPV=a+we`m$$=56yRpE1KGqh62eMwE}}H6Ucor*xcY~As5BPu)vE9 zg-o!)96@AzVTM5t#ir%2C>lyl2o=}f`T2PtgnA@c)`3*Yok_mfmY6HEvl)bQ&!+#y zj$m^WBCT{R0N*9L5de3TjdN4mVqem_!U`h`V+Q(mD4`xIMeg=briQnKxGlgSYL#Ts zHE@%d|L}C=Q)H&l%n8%sViF82rvfcSTT&eBfr<2)!yX#(mUz+#rM8A4SCC3Y|;3Il_ z3UBwRH`RUrY%v*kxNG@Nfjx$Bab!4nTyKMeB@O@tokroG8$GRcy7J^kTi=6 zc67b11mP3{UHnhQH0wh8Sqn6elZK)O|4TvD4+mhDzG%0q!^z7(LAY%!_LQQlnt|Ct zKJ?q6c(3%V#@BW2MgIf+q^swqrJH+bf!+cg8ZhS**a#fB1I6m75!-vv&y$r7WPc5S zZYB_=EJ^U}qBUjo_!5FQhnUBbjOLg}*BS*dVtizHhJtE>` zs)X^_sFK~SYoG1vDOG;j)R5u=_q5Yvr0O!&3pQBH2Fdnk=0E>E#PW%Lz*#|iW{-omP7GdpjgokR z7#L4mUbef{!e6A5e0*6cPOoDXzQd4#l?wDatY9u}vofz|=@8@is5;)4u-f^VxxC<; znMZqCfb_3z3tR6!@T>e;ZK!R{L$rr{FCWY!gW5C!ITdPe=pSvj0)C+m#K} zXwNp=vz_t*3Can9(*~oeHkY~D+;pcnI5|CsboQ&IirMwdB$6t^hS5 z+AwFrP*NISkTyZ^0gKD&mnlZnmoTM2k<$`Ivl8NB06grKZNVwKP-q%W;F`zxl5Mnw ze8HTSt{h(3{c<+W7adFc9Ok1Vm$+a?5HwYilFa~AAJuYYa^lyl2!gkU}?Ox3g z<-fCec9Iwp#jIwpvEU+KjDePEqYfKw+Rc1c)B&*|)VXNamb-%M&Tt?01SOsBiZNSZ zy%{tljT&{?yxVLI(~G=n7OTbjjehEyOBI|JK1U0A+k^S1{g#l5J-_y>^=HfS%s)aK z75Ic>-EMc4`=A^#L^jS^uu_x4@46V98icE*m2lhwGT}rRE)pDlO0Wp5<`*Ed#Z%mq z+1M%QF$xkyGjfmR0?ZVDd)O|fPiV=G-1Okkod6l$SYEt+POxVhVB%qyD~n{VGajNw z&3LG`9#qbQ!X32%@Yfi#v>6?q8c$@%;0?F6VL^~`Ji1it?9e*Iso^r?3p?P&ETYJ@K9?H z!PRSxr% zkRw&G*u?n|r$^z6!1xBs@?Au(jkI-0`xxH4BuA~3h0ahPSHx|wUK7}6d-XJ~i@jpk z0C6t64ulbL9YAA@>E%%(0b_U%Gqng2yD7XMTV=e@kc5>hn?p50Xu?4o3>8xEMmK~t zgugBayYhxOwf2ME-PwgLMiJ%*?LF_UmU9l0pUB_}Rn8nEHo3A5fbWezE(RwX^A1v)#q@2ki*j7QOI;=4t+L%T8xYNp#8f~@IP;uB{G=0o|4@RlKXc0n%N#C zpWM4o%#dOTh}cAX6HWvF6tn^;x!hIRs4Ga=QXe+k8pWIE*c9NclA}%9h^@)YrQJ(L z6q?@r$qngzn&wm25TYqE>+<0jc&u#;t=rIan=&M}LAncpkw@*2029H!Bc3+BF#{p* zMh0X&ge(Jt7)af&hQF!E(^aFQ*zzi^sX#i4=LMNcJIY}3YI9>HTEhnK5<$z9vg6KT~yS&qAsZ9m&`7MWVSLK+pr9!}v`K>c?Nv`{{4ZJh{9eaRN=-Zc( z-4h}YmR`NI*Iw{m$q$+24zAt^quWed0(lS)rm3E~ko~ImLsM;`4*jb1HrV}%IYvv! zY}^KwlL6m@R=AHXbNLx&@}TA3JPHfbX0{%+Ba5#t16fkrD?b=chhl#R185QHanNev z9&hvg0Yz-{>Q32ex00PlZ8gPMM?0Wf!wIN)y~PXOOpLzbzdV_{9jYvB+7s}ur&B2f z5CG{UbUj&-9p$+Qoa4pK&9_b0nyN!D>MPY(kUij9?(8xZ1+oQ;&1$KHYVBTKg9;0- z+Iw!oop@>@@>=0(-sCoS6l(;RWC)k8T9NQR#_H}qs5Ih<{yPEM2{+*wTvppCNoe=r zOV8f0Xmwm-?f2+{E4II(Stn+=S}|t; zSU{)0y-)4m?c#s!a0xsh(v;m>a0R_{kXXXOj?XLQq^v(loc`M8u7u?QE)bSr3QmGx zQx>b?)+5&8q15+quP*6I1o9G?GGD?v<;NTerRsEJP@?;(U%p<=#P;hOCh#M>h$#H= zJ9I%<=uzUd;G=qF`SdQ!%&`E-mA8^stH+XXB#)T{cave+@Rc2{z?-3huL60MTG7A` z;-+gF+w#@xrfU&f5?{k*?#0tm=SSmPUNQ+wL^_6Ru35;p%h?lvj0mndJV;7DwTtxF z3q;850cDslg@8OVcZ#dJV1q79En#htutmKuIZER(JwkugvVzpH85uHxTcM(T47aaA zwHbGcOny}jQnCSAt7t{o3aAWTut=n|hrgU8c=9-(l z_QCbxYsCd~y-RC^!6Js*qq4MWY5Nk44nADX}d25jhy)#d-h*6VtXb zJtoN8R4NezT7D32b4hN zf*xmR23_6V=_QUb-q1skM_1wS`|@b(BCOJ=ag;{7x;*R0*)NruhCusM&qjHnKzDXX z-au}`PEU@EGs(#j%aQe4sRD8cU0@aMOx9C}zJ|Ys7h{;|1Q6ruuqjFeW(*>Ejnel% z$l?Ksz&9?5X)C&Yv~ut4e1E?6_rrhupa1y3{_%hR%2T5xbW_CGP;urSo*cAt2=)!Bm<2bX*kUES+At(sPJuobm6SO;-5?bc5bpIhIa` zbpp<*&b-B`2h;(CgSz*?lllvwqc3wH^jFFSb=fI9ZMYRkI!5ZSNkdKHZt}#2V6g9HEc#l!Ac870@YbPc-3V- z+LYGz@;^}>1&PjK;QsF3{a*4cKh42!=Zhuy{z$22HmQF?|=rh2c0_0y% zilzS!SFkW_Xr(iQ4PG0tf1RC8v$+F&$dsBqNy-VRa@kLT!eIb>m)4})x$4a`42hrH z(X*YAgqLD>NAov3M?G)>T=IE#EbfSXzanwK!y)KqFl|!u9s-t{GjB~@DOQo0LjE@h zF*xq)(}*YR?m1#h3b4t0h?w}jjYnno$((=Ch4sh@v1h$hW&7;$LWdHGYqZyms^gTw zuNlQcez6CPwE+c}BvL&7XrPnhH3e3?iK~2f0SYWr(l7FUMs~_r;PUF01fAg3Il65Ge zBgH9y&Tjlqv72wvBpNW8Y+hS$5^FyH$R4N(IIg{S@nI+E1B{`^t$?NPuT=`s(1x&E z@ybH~)bV1zdgV)kC)t)fSFj3zS*a0ElaWUm5nXzJ;-C0TZ

42Hs2DG=MWcQLz8euAw$@iUay-8ik+LHqPR0jJb_D zwK3*4;OG8ka36FOBm5HRt_uI4{Oy^Ew9ZP~&p~Nv&(7Wa>^{=&R&iOB#>h92Ul{ z2l|XO9HH_1Cs2o9vEo+?(r{V_lzYHy(r8}Ef;ak`*0174fDD}bR(+`l5Yfhx{t40@ zM54Oaj|7@Lk+_0LRB!u{)I$Hi^D{vpQT^{nf_#|>WM8NY9zQlmQ5>7x_-RT+pZn+t z&wp0KAW4j`c?-nH_`~=Xx%9IZZ96*p-WuoOn)6^-JI^KMwE${#L{{iFs-=k+)lh3ltWg5MFx%UXHM-l<{30KuqbSltd`iusg zu4wv6+>MjZCj?5g9J+>OlJyaWCX~;Oin4{NqbpdYm zXIcFmFPGOf`!RUFVW79SaNt0O(k*ikFKPPcxVsze83d9+h;YE^lkNAX*$sMYTtyIZ3TZ z22?_i-Ezre55R$K2$~XR6q#DZSpFi`#Gv=WHukpT<_J#*Yui4OR=_g3yXw`X0I+Ar#Oe= z>R(nlZ{BKE%)OMOo~fs6YfPWz)2;3A|Mc@T-)^T*p5#gWWcnXWDBI7Uw|)?R#qX#1 zduMHZZL;+vfBa!>@^lj)W6b4uzNi@HAHKsMb;f41%Q#7%{CmQzZoVxMZ~ZBm5ZJ9B zEnovuYiVO1p;{*&zpQ4cDQHvG@wS%C3ERMWMl2ghEo*$j`qh>)afj4e25-l3TyNTH zikKw9P?CqSe|z(C%7M}x9NEtxwZzpjd1fT2T&2&ANRhKhnkjcvU z>n*0;)U20QN+`z=dF<2oZ6q)M6c-Wfv=iKHXOA#x;}ELa3fwi|Ejh${*g}fMpci*2 z);8AC?-Rav!k%4(uUU_GOr&Cjv{OB8nv7CASnR(i|9HD``dthUJKLw7MZx)3eD&L%x^**(&B4>30X7-j4t~#u9WWlA?{Kio)7xYYcA$-tF=O$ zJZbeX0o&2{3Cyi9c9>YTPjEO^{%N;WDo_$dcMZ_i5c`{WJu&} zp;EK8iVa&O#`xx`(QxAa+b?fehb!Cd)&B8c58wRfyBE6$FMoTpKV^pY`1s)0{lnjm zRoVI$D{T3?XZk0A&|{>@%X!!~6&HCin_OgtEt&m;k7d;s=Qoh%t>AR?gY802j@a^{ zl|}?vFvISTx*ZIv)-Y@iVP@@`BxQ|RFSv&ia|ec!E5$^tBcJcIRzaLdy(RwM8V%+v zjgU^j#_G1(H<@`cx)S13x?E`B7eC>|?gZD2c-+uf3<|Y_ERcQd6uRR}*{OQ_ z9`w%`t!=%6RgFEYdx%%6^1loDmImq}U(F5u^XrZakAt;yVY(cFga3ZK#Z{V}F z^b=n4^$BkNk}5rAQZf2tzZpC5~+B6;?l+@u&eQrdzyhl^MF;Nr+5a;U$c?V?}b^ zH@WA5$z6BLj%R|64a|NDMFYBR8#?=LC3mqtUKC}~ywB&rJF6&GEEJY7_tmPA$9^$V zzq;8@HYvPjdoFi>*y3vTVUbI_R{W&aEab|{S<`aq?3)sU^vHfG+b{da^UZ7XRm|Nw z#HG$m4(`VXU*_J?(R6LB_2at4yne>M`t-J>2?TLry$xlcT46&cI$Kn;4_Jg*1UK=K zCl2J#BH2Xr{qh=rL)_*C-o7!3{%v#f&wn~U$MS!zV>I6+f^>r%VV#w-W}Y#0?MeM) z?XrpTtjX6w4@MQ_?`v=1&BjxFr=Jk2C^arPUN_;7kc#yCIa?q`@V|t?+^#XEkU{vq zx(exd5hJ$4hlX&#i9(##(XRl`vBe_TgW|o@TT&|6Jb8@Lf-XbcPSMms=7b*VVo)LT!|kn_ zm-vM}CX!G;c-W`hxbN8{Xyz3257pHC0&k4kgOt>M8Z1_YI?x*1yjmXFG2Ki%K*V5} zZl$4(1W%(ZRQgj$ADMKr)+0W_uIi?EGc|V)$3K2oTa|?bZYUS^PUcRKJK`_`^q`kH z0Wmek>NK>qPbYu_IH$m*cgI&a@fA)RxV@S`n{$cHC}Z$>sKH%&FDh9mdfldgPp-5o zIlBeAK#t#757sBfHqFM?=B7ox5H%0Vo-N&Ob=5Vdwl<&q$L4pfAaLz}tdSK}?%4jF zilk@vQSJ+2?YR92h^O3CpEb=Il(1)Ub;s1P|MjGuwm#xI#>PO>=EX-O3{NP%VjP~X z1&o6=B;l)@TF-cN?(RHWws{?Lk_vN6hmuGaDa_;4S`&ttRZI=CC4q*OoMG*uEmguU zzhq@GHN3cKIW24tLt3#iYuRqt(->|8d*>B1z>h2Gt^qf|?#$ejG~Cu^ler>-;Lg^E zL+(P`^$ORX-?4^Qp>|5Oume+ep#lWn1DCLuyPC=qM5Ag{oB?c;n8 zSI(KlS66Rx9%g7`SY{V&+QO5BSsV6!$+lX{?~vg1SsKsOP3==^&4knq9l1*@=&hTi z0fdMfDNQsM--n>#DcVxw8u~z^9seUbdfYlhc;Z6t$&g<7`rB<>Zv|$N+}>v63-xhT zzGedT68%=ORYGSDR$47FT$8|w5)P;LmMrrzXhMmN7`fE6gF552Wwivye7Wt@zxBnTU<;?!(PrZEHwfvRcf4!Kv(_e8BhnV`wS=T`=f=c`^c@<6VhOZ;%|5TOI`qF@p5E z$7cEo!Z0?|Y^pMLXFr$Q<&!7LYTBNZr|GIESUGN{D}I+Qgc7B-6{;jFN=};7ot*tM zfqxi-7{W;ruh_t>v)PAyKB?e`1fQIo0^j9No*#Z?2E~z)h=~z^BRkuVdbBf$ONaD4C&H=N-{tc3d{b z!yA>bzC1bQy$l4@Nj|Ml+S9S%aSEprI4@fjhgnh?69Imn_`aiAT`c7)yLnZ$2c;u^ zts6fk;4zl9C@(;c=(lY3jd+$KH@t`qwe z2@$rN^($k)>xDK)xS@X_`we^~nDFcdyeRA&HnaiXZrj$y*$Qj|afjQQo(^f1!=%?*oZz{nwVw&Qc`dO+2dyB^7V@S5SH>+fJg)M3FN39ND(Q1${_cPRU37qf z&DTH_K7acyZLOyvtchz@_@WxEdIv68>m}=NKnsCV7G_9!xi%m!F&|6+NNAEya2*dhwP6>b<=EIp81HJZR(Js5IiLYTuE zoL?x)l3NP0jdqQ>QDbO6w+sNLZ^xKSLmrl3H8OVMaR8wY3Ks;}yT&v@F$s~)A(+q_ z_LgmJ#1#Wkb_G9EMxDWns`Od1@)PP)j%`tJ1c9RiD&~HheVLVdM=E%vAXxn_ z(+O*s7RlDBONsl`cb3Ac_}R@t*nij2_J6}>ep%fR!VeLm2c@gYj1>k9N1Wc2Ksl(G zQZ2yDsM(66WHy6Xag;wZv1BWboLNORn*l>Ch?)ABv+1$m7ErF{$HJYf@v02S7l`Sw zAPTi-hq6nAGKt4w7&Fm4;_2=*dIZ`zm4l}x;Mg=!>yo)vR_jX+fc|xX)){=UgBC%; zNO2_I5hdQ)`gM6s|L&PllWpAm@(X}v9J>y%j~-+NBew)Sb-r+AvSay$;iDKRBn#6#F6Zk5$3 zOpEf|tR5}=j3}G5nE3+7QcLcSVQ5KnZj-bkab4^OZ!**WX=QH`!;9aUTn771IjBH- z|5_{-oZ%vT4-y+-bb}pFhTx)a<|eQm(jm7OOfovCAUhJVe`}d8c!M_28fJwXVnyey zK0GZGhs`8mDubb9>^#$7>|NH}lrxClsqv7weV)~~Bo)pd*dNU#jjUK}_rM=Ng&ziC>{qrw7a6sV$H9)lB8f!sJ3pHiov52b54GUU!jq(b)tfe{9ozX~!@ zrgTWUxC!K~Iy6?XerDRlRv$st!QH|_UnC-O?lP}0@MuM>VxpuDifKoL(+bEP1fU!b zRx6f+=LIMGpa~J9sv_ZXB7~6YAkZnam5Sn!a)Q(suXtyG#@Z#N=u8! z59C4Sg}Sx6N%5;AkVWm}GP7Ee0iXCxL4Gt5(!(;?S6qnvt;(9FxF`jPZYmP=TIV>I zpMke*4^~NYx7yZf78S2h*HD=zrVniMh|nzR$!&J)ocsA_kl@*@t^+hE7|zh|@E*g3 zC{xeC@BG9hu~QI(K1A-_R2E;CBtym*X8k~-j8aZI_0P-wd6(-*hrn{1EOX7o&O@hfOerQjqK|_Z0(6;p|hWj?sh}9g@H($_*E}iw2g=>gr za~B1+5tiBg5z>$=*%-Ex(B>I$Ofk*4KOPgWRPO8>T0|GHh-Q`}qewcR;U^=JRmfS> zsP?bClfd0{uE$?sa|9b&P0?R28(REaZC9+Jj9VwwDY8J2%Nos0P^%ior^fV+$=1}k z`Uy3ua{}^-q}(v!<}?vX@BG!sF08bLU5PG)9RSva<{1-1EtHUlM>T@TWn(phPLN%( z^k>vi17H(Rx7`z*_f1zK6~azeObk9od25*7tT0^ygQg;Dwzej|?tR2KFv})EQi3AV zLq>21bvOybr-6PGVt~=tscnb1d{|9Gm8z#@T}sb&V8*tXdRyJC4Xg$Ou*dZ)*Ygbj zZLHl)N!s3L69xC9V6D=)dr|3{&%wJ+ZUFLpDYrZ!^A?*EJ_-Fg$x~aqPTJdmi$Rbb z!#FTmAWeksLRl>4|8?t#@f)0;jMJrw`<0_nZd$h$iQHd)=P-C zTY4_3e&w zwk9Z`-|_|TfX}_`^lYVq4)AoB92Ro>#gKBw9amaX($_Nhx%N_lyqpH|4;#~&zxFyE zw$b*b=LC*0^Zc(_nO*drIkS^;RVDvgp8?>%&65HGM(4;ifxpH{0iI5O&7?pF)ytCj z>zxGXp`b6UU*0>=b=Ft_9h7Y)o#H+euSHG+Ut|G|4!cIxa+8Yqc=@@=<7`H+i!Kc* zSRThMD~>;1PXtm34gcFArusRaCUX=}clCByd|9>fa3f z_lXt=J}qQ(b-tsmR-ZEG8~?RJY1LFGxSJ+}NZPlvOpQuQeknjXlfKTnh;xD(0JOkLGvXFu~7YBbb=$bto9kuo)g$c}lUS?1UgZ$%CWlH!5Ku6Y|| zWX2N+L@ri;pUK$Axo;&+n61^7E5M*HNj`rjv7xGac_Mg76{X`!V;_i} zYC-ooeryDi#)%ZC);fP~XK?7wmE$zeHs;;T6Je<*iOg-J5aKfpN(_zmi9`342))Yi zl2x(YT>{4^X-G`+RPha1wJJWQGH zOxBzJ`O8R_5zdCe-_v8fcw5?lHV8T$R&T}01Hx9ur4X8yZm$G&I2P%ni>&QSl0emcE5tpf=a z=pa(QiyC&=Lek(YEb1ijnBR8R9dX}KIB#`lN*yn`dAM4CerL2N0yH?ubnYmU+`7J_ zK+0MziBwrw!(DBz7DJX9z9nX-vMr{DZLve3k1MVn^0{)MF{8u)z#B;?Mv*XSypX9u zi^tCysJHX-Hv6&}rJJ5-ZRYyg1P^7lV0YHD9hP8Thm@Gv=VK8GxFakV@bmtIY&6HRxWCfBwRQ8xbwYxuQ^K+A`fL<>%>yWqU_B}_T! zTziFv@?+^xwaxFzW5@eJtizxRp?>DMnTnTQN$ImR&2Qa--xHSL^PikUGRnSN2fJez zI0|w1Ade{t1tw4mLJUH5I~>v?NWUNE)qfa&byXh!*IJRGoWX)WxVjLh{r*Y!k9K^8Q(M>5Sa2b9W1oi)$V><8=it{PV+K#c?st z&^4RqWS@`ngVSJaI+E;?=0;>HuB^z;#Dwk7PG2I7Y2 z{NT1bE_cXT_BW<-cv014Ov#JViUkqK>;cNw%M1n0mjuW^`j;~(!hO92Yz_TJENm7eA*?u%| z$ztWeA-fEF=E|h|>OTNxQz2Q%h+P1eP#KTA$QtD?Rt{4qiDvhbgmZU^cQVwHw~6Q0 zjv-zMt0QF($`*LSO%v1qqw_VHKAv8;!H~EykELZ*+ukLVtRF3L==ktj!C0L+%*>;G zmPWzwOcSR)X?p{1o#7w@GCf)3jocQ&D`AIe1v6hqkg37j={S)dq;fC>%@WUmG4c_h zp0(zf&_!U}H{hm;?M@OKCSgdeGJCFFuenI}U92%=O(R#|{;bkn;2vt^^4^=*Y1^|} z6Mn7|B5v-#$nU`CB30cUtFQBTAoPm6?Y@p#c zehRMeq+>%bISoxd-F5IeQngha)qIOPq&zm*}o)f%r{`m;gNoGVV16xBO2R^TglMeRbVN~YtMGFiE^Q= z97nXVo7Dh>6_8iqN8*BY(?VI@`8JmUCQa+?!NrNsuyAbyPmPb`)|om!f0p(Etn|2R zc7M(-19*4!zL>rLc?%x1Mf;!m4Lr@-dLbU+q_lX%0Cx85E_Z!)Ne4&fx#i--^=*S8 zi0N8(@}Bj;>4b4EKH;RFCj8gDy25LAPm{G^*kQ=-aTDK?1g>UcRy+S3(6g3UZUWkb zI@zg1^caTGkmY|*@;h!xK~mXVyMS#)X>d5$a=b5taNbUDdJ46Ow0w`J)4H3oHFw9; z!>iDBTufl`7S?Asv9WwMkAY&;chSJ1OP|-pyHM;nae7}Tl~Z#UqMS&ZjBTL+XrA#;RoVXFdiL@!H?3Rm47wU>Gxmk-m>Rg5$JN7X8GJGyfck914(%yO_ga zl|1?h5UV%i=$Nq~V*g{EamJ+UCSqzLx_Y0r(G9ETGG}@+YO82oJ$_rhEkWbLi<({> z{&w|rbL&5v=>N(-W}Gq6*$Qq>G3te*?*>IJq&jkFZQxjzAQD;$nJQP{4T!Fa_I;Ey zQ!Rq!a>QfW$3PVmmgtfhS?p7YFyfO<)a3ajdf&FoX0owy!9HG{K}6(+?i}*?Z&y_f zw*NZRvd(E*mn1&x-6shDJ5sqX8G|R$|7hTv zVRd;)G9+W=c6dt{^AmFGEhk|Q%#fo$rx4_v=FU}tMo@YnTxdEKyE0k;8Fr^^%9e-x z_<2XFK0bZuIDoWOhkp1g^R7qq^&4?B_8nrRexB+d0{nB?ILg@DgmQVULd!;{sK2b{ zE4VV5{~hPoupQUzm_Mg%B5}g#B4$VwCHs{B9cPzw`3&(JwA$@QlI)_q`E_sq4J50H zrqQQI5e)wG;$p?s+60TDNM6AgeY$18Z_`KYUwukxqFuK9Yq$*?em05tzBrF!nS-BK z89kmxBQ|Q0zWGQ3M$yJb^eg0x#8Et3F%5euvGE}Znp>ubnw+-&uUXMXD>fA^ zWR0LN7wE1NP~=iSEs+XGWKyd8$>|;0(%UrpaZ?hcI+)e6T57>2y)5fu)V@KNUBpC7 zQ!6fFXd=EAjrih_=^!pka>{XhccaiUc9ce*b^>oNXEI4(Ea}I;yal|IJcOf7l{c)r zLF#Wscd;5HOsG?^(#>u5=cmX{QoS8Lc~WQ^0J>rG(=2D7=oHt*sgeMN^h16Fa}9^4 zy#<4VFL2BgDkQ}YAG`e16fh+eK>$Tt@jEN%$0zLD(qFkzf#h z5s-cYkw&zFZGy;>a35~+sqy6_`{`DQ=p&9pIE?`ncKRdeNuq0rsbZ>|=-Y3}OC9yV zSzt8P8U?uHru3%}LDmGTfGHHfbe1(t{Gw>Iku?kvvjF(}Q3~U0ba?XlHvU0l3xqj;7eCDCy{dtX+I>Y~V-G&(3}<7k%+H-u`S`FZ^@pO4||m&GhE z8)m#fQ)^U}FaPrTWyEAKWBTlpb=!>Tf@s0v@EfpZ5QrHt62Z8=7PoliV5y;)z|9ya z&EjKf{U}6k9S!1@cG1-p=MgMoR`U(^8GQMBUN<<~{5XC(-iqRYG{*p1;MQcg`_Nt z&(CD4dx+UYB#Bn;+itT_L$^k|F}?Y~W{a2jNw^w*0K2_0s=0QmxHdjikg)Q(iO)+@ z*NVw(*XFs&@vXreC-@kfqxEPj$oku%0s+gy-G>wkiEyZ3pj0vqF{RA|!-uV(Vu_6C zXxXCDl%mDLks&g=OzAoQKWM-_K6gh;Sc>O`sUI$zi-B#0d^%Tn(-BYH1Yd^hDf5p^ zV^7uKjM0meXn<^SmEANHqODhXVyL___o_Ta=&Qq5`%cYJ82AjGAOAF7RvtxAjf>_L zhGban6Z(b=qsGD3#^nbO9xM+aVT(hGqV#-TdOy6(#mYvC+G0MTh?wPK4>ysnpA3=P zRI3bT31er`qND0E_Y?zDCZgwb`94#Rqr5y`~nO~{!hE?omtpcyLFx2OakLxNf6a= zxAb#vmlLjyN*q0-#1>#;*q_&V{x4(UV7!Pg^CU1;U5ZKiHYVz%sV+@rk(t9@()KQ+ zDkn?m&}#C)O4PO}rcxe_#jL1fbkJb!d*~A8j60WQVqKaellf^HM9R=pn)?MZ{a6z_d-?D;^ zMS>-j8aHo?cnyT&t#;uBcEj5N3q2$vmc%C%h?@xnNbuDF!hRw!ymJf?m{te`ikboN ztg04yRuY&qUSfj1kc`l9k~emRmuI*p(p5si$XN4aZSgTb0%sEgv_+TSacBV_@JxUn zaFHX>{^0ehdGCRS^D7#(&aO0KA_`3!wT>(pgouq91a$k@gY%k!UYph$a7j}jAS{Jh zqe!i9G0n!+)|gwJOvQ=csOjp&=P+usqHMaTkd@d(L_f1C9gKXgcJM80>4SCs@oBWk zL1wPCI{=&n?3q27ZUOk_8bME}Cje9n)DT~%QIUA(Fj!J=2i(rY?OMaRtLiR4TUUb?~`pW7w+8X`UIUL=e*GYtya4o1RLKS&3Wj)@zQ6}Qx7Ic(E%Pk zpyg-Iy7l!3AZ3}=Z6Op`m-uqn#`JZenUWO?zxVQin903tz%DKBY}6w$6RcjtGB|z` z?>ZzLx;j8G!GDP*&9HHt!Fh@s+XJ{&e^st@4u6{m!NKni6|j0eqM1h7Y^G~L0p@Rf zrd3pCu>!d-e`vthzZqpCb+Qx*Ju zft&4L%(K{7Z*lZ&luG=T#P##(tT^vzfJtv_(2KgnC^1=LumO7mf}G{!d1BK>!Wt$~ zOO}63VtW>TzERXi{vcvuU)ZM8_0L}9ty@2YP}=eaSFGrlN|S@8g>n%(Iq9*U8J5A- zIT4-;*j3c;-tmiW1N*Jywb0Vy_vgLB41+gYhr8!4Uc?fy`PxhGC@39V(=*Y(-G~{ZU^>{Br}BJkLMM2GZKGP+PilU zKLzyUUE&*T_1#(wTNuhK9kbs*F$3yRCkLPcjCRGXE%v?G^bwW92C%N`=;rdQg2;c^ z6VX0+S2BbZy42F;MFf{;qm(SQ%-F&L1d=wvQVW^|q&kdQ3iJofe#yF}hT~|OJ-AwY zWJv@o6fA)!S1v3yVfSvcgo}>Q#A;&CnycZA5d1(lo`0Ma3*PoedXPLZM~USGR#nt; zs{xL?N>hmVejUu}%gh>wY4ivG`VXX2(f0?#@(086$CD>1+EH|&cY;%TcJjw*V0LME(%PehMDfx2$@$f;o}QXN;;5N-API3u6gm1L9;j36|p1sLWeD}ANs0T z1`n0fk?(jxyk+M=>bD3mASa_)q{+U8Zx{SEIkH~^PHm;$stCQBeX;V)<0+SlGzaNG6q18vkP-qD!X`qJ^~88 zoy5@F^Rgruz6sEnUz-zk%L={*l~57S!@?f!PUmwg#sDFWEqY!f2`^9uIy$Z+PILss zMYF5~;X2DX7B9(X~6_K>t&Z!=z3g%ttLIJCdGOe1Eb-uM{K-!mRxI=&Zb zDgmQKXvYg#PmDN|F*v^j4_)R8=^?=sQo&5r6AhtYLOqcWMmg)&iF%@Mp3Ark_CU*# z#)*D(jIX`ia?6RpYLiVOibO_TQz5jC(1FqPGR)2j)i;-EywZ>U(Az~gCRo)Bt&1UZ zU6O>1rB5`33u z`561$p_Y>7Hdi3+4%ug{+thwjdSGB>o=bqfPkDDcNIpHXM1(^>vV;Wx1XuIolorv? zD+V@dySJI9-jvKhcUwckf4ezD{)ESc!Akw+QI1Det_p2A*sZ9tD)SD(Lj{ zQHcyfh@Zi^MYTaZcv>JHXoNKg&O~=u3<9M)i9&KoqOe@b{Llyc6tW0Fp}dWFB$+jGenefo))D2PU|LILoC#8D^wATF%aM}OsybW~UPqBuMvg;_bTD?DB_ z+U1Yr<)SE8s6Af71JyVU79Sq{jVhFC!HB{-j`$;0MRlH^HCWFJ_W11Rxufnld0b2l z8kw9O{nu%tr@fl!>DSdnPyf%*L_**u*j*wuN#h^dOauiOlSw~_5Jmweq%@#}j{YXV zm{|HjP<{mv3Uxr`aIqDDLY@QKj0>><71G_McvX|7un*8?C*~)|a6vq7 zqKl6iylziCikB7cFimDvRyTPvvcCsUGY^@^#I|oA6lDNQvP;6cs_`$(cq66c(8J57ApNP-H;ydJQOEWI(y7JeWWtOhi!PSGZKP z9HlLJY$*Qx46a|I_!XOsDg=iOLPS{-_LT4ym1U35m?FZ&i z^SXlVE@FhnOBYlF*=!u2a8ua{FAqNSb|FJX>VTL1j zP?Ox`l^~Dt_>mi22=p~@(T$6JiAhEs?7DX-nAc6l!nuuGdKS6wt4cI{r{Vd zixhg%4GcWK7tRp6`tIm_)R8nG^<}pBoeWWid}I9Gju=^QH{M1&@yX`;f1Ex^-j3zd z_`8j5Q~dXQ$G*hX1>qIvD&vO`eN%*zBL$U40%3R+D)l>roC}~&B!C;d5!`v`EYgI2 znnWkieDGtu-S9R2n~hVtodL7gq^CvQZ5lyc8zZ#B`~cic?}FgQTNeZbuH?+h_)xSX zU(kOV;+F8JcJPa|6IjQoeY@e68mh%z*;6kcn#GiZkGnwde$l%z=wSa2%(-leJT#(G z3%33^@xpyIE&*{PTrc_Gv%iq0>u&7fPWE9OawWp%3AzFUvem^GLr29UM58mP1c{g1 z06p45I3UByvY#S>VgOBI`{AKDI$N%oi4{p=-#x6L#Xb5eC~KFvzTJRh_xILm`1h2$ zVe`(3LHdAuJL{?_M@f%N2)EJOsBD8$(c9PHe170TUMyj~+r@ft&IGbO^{KaBtHF}K z4&n1aa?<;ywU@2Zb>G|3!hhG>*#hqV9SvIpz0_Q0GidyEFF6eGErWa;T@#Al-H9N+ zh0#kAIxsuw>90!ee)Lw>tjenS!ph`sO20zp?$a-qXW= z`qhK-ydtY#X)6;4lPn@G>AW#~(z(Z3Ec^!M#>)WjFfrCCiDOxAdTNFCHXxzQggR3m zBDvll8_RmX2MCi92?)8(l*)b4ak;Vxaj_pZuG0jOT6+>2x&6YbWKJFM+8aN_10VFY zo=Hc?nd#zyZU#S#{;g}Dkmum4OZLfguyvbh?&C7gdXA$BoMI zsJTKpNP;a(Ry?giS@cF)O$KLbZt;|8G8ED7GM9 zzd797KRRM!|L)+`(eaz#LLJ}-wCQ|xd~p2tcW?Gz?7!K6wdZ4%4dTTR{?3Gcb$GlR zpjW;UU)Zd~Z65LL_7%RBKWK!SIT`T79B?hxBA+=qBIbCAM&1f$94P?PkWcVzI&aC);pf%(nLTmfX|Gy|XiRs`x6=X1R(a3G!EH0@V4R)I)^kb@ za@zu|_eht?kr;5pq4<;22u=?yv0#krGzqf{=W=Bart&z~IC$R6KAH4i-nKyM7ChDF zHdnWm$5I5_`zUaeLcWzoxtoV5-{Lf5EAywc0Y*Bdi`62ly<4<4VpO=GwIyo9DFH4X zvl=btTSx>0+2LB2F=f6rR{4+SPdy1s^FcJp6Gbo`b=Xg_Bsot(C}jA9w*Y_ zVFFNfRnr5v53#Mq`N?YsBHy$QQk~B%E9RVMS zr2pH)tR6n5TVtUu*0L~P=oaCGB9l9KUU_F;k)ZgsWUl$0nJWp}Wp}6g)?Ci>HU2U& ztt#LRB&(QuGs&IRdG?`me&<|LRrY7(%-y6f%R2vfRGcmB)$u)KiD4?LRU@zs6sR)4 zZXc$8f@!EQ>$W$8Dwi4cgd1cmJRf=l5R6G@TZh#btcSMM4MGExskZV`hN=KYnS9h) z5(bzi2prG`5Y%R!K56VxO={~nDL-pY5Zmd%j>S{Ldm++1L2?XI6Ta!saCdKfp$3!u zb^*pBn6P>W)Z0^$8&9~z%gL1gJst@Rqcj>-=jTn{8Y$$(Ev4pR+WG@*#yBMD$pV+b z{84}_H7Ehb+}#^Ew=dem?2Ei^pCJvV$bu6Q@ET^1Hw-pAw{wJbHlR_8i3~Wq5dw(s zc!l>0dYLhh9TD8{otN|YqbAzt-@Z*li4b@<`o6#Q>PV=~;2Ebgz%xDeco3}mDL&Il z3<+Qt^F(v)O8eW%zZf7r9|s7|ayS=^dijTYR3n6}^Q+oQP^dHryjjwy{4=8+8bG!{ z@JtljOuKc)v=y&x4T{Ffj4g|U`CkQj63ul#XDtFO-rku2OJ=+T=+)-s(z<)o=~7d( zLOL8+@^BMzG@_{wV>$aOB$UXyy09-a!7G`0c?Xv`TsM&e-Gv?t*-GX_K*XKVTz=?X!%-ObF?l z3tZ)64ce|)cc(t%E+73GmqJ|^`RIkdq#+hAMdL;skt0jNz@`P|e^EZG<~Kvf6UV0^ zcB0TSn)SbT@M(9bx%L!mQ)jJeIs(oZt;Ct+^_iJw%_2W%dJhiEnaLOHtZWupYh@QV z@>pr1LM)IH9x<_pn*nK$;2V0#m;FrW4Q}*EAJ9kMN#Z8@F&uTHca&>7omJP~y=KEV zEda&x{vvOmF%ug$G4~b)WA_^fh_QQ4Z$DSpW6oW8YE@!Yd-?I4ckp5Tf9G}8zrmYX zaDu%Eb@nn3AK%z2uq_3E|6K{x@iUPdn`3@1n zbfQrm&uf@k6nTV^@SlwZzBqX)x9`ypcC z=?KT_Bl9LtEQOl8asADM3%*Lsq+=j&LAvl$1tVIjetR&5$s(u-*K~m`?rJX;g@yXS{{J}m*|jsk*0vF|eJ%P4tGSWm_P-`jKa0)e1N zZd@cFVx2e`KuCY%Wak=4l`|uz(O2V3r}6|1B3lulwkX>wwBrEx(H9rxadk{5e-KI~ zDwvl+nW^Snz-vAb6&#$u%JX?XHw1Xd2garB9_Muzj+ivSS#B6&YzAGwW1KU)i}U#% z{t54dD$5-JJG_wW?aAn4(X6t???Q!*JZWUlz?f(};)HoF*o2T57w_AS%yTpk$~Cc% zZb#R5LYZ{jm|(`!dG54gtUhXQ z7Wwb;oPZt4&O_9#v{7w-39urV-e|(OSuTn;9z~F~^IhfReFiskFJ-%k_nVczLit$A_jgxV zPS475bRyB8V)IoMorLbTOoN@-9)^sSazf$hp$Q$+dR1M?FgjhXeq~~r2zrP`7OVQY zCW&X&#j5F_8wPS~G|$>>{c@JCp8?)c5~^|6ikrM+rADirN_l#pY_S;mJjl+GuRGS= zW*4v2MfJzK&tC42d?F!sYWC*^ZgL;Bw)^wr9YtY)-js6}I&DeiNUL+JeTS~O^&t%~ zUDTC}x&-_0SKD268TXK9b)Fs82XL7vM>#d!wd7G&MsWot*yjNcGgBpeJ<1>9>N<6aA>)N#;$+v-?)EcH$}1(9dd~ z#hKRZuyNuq4t|52n*_@BSEijlaY`hl+4U3aw}hh8`^5M~Ak;XX7{7cF8j)FKP({qm ziBm$j4ElK@AFOgVB}~Y(ev2A=A|FyiqR7ynxJ5p<5te)}78Oy~u`ArQ_nl*cHJ^K-Iwqekd6>Sk z*u9;P*4kc%BKACAwAtS+LAW%H9Yye1UBtrEq=Qq9gQMnv%J4nu^Lcg9f0yQPdVV z5vl13KNKf^;rI$keHhah@?)Q@zphLl8t?(ah*^zrSLpu23In_5_rBinKb)=RX)3+H z$m2djktWMZpJ3rN!5k}|cGS}(vg1&!0RTk`!IamE*BdVap=$6FjS**O6D61#`%4k~ zARTf|o3+JkWD57P;)ip31LAOt8cs1(%~%8o#@*2zur#tlK$2+P8@{2#iD-2$`WB6vPeSodqyjb$S6qW_$k&IT zZqw+pnlrmhd?#K`2$ZOV%)@*ckxCeeg7sAX&lNLIbVreo&TW+{g8Bs#t_LgJTpy9k z-#KbK(BBjV4l`DmqVw3F_CuZ{KrGhP@wmdp7vt>G%KgF1p!z#8#EU@c7;J2c7W4}3w}6a05%TUjjhQS=R z8+5^E`gSz(BI5o_NFay7Hltq;pa1p}QbZlUdvW;NtLLLM%G~d6ANdFZn;kmER9ByF z>5Q*p8X4Tl=II#RvGH=O^i^OHZ-ubHvbPEYDnU$X=YtGI+or1mtOsn;d@pRO5> z@Ck9Wp>O@M4$xNleK_WUtn63A#V)08fYw<4Tf|gxYo=|a?GKG}Gif0o%t=i7y=CU? zj*NS!1&MNU5j=1^j30`vW;wb_oXOymBN%)&H+!GYkJw~gT;|oP4a4j$@~jR(DRM;& z4adg-W1n0(Zu~}759>1Y;GgAr87U3iCnI+Kl-6M+%*Yq_Bq9#!V0nn>#yiH0*+=og zoRs~eGje(lXQohB2Ir{`Y<7Qoak|5up@I~`aqcJlUKQQmhoeTf-i4=o#)k%;d-B!7 z=#kWiWbS=xv+KGgC(m7bVpYlk#>zsbf!otlDx&@t$Usd61~t&LC|&G?82b!|sb(6cTfFX`e|<2kIWl2~`xViW?NLt%A0Mzt;YGd+>t^-HpFrk~^f> zm@7o)i%x0Yvvmqp4xJJ`^Hg<5nRY7ojBFyL-*2pFa7t04ICumd&7`FjF8jH zsF(-qy|b9RHE==is^QLp4(8iGS2@Oaot*lNyLp`zrO0tbBk2qSkYD=vzW~v8sD=Z` zgB0oO0X?G)#H0Le`6|C=BYgHD4lXDaQ7Flz_O9VIM9}(LE5dl(K@;dY$>1;TC_MV8)DJN>EE)1NhxD-< zAg|7kU=}jUITubib=m8HrX;;Ck!^QK$%%LMENXf3g!KMTQLs{1LPKySfhQXM>6q~| z_G%bkSNO|%Wi=YaV;8l>Rrj34uyJh9>_V7&S8-wmjY<1Jz>H11fTfELq8d}@!IF}v z#Ix_!AlcOH-gH2Jj<)>0YQ!yUafgL_frsb#i^@O5$UG^47V|2P;`DwKjt~T%MiLr- z0Fe-AtU*;tpv6=u(2T*X%a41sht>jG6AjU4!3l{H%lgdkDJYsT1L1P8?SG$%YdG+4 zpM*iBBd^75nC zvn1a$5%}m;d=fz4P(2#;!1#Swif?5Fhcq4Dg@!lQ3Eu=spU+GTFtAfOLf(+7UBAf%dy4SfPHEM-@4f}#cy zH+HJl5O&A=XCo;@7_p2W8x0>}v#WXUa2Bl_ZH$JaeLpX(r1nL9r?znnU(mAEW!8Kc z+P2Lew6|u|!Y4XTPwBg-58)c8M}qVA;1VwlYrV2TBO8sJ(e{L|ojDNc-|GVEQ&b^4 zOMS;f%1W;Hck7FuMP_#|3EXl*5hzn_5QMD5?Yolwx~?vZCTEm)*|Wl33v}@9SFr=0 z1Sr>14p9?A(nVEGbh&E4dCxOKz#UroJo;E<06z*ej1X~NauT$s_%1}i=*lAft-m^) zyWch9#NTEY(EF^MFZf{;zon}|KZ>KJYVW!Wn1STX(w;ZLl?j~ic#}8P;$yA^FS)Y- zaQfk@h4VC$m4;+NEQSDBv4{1=_hA{v9echZFBmXO3u8>OYMHvqn`{>s>Q=HSy--4)h(IjTuyjU&Hi^T$?EbK)T zRf1FKEFMB(zuSpbeQn)O&6^9)K%wgXkNIxUXayr#lW=a@4oZELl}<7kHz<5 zgK2S|1i9i>+q;oyCF_ln@BK;&=h0QcR;fjcy*Wy@hmgTmvvNK$NK>I*pFc<5_j=~& z5(jjTy+{9w{Co_*!?IvdS74^38PqNmNLOW%sUxEAw|hb5OeAaU`hv|=nV2AwF1T)K z_C<4X4h`D%wdXsuw%~grnq1?28I5-wizef@wjVtN)B71dL?;Q2#D{PGh2BJ>6$sWo zrC@UB>Gq>9Px<0CK2?8R|eFSufK58lsZ}MC7g_~nWIy~OQ%O&kIM+h9oRf# zgMobL9emqEXc`MMmD1zYXkCL7RDjrALn4)9hneo+PYWug!VW7z(;XgP(!bnR+#BVP-AP*w;PlGRFgY z$0ZA&F!Pd&1*+3|`x(#Y` z*2E3$?R$|pXu=^gLU1m)&!W+n+<*?VZd+K1gJ5!UH~-P?-RBDF>+48;=N-Y^&7#Mt z?P6gsv6N012+`~FkZD8i>P{Y_d%J4oa@S?2-HW}zj^W&Wms=WaN>J08|7?Y(b>R znvB?TA!za4-kCGBvn-yNuR1y@AW-M!_I=3tt*@^FFhd9o$-!_+NyqySVne^1C+b4_fKJX8I?r=YNsyCtv^_*6fU1!^MogAZr z4!iFxz~I>sDX{}hif+BF*BirDA;#Mw3kjSV=i-iZGVeWk63p_!{jSb=jGv;XunfX9 z=aa~A!wSgMd$=PqX6BP(e%i4?AZ-cS&z(o*R5x37^m}!?7O3auDT7WYSm&{KflM8q zOzs+pWX_UmaaqjovJOf*j;s2nwZ2K*Ber(AEx6WuD!N5r+hd+Dat3Pm>;Q7_V6Xe$ zTlR5}MQ_#Zvyms!R%(OkWk4{Ii?Jm5;Q`a5z>4T~wYY)ZAIrRlSL;jh&W-ajuHx>t zA?}>*$`DI8?N#q+6JK`S@ZC3BZe1WZhfH)~ER$q%PV`~yjEF0*aMio2=K+NRUGr8+7)As12T)v^SX%^mBe((BPzR_gS# ztjS+kmj=ScCk#mBPA;o5H#0HA2tCVYAI#8eelwSOQT@3m)fbRJ*0<%Jz-G$SMc&d> zb&Mig=G2GrIe(voGp;(fYm2O==5ZSzB|H=Jn>?G}#MaIkpBdCgoeAX>%fv}T-&Z~w z?L_~^c8u9iO?8>abRPyz$*Ouuxxf32YDJ5Kib7_TX9U1ixKOj7$M)&K*_ol*;CcWk zOOYr)ikZFnJUg?QFh)E9E*Td+_{>p91Z%M3%ZlFn%H*f{7xRtJ=DS%gOm`4YZj@x@8&rx+Bl|%j{n_^4c%?ZMm9Y1(I~2 zXM+DadAjjZjW;(p$NUvM2|n4NjX5YQNuMH!c%DF7tBnhm0VP2qU4VuTzi;vC5TO>xpTrbhww+` z1`3{ck+_}23!XfI2s?m1+H|Q`Wl(9lDiVZyg8%9=DJ>KAq~Gz5n25i$oHKQzp6EM4 z-9$g8jv@~#XQmi`=(Mu>d&RT$E0A<3YEZw{y)4;1DzyR|x+e!d+TEGq2X|)pX3Loy zmYF#tWX(-E6PIc+ES@>7XGW8^w$LMi{O;5h=7HX{iqA|>oBxV~?!bduh4R>r5v$)c%cbd#_5(x|W-qF+KH zd}hTlZikg>$Mw@pW-KA++SHeW(aZ7*!@^nF|Lbzh%_L05+!RL+E3;Pr)cMI!D; z%obPKjqw8IfGPX@V_qAx;~^`>ptY=QS*6xH6yz>|=S3cP4b@dO{VkA*hm_oqv|uwk z{M)tMlEOSuPpPpso#4OSwg(r4iTFz?fDWFBztpziT{2NmK|3OM2HIubG}%S&EMg7^ zs)zG9=nFx<_pbPhJQg=LN>Y+Ixxdb1rC+4(LhTu%>G)-jvKe2d>^QD-&6NAAuK{E^ zimWQR@J8>vifq3drB?@7qgtr}r(6smTRjLhP|WkPE!rEu4$#j&6(FDfE5|<^&looT zEyl>KBn&ui9u;%ZtZJaxY@TWQls%`Ci(mG=dMM8 zoOv;hn;s>qxaw4A9aiEV`_T!H`R28pj=Y2ZwTDsW)^TSh8iOSdl7HsbSFxLYroZBF z&Y9asW>AYfD{cBX%`UGMALxH}gwRwwKsjgHG{6ig>OUfcKpoaL*Lo+P8C>Ia}PbU@A9@zm9O`1B=M` zZnW90j?G*ux6UP4PM#EBG6cJMP9_u_Z&pJdGXKeKsPeCn|72Lsle?a!>r44@SDn^% z{OvZtIa4>=@j;e$_9U?2nJ0AMhv9(o%QGjQ#){-g_&QoUJ%?8ojYe4K==<6bY=J|8 z$g&Z>%vYYzvGr&FK^?BiDNigM=4rUwjyaOfp-vNePa$`lO!^9G9UeNB1LD(X`oxp- zUK~o}4?$j;2F8G+EZllE z%C)--=A)};V)Ro)=rPX5+M3DDH^8auPk=By>4CEO9wxa#z$(1|Sw*V1F7ttz4s49w z8?vE126nrKBrdRGYgP7du{P8YC!41UQ#JHAQ#QV}=lyx-&vW44(+*@ea81zO>;?le z8u+ppe3i@vgR&LeCquz~vJ&)UBIwROF!Xi_`*&wHfx#IBI$JksqgG#&fqY$zK)Y0T{feX{Hp#%e_rKhABuJ)3XB-! z^E`u%ei0zw9WCP0N<3$p4VxbS8Hg28S)vJY9){aMf=qJ6>`v@F5mkZ8e-e$}_`V&T z+A9)%2s>2IP+|yg-CNHCpLxW|5&kQ@JledH&?k>@@^wD z*f0DIvxGfrg1&OeBC-+Y9F4m*gvQz`7&mRT403H4;r2|ZJB9S{^L&B(ZJ)Z-%4FDN z#YbD$tY}*>7ebK_P*3}Ph91AF-fbi9zw%;px|mlpl(+F&HNOc5?RrSm zMvkemxn&bzg*qLjmFUD3Q351K`oyD43E2L;U?#P~NKOyni!=(2e|;cr@HpW-M!e#d zqPZIiEdnJ&mY+S0oTlh@-=!@|n|0{{r92)i`yw3XS%;vxgSDga{KFS3@+A(t4pI?r3S zaQNo?n4IGiCr-b43JHT1u)M}h!&Qw5P&IUN{8-F#*c3BibUB%+(SBxd8-LBu{>p0(L1DoWR01x%wC3>pqJF)Jqw z^xK=4;kS<;lVS!rp4H44&3TXo`%T)0-!!k^bJwhD)3|`^9uLps(O)@4gdoi90wYXj zZvYJY{9ZUABGodlvq?mmaR^1R3QXkOoQS`&6hfHjM+f_CFn<0Vxm;xnJY6X6iyL2N ze=w_K!nXk=&Wn8Zp)%3FD40QBU2AGCv)P0R3Xpm9H(n+FDh`h{5c@G95(BSaXLAm1 z6~D&=pz_14oYz$`7d7niU;6c|Vgsy1O_!a)*aXkG8nJa&Hp>j|$2_VTks~;~H(@i+ zMZR%SoNvPkhd=$0zS&&-F{yup2 zW_S0`YJoUoRkXY3Y^0m@v+6HET{x@0i@ZHzQyo{CAc}7Q(l3lkF^TE**J|$T=pFA= zOg{ov|Cx30)}{)X;$vzeA5?qt7a#;?WAL2K(dzuXxaM0}vz^p+_e4g`CGAPI}oEX0(gs5Ob4(esxU}mV%`O{3Ss;Y`X>h2{^JhoT1%&uT0SfhbVSf3t zC|B3w6+Rm*JNlbeV+Nn91>;F0UW#87K&W>CAbz=ag%sY25&8POOS+9#F@5P#p(Y3y zevd+>U_K}Z=or*#YeDfs1FTv>*s2KyWd?)tv)_yS$^sLmhQomxK4OClZ5SgQQcs+1 zr9sH1;@KbOs$AYT%U-15PE^h$G*4AM_#rh<<#*1~T>5r7PSdUHaq1!-zGcF|PkgI! z%ilt7#-;K3Oa-IKM%v13__H)>%m$Zs8!OK;#qm#pt=Hi6O~0+Aj}fdEofN_jC@Bd` z6hlhRkkV!d4}cSSf|5 zk(qXEZ{jlXg%8}7)X=q_x80U_Sk zU7giJSg9!_J*(LQC}%vKF{5&|$k2n}#K-Hs)kj9mfSn@DxTKPxgm6<;?a8LIvw-a5 zywY%?-CGl{Y=Vwi5!pn2K;76l2)8V_aPVMxwL4MjSFOppHk)X*rWUTK3MS&O#v{6CLVJq7od^+-Wx&RX zV5Vc=UA<@H@o1UN@;CX#{x!J!H~#Uq`R+6O|2G>K#L8pKNUJlN);){F%2Y@_Oat<_ z>SeY@9*x)nIA;Gof!E2n&X)^DKy1^JGDvqjsAybEGsRd9bHnYiS)?bFvp-BL%C~FU zqC*X~=}>+#;zNpyw16E;Rk}1uSfC~AGDsEn`=>l+)tkTOSL-ArO!^JnM7$^<18cUl z2Cf>704Fkhq7kWQaQqe>k?@zj8l|IccYjh~fR;CSZpql7H1Lm`<)VP=T^T}0LG!bi z@Gq-M=XNgC$7X<;xI?*EUr)?DASVdTbmgg$Bl^}(Z?SavXd0D1nOU-TjsQCcxJ*1; zlk3l&YPpBf948Dmjm(?bd7dx42AYOcVle|QAv+e_00;lfpy%mi-ry*WV+dR?W=WLn z#3ygB#-~q`cp{&YosDsRozG&u-8aKa2T#5~9bZBySG*DbSwKxhP-q(%tAk4gyMjDTD;KPHzY*05 z&e$_g&g4J~1}*uWNsBOa%ym&0UwPG5g`Q+dd{Dd74=Xq4gKJ~SZHAvb9UOjgeZm0O zqo={>lUr+*!N|Q5E23Vov zC}Qx5H*^zotG6craO$45;~+s-ns8E_{lUNYr+K=Q8;Rj^SD$u03zKWG(wWgwCC`lwZ(v+T8G&Qpd1* zb!4V*O{2H|@teJHpPp2!E&-(n~+!|g)*O@&afg$sGZoiN%3_GJaZIGLi zZYI|B%}M~avhq3Lr(^yGx(*+<9e`!lG(muz@K$D_xO zV*~TI-$LrrCO;@!yW^V_hXDZ=1A&?GS0xSk?j8{lL1E%EmLizkJ-y>Eo>;|f5)?C&@7yu3feAA{j0>KJ1J$el;vlZ^e7C)L_EQ39lg(rlfxhk@ zI_!hLK%DJE$cFD6JgUd0d9zyNjqHGNgFKbRb|XWaQ3}NWVaG{rKclR6`}qV5jVWIV zj4iVgS2fmBj~a6)?ER_70w602+TaPB(#=bE__&AiM*+{FQ=OcEIvvT93g_!kzB|)! z@)PII;lvUT`#O+463K4LSQgUe`BT!FIM- z+0g9o2!d(Q-RwU24pT6>@ASON&y3kquQ}e-;zWev?={U{Ra<5^RyV7wra7#Oivs*T zBe*)@=CWGRR^9qhhnGgUIEn?E$B_5)d3DLn@H869@0R%8C=IQog3>(Vb~{GqV-Lg0 z5MsaC_KIoi2WErqM?vG?wpl%zgXazEGz675M#PPelIUkQ3kQl_hsff4`(8Ibd4N3b z@$QD6{GY`oTuc+Kfgqw=C>pJeEGxpR@a-9fE>>f#>rQC{0}PM7{cF^P5@QXI_xvhd z<(Bd+a9@O7Y~+?XaS=e@iAzApSIM)AF|;A)B2{*Bo*sA1lifpoNiqPOC*bAa{a4AX z%CqX)a!mjlPuutlo&s24gaTlTL4hJ-p;ctOg{&7eneOM@u(O4v-4&TWmV(y?4oHAwXmuJ+8rcq#Q6!1Lh zKLROOBtD1fF!=d^ugbp>)-^)2)bp) zv`wlC8YV>g=R9v2ry5dFd?Y_w{d`_r%rZ>_yC@Ah(`e?h7v{fp^i{iETbfTUn`d70HWx&Y2f>tCdfIjw<7YB8%w$$W0Km{u6`FryG19|?DJpV~QFNy{xSY2>^NgB1JbS@W+ zaWIpRhUVpp_Aw!PMOsfeu_y>31RjqAlAk7{Tl8k?pCBRhEqSIm$tP0C9+8AFxJg|V zb4#@IjPO2da`V?Yn@33rsm|!}bIh~iZEA5z_+6CC6~R|DXbez(F+-Fvyd}gjrIL|> zkzbzWq{U6Os%M0RD@toyvqgc!4D5uxe6cV%LfObz?fvM8j~w$mtJAD5#XfY9G5LDt zsGEn9_GLgJIYZD8d{h1SMx#Aqjgio=uWWtiXjexs*&5DLzlKs1`o`uo5Fz$n9*WO) z6`))WL>%aePXSQ1IB&h*8{dYM3RAxJw^xna6QKxGimHq4H zWmSDxc_MGkE!zb`dGeb0cXSpKsd(6t4;UbRT=9TY8RDyqM(}ziZoUNmtuGLUS8Q7u zM&R@>TsnXj)!JB!OhO@Xw3=|-UNE5WB%&2rYc^k|a8va0KuB2RNq~(0^@SGnJdyALRnp{7MgBn!&DFv4s%?V$Gl3 z94)i5>F6Y$G%x>HRIBEo0cdcKFp#kGFh07}x;@_k}Lih9MCXuEA&7iX(B zk1+?s`sFNN2j|vE%C)H2m2L?2aLAcgmucj7Pr;NJ>`K?UVj=#9?~M>PC=jQRogrs( zL8!LgXmS;)BncqLe;``vXCBXG?xD!G@%G3sX^PQXKhe*H%Z8{1CnC=J1at(^D=13r zAAT=DXt^po;4+`T6bXNYA0A3$6HDURO%=|nF;$QvhW8cH0`Y}L1wV)K33uJ2V9^LU zXQ7qO@OFE%55HK1cL|M^`m9#~RaliJDI~MAA%RLRHcuVWEq;!RlBvM<8Cz7;#)o3G zbn(z82P4=(w>#cd-s(GXk*01FiJ+{|5m&Xiv0z#id{Sd)qBR6PTqXjyaN6Y(D@w?% zxlCQn_rXzBz5PUYbW3S^z+-bx2w&~KW)Olf8Jkz zyL$fT7cbtf_BS^-*^d`5_FtTSK4GQ*j=!Hjd-38Fe(v#~FW67x$Qw9VtxA6S`P+v< zUT0T6+-q+~1{n9@X`pZaEk4QC|F!x5vG?}hO&m$1@bCF6##!E#gvZ7OSnNTzUP|KPze>7A?(_8vdc{P6zWJ(;-w*h<{T#J&B82Ug;N zD*4PxyektA?pulXRN|hMc&HNht;GA((ZR&7{)H@g*RK9R4(Yy~_)wL6XcF)3$&!cG z;O`yC#4n~+q8ifv11s^qO0?TlL)y1McTd4{|EZOzhIC-{eyD+b*Gk-1iTA8TInINp zR!4^t$oo#4_Y^=Zcpj=5-L+Qp@V)|w-MfP47rB-AP$fR-*<0V&#v)nKBSSrGR-TNUr~r}@O^k5++!M?PO@hYE9G>usX`Dm(9^ z0AsK#=(7=Xi<06*Df9ZN6*bi z-isVT3tIx46$hG53CcP}=CbO$yqhk8r%Mm-rR04oJv>Y=;m`eaT)!V@b$a+k3KFjL@Iks>h^i0MNwvI80Vuu0 zEUoJ4S$a55=b6}X>ER?TD^YfuHnYq0Fi-3JJUu*17uiI#be>M(=PX^$*Udt7Ql!m# zd5|8yfxmat!?$TR5%(I|_&i+{lUg*oNI{sI9+o0uI)(NtG5%>GMze&P`|0637|0?$ ztkaqX(xhi~Hrc6J!(#Pj@_C8PV@28Jx2=@=t$CIL- zr1$Tpk5>YyBI#cG7(j6UFntWjm)^ghK7KYY#K#xu6B-b(r47( zIDLk#Ow#AF&@_E63+3r^Ds+}U$3o}nvsd4y_h;!3GzMzFNMFdRZ_*dC>f7`MRh_3V zHTH;vuxpA`m+V}`*r#=HPfU&W93!)581;yef8~& zpMFU1zfYUrVcK8pr5UyI#eSMmsV@%18bSkK+)XnY#~1g~44T3YzBo)X1l||-(=5kU zzDOqoye}T4xoq!Yn#=aGG^h5)X%4M?F-Z$qXqpzXP@Wc8h`KmS3oLn_=Bruy#Vjr5 zK#H`IRo|qQtok;ssQr0b$zqGN!un+@=y(AsRaz0?sDov?mhHSt*Rq{DT~j+vy2je8 z^ipQ6)77l1%k+!)=_O=MiuA0k&cq%`AJ3PwENzPP>wJ|_>&=_=Z`ooYQs1Ue^SMZF z=IOI#Q_QO}Z5HYOhLTO0K7&71`f7&1m+A8g{=Q59SGHV=k2?J>Ta2gTt4Y6K%cfW9 z4{Nbw(!YzH_db1r`%7TQUixE^uJ+TPW>vbno4zd0Mfa8nf({V@GmcD}lw{x}l_ z1-8SV2kDPu;Mnl$p=c~W7nNpdhErM<=@H48)7Us2{(a@U9MY=Aq z(oE1p(bN0%fuJp8aMt)>|9(2l=ksDotv}c=(j~ZU6gh9wALZ9Ntw1=MJ~+4s^hhl3 zg9lZ5kr#Qr6rZyceQJuYMo`a86AX+rZfDQ3e2NCL51g!@k3Oj4^fRiL^b%J_H$7elh5~384LZv`2mpQmH4=u zV*F(Bb(rRh?-ogyg~O3-Na<{yq?gfcPU$s7w?T zNH|%mm6(l1Ez#iYEv#dm-xHsWKnT%saVSnSXs39P!upD;Z^VHq!2M=F&EKtIh2Pvu z=a6ui!pgiANVOh|zjxvE5r5^0Qc~)D$c18GKsI~`(gH`G_$qUe%a-spaqGL$UTSZm~7MIcoYa7lo_e(}!aC z%~BvtBR=n@llgiKUxxxWLD4~c-WP-|6C7bC4iY@TGC>cK7?1a;lb4eW_R@GiZRA&# z{sU;&;(m%`PShr9`C#uL%}YUl9_$HxSm4J)0pxSh-lhxrRi*O=j`9b4%e0nX@6u*WUrjon($^}j<<~kL)7So{ zT%qy)e)^PtKiEG9urC0%`%BS7Mim5}$xp$;zxCf=Y zLi8()QbVfTY|^sbW^Lr|qH8|;b;u$)QeZzc*t;EA_kEi5}P)e+BY!cQELn3F?7oB6RyvE$2`AnTWVmXJ-FSmr;8$ztyVd!0*j&3ZZ2MO!JRJxQrsD_mTw0sk++l!3QN(*s7PVCg?` zwN+In{pi+mJUC3J46Bz}Ls4({z5|7_u*)w{9U!-Bl%>-V8Y<+KhgILd)I}DK7bU5wI4V@gsEO}|?qvy3zNjMkm zm21|;%5(~_Yg%_Hw>PQB=j2!4*)|`C1`hsGU26avpos{?feo0@SQo45shuGrr_@B&**!9#rBG;j0EWHQg1 zCYctX>Rp~o!^>4RM$?Q$Fe&0^U1_!C#5r2fRF>=s5@RbMT6>>N=ZP`~fCX73v;Aat zkj(BTvwO+xFqz#?W`a)V`8z~>!|}|D=`;s7v-x~3@MQ9q zVvo(URc@Ud&az@((lR4Kdy7O`xrw#S=GA#Zh879fmnCH4k&tCaLgpHYG~-CXJj3+j zFDP}io)#6v+j^fhzz!|4a+-iDF6eY8plc}b1e&haD_Ff{F#)Spn%%Ol&Jq7GO7Mli z2zX+wl6pP96gW~O0?E(wvKMt{uHk>U14ra!wZSrcSj>m8U96dLj1uB2JfdALz@m39 zwt}*%O2&l%B78unZw2nJTEJun0}pcTgN7T$XUwr^x*~qNPXw8(K1jWT!#l*MQ+b^9 zdZ|CO0q>zV;4=YGWLJcgNE(KT{fHa4iJ_?r7CS3|iQQW}KrD`U!w!~z4&L_AZUk&= zq%FQe{TbQ6fW`c*eR}-ln5n_or1dG-otDK}-mKso$U}nma9&xon8TT%v7z4j=*$4D z{|rG^f9Q0AL&)tOsZu*^$SWXF2T*$ zlZ4!7kfRK&!?#YRh)J(1GYA8@6xRT8!j)rG#CCtJ$vcGjIbREMD_uWS?#f3~)iMWvh1EMXhqkDz0Fknl76Il|MfeZy+ynzbHnjCO)h!^5y+$%`XT`Qp7YyE6Q*SK@ESzBVRB_-Ja$o`4 zrhvxCw0CG1i!b0$v-t`_;{pp%_Qo;djxs_Lm&s#&(olT9$pI~d5;9?ZCEG(^_s@emq`cvUpsPS8j@ zLCbByA>(V7iFZQ`I`|ESYUn!HAGB%?S6C1Q>`IgkO6daLNU3Kt7Pa42{z z29D44+oNz+-hQ;%*V2GwGe-3dwXcTmx}dlW<7!iaUrLa?0+ zo1vF!aLJeLZg@fN2_~st_C9MD6-)AR-pxbmGq8S}VAF|oqXV*sUe~3VP6QNuK-mo# z30Vha9Ez1d-*pxFu3J_O+@b{!i<~)7o#i~cq=S-9yLnYfN!4Nv$Ody42B}W?(H(uBonU<{uQjpY()e1O;*<0yPM2TUL1PXC8A@~k{Faod|tNCR?0P8 z;+hl!gAMIg9090jSA^`Un%^8rK_x%p@H-u2R-#gU-GjrTyBf+~tvbL$2&O{JH<<}i z0S9BTST8n!nR1k-fwsv~Dz{{ttfQ3m0_P>D2T3gi3p$4r(LX3fSzHZ--QXj|!|HX- z7R|tZU4z^Lq{I!x?evyV)lgEOj&jybFc-w2&gspjn38w`{*mG{0bm$%R!?Td`y509 z<#c>0*w5m;Oz8fT%&@2AeM^V>o=O!-mepNN-xLu~^o5l#Ol*w29Y{{)y}abnjgPN4 zrW@Qm&+16SC}$@oNdiW}1HmPqc7P=hF7Faj8_ZQo60n7NRi01tW^!XV8&QI80#jrQ z0_(+jNaLe#IZ6_cf#VhIk#C$H8MF^Kv5$bA7mOp&jQEh$%|*%;S~`&2G@GY+RW>&i zxq-ZHsf1`2)78>F3A9M;DXvvnY$zn%iX&n*ho?$p2Y3SCOHo_nOfo)4RNz~e zG74&w%EMO0f2y-HxSmAU#g>A6R0AvZE^yO&b!(;e8I$NE`%pCT;fghcYm;gyBD{0= zpe+oE^h|RFX)|^&#Vnt05L%RUQ+TR(gB#XUchs^1v0Q|T%cj9w`#HM7(G$Yga(n@L zkN;+_ck=7auZ%WHQ)&Y81>e3)YfhnsB03dNF?d$ZL7Esp+osh8Jz7Mll9-x&sFG)i zbq8uabD+_}et6=Klm^cJ>VueZwwS}qh~R>%i?g*L3X?j|%Oq&$`ZMN*vX@D*LQdC8 z`PdFG8m(`Y=px;k*mBaj!J^7=FXUDK((D~}6Ze-~*ZUzQ+lB4yc{ zGg_(0Q|q)7L$yums>0VzL>4Gb7J(Zu@~3YLKCq}0Q45QBI!2aSpN!-g)#+1_KL1F1 zw|hhRlZ~$^S6U7>7`@<-{kRJ-vXMwXRk1qo*Y2wNdAU?-?2xxWO?wz3ybdJCM&nmC zerJ>>r*}XnR_pM3S#3|+YHciN${CvYZMbgzFjgD69MS$VT~%63A=1r|a#GvT=BXC| zwwS(jRu>gc%SeV%7;};@X2mLh2|R`B3ALgj1n-l1)tDeNGJRInt7qUv%t;Bf-=>jFcfVoL!Qdzs?iV%Z)!wq;aO7(=JCoqT`(C%jehBB| zZ0FR^@FyX6eVaLkGoWh|B3=hp)Sr$nwzbtjzuMNfH(@-ekQ+~4<-O1A;_UJ@a2dQm zLsJs=+G~rt^lp!CpZ3CVkD4Z!5t*Z;@3lu{&Wx?xxV|hZTS$o<5030%NXoFuI3`ro zZ-%8=(4N0f`#mg*S0)W4y6WVL8!{?Cr0b)UDM_o3R0X9zr@YF;wcZSdr23ehAZ#04VuaGJi7#=EUNsA_~4npBfIV@%db# zlZ{~#waCj0;UnNEqFUtC)nn>BF!>Qewbv7<_nMTkUc-=~syk$P^JiwRN5GxOe5X+I zH8KKDCyY`Q%4n396~F?o1@!o0G`}q+PObgzst5ZI2~u6ydP{((1u5_!I7;W8vtcG8 zUG^t|a)s2@7Mr++Jq=rYo~-9e`UFBD(k0Ub31viT!%2F8jc8S6dAn3k!ijl>(CX7V z$OgMe&I$&+Q_B(-Sk{@kt)D&y&9uVNHzwtDRGp$poRuUX#iz`7sN{yqZrQ>j_43AG z9h=0fp%s!(!Ik>1_#je5N}3*FhaemS<>)SHzg2piAzc+^Brvkk?f1UC1M@-2teDp5 zx35lbe+BS3xAfkw2MlZfs?z>M?Kr)h^|#&MZ_u46W(>IdqvP${rvtR&-o3St5ypGB zdb~Zj*iyg1;c9Wa&PB}R_>5~_fW2IrWMD`)2mWd$NOPl&=#)u1{QFd(sLuF7TmP6Z za31X1?FF`ZV$+`$A5y7>PgO(9LqA1U7PrLIXDF?U7{qHd-dum{kN&cKvU55(?vH*u z8Eu{1Io%%gkB29B=(qSKvW|!St>eMT2+~eP(upX4>kbV(Xm5*}JGs~%otz9$hvMUE z^xLE1m!cvzHG=O!fA{u)TA5|dkAxStFWTG3+oyNjn?ZDqB!6WsEFrm*N{0UajX~|> zQSX2B0#}NRNsm+BGC(?Nt*ET-Vzn_pX3&U6R=KpY!dQXMytJiN4yIQ596mTRN<>*R z2D5Iv`G|$S_JhE$){d~s9fSd5HO^bb?gquwRSbp=!cf&qS`75gP`XxJuZx`9O*8+J|MpWu39@I z*M_a{w6;!OyKmaQTB3WW)W_DQeJF#ZNa`7sk?_qoY_MUhnFRLT?$2$kVF=v+glW7r$;O#~G2 zZlo_G%u!o}FQ=CEl~&B;H<7!Q3{L%|v=Se+WqOwIn>K1JZ+~!<Z}g)@C5wu8wUS z9tJxtFpv)to^A0D?wd#Z?t~2@R$Mx?2zRKSahmK$XAO7hqP+P`35DYG^9lE(7FckL z_mt$EEJCQfR(xn_ln^358ZvDk8rHa_B<>LTx)LpRJ&2DI(ax6YauV0>H3=a;ydlKD zsp?5&2g``^#2nW3R}>Vy6u!AMYLa1~(f;e0K)7mR+$LD?tB~+T6g}m~`i!X3gm+R-+l2 zDy&nL_=qBV&FXc~ej|!)47-JJ;NC+t;i0S&vf;6fpr>zjw(3yG_U#41m8Rh+A>EiJqyk6T@@9JFsh7BkCS4IPn=h82OjQ&xG(Q>a&6(( zKL^MC-R;3GPcRj4&Aj&RG7kXOi}r4iQ?BQZ11(2c$nB9tTTT>nalZ|nf zVptWNy2(J8=CVZO>Yu$dnarzF#vD`ykENw0*lS`GT;;qdCh7^6SSRS#{TjX&gQ==& zgfgow8ed2s{D%%~EYzjfmLHyc?KmZ7`BJZoG9d#3G+B__N6p=UUL>4hD^BvMr0i1R(T_4x$H~ zPpev%%p>xym#RUxpE0DqPmBVUN9dnK90B5F0)aiq|BnYCuy;iKHj&dRE1nX^X+Wp6 zoSqwlN5q_RA4S95`B?PpD5yo@5!KturAZpK7LqUo{ zF|yBD-Dq6S!Wo$s$qZfR+@diK44cWBHJzc+jj%aRvKqg4I5i^z!GL=o#K}_Uh6L}e z=20bZ{};R_8cO3(Npa@7`$(~xtT*VGOF~iAFuML5k?;C1@cd`S=Cv>?P9sleioGVD zyyTei*qA$A@@+-by&MkqV|mQrjEcLe4CO8z9xB5M{!5R8lpn?Jda85MW392G>$Q;H z9;qwb0d<8tg}Z~ntFFI-h4cl9l?(J#*}LNlQ#3%KfFP5n?j;dZ_fEUcI)9|3ETX&t zSsE~?c7ci(nX7tID`gBZ=5bQ=I$V7@&%i8S=H_<1fnBpp<<4oz_-F(LnJMb~*!n+8 zt7YCf4R4U~XTbQd$W_XXy6JqYv#w`8$@Xuo{n&2zl{$mFovBHDW?0o{ngWGO-y3gm z$JG^xKg_4EBclwu>TOr^(RzMW%}>+qwfYQHeGFixQ@BLUdxpqNSANR85Gi6~RCeMD zDuQ{INtp#HHKc?da7+Qn8*2SGt0_^MONaVQIvE)b6U%#yks#E0HYDX%%K;wfQi{}2 zJy4k>U)#7z=e(fyKEZM}G-RGeP#E)M;B5PWjJAVJAG8_BI22f^0Joe{#sVW=tDP2i zO-?gVZlNv;Wm|h~xeSe>3!c%JyF0MVXbTkdb{3O-2P|l=Zl8uWPm*E!#nG!a6J}Jv z7_$za{d(@{X}7k=8jAQW{^BZZcMs4r`|#WQT514yHfE^`N87Rm5S{IL(u!E4uY4uR zu7)|S%C^Q`CCg1(kD9dj&A$w^gu9w&^@^j-hl=ip4iXEc&yO@H62 zBHh(dr-F5?+g}4ig|4nx(}w7Z1a?d9tKk-BTP+%MXfqz%gKMpkDcCn?DMPeE%~+II zj%I619xd=1WM5Xjii5UsMx4z1BZM^dbmH7EA+x62sz>cTH}h~HgpwGgi4oirWNF`{ zJ0pfu8$Hkgxel&Y)&r^AxXK8{Id(NhR48A@^fRY_KW@Jz^WBIm@&&gFEnatp z9*VTx5~dritYUku;W~yvic>Z`qK163Q!6->hiqz4$2~cRe6l-l#h(nFUrrf|N({ZiNgukV|xGw4ZLn?jlZW;h{C;lik_6hs%&jGv)15X6XD1%IIvTH+MGu1}RRv{wRW^a1>8WSQanEB@ovp!qxA2UHyt)Hy$Oull3>xzWJtS+ya#2 zW{DXe9`E(6xLB*|+x&w=rchj+CZJK9CS%t;edd)F``0}~=XMCU_h9|8kJ02P&RO4y z1!wL9Rv5?R7+Vqd+C8ve5#KSA*uxNuVnqFVAV1F4$2bgZ#@u$)rBcO|apzi}kIlo6 z_;J$QKIw~p`lG#_hw$dp+)i76o(%4s7xwY6uIDdm0SVJ=|9B`8!OY`$h>f3o4o^y- zLj#{<6N4+A)q|`aWc9o(ks&%%y$)oKRh|;8w*8@@?UNZ7wK)_;hxB+(*$w^QAb0q#BCP%PC1hP9*wXM}u znnF$Sl78?*Ll_W8XU!bRS^B1n{wh**DvD(Ms(bCt9ro@uT%xFgGB#ldOEg zQL(@^l;=ywIEr%QJMA8EHrpJQ?mlx48&sweoCu{0k+G&iW%{wlA~Gka*aV+lKU%7X zqmASxu|wv-4IPUf^wT60M@O1WIDy!fwYL3i@G*-KG&BA*%}fS=Vt3QjEeB=UDWH8q zX8M>i4pJtqn~LscI0!z4~k~myJq5{H!C#N&zCRf zS;Od^At6>{3D>AWQ%A=a0$q^tvIeG!t+U*GE?vq|5~o^b!VmVOKN6R|&yR-EdjmLc zXk~_!8@hS}NWT>GndgEvewn{piwU}*&zp%zkLW0I;mh^)pK9(lXcQ`nYIsSSyvE^^yhlc2}lIPjsG0rzjxCFkyQM15QJ`3 zD+&xb6bKI<7VD@U4IN7y@s9$%lV0HK-N`cvWpGK;RUmY!l(;q&_KOt-zK3fYTVg(|?n_&#vB&2h_~) zPC@Smy469;zV#;`u|V=?^#1%cywT&FfW^D>8~hv=i|jlPi*6#c_GkiZm>|<8{(U8bF)}xbaU={kD#9k+#U!C+wBu3NdAo_-gTH_QX*y`lyvo^{v z`8lJ3ZAsZk`x=15?R!&9oD!?&=-ElDRPU0fr){lby>}XUk@IXy_Kj7(C%Z#vyAP^I zpD~86yoo>87`KISIARw?m~1`X@EGu)S^YsVHK>y#_8k)6oe_#J&ibwh4S8#E-x6fc zDb@SDr}FqW%DCP7H9LkD>IpC+V4>>wIG<(ji>mIypzh=!kQWtbivsDZlRGE3uTE~C z+_^)Ph~_=`G=nsQ0L{^z3v%bJ*O0Ql*xQRJr>o`ZjjQ>z7gbAldm?Y>Y5^n&v_I}0 z=`6jqKjp`>1)aGWyVW-kAhuU@#r>(pPB2YKu3Tv}8^-!r9m-Oq2y8ZZCuWVr+s+ep zA?sTa2Ya%;qt22$L2Q6%$-td`v?O~TnUXRxK#w~MbRmjB(N^Zb?vuXcY|L*R^F;n; z=Rk}atkbRxg+ZRA^J%eOfSOUx;H7ixlJ&YS2of38V36JDNrS>oy76lsZD1wK`mXk* zAUUVAyVrB%<37Kwn`hqYO2&vyi{!s6npK(zHh-RS`$Csd z&cI$;n=P`$P&|aPc})?0sRJE~nwOO1%VZursCWmQuIAZ^xYVSHj?xhbMJRoPA>o0; zFt4k77$;N)3ALON(pwVsD}EmJ{*;!DzpQZ`tSHJ@YilXRSgT21C!H6zQSWvywwh2} z99rr-W=|TIn_X`<1lwr+-!qg=#Br7q^bdvwQ-cm}tL`rB3$S{0&@U153&84I;TA%~ zD-^BaZj0SpKyLtKm$uy3R>3_;v|~_>WsW}WhPl28#T8vfZRV~mU5)&`n1Ns=vT|De zsO&6zpg)d^B#M1IO!n1bFwZXY`tN?iKdc0r+%M!GN2gxo8NqV=J(^>;Bu4Oj zD$ycuHT2*se9W@uxpJ`dV~w!OT_S{O1{aiw4^npvrm8r8smv>} z+W^HjDEf`rz}DETyoicmxc`IdIEvQVhALQH8f}sBPZ;N!B&tDjFXhj zpGmMdUL{cv&vLt=X*x(Sz{jMcgXA2PPP@MK)|R2$96Nzs=$oa}QZ%NKZQn%evGSHy zwky;1vNiQYYBj=arq$wa=xV9iomP{zZO?3X@vMBmn}1jewgO6IbB$^(-SN2TFMu<4 zu4|_};F5iGl0?NRvJ0kK11RVwFU3Xc?@0I8r9hdY6sJH?NSwED=%E}*7YhvDq3F|U zqCqP6adjcc#8U~y4&ch;+%zKU=|azZ!*WvWm|oh2;rEdTdpXC*q_&ejbSNe*{_IjL z$nQW)MGO^N7di0P%M!bE$Eiu}u{GVSy#Y7Ce?$iO4|agBs%2z+GAA-TuAY;#7i#s< z5Q#@H-XwYZfH-Gi9sVv+jFJc@+Z%?@54V-=ceD6zb&C&79)%a07M})^qO7Xrk98&1 z7J1N4kXdD4imJ;`2Q+Ua?NIXy-xzF@teoWYuh(OWBh_u6!hr4h0)u+5@|(bqtJDt2 zynVusRxQhwD^8q^Vbr-5zHw1%13ZY-*ktBTRX^xsbtc<_U^o9Oza)vBru4mVTDqWT zRm5CL0^Va>l+zdGPkDxv+brruQQC|oR{nWa%)L-^bUKK_`d~;kH}VHYNEWwThwxTl~^eCVz7YN%6X4Y#jrpD zMl6|V^nKn_blg7R95r;T{H?fS&rvluHX6;r6TEv*Uwkj4gcC%1sne1J2EQ)Gd7Eh;{lFrhC z#s6JWhk6`H<42q+1}45%~hQ!(0-+on8Rb&#Mt#u1eJo?LMR z4#^n43A^N)=BCjos|jr$VO{I(D|#cJi}0IO=PgvO{ruDEF-$%H>5AS1Q0bu#hf#KU zg~Xs2BjrU5i|xLz2SnKCW91m-*&mCuL%v)DybY-Y9eCZ1D%SaPv-Oeo5CwKL`SN^ifXBm9dbV3fnIb?nenr!jJgkC{dD& zveKbC5aX)#3Sv~#k2zo-K1EqaeY8y_CX+zo%CU!!sO%jz(HG#&v_#6*`803I6lE>w#G>OZ7EKK}XsuC2~?Ei_P{ zEu{@Y1F`UAf|xgYC~k-3mhG&0)fRKg>h?klZYQDZcw91ak>k5iYU=O6tf^M9gP#& zqn1{j3lKy9)5NCjA<2(MA#>NrsY(V-d$6Ylz~D}@Ri7y^K||xgV3RIxa;kjniT815 zU$_a`)BRJ%2J#pVpgaufBC74RIz?~aS-vP%QCA+S`uL15Tgn1<@X0-vIf?;lj)T^7 zvXjjG`vKvFvM?0>kL%XZzFiY%PawA)i5@LS$*R8O-Nd$^U9eyiu#XYASCt7| z)8cr}o>M#Xa8}fLi!PJ+(S%&Xe}W;fRbYT41Zc?d`R{Y`_Eb8A%~J~T#d*^zDl3dG zA;*Ad8NPq-Lh+1u^STaXp1M~{1YyB1(CpBfTNH$`$S#kb-w zq5VPVhih}}n#}X8WY8->DH9OpKf-Kk4LNtQ-9|8rnC-r&ClnEY?;2-*&DWQ&vhz^n z=P!GxpTiB)5|(bzMccTIn@BSTuE{{TyRh7|GCX3O^EKBX<=nMk1f<=|vBA{3?_@W| z=xGiy5aN%|u{XbteS#_+t{5rsyzbp}TD5KRs8&axMcP(}rRpH0CDSwQV49&YZ#&1f#a+Ae!jnmh%8`XjN{27Y7GQxYtEXD|Womx`sWeH?n{Qu1ul0C+et!91FCVMV z@0Hs(?f*@^c-*=xmR7&{_nPAO-{(0fU+Ws)ccJavua~R~r zCs0~ec8v}+j0WwaM5s5u%6!^8AXP0PPR9ExnY6@6=H7yzlax%S|71L>6UKPzE zTVBnpYI(H~WUN@u^DD7Jqya3(3^ASeT#PQ`z_SEBI6&gs?YH&F>(OPqYj_D%=ez0?Xog)VVVMzAlf zp0<c+{6TC&p^FhWH?)?@{Yx@fN`c3w8I#3;pcA3Jrz;yc@f-%())i3LA|8~lx zsRjh+nXM{hf4Z9KkG|UeCjr3C8N}MxaQZKZ%jNg+i0wlF;q;{U`RVQBI0nf16C${+ zO5}iSXRid4bCKp2G>8WqoWV}Wx93lXZtcHtNGIy+8c)7^{PLw&NvvmAwO5b-=2c>9 zT#as@I<+3ZdiB#VoSs2ZtL%?2pZ)yw1yfo>&CKE3=im7gANG-QofUPnx&m)4SLJF3 z|L?$$!48FZysFMH$dBBI+#&;qcU4WN0`W)Nf^H4^CnwX}gYqguRAebGQ&ij*yN$;c z+J?Qth8K`~AIwDS^g#d%b1SG==J~XdeAcjYv(R1{nyKdRuFeJ22xbO^El?6Uf|5@M z#|WI*1pCL2M!yN@+)`6DCtF`+?XAOM^NO zet=P}-+pqe8yQlmFVQfYb3TXJ+td|!Nr{&E>Z@dbFS$w%4-X#RPpR3zill?Pka+*@ z!JcowV9SJoC)~}J%lT!WSW9FH>3(Ok^c0a2#C?s&?Atjy6kc7AB4s3pc&g=L^46rq z%>!p_4z0#<4v|HbPbbHWWH|S|wppyPoT@5nO%`g|qK9O-Nz;HOZ;WJ$MwJp@%!r$$ z)acFjHU;|>T(9_an+%1n`khF0<@gNtE$mH*0KB7lAp(FfR5jh}@G>d(q+nhlXh3c& zIA|x}=Dlk3k^Umn3P*}5A%Plp^d$<7PQ8${G$|D6(p^p`Ver)k zcW93>^^lEn#x{K;7S?c4Ni=ckky)04l!r_gqf@SR_tuZ1ba$<-7}zj*P3Xy~o0{Js zys|Bn1GQ1;fg05pY-#sHMiw;3z_Mz}Mx^`o<@0HO!FpZ8I${p+*Lr`5DH33@f?OCZ zVrrhaFr<8gH_xMZ&?avcTV6q9dZ6tMU2mc@L`LJ>{sB!y52{Xq5XJ*b64~6k+t-AF z?%)d2Z6MqPfH#`;XRJ>(!nA_`)2!1=6SEMdtXBeq(X4}CW{lP-ETq4Citv%5J-06m zFU2WOZ#-Jv0xZ(T1C6}Ms4>24GV(8@MSnoa%rEKwQv=9T_s18<3S;C+VW6Y#uMYr& zeqO#h6oA`vh=WwNb50DFjO;6XRYdZKAnG1bVi`Qvhd-TLa9T@|tC?*m`=+T{%kx-W zx%$0g+GC{78brq79&vl&*6n+UTNg3myXE8)B|y-vidQnmM3aG7@VF(=3@q161b*v8N5Ivm|~at0>X^Go)~ z*sA8Nn!f@nY0Y>j{xPngBECmxRrTVU9Re~m=>|N?nL3t{nxl2Z{0{T_Hot68NPgrS zN=~q}$WKGptpFydNoSe(A`kY1P1H>h}cbIahuE6Q(9#8+i&EL{+VUUe^!nx&9c_4}j z?9L3Ha?Z}kHUkrOLwY@C()#}#?>5!Cp5){ZSZrhaEd(7^{4;AUVzcHj2+qJ-By&u$ z7_41dX^G;z#J{_xK*5&;gplvWV&N+h^Y*aOzR1LNXkXlSRJCgk$MM1MN0j09$!Ux4 zTdVbvMk?|mFUOynfhfc1!=qHGr+Gnb?Xl7~cklY?js0tsKmA(=-w#Ibdf>$o^#&h5 zryr}PfS=i1&dc6*DuS}JEzPrIeIDFmRhpRQw)zex6=@IXqkghwL=!R(_YnCZE&K3z z2=%nILJx`r7j}&sY0i)#Wj-Cf@mhgMYm9SnEDFSFOL-QjpE6@JRT*>PAFxZtun@sw zDainE9CWj9yF?(5={)Wlw$vViWW2?MNF1|k5|rKzssNY*>St_ANM{$evAWzF`t}zJ zRj`Sejl1zh;WT>er|7*$3^qs;z`84R>Su{$tcg2`mhV*O_AXr=LW~;0;-%892b2-x zfj{BgFw>P5r6xKzILELw4+CxhG%>0rxMXlNq&zlH#VIdJL3ft6gpgH`4NiJnE!LCG zAk~>Vj<6=XuBZp^Xw%T=74J}l^-DH2pckJ{LWi7`t-<`*F>2 z>=L|`GVoa~N^W(%m?V)x{ocBiE;M*8H(xmDvizy%htRp?t1fvTjb=!$m&QLeo{Ov=dd9tKzu5o<6Ff<(#d4w+^_AE&#|pE|o9t-5?l z?6@A{rGhNobulzN0b7KO-ep=HwCFm|R&PE|Mhl2mH#%)`F(YR?htMU#e0`<{Rukb> zSh523TxGpng}hCiSu!q`;1meu6-aBSW5)T$b+~G;9{&x_;x_zpUti8|zN{^WYQ*Jb zi)>GffZIvlLk>Sm)ZWL(j@4o*6|AIklX)AsLGPp@d`=waZBG&L@l!Ktki8sw_sijLVjKr#x*OwJtjc|=M_WWv+>ftMvsuW}~wl!1&J$U>qAj zw0|YcR!aC{eYEPd^zmf$^D_`*#qv| z+M|iFlZJ+{qfD?b}n0)q{&DXnVn@2P6Ax!Aa->yKK4sz>TK6k7){((hnm}YoHDxKX^`(Dx zjh2qAw@LRxhlVz_8+D*fthbS7lyfD}KDTm65n90Jbta$c?Y|uiHWBv;}S}col}hkgX}YrEs69PVu=JUta)m$fk>s z(yL6vcWdLlskCO7qD0ua9uJLOnMd-VV<$?3XbsYaoNQ4Fo9!KZ%m|bS#6yf)r5@+( z0&t{Ip@9t1wc9N730OJE?sqBT)X+;BD;9su529112lGdH{-!t&kSg~|pU&IEU*LvM0^9tT6 zlhS&a6c|bt3j|jH2m>7wO%;PKbu~GNH~!P2p4Sp5Y#JWD5kTK>lb>6_v>#$P>6XL> zX`gFeuS`PQyIhIvE*(1%9a8eimU^!v$a7SSjlyrRAo#*Xb(z(G?zSJPA=7&rCjvFW zXb01fzM#85Ss^@F8;G)xZnl;M)p zNI*S=p`#_BW6J?wF*Me1D%~79!{iSg8Wlvk_HT3%TfB!ddZN9rdP7$Os;C8NHP?xr z?WYhIZitsnE)r`GVi5ijHsO@n<~ywO_eHgCv=F*k)#;l<`*Kp7Batod zwX3)46?&9x_w|osvs&9~i1%^j_JNr?NN!u}jDrR1!k$@Xm0V4yJzslNH*LE7;#9BL zgVRVWM{WA{Auzf@5yJy^?Uli5>*6E3^#S6I17G(JZl>^bx}^aK@3j(>Sv)`%8_|p| zkb2yaJ6hb2S<(s|vz=PDXawMTV!+*zxh@S>Wzfx-;9zU8t9%*$+$*MXl}Cqu4-6!A zs=OlZNce&@%*z|_liV|t+_N^BZ00Bi7TtJTjc!VEm*a8F0p`cZ6aiXM9%WF=(4?E8zF+YHQ+$={1+~PLF(Vf(Si-`RM3`k`~!Z2S4rtr+e zZV1(-U^wy`F3iT!%Se}(YS0YKR6VhM`lb!rV7UKV%xi(uJYz8oX4TRRN{`8YoZbk& za!|BiZSL6gZu7=^1x&WFC=9OBtkMgk;(?9z29ghmsu!hE?u7&k;ASQxD^U>2vV43y zP)PXJP)I;aQe#VJLTejUgKlZjw@NiU0_fJGUYGl*Emh+qpFh>z6K)W_9&3u_j_DEX zWj&im1V*t_gOQtJThU^_VKK_n*M3dQ4tG2))mCEWbD}FWc)plrE2ATw z(#;}G(7QuGswij7FbxZBslVzY`QK&kTVgu-3a%|*zqsI_Q z9F);ufHovz9B)R%wzfR0+V-Qyveo&pm~%7$@2k><*%SIE5eb-O&^Ky_gP*LdCa++i zMMMAuNGLEJ3%Hrb8R)Ks7YQ+BDAEltDhmcXmQ} z0CGb_1QS;Tywdc@b{$KIF9#uxHt@q8CH7%qHH?wLKdJL;L{Ok}PHC{yFp2edubL1; zR*1zx(rgmZFEwmzw}|g?)4+m&v9zAZCQN%HbS>$6GjLIj%&Q(rgS0)m94Zfe==TxQ z_nF$t_N%qxL8M!WyVSeZ8@K#~jC3~Bg1ZT}x1FXiRsO}jfgqHlwWqv?>=Ldw_|W4# zN!oVEjHcN3Ha4p|jrp$&*IBNMz_Q4;l7LJj*@k>Z>z|#mS*QFa9oKpG_Tz#{+1FS_ zJ>eFrun`Xo7oXh}#O48kWMELoMJW!Z4hDuO8ui2QZ%3a`LxMHJwGsO^Iz#{AyxsM1 zQ|$F~XadYBsu&`5S<+4Kc0D!8Oit(R-*9BxE^5g#zU$yX%vR$1PgHWYN^ zfjxl=^js-!sZ04HVcgFJLR!l}Il`2lmBwJQO(J(z8f}MwRe||3SS$gxQEIQ}r>J3l z)`HT?Kd=i-&!cOfgY5ui#Wywh)J|EaA5@7cS$t9@&dgH_`g}}oa{vM12Y>+jnse6B zrlAK2ZSpB9yGEZfp{1thd0@~f`m#}o?kjsiFa~d1v69ELvPIM=caAMTfnO8qh zWl-9FMOo(cE9o=NQ6Mm4EE@1vzScTF{drcNN2d;%p|Z`E<>;0~%ur6sd0XG-ob#A^ zhSM0kiIF{Q`w{;6lTRJpQesH|PITnrz8C1m-v8gx;CKZ!9QlwFjf;&ogj|x2GX*G< zBPUj`>N7s^;L(L@J|b|czOfC3JeYxEN-4+f@(Cx&q@x*Qt8v@nE$iyQl9yJosD-rT zgtGm_mA3mc*7N_onqDxM3B(TqVPY?ibp)f=Fc@=EV?EN5I-RmYI6g;Ev;&m78a zwT9l|Z`>Ry24@q{pHWt8sNbyfR3Ks7C#6p8)63M>R^PZOQ3yP%b9B%DPs+;1cq!#y zdh!x|*Ka)hUFGfG#PVRXCv=PH{l2t2U>FH}of{0)Gd7w? zid?QEY>!_Osk#{RH5JhlQGS5;PGhX+MvdBTn=r6T;O0 zK)*I%aU}03pbA|*7Oq1(X6(&+yeL+F$93N1tDAQ0_-QP7S9(T>tlXq|r$g=SL1Y2wh0wDW&gbCKdELUG16M2}1CFVNYdf`J{Ev0f4*LaC|i9a}rH zHjnydv>MVXMHP{<18mec>e*64TzC!C;Q%lKl?(-dwYWe4p~ki~aQG{yr`3hkVFQn+ zkRKxi(rq)63tB0hF>8-*J$JY_1t+|L6%fmrRcLHr#M#Q3uM<=oM?)j?HB^>~%^J<&VVN_Hp+JaBxNy9jYQ5}%>!12bfRj#Ek zYT|?ngb~McXz%aMCGx7G-n^K>bXi|+{_+M8ujbPyjIL>Zp%m)emw#4gMS=S>_AwuT z5j^>A1jauFNbB(8;W&tgnCVt@j5zrURi^$O6Ll0IH&Pelv@QDz6D{6FUJ#7>`+asUS5zhB= zm~yxc<0+joEES#`P&0Loc&!9pj{?O4>qxEPoY(}8(TB6Rn1m8bCBVL zrOWarjN8^2t%3Mys>*uc=r}-w7k!<6|UQSDR_SKD{+x88!%V2?qJJQTI3_FC}BROtxI_4;^6GNZ$nUhlY=FvhiyZB(kRx_1Q|4 zA7&8lWs%OwP;MBJ#U4iNwy*ZCX2%U*rd5+55P7pw+4LJI_7(` zvVPTh{-J1A6lql{3#knN)f=gDg?7j>%7VHiw|i+2e-J!h%QWzRtp|A4R z>Dmp=Y#7Obe_vj>C))GU9%Gc%buV-FU|eMMqZ zvAl6q4@nK7E~|KFhB=a>gpePW7M_5Tm$R{>YA>2y?vq4sufs|!B;clEiZWibbLsp$ z;4Tg7i8+3p%B%sS1+5}txP_~PMBczJuE*G|v~FhIC+$OLR{_!x`uG?V*wl6dqDzxA z0tKKP68_d|9`j1Z^yoX3R0QjT23}Mn6dERUR4%Jj%1!k`+ipq@Oqnfg`^-|_KnRY~ zv6V%!(h$r8L#ISypiUo0>|pWrIb@TU;AYNUTex_4kufnG$RHBI4C{YWSBqCDwPA%t zc!|_OhBfo?CL%wY=h;+%@h9oNND0N2JEM`55AB`e8$Ym<3s{3>6 zBkC8Gen{m&O{_y#rgRg1GJF2E+CVUH=?O%3{kXjR6TN$z&s_tmsB?AU9?j%(<{l;!uGO>laHJBLyB zXK}TVxXN-P2vv7|V;69}5>9}^C^>T<^8CR_VnB4oukH3Q(jOfLqo{w(9?( z-X#=7Mef0=rH+(jTp$gj+wu~>xHb4r{j_M!o88p6piT)j}0+#thD)QZ^ zY*wpIxn{l0>+kjU@~??DIk66FP1qR!SV)H6SnDls_D`xcjz&5q?d|nkiygc+iM67b zfO51-!Xn4DHq)AZsLv!c2wbS2O?!+R)no~dG1W!WAAtd z*DQ({!83(nmIT-koEDh{w{ATA3?9pQe+4G`QS1N6JzYw6`?lm4RaNw0VHd~j&z(|u zm0c3+%p3ZBtPQ$Ds`X9Nq_#qkyTe7RI$M#Pu*f6BRI$!B!!Ib@;}6UIsGCjWg*yVX z>lQ=sDACx6V8l-XI*B?o7T2yg-La^WMQGP~2DmmiFd)C|`nS!=NDE-21ZNUB9XL-h z3!jJ_-bSAC-Z7!h{!C*Rc2ajLy={eBZ|04SxwF__EE`{{?uh-gcF(47dwTF8>q_cZ zo{729*^6FGY%E6NEN9y(G4c7pXk{*h3%dyY;0@-6JgwEQQb07?HomSQ7l?l9h5UsY zzW3?~R%$wLkscdqB${f?O!%u5G=Y~)6)cqdwCc>#6@sgg>a|Bi$^jL+)R*)tKt2O! z3m{1OJ>)bd`s&N^ucXf*MeYI*TKfLf;!V{LCTWYe1OYuDfhnZwdl>k%weE<|pArbX zD6NK%^`q>u;ak`{^*(#2o@lb!w}ZdZD3wUSQGMhri>;852-bmP(xPZh7&S8X6dgDz zQj6?Yp7>Nh<_*tQ%nUb%uHZdy53d=jwsfm0T-`bKtCPDgArik$;;Aqw3XS85qUN_t;)q`LU1z{G!d zEG?}FHq3*NT*Rf4jqC>uoPz;|7h>ffoYK-3@0g*DRSTH3cGTw>NakX;nf8F*Jp?${ zCy8P@2EHJ}3o2t#e|P;1EN-@P8-(>>BB@~bD>&_OfmeNSpznoFkpWbtdA=;}Ht5H3 zfiq^y4zr?8$sqhU8=XpHtMwin1`2uuO2W%DuT zNOw`cTNjhJuv4-0o!|P$!_jYl`SSF3|I5+I#mTRy+g}YvzkPLj`_|Q8`jE17dV6qd zaK|)(kaEj-}$d+7I1ENwa=7aUCrro$=t z`BYYt$Qd+Gr59wIyQs!*0s=irCWrcNix&EvsjUS`b>FabZ!$( z=og4(UQRL34Tt0Lu~0aGvDjqaXJxTm&nZ@u9XA|&V4!14FcezXll=J#MP=f0KNhz` zAZhOfbM2{v7dBI95Up>Ta84bQtPQg?-0WUW$ZJhgtPx^tgQGB*jcLI;rM9e8E)J11 zq^H&5zt(wui5nM*iaisTV-4V8S+PAz!m;cm`ye|-L&}5^&Nzz`TM$%K4A&xZT|&B3-m}$qnxr^$0DNQk7?ls7ik(U$*^n`gUPTzy4ZX;v6d!1Cdt9rvrq2GZd;de8Ji3mA`0RL0N7V?sS;TZ6l(v!!=3s1TniW-j5m zC7XL{t6*;bBQh(fy!tB@)P#+GT05#QlkD4$>Ss3>tU<)^A5YeN4!%iOv!d~X>yi@! zGZ+ddAj(I*jaX%ak~XfINr8`Y`Vue)y?KcKhdR=(4V&ARSdJ#IS6}C1%jJF38mgF{ z4fw7c^6r&mcJqc6KlAOj+~>s*VM{@B>tgbxX-FB4*RsD?)uKlhfu_%~=p)ZcwnOEx217?FM z*j?x1?^#}JKRtpg0bOXN2P$?6dJ!tCW|mFiC#<5Fdo~4++uD0gFcQH=F25;0Sh2~( z5)P9doZR13wf2>XJ4~eOoz^o!#i$RF37=q?)(iNZrjeZ_XY(psK|>-5K6`dK3}aSR zZ!uQdbqe*&Pg6|oGjXASXc|HE-9SPW5}f?PoPTGfz~5rUR10~*5)Vp`h7@>?XOPpv zF<`zTT#P-jlaFnNs?ccJ55-)f&y#%JsfwY6uzLQ%DJp~$ z3a%_1PvzQ)Yz3)dBzKn&mK8k7b|gxt<;a9rEOKK;J5yrLlU?+w&1Kk5G5#>OUzI=P zDyg$loiIbo3$;9JD0;F=oXgmtIy5L8P{YlRxE4NA`^_LRg2!OCdXfu4mOqyKGWx%FEYb+Pr+hdm>Th=04w$(DDU6TiInL2_k|FROB97`19 z+FCfbVrulHpu_fN@xhBn30|EiO2AY$QNPl=gnNtz2UefXXi&z7*vfIi>9CtkrxptO zcl|(kWkXs!I$TwFFB(Q7U&^X<)0JiW(D@)}DVsVjR)I@F$y>eo30IP|t~iPjNNjWv zJ?0Q18pg74^z0KOqX=gqKZygeC9R|ng_}@=LFtpTAbvoWtOzjVrJZsdM~!${ zD7^F^m0Ph$(ieK#Bmxtk%S|y04$v^PrR3u`M2J~cy*=XM-WxBaf^8QYz>6j=Iq%X7 z9~v2gUK~90?LyHAo<^LnAH(Rf;vpyQ(-y%YKT$ndsNEF;4yuB5K}ldnFah?$h$X>? zxA+SV-#GHA^003X4EDlrLbv6GFB(%+!l=#{)%)Cdaivu_7;Nmu16yfqN3hmHvMsfQ zo#7(?(ETD$M26bhWt+fD?Mi6bE1jTi=L^y)JiwugT zr5|lwscXIh&Uv^n2aJwu7qX~kHy8t>8tTY^HYH;QF@0jjoRf4c8!Cdc2$}?_{u#=Ca>^vWr+jpTRFu3IXNUU%< zKSQy5<$5vBYl_R@yv@Z<8b!@XD|1y5n=f|!cG6pZXpJh4Q0Sl(63o zGf?Wu>c0{Hw5l(ooDR%nM9*{X2@oN7fD99qoAmP!;mEsLH)!8l?Ox1?4M!&VIrYlH z8|rW+`?Qq_>o^x1G5*hO&Sf@k?5g8>6N`d{;ct#UyCFh-9IGe#>}2pn8CPJwD_Es$ zJzxD&5GW9 z6f7p|8k8Mygi#3l1xFU?^Hwf`fa;9s-OQOzH|H6X%ybG;$krH%#ioizQuHS!3ieD; zi*$DaSBHKegVf@=cdhx<)l!I71EV9gHH)bM+LQuWslPg`!xre9mt?T1F3)1XPBnVU#nbJ z9$Y!g>wp>j(4qrI(&~lG`OmCNyN9u!jH^fZ4$wyVv_u zt&oZ&$&G?tI6|5Z3Av|yip-yi)6t}!MrG(ajk(dn7%_P!ZGQESj;k*TAz~WX9!cS( z6Z!vx^L6zYk*s5SH&K}X`cNuu}-!6^X{)#=o*h~E-7ljonU z+_-B0kAuSri|2sG!-$Omgj?=a&%c=}|5bafheYtweN%e{GnK4guXbRuOVzZRg! zV!DwwK{2T(Z5LfivN!#3Ux9w>X6=&FwBW z6?T<%m0(EZ;QRjU+zr~cTI@~J5%ex!vo#|$5a}Z_x!AeL?4QVBsfMd0|@K3(f z8<5eKr%B&HT*?U=am-Q|hl{8!orgX#u*T89Txl~@ZP}yK!RAgH-~>iDjFzmaho&U{ zQcBSI15qkMx@lIeShvl|VmzasM^Zz)FYS54E~VLz61cNwKV;jm`CG4VS@ekM_c-yp z8Ya zwVObbsAybBri0$4nGvw3Ms;@fFB#6d{Kx?b^gch&H-7tV9m?jO(C~OOxUjv(2b+HLo0Z&oAX(6a`cGz%uMj-mEsk0hV>QHPFT85Ijja0YIuD1v>4%I=dS*yY)&?aNJjmGIexaB?Akh z2@OMRV7F*u>iGUGgw@IBtdY#a6g?n3GIRe#J$x2Z3h(lv^f6Z@aaLo9Tgx5~Q+#Z} zXTfPT!GE637cTYqKxE>Q{wyoscsguTy}e3)=_m-8w+KB0OwbeSf-@zu3O&Pi#fLW9 zc;*@?xzDWN%d1+KQ{+1fQS2wNmf=c@ImzDH3jJVZKTz}qK{3z3bz`4Kw%bhVYCiuC z63Iiz?zoy>TFHZCN6tbp$Iv_^`i)=8##hxcX#15&3!4_HLCYfTMxuHbCNQyK^1%zt z3QBR8b~8uqFJH(nNc0FLWn$k9rGm3&9I9G$8+hRnsk+3Hc#EJ6rrVZhq!FKgSb=bj zGaS=XrZPjPhU!l%Sr1*SRu7Np#fO~P=xni2^cgXfl8_ovq0<&%y4wA+{Q#oUf_i97 zsdY{xbEqNt)4j6LZN%cL7eje#`)|&rrAaVObAdABR=l7-1Nw=?_CM zrtTx0%of`b9)nWX6HYTUo;@ic&O^XxQWYYptX5o1Jl-8PodP~x6U~8t@S(`*({*}@ zPCf@cZu#1R>M2jx=IvyQdpn`Q#XPIU!vEM);@)JGLvn|uQ|{!nJ2o03TzFxc7!FD$ zL0G6!dt8LpKJ0~Qd_YjOiVf|`zd zO39I6TaG*p*bz$Y;G?L}Bl>Hdh1afo0T==pR<3Io9Ul5b#tbE59nup!nBa!D}vn<}|RlmY($(uR1b^ zB!p^|ENU_Qwppz|i6YWnKH9X|EaS);-l>l#j^;BO9olHcpGRS|^6Q)9o@Si?mB^t4zUlE7c%N45=Bi)!7pwy)eoZqP?#HE-!+Y%&Y=O1eQWE(2>Y_6IFx zEzW9ieFRoa_;x^TYabY(I&GyBr>!r6fE7p*n72>KG=$3gXQde^@1{ZE~#jes%?i$E?mjNeq=oI$UIZ!^rm&p(z*=Ot7U8|m$KFWQlux^!XK@8sN-AH8Kh z{mCC}I7(Zb#}ay{DPP{$#&kOskG$yRgO>B4`5DgRVQ?A-yg(~0R^?fee8V1^R?4jE z$tQparT%kWG6Xx`?Z1Rpsqo?dKh64YM6+%}jXEiivMi#bRO4*#KS-I*n8?Cybm`2E zQ2voriQgLnX*v#Z6+2TqYSQYhKH0Q__-x?l3cVjXey#X&@ir>4LUl3CpORgVI}zT? znKS`vY#B$h9&hT$G0_cxs9k-67kTCW%v);xQfmvG_M)#zs>$8l7u~zpO+I*q<-tj{ z6MC599-9ROI^9uPB5l1br36`2_mp%MxnGYv5y5u8slVgJE#I8#GxX5OyK zMQjx$kt(O^o~Sbg?_ut9y@2^q?H>Kf0ZWj7ngN4~gdT6mIep48AAHoHf0Sb)b=H6X z$SuHeQYYM!qpqSZNlFw9f??-`DiMwV|Q%bHl(p|lO{u@VmEHgzoq>tre@4m{KFRWa)s_b^Ti( zYPa(6({)6QZn`NGe%f(voyN z02I8Mitj?|YcvLRt{9N~b3Ol-d@ERyQCtll?zOaV`!I6(U#Fu-SytB#>}g^R5tN9bsEwv=lUxK0QDXd;@` z61Jc`#CvDqe6xgpHVpDcI`CkKQ||E|VXi-Feys70?%w!8>G!DbV4@lhv}J)zHn}n= z-$;^WO?1=wUE5k;3~F)~HEJ)$;p$-~KV!Y6X}V2b7ug(RkB0NtJ5)a;d5!U2x>}Ec zINIo4vWvk$tZV#kQ-kiJMg1ZV$==1^dP`m}1+enxf)3SXHb?&^fEFy#c2@wUwb{il zA^1J`+Kbc%?4zQxI@sN% ze+`VG_oQJn6bO*_RWWtNlO|io!ZG7=&PeCroKB@*CAT87YDMY#n75-9D)iL=@$G8*y_7`MW=SaC(Fe$xGg-L5Ue5A-^<9-svC)@a5&_ddLO!oQX__Zh-3$$H z%9K4nirExtAd*mM8Ke-ugfVKK{bI+UNf2Hi_GTkWXf@nGE83LNB`btx@07xU!kSVT6H9`QpSo#wt;+enj-g>WnW}GuMTxi&BE)7)915NN697mH3#U z5|;C7@>c4?%V=BFC91UBnSEyvx9k@v|E;0lD%fPC@O zbjj#0UD4o>1EL?X1kyTZt>(^KTRxCRQ1O&?gBr>fFxb)t#CjFzU0EaOuZ%YpLCVErfvQ!i6!VSdCh_vg7EJ|+li1Ev}j(cEHU(S9QeQ1#F&O)+4ylk`? z&T{Kz-O)_IV;{$<69ZRZo_f8O<#RyHuU^xJP}a5zktGtTL)nnDS&!hR%ap&(h8Z&@AfsTz08K< zu2!Q7cPfn3$QgqR2q3BiR`lbfn2PeHT3i1~J}l99cNz@j*?cj?VWmM9kmVuaN05g@ z8q#<=yfwHCFgS~0ZhKR4zxJu`7RptXYN)F+jAn9P9d}0rLp#stKtqK;@Zx9>~#(;sq4EwZBW1 z`wC*IJ||557!0PHS@SWkIdGdfhqf+nZ|j?s!gPC=k}=_c~ShrI_}E?vv${hV2h84AJ7#& zz*n9$>WmoH*yA4LIN(8TTvr!OUhl$L&0qlr6> zP+B*!1_uCL>$t4oHB~Hl_hOQ(0ZGT*tcEZ~;*OWepIqQ3;DdK?LE5EvZb8$#7aqtk zan=EWf}^1^$1@(|9bE7^aYevxk!8P9^M*FK2V&br$n9Q4jsUCe8ke?fZMd)TyW+02 zin|z*8uVn|ZaGO21n#@)LJ>IW4DU{QCwS^YzZ=p=n;I$l&vP0$3U!eRtGC7q4ho)o zzM`;noC|LoaE*#vE{D*fJY-9iZ=n9+EpiBMXK@7Gb$+v^@ZBw6`)*BOVHk`eOZEj2 z^4xZJB6}e30+yCAv;=2>031`9`@%T5o!1l5$F6 z0bC2xcr9{}#&k#7jZp_n7rot2v3p;PQxeA$N;9!fu4}N<@Uq3bubkl~G zKlru@9(+RCg~Ehj^&Mk`=#$5fzHPyu=+M{6k4Z}AKErR?z{g#t(|}*VsGn3A<5Mi6R@X#xMyUO@p_PGmTujLwCUBO7qLP@Xlf|(Y zi`YkwP8k6zt*!^0g4;>VE8`8G?%FSNyl%983c(1aCMv91n#h3;Hj8x0Iw1)eU1JkR zimk`;?~oK?0xEAtC2M+N>-m=LCU4XHc~(A4yXTW%fY1z*d`Gc zqtlXMjJ!EPbf%j~)Ijbu2;Xo*2&}T2c?m^S#2m3A<+s`UoQB1RJ>N|GRdRi@*?5$z zM2^XcbQRWW>xzp`CtI*XMfJWM*I$8>GC=p}6AYp)9-TH!?tM8e-hcJw9r(95*oD6P z&Pbd{56T#SSA_|YqiCJKauM!L>w1G%J{%5?qDw=2>IP0FChVCJ1j{W1ZHX%*K1DI7 zlsHiAs!V%~mPdX;E;j?O*yapj-oJ3`4!v;4*7g;g6*jCWNT5F8?Lm)bLw4Yf4H6@c z7Rh%6bm&A~@?h_20NH)D9}tq1=s9uiwmaY4BKTlj3C9YPU4Yq#Cz$CP9+_nSI9U-(yGZiU@@j$(!~F^!sin(v9TzI7b*mb3jC!4&sgS41?CG+q}Q;3`;h|`?2p&6 zvX|g$CRDF01~e{NXmt30*?ZIOHjX4w^t*or)Z_O6SRlkjYtgcf)@hw-D zRvlneO?(b+2Mqx#XaEDkh)f0Mqap7}V`j6d4y+bsdTa5;jWc!0JO#;FI%u>qq*t$> zdJtPrKXS3>L6eX22@;Gl#v(?A*TNzxSU->x_%!7FR_L&)Z4}uOWaY6hfdtQvrULEO1zuU%g0wa zOz@hW=7NT$MLshY70*NA0mhbsW5v2{jMW!wXAIkq_(s?$e!>y!T`Z2wAWpV($Cg?M zTqS4)I~m!sxqmUWw(+{jP`iG^)(_Mcyw%`D5)55)`{-+U|CXRX%(A?j751n`$9#wQs$_XvMJ^2ljo~ z$wn6OJs2wb${@EbTGd_y2aS+OHEYw#jd)tQXaoq=a>-OudQ@66c?t;xRjb9j&3s;d zj%I9vmnnLo-fT&2e7%Uq^l(tX?jfQK`tVa-N={Gnx-QR_1NSBDaFH34rWz2oALL~C z0?tT&&-1t7tD3>=dGgeRSC?W0epka=)%9z%D^~61%hmGB#cEUc)n>?gzh4bUDHkuS z-O(M)HZ}}N6x&t+p>{zYNg)^u^QMbh$fIbblssXhE7>7Om`-cya_kBA?NOdi?fi}+sD zzXAhD#V?$K>7y-t)4G*<7u`_P_F8eml_U^PIH+u|QZnPTKEdO%rsncP8~AzU29hNO zxh5@h5Dp$q*at%+=S@oelQWG)NC|BQ-{`Rf94JKJ&7%(@BqRZ`pd84^ii}5+j<<>X zlcI1gXT)n^K$5%!I!>saKzd~K9?#cBB?u9a$QR40pqn%=UU@SlU-(eEE`}OD*&)+L zha%eKLn+7*8$cr35NRW-k!T;y5=fHrV1-SzFCo2oGPAkF6`N)n1VExtIf(P0Is(v$ zn=hu3W3Lu7{F{>Skkzt9Nsc6Z5+9w;*vnSw=OA?GN2Ux;^d@LRbc#R%h9O}`J?ckpWS^J8iGjEK$zhyNQQOa|mSEXp z-51uoY|k)g;;rc*8F4d>c78aG%euuF4zG-tXkC_bTUt@$5R^%${EL?AvQAtT{v1S- zsm>;W$26CoVGTpGAQ_sikYWj+UtF%g2q&X4`l*FntzNh}>iO)!3RSA7z_f8!3Tk-h z1uJcKa_DPfBLPET2@>$v#?oQO;xLrOV(7X0QlAt)5{HX0@tX@x=fh0k74I+(22q=o zYxor`iG}uFt(FK%)>?FDnymsHZHv#K0hD4vV^Xi9l$>p9ZE%e3I=ZugTf7TqgvH_r zUeKRyA(gFNwX9bM*^Ghj5E$!xv4~quMdyi)k(MN>d>01;pFYmof!gn~v1075HL3b? zgh_+YJWNmn9EMW4)V$-Fr~L(_(ta0e_LRBjMj$du2VEh`9LR{X=!)Ui#kXQJ0lo@s zCL|CqF;fnU`A_h0_2D9~KJ**Ie2OsHF3hLZA!GmdlZL25PYvy$zV1dG=u-RQ@W@re zZ`o%+0O66Rc}KxpAECvS`y)r&wl}VrnSaBvXpfX1iT{G2e199nmX;E?IEnY$e0i1< zk)XsjWx9kf@tfhsE@C4jWNaOasm29SIw!?kotpDC#0KUkpKBfc2u%9{YcWRW;JjM< z(qv^vJn9@VjpF!3nsDP_Ele99_{nF%w1G#-VravFU;>1+l8BMZN8xD1JPhO@~uTO{4`ccz3|ehb`#h0 zK>y_sJJHBBCab`koUD=Uq+S~PVLClDN;jiy(N9561h#{g+*-IdY1P0`WG zKlxNHgNc*KciK+;=)2e;maB5&C@VM{es3nh=iuK-V`g35J%N+}Chfkkm=6;Y>JI49 z;w9VxP5u}Z(Sw(fBz(PpBJef_y9|&`CnMY5$kn`-j}mWOK)Hl;rYah6wfHC* z>zJ;fu24RuO)TzQ?K{ilVC=0`e#pkl%&Xx|d60BFk{W9WAwMVpbbPimx*V+P` zkANg|w$~1vGPHG=@GA|CSaiGbu;a_Bwu*uB)(H8UsgjLMOtqA-_O92}>Pzz05Ku;$ z3;2WS-gPKa%F;+X`~mAM3ozsNgEm8;vPMzf>$xC3)TltaX!Ps0S}&6bIUP4OdJVMY@Xwk3;@{Zt&zbu+ z;>L_5*mD*=q3yVxlhGeRYqe>EK1ZQ#X8!u;g=wq^+A*I5_Who#eai-pY>_Qpn&%jgeYS26XO{leZrT%OE+VQ=1;bm;D@@U|we>md0D zWA}}xb!NZtwlHBy} z5yIhmnwh_BU%b;vM(j5ZYyIvldgp?>`HFSen>S6*q9?2+{Veleg|{_%&DYJ=K8tJX z2v3>$>z{jT@r-<@y;76!EcngV(Uh>?{5xaInb|L_7TQ*2?pp{s^P2qdC9Gvu=Dv+2 z^RSHmATv8(K_n{mNm?v{sKF=2SZ!C8xo;#AyD^E%+&8vf8d=R3wieFlCu6@@ZBnKd z%V-a_%={&kZmFN^zhoxfSSF)CD9lkTli4ry%@TvF>c8}S2vy9P@Qkj@pNr3#{zF>d zDDbKe0h?=r&WviKJ}$FgLOP(1_{@JDF@+@x4>K-HB#;L|RHpxs^GFrW@RP2-eyaac zm{diEpKLw>cbo~&n#vQBF2137f!uFqzfhS7*8+K*mpwvJf3Src)Re4JXFKcq=HVr%omu+EZZbD`K^v#r^Zs1|lV9-^u6kfgvh zZ!q7Q{Xr77@v(is2ZKH2Y25CzG;SlEzHL8|zU_bh`ux}D&%7ocp8fp#@w1n&{=Mf^ zDfS^2-1pC3Jbw8zK0ENw-c76W(r4vpOwLQo4&t;Yof4cRQk+mm9&Hivh8LE>H;UL| zsBJ1`(^dTNW=~Cm=yVHlxu`)nw6qD{ZrGKdgZ&yNYoWj*`6*9p;O3YGI=hdsS5Xew zlo9*Gz}!8$AtXivGt{p_w-2?UH&aEz(XzT+Y^q4+p!S(Y?ZYtCow~u!4ui5mByElo zswwL(Sk5A`fe<$Z18Oc6jh}r%M46t0?$1OoTrFW*`bQ-7;I~UNM|LF+rc+g`s$u9l z?#2uAc3@!@#e34v2kkl>;t)+J*>tt6S5_wF-J`XaO;}1TtB`|LE;s1EP(v$b>Rd)9 zt*3X9zH^2SDM_&?5u|Isnv1bzi|CXK<9HSk=*STb2hrzMwF??Wts?X_`+NQ|H+6X_ zof)l*+l_OoNbI#3b8Bw?*SF;_v3!5jxOGLn2*YC7JBPt5in zQN4%Ev{cLpk{~Q){Vd$_fqN89I<1Ml@m5k8t`D!SeSwWhTW@hUTXqsgKH((Ngj7mU zN-HM~2NAf@=~6W0WnkX#&MvK~3wNh5N6juI^@n=+LTc^wc`CZ1wG@w3VprdFuB)dS z80G45XAb@nsm<&cK{1(ml_GTCH7P{HA$l#`pj!aqoix_#il{&t~NtnYmm0Xc;9GZ!<2-bWk~@CF+l zlfB<|;^-B$=oB>-gQnrv9|=5S*R055|N4&F+P_(&Z`=P3GkbxQ+mG84O_}q#28y)Jtuytq zai!hxC8h9kwJzshC}~dx}gW7GR34(IbNV1Zf&=o(&>vQ$e@Lr31oNRPQyfWp?H_)t;PU{*vVd}xlesX!+FRND?797k!7k~8)?`^fdl094MaZgWiaNm>8!+f%Q3wIRdb@BVTa9DN zaIA>Jz_w$T(iCkBnBu~1C&((Xn5%r6wBK!#?Bh>2ufD%Ef{-z?o2o_3S=UvFn$g&$ zmmcd$6Huedf)GhTMmv^I}%;!kw-WC;^_PR6AYBN zC+Dz>fy9t!;3pBos;zD~=iyK~|KF|`t*2~2&CoQG1TE*s0oz=LVE0dFWks-OI4(Yy zHA@|@3P>JgrODM%trz_UDh;M4;dwV@hbUP!!!!5;lr;2m@BWgQ>KU#fvtO*>!5rq9 z{WAKF7zoU)6@h;q8dSMO%ludS4%Z~pf9x|ezs!EI!~TvbfgjIiub02%OSM$hfFDm7 z;y)0ES(8{U?n0N1YQeR$S}L;ou(^yLpDxr&7R#cFo2fR-pUKNmWEMr-f;txvrly#& zdgWrRCgeM!JJdcD_o#h2cCHHeMKQ1LjTh}R!)3lrF|zgFJR)r5V*)4;z+K zd3F=*B`?TU!(yTbKu@=z+xk{Gfbrjh=n3lP)nB00rN3>0gmN~5XRntdhT0(}V-aWYfF=@2vaOOjMj%8L{2V~E>+ z%zA`tmxiu@GJkd;ta_|vEjdhAa)j~cDKeD#iiyFR(K7PBh$~U zt(HhcOiQM-Fj^f8u!G_9;AS-96l}GrrfBzh$KIVs&x3T1MF=FBhA$a;YOHS!G8UiU^D7MM9=xj7#oo24Pvf)-F`!1*3m>Etp*;MZ8e8(CEq7{G|`y)d2?&KSzk=>~}FqHAd&I;@2ldi|0NeYlmmAv?JAiVNp^ zFWS~^TUpdjH#4O(3>4bvKHAFBXqb$!t)x9fVgndfQrH9b9wA(zxV4gK<7+IQ3`da6 z;I1yp8a7t2iXwm8vgIdueiP|_<8viJlYmQdgLaj>wn&TltD$6*quQG-Wnf3qYu7KvuOn3yrbRHy#B~B`Vh8?~hOr zZDXBNxO#l^CZ7g0c65qiJzR14og#r|G9pOqLVr>DFzW2|UV7I&YGSI2uVMxJs zUj`xGbaBDAAwGKDGxL}Ddl}eg?pv^>Jc`0`jxI0%7x(__aqsIuLfm$)g{^J4ngDo! zr+)}`e&;0;GlQ8W28s8_jVhx`g2Tu(Uk^aAHOeDwjCKaJD|k z0~xkH+=H#(GIAW05!VajXGRr*w&x=vy!RsUoEF+eY)F=QTD$9PBgWB8aW4VpK+#5` zS5OSBHIYF$fkiquc$`B-hl!BFQ0f$I*=JCMF}YmV>lbZVai-Q*FGQ8KZxs>*-< zXVfm@aMZ9Zox+`iZMv}d*4_)7Mz=n++(R#v10Kbp#KPb`j&?6#5dt&pIcb>#6niP9 zJP8(5m$mruuosP9(VrAHWg25#QM!x#)Ka#C@vh)_BuvUwx&3X{BAj|+nujF7hni=NGk)+1{bfRbyTx7$kbLi+H@5&D^|pYE z)ttV~GdC!?oSJk9M$kv;_2-ajb4{yP32mOqac@tkd*VsSFF!2onXi@#?&lVQ?F zohls@KnhM`11230Wfj{zqR`X48N`LYZsPOCO=WjQR0sgd^QlYTl>GEfgYpbHZ7*;ppaf(~HL!Q+wrfc*)~{IJ(erE=#pJ(Vj8o?x;vW^H38m& zZKif?Ip?OR5W*5>=S{a#Q7fWLjx|tVlR-o;8b;eV30G@@UR0n3VWH<(H52(U zqB6Qm)zOpH?8{&{3_`^f*2;hlemqx~y+LFAmi`!2IlkI}Vl+uGBc*5RA3Zptv1dL%kBT9gvvJe9MN zkj_L>`1s^9nfu1=l~T!|u9`eM%9_zWeiIP5JR3?wzt&zl<_0-p+c)ltfJ-EJn@}PH zp(3`SLC#o)aLfZ}WF(RZKp#&eRPTmL$RmHeScs!uM#OpBVQb4#3zx2=r(<85;GTZ) z=71_IBt2i4;j1wS#SSS^it~ zMIZV1M;kCK%b2t}c=?bu?rvolC+Q27Ye5iuL8vitHLK!GU0tg$fh+^V08uwf^#2Nc zV#;ON+>de|2ZAh=2ESzpIc=7ISc%r z)U8oJ6LK)X^H!s#pu@KDX*G;4{7Zg`hcsIa>i!k@?~!^T4(e_Dh!!zsBAHvru+`OO zeYtT<96}*(=^?2>$_2v*2{5Ufj_lqT!2#?fr4(!o7dkAiHUd+R$D+mhJP~Snjwvf` z;P}pG9qj20JQrO)u2J#`iu#1t{GRSHugN>M-R=&c{c4ps7(>S3zYM}CQ!oe4mJ?EJ zxB~T48_i7XMF(m1;no|@pZw^AzN*%P55I>(lt zhJ)9!#q>4IodT36#^DT`ZZJ&R@^M_&@1UOO2p%F->{ zq<{KwKh4KTI!v-Q_0yz&@LaBXW`9YE^lq3*J=MaH1-9Yohyb0M}pkF`Z!JXeA%!0#ln#0i;9lx{Q+g)zU-s`5UJh1G@! zwQ%O)^HIY@DJ}M}(Z#|H^-`GFI9TjhF?%(xop#d}oSuvt9ss&of;-V*E7H<>(f*Em zhy;kj5rdzizXxtCu%P1ZlVCxba@;7(Z7qr!;!F-LR}JS^nLfXrblVLm#fwu6kH#O$ zXYxcs^YL7bv>M=7{X(JL552uz`_EO?BlfYSY_4hR z5YRuxj3K)5n|6XXd)76+yeJZu4r%RrT~oI;t;y9-lNww!o$!r(ZrpZ&O@CfrEP{=9 zt{z3MGTO#}YL$SA5T;zhf*hvH73w0*sux}sqkfFb>Gjn%%;yG!dbWOHucxY498W}L1sdkFtjxlN@URt}p@nJ@4@gsA2-|b6n6T9+vD-MJ4zx!`MOD~Li&$J4Z4JyuJ^;f?VAxg`yd>0X8zhU0~*Qj)5lOKFETT@2qI3(j>b80#yl1R zON~1$_TI%yF=@B*s_<$)Oi9#``OSne!FJ=^e9d{Yt`h13+mg#etvCQNiyw?s4E4q5 z@N&5*mrY3r-2mu3pm$i7v0fdWzM4q!8anLKl>lZ_RGlO83}`;PFe1ou-JGG1rWiyY z3yh|%&931Y2zm4))%^{E9#5)4P)V3S=5k4Z88Z{Fs`%hk2WmN4pwk%ar&lDk8^scR z#Nrt6TzD27thO#YS>Kz716)DaOO6baq~=M?L{UXJ?4BL3tp}OM-|0t(K^!ZCNT$M2 ziq_9pI8oHw(uMu-i-vKAtJd{zC}8Z=w0W*Ax?#kFJy{Ua*!fkIxsw8h_eoO5voz0s z{iFJgDrM3hjS+8~lhn&$Bf*+l!NGr{byd^aW>tB^WO3~iE&9+Vu{%N9a%ow+Em|^Y zlPM(-P2G+_HZE5|(7h?4tm@_1{T?uj-y7;(NWXCEuDleti|1+#xCNIM5ur9c&#T94 z7~gn>W*#88MQ*~98R#Bfm+HjQ>FABwqDatv^8wz8s&~kh^}ji^5aH4gd%m1?gjY-= zsC^lp0Z&$E8+Cj&NKhtKw?rTl647f?`BWR69hpFXeZ~0g^+WCQq)MEbF?%(ECps=g z%jv00Uh~v+mBkCG8^kawpPId9#_Vt*w4(mjhtP^Spl-i=V-A$+Mj}JjgGy0qS1i66COC`hu+)x?hO94)5JcU|2jACq>b{W^ux%W0 z@sfxMO9`dvNo}$}$?0w=9kCv#*ruv@r2eO4q9{t)aTv!yR~+&Xu<(fBxbYCtcw{Oh z-C7_GW!uGX%HH!UAb*GH(%F-iD;!I>;h`ONNzEr%>n5jZ+Z}PMnwkb}Q4@0zZd2j( zV)dV=`J`5-pAfE!*G}wN?~uwvU4oYG<+5!>D=60SZi;1P8(=Pt2$Dm-uQpnZL6BG| za+q%61#lcKO}y}2iQz4)P|oqBiX4(f%?22$1q&n@L^m$U(U)|s1A|DQDN(`V5*6k zB{#i;xTby^qsAa$F=YE`)}a)fjU=Iu#A6gasH_NZo&Gk9LLa?aEq^VgJ(G|rmG!Sn zZHf*h+mGB>>=+!rXN=L?kj70wr#?)*FAO9(^e&75orNjmG`r@WArhM;SY9q|NkPz6 zF?SUVp^%V(YRRYp4ocym?qNb;8slHfdTxh%X46P?yP-LXs!4w?(cj);@|KH=%=%VS z?{H-WORdEKlqP1f3D)fg#iWc_id1mG1hb?Ip+_I6H3e6e#?Y!y5D^+d)&=KNWFigp zB(~d9E%Z0U{D6_L^*l+S`-rw6M7>yTmNToG#vg}VOBQG$!HPRT8U9E%tS;v3thY;z z8`i7K;K^jQRuBvxR^{1wSoISqrh;eZg()bQNTkdP^r&#sIIl507}8wkm+ZCrP2Sq! zk^=e>DPu-Yir^Dc!pwz~z$c`Hof#>j9}Sa{cBZSvBEJkaJJcLuTzT-ABDgd)zEZH( zdVT5LD5{{V=!u}KwEY?oGpK5#Qm*|4*-oY>TN+SY!YaX})W{U1T{uW047vO?ke=Mqbq&YSZ z|Egz@oQNye`^m(8^iO^?`~IR_YG@eDGHqEr>)o>X#W}^CgpqvZfdCdUuwn3d+z;$r5 zwsOd_vQ!c^Zp*bzQ6YXKk?1|eSEWjNB_8opAYm8=;i(${o~FAJ_`iQgI$>G zgM%DDr?#&Lw-FK#Zr{gGsQuuMesl-geQ;T;M$Bd-!9H+hBfh2S4xOCqB7{6PVwF*5~&TQ|9+?{Uzxf_Mhh3vS5kmPL09THn$?xvtCjuhBJB81C2l(Tj{sAD! zCpd;22mkoVbM-kv!ms|o;3o$TvXg_m_#D>3NN@R{7#wP6$OO>%_X zB)@~7_w|nl_^IpU(C?(Ui=X;^@xb+1=(lrxK8F^k`>_4?rUwW3c~}1c^qJ1EmT>=6WW~4Z{sKSIGwv5XH#rsHot?PQ~g5$YJYbZeyBe)_{6@{pDBDk zdxk%r@4{!Xhu`=0qucoC4*r&eYUGC3d9rkAhwupTl?Ct}#Qh#RnS?C}5 z1~-)Yqt+n53rF+gyGXg!pM7|A59Y1@%;57ufj=J1;d8!=KU~N8eK;%B=Ux1qz$c!0 z>JL7GQzyTVZr2a z=EW4B!}90(92%eCNG5<5IilKpvZsbKFK`2>KXdrp*FOOK^EpCP{h6QinR4Sf<)#9I zydLZhfzP~m_dW*EWBl3}gI1}wW5#Y#&euF<-zrxO z@q{_y*_(LoyixHQKJhiK`UaJtbUn+#t;u%@FzlM_MqfH-LNfZ!Slrg*jwnZOKe zAGqxS>bKv4QvWZQ`V_pk>dQs`1?<((hN@@unzW%8i%3-#zAnb9u5dlM#8+o6l^_k;~EaR%5|+8Lp|hr&@kRl=jFQCsW0;>_>K23RUP&J z4w^5(7jTg6^QKX)e!JQ3;z<=QB(>cDc@1XWQAM7;{^i$oxv0P28@tCeR&Tvpd~}74 zlqfV4eQUy85SR1SG$QGJQn=qMmuO)5h?q{|8w^282Bp5**FMr7lgR!CAbbZ9?Buzm zj=Nh&$JO!jc-=d>We@&pn6d%lQbTIRXcJ=Jz`%8dHdcoA-IM3bnb7Q?%h{}0`e6&* z#KOsGi(HaLA88d%+Qip9xw9XVu~l*@iibw$sL`4lT@wwvD$&gj+N8SXw$7oS02vG> zVK$Qj!#<;pO_aC^C9bb;=aJiqeDq266y?ruwK|P3Fcr5j@LsL@jch*b!%9-@hmFHx zB~EG`>p*bKfp@Ghv)46!#}>OOJYjF z=(Lim28L?eXs+Cq5$%zgWv1?7cql0w-b$)Mv7g_H$^X!99_byATqZ1R9L$qKx3ERP z2w5snuV@?b)+|=O0YR%U#fy&WMc8r0ROiZC=~(S})zRPg!k|OT;?rA1K53>|%>%2=H9v_4 zcefjg@QkqQ;v$T|Zwrpd_c}&<;6 zuedRh#u*I_JR^Yjpug<`lA#Ud(4&;X>K0_fLa9X)+1w8%(M7|)m%D5yC)O6@@pATZ zIfv}*zZt^?!i^Bzi0m!QW@LzF8x?EXF|ta|Tw+gtZEY_2Q)8*I7f?@DNZK994Zm5{ zCCu+BL+!xc-4;r1mN*r>b|>-f7C~I3Uoi}Zf;RH<(Z-}m!Ih2vjWtY&@>w*c`s}tV zEs~-&${;}#j)Zo0V!lO6lr3EkX=|9%kia0B)%QHF@~NWePL$X0a_R6hrP%E)J|wR2bF$ zLOS-uox$7_;`mD9CK)8?)IcWqx@~J$8O3O71~3P4%G22@|D!F~0@KLnwi&9d=r!Q^ z2Sc+3I-PdPR#>L2#ph6s9YVdi<61V2)jn;(ft+ z7$;ilI85gv=1MwmUk-g^|4t=0Up1issDd@S2*aiK;G|gFOoh|JIdAxU!*H0XfqXUM zVZ&`ZHFiJ!Zw2?=Zvf~{*!D+*e4CTpvyET94$%qI3O3(4!&34%ioA$T8u2)*uU(SN z3+H}tqkY-_7*2o;EwM&dUxjRcAVzgMJicp2G;_H4++7r7;`5X7`C$qr6VakE!L2{P zMB%Ad>3WON-3EU+sTjKpn4SGC$Mn-fnQ3VsX0suvIR5o27NCpw6>>;l>-w?1XfENmlze=oRx&cNjss_S_cwBU`DJjiLHtdqmxXB6kVV4ADq;kL=_7ypK@UKafJ{wsZJXl3TV^0&`HwQau8H;4AsfkI8zV!}Gb<*bb9j3?jWC%f1s@1g*V3pj-(zUBlj~7H8>)yLzw6_>Q)A)52=kOmIA8{%P zx0K)sL{%SB`xW*YHQVe7vq?gp^G=JU3&fZSL!013!QKVSHCwzaSJef^-JiWd%FsYo zB9(hXh%7hIK_b3|i!RE$r^OSRsj$O9Pvdy#wzvQZnt7CRhI(982*+_%%r;Yfmm@5@ zSH zCnJ-v@U@j3lGBroBJf;J2`6k}?;_nOo?s{|OZMpaaFyc2twFvOTOCnuL=yBJro6*j ze8TxKO|;ZQ(QCZLS3G7B!p2Qh)>i-WR4poV{UMIx5DjnTT7twtu9?aGq#0lSfQb&BJk3uoVCnBep=YRdQ0+-pcUSf5^Y z`(yCtrfoV9oRj@bEzuZ7aiUn-;$fE~DQ4qYxZ`V#B>-q+?;HR^U3xSNnHsK|j}Zdx zpW1C$gs2|vcauPvkUWWE3K7OULoy1qCt_}Z#zpP&An-Y#O46>mr`xk+74r%V6jh6f zZiUvnw#2P|e6nL1uNc__X%$x6gN(}I8AWj?yiq`>(uLw9xF~T&+5*$7-5MMne>&bd z9vlx(ZVr!+21mO)58&I$t#R?Wm=1JJz9Vl$&53{tcL&xwGV!G?_sm=IMSA^zgA)Db zTMIoP_+(Wh$amF>WnP=E_tm4l-64%MNaE~S#akTGxe*QczLz;KLdJ0JCIGw~3WrFz z=nlNu#@RI2Z-8TR=P`kL$PNbLf#7hV+t;mv<(d5&P`^cpbp0Gsg}wJFY^WF7MJRI$ zVu7QmHI8v^_f=#btXed#C(;cf%1t1TsDgYwLFCEh+1OX%ZAWwT^Gf8rXs*+k_dyTh zg-;SEjUCdiaXLxzAw6ViC821X_{hg@Pu6iSnNJac5e~v#I9(56-csbk#ei!fgs^xL zteyvR!}})vNjVO#gtJS>B;N|N0)&s!`o+~l*34B2FyK0cH|kO*&;|`=FCs8VP{+;Oamxxjrk>Mb)0;qc(eJo$0$Op_14kzM1a3>xT9Aw5n zUN9-g3Y0~Z=|TE6BV$WS9-$d&$NjvT=F$CIV}*{+t{y~NFZ4(TafmBD#w|Nptv+1j z)d!aS+CJ0Z+QKVM9}D0U z98RH2@Oqr0*Y#XQp49L@0w^%S&zH0KENCVA#8Nh*LP(l*`fC#i)zNfI&BaSC905LU zws2su!@`#gkA{GT+e{2xs=*_lqLLby?LAjgZ$Ww!a$^^|*+Rn1A|vL1DO!5M3A=bj zC19~V?Dn!Q7Py8XKkDN#d$Z?8*nj8NN?}KTc+zP8dX>6Axm}N$IGz@Z#XCz)((d^b zB?mE4ieGb5Vnqa2!WB@DcP`Ckn=T(+{JE?wfmf+?zs5w7w}052Zo)9n4f!Ux)bL6a z;{_=)#pEr?3v@$HUeQS@VK769({{;46CjZjeWvn;m6Nh07b|`3bu{ zc&HSuI=AH?*>9dmXG|F91F*1$NtmIQ#dU|Rg4EI-0xy60_kK&R3@Dswrh_`m0C$p6 zMr9CiYn)9l*DVm zq?l91ZR(8d9Q~aSArjk;Nzk%;`MIBPvCxCVaAp@KPSc=YtGVzOxW4Y51l;nx#% zN5(0g`eVrM*2Go;ai3bp#7yfTjIk6dkPN8U6jZBY7YBy(sxG~&MF}GijyIFtKyceR zh3k_;lfYf=Wh}wnABA1S_in=;HO`#L@ZF3UbM6vwY&Ri&GmNH`n$Rfj!`1QF2p5I- zD_dwlnBN&E8y|||GVAT7F3!K33Nl@7+sr_~xI~M}^w&1u#=h)8$62odrsi$pxdH(q z>*65cqeqX;L2FZTBkXiZHzHMy=^~?rf|!Ubz`wHvu+5WY$>@)ffB)-pw(@1Bo2vRU zh~N$Qsm4{VznD8HX&@eUCO?k!C2-mLEnj>H9IX(gU%3=;`WqN@ZI-jV`Vyx0w9j#A zKduydG8HE+&|88bmPGMB*s#g`&*lOC=5RN(Y;lDIB$J3Y5g$v(4`7WEMl#$f=0VIVJe(a%bX>gV8t%= zOvk3GIzHOE2TO(TD7ad?gDwVrDB71>fxCCdR-kA@EBjkCv)`BGMTg?%cvlqR=Fo?Q zuo*~nVuJ7l`ybICS-YJhFi56BZ`j8o@QRPyvPlMB#L)(#BBGJm5n!ynnih54NpcgK z(_k<1^swkVi+aE*9BF|&R!xi7Y*(n2CX1o%Ghi0+Bzq@o_H*ZVaH(F8dQVf zc%oQ8qQTcxA%&Chc1*Q8@H+*4g1GW(PV(u8PkA+~8h~Y6^ z)01KycG#Lmb*+F0w!p-}P(4g6c*7z?t<)mJJ0pAM%gk1pks1en?SlGhvsfft^5?7S ze^cl$(Go6zevG+YpbxcD(BJ*GFpmb~@IUikM>OQVd1=3;$^X;GZ=b(EefbQm08iEZ z{}f#x`cdHe$Z+O*$++Q4tjL?~RlK&NT$>BTdGLqT>`Q2_L)`#rZfhtjsuP2OY$5k= zlfpNp4HOaw+-^-AfaZ>Oo7{P|XVbZf;d2wuI$ zoeOLGtIZTF^m_x*OQ7FR4yA4y$_T@&2bV=Sq*6AG9_WK+6E8jsu!ABjdNfG5Y(6#0 zb0YRF%kzWJ4g64RFwOVmq`c^Kiss&S$hlQsk-O@#}JW4p-Az994#> zK$t_lt_TLbtW@OTvZ@n(!mu7MXK#y3(cPk{Zyz?-*ry@rgF41iZ8NFY6&T?_i~$#U zj$PBNAy224(#@Da|9W6!{AH|i#$omWx{^UaP>Svm6xRIGlQK_^VMk-VnE@hFwMrh` z`Uyy{*U`|vuUJY(--1vOhdgRDam_(d=Ii+YZj3C_0MX;ykar$E112KnwWM8=e&nEg z6hWGre+N+B1Hm_io{bR#(?8s96OoBGY^H|8w`C`rtjYSw3de#zsC-d;Feu;Mqtv#R zJI_MOBNjVsM7gh=aQmdlIqT*pq5B^&#fI(FJgZRsB}F)Sl*F2-^{ffxVd=zNFseyv zZC*tN+=R;#%L=9!Qn`?Ugxt(p`p{Oo*NY1n-bpfM)4X?E;0?!i2%Wc?sfZgh8a6qD zJY#W|K2BZ*@j~k6qQU7Cod$eG-r|IbuvtLsOnNwCs4j7UbAAJZx-vnaF;D;!uo*e@?(9?$u9;%J$kxhwXr>)`Vadr{$Y!by-yFFJ@}$q6E9#lsR$_!CQ_FyY2M< z$O;LUgqL$QTHF=20O5!@h12YpSpPJK2GnGKzY=xA&sI~Nas3)S%vMuWjw?w1c;ngY zr|yWAb1=*wA`UN}BG9PYy+ zpO&EM?5h`F6h%t+^mLKe^;dT`g;vs2GF0|mG2K+<`pcWuqMUxY796L#rPJCpb$W?y zCAzN9SDVG`&1U_idbxa4T@PI*)oHmry{rIXh{~4F@WrZ{7Bet7L5WvmM?eswUgpri z>E)?n?7-v#fN4Sv3s>XIzNC|yn4aafXQv>OJHL(nvj zH9=CajV6*30QdT|B?3ennR!yZDn9+J)94xkG15Z@H7@>wdobZ)#NK3^_?p%V}fXjb{3g$BbZo}x%F zKY!k-FY?7=WdG{V3)RHtVzht|1?rXgYrgb{>0zrrkfeX(VNZ3N8cW39UtZ*AMg2^% zz%MV(UZ8UJdgnj3a|*n4d2x2C)x7`m35+KC7QE zLAf}))`)W3*6Bt!W{?;Uzty71m&uLuw%F8#0)}ytxIQ>4Xb6B&03T?vx6=qN7x}bM zyJ+%jRn}iO25bs8&_uB?WhXcQW~ilmlTSZf9|o}YeZ%~k^ybN)>g%#-*o$M$+Ij+z zXxzGXe;TS9r>@a2u%mDCAkW(MI!C4y;$UZ+gqotrdJgVVwY>Rw!f%jw_IKi zv#^a*Am10*N+au`dyIWux9bh-!~AZ8$#x4|J>E9w&^q3BoZ1^6Rw6l%=XbY=;}gQ;3ejjy_0 zXsDe|bX%n&tMrnQADt^&b26HO01>Z1`Et4PDBFapuP1+3?Yu1%ODYTS+6TA7CKNBD z+epzqI9dEiE^99(S>kyFx9A>`HM~pIHjICkc+Mdaaq3y>1?i15*jfCDl%;HO z7CsQlS@4qIe8d44n#qqTY&;W~1;1m;_tX$a|C3T;##?0ZBi5_LL1gJyq%J?$v-lBP z3*m6il5eQzi9g!1;CG};oK&k%by0nP0Iq+g>F+gK2n zb8F+wTYnq8fA-J!e;$5+s~oS3TEDX1$|95Tcv7zxn{~m`uZN*QjUS**z?I5nP7}9V zzePDg;m|d8$ecB&&lljpJgrnS|I2>)>!_#iPTH{8=VaGc40vXzsJ$VdyngoAJ`Y?t z)j18TO<#|dVl5h-mfmBYU)|~9$_YGTS98W0>x~!$3)mH5ub~VLCl*4+5;2&JW`f6(*W*ETX#b1^y}&n5@?7Ol&Um39@0* z*jpF&&TbJ=n_^+sOf^CKR5yW7DNdQ%fhiuUyrP_SuCE_JrGMC%px!}DS2>i5IFRu& z$wZxplI^Lcx!eS!j&`6JHc3Q=T|^^Qss9cY^fE5&kF|5mQg16w0G z%n1O9M2w*Dvh9VzRwHjATRCB}T?auk6ShXaotZ-WbpcE%>l@=J?X`Lib&UsuUXcIC z0BW}#G?8fMMgBqWJ<-aDdB==;=Xw1?ok4*OEQDD7OIdI7g>48Jgn@A!TdtPWiyn9H zrm9!!@~JKw9~Ivtn5>179IbBEUggK}Ez`;xSV!piZ0fppi1jj<6T0RzY6DWvrdO%Vp<*a zD(1x!{1>PZ#=E*L0=uP{ZVk@vL@WBGJ5^vto+zR&F{lMfuQaqVxzWh{8NvI z?tA#Be6je`Pe0yLb$;sWetn0-aejHJi0Av2K6Q?EPiXf6s)I~*g_M?vB6f{ z?ruWG545B^cj~{iCj6+&zuL|k}J3CtxDT=9sSM}SsPsiRG zh_l!g^$fnVyDLMvlD#=7K)wpeBGF6}gFz6{ky!GqmF-|S42S>ese)H|wjBI^MOlww zdr$y%L0ea=FG-*nQgdD823cpI>z3?RBV_3P4uM|#-c=ztusp=);J|tX zbFxs6QZG#;6a1yiT;b<9fncWhSy^AIX+vO$WkKuxaKyb&PFjWwVu-A_v$wmud-+*E zLa~D?w^^_B1H~m~>JE@cPq;vG5swvPAVxC|whG z_=>rSgx(=Ni#M75lJsybYj-`v%fb^a)J>p-wNkbM;c;2Nd_KT1CiL0!8E_Wi(-&o> zcFyO)uz3)Wh^k%in`Bd@xGFd^8k$y|^I&+`H7&*M?L^vm`}w*2P|#|al8q?u1{R?~ z^RI2mu{HgxS~>ten}bnc+i*3{of#Avlx`wqxJGbz8u#Ct_fgF75p&v{!#9FPkKZ5R_x2cDA|# zu0F+SMGnOr&lvl|))A6Bi)(c4=+06U2O3^j47xD#a3T3$Uo2^$F>%(Z@L)?hGMJG# z*fk^T6sI$m_ogQSTL8{1gs{2;667X`A|7R=eX*3UZAUX5CG zKh`EHEDXiq-Vy2HBuY&YTn!RRNZ+FQmT2^<+o>;iqN{``W6;DcN7MNjCC%VM+QwAN z@ueg&%w#KHe{AXPkJlj`JD5-%#?QDgOn5O9%2Fo^mNMt9p-RHN$L0oGt@qNtrb^$>I2;bCB2VmijS4lT)~cwjWM5AzFSIK)OvPCUB-P zBV)B}>oRj9%lZT|aQ!Zm>lEmB8$q(u1e5=g@%<}SLDEf9+zhv5!gh7;+cQ}ocS2E#Pco3=@)IFiY<>}&V@k*u z-H9P(?a(YU`dXc6gz|q)n^KAn80Omw#*n%jC)xlT6S)NrF~f4cQ1#wO8gVJ8Azfq$ z+vqYV>3E)|NqqlobZCj0a?xIB&2;0fiQ zR9Jce|G*+`W>;;@UMJ-{@D@v+IOm;{z(t^Eqs!Pht0LEwgM~b zy6%w~F&PY~Cg@K{h3(=PH|T@!Z0X_z5i9RCML+j<&%3SK)hAV`kA6}$XkQOnw6BlX ztBZ1KRKWTN8<&|>(5fyjzZ7&4bwUpzg+7L|KFB~jC2`o6;^P;yNT`-6x0Jsfzf@iNu(kwM!v9Z8!a3fRh8s z-^Au)(%VHYB2wuv%I`#!qlW@P(oLsk4chLu2B__*%oagHO>6~lq%Ck0pvWcZ|2Kk! zO9W&w_1gdj=v()(v@Ujcz+8Q|Wk+Nyf#Isz3BXi6sU%&90`sd#6G4^~jV5#%Nr0zQ zEcwzT^fN`H1d8yb-V%>!g;q=U7Wk2_1%ye&lmR;x)*v~y$Cd<*QmbqM9|)YqWZP-3 zln_Fc8mL0jDP}f@>2subri2SpA|vxi<~joz^4MPYu5=njT^#Ejvfnh=o8yT~XC}R~obR-)8N>YIsB4K&@bitk{OD0de&I079 z79n=&O8`034#VbQ_MZiX1QYxBUURRA!*#t)-i|$()1V6B_sjCK!Ky=n7rq*!S zzGA0H!=$dh>o6H|_P*+>$J=I0Hr`sgwB1N?OuA6yisC zTn+Iw3`VW@O<;{{GS?&!nhJo#V>~ICh=dX8D<`2j>B%&0I(AiP;MY|LkE;r^t{{&% zFq#uD{Gx;oTOB0@i^E|U-6z$nTF}7_H%Yh#G?ccSV@u{Z?M7l@z9rQfMX6F6w9XNfJKUkC1hbE4!6hhzJW zB}>?#x!!ISAk8Hmf7B?-O3pzRbg6c+^6Lr@k5FS6tUhe3_8e@nrp_m&<5yX& z9CD4W52E)<%7E0l2-AOEsT1`Nnq7FwzihbQx4=TQ*Z6w)Xnk%2jGlONRL}@Y_!(<6 zP4_oiUxvwkhk0 zn8+r470D^g18)d+5B_YR3E544NaC!AkK*NC<{!&5wdtA$szLC3_u~UAj3*_mm`}L8 zidj6#c)$v=706>;6!1?z+#5zm)~-omK*JvKD&O&-2?8`wI@E*bf5-{OXOLyBl{kb)X~wmj^m=HeQ5LVOCH zQ3T?NKUu9lT;vruA)AEOo8ca6U4ND6D_vMX$q39s*G)b zNB8gsT5_OV_RsHs`57NQUw#~yMJO30g%slaIH{sgh=qdl22V?~n%iUIHSkI{2Nw9xe1@yR-DeW6-~sTAngFVMYUJeR zfkO^)^YU|wU4kb_qYcsU{AW3XkcOua*ibhyw8&r1K5G>hh6DRZDG(&NCZuf)zYn{H zqS0d!RM7f`=vl~{Dz$Ej9azcQDwsSW`b;>L>qkF?9{fY)#O!YeGCSo(yR@G-Wsk@O3f$*^2LeiC% zY~lL&d#Y|nM`jAHrl9K!3!0crykv_Whu&Gf2{2yHx4Uh~|i;HW47rH`b zrC|1h+sqhax{>w9Hc=ZH_@B? zZs(E_ETt+X%&Mu22b-1PFQ^SiBpyq&b^qPBGA1oHwjp}YzF&z-pT@lu%zA7lDpm?p zhcF3kk8DOo`hZTblTEaPG%W+|_}bjHG*hi+t=_$P{HpI>CBg*)Wcx!C7tjnR*5lfN z2I=bUQ z{CW3DU!PB}=ep*Nhdwjvl@M8^wXYj|Y`Tm#+=B_>Zz+>SH#y{u8%%sFD$p^5wHQrY z)VP^s%rAfW_u==qNG4|ZkW(=OZpG%rn$PiDInt^4K%j7t$6-K2J6l)mspsgm!JZXz zE~%yhJuspwh->f|6rDasTx@9Ppe8gz19t?2KM@a(=Fkcx?q^aAzce{%C8xbZDWKYq zx{Bz~7s@iC@FRHrPGo{0_bGED*ZRKjg|Sm;F`tTuLWd37o5LgDEm96I(DsS zD3?>NEDps@)^^Rr*G7rUBOYcOldvYjb@N40y@9o+_R_=H+P3MFV14+@E(^4W9$Fn2 zXuEU}S7E3rpVKE!zl%4iK>w~s0xuZ7Fd$Wb9OX`!_1w6jn;+NH^Wq|h&Ev*lSe<$> zJi?~dtDje&it1@zD>n8drAG_KJ~C06i~>A5b&8qo+SJz;D7=!;7hjF;r(05ar;fd& z<8@E50?U(||BR16DsqbrTDofwTL*$YlBCg+3K2!Cf60S{Mjv5_BPddHL@^eG_+B$V z#&D2tNG-?3zXNPUFxBOa2erJ=_x~9jf4VsYp)a`)tRpNYaDj#q&rV>!sj_0mz3+lL z3sIr_{2%-xvaa^P(4!)G4B#0C^Qdrt_Z?w@V*15?^a5)1LF9~0y1iuv?BhR}HeAvD zu;_j$mcsVf2E(<-y6mwK+{|3ge1fu=6*HI-laQsmwO~%aK8(*l^9cZ-;#+Cq;bdK} z{#<<4=qEZu`xfWwNdB#W*t5ufn?}@|d%L?*>*{W_nDyJ+e34(2i!c2Sn0a*EKmOB+ zQAha4qvQG}J{9+R}EqoO#my5@JSSJEL9k;VKY<1>lY^(vL-Rq&`@-`d>(#Kv2>TFYrR$ zbONPXl40r@X$EN(U)I?4>j5u4;znBHt&LruVgI|^`R-YB&NNfr5v}&$m=n^Pp`id_#uj5eZ>dTXqJde#OK%?ZKVr&PC2)qvGw`T{#U@b>1- za82AG;Dl5++Pr$a9+X2F-oCq=iXm6+wF+GY!3`iCZk#pM0!^Cp;C zTaG!jhc#Sur<*+HtyRN03>-t7qr7VT5AULIXuT^6En#@?e!!f``NdpMEmHcbtNwY93^%RVHHAAQg_y!y;id%x@>CtYZnJO z^mkX_wTKrDIGJ(W<=9JPcLzLrThyDy+NNQZAZ53B#9;gCp*v`WPo|(e(V6n+8vJQjt*T#%^*BE7_X}L=bPn+X3qn*B#&5&qNFWjHAaygQ|6Ew zXgV!x2s^oy`56TE0Wwv2XIQB;Wtjs*ydG(nAOcvD(k$sN6(sM$ph--$O08`4y_%I_ zdDB>oOet@am}TusjE7BGJUz`gmjydvcMtI_wNbI{c^aIcuF4l(<%_DK;pb|6;Wdm< zeN(-_V%mLJeL4Da5*qmTT`Hx%+61HyK+OK|`IdB4@8y}Cfyn}~TsGVNYr<|=sQRcp z8Iism*PftWzSdT0Sc9mM0mf=6n1rrYCTB6W4OzpS(%zE5h~J1AK^Mo68)oTtPsX1r zFc6chu#-oquZ+pd#n8H@A4zIkPgj@4TQM{CNE$O+_Oi1rm|GSNbHNX|VeZZSN!5?`YLK9@OPXX8Agy_y z`io@jz{U=iP=iQxcW4PlUa4QNDPNn+&}${tQd&~Iv!o=6?#5@2+dxy9vEewmB1=i? z+|WWD3Fu9vbfs-nrTI9$5z8YQLJ_lhy>`KM^~7GsVMrsFB{8QzkDVUwIA&{{_+A+spyX=|NkGHGi0TkXkk4+O(8clxYt??y|-ki88lk{c*M z+UAOS2dDVF>!3o=J>S55p(K`4M1ZC?1=LEk`z`2Exb(Xr#M&rRBlL(bin-wj(r-g( z^tp$&wzDq~cBAnkp}lrQ&f$;~66_3} zK>S@0fk;PiC9hV-Z>a@Vw#PpbQUS_~aH5ErhSC)e@o8=xB^s5&Zjo;x4VM*Pb#SAF ziaK)qnr7B*IXi?a^tZS+C#@;Bm>#E{n$(b~HF7J%MmqTiO_~PIOOYc#bt~26QY3RN zyL8+5}N|F7DQO)|%Bm)QvW+>yWo3?!~N9eDSoV57?g zG~i4VgX46SMa*dA{n}(Msf`)lc}5ZlGq$GUfH?Cvif2kL#pz@Nz(!zFUmrHX3x}qQ z{NnQc>iOrgUaM{U)JMeR0v~w#a6ny z{EwmdNjI{a5}0|%7VW0nEO|dezhoV2xEpY6KQe@)ibSdrSUE}7eOhUpFBV{eA-J12 z%h3+Q;;%b6D7DDef}-tGHtXj@{HXiu*^#rb)6a_8$!L8pJnb_f2y>+g(%R__po=tX z&@4a)=$dmfl&=NcqlAhui_gf}M>dC%J3TjzBO0fgMY(J6p;=mybFkc2_-K_74-+xc zB9&J?t}hqmv>5D;n0W0<9%h5@5{#O2uDf=`bcxt37;;(D%ciJsY{=nYQZpcWwpuj1 zfqSz;FT=!0$-tMW=qhxcrs#I<>m7x`3J-fxYH-s^;H?uYMQpQT&hThPu`ks7;0qn6j4J53kw>Tn_x*^J#j5cG z$aB0_b)7*#Q)EgQ}07QpbH4bq?ixqsu-Y;q|pHmWvrA zZV|&|7G~~QoboDmNz8(^I^u1d42RMQnlGmq=Em>^+Jx}pVzqp1UPOQt^&;Y~^sGwk zB*_Hgzefjf&-fpxwXxkqm`S*A2VN3 zr0v8NsU;Yu^*Dma*GoU-nWc0Bjo9D^9pFR2Mue1`PBv!#9#LRqRO(I+v_McZBJ&Ly zu}5AQO_eK|d&~oRSvDm;2$GaLrUDJf6!c1?%0OhB-?T0K@7P3UuTJ(V>{x?WE{flv ztV3rtbJgRf5@BK*XQtv_aim?JSF2CxxBtAV6v^s8&6mB^a`6S52ERIV=ew!CYPY@B zyqELmur2ycT%Kx4nZ~twO0GiN+?*qafBA@6?%PB=ia-yB#9KINAGjjLLT05@h}>kqx0tD3aum)EbvyFzwLS zWEnOdi2WgxRiMD9VVTWnRg)NK(!Q4*{r;noqu@mQ z5ECHj-o<0G{}DX?`-$LOkC)5UI(Iud(L`bR%2X>D*31NnOE!XeOXU`Bn79NE_!8K4 zga}>^c9aE~uay`;xkOOxpbW0xCFxWQyV(7LY?RBz7tqxHdzDX8R&PPHN??|(p&U1k zJNmt+l~5U;)V-?{IZ;Rz8LL%eiOVNZ4y(XAts2K{xQ$qmj&wrf6XhQYk4Sv#&sNh> z?=%O_#TL*DYg~+jQ}A@6mB*WMHtKCK(gi$nrhe*BI4jhs!KJYek~!aOAC7|4$p~}q zK)q9lT{(chkNT>q{t07uF7kSfx0B~Kt(!V!-sfk7eytV+7!);hS0kUzzCRe~I&>~1 z3M9mYv<1+O9me6o@^S`RdNq!&6`(i=8XN!V6mBa9hy#Qd)K`^G5o*(MZXJjfzu~{b zyBUY*?^ggh)xc??YpUyHT|+hV1)dhX&d~|fDac$NFBTp^t~&<7+pd6VIP@UXuj3@Y z8Vp6+mNbQ31}NM~r1r^pT&ZP<$jY839aq6|mIZPyhD)J<%W2Tm!HIev`$LZ) z43NzrIq(&Of{k4^_@(IS=%Y5A2JRm%LSk4PHV+6iFf3d5p064f*D4oVbSj87NG~p} zu7@5d&zNU(2uh8J5sJBc9CoTx^S<4$(Q+=+WYG&U)K3_ogg$iV_Uf{^M&>*h**>}&7uT0Aihq@x|1<( zZv4JpQi_xuL8>Qy8gx5iI2^~(31d#*@An3#WmUxo?@VxWZlF3n7_#n`2IJMUxw=uD zrfLWbHOzeC(Ip6r`$l1!x?!k2;R57_eM)8~K8AG%T?=Xc?P#JzB0!FpIID61Ku04+3Dl?T@oiB>bAI!t8Eh)1tF zeu~hY#nXsQCGfn{i!oLl@z03$4qUFh*r8555%v-owawHfD(7F^>=-wNcjGn-Uw^I{ z#z|er>@R+@I<^U3sk_Y*2tpUoo#Abvc_!!*RaR(?_{9jt;fldRH440;I*1`Mxve>B z;`?|t%K@gDIUZF}z0{;H&>p5CkT#e4n<{X!&(=G%4A-)`Vkjm`A<7%chQcaG!9gFDNX6s_@r&=k`Nu zog>%ViE#G`N+cc9ZwS^0WJJw=+(c<1hhYj+4_(D-e_11c=$}Jg9sAvm_K;SyU&pb) zvDXWIY)|(ZebU9*r03HyRx6A7*%(0{MTqeZBEdzqn19$QsVNOE@+#6=vecozjDk1$ zi5WRe5Ky?@dDmTh3(}E6zlK0!_fd&MyMa}q*?C+D|VYj4AEPTZwg@n57tyeG= z8+)^1^H>GhVh(GlATJmKN;Cprm|R%m4GEew_X{8BaZaThP#|u>k`48?ZFT@MVZ9@z zUUG(Z$?6z!SMwg(#c?QKvgjX*FRB-f19UHv*?izsZ0={P8 zZ3{YA_M@bXZWOk40Z<~Vot__xi{nATU^9Jp6YxuoF4KR)jvGz=0?d^snpjL>6DK#q zRSR94E>_DTDX4FxX11z3*N{rsJFfbQhx=jF*yETAy2ov_#`SAU^W)sV5>E0kFx#lN zFx@?-=#Amp7Ey$@a0aw$5T}gKiEwD;OiIz{#(YGEuLpBNZe1Zlvi6gh=}L(xdYBvw z;u7oPgv@v>AZs$)DzwRYFyD=I@aPJ5|06mC-RTnb`KkgfGh`jo#r%`#jK?Z%hdc-s z*j^AKfF-vCj=)5-F}#QqlLqXFm1gQ(po8G;7F>yzgKWQjBlA%hJ4rUI89qVzrcGE} zJZLT%mY6WX$&Aea`(JS#vN4(MoZO1=4&X6w8J>*E9uIe| zg$|U9wmx0=ATqiTlP0VYP@uSt@AyFI0v=xHx~eIaBs?tU+P!5`C^9M9jbDFR+_+6I zb|UKTA7el~022U3*Tsz(5t2@nCiGd7Hk2D7-Ip!SP8LCE-3WM2p7Xwf? zRAy6^6ai52r*=gTZb}@1@mEBuq76%TMT!f$O0kx#`S|2w&1`Yp8!dulm9F?sR2g8< zdNEyx#tL635plBDqeVn9b;~wQAWn3`@m>QjS+WgNa(7lpDpp}IkisCX`3v(x_?=Fki>7GkyOQC79 z4G&FtC{e7|1cg?aS>xjHD(hvK-yW(&A zAv)54T2+@(=c^{qoXq88q2Z?E)qD+NlQ2h1c)=rXl#sy$Z{k2`jgCI$YUFvME8wWZ z)Rb=&k5qnsY}H_C*2S_xkoA&pAiHVo4)d?`s`RhLT+C=i`fF7NNz$!t&!#H5+Su8B zq3QDJ`TAmU3WGS^RExS*`RYAbZv72vW#vVFRvh2DRcaK3?u15yPV0|nzE7N+3rWVC zRRxc4e!f`H=7X_BeVG=-DpH*H=gZmq{OqL(V?$tw2}DOdfRJ${eJOL0`eCI!RcOD$?oE~S#tx^kH?YABF~3OSH2i`(gRYF^6y8?Vo^tDqg2;^O4{{Zr)63 zISnesr)P_Ew#zHzAQPsQpOt{p`QoXzj$&w@MsK&Dj_V(ekJJc{jz1m$c5?Ih!JOD5aYIS@osf;@E}Es76wS#XNBanDqI;K)#{p zHtG>Ue!@GA?g?S7pS1J2X*NwjZ8&2E?)WNL_$89s7sul*2W@2opGW>lW}Ay*?#edR zg+m%e6$(xG00Dox6$M@;r5K@#36yt+0`HTDadl6mL<3By^+^BKVCmh|zaSE$izJpmhLzmw$efS9MVlen}s^0foV5 zDe7Wg_TJ%_ff#OOxmu;vV^_qieQlyqxUY&I{GEr?v5b^rIZuIWKAkRBHCQgXz^-g? z$>I+=OU*bMdq}w2_R*vGQHFD4miNXR)fdGFkHQCW&9zm4m~v|!C5r!!tLdaLq@K$X z!ym*owPM5-gP)K1&$tc-2XJN7uSe`xT)~(Y(^~e?qxg}~A)u&mFzOJdq3~vI(y%22 zH}-X}4~_Iwf*Z%fy6BEB+qZ&>X2%Z0falW>fuzvdnt{!~YDy<;eCB+7ctNQ z|DtD(RUIYP9r0&xR0TCw!Q4()d0YHrQ>yDUbr*hC%=67+O&`5jRZ}QrJlNpS2wGfz zc`P&v8~mx>-@)wz+IBaQ%VJtmaKcM7#Zn!6`aZMEdjuyTytY4AEbh82wA;`uSVKi+ z-uW?v?-mL+g}SOPtkH}PlnPE^3YLR@T}?;l>M}h-H!zajen`u-RiRkEXSm<#ha>g6)vQf0RJ&@@x2s|OBna|Q z_+JJi#(=RpYqP3%*b{}3OP63wjkt`gB(2PGjC)FwAA*qzmWVuI+N6bSta^;Hj9y$^ z>Dm-o+=iB={l4rS&}8F)wQbVsUBdG_%gnGOy74qG7qOTK`8Sj>`3Am0laYoIr#9;0HY`u&jWH+LRY z=mu7(!E0_{>yCQ;ot=K^2!_1fRpdcBj3qRss)as_WEWcl)=<*I<7f{ zd3-%%F}tr~@>s|h5o8yvU*Si0TJGcLLA)$@9O-j61gmQP!jtZ!3+ zH*Ybw8sefMU)w2=t)Vex6(AlbJkHDsH*jbI<2Qc~G}=TlIV~??bOiyUqJ;p0h}fJA z4<&}(+T;RsG|~nvhh$-no7~mXJ6YgL1l3s7g)Mt6T~l)4wpD@Zd(&*FIlj~-jXooe zZ1h!D*G9sDkl)#BnL%v()vl0oi;z;1v?*R391woUlp$%pVerzJ$%jRT+xHh95+Qqb z3Kr$zR{TRMhQqwFLS`rTO;y zKSlA&Af*4koz1eSr}% z8@pofbo8qxb8RqrZMRIeK$> za`e17p*3lpfg+ZV{O{xAM}wok9jk-w_|}gg`t6x9IAwUOuhyD%MxSWeBx>da)h3ntgT0jjrrc%HJtNG3mV@JC^LHzjosFp6gwBKm%%6cLF+SUF>> zb~N3RL+^12cGUrm(UCw>mBD@;cU?VQYbkMY{KBykT1%g`I`!&Z;%Wg$d*pN%)g*h( zKE$#KaoQ$0JZxJHChmW@^`W7&wo`sL$|&jp!rX|O65OEq536#qnhs{QHURxf$t5Ve z4HRt=7w=!I?lpVG`+Gi?VrEkVb@hC+l&GuzHBvZs8h6&Y@UM)!1BbmNMVpcK0&bz$ z$=kabg9d-`0}#aR-Yxm|n(23)`LB7mR#nvWr5vblXj7e3*XFuCr0+ho_bvG8R^&7( z3e4-5My!<;?zc1|E`b``5bxWX;7g;%7WlQJ0oPTM)e7SrnZjD$vc`^awuBH>YtqCD z+znZ)?OIK=p%1k$tD23`81~0wVDLNIbn3Y@ePu44neR8YDhW^C;O1;kUOUu&ySJTB z-yb!N*=!#}N?)Q>C$9c<^R#xbH);V?^Y`1oX^3;MKiYwzCs4h)hkg8E@hoht5*zRk zv=UW6E?$X7?}%7*{u==|zvF!Mm%Y{E|W#Jc0G zq``+Et*m<|taWz}I9tQEMpS6f>mLr3{W|_GhfO!I3y3Pzvkll@w1@R+7fC+8Sn>g) zNt<}mxE>#PusiQ=jJ8~0qH9liHLMvQY4Y?w%K_Gc);LzoHf0%wYs1Xs%Dx{OPH+0KWLam+n1tp=IRg}4IW7?8LMP?IVrRIq+*;knb z@n0?cymC9KI#)%5inXuv`O*nl)g~2w^@Qq91x6&=>J90|#q*VCGr zzW(#ENA?k>i1*d!AijN0FEoc)VJ<3{(exBPCydtIhMTYW*uGu38&%U8aG9)C%|tG) zHg&w)c_!BdQ?7{G#~;BPxpviWLXIU4*`LeT*Q)Pu_thX~*aOrk6IpWA#`?VCn5+Y! zFr2_GV(OsiW_@j+X&YFHNQmm+ofuDjt%hvs#CWPDmYA}t z^m~`5lNu!6We8%jb|!PGQ;3)4a`H-qcz7yVT-Xw<^8abM+`XJX`LR2vk=oyT zUm~fj+6Ds2Kv?XQ0S_08$<_b*?rykCF);_Kg!zl1-vkH3D- z*)vo<@qB!*ow{m6bkkLssQ}pbtL4o%%jsJu-0~F~H@<||PWq~HBd*XKNiLE8^uTyJ zF_+W$obyNPch0i-(PBZzq5h7APOPw4UKTt1)>NcAx|*+w-qAM{@$N5b#z#D_V^?|% zVe5kG2EseV$|HbiX_Yo21pey#Ee9@fX+W&2D4O1dbjS!;OUK${|94-wS$2xI!@bAiyNKN62ATGcd`M zp6lHraW1lUza_(&@MWZ2MuvA|1=PQ;<{K*~X+4P-R-Ew}X=ZE1<63eOiw)B$`E+_k ziDrw%gkmb;_fNK)+wJCX4|8fqw;1IT^F8+}()rPBdsh8R4jF2>&1j=+{Wzx@=C?d4 z-TxGgl&J7~fMZW{+J^UUFR4CSzhN^-k^7!mWv-=ztRQ80gY%ZZtT}=<=8&VihZA=) zmOe89bpzLV-z%lRaqVVRiq*oKNCSW6pP`A{E=98LV)k6Giwd7=yeR{4ID&)C=J`4PvXfTeu#!dOhbX;#j5Xx#U!c74C8-P?Kn zn5Z`_A?X62?C?Q_kzPfk=qo6CU}0$^&2ThV`__r=En~A$%(-~tVxj|tzkBlSvtNFE zSb-VCPl>JffDoSycy(o4;+j5OiECK7KzbXJl4Jl%b%O6+TZIp(Aj}a%Locu zwAaQqM+dffJFmi-i?Qx$IT#+;w7hvdq|x|L5YPqgLBkC8HK|gZ*1~?*&(B%_Y8n$} ztgpo_XKHJPyj3y74?B7FL_IWZB3?Z!;7u*+ZGDp3jzIoGVD@tri1>vagn`jOL_byn zjG4YsL=0LlSDRugZi`r!(M-o}4(T(|c`X9Gh~pq}&|-H~OmnK>O0Oi@`*l6awUc#H z=KlPV{88~Nj=NuNs!rzv?R}&7!6E)O3JS;fo8yhUqYTugBeyrelhqXP=@6Mo0#+!# zTbgUIO_p-p4~OJablDqo4ltD~)NPb#!M>`#-||=g^Z=7|wF~||X6YX;{aPz&WJ7FP zxX+BGvw(d3zbp75E2xs0R-^6`XGEL@Z0D*S+JZ<6TIn#2lF{s&Gb9{x1U4LkZO7o@ z2VostVzx5!*Kx;eT;jNC&Aj4BcU7g6Faw~_b%~V;!!d2gP}HFt1TSjUYXRzc(v_gm zYm80*Tg4QgX#BB5jM%L5U13L(>3WRbui-G8@TbWwlTp+A>sC)4R&jp<)I;99}I9 zT#-*^=CrEX9OK2s)$$uHETG~m8YzI7>2vKV0ddxf|jC=REMmG41=t4(P;BLHo_vi7f3_Jy$jS-_rn*csl`ug zf!^1MPL-^R!%xo_IWNo_S-yVqdhz3Gd0VVDZ$&;Fi|LWJk_w;_L|psDadX&y zb6}z5jT;80y>bpLY#W%qc3it{V0u(@DLxs*7gv<7IPXAnE81Bj<_9&VE(UQwD%&|L zB%yIXt||@$`cCq)#3-}Ice2n*At6dd1BAN5WN)BthCUi#I+4+FR}8E8{c^HhyHa(T zu$nF>P-*!Zm=9H9FkRmCY>OW8lHU0s0mA@753|?Wj zTD~TmhKH-wa@9McD&Ea@z42ZaUXIoq@a2({&!W0Ym2Kw~sWrWs6|16ZdgGM^W^TpI z>e$lJu{%=y0uHS0WV5t1B7|4djlnR{{-aUp+bzeEK4(U;mAJ2pw`&3*{@|L&CbP~p zxYj3f=c?qZlOkOqH&5~g&77lGR2j0Usx3rv9ykv>Q z@Y?ICQnHutd)Kf|Sf&Qpnj%w}TH)w;k=&mt{)4nhtUDshDy2-SYmx9h`g3crwA6m@ z8#1bB##gI+VRJaj#+Kgw7i=@R?N#l%Lc_oijRsVWG{+w6w0?Zft3^AZwJ>_;JH9?U zIQ+Ueoou#fr%cwl)o4_$y`iykwAKFSl*7=&gE7~>kpkwQ&~#%?K6PkSqrkKZ^o=zJ zm&Qm8;{f>m02m6jJ-J-oYdlZLa1;EW9nnBNNbkD&IAM$&=8Ofdrc2?(G4o zfQB3#(G5(DUIOz>`TqjEcSL=d)0#h#DiNv%Ju)S=x}%pbw7E?au*i3yGhqSO=E}ks#Uoz>cNg3h;HdAi; z$YoyrRHQD_`krsL_4c8V8=p_vz!g)q*uUyMFt};)VOa+JSiL3}ZhRq=jMMtzVDE+E z4L#{-u-R$~AGw^e9|?F|zvV(ciA4|%%hCxMZQ;MNM8e}l{i?}TFeH))8qf=90AVSv z_-b+OMy^#+<|q_eC`MZX=Vu}r?+Pk!L9|NC@CGDKSIcIrYTMPjvdS8fyoScqH5#tV zjjAIR7uLmNgy(?1RF%Zl60n_B36H`kN~9!+ie5t@$|lB#;8~|nTbgp(Z(tf1d~lkq;U3%F9veP)pzc$1jbnXpkW08 zQ+9^=zNo<2BYor0=+zfuTHyyTzAUJ!$jPfJvcSSM^`4%Lwf^gTv2UIA%xx8RXf>@< zQ22pe%!}6yqWaucVq)^J8t?(7kuTY}M#Cy}lE3Rr) zJ;0IO8&zsXmArC-*Ho)wQG2E3j6sf7zMF6!L;;Ev9)dyGR2eOKTGS1geR)QLt zs^HafNo#jg8}w(WCVz%0&*$r(3cNEy&L0b5ac+cqk`h5k`R`t+H~0JRUhz+@z%?iU z-lGLNwbsT|8%`q`mWheA8H!$YAab4@XB7pu`!(}eMM7rFZ8?3qVUHx+Nv$?k;aWCd zltBDRSB6HWNfpHe8Ag*mSu3V9p5aMuWs_yD`IJzFqsS~>CDoP8LDFsL&6f_ zC$^frPSAD@e_J1rW_)b#^p|3wHT2Per7AV|$xzaWphGSYtvp-)z|gcPWql~ssynWD z#5v1gsglzhd3|WdOO{BsFKGb7u>wIwZ}sHX+`_}fwEA8Wh*|?zt_BQnu9r7N?lreu zkx1y$LBk9LZnR5T?IqSA3G}orpnY1j%wkNZ%FIT>}K_5T|zc(vp3f z`VWIGQbB7!y0A#=)*i@%T1f+Jq+V2x`Q;ooSJkbHf0G1kKTh^NE!F%nx9uQ2uH$O| zK4Kur;sISQHu51VPJldU*8H`x`|IOS2%+JQY?MZL!hiaD*$+Zw&>kvzLL40@)z9jk zXi@y=8}mF7f3;FMrW2D?^#5c!xtyq9HMwHGen@cn`H>dWRJ%~Wu>yFM`FgFaz;6cX zd9Yb>I{6x2RaI0x$IbGMuhJeM+u*2!(Uh#z2->QU&BWt;kzaGftNJ`n98)tV4xexH z5*g-iXEna4t|ie7LXXh&V?rNMu!y3*iq!E=&P&h*K zM~gG|2dLTvx=0eLNh$~*8 z@9*mXY+$Hl(5f2bwtz%8j8n^%V&^L^Ub&xe&CBilaxH70Xz9#Fl5Xyp@Cmu`AE^Wv ztlzYLnx?LXWId@d>{;Vf!-HcSkc&Go>!3`=8Lk`ew#9g5);5hRX3!9AF?9F`9NcM!r z?+PQV&E{*rVrJC^l=Z2x2CD1`5`VV_E8UOVbrTf_|aa9h-NR#?F#1doB8sD zr|`bf9?l&2T4Ga=Ms>fjqCJ1CuGhwAF)*r1Bf}xCs*#y(m_y|6u|m&^>Hog%B-_if zHZJOSMVY@P^%=GHY<^QfI|PP)tNr8$VS-|us>6nRvbVEP|683nvBm&;6E+|XsTtg~ zFRh*D{e6r1zL=N$EZ2wYuF)iBnx^;-pw?g7{`zcirI#v`Ef5B3FUc@X?+cbd*ldxZ z{C8sX!h@hj{+!ND+~H^LFNk1@;EEMa=ws-M5fDDKt{7&6&^~m8`O@Bg2)=a1m;(Yh z@M+v4^;Xon0l6Aao9#j#26EXtojVl|-wbYf9MyGdhk(e4U)hY)mc9VM)v6{q7+@`% zu|7(}$z-#=wJwc}(c2=soD>r3)2V>P5%NT<)!UxQ6!gt+Y@M>+)K8pz(QK`0(Hq*e z)n~}uua+f4;kPPW&-V62&RZ%H57DmO3+&o;>EWd1UG=rmi+XUl*GSK3Y!Xcx&z5U9 zyKQ=&nYX~mxmFyq@P%%4!*zaZ4MTh+f|72FqZTQWzAnrBcFlM9du!0 zF}nY+8#rl~?c#pe?PcY@BQVD+c94q~SC{s+VcYYhx!G3@Hn2ID%QJ+jNaMm)oYqhJ zjh@>TU$_gHwh+}?v5>N_Y2!NB=_%WGS=g%kQP;J)h0>mDwc2_dawX$}y;~Oi7Iwwv zdsND=*iZe(<$8`EJX&a0CfWrL*{8Z$$=U^sns2XmKdWh^bjLY(2?J;gG;Lk($WI2F zrMQ@GQ|ZugQVVKs#tG&G;?uX47-4$$zcp~dtZCqZTig_%uvFke8ynwT)oaJtEME(> za5H_mq(;$adgsdh(lj#`K?v|4ajVKaO@rl=_2=!gzuPN zi&eKbi*5HID)JC@kk-w4xTu0d8SZRLX+_M+B*(O%(l27gx9C6hYCTvLSF2(@vw0RnxV0?@Om}Z>gK8jh9-;M% zhxR*r+2c>PDR&cr*FP}4wFoBK+qUQsT51Z5m2~r%YBLxxC${F;1;=}prkOJmI65}_S4%QlZ5mHwp9exo_Sgn1J7j{Y)`7Y;X(L;yijxyuznb6D zHgrky1HSQc+^g6VR?T4A73bu=6P>m-j+9?ZI;(<7;j?H!3VD)#oM@CpduI{t6GvHl z#veLv?3_O!O00^aCS}RY9QJa_TpV*sI5EMfJ)BmeHgAM;8_#Yoj|Qbd#b|LweX&}3 z?^<#Ui;&(f*LBsR2)qXGDtcvW5hceA^)v(XXPR95pmk(a2b+Jg;z68XfA5)B5y)sw2ME%AkB@??8!6fa>MP>|;8uheSX)mT#>tyU?wPou48(EH? zHfK4qWo2i|Cp%M@KKd%^dha*Qno{(y%=q8;O(ZzhQc#H(x189M{`A!Lw{B3@xI`+f zJgN@+R)Sq)QKMD|VSH;ii`A=_BBr-TGZHfktJZfpIi;z<@5P%bp&Z zx@`Y)JD0j)kv}wj*#{;vycZZNw05U5)E7=Nuoct#z&pZJ7goABar0iUj<>I!@*lSC z!)j#pt#_x~ZgRK>q-%4-#N6%eJN%@^xwY1Bi};3s`w{<7*}V_QmuE_b4EL%56XHhn zMX0j`zWZ(+RV}pk#Fvj9BwTJ@SX{c>{I1yKcJ#gj+MLp74Q)PsJ>N`bk8Sx*0_3LU z5>QYb)c~0Z;0Gu4uk*41K6yeBKYl9Ks9dN;@hA+NhQ9ZDKE)i*vtoWd+tlO{9zw0f zBb`g&mQG}gRcZ)q`9yS3WiO$QPQ>4qYY%HC(~mlf>Az?Oux%bK=9|taCB8dq-eo@( zDCu@@Sbf^i_6H5OZLFABXa+O_}GBD<$TU3Jwo?R!Vl`TDlZ zF_WmY!&_Z{$7K#ZKz;?}ZM|77&3nW*tv(>^RT?JzS6X$j-VuU6_w+TX271}wPFyx8;S=UKeyH1NMJ3phkI|3uDDWt zee_vkv8}YnvcV!}~S8;Mjv!?fZ6J<8940?!95r6-kRO{1Ri2 z@kf-^sM=pN8)Q$v0|;It!D;~+vKjZ%y?WQrn)Tw?&ZSzcCp#cIb51BAzHz*iWBvKI zT;@}I18}KnPrc_VPndt(I9%lg>K)hBbM9NRd{^|)C-Rc!I!E78ig5A1?IuRR#S%f( zYhJd~vSfc&;fiAoNz|R?>$CZES}YzdFrO|e$?WJe6+UpkGNKG6et0^6SPP_f-CL2#W<4!_Js+sqq7HR+(jqR&Hat5}U7$3X&Z^Tsyb^bWi5 zbj+~y#qWO|m6aPDiPM$d_RIwI7gXqoS) zDy+ILtg8daM&3GC(cpNZ7SkXlR@8efcLCYgvdA#FT`f0DbhNhe8|dg++*;NoOH7@z z*xI2HHZyK?O{x?Ajdf+PAud>K>yZ$uFCS2Uj|<=I;`&gN?70HKM0J z=~FOvXZ&Ruot*KYCrkQOfAoAsYWm5U;deZ&c#5gT+meuBJc34!lgP_MrquSo>`&hqH9oz9(O)KTYvs_ z0+GfGkVRL^M5^<24@_?Cg+ zKj$1+C)zj!*!bEE));da{`S6_Y2WV7X}o$M03C62-P3hW#Nquf`h7+m>fY5Ow$v5~ z>uG8Q6k*rr3@6s|Ec)wz`^McZT7<5j|*}S`8h{VIfYu%vZI0 zifaGL@Pm2j@}toz9&Na-OT45wIvy-n&t}`js|E**_9mvQ{57ho$uG#DAWokcD6dR@ z@fPy+D!;{>NO<8+ekF{;w8^=k^Bup|cA*PGsFjr-ecu3c^Yg0gOYTC-V3s%lwZ79R zM#bO4Q4Gy#kw6N}4|}wpmmp|sfw*;8pI8g21M~_+z6~YttG*S71O{s8*IW`Wacq~{ zRe4gIla}aadWlN0OV*cN!l`(Djd4ayD-rSbmeVMh@309LQ=7hq0|BPI!J(|}cQX2M z!%LK}FV~aR{C0CWTdr&7D>eScd@b_B1AM;x?7Ju5KKtdzhh%y1wFa);d`B*S+$=BGxA|gSZ(`~&0pik28E^mSwm%E{v#>vl z`m?w{OZv04PlNsEcDX6~)A_EynQzLXPebY7uHYA~P=7P+Z)W{%*_KPjFAU-_+ z=mzv%KtArffpM%LSFMgYp2pRA2n^_Ik(Vy^e;tiEFppn7x4inI`~ zF2#w*wm1#%bcUJKOx944>$A&htvEQG8rQwIk$%hc_J)FL{v4R5|?to)9&EPc=7jRjslIS{Fgp;AtG zYm5!;No(a>Yl+1D#jDNowxv;pk*?2gXnIO$u;mC_7&zkkM~*f$y@=N4pxPO=fw}5Y zMpa`lvgLjZxxqrb*SmV-aB(QEEocZZ*88F$wRDW5T7ewp3`n=Mq3K`r7S{bC}wkj1A1lQB1Yz z7+BKpY+1#^8R&S@OZ> zhrJ?hK8N^UC;H19Y^Ubn!!Ta!r>?l@s;sc1W}7>?Cpo|0e^*x>ciY0w$Sy?mE&ERp ztEQBKSPr#8U*@pymYuOeOocE|EjkDBBPLN)mv@#b+gyj`c5}Nm?+hsl+1p!m))Wbu z(Z^>^Hxfs+Oz@m^SH&Fv3Tk{!sY>_-UsHVX{C@vM@4;u!|Na&H_|M*h6D;`s-tqAl z$E@#CRWYrrrG9rMBSxz@cqKpj>gc$hgm_h5VFdQgBG3D|=92;SpATOgzfg2al?LYB zq9a~SxAulFj`s%2v-?o%M6hZ~=R<;?%YK`}%?E-L0>efVD-w*x%VVT=8zbv37HRXVP5Y zE`5n?>HE4Oe7{>yj2q8i9M~C9P>CnUck5VgxBVS|FKTw}&y~?+TMy@~Xu-GSO#28V z=_=`j>ym|R3zo}Q+gsyQ;;g0Sxr$uD92)#FpS;rN$)7);Pm%b_3in+)DUR)_w`g1X zR&6=&aH`k$n~h9q@R8 zhTjM@dcp%}q~qqQ)mE~1Y{nGC%TbE~THXqmX*+87Du2z!8EJQCCnDY#6g~zRBv@# zANAcC`QkKw$giz0ALlDz{-4p@)Mxg*QI?^4{$_dWY~Z}O+8owG2{o-IzFBS;sCDOA z{Dfvo`-A7Jbsacc=()53j}~}CAZ)g^pj)+|at|q3IyLq;`QsNmpuWCT=Gw_N48e6` zu93BBwNF%_eHw)KHO7$u21$&?dj6aD^VMp7~ zs8rt&&XzGJs|2|(CZWH7tKR=2-~ZA`MceMl*`?h|rXq+JDgE#bupV`?YQE&HfHoV-JoAWF@3iDZh3P^U_^&2m|7TnMXS7a zRopbgovd~~YE$p&o!M3>%F(RFjO||7qrl}_<-RwmrTA8cD0)(gS`aHt{i)qP)^^58 zy~qxKY=HX2U2HI#YPvrxH}fmhkjxdA^62KawD`>JVh)A0?v~2NPHbZsX0uV(bUyVK z%MEf1J3wnMcXjHi4ybf+bO6(~ye$?d=GZjrhY~hI5!@tLwG(-XduG zq3O=ZsnsKE;1?FN{m6huBg8p76I;&djvKWcq{;z={W>U=h;!j#tL>{oo3HU*llTA! zkp4~Ml$^9jgO;upGWr0d|K~P0qjKea@1>*hyvncll79kZps;wek%jn^0$8A%$n~mN zufNGxqGZF#Ea>TF?fpyn-Z{z&@fsn3(v&e}&BEA}t!jt@r+?Lf*@!EqjU_WSu8-c3 zJ_2);x7+p1tm=dSZOqPHUCkHMN2okCXQgXEmw>pd9~!=|bbod&T5-Km-K5ZVlqUVH z*{%r$)U!?st_M<)JFJ`z4kTix@ycy6X-Ik|-6ntk-TSOMI|fd2?+Wv0`=U8SaD;O+ zh!^{yD>h-zg_(k&nvL{5ny&$KIy2j>OTA9eho+`JVV=}?_$_iFp086jN2rT&_y)&Z<;D7r3Rz9-|B!=Dp#Ydn1gLf$f;7Sp5lEJzqI3+TvWI9E6as~tj5RJgq18uq1*`F-tD z2a(+NAj2c?#Ok-b77dODpxk&pL+f$>_?kCO1v_?7Nr4)h#2_^ATHSo0m?SUx){QmR4K*6E!35Smt-y4im&@ya zlZaHuqX#W7Ni1@dIu8&W>o-u>>#4f5OD@~vz|`C8+!R6zav z^<-h@xG+8!ARN&TV{p6@jS>9tBc413aN^o0;&0QzjGums2-vwh`l@q(z+`>L723NJ zSjQ5Lczxf9xuIZWzpnFF2lZ$|qTXk<4}@WhD5%Ll-_@EnB_A;wN}ESN-RB_rL<%T0 zd*Z7II!zg5>N)@iH10*kD<>+^*iuXp}Xpt-q&ct1j zGYk}<`qts5@UxBpGB>QTX6=F`Mp?vo-bkGtFm3@;Zx6X?6rA)f`#Sm`CI`bYSDV4V zX5`Sb7<{Ke)7fhU;b6wu!>|o6^T{g^aFHNef>mu0)Kc}eJRg{vqh|yCJ)tbCRpZAE zbcYZ9k1{aP)<+xK0V1c|7`CuEbe>Wl3xm z?Ka0>5Cd!u8d)2ergytsE4kfd6Ka#LHP>hi)Kx3crL)!?7F&we)d3JX=v1voLADss zg=3j-ir#b8^U?SDyacIgvlKmnKm^U5c)tzbYs+RX*b9ea5bT75LVVt=ul3OBA~2|{ z=5Mms6Z}Ynk(Til?T?maF`&&tqy(8}H zNN><_SB&uf2;+HVwBs5M^|WU+WxlxH0)Bji0iD}TxyB^>+cPYNBu3+H9uyl11J;`I z^Nms<97fmJ*Lj^lnC`7kM#ju6gS)@YJ6U8%GJD#+F) zh9?W|87CNf^2Bh%yS?~=BU zFUDuFD4~D-a2BMKK}yf~i5INZr|&*THAd;Lwq^0v=Zob6gZ6#?#n)ec0kF{Ha2(|X zS04kl9tJB%y9B>vF!Dx&NS_jpW)PPndPD#D@SmCl)xiJG0ro)zQxR>vYa8k9s@UCa zq(L@_ydY5{ArMz1Ne5}^i}9K@JW*o|lS-kDv~j5A{CeR}P*1x$90Lc6{*ym*#1R?qC}LoYj^`cPK)BR@W5IPwDn<1ib^ayo4R&Of$m;IrTUanKoh@gGrt z_<{91f`@FL|4`UuU8-jXRIecOhawKp=RxF+?0L<`0~l=V4QB%b`Mq%F zhh;Dzy6&ei?zjZn0EFHi`Yat})WTUXwp)mSMjX@zRBUPknip+69(lp2sRc0$YZ7N; z_4Q2xe}KRy@EidV9s_X;fOtWBkq^J&*$;@Abz6!Rc?bMqSemwB>CDgSJ2LB3-%tN2 zL;SCF`E^Z@E<&0z+sP^SBT{?6_xaUmP`Vy?S%v2 zJG=-d=)q4|i$NfceBcEKNe(XsFGer1s~DOH5Lc)qgl8y6)&e$Jx*lY>%kaen-o)H8 z{KMFW8!v{2X%Bkv0JZ%P`}8B6%Gn4>OX35oBJdMOjm^QZ6NGPszeYF&nlp?O8i7C9 z47NG~0ub$BMzaVh40H|L;z;(5EsbyrG0y`Ajx8l?1Q@h5LPWzk`q&u$h3;c$GKMCz zS=?nE`PSy}wS;}Y18N7m(}SNEvB@)^jZCija8~!_ay2bhKK0*)YQY(j0iCeOYwg%W zv;*oo3z7-02rM?>M8Y5)B)DqH%ny9-Gi77!m1wvW-k4;wl$ecs+l^Zef31Vf~;CA@%x8pxe^ld74g*iNR8ATy_l6-uOZ z=D?AH5{0h@W*$i15O!!V^nr`Qac0)XshU+vZSkxKKpFlMYE#1Dk0xSb3D&@u;Xz27 z5e@{~%K-rKa3;-jwa)JtL2m*ttxwQv zU6{0_1$c+FAj^R>7VYB(2$54(C5SBHY4wc6BdxyhBRcGiFZ|jU88U|HAkhxL5IGS9 z0a4`#!2j88v;H$KAohc)yMB4mP}|_9K3n5VfZcJo=&w zd0oCOASsL`?0;>N>~Q{sFC`U2z5R2MX2up7{Ct1o%Ha-e3CCFMcL`#0X`=m!6@)Q zasJZT?p1|CEfov&jPkKJ7N`jS0u<;`@E(L&**P@1JaE@LE5z@?85rwy>;7$pt3*~xOd z=pe(vXrb>}knVyrpasA+BK*@qb`cCg<`{vbl+B2_oP_|Tz=H+57|(!|%>3vADwH9< z9gJswh?SyUNQ43S@EbgtaAyNyK@7pq;9qDC|3DY`h~N0)FVuMla&LyZh?p@YL{vx+ z{&Xg#zCcJkbh81l7IZen#8^WSh%eAT9EL!Y&KQ*gmik~UXGoo6l=w!7J?4@ijUUsQ zN}?j4`FJ#tRK$J8LPi8JiW{Xi6q*j{bO^jk8X>BOCulrF$l~dn&4d(+AA^9H>$Sxj z=7ZqCone1qKjiZWi|AaB zm8giyZLC2u9rQ$F#q~%~O2lmp`-3<{W+g)0nG(B6423z;I!%TGyeSFUdNswSr3}*y zkpsu0gz$*IiEU_xN`e=x4gqLvj%N@MV-w+ffe;?kl8{D*Fq6U)u{0#jYsVb1ofB3Q z1nS67wHmZ9S@0YXQKkZ7Ux;2MtmBZ99Kl8KvI+7P_)Obq5Omqp#pD%6nf6zkvXg*1 z>ZYDeKYn$kv?GOU5D-%tv$A4LoGB?tQha$12WdE*;L4H!fr96-q(y-LG+K(wGf}%T z!~*2K#~y1rG8){zo`U#a)l>E{I_i!s9gh5<6;)g+)wacNs&A{Y?OKmVIPrFHrvEAo zN&i&{lGgC!90jv`@29YSi#s8+Aq;bx2T)r1(ip0{(BzwE3KGmT?6lI{ImWf!d$L zKaqY8@wK$s9P+m3iI_K!Mdr27)zl$m}`d`M!6X|Wo1aF)~ zNDDWr&Eh;o4Yp0Tcew>>Uk{KE##z8lt(6y4^p{w z@C4GQTDnXwojqIJVu>d@>prRNZ8w|)Py$ZGBy^0d;nfEh;;z6;L4jCf!P(NZQ8bO^ zs*I(wUz;to(P2VpNZeu9qlOBw;vA)N*ySY-!PLP8%t#6|4Pf^fDaU3N5^8W}5lLS3 z*B~Xb27T*^T4oLWuLF%+P78mXqp5f6d{c9Cp^`UeA-fVdQD34LdH8^gH}RgRnMBS{ zXw>jm%p7Sbr%tQAs8A|HV^ z#ZounOX)zU)IxQG6A8wjgx{D?kXXvz7h`1UNf(I&!mg=u!s;-XD61gbrz0dKQdg43 zk$Ptd{sQRy%@|=P`|3KWi;>b2iYc+W4yOjA1@Q*@CbEd*h5nk?C3H?CJZK_v#aRVQ zqebYjpdK;gvX&JI4qTBS$!&D=Ees?SK|36hI&e_2Xf0vsE@ECH5%LKOV;Rdcfdn=~ zeI(SFO0*i&bI8O^|niH3AyK{PQdB}S!yhc0g_y->S3C1uz|KqI5m zD?n6WF-pi?gXAI@sgI~IBtaaNRH-4cB@(Y9)|vZiet6X?=NHrLg+SbexRlEk9NfF2 zTz8_T394A)Q>iKpJQhMw9u?D(f_f}Y0@{Z;vWe*+taRG|0%ThfrCK6s_Y`8?7nK1Re1;YA9crW$V<3aOnjfO%XpybJgahV;g$(K`)+b01bp^f(XEh=u-<+InJ~ zNQ21#sLwsr7~`3iOjz+i!ZiFF<|8^RBdI~f8R10=amWKcy2m-H^1#V4bJR>ibJ&=wtQ}+Wy+RECaIFq^}#qE6Zs*7Qtrb!-3O|m%b)Ie}j z$wVS_EN{GNOOqZsk)u5e(me6xmkHUFBF%~Y%pd!xHpTq}2dnCVh4aYhlWteu-9)Ij zKcr%UH&zF==pEML;rtB2eEk~J;Q8z&=2O{W3xMg%UqKiDXE+3Yj-Pz_1sjBhfX?S| z%mf|rfXB3V7%Pl(`R1$7qtCs!^snSEGmXE5-z%uoWe7KDXzu6J{bn-PE?8>_3i9Q+ z1TJMZ60*LK@#!*1x4lR#i{)TQ#s#by@B+M0;=RA~<1^i8Ci0_;w0id78BHp*0xyEr z^e?;!E#TsF5bxN`w%SjCPs3SQGuqpQ_LWk2HnxrBE_9|8D}`*sd)*A1f)Ppn2O9c^wUoZjn3~$peH2JoJ8F7$$ z(OISH9r|=n8US7-vtW3Em-F>&)S-QiI2Ls!P)mUJV9N4ps4@waaDRYI)m* z-|({CXcji>=)&C|pM>yibTO_O$A)YKqs)TVl|9jH1n5kc{D?>I0Kvz*q=bX$Y>d!L zXUWb_N*~Us4vV<$WQgdYkyR=T>|()oAWzEN72U{(Wp$Y(Z-O!w#^H?3Sq4?S10BF2 zAHaz)dJFlUj^N}476+I3lIsrmx-m8`TJTzmIZ*o+N(vxs8zD>#@c$VPZRFDp32S#! z8e4cu?4aW0GAxhJ#w897Pkx+c9+3rOR1rJo^`wwc;{HluZ{bmFSN6h*WJsA?E`4N^ z5QB(~BjBog4zz3=v)+d8Y4P$YL^eHOVF)=G{iZ9VCbgR{24O0!A%|jV@D`T-lSOoy zoX~%w2mu|GB$n>*Qj9F@@Qx04q+Ziw)txR-4cST#EnScg<~fZ>R1sjJOjT!A2W!g2avmv)r03OX6e|8q2Z~ zA+iYqp_A0uM+TmGv#39YqH@J=;>>q=+sLZ6I5z=>`vz}UVe$Fmv4iom4D0OQa$@p% zvF>E99|L_J+4LF3Co)Q5KdhNXk&&qnFJRN1^T+RyCI(|5YRN3!#c*l{9h7I&Res%J zxFD3wfWQKky-3)tLOhL$EaKDI7#?n7^=d~#JsRxO%boPcsGh_-Q5V`tL^~bm>2!-> zGV@JwXWkGGOz1s@L-H)9L&2~P8Y0J^(UiqmH|~5`TE}f@aeJ_w@hq^pJ>ZXQZZ9xQ zB-ur7XB1(zpqbx8=UJb!65r9o3{_zno&aM~Uh@r8D6~IhN|gw;H)lXz(g(0Lf$b0k zJJ?kzUSS5wA=q%1T8K9~i);_di`X>h*##sNqjgC@n#V|(IgPyZ42@r+E_VyX&C6oy z-*yAR7!8ooJ`ZTZDOt-&Jq)}dzLM}MBYpwbEhalHIDyWBF%ZHS>m;x|xN;L#?U50L zu!Trx(T>(Q_D})|2{U7|wt*IqU18K?TM+&W-!Rbsnk85n1vZ8n`4nGj)5F^M|3ps`oorQG0DIM8JQ=s@%D+Z9IAn$4= zq>Sz|>E%D>hfjJ;mLIy1yKeAxHY8hg^%{QAcRp$blSxQw=h$bRUCGrcxn^ z1`)r&zwcO1l@cj|1*B0gs|-7Nmm!X&NDy^*jmWEtgyl~MdVtjqzo`mR?|Rz|Cpe$rW*<%qzFcnAv3u#I^XfqE5h>y|Lp*xa(?U2maF+YO!iQgT}1mB zX%8|@B=y2}@v|B6CHMq8a>ObXoso=C{!K4Nvj}#Wr4~SACj4|3nx_#Rk915$*fiP! zkNi~c*yo-TISwzdAjB`a0cD5G^rRa|(0K_bfU`_6N`ZWu5u@pY5NY$;5ez&9zK(y` zGY^p$BTbtzpLdVpoI=$=kYQI5?&y*17}#H+zFNmPtjt^p9^l~s!DQPYV&wB~F807* zBur$JX1!a?L?#hxw;;6icEEq^K=|H`P4%2rZRd|>8KOYcby}TyPbmmUcDcqKfed7^ zN5Bh>Y+h*S=HsrmWx1ZLiek|L&UjZ7kR=t})p^M6<8DDSkTKgh2+N2Oa4pKFHO7~_ z7%v4?Ei(Cr0V6j$#v2Bp^d)LE?bgr?e0ULzm0|f9dF?UzV%xoDXXsBIQIl-#6-uM< zSadYA2a6p5vWOyD=`nHLR{K0&XrCr6xO`xV$RTvdrbs)jalYlku_wx2eoRfzw3d|% zEwG^sPhqWpIC@tIZjH`3%2Xd=a%F9bGH^3=gwMSFOwk;Pj9g%U)Jks_`l zydX0H-5}F2vphCYrCJpYr4uK~!a==eVApI|n46pY-^^R4d~pqH5}zYm4cMB)IwF&y zsqHdh27d+&6Np$Pi-q{l%<#BF`dQ+e9Cd?P#ebp!dO+8^%H{M<+XzTjPlD;7hA0_-3Ld9d7B$QXbfloIJzLw{MhfX1urYr_gjwgf^Y1o7D+ zE8C@8BGl7(1(Z%Te;)cYovEyA)HWGL^Q{QY% zqxX#d8A5+8-H95pV=`Y&%EFuAWo!7kH+c(x)6cyX-n};Ig=T;!CE|+z^7_EL=Qebj z!H;O1>N9x03pm!y3jO7@^4@nemo%Q0i(rq&=uiN~J=IJ+j0h&8Jhw9+S9|&5&K* z6nE6Mp{2?W`0sc}H&59tLPJH=-2}+rXKs>Pi5S#qHxDZGp9;@91VJD*n7^c;+v_fo z5OhU1vgd7LmuK#g`#2nei)qot18{^&MnW}c!z>BNpA7cp-;Pncs zyk{KKEf5zOJ0E4oU4X(S>9@NCU70V|#cJa#H_~@Y-54Z=~Km8WU{kaEN}aFkX;z z@#>lUYJ+pSUP(?(WgU|4$&kHE1B!S9C)O!QW8yva{OyQF6~j6u-k7Wy1G-A)_%1Z? zjIVd}rS+<20$yrQf(!dYW!glz^`y-HkgX${Z;qtxC31Oq2ea#9k|>rMGeh0|t`D{r zjEQE#WGRT%#At|gxezM1c#>%#DC!`MOKQ2vJO?qn7_0ax;uG@$s#d{jW-bgdc9eHC^FhpcykO@l! z1XM2l!i&XW@w%0%?ztu(1f<4vYucZa`-=c?pnXK{gW(*x6ae zF3nIdQIQPDdYz<{&>y3;k&~MeYUV31VM&U1Hk7c)Nt~qC?sUA0wl|(sG0v z?;}EH;FSZ0m(YXS@vVpDU`Wa@`cLU<&QZV(hn7v3xa=sI8K&))ngL13T@hYaqY*dW z87Z=cdN^B_fKRK@jLB|3w+7?KY=;t?gF)SaN5LlWV&P!sj=aHNZlNxVt@aAUnh7!d zK0u3s`ngud6R*C6r6|+))T<0hhh9oiA;OQ)Ms&wEnt(`iUEb!C`37YBLHM~M{lI1c zQ*#zza2KG)=3`VnHl8=ta!iY>d|PflbUkz>L?Dz9F)1M;TSp;YhwZN;?e)I|0PBBl z^VQw)F+*uO-KA$R1{jg{JCeWu6;oPlZ{(7?f-iKMR&AKoD0!0lL!=%IrYRyD!Vz9A zkQpgZnjNZUN~B@|#ss+tK#Gkh>dlC+fu(IA2S@WN+fNF0#nz4}EpwbXY3fOFzyfwN zV!JFh+oF434yc3iNsxIFHyg@1PTuT<9GEuP4PY{Z6hp!Xbl~pDKHlya?cE(Q2VMK4H%GaAU99}Pyq)Er#vwvr zLbus5vC<-zA$c;dMc`o8qQz(@%khq4veu`o09I!X+1MTZbtzKRWGHP9V-k^s5u~)^L`=DeL%&flVO$7$G{pSD_yP?|*p7+AWs*?LF5I|nQ9{Op4jI>j_i)1+ z;<*Z_kWQp?ekhzgFmx8_>C3tr9GTgB`T&Jt z2Kj6F7+rWGW89IS3dhZir9%;$~qNb>YxFh}Qv?V{8GmDdt zgcIpZdeF3~nV(`OaO&0G(posjl#zXq zimgpy9f7QpvVq;5Mid%>=q%cC-f2m1$jLnz%5B5`(5z~~9hwbzi=G9;`VNix56P7H zi~e=&(6QX1Xem09#6a7jk-kGy*A9)f9eNXc+{~TkjcPS!S0)+*fLkxKNJ#9tcWL(V zcPVMw@5X^2x=F8BMe*tr628(2hZ*A7Eg{7mplv6C=2L91YAqs<0%M-V!(AlI5kz#1 zWCrI6sVmJG7CuKAt#(qzK}O)9jQq-wI^ie?YXj>veAO{Q%7p1%WkTQ{KpY>iuMW>S zVvbh^Eo`~nE>`Q znp8&-{xi~9J+Vs!T_Z=j02`XnaVQptwzgyx#pMF70%~vt*uswhHkA8-sZP%$)H6rJ zSwNX!Mx0!N0*ECup_eAF4dRCrP8TtVm2VFVADK8Ggsn!zOt@g^B83rb4nt{PIP%Ge zd@%ur*q&~f6N_k?BD#x=Vk86o2yaapx+f5TiS7)TPGsQIIja-$G#=R-QDe|1NUV#l`DuOZ+A`cN3u~h&4ibGW#RAt0BP!gxzL;kewUf9K z0f$tJ^yhK)nw-cZ?J2FEQVzyuwG@nJ41Vz(>d)iqHMJaSPighUEo&d{U&rn3?Wd*r zBKC76O(HO#pNQFg7U6wxIzyYV&?AX9qPvFFXR`t_-J#b)>qs0BUdG&!{Ku4N51r94 zO%c$7Y@$R}PAMk5^`zy3P?y#&5)#iA?q~urrk}+_WRD(~Leo?7O1h;G!N>S87S-9p zVaz8Y?dSkd9s%KncfV{x?g0gSI?(X0-RJ0M7!EX8vl)(fny|2oK|aPJI0zHd$x!Gr zf`MQa27yqEq$KP@)wN;^!bx@T$81GFnq)S&;e(Q8VCq2})x$sfc++;xr$YS@0>-{M zA0sZJ-X+3)1LUCEHe^f?lI2l-*ATw5(c2w%&EtS{QrJIk8oWUHc)Ny7$HPvW<}5gD z&zuEA+%Y#C<>9V7hO8<-@h$T&+%caJLr6FCBjN#oxfAz|I_rm}p|dm+rTZB|1Z_A3 zj%r7rB=5K=GK)r{*4QkHjG}nRMR91h73ghsT8B@HZyRZR+sMVYxeBAv!F=10n4*#5 z+w|vg^_uxM?J2FE1mC88*$nPwr~LJlh)t%*kqIaUc zF}%c3zT8n3CYdXTG}hek3RIl|A>9IPoe zKrJdwD)Y{$;NYhb1*V9V<#2{xKeb?PcG>w!V;AU65V_xWfyZV(>6ZEdV~%CG02u8t#Mm!zD)EBAapsTC z(TxW0Tu0{_xx}AB~Z+?5V-flr$VWki>co| z9To)$vvLrfr3WM`>Q<>rcm+ovrrFkf|B<+3>05eJ-#x|Sx5XwJ!XJmrH&%S zMG&b_o^;D!GGEStOb4L~f<^W$Ghb^}1=Z*Lv7yLUin``hkGg^OX@Lp>$~n_Gekt(_ z5k`KA2enwT#4uVR4p2^z!RG>z4Ni4d)sYl%K^$R+sL`cNRN_bywWOtkt7h9`o3V zd6NGXVJV{O>Vku~MrU!AeMHB^Lq4qS=k&u7a}F#)j{e{sTzAPc63$CJY=u`c{^x7| zfk1~k4-5c+{<0%-WQj^&1Q7N`F-ak5DN@Z^*`*>gyVSTTyA)=PP+r(oMkCM6FGUVy zv!L=BMC)+mRmY{sXmDD29AbdAncpEN)pEP}f5QKn6Y!c@nL@$3`^MMIUr;RdPQmxcY-vQ6 zCa4ickKu@{(GzWMLq9qXVvM5zqZ4_VY;RX&BG93GLj01lIUSyZq&OBIQv3oP?jo8{ z;CD$ad0TGR-QsHq`)Q_}Xg?jybO8=;M9zX}ml{-Ofb6WE;~2*Y^#Uu~MFSC86;~im zEGAt-+J{5bOh@Ep4@^~P1sxz&X;ShDolJ!BO(5V;7bB+6GUunI>}IvBUkNF8Db|e$ zf`~d<1dnm1Au^6jHWeFN<6*mU;ZJ2|u@~vh@wUd|H{y~NhKV&IHc+RDTj|%wlw)3o zJH!!^U_sT)NDJJ?dBT2twT|uK@F?Zzjp2A=Zai=9n{D>UzRp6ZQe-1DN5e3d@VC3g z)#CJ}akYeEX|1uSbstMt0JI<^VMyjKmzhQQ#voD7&_lx+dRTXcZe`_G#cp1_J{*6^ zK#ff86Ji@>Qs9hYoZ!BXDHU8undac{I;QJHdPZyhJRp^H6~2Y7h%*Z1#Q(@>6jVMT z9U;n>C^O1N(4u3kqQZ!-PVJ`2d4L4PP~?cG0QrbwC6DSnMh*M7DW^K7U>p<}Jf2|N zJVh)HI0tGiyB%fY#b^q2vmA0X12lzW`{>wDC}_H9z(+AM5y2wRrC%5Gwee+hrI2gYq|yX6TqH z6U30cdCGz`-*;(AyHa=XU=1RKMi0K11%o~p5!6t z^B9CiI5E`I$8;bj-bjTLjYtEe2TVcAfd)KdrH>;UWVA!`wAjN#iVe?8r*#i2htcvQ zV)0^mUedtEs5yc`sj&GzC6qM>MB%J7vgX%@gVD8o@-f3Jc?pOidXJQ3i>;?_@#(n4 zZwxI6=ciBfj8n{CG|Rsti6lqc-gLV>qJz%Bv;nOV-DT>-BIn~!Q<{-Ye2F9*wv2uK zG`7WPbOWL&g|>u!mef>35ohP-pjIB<#f?!_sm04B=1MyMCaknquRZbF(`d2r8uP|5 zU6j>~#=Gb}8T6gf^^ImxUB@sslNp|kt#pX>gm(25iJ_e#k+Lfe?YxYpr2z$doW*z_ z5}svt4EWRv6+fn20g;t~D7G~rF=?3g*XlsA*7J9TKg$=>deER+Ui*E7OJsUJ)s)|3 zq)a1kq?ZL=R*wA9JF1`9^~uH{(#wDnVIsk{eTuW_5}H+9HK5GRMrShdH%AG@^$|B8 z0a>9jmlzK?wH_<~6RNEf6R3GMLcKd?CqhrysJ)xUK6dG(wU?Q1T>Xi_rs^5H+B3lj zwY*5KWrp;|zC5d=(+c}APGXm2W3WyeVgGTpxqF~(yuPrn8Dqf@)zzu7o&3@?3?tW> z;h9BW&mvoyWTk<^xUdxc)krf$hZBXU*3)~V9x@CjW}u_2E<)&1E4pu z5(|PsXvrOWZ_NUMd?1aHvtrWy(rlgYx<$55F=?}v3en7^c$Sz7?w!cBq%_>#+Jg8#K4#&QdCXgNhrb?i}<#oS4B0(l+9g+UKW#$pO+mr0Obq4 zi0nL5u;VyYQpD+^#M5X;iIv7PN?nMr0yG?9%c=`XvNUw0r$RxK@;XPRy&$EEjH`~& zNSQJ#Qd_8!(sNj4zVSHpGFJ+#8w8<kdn_x<-}vyM|elOoHCCy+cF!144;+WaT&LNHwl96o_$vQ}c zC&Td>$8I5ebaLKdOZDU;MQ;ntotDCx0PsZH@QgyIwPiSO7`V)Uxo_m=l@JX*a}GV_ zp~sG)qg_9YC^E1=lB53v!5(C_!FPr`L0xQrg8Siz+$>*pyPO1ai-!#GA!9%D$M7qj zWke}Z4@DUYQ(<_;cg-NxB$V@;?8^d7=oj-n7e7;t*r<`A93-FNtUD*w$Pg0}QJWyo zrF6r?4Ul*jnU5pPjg2AY;VEM%$(I@4Aw}wOY&;;ORaJC6)t>^oebS!;w#gfe>6tT{ z!(+ma5jEXmHI^$lkk*qs%V2l}8M_&1Uu;`OA+5K~W8=D|V_ef<*_HPD-lVATEX5s5 z8H4k&#$=01^qHv{#yz?k8)qKgMvimq2@$;Cb;S~zJ@aG^`s8RazKv?ds-05#M@ z^p!|v5!n^(Q*!Mc0xN4t6-}uC5cV7^4y&iS3NEE24bUd#er;90MHlfbYMETX_aShS zTx6PmLnIQt&d9JZA-fnna7O2Jy^W$HMrh$=3*k8>#OOfNH>>%p!r#nR%kA~-?%FkU zzR5Ut3wt+L{=kt`d-E>}85oieZzvt7MX1|hWdtBH#F6kN^ZHTp;8aAvCt-d>na3~* zb8u=JLQuxCSX@s86N;%u9>|n*Jydy(=`t~rX5ks-7bahG4r>_uoKJ&p5(5r|6meXz zh;$#A*abyB3cyGv4X7^W$o(zGc;x%Kwtda|0|c5+TY zih|?>$D68i4RdeP9V;F&s4$8}Y8edjOSTS_mVgqFVB!KYBnT3EBielTI1DK0OMTHa!E z>qE`z8krd&Kl>#3q+NoaVTL1=P0o@XdQSQYn`!u|dIYIu#BVRscl)N+K}pm`x&P=H z6Cp#LY!Hh{X*b>;&pl)ypdu0T=)so&0P^Y6-T0d*T^%O##iCgKcY=yN&ki7JhsqQH zvMDh6=k{jtiEIH>+~GUoY|h3PDMJGF%A`*Y<&PNa#Hj8-YrB%&%t=i1=wG(bpxlh) zhJ=MF$KLcvruy9CTu%h#U!e&V-`9MRZKXbZU(-A$!eYKCD^HkF0@_ z#k_6;BTeQ3drgyh=rQFE+s{Q4xG#&V<*NAO_i$``OobMZgIUHz&ai+RT8;rTjvq5d zk|#im3hP5aJ9a^~?u#(8;d&DUNH5}pAqzCo&tD#FX4P^dVrc-AT}s=t<{)Ql=XXK0 zhX7bmB|pnx2tCBeWyOl=5|89%V*@#zg|=Z>Sch?DS~1{Y?PRv#{knipf1vUc6>SEZK9^$+EqzBAXOZT&93_eoP#(wsP&*iWVvU ztjMRG($jvl<67Us6b%M8sC*m(hd&nk4KG;_+I=_0>Y6#+PeY91WZ4Pe%`Dm>yFvB< zF{TwBW8oO%I-x>q>@f#7;3)zU zW=}UF4_0eRY%vYQx}<<1m2Vt59SloUU;)YQV9tXxTCVcdTOTGiDQ3%ZdPnsHT}h$- z4>=Ve#8&(e3=)JPqj!~BlWq>YA!oby5*goxl?ped7GrC7L7TzC}$Q8?6;xFOX_|*tbOYiw~99;2`ujh={bOU zvwY*vC(DIjwRw3-e?%BfN_>nrT#+eUQiy#_X_VQ4YcM{_$RAG#cuE5v&j`SwS7l@MrAF93|d0D4eA05Joz=r5D>@H!Sx(>TT z+Xvq#ZdUnX-H~)7dIvE(Wzl6D<1qafi9Bv1*B^=@L*07_=yr)WxzQv1ym9bD91>_1Hsr}63j7kndonZ{*$d8B?jI0Q3vF_eW z5v5Dv98cT66kz~N2eOexJ4Qr~M!Jt49+VJXAfoR2Sw>w$+s|}(1B5vpPjsbDtM-x0k6t^#&^@P(IDbMW3a|V1W6OdZNS`O zbZf(C950h?qj4(p#komTHo;R8Bc@?)zSPomWv%hy&OUf=!U}Y7zeTsR44rS;dkLo- zQp}u0Bw(eys|j7=W8kpNl=cUhfIwWtW^~Wbp1T-GUHIY$CIN(-R z)`_3gqBEFf@}86iemG~gT>w&cv16ei07k3`HOMNmD|^(Fu|kQvUw122=1-QJF)EzL zUMM|h(Q<%HdP8(e7z=v`f!g?A$$@G)B(lS5ji6kO2NwakH&X2n>)}{VtMSn7c$8bi z@na7E8k@txV5=TSU-i)H8tovEKvk}(&2C5(EmGx4!HM8d6*0}Q9-z)ho%#{if$>r&{I2RiCd?$y*((*g&rM-?y{|mG|P9_ zxZ&cE*!K12jPfZ2p7c!1?3hP3*+SFD2$F7(@VClw^D4$2L9C9ecT3M>?a z)rAY`7y$)QvqNFXB`K%GDBlKS4&pD2_b`wHS{6@88#E+;Af%ufhjM)Y)*yr|{RG zWL(cfC;d8KExHADq0NyIql6rpFk22qC}@s)gFG!IK;mq#B7t)v)oG!~B91mp=&L*` zMM!PGib*YFZY!4pgNRM~Lbg#EvmB-$1qJdSh*{&Ae7k_`A`|pPS_*ehMpYMG!A8d;ChH9z~Wc$~}rt0A5 zRk=1AFQ)U&a#gjDUrbbWsQOg6*ba<#}Ul%|B zbngAxJNg2vuD=ld92t#lude2An%dyE_nl+?eqJKnj%2IQk!TEh98A`0qn|mdQ;Mn| z`TW&a-e$Ee?wjDg$!~jAPyMFF@x1w!*K;i>*ZYtE@IK>?^lwxz5`YLH9R61OZO-$) z`uM$9lo#|IuKxJbk%dmfKCCp$oMnQM8Ui`R#47m{zm;ezm-jc+rYY zVhnQdPoGu*ugdV}B;WLEh$@>qHaCsx?wjTE)lI&7C9tE%5(>PjZI=o>(24x)#G7na ztG7M*OeiiN`d-yqMV>Hh*Ry4F1Lk|Z4Qv0?zr6}@)>NtqST6?iwJiBzIYs=fIyYa5 zj_j7b-+!<52Ce+|{#b$;7u>3FFVH#?Wd;TN+b@5eZ)WqwPx<27BwmveQ#|~w@9~dc z`rZobR1?Gbaj!~$OBfaMZb-)o;fTi!vW*w^*f$Jj*VF>O3F^X(EjKaXDXX5Q}Y8JgMQPe)3-Y7k(o*+Ud9d z_4LQnZy%m`ncVQ-Jv@K-3<}~@l|1?D5AZyc&kuii_VA|@U|nUw`NQv@op{kmKL7OS zFK1XVmIc(uH>dDX6w0z^r{A1-s>aVh!n>^M;X8OtLD-X3xF38vtpCOvuGKbQ_G+_H)`zb8@K9B zKJgwvSK>?WL>mL1j&cy@R(G;X58-e?%cAd*G~7#JDYbp%s&l`&jc0J=-wRutc&4}l zlc|#Le_Ad#2IX5pLEi(0UxUT#88Rt7EX3*3-_MZJK;1?*!W?9eTZBbwf&|xaQjdi? z81#MY@j$+!KZDzR1#SMI)wK5eVq2EAeTYL@Ez76!z%xLhj={d?;y0(un~E=h2dI@# zW>EBOxh&TMd@xu@u?jceT5Kv|+uzcXTzs-mZYu zVJAn&6?r$u@Nfsn@?=3nd9vNC=hLFj<`uh5jk9Ai25$x%pr|~Ya=Ey^#p8kpCEkJb zH7(vex#}HlmfOkf=$I-GO%jHqq1TAG_#yrV?rQkrex1+>&~fki3NW0duZmq5Se!wR z+8Zd|Lw{6U>mhR22Xu{9RmatXt6SF^ktp?M^SD@Snf^M^X1B38DYVr0!-0|7LiEjDO z9IU+fkU_Wbs#n!Jv;{G8VW(al9q04tzY6=-?~~q#9isX-(~+xEx-Sz))_tvjhi37 zAQ!4E=h7^gNNvcI=yKD1)05Q+*T-Jx1=;l0WlcPsqa)f?CHEOzg_g84Q&7b4yzwqiD+x)ae5euG;lYn)R&+BT%zy3nM z&KJ#UIlY-=1H5)0bmD)Efi!+N{PDG8Cf{U(?BCam%c9xOK!q-GikPu|r^c^XMMyP9 zB>P#jDbodCSrjpOd@dbe@Ns^yR8Zxbk18&#n@q0$n47kP`h($=mS=7UtePGU>n{%0 z9~7*nNfB7L50S$rY&P~JX*V2lxD@uMxUw10{q#XpBg*t|*A4RW-Sp_&Xjr6T1%cVR zS;?57ZNXnU^r;%`9i~3u@SZK|g2;!uklCz8fkK4oCWicML^{a$MOQ+=F3LGlgzlEf zGhDdlEe8^omU`C*stoM5teH|BRY$7Ca#O^6n(&%01~p{GE7dF>K|9AF4e!_^g*qKx zPL-7Z*XeRGXEp2*S)CzYS64;-Y}yo{Z-F+V?J`&^E!&G}!H$OSaN-W>+SZcs-5Zy8 z$bF*iaM;fW$Y|8+)(j_6NU!jL)mjbt2Cykl)tNmf`YXjVE~`zWGuw;=VYqh-8{j;g z@PcCy(~IpGvEQ^3FLcurt+WlWosG1^%f%F(`6rf1_N7vknb2vvsIGK3aL2-E#1{%V z#$4tWOfxx*HhDvqtjYk_n;J5dId3gP_Xo2oVd*`)042gamyc0=c#KzQrNE2$NWH3> zh1M_YB1U7WAM_rfrU)i_MmCEJ&}Vo=5@7XgzbAT4RE0FOjO|k^W&smQUh^O_T`OB; zWcz>QS{Yx9MSh`0Zm8&ksByjN6R#4T)$zvPzfo`rVo>Irt;bqSQY;gnYO}lI18jR? z-5;Ec4ke7lZfl=b>veT$tE;_Gma`P7xM0PZWFx1e+y5#)RJaqvuC&&OWe2Q;e4y9D zfwf^)+q`Lh;=5s+vpz>Ur4FS%eNojzw>6zzzXziyy7}kz z^gOL#F!;pNKUE3rOC^{-KrHdID$%w%QSn%8;D>$>e0vs z8ez9QZrSrA7Q3*p|6Nbmg8AB1I@(1Y2E7`Js@_cadU194g1Wy1Rc}Sa5h*z>Qn%Ff zt2QA}r?6=ECUQ6hMl)MhWdXN?If#$LeLR^Imh(0h~#GJL=l4=lbAkPw9^uvDcId( zROC|8+M-k^^pKjmv7yBbNh#}mJ)%Y^6&bTIFm!2?Xgq>GM`rA9rCkoYi}V=ud3Oo2 zM?-y}zYQmY2#7`uQEM+Ja|CN;@o6B@-(Uu76zpuh8vgzTwl#>!EL?IEz2rgw?fElO zz6i(Bh~v2(&x=$!07vC8XbX4D{pd{Ss>>%hBUJlR=_6DON?)`N7ITA93Fr{538Y5F zgqbo)Eu*5=Ps_yI0ag{2(ZacEZnmkLs-9TzVA4$U` zD=pF)0WU7$1h70hi4P^39&1Cvgh%m^*JC0=bq$A zXUl!q+`G7XkV0 zXB&^P-q^@*4rp^~3|=M~vsl5SOsX{)@4ei=f@5mcfU8Z)3gV(344FxiG36w5N7~~` zqCj=IXrPO~6tj<&UIKg{vgGd0XJ$b9ZXi0G32;aY2DKYuIokXSwcfFDRx2d)Ku1YR z?h7{QT^GEm%^|SB(I!=rQEU&xprkdeZ0ehbmL{VNZT3abQoBWR??KLPH=vWf4*u@7 zMgBHdmpjt+k7cGlE_!fvEEKSH44h6xn=M#+Ow~ywtm_-eRLq*kj*IJJ_N=bm6jVzEQ zUewiky)5QG#YYRhK5U6Rx%!YdIxp5sxSlJ|!-0iImpm!0$9JTFJ0PeTvX@LZq8F`s z_*r49y2|EYO!0EFT#-wQvgGB2oS&uo_%oX#ftDB_g z!|y?b8yW9|Mb>iU>`d-2C-h;IuqBuT&!dC{J_(+ExsdE9(VG!5^+F^}><>9af|ZM02d zl2aL{ICIsap7Q8&`e3sHdtfDisLw;e!i^Y4J<8A^a&3`My_(id@p4&B)tRzsP=?-ZvE;A!6GMEv zSr=vq%!Tg!ye`fay~-5ivp7gD>eX_-%zY8cIu&WS+BY!@KA|!yK!Gd1AD7+$fLKeR z6(ZK2ElMS#KUUbDXdJyN*I+$2%Jz1LqJPwz=^JZa_ZUc5RfK=P(ajT_j=l%MCv^pYO|`1KVgs z4{5!d%Qgkx;}Xt>W+msr8zi}j`{lp6VNd)|5^`dCJ%NA101_lP#{%OsIQ~d%_ga>5 z2amCIQlfUl)qZRh$da*U;m$&S>mh!1z#S&AAM93cs2zKmHWj zm3~_23m&jkoAH64)%pzV3ynW5imMz71{lDiV_4jv#cI}5wXlwknLhI@GDkxdEpJ~P zC)GxCHjF%bpqz%E!EDsW5osQs9ov8@P`NEO0)$99tmHN7y9!7`f;wdH1{4A6xiC3^ zSq4Nj9ffn3QlB&(B4-mEo)rbYT_I?tl2CJS$urO3s+GI?*Vz>TW_iD$O-}|-F{uzXFTo-935Soz8XaltWy%oCBMl}TWss%3`l(=~cJ%BJBmUEOyQw%}!rSMUp&*EBbk@Es#Jv}d)S%I+xy2&0SH~$e2e{iHy+-y3C))Uxf zYBMz@uT-#B@vtPslv1o^x}FA-KGw7~n7Jo!bYN-+h$QtzYfcf|Cy)T|ZZI_1|SNkZ6J%!{-Yg>B`5wL5-_QQ12!I4p_?+_jS@}Jcj$(UT{w+ zj0hT%y_mTwr48jtq%%FBV3dLP*|44w3cZ-MBfO}^i!`4WCa50ToLG?d(kfy?3XA4Y zF%bzHpVvEVPk++QnrZ0-=gW2O7G}@>6M?u0qk#BqMg6KgOGtgQWic%`tCyQV>RX{1 zv_18Ro2#?8N69@U5_&wO2~xWXOrTS@7wOhVU&-FLBkFX475y7CqzM^Yq)2jXQEftS zr~@SRXQswbT!$E&b57`LFyUu4Ed!b9hxO$$AAE;jxY6IEKTMa)KYS0$p#QpRR^$Kr z`QROBYQB2_g}?W=S2{;O*7>NS} zj5wx(t^&7q)hh1nYO%hMdb0ObO0X%GQIAq9L8cyfp%qR}Q@vmr_L zAwyf&(3)YgxlHe3*b~!-V^(J^WWE*VI)}r!6=65g@Tks&aE=y=5q1ba_;^yHz-l%s zX*gGb?=^3eMj{Ogvi97wUvVK$DZ~mR5z1ZHoV3g0>V0|6g7u9xePZAzTT~a*HqBs+ zMtd7&5^4GxU|;6DANj$Bw{Fx10pm`IY}j%cfd^P>2L*uj5%r`YXbrWLWLAQDpgdF} zX*kH|Am!MDxRZEvtkSO-=4z(OJk@D9HZ&=~5kuvs-IVWf}6J~Ju_M6u5M z52XWkgWeE)JhaEK-W`{A0KLh)mAw0qv~#AE^~^d34JV;!jcvQG_NDQ>tivn;+YSd+ zq<{Ur#uT*PDq5g|7cXy6C7pAzmKE~^wJGQ3+F1Xl8tE&9jj6e+m0_gc1#OIjAaM&L zUqmkTeWm1Rn;Xp1}MyypHPyi#{_@qq2SsJm@?oM&=hYEU#5T=fGIxUJJcU0uZ>f;%z$aKW_b@imK zr#GnG2op*~Rq*e)fg4<6a5c(KDV$Rh89m1zm(%NfiWj5z{e(!Hh3zK>X9=_#N7oP&?aB zUa5JY=XN=3kFq+(o`+yo1s%c8W3fotie2P^;YkmEf~Z+R-F>FVP%m`K0ab&Np8YbO zDahB>(7^U zAqXNG2(WR%^x#P+4uKMXj=O3t&H{e@UQ0f)xGjM3E|{Ry7Q5Zn#jh8<-EW489a>sR z&*CY+b0a~st7Ec$ zvCI_vll1@i0Ys3Fd?#o1^qdGEdMVhjIxo#fzar3q-FM$=;clB|A&%HRo8S#%(;Nl5 zbla9-Vg>#?ueGI!2j@Dbp=%}IEElsP-yLQ5_asA4*k_ub%JpIyY!aw!*ISP$VWSO@ zNx*gQp-EbVl_bj<3$WSQ8ryu*x!N17zT<+*6K*ct zMOxIBxS7!;eob{eY%vlRXi*1C=*Ctt6Ylp$Sy82~^CV0aBBlzBsbV&UD{_0LXh&P| znP@8*+7tv}=e9lSUM}ip{mfWMb!#xrTygz9wAhE2+-e_z6mX`ClBA>z5>u_sNJdow z9@!uE<@9qwcZPcA3m(=_>p_YYe>zy4E+NZ|E{~H#SeO2ou(ONsLkH{X2L8C1;HC!0 zi9RWm+Pes5pfz)?I%qvvE{zn~*zm7mIFR5<-%iWoZ2d5&To2doh%9XLBH;S^5K`zO zVw55yCdbsJ^UUb9vc*5mPK?b2jw8k#*fhfM6SiRiiRDCWU2%{D-~;Fasmi)%PvU0w z=$%J!Qdjtpj;NT-55;w@?9+k;KcecqiTXQul%S3lTr3akqWBqK5LF>JN2tmdm#g)S zl{9~xu1wG#6Z{?H`|vV;Tr7Z-4c&x(%ZD};#J7MGqm!x^m%apgaaxm2DZ>DINAuAN zM^`wKtB?bvPsjkc888TUaMO?g))XuKhRYJ_=X25Cq}*Z-+myupg<&2ffDs zRGTzL!6QTzuo?0y$*1py2niltsVYeiRCbimu3Nv4YiL;*uP=RHP67G z$pOQLEDgu~_W3V^a1RhL&ge~xwYwcm*wdOWkG=anJtnrKJu1;4k>oK$c{)xnPnbZGz8<>dxn}{mP=LxUcB?M;YqD)D1S5HUXTacSeOL4pO3PS#Z6#*V0?a^Z!Z{Ee(TCI zH(%MscTW)*aqVT-7RzO|2_x-8n1JjWjfmDt8ePvrwtZ#HoXr>zmVtRa81nptOR21R z&C5aq7@SD;KZXZlH)?}o-9V<^n|=8ET?Pq~Ot0|fn{Og7fB1TI^YA!W7v`<)OwDmV zFN#&Z1`|pysKjx(t^tJWefaxb2Kk-LVBif0!4m~uR+wJL_<}1n@zv2af&@cUs~nRe zU+dr3Y7*CT2w!(GU4qHzdfsOVLaQ$@Lw9O|w5e?B*)xU*x% zb{yO1eO#=b!Nd(H{QrDe~=CFD0w` z>dKd$vr+yJFsaB>!CAf{!% zOmw5y;KK!lT&vgNB0=}3f994>{6G??5PE{895>gr(8q5kY>OUssp-V^x}MI~?==o1 zgg2_gMls1k{SCP`ShebEeo1UIAI%L;h}sly?luv)!a#EfjlnDwz(w>_XpJI(UjPH! zgOy9azB$j8dptM4NmKc%V^# z1L5J?3RakL4?(!0uY&Z}1(eqf>C(lGe-V`R)7ZfBP$eHzsz_17Bvq&|g_@gi&-Rjv zE>AIP`BZMe0lyjZE8*z$yt+(clQTFc>G-Qsx65!i7-I0-)7VAgaC)8()^I!HH+QW` zzqgmWN(KmCAg5rAd=Da~Oflg^sxSzcIjj^8zQ%Lb{ z)^l_tQ<4UL=U3@)mIfS&@=;tQ61OOZ=5n}PgrO!g4A95(OJ_{Ue>l8YgRrh!6k$fq z7w81c%v}o9XL+Jt0gM852DDu!ndy+k+97YM73j7sWH79G)L|F}i@hUNuc6|6q|O4o zu0r;8n34~rX1A`L9K(bXDnCopaeF5YK*@ACV*5xu3u{;dJ?NkF3_FT=DVgd+iFr5r z%$8)|)T`q~!efxjI8ybYj#e0G-Po4U(HiMK(0zt`3q5g~%_+GdwM{U!3S3;Smc=1G zl-l0RikbMOWAAEk7AN|TvkP3VS!gkD0WK2m z-0n~1>Psl@>29Breoc+G-(rDJwllJ(a=ZkFqXBA9-2XnJ*XPRjTr$X?VBc4AEyZCkF9iT^qB z-x!i7(HmPb8p0%gCDAN$Q?Szz2A-Hj#gjp0=La(mfwDD6*`mP}_{{IYoP=EWqEjQ? zzUEQAeDjB*mh>W#zzBgjS zs8#?6WI{S~y2=7Kh=@&MT zg7C7XydC-MSMXS`CI=)^s{+^#rmN6<2w|V<<)ES-ML>0O;SDTyV08B`N zx7Bjcek}{3a&Ig@0FZyKLCCEe31azD@Uy^PE(V~`lP@LxMI^a+YmGa%TqFb@VNTpU z1oF<(6cQz#Bc^$YPIziK!%=Gy9X!T%F(hS=sjw8^4h!>lrRM71LpD?Bn}*W9!d-Bj zy~3%Tn~-2jz;3Lz3uet6L2)9~cfqjE=Q_9r-y7Y198&Hw;C<8_ELM;7kT zy|E4(b1N=+)WlwXKUgz#KzhD=bGt?J3Vo`aiQl66p_oFH(3~a_xn+GWIf=J%Y0jBh z+}`Dqv_XeqjYw!W-VTa&J`omOYU%99x+4O^$m&)EZ8BW6zx0-?QdAxnd6Y7ZV|hn2 zEjbaQ4;@;+LS(37ND<7?YBwm9hXQgBnigTx1Q}}}b%g&*ty7A_y&7^?GBkV#AsTZT zQi~STg4`{3C}P;dY-Ld=vNe)4Ne0kb_h|PxQc1*GE*C=b!RQ@M{(rRrQ=s} zY&q;$ttzH-2-Ogd037Ji_7_$0T8EssKk@?|xj{sBX1c0@AM1(x1z!je5U3Lo8#_*@ zWVF0-c(Exz=4?R@)5-*NYH1~^#G%xvI*2>~9!U5Se6_5X1w`*=u;5jyw8Wz>f&OBD zS;ct+&1)J|>7W=NXU1(OEPDuzHkR&_VYq08#b(y%M4XR!U=cQK(f0}~xZnPY2%11?sSfl%lJ8u?w?3xb;jg((FyhOR>sIW-0yGXiiJXWt+xAyrA?LP6Dv z3=apgas-0vrDsWr@b!5U`NJhljBtuZ+4^#2@(6|jj`9J&&)ULbi8`z7OS;zB+h)vM zYut!LHHPZg&kAvhf#Hu$MiWSP`8ZewW1#)KQ_a*fPzPV1RrTf6O^10>vhm6!@WtfsNTMSm17! zXwS=Mj;cH{--eyqLEGrh1L3s5*{o%)$+Mir@vBlFn0VwOeYCQyfb#}E+1&j!hPEyW z*=#--vuHX=kt1;ia2Yn+eGVtj!2pad!iKk)l-6l!u?nMpg`S1}N*2t7FCMxl7qj5WRvZ1&GV#tQ-w@!)($Sw6&C_Ky`#3Z{%qXfs%3u<@l=%bb4v#RIgW40o z{vY;*0XPN>j)Q<<-1qNk-LmZY7Ma`&77d67k)L9jUNL&qs?ws`G{%+8k!tWhwLJJ# zNq+tUV>v~$F;2}XhKa!e(wIxfFWLf^Te47@Qh^78Bm@=T7dk&xOs$Is$yigFQyOUc zrG8?JltJ^Nb+XJR@+6w1A;{6Ie6+sZ4eadA*~!IzX9O6$6!p@v{)aq+0>=WBzY z1=E^46vCr!62Z+S$fOGrYIgjL20Up28}Rt5oEO&woY*q9jq?z%LJ`m}!&b~R1Pg;O zI&+JOR6Nl7eQ^gctOFOIxR^xW;?OHC^l)}tgXsDe21>Gd&I9RyfHukoPX=TM>0xNj zXWZ`}5WhzRYNCMZaLVh43_|`s8e6B|-gsTTuC9vu*;Mhi;ql$(BH|&2-ARW(ugp~Q z6jj`6Jw>%g6qj3B@RxAD18srzQjNJQVW>6+Lws}RF3+kcR(Bs>I+7-g1&+t-Ck51N zv$l(}T2mgKB(BamG zb{-CbO?#qu8~-LT9!e~93ngT*D=%z%qLxG}1}x_^WJSL6PfF>-3tMU3|TTx8DV;6KocVg#HUN(KE z@HUn`(x)18k|9IY;#41=bQfTfl#?2LS}qD#GbiIVF_!G0EOMI=j$z9qn~1%{Qp{TR zQvcs+T}(fQuW#GoyOWq2EC#+%bwX#cr5I$o2)V{j95_GGZawa8g-;A2!8BCq3G&!r z$0s2agEVg893Jq7mc5FD;N6JR$oNud4WmSal+Z6)M7zT)lhIq0BLW{L(%Ww62^H%v z+I1E>X@hTnjILP30yp%);gbw$LELk=k2>0cQu-k*(mG$aeGa6tjJK`C6A3pvl62EU za^jXgG3U2>F+pi)mZa7GnFB4Jis4JBL8V$#vomxR!^olGpzca9IyhE0scbFDSX5t=g#%HU8l@)Rue&_UXo%GZuuGHXqAEGP5d5W_Zn$6B29)}HV8r2 zLy=aEb=AXF5NzGg9b2udO1lRiQcu_V*y@omvuvSjasBOSdg5(W@)fh9#fj1^E5zSD|wKQl@ zw&oUReRMa18j`d^;VsV(3ehGI=O(s!^2WY+$b7_%1YLY#U!pxirn3cZYs?jBZwnaF zyjT`%!F~(A>FGm>AhOXiH1X+BoBet4wf!>*ElJ!(&=OD=Ak!X%*tlMsHr*(64fwKk zlR9*x1$0E=*(7ewiT17nAgjqDZyrV}bAb34!;OvM;WWZ_IN-U|s z2u((-<@~i-6&SpcE)-&X>Aq+SJRD5v7gh*AOT}o%>$-|ZTGEww%c#k5yhQX!)z4=2 zL|eEK?=1CVWG$oon2jYI{!u&BubDR8niy+3pVrpc(}@;&ZDw}Fcq=fbB6e2N7~0JY zON_nxu@;$Q93)Kh8e*E)q)hX4Xj;q> zA^EMFc#eQed(Bl$m+)^>Ek6~B3ojC~G7jo(?159cX`R>~wO}moCUT5x!Lpv5Nu=#9 z4CEoYsO`XbQMhGtI%t+njQ>lA4gFvb48{~4o1HL6(8%{E7z6I^D79hPF}SJQeP_%l@X;ylpy2If%h z>gkj~ZS+pIQ)l1cWihLk4y?VB=kz&d^ZjNjk6G@72tvM33nmsqZ!u@ zd~aO1#ws#t5ABp&l6!N*<0Mz?mH)dlrFVf|DlJ~Z;dsYMy{}-3P2m>eG&wsbmla*qW3SVc;O13na?_5$#+Z<-_eEN)$-4j^0WM)=Ju#ZFM=|E8YT=Zj(}fX7H7X;IukEiZwJpa{YF=qPW2xnEKByKm{{5i!6~b zf|dlWCW}?Ssey=XdrhEQ2ziBT2aLskD&bH+iGnT4#Nh;O0V0_%vLei>*dR23T_|D{ zOjVf=V4dpr2JFZh3)duorHd^)B2k3cKH69(pbdoa;I2%g>=Lqo7V|a`Gm|_AFW`iM zkA#)j_;o0m=8y)3z(kS}MYv~~L5WK=G8GEv!Bcmt8Uv9GDjsRN1;3zjty4)C)RKWd zjgMMNS-2;j%e9malLjV>-U2T%{(t_gq8bS^S35Krq}p z5IvG&dXO?9S!SNZwlvz$rCmq2MvImr+-{=nPq4j+RVGL2?QO^8-nLrWN?SmBrdkWL zLsr;VYfUZgy15eK1#mDn(QX&duP95&OkLP2_j|P#FO|-wn9fHKF^o`1qZhnEJE&I$ zjnkTl%i|K*X!#h*3x3c~*6S%O&BG|vy6AYlv%|bq$JJF?)YfrhNbJ=cAv~K@1if)h2W(^*&10Rbbq$D$F%?eB9h-qt zI?i1!N}xL%Y(^G6Ppj(V<+N5*TTajUl^0B2UHPzCk{0DX&A+Ylk*t=B*rbWF4 z!lVV+>8wSB*{_^9tAo&*Ek+vG0Xp8cvtw)Tf7QYdqot1%AWxW$JG&^yG>jwowgj)V zgNu4OH!_Yl;7N6?jjYp@;u^3U4rs+y^I>A78)JC;wAz&OX?>$7k2QT!T|p}QO+C}5 zv?IvD^!`U-h)bwFl`Hwe6~I@854Xn#2`&Xim>ALzh1`Zct^RkwICpn14uVW zFOPP^J8^3Vq!4aJHSK`VaS;>KEsQd!){`z@20F43Q3jdWkc z(hLPTeZ>sVE+%r2I%v0dqG#3u!HvsS61+#Y6ydR#4T8K%Z@=QuY%$g4c`(`1u`P3A z`Yae2pj*SfZ5_y(DsB9xBV{Vf}=^eOKXEWZDuCy*jAb>J_UQr4pn7Ds)n|N_b6RD z7nqddLK~`rksBK}>N*O6M!K*SivXq>BiQ8q_Vn9cLre+53X7qgI6d~gH}^+To;Ebm zrOH<`VH5j9ymmBX`Dv|r`F^i_KXROEQ zr3RaJUa`l(A;Wg+gy>KsHR8s60=&9WLE|+FO$CSTnqj}T5mRhC)%zRYGb38RjdqqX zb5#{g!A%s^DA+1=rXYSgZHg!5{KYkDCqQI)QGOaP1a`}?l--Yv#uJu?!uHc?ZD=k- zg{s8lFz7$JIiZf$sGwa>&waSgS3mw`Al;WpXz4Taqij36B8!d)VA^UXo^L%}l; znOV6u>$sKyX%4Ty!cOSBx2QRbhcWlihLKE)Xs zcpD_X6bHl&f8^Og1O};`g2JcuAplGAFD(&D)V`l#_8kpT#$)VB9{YWjUu`snU zMEOg#JY!P(l{f6LHjK3lJ}3b9$sW5Q_&@{uf}eWe&+Z(lRJD2_fKeyz1)Z3gYd3lw$UI<$zdcCUZb(7?C=-?*@td7_WFS{>g0#2M)g}}r< z7&2_CgQstw|1yZBA1tXm{-Ic$Ux3Vp?`F$|+Di1hXttw4#WA3wC`7k$%$j5brD)a@ zsNodATr0z^a+E1zKQ9lf!)hhnNlAX0=BhjL%nX|o!C5V*Gaan7%w32!fSUOi6U%=UTi+EX8CZ~a=oP3;i5c$hBe=Zw=cbw`1A(CyEn2} z9{2X7z#@3h=sH)z^3m?GanBUN%jKbfwz{rvlE7bKlB4jD(tdyruhhq;lLQE6{gd>& zS$G?!PdlSz58?MYWM7~A-0L_FyrUQqre$pgCe(f)5L74TFYQ~;)5QH6F$t1g&`;u5 zzO6rP! zVAo&Hg)eGeZSJs9aGf+;75m$W{x)@(%TXFbcBux^5D= z9mxGPN|pGISyZzG5L!$aPgRTfMcanAxo1!3^Op+x!|Gr)Et{9U;tH!Jpp0V0YEjLHj(-^$NVbHYIiG-xmsySHKi;sm~H+_~( zkG0ZZlmD};#SjBTZ@E7&W>t+M43fkEqW#}rU)0s+{34#nFFVa$=+`)Fk~lBcYqb%D zIaIM*Fdo1kJTIcH0u26BQLj&62{b3`>I6o_L;46zQ(~0HT3^Y|`kLKz01cl2?VT)( z^Xcs7mjGy5Zm;b4KO9Zo{h%?Rqn){-W@uW_Vqq5SGV zoKRp{Y&+EzI;%&DRok03a~x%-Af(wq$6@{ zGrAn^YVzMOo#QC`R<(*$1$)$Kv)XUTE~T)bh0HgqV7GZZxKftO8=WQ8#H9T2Tv~LTH7YSmC%*+3j4)SD${f+!@5%WuPll<4PurHiP-85CRF!nFbtKv zSMPI2C}I9(tOeJ0>hIW*z5olp50(E87#{R{1WK-Tq4?LVNUaZ=Gt8!2>eo(Z`aO#{ zj;z-7d#@GOc?xQ*)d_Z79~mxa>-l50GC3vcV`jiH*h$Hba?pX$00rh*2MA6mzVTViMAh zn=K8m!GFCS5juZLi{`Nq9#R!sBjIRJM&w|goJ;e$&0VUck zyDa?59bxM0FpLSq&e&ubV)mS8O2p3>n71WcWZz{=_2-*!5`n~Va*h_k{q@Qw+9SH( z{pfOCAbDNXP`(Ws0Yq;;_<*F*bupmS^{9S_m%>JQjv+LKyJkBhuofT;XBo_n2iuiI zjXTPYut>3%mKj~@bTC*Q=v<=%dqy9my@`3tu*?(Qj$-itlrt-9`B6v9c3LCrtvhsm zDcwa9- zZMP#6RVY3H>?f;;CxeI=pz=4jb%y(QF#?KCv|g|Q{mtTZvv$(Wg*slf>poDZ31pa2 zK#`~(z;n_2z}2M=Z5oYGfl@&YrctZqVx14NfeU0!1iys0z=|Xe>b$ha&Op5|o38Vt zL0MG_PRRAAPJrqFs7`eMs1_wcurIlR7}dv{>Mhpm9-Sf#jRo~Jdu(Jkh4xEbe3A_Y zQJ#|rA5L=%+3>^ZgL9K?8kC8+ffSqkb;T z;~Tti#h;k)Dbyx>B9OAf4j)2WH4KA?FTTJUaAOEAMiDndA`S`F{%RyhEhFx6{ByC244?E=YX)9qOjoAk%Lb> zLs+1s^n$nB!RWP>5~Mr2rx?KB7iNc~RQM}T74i{_P|Y`rY_dV0;});vM$@0S*eG$X z9U%#uK-ICr=Ju&6m(!1hny-6*bP87UW`y^>_x{r>Ue)6$GdGH; zoMv~7@Ch`t>J<#4rIIY7`;X`}TrRkDodkd_K z%authXdS3V^r}G8)Ti!|$^+OVAZ4t73krj$TyfQ`irHeiBrlv?8|l=gMin013Q>oz zdbFO8)Km>vZ_BvdQMt7LIJCL7=EQy15~k!2mBlN z5>eZ3X|~-Gwq175qh5tuE|Uz(g`Dry2*vK!Op$0Ymr}nj%1x`;QG^kCC+DPLucu4O z!@)re=!Y}v;H)DG;xRP#P?ppY(gNBPW{^CNX*4Bs4b!no=e%)3&zltRd*y^~q627* zJ7JUClqk>(CyuUZ_c3d6u8*TjG4b3@6r($a@{KFGwl^R&GV(XMLvz-TSqD@8?kDuO zkwKgWT}NpYW+SBTQ1RV(rQlwwZAj(?=2&6wW6QNc3ifQwdN;-a^vNo}-x$ zipL~HCb|?6+8qU?E21d7E#joA)#`#5y4H>5P8+73q1wEo>}`nCdE1E+DRM_bW>gDu zV(SLe(cnG)1+VzqVOvNM$ZW{L>=R0n>G@t>j;oUIF>8E>!=Y zin(bn4uQenm`E6?|1#HYZG`Q%t3*^*hhu&dNKX;Awq(g>E3XEqRJ0cg6Va1T z$;*VS<0>JGY~k%)OHQ=Y&8%Lm)+4+xAE9a*Nk^-y7i;zMvRF??ifX2p;6d5PeEzeH z=h6Mu6O*ZA-|%we4kWtj;3XA%n-%krkOuno3Ep%dw(tf8r{S@7tcprxlZ-gV1s{Wa zdO>#~Ddz%I0VXitNdN=q@9C6)aVEgp;UmAiBaUQwNj$HN_-JEjBFd-+@*Osi|qqV zz2SCW`c`Q~s6}vV0VBvLpS3G31}|(YkWqMCDXK2)j7XTsVoc74&T7{^I4fO|D%F{K zFzj>ukKj()w|!x-g_Y3*=tN2(YYHi74;+bP^-a+yYr9s}nYS>wOcLE9N84^UZSs5;cJ zFl5R$Wt_MWur$j*f$vSC6>Pw0#8|6I6Um_OyBN@I(L|qfwYI-z7>}g!0Ns7;QH;Vr zMX9a51~%q?c7+oY5K@vI6LlLYy)T@<+f*XrDYd62>37nCbZL~*rzJu05g}ab3V(K5 z|EGmo7VQc{lNpFzq&ojF;=$n0P83x%5Cp(FQ%qz!$%!eLs`gCR zA{qnQumOQ2n-X|XNv#UJNH_R5tUVZIe7o`j;M6qhoG{2*+dGC@Ulfcrrp= z&`A8Ri*m$+ZotPk#NaGQg2SQ*IPK-*RPY_tZcl>!vPS>`k9dM?>guoewKvALyG)#f z?F3Azf*J9YD#-#v6+R-6Ov9#D!ZylUnyKF%J|^Ct(N{14c_o7`#6O76A^bkWoWBx~ z-U?S*o;Ld2&@;UZuO7Qc*)HBBuJ3vMd>~W+wjXw%8IkQE!cEh|JN?q zwjuxj3wGND+ea+?7t2>-903WgMDREO=&rHxN-5K_lVQj`F2>{;hPS(m`Cyn5Wt{6% zOIVwPVAXn_>uu=X$zfUz-cux1ws|R~Z*lt4o*2ImT{^-*$>v55m-^>Sz8F4po3Mao zpF>dDK?@1xTWsuHR8Jhi!vOTICF>zXSczSPW38n$+NE+mMqd{Oo z)q-?Ah6{-sD{*|sZufc6ZnxWk2^pRWsBxQ0&&}-FfXJAkiU}_YaRPi?@&+uVOk$vb zc9{88Iw|-Lg_gI#u8!!0u3UwrB}@>?Dk{g`^yE zOt?8ZTO21m;T$j+Fh|LPVEenbm7d?*ijOcx^O8o(Ne2zqs5)94+epwx@milZ!+y7N zVaI7B^&}8xwglUA*(zfkkeAms$u@P3s48ZhD8t?j)V;2`@(a5>r3kQWXT z+n|+&lgiZllbQXHu5vJ|RzFwO%VV3b!&7l#}1jhf7}MHvUC31^hr zP=U@Rdu%$Lgp=JxJOvPaa%E!N-{p>Z2+Q6%qSCsDazjaCu) zAb&jh`)?nbAus}U^X;e&HQB`HL*`xi|Hw@gp4N7?1>ci29hJ-(cC z;t|U^fod3ird$@&azfC6OT%$-t@h`JL>ng`qqS*v`;4jKs}fDuD)b zb9tdoxa)<20J7&c@9Gz6af5^R@c$;KSGaBh*o~e#=SC`}coy1+gNO7^=Spj0fk701SY_RDt1qZ|dYQ zuE)O_xa>#!R==`O@WpnkURk)@6ZC&C;?B2UZl@tJ(H|%Bvq`A{h-jjhUu4CPS1?TU zMs_I}!beUcq0Fu~0e7i00Ong(5AZ!et#%#=wy7QoiKs#!?ms}p4LhUISi#k(cu%x? zQTKKYOKxC7=(61}0d<_Bg*{Z(s?iBFD$y4?3eS{rW!u zKCTEEY(=MoFU{16VduYwsfXm9u+DZqcN&#=RD64u56r|GVPIF>18j6iV?Qm3T4u@o zaX-C*fKVUp9h5IJ{%RS=aK9ynS1=T{Y$mI^T4RRutlx;xm^eM4Z-r0Vx;QppVx!%Z zMKhbO*giRKHm8l^3VVP20$b+w<#K{qv*Ge(gpLdUgKCP{@AFS0-X&2goK^29nso3$ z?x4pU-W{eKLSv>p(8)c&1OwRi6mXZ!$9+V3%{=eVAhrD<8QadL!z5#9i@A_OW7*Q;qcuYz)bXjV1@J2{54Da?v=Ep;-3tu!r6Nzl8%&(s1 zCyi9>raKz{AhLVXmK0Cx+!SWiX~0wsn6H7EOHlb?K-#vFMA@c>@a;C0gZO!Md0-V= zHHi`*D9uTx=x?pMozK)Hc#c%zYLxHlYF0Gd>8_YB)>Ul}MqK59Q+T;rf@*v=$`su` zuV!?9)qV}e`Pjr*J=kyb${qc=@G_r8YlL?7j{lcsbvj+DLt{1DTw)Yb^$8gZ=3i%% zs=kc1AHolZKfZo$YS0-{t$>rBTrg+H44+oO#Pb9{O-FoB-#-6kU=Iy0wrry$aqR-# z&WRNmm=o3bC+JuV@KQlm)obT(Wnx&0p`U1|Q489R15Mm_UANLHUSPXHHR;}5&$<=P z{QPJ3g{~iFK2QLF#gQR7M`kA{)23ORm$~}^iFA?dM%k|jkB*O~@WAqXX)yRq+wM7G z-o}ZMBQDomRGa1erGoLrCu0f~tq8sr>`fDX1YTvR{$ko-6Ogh6lAAU8zz^G)Eup@w ztWJtgKIRnxX0_$AG@t}y2;hE97QEQnM8*tbNbe}m_|*bBaS&7fqITQE;&KH$Zt|{e zZ3;wt9n7#^j*Ie1T~BZFs3y*7w8 ziB;9C+jzIOjhY$D7>3k<_B`PVaTK5E$YHp0eUE*YuIYYaf6xU?ouHpMgCuW=6>%n0 zJS-L>M#-W-C?a@SSC>)94#ghQyBd&=DvgR{Jn|!&RCBLN$S!HP{sJCg|4@qsxQ+V$ zRuLG!(mX%Bh{k5LtO!7$h1}1LwY)U)a&G>jO8mLeiVtDQB3KietP^W8hlNfOYQ%Q9Z_ z4A9LDF(`kxEkv)uy zb}Qp-j5^fa@~C>c0B38LQ?*GAwA%PqWJ!idG1IMKAPKQ(yh=-0yfw4q1Ur`ArF>6f zRl-&s<4-aBXvZby#QI#bt_!?YaIH=Z6Y9@+_G8;F?5mf-8#PBusV>_sA4>8G&t&>7c-_3H z>#A-E3#&`!gJ;vStk#(^PRu|ztpEZIwPNxa06Wg!t4=pcxX&&Z=NIb?%A*xdR)NA+ z2^rHFY-x+rWid|N%CGC2=m>p%Q5$C%qSO1^kFS4NuUGGje{R72j~$Fvg>khi%6#yb z7l(rp04ij3fl>-htEy~@Lw(^k0PGK@o;xnGBm<@ z(S>dA{Vp+rIcvShh=)*^c@A0$3pNn)gicL113v+EcDR=4LWHK}4gjT$=SnJ9Bpwj= zA`s-^y2Cgru%n@5_O%Ylr2V;)x%@csLO(d%XLpp5V!M3Ed@vKRt;+7^E?TSrW zvUQPo$shrs!%E^6@a3~fzb>ZpLfBW-23@?zZ#g^iz#Fp@C>GheVd^Ml~34HB%#cz4QhjS2|<<% zwGF@GXj#?8+2T5yDDz&YYgV9uyR{M{u+?wAiH5tloSqkYJg>^LDk6kuQ^klC|GGRM zWl5n2>1o;&|M5q3^u?C=?ce#hsb@V_%c+OM^^OsKZ-70Tc7l60TSumoK#+jpPH;Hv zy=`OSex>re#KHrin6V=c2kUr!p(Lf$>WW)nO|!0yV%^4U_R7SJTjdPrABm3b#Cx;v!4*u1ZT#?6m?FMWHlZnWTMwfN@9!S=A$qU zU-nb;|CPKq+V|a4;0S|Gfr$DuwO(GrbugLx8GM;P6-eIRys!de4NtC@ntq5)Z&IsB znk0F8S|*0r`h;ueb63u16KoG+{k`}|D=CVEcsp#nPJ6Okz5<|vi^k<;d=tI|{X1M? z-P?l#B-~l^^yYASj%jHIYHVO?H*u+)Onw8%|SuGOjrJ@ioVFqt#`eNER-3PIeJFU() z&0zRDv`h`*?%e(k;0B^>0E!-g`^l&Ax}KJe_FO-xXLoJ6pOisek|^Ph7tK%jSj?d% zv;lEsgR|Vb@1*cf@9lauEf4)RxN2DWMRhq{<(hn3X%s-_3-ZVi>v00!ZO#BDbcWo1 z$k`FvScK!Q7}Z(k%30^rdQqMa=*<%0Zh@(k_-zzVA95Cq$H3Na++?!npdy zl|iXFUu~N{P>ky_FV3cllzy0&^JQS{V3(-E$p&@jiepX}%S{c}+;w%X zh%oZ(xxT1JcpLqk9ig_=qI(_sySE3RM5i$df^t`j^~E!_SAcPXYL(h6%=~L!N6+}U zD(x`1R27Owx=db-_3oEF$RNkqdb-TM&h~b9W&H}*e5VvP2BG-?g{MpdhHq6r^GyNw z8`JD>KfKQlQ3R;!wO)_o>=_!B0zshe9Lcv0l#Y7@n7w~ART&CnzVYlkxK;qsguMIy zQTApm8gYyCb7JCuLAM_KWUpO=FsmrHyu$md!Qt!O6x@**ltXzs?eY@zhvrK@j7!^) z@&gd82VND0JFz_n;tMDMW<4xpsk@)C?a6s|%SyA=uKc~*NlRArI6Cf5CVZhe*?~rO zf}t^WwQz3&I?d$-@9tX9@j=!EMb_FvDV{b7#+RDV5->*FcM8hEV0$1@U}k~E^%})L z9nhQEc&E3-2zpTLX0gaa+!BJ#^vKj=z6Y&z5bL$cZzJKPIuVDY`EF9rt0%oGr{cB|x$h6U3GE=)nqYS*j%Qdi znuK;YO&Ftqi3N-+sV?58mVl=-fgOowh`V4)TXVid!KQsJY>OnrMI+AHg{GeM0z`=t zMn5wJ= z4@F)pTDu+7-5StV7S^rD&_IDQa(kEpkXi%`aF>%PjkG@rWFNXr?eQcn_|PG@P2^qX z(9Qro`|HT;e1+yAoI`YU(j(6K2%FZ6Zp_p(9xCC`wbn!(v&IC4{Og4X6dU zU2&!7pGsbU?sqTVJb(4(FRIJEQTEfj*KeOZfAL&BG5>W#Ai4!XnWZlYO$W>h+33i$ z{2kn~3&#_C+A#IFB(GbT_@AAJrsk<*e$kO5ZB+#RCBcZr_Rov;dkace59S!83L8dD z8jnsIfz}qB6tt4pjobv{OKeCj2Q6_YvS{*!9w%X>HlvnyCj2@jfW~sb-yIxBy>0N2 z6IK^MsXko}K>Z~*Xb5~>qh8zakXRvoA+RH-%_L6ZUa0OGzBv|m5o@3vZq{{mlRW9Q zF_N?wjVFl-`OU1_-+T5zpL`j&DklCX{c2}tLVo-2glZ=AftT=Y(5DfhaF6{7dm_fR z8iN!2Be1m%4BOD@W0(4S7AZ{{PJh{{XZvxwz8Kf4?Rl<$LU5N$Rr2fXj}QO+$3Oqa zpC11Ce+|d$>Hu}2`M3X(((7Frb>nlmk{zNO!{U;h*G-3m27?t>SFBC-ss`Kc@NaBg zx>@uxUbvh)aa+ z2>w-b_PV+%>St5X#GrH!cl862Bs9xnBd@qM(I~U32S99yr1hi0djxx8{R~8(9&C}qVZ;De?Pikei(0KPSYO(s zVenJ=Q7s~q?mY{mFy2ZNvX%{1qa&okR1i%Zl?nRb0CT=$E#rpmFk*SdP^?{_I$}Xc z02AS+$*MC|r_h(_*|aWHfq!lmwc=@D_U?dPSJ`P{$Z0NLV``EZt3L`nSkGfv#ksTL z^>s{myGqAff=C7P{WcL5NXHpGE#@rax+Wp_6$zPsx5O2cfs5KPa6!i&a*bOwujfhK zH6^<0x*RWIXp)xElM}Xs+hx!c2$u>87Dh>6X94hp{;C2Q&yt@FiNPDv=Vv@*JHS; z#YT7zMl`9LX=@W-@@V%sb!II?QV>t%8z@+B6 zGK`T43||a&@u~Vq7DK0Ux{tY?-2hmq%mj+Mq-?x1i?Go~w;dx4t)M$JSh4JrmhClX znV7%KgBH`YFex8}d-ewDWa56&6fK5qC;n$BiJQvgp|>1Pq`?>HBQ4xwOODs4M09jw zWIl`)V4yu)5R>4zgj2Ur^-j=Kz4Wp4xFkAVEoi$Q%?{P``^)ws_hsP zFfX*R(y}T?td1Q6O44aPyBOJ`k*o#K_(PpuoE+1pglW;iZyUzv$ht+>+KGaP;Tm)? zb8MSB`Yy=ZyS70%foYKO5Jk(G#=kLRi=7rd*xx*|t=I_F_jxVV%3k9B#YG^aL)q_& zl_g9Mnoj*xFXai+QAmCQFKkmDZ25oUWaLrCrrfsz$$uXG0Yhoq_CU=0!+?I`?d$K9 zk9KxK!?>n;i_3I$+aHmt_N(%za;^^UYCSV__QE1=REBG8R5L$LOEoh!`ts1NYgv3M zmNCD<*FFaF;H;jWLoaYB2y@h7QCq;;bq8;0m-b~c`$j-Zu0k6DwVEYMe)Jl^hz?w* z?0esyJFhgudyX!hk(ohy_iJYojWXGpu((!RvZ;Yy3QJ(D%$!lt_;@@Xu+xS1J02{Q z{J|6#YsHMKjcW4#-bk>)d^)W|1FK;V*1$zi+=p9KwA$y1h!MH7#%9Y(STnw)q`S>5 zqVDN(Lmgp}>4a3(!6ZAdS4cV<=KEsPK=cj_mg)qN$I(uilQEHt6{Z=Y{A1vz&V<$g z>Cjix&%j{CEhm@`h-&Ori z*iVGkwVD!Qn`~=IN|3m_Q$0r@<&!U}jb1*|EeN2^jg7aLJ%4}-shZz_ov1*p+ioAu z*255Dyl3b)uhzw-7@kY}p!h-^KAN28&KHg1^EaI7k`DJ}_8KWD6HF^gZqFLTL)|vx zl?7v8ejLfj__l}IHEsdVP%TY#w4h~t$&(v-K&QYGx?!gHdLKIqed;hJDdf!DPxu}z zDk4QEZHj6xVn~XUVKQvF_dG-m1WIX>qrd;*_?zJ$AaxbF2nX}sk*tRI7F7Cp#zskP zKHN<~r~(tuZ_E7&Lu7?l~+B!qF1-zb(3uM`dWHoXb}!daCqBtLDhvmBM`O8(RYV zfd_7BoltAv0A$#D3uEw9mH9wz-_JCivs6Z3O6UqDyu95kAUM#qB`+sqct5>5n0_jx zaWEOFh*eSk)G_Aa(Gy+$MMhU-@S(UhM&~^Fv?#8SVp;U&dU`dGq&I2v{{m1$9*Flv z8Rn~ExY4CoVg@>h{t}&qgOfDwn>`{;gz->xj4%*<8Mu66`L-w5HDlVNwrUfoeis zFXmUAx-77Cw_QZ0dRib$Bx;MstqzkU5HQ`Hz1Ttn1NRtRgPhiAClA9(N2XHHEFp^RJ4K@%<1H|6 zVL?uW#-AHUOJ@m#-VeSz)kjkw@#xVX_Wtm_ODjsF95$wZ!^yjYWGxzSe%GHK1GV1! zlYRiCl&8%qn-~NVh@&108y&v0KWhlLUj5 zPW=?|B|C}Uj9l)tfZ8YVD_b_8kV*K0W(y4FbRxZsSnQ&C@y~mZE)jnC5t`V_Kb5b_ zi=tkvi}_0wQx4DwBCtg$<~B11w{gX#jnyE18m4D4($3mQ`z$e*QH`16blxyJuubG; zA_V)A=|I7}MM&kf(8KY%GJQONJwb`ECU*(1(wHHq0+~f>gG5?LNgr_=VEi41Hfzfj zr_+$B3PE5V$l<|~HKOdIUgiwHIwRmConBM2hG8BiJl`X4TZ3vbmduq%LU<>MNf=_n zj+mQ~NqI)cIy&4NI!?6Z-9acYD@zKaL45j1=<04^C{L?SJ1J)`)5OMuM(ah%s8La_ zTEQGIlK!)!70mUuO(UkBTLf};SIl5}=(0A$q7qh=ZzU-SAi6*^)wJVF?Ru)v8$^7w zxLho!wX`Ze7B?fEIi6|lZTr~Nk!^{IjEk5nsUs7DCoLORAeSK(gLxw?;exS|?BE;S z%Lf~ERy$K<5L$vDgH(eBAHS$Y))jCtE*K}D@jUK8p{6q7Hr+~)G7xXF_a!n z@$POB3?871#NAuEA=StMBxZv(W<2yD~tOq;1E1Zdh+A-3@xcijkgblTW zGL#T35r7`u;uwrEq7=%@`zYFlDX zc;m*F=>7n{^ZtDmu+vS-x*>$FS`y3-5x4&dA_|R7rn!+sB!tbJCb@4n2<=8v2M!P$ z+pF)hkH!4Q>56$g(-!-oRyo`>roLXJI+?0wlO+$&`-l3+7N=M3|e4Q?|?SU#W<}VEi zy~S>53H?T`+j1VZKwn`2R@*&C`x9wLZBndZ#kSsvpdH@97x6ggri!Sm=V0kISM;7d@5ChUoov2D1Y>FZ*rYI)`i zBLqh{h`E8_Jo9f}K;zFsi!T=4O4}{DR(!+L*-RY(1yloX-9Lkx!I z&1tjBLqi3;RGrP-R6e_y)~_0@3bo)9W_1K@%Rpav@ga~>R9$Ed)%>QeE6by8HAxph z6M`q}i3eK)1M)X`3!09KDe|FhKmd871A;*|XaS&2IVJ+q7ZU*#Gda#Mk=*$OYF8K7 z{9ur}sxXn&RH;a$ajPT{YpA$1((#1&t%S)rC?}c>57*Gs6|8^;$ygtj(F4+07ub&U zUmL+_$gS%sr9w0lRu;rl-zw*1x_YomTmv|UeWHM{wwxF=o}pkAah2Q;s|Pa~rt$x? zYv;*XXrwO7t~x-L9gK`ohCvVNGm|hf;t9*cdU5HjT>~^aVcC&PKqf&4y+-@AP{)qq zvxmFuDr`C8`ZGqXss}yvz`laYtRNoAtC{BBd%H+k{T5d}xIllqx5_U;iH2tpxR z7g7?*gTEhTAJ!l059RUK_a2PbkOjxBb}Z3?+93cA%C7m7a&}S0?6wVFgA5O{ zyY%+=U{40_15b+ws;_~BMzcqR>Vu1w)4$jVnhl$Qh8Y@N)^@uPH;OnPV z^$~(RQVL=q+X4z=hn{45L0!}i-8OK(X>gr(*T?jPQROGgC1OmhukTmGM&KH1x#VrV z07Js)>Q9Fn(1>e3E>_qhU#ogMIIW-Y6wFracazH6^1p|jRyUy_YHmn;6XP=o`@;-N zT_F5iZz60m>QZfY&K!y zO&>mFQEpm2x=5eK0;XSwcjzp11tDDHX)SkcXvZen?hlUyO_Y{1L4hJ9eL{G(gXO~4 zl$=6r)HJh9zI){3-`vJ*1s7wmd!s?GKvj&`kgt8J7IS_kA>YNTKgUZQ7s#DuIPEmz zfLI=bsG7PH0zK136vey&&&6gD#Tr?GCx2|cPV_#i#MnLa;8*qtgJtwX6nqwUhah0(`1u>&j-z%%z3R^x!Szg-)b6}V?yNCvzwUa)_8jS($Iv* zWC=LzKLH!uh;cn5tDQCFndxw4OIF)gk7^@-mW%ohd-XIq^J0(3@sb0tHBKCjko-`K!SQ)ODPd!O6fH zjzNK(w+5V|&6bp5vu5RW3rO+U9#NWzmve;tmsNcS+-Erdxb33eb zuuQXM)`u6H@?-nhTX+d`gu3n7Ugy$_2iM{YlcJ@qvDG@p-k9pd`DbG*SSz20tl;c_ zrrTy37#U%vq+(zx00pE^TIN1Ajs)~?H|u6GFBAe$o%dX4)wttWVyv{(#%xhqSLFpu z{YkLjD2$g$wDB5SCf5%WL_vsbVM@-zX+}fS-j2A8FVyfBND8p`+1cqJTEZx zfrh4ygo=N@cYda1frb97QFPma#~~uSy-tLI&N8}{{pgC7s9?a-C_JedTuO7R-jN6l z&FrGMoTAeEHKF1RmHqkCkVY#t6q3QO*JaToQKkaZEB{2*m zPgL%UdRoWFVJfL5HmlQGPe`|<)=$vV`EK4=HT*n2f=&GbhK0Ra_qc+9Js8d%sx%x$ ziN_}{Q5&bKVacKOx%hhRD-zMMt)jV*ptv?TST4@i-{u6G5$!=78^3(f<%8w#$7mKB z{IuEudktd1=kDa;8J%9pM8+2UUa0q7P@GebpMkaav4v7NGP{24g&R2`_t+SF-1=mc zKtj*ofD=i#ZsBDi)y}w|Qb1-No`{gbX94lV%BmKI-DIbcQ({DcExdivyh1NO(I4C~ z*@6e~^$EuEh|9v@S(6P?ux75Q`yI_O+F)>-Ch`whn@D4v_qx{!9Ub{D>gb$K#32vk z7IcUpUT}y5pt%WT97!MZ>}F!G$uw)!VusuGTqL5A--e?=YrJ(wP4g$=SVGP$apO@) z6Ku0(7qP_h+iiFeXp%@`BiH1EK^&r&Ni5GcbyL-^t1xYDv_lb`j!)H;<$Tj_J@Ez9 z6RuJ!(ZvLrLU+n=o^1yT#&=;L*w284ZuYkA?q~zyYJ487#$WmRoCM32>Y)GY=Yw~6 z!1%ALW;KQ9Z|rrxvyDEWTc2*J8V4e=oCW7#spKL7w9l$B*g2Bv2TDIg7T&X*}RoE5%XCS ziVmqM90ge-n%B*~PSevd(w47;i>P@Z_p!zK>>HyQ6F`g%Ddl5o79E1Z+$2 zk>63$3mv?y4VKp1gu=+aaAU&QTD)S}K00Qbrr)~J##T0`qN7jBJvtjHq{v~uW}xW_ zj)v-#1I!pCzTi`d5NLMyRz3$1w!>v{C(edUM&#ug@e0_gVhD}f(miOFYneBc( zmzZyxT*F!`eI1XkWjIOx?AL7=oGn_mq`82+DCD%15MJYR2OzqoVE;JrS})bFofHXa zxhoD`d(G_9F7w2i*rn?_~7X8ADR!F-QDRf{yYD$dAPfK`eAcc zoShv%2oEUC=x>)ieTR_QW50UOI?}fLSi+oR%oW41cTp7J7&ATfHs=hX&RCt^h^UF4 zRm+lMGEVvU@Za8+l z>1|BMB;j=V+i${YlBl%8%+di-6J4FBW5r;Aj3wQKMsA=^4+xicB3iBM8Pi)r8)>rz z&oXKDz(3*!VvzNf%i(e;Vl-*5QXC}!pd#A-97?!?5K!Jn@@uCI= z{<=kLZbzL=KGt(>$KJa(33DKrh4r+*E8P>k<~UR?n?80PiQ9zRpDwkD6^mN)g!`+Tqu##c_N%rkT3ANlV$*3~BMkn7 zLyFiM;whIqqKu8>B153V46gzIigBDnFbd8u19<%Psua;PIyf$xcXeTIFPh-Ms=ion zuOJ?ap#8;$;9KkvsL0k4kxiAWI~-+V1vn<&-xJeO{-au`rCfvn?O{s~*=2Th`TuN+ z`X4lS@ZG>UpOYyTepAGlZ00I_n4a{}VnX}AS2VMYrN&iY~j7TlL`vWSeN_VkJUp=8sx=VOrAfYcA&tL@T28%sPL zNu$m9&M`?>^4HriQSQBI&JqDM)`o(F%~Kzw41gvSGkkU<8Lz9?)m2eHn>Ix*!aHxQxTj>H95RJ z{fAl;d_MkP_TIj`tsB=D{(nA&GAHLsnkY)_zD?z(S$T1$S(CRFyY0+%eY0d~J60o0 zsw5}zq`sg1A;32P1i80tr*qDE?yNP9wKq2jk{}3zzz_4IUky{3|8A$V;8#0BKY>EiBmgyLTGx?Emol{^Kq~ z*9!ZD<|zys!OLTN7*W8?NUjcR4olj!RvTAOhZl9O*SKiyGaPT?_vVajs>+Y)p4?FKqF}VQ=Z@U=2jd}Un$4ogn(Ik z(z26)b@hBNXu6AKg$KY`D{D2mQm}X(+3MVJGFO{AxAZbbOPMHa6it#QesL{H6TkTE zNfS%hl9$Vzh<5(@(%R%6%yKA~>DciUhGx9X`8EK^b9MLzr@7>A z*utn9zxHL#o4snihII|Qz!Uz~P^RR`b(|?ZgG9|~cvCV&8TIRh7WQPDzdT+Yj<_6Lo)JBga}zoWuDa7t;2y-XvNlbQbS(o5Diiym2P5^((caXQZfR~ zB8e@}=A_PtU%jjK8|z{XId3K~Yz`jXRnAdDf~()|FnY#nv9g`JneoOlw6wZRMA$t?msJu%r5h zYeCY(I`!Qorc17Ya(L?xj--=1Jtd z>N^*6OvcoQJ#Tb-q2xh?Je1Gpzo7z(!eaT`exbZDKSf7QN9MdO zm%FnPv((Q1s1>FV=nAp6I$ACpn>Qq_Z?Iv#a2ki>SDwF?lyMz$>84XT<|K;!7?B?A zp@D%eZ~{5grG9e4Pev4Xnq;(`VWZw|=Ca9%>_bz(tOy{t`(UT8T!;ZqKDfy6SxgPv zkk_1f`{fx+z~y-`$7=uWc#Kcm20Z5PLTtA%DQ!D%yH~hFxyZ1!W=-pULI6#ooo*^_ z!m*T1x7WGz%j(u0rbmpXtNgBi$FS5dw}1I?%b6~raBlMt#N4{)NQNKxAq5av;mlav zYMJjFZl=nn8-~Kvs}sQ#2fEI~XFH!MJ#e$hSC=jpenHX{?=Q+Cq79j$ z%9mz(6{RGo^1e988JC?o5iMqh#mmw{vqkGxtFj?DFE;!HdBqm3@1VbcUCDL4 z5{PtoFNOAjm<$&`%qPS3b-#!=v5?*~DC}||eA&zmZ2G!*<5~|%Ur;%zjsv)O?bKz^ zp88P(#1VID)=s@`M?#z6hj5V4qiv&Iw_z4}sA}g=jDcAuS{lI-E#l;)Zo2=zTCOaT zq=<2pw+S+fI5|aPm(0Z35Brm`9nUvt(rasP%vq(K$u6IUAJ~ueQQ1+qPI7?2Ed*P2 z_6E*8$8=6?Lp3}kElhGMgyq>N>3c{*1{Tew=IxPscpxNtA@;0yK0kwKwkF6dKZkP> znkDR?*7RZjp3sI~vHmv8n#}VdwUXLGj$(MEn7f>SS@^;lU+$1QKKB<+pd`E%YH|EU zSepm0LFfJD1pM9cqm_o^%S7NwvSvj9I;;wEcvPks6CS&OFgqFekFphda+5Q+h@q*= zEMn_dC=JY!X`7i7V&Mjcvt_p8_zq?r{w-A(8r2G4WV{IMS~pA+%v-0EkLF+lmMv7TkzbCEn%P!o`Mgyd?44YiyNzUARg3gm%nza(vYU2W6fbqUFxEM$Y;lQ%be0JC9KNYX{ z@Uw6!*FM}4S+-MY*fA9fhOteU|8CYoIR`v6gFZiJYYOk3I{*0gecSftSfrfsvXrLY z8KjSVv251&=747&vNal0*{s`7U(ep6#hND@;1S)yorWi?r=7wQ+kv>M`d;Yhj3ACX}>V90{-Zb#gKmZNq_zR;Ni_ z@B)4PJ9h--)sWBu?}(?tcccO+rAYW@?7vnWzLOEmwn_ekMWCZS)ZT+OZ?8ckHPSoB z=$Pm`)vgXUnh`n!a(*_M5ym@VKlRhW=J~3V;XHHd zX9LuY&odXPrK#CuBoc^vsK~{U>tLDLns!fKa0yvJ3FACcN0v6~mnF(!eAo>+x>yNB zUA(TvQURg%LG)M6F<$&)cQ*EkM)G`$S(?CWyASB$&Zh&bkWNu6-LuNRV}*0>Q-#=* zy4aL{!FMmW+-BWN_ydXGX|2VQww2{W)Io%B!ELDv&qA`(d!n)cElJih2gjqU>vi~L|0*SAxLhqbQC8xbM#L=Q^Lq*dxm2BPVfLn12{Q}it$b^v$=bw>-WDQ<((iFt zNOsV!a{U!K4|9W($|F}swzB9f0D>+zmpGu2iN)DRzGjUH<s8SB8XqmBBM=e>mxF<}POdUG2AO_0^N=IsYno0kh3w&jiF5C+g1JE? z)>y_*;l>S{q{SX^NT>xt+M%fxW-5RMf_4{Z>`APcBB?$iK~T&hIyk8EG`VxaISXF8 zG_XRA#F*J^A$6e`ak{LX0}=D~%tF7B$v;?R>dB!|r$5xVW->h!?jz6p3Q>NE}5AdU6ojLZVx`Z%<3 z_~MWA-Ljh_nx1AP9a4@>5#gu{a~K48n;|pkpJ{7a9gv5^(Yv?H`I-Cf0r<9oI`psV ziX%fEvF(@~@us*km)(K<24YEQA3N$Gx;sj4_foXb<{^beYMdWkw`REZ&W`rZ7MC6x zcTh#?w>mp&6UO1M7VXb4JmDoq5)v*VB9+(>GK3*!5zs!czg>6h0a7E%8NQY<^(Cdgk-i&R**vVcs9v?( z#ha)`S+#M_5jQ(JPL=~YG$v;KbDq8;Z&?y$J)())wN}}>vEQ&3J_Qdou~U=3CG)cYCdT&#i1RQ}uR`9K+&raT?jrN0nhB-P zGTp`8XYzR0V5GGB0x|l9*flHuKA5h)aTz8U??k5I>0%lErKqpmAf)kFnPiytec#a{ z`MAq+&H5Diu<>3`VDzj;z1C{pYgOjoYOaApn?d^9bbe&^4l`aXMIP2iFx6>BTU)Pu z2dQRVOCnNi>8&q>TLTONMyBj}D>F8mccBapl&|K%-vW*vy=$-rODDYzLgU+PT=O0D zL4E~zAkLQD!0(a*>8 zJ)(d1D-Be;GdME&O{ZZ*)lO2pacmWj3<{Tt=KC9d$ml&Dzi`Y$lQjyvs(j`LZCo(2 z`jm&3o?;pE-*7;ZR`^rJV0yal&u6JFcm z+ou@F13_%i$9gy(7qJ}*&MI0+21+52SgB>39znFYx??bkwC+h*1&SS~p;gx7Y5QSs zcm%Rdw!_BM2DtPj%0KQ~U<4pSYqP^mggVTCY3dt;Y(z>rj?c9tV#Mq?OQp9Fu0!^R~h# z(H;@qStxEL|H9(Z5fDXR4Ra+CGvPiYMKn*qWvvGwo;c2ya1i?0R=FeIHVI%Q_hXsx zO$E;1Lwj!&Wf}wS+&~u)71QtBiIIFM?lPL>+_;|j+DpaQUR#{)Cb71;xQgB1I)2E& zS`EOTX?!MQEe#5ygz1{OBk-=`cr+Qs#<6J>_D>uts_*hc3D-EQ?`>lf@Xb2#G{&++x> zWVnQckPp_KyH=om{nhq2-xf}{$~4?a(XsVt&KrDQ8qHk9;|aQg9wt?jIDl82VKZgT z2$JjMBQIWuxtob8t!H1SAr~=~HCLRCQ2;K515h_CX^+^EMLB`FFp9KG7rLXby{tmN zfu%g7`6}Z~_ZsM5O?9=b6UzfVSb2kUKsv0KXM>BKhHhfr!U3)E5C#;MM@C|=r5X$h zR(RP+86LTkf{O^VH1x6K_g>(p1be%%=amhC`kFEH-MUq?x#(9LBRNDDx$(+*Z!ZP@ z8k+(Az~Dv>zT9}^gyFR?Dz1I*<6L)^Z9Z^NeR1IIrF?p6o@Fz8OQ|4{`K~Bak&EK8 zpA`AYUC9P@88ktQ%t)_G3uth0vmB9h1NG|TNWpINX9F~2bsQX>3i^?pBt|hSLlKY0 zPaIP3P)M>9IHDqgiHvl_F{L@(%AFeYy-|X6g#`wkwxFSi)`6ciGalv47e4(>ArphW zCr>He${r~Q$9HPN+FGgqLIOFKy_S_X>I@7&xy(?$&AXRn-F}o>tk=~>Uob3ynr|-Z z;{N`JM7(7Z2KmzAh_{hZ(|x_cdTA2)mRf_g_{+KoOt;MHPNhniYdwTOv+&JEA)N3( zW}~G+$r-Ssu8(T1k;dv#L}|>KZuBZ^bI{zN7mA-fHj!9i_o}JWli1y*vbX}N#f&V` zR^+Zz`{U|(cs6x;mwf7@=vEVH=+SIa3Qv)HVHsK~nkgfl(|)dOM54HN?}v-_jvN&m zzbG2GzF5yjoSYKG7+aY$<`kHYtnS&ZiT*fS#WCI_4D|}ZqouIX^4iTuk9O;1?qa@L zzp}?dQ0nnRk}xdwt};A!wh(#SmepHei)H1IP@f@_;Ca!ye2JW@)=Xf_qWe)bopwG^ zK*xK|!!#0Ssg%K&h5l<#dSNPFzItAbFRd7zL`YxugCkX8o z=z7b1cNAyDQq!tqBHsH-0xbL5&mSAU`DV6$moj6<(Z&Pwbu$Pba>s z>FY)GshB=p4KIPv41 zi9^n7{wWCKH*bck)#U9g{s9~wXR6yvNb72G{~DR3cE51+vma z0&0pU!&OJNs?H-W#f?^BSb@$PRy*epu#11%WaSlC-9>#IwRGLdI;85@(ih!+8eu&g zkHfavREaqD!|lhZh(T|q{nK@IxLrVo)@)g$F2?hA3c>-%&Z<9>Q=OiKh-uG#httV@{GBoWH%`(V@V6SREk%h^ndSMHyFyO z3NjxKEegSyMG@+9X0rpIQ3T37k*?GzK=T#+?sk+G@)BY-!3WBMCb%Lzs!z|IyfN1q%w|JaGNc%tRpEs1e$@n`K@#vR1YIe zy1gGxjfSwEFO2N^q#Uv5M(DNISfSRE6e8Dl^E)IL5z0=8f zJgu&;Nn2lCt4H(odVYF+t=jtXtzx6o>ewg)2c$^0_2bFgvt`wvoDSi{EOJyj+ntKr z=Uk)*kP6l`c^lf46>vkd2JnY)Jk^JR4MV6y9>F`M^ta{9K1w+$OjS?t{LbPnpG-my*QB>XK|aAXwCYPk^;Uh||`3NANonVw(& zL|)tSbG`ldFF?bZmt#tK!#pu6+3*}h9t>~-{CPTDzMagTp`>dM&(`xyiPw|2C!q*G z`IOe|#{Is+a{R-3c9jLaw5|QIn+i7iKXq5Jo%^pXpRQ}8(ffKWjQQ)?YCSnVFR56c zW%^vZ8%>}xC6^x&G7v}e>A18uBZl&NIiE=ZZ4U~#=%x)>qy)-LX5Y~LbLGSo&?xlQ z2K65`rB&mP$=YzpsL{Ywr+?(2;4LUDFC=jDQJGw2R01k?Gma_srHHuAKOz|48+P{W zDxEb9KY3TJPnPquw5ZkvwpSxe4`Gsi@7 zostGuXGg2ia*}|!OD&BR)`dU2do4zduIHGd>KWZiN9c7VqbvW zJRJg??m<4C&+y_bZ@J7v{_twTeOH1PAv2*Tclp-kCjl3DSDiOPJ22%karikOo1VaU z_p~=UNgeg9#@4G&dy^ilh~8PxZVo-eFXsP?-uQUdgDLN=hNp|(yQ6W>^szTGBD9CG z+rRb3)wDO6txDTTFHNnZovf_Sma5z0DtY4zq@PBX*!UEpY{_()AIMBm4v0cNMq$8D z%7>XDsUSM!8V2PGo&L)o(qq>th4hVk6}1rQElrkRd(k@CYMpGiPQGZJeAznrs&(>p z%bbJY!ej{{SLOtSzsKv=c-#V(ZoA95JHM>%a0em*2;%M<4&b@GPj#{!J=^LX^jo z*lhe`H9V0OZ%I^_y70ubU0k*sH0;VJEhl)mo0DSKxuk`n5&O0X41jH{K(Md1)t=2~ zDKNxE9-@IZ*R-|M$;V1Zh9QOME}SV_KU&TV>(G7m=clR^R+du=tHeUX8tnv^QuNrZk5TH#9He{GPGi_zi$s82-) z+&B`4B2xgwhZPH0o=F3vTCijjXy(9T{Iu_`a}EyW5gktFG=Ru`P4J~9niF<+#sO0N z6p?935U@zUq$2gY`t5A8tj5+~J)P%~5u%f^fJ#7jd5e7Hh6hN!!3W1Y%HSZi27IL5 z(7!%Iv<1tPAQ0TV!SjyjHF3N5Jplf8l>md=Kl`E(_ZO2jnD4|Rm5seunjaeY&aU~% z%<4X(7B-AG&}|*ipTqY9*(`ypEIFHI0Oi;mgNf$pED!9@p6Z`^Z!5 zAEd*Ij;#&>7jSP}3o#)1E{v9c%=$?`b+}rgrtpmsTEGe<(E}sIhDvj$rhT4TOWD>4eKyC??S3p!G(>10%Ow(7O*w4L0fD1nN!U%Ug2$!|tHY43){ zWtxzZiQoiD8odB^MumOy%}(+O1FNYR)(vl7CmVaDA%qi>i0sCjPNCw}(!q5^au)I= z(bG`Kji;cX+E*5ehL6)qNo^J=V~9er5*x@=51Zm#qKIv`ovXZDDdQq`QmffH1jo%n}_VU)44zB9Q?;G{lnh}gZtgi!7m?vxqW!6`+Mh?1M}zH@CZuDjJB2U>Lb-(l+YV=$+Xq$CDL!wTxTU%>HX?9N(VL zrsw7_yMuVMBk1HXKwf!C55l3_2RFA5m4088iI*{CH@~o|_CZ^dX23=_zqEmcX4d^Y zo9X}M-Y9iI_eu(SCZcbqLg-9&8^r18z>%U7C==HsIA|$GYakg|b7O zUQNlJ;=<);m;`!|q(-(jBY%4Fk8;*S*M0=9^|X_v>i>*3jlcBF|L=5(EY*sK^=S%s z{_iihe*eF}oBw>@g>TJDY~S2!%Tv5%S;%`J8#R;s{qMi5ZguY8F!Ou>YxEP5#fqHX4`%eg$(LGEtIQ6_YV9bUuMgulEF za|nAkO6F-?mjBuL<-;x96iHGjreZPEXx1be?D|Ov_}dTz)m35Bo2C0{$;1vs?$F6@ zy9p$)=%wj(23z-7oDA#vPTvCrSu=*@Z2?u140o_6;59GRm{#^!7bQ`GJ1aFNP2AXv z84PB-d)QYlndmD(tYb&)I03vL>9q)vAf9ev)wCq0F=JApZBUc7L1)9yq5yL`yF=MY zWF72ZF!hd}X0c_pq) zweuIbI@wLqP&A~L=bfOWY3V1JtvW4S?17ViMuqOQUpcO_*A-E~(&-Hi*sb>y#iW@y zFU#T4YCb(<{#Q1}?e^DSef7mxIU?QyZqfL>(`83e%Kc$?W?Oi~f_HgZM0GrCCPO<) zD!Q}yc=Jx*aGtly_;=mbeY>=u&g83JYwIo;ith@xU=o=fPx3chuswPnVVz3ZQ@}Qb zyD{AJ9^JZb#sZ}xZsRn`B z1PmS(=(E$G+*~3BlAc5Z?3!Ti^D!2F6|W+Wqm{*}a|!yeUy zmD9N*9cg5?b=55#fmXF?$4;ZJxk^)w1+bflXp>Zj0P>x-rNt_wr=YiXQT@X|`}Sp* ztLf15o8RPX&MHnEO|S0j45-;x%CM1)t#%d-o9vy;m+R4)5y7X`dU)#y6DXViKZHOR zIqPZpi7)@u27%Onapu1WsCMxqh7!7kaG>{EUnh8=THV7Dz`orA{+-wcsC!}C4(G!p z2s7~uY@c8i(G4)sN(-%j)0RzV8WzpA7v62}usDFOnZI7P84^9$sG)B!+mQ2vl#LM+ zheMQdEm~(o9oTl^dIL-TO)ugjh;zEphH_Jh zM01|6Bt8kv<^f9nzPtO%q9#9mvA6qrA7o>%^?3K$?*6X%dz-i@O^%P*0)g{IuZ3}| zBG0bX>*2k>*uQ1V#h=@Bsl0zY{{VR~XVr(6y@r4)*lK$JJ#q_p4 zL;UcqV(4NQIZ%9H|Di&=0vB(ngr5FPbp!mb;t|aP!T z+cABZoAjmSR=kEtsrN|hliI6HC+aD(@<^k|&sal}er=xAstDLk)^b>NbOpuL$JW(t zx+=oz-rB zti}(`wvm(Jp}wtNvesRGb}ueS#!D+JEMX{;q5y!0Q8eIqm>*Oi#Lt9exOJW3~*f)7A}mx(5H@ zQ`5wZH@-Rp>Skuc7Y>~^jk|f*fg=Ce+ID2z$4>_M-&>H$<4%hZjEcg+mU&~pKUB64 zqbZ0II5?&nh+uey7)~!RsuKuU#in3d|x6ol)u+f&He2Zvp173e0;|6uhv7UMIju&)`^dnh~=W?U|NY~|gx$C!XeN6Y&^SWe>mVnL3e}f6W{lcX@nBRf+>2<;Zm z)&u;nh9LU#Y+Wri7k%#8rDThSGRmHhO)!c;730y9Fcn%&uYvYu2cqx(U0 z{p;ZeDA{-E0$8dwz4Ax%(-N8O?{3__4Hi>hE8H90zWsgT;38Zs$She$+$YXIRs`>! zm?0JRJ-lGG$n%isb2yn*!G9qSBGDmo`S6mp;Hs$lhSf zWmD*Sx_ho*{?erqsc-$4-K;ydHHd1%Ct#^b!A+-c0r>c<#Wi2QBtNHjB$(Xn>|ArNJ+01y*FsDlEG@*M0lZ)}f!K zoy)gow+(p~vs^(rA@6Cz*l9Svxt-rW{ED`q?BM!(yqupxb{fVF-5%SHicYnzN_3%( z(OreaKOZ0&2qV!ila<08K0k#o0>{s$WP2h4H+FEufwMZY-WW0q)zG*W8J9%wp9ocP zh==2Wn+U({W0wc^pJd}dn~mqss`u5@Zw>zb=;Z*&=q`ZbA z)CJ`(GZpso7&K-U+Efh718+H z`>g}_6yR`3$VZnd!dAY>j<^{8Bw!;h#>hbT^;Oi7b%L9p!j++-9aYKLpJ(S9j)A6v zo?{}eOW~{j+9y_{i<3@5>@f;&_Zi)=a&w<5hat?t<;iuG1wE;^{50d69^N!Y~FhjuWm4q`1DTu`APRIBQCc zgAOo7+_9_=3c~*IZKr)?rls9WHcc{9W=5va@ z_zuAn^=t+qpK^%+4%XKszL#%hyT6?c^BvxDEWMq~gG%_8b+}aDZ5Nt{k*~&=qav9$ zNlK=GLeIpIBl2qI+DE@``x4XZ%J(`{0#VGx(94FDnkb%7E)G{8QCWHR6osQibxT!{ z4)n)8_6-xMs+{eKHvA?!NS^elTJ7cUfdBMmU=9avCKJtfviflbK42o#5j;xODSS#2 z6y4p?oEG=b7Zc1)9jgPi^Z9T#d<(nd8sGO?q79oS+f(BxV2M&=CH=K;!~T(-J|iUR z$Wh2hTM}uQY@NIwmnF|ux1&-$9Fy$1d0LSdp1z%#jpNx|reY=aZ9=p7?btD$_vAo%ERPX|a;0FIT>FOq{yn_Fp4-BS52n<-jUF8o@X2I4WslJZ??S zN{qFG+8zDYIx^Ov9?9i34T_u&SD|Z^(O}cImM<$<4w(g#I;mSz-~&5jZJv*EYGvw_ zN>P07TOGtd8F=q<@^)gh_}%w-Cc?QR;p6?u%7LSSb36+6PPbvFQNs6qNCYS#gg%Nd)^4ml^${^)3#k={4 zR(_%|1a2f8+1ihDT^_C6&O(dbYtib6cY~)p`4D}ord%S`jSEskrRZ?^mgo1=MMGII z6vV=X9zYYM611Nk)bF{+PuvV1PnPTRjtDDbEsT5`dDg&%auiH$G5~YmaCeL3$pL3~ zy>VXd23qP>4Avn~$d@o^A=HTKLLb-5VdD+i=ZV~ke{L6)BZv|lj@BW+>{eIWe8^&| z5s0oJcXw*K*9rd!w?Qx^J}Ojk$50|8i~ZZ~Hka{8k|O7meqQ9S)5ddk=G9aS)s zspMv-9~-fk;46Re$R`cX2?~!G6*!reyN3vIO;zKXb5BpJMD5XQDTp@gNl^nrveQl` zba-K0V}H;RiU)guX0OoZmLAIW*`J_MAx*4K?kUTRVk<~ZMH>A81W42{v>n0frB);^ zs(l^A^3Xa4J#1QE6O{w0y~4-Op+YAU3*-f=b5<4A*B?`gGB2DVYzPIGWEo?a6GiZuc_DZt|v|u2PjfiSK@_M&MO8oQ+w% z3E;!%6cK^@BU_kjF7OiJpHNuBvIQ&4wK$%CnEel2jVUXYk5_psGnB- z;dBi@P+S0Nhxx(BGYrRftu5a9*7n^l?L2Hn+uL8tN8jdDVSH=}%bOo^TX0q#!hB~n z`+BMmmDyY@-y#>E&d*j=nU9+=z-4xBtAaj7FWA=>F%s^YQ*_by0telDPrkP};)^pJ z1nVp^(W+~!0hGRNDDl`xsTUC0e#M5dH4GBPGS<%MqUOuW>_Vt2$rMziMZo^a3>|!E z*k0?LdDXpEh09rqTlgP5o)RNyu`@TC$i2;kGrt8jtMq6-T#hM_%Ozlk{zX86<_$oE z&U^UJ>SS`fjvu26+)bSeevGTC)~_%zVP^e#oq5dNv}3Wme9<}Qc;(d@qbN=WFfs>Y zw^ATUU`PdEJ`*VuljSS+9WB?V8Tf&8;Yn_)$%>`d;#a;3S1E$Z^8F?Dhz4fP9X-8i zg9f0Gv`gXJxy)P+Og_eat5f|sR;7L|6+YSgYO8?nAPrq5<5q~xP{e-* z|BBR-iszZ%8cl5wqzK~FLu7pG$7%Z;|JP4{@Bi@f`7Zgn`{J?xwG}_O>;L-l%kY-| z`IZ0ki!Z`o;dOkw^>z3wkg)Yv|JS!65#6^TWaQf~2yKsF{``Xc{P7j}@oe|WKKc3j z>EC|X$DfDbT{{}CJG-;@{iEgl!wQVBpokiQ`LP3z*#}0aw$9%qyaY9rllgR9Edjn4 zkk5m2D|y$Zj+%Z7aprSoMz4_(cVT}nvxfxs{A|%yJVGC1`oUr|HAgu|1wBQXVSD)C z(ckx8J$SS$PgpSe7@?&Q^MdePefO>5ffemk-Hi^Rj`kaD96AnP(opJ7S+4*#&nRG4 zyQBv(a=P5w+7`#lt?e(MjEfyzb&@63^Q8-3?y8?{I&>S1o4*}Nh7J#Ton$OjRzfwu zPbYSJ`&-TB_@~M03~c_pkoKBKFV0VUt>t{aMx0=ybBwC-Yx5If4EZ$U$6zUfe>>DA z{qg*?+k^?sAEsdWO5uT zyXB=;j75h0y7uH@^NYp|sw@k2B)+xh{n^a;i{a2PE{WV1AHRxkv=7e~kh<#?`<(Ou zRE^1c!jn^2L8%MZPSx1nW_@YK=W#qjkdDAEI+=gq6sq#6gK*8(8Fe5fg_RD_TrZBZ zXlJq_tr%qop%C2~a6tLC0_ZcHtYcR8O zX|=Y8%gK;w4wtAHtjOepeS`-M`lYB&vl`E5owU)Ye+*jTz9wN=wYuZuOntD~3|hqE zT&nLvOS3|TLUGtruT#Y>LDFPL!;L2u+Digh*#5eVUo|!x6H}4(&CcHAHC~sESv294 z=1iD;%CZ+0F7)@F{_VxnCr=+ec(MQH`OBXGKlLjTwe#}D-(J1m-P?O(6vqeuY=PbW zE(>kjpP!9RO4ds>A)--o4MknfnUJj=RUG=-`-Xr3*iww3%<`0R0HP5Nta8=G#cZO( zFH`Q88-|X!I)bl4UO>M@1V_Y50O`Fv- zUml_?hO70>?M`OZv+K6djA8RPZ-%SYBG;2Y**xMOj{_tc|}QJdaZn0f@a zYnEr6GaRG5%<`+kJe5%b__<6%FGi<7f^3@Nsu{=8&I*@6A29&kP-HfB#)e&f^Ld^r z_fJvIqM?w&MhUb4DO9-Z6g#j!SiI=y$3kZLy{O-5YUTu>O7RcZz?G)Q zUQ@+$GOf6&iY+J2;mVYz&C6%_$S#sj7kw&>E)5_qaqZ9%lI)P)dW$K;dK1?P%9r1@Fd~?s{m<+oycjU6`=EzE z^3aD4O#3Aw*dhced1Ze27r|Wfg4o*8eZD$f*!&-WRsTQY5KX*<_$1F)EYw7SGT z&g(*gxlGjLpdI{-U{893kwA>GUeDe}x;b+|e`jy|{2?p)(gT-=axWREH{~Z+iasL6 zSWV$~Jg{<>0t_4EfhY6P8ScpVhhz-5kiw*;nMw&FXlh+08@DQrQw2*C>J2_^g=GZz z@a#5=bVEwZ)S%;%!1>CAZVh) z`zuz9cWvl;gPkH{B7PC* zX!m@gE~+qulu>yivB98Th(pL<#UTVl0(MBKZlupJ1*@MY>yt-j4aCV20a2>z>+A0X zbsbsAhw*{V_rE`^7XAPI^WLi+1>5E`G#maRfq8Y5Sb+lX>)Xcq=N}BEk2!*L5WbR&A#m+$^KQU43w}I5J;H>@LNP$yJbSNuCt@I`8UXfs>DA z*2OwTWJjmXCL#MRX9|7)$xIF@yy-;MY;;XIuekEA!grgjq-$ilc!DRhrL6lVY{}|q zAWLGM3+i7@}jSQ?LRPL5S^BCzR1};UP~le#KFq;R(9r z4!JrVK^HB)_wgLk84%N9;wi>Svgbs9Y9k#NJ~3+>K$P-tXo5!QLoIj-X}(IgB6{(K z)R-BYz#}u;Ys``g|D|Xy)DU0noNEDVeFEOmF0qDh;pr@V)kk=G$`|Qb`i8-=e`Kgkt;94e* z{K(dQiP^k1sbY7}&mmN{igzIo=V!C=aCz=!?}I}kDy z{FHCUQn~Q+o_Jcekx6<-RiXPcwQe}s??%fScw#`kcK2wgl~^j0e;fgiUq1hFJ(;d< zZuQNd(dF2c??F!crM2y}omjMY;>-24?M&5SF#T737^FuzZ2Ds(dE6ql*K~|fK9JPd z&4duo){^$ZRV{TWz$0(RO3iQHo=z>8hHRu4uq49argr`Sq`_Hxr-Gr~UZ2E0dPse=`26ab%v#o!#t$ahT-Z6sRH)?p! z)}^rfgLPsz(wJqkvig(L39$%XR-ynTPm?BQkbD4=NO%dy^PJ3=ABM}Zn0DME#m4Cf zF;6upUYcAj;oFcb7T(w&{Nl+`k=|$M3bFsKTxZC0NX(d)w;tqoLha*T>+WT@*8UK8 zt4RM&)7;esF1Vj3JB&PL;vLYrE1dMNedNpL!v>=-Dj>Q268oVJZ@bwn*(2nYrb({K zMzeIgG)viK{lu=FRXE@$3qCOpgc1*jqj$9*Q!N#~w%x)#i@0F&onRn-d&f$?BMrpw zm|ehZ$OEqn#HUtP4#Ho(aA_)t9;A7%4<7^i{q%$H7gse$q=(Y~tp!|B;@ zUHv#SBg$p-Y~`SN!zgPA)TWr@_ylm;VLhHrQLCG+4km{dn6iWEm^kjQUB^qd;;;jwK?J{`H(R@)AloU`bSq>W>tVZym3-b3kQR47XoT@LQ4T@Dk+;#g~9OL0Z}7~EMQ0s%Fz1h&S3^F)BA zqsK3GwVVDwOjLdL;dXLH3^$WL<>7WkYlj;$vs_}ZafiG4#UIDu{~b05wi^Dun}a<= zUTJSYFF~S2G2mtW#)$R}_41DChIdvCUlDvuHHWd<<_63)jo&l%vCnkHpa-^srqkoG zEd*d^HYSi(mi685!(J;^q#tLZvu%80i1rmoUX9mob}te$p(bwB0zewx>lxu?hGTth zxUcY++N$#%-nhvSD%Z9n5BU<~GaD?(9s&3+dw_G$R<_;w*&4+0WvCL0Rj-wQfX&O_ z>c#w3X|ash%Kiq zYG#+uN;f{{MF1F!d#&}nbeTOlUT=3Ur5Hl(hWjq{?Rw6lZlEeJ?AP~QyRVvDB zmGq5Eq|lirVyG+5k({Ubq;?e$`^zckq(W&F9~-D z=CoceZ#S+#1#|_cQw_-9{;d;`1OG?38kyP0_TS`+0Tc=!Yy;i?dj8sC#COx0MehKl-2!I>n%eG9goQeCmJL9f{xCQH%2gL*yTk}RJpb90 z*9S=p__gtn+HA0}NHpwO=iNZDyyt{vg(CogQV{iIdXg<;;)g)^7 zRH7Sfa>=b!#7rRdRMMu z5Hpsh+m5F5cAg2LLhD;utTV3%5pPCS9r6rQ=XTDVCi|q;#9_Vc!z;O$aqP~YY7VV6 z=ebNGH%DQjN^byb;55J*5t|k5NzxAHvzZ>-q&}sjG#8JXsf z&%DS&%C1S`n4snx==s&K^c#W!#pti>=?fOt*BAWtAajr^MLr;!}UL~rsisff`Tv;FQ z!ZkFTWPzC|m&9cCXg-||7l4M1MoL%09`*pp1?_8w8ccde9LnY0XS|5J%8ImP%4)15 zTo6(y#DuBOdotOVndD$uaaZu7e=r-rt``0S=F*Rf4s~gZzVZS(^P;>V*!xl2oiqkX z7e8SU^A%S=%L$tHM(f3~_avBnidSye${DRxv=)!xatCql3k@Xb6{Tncs8o7z*=U#a zdT_})AQiQsoZT1ubFQ`EwALC3jaxl=)t$Q%QFO&lFg3p)mGktxS4%!(HF&YR2MS~@ zP}ImRPy{Ar>->7ui5x~nApuo(tS|upPjB&b*9rQ*hrQ;U&-VM=nzCEHM_A)no0%<2 zY)d?TS`~t|f=_AxB4;SZZ&dDmVYU{>!FH}ZODEpG@B;FCWlBr;ULLE%Po(gbJy+86 zrYB{(5bDb1wvAbFCUc3m9sBSd+9ZK_-qFbk~q_+Yslo(_YU7gPCt>#nnQTaIDv8F6RTI|!zCA9j;Qfl+SV$~8$gCC5?l zkL)mA8l!ywQ~*_(w-~#(I9r|Q`(%=SLyjs0j7)Y|d)%iPWqdiRq(%TEoaq{6@HOE+2g68{#c7Ua%Ok1s9*o2vwZS3{0KK?5gH zP+v#j5kbI`;!zRO?6+Vb|M_?>^IG#6#f)APqrk~v#&jpW_>;PkH=)9B>e?P#v!|En zDD38LiZ$K~3~&tzvNDwSLK^c1ehtZMdbnDSsxz z+Tu1~B>CH(ZG&yV)f2_hRjhKvym^Gj~e)KVzWkSY8oCjZgo^{(r!?e zS5*E`rLAg6tf`ZAU$2%G$<@pT$tYTMwk%$vDoZ-TN_yFj(dNISjbEa^QnwZNg>d8$ z-Y8c$aXDn!{|ZJfyw!sp#MF^mOl|+H?&M2|QxUW5@Po@}KAk2q=%gCGGy8iwRPnGQ zj8WlHyl2)eQcVo~KJX;cp{R+WtD4=uWX*C0;XtwC2<2a~oI1$?hgOQJRE99ZqaAU) zwsU7s&u%8-30d~E&rSoGTJ32&Q?EV3m+MVd=}L=xd@_7z*MPmeOF1%!;s%ZZhGHnv zkAB;$hv)mlw-{8{{!6=yen6s$bnT-W`gC?Y-&lS4#GtOtZs;^vg^NB@*79Y6LnyCZ@+shyk2B^UKmYK>pwsM@p7 zaQZ!jaEu@q>muq}{{&qNA0N%v>zL#_u75EOPOK-Imsqhx6%1(MTje*Vbrk@=bHjQ>P+U`nYXUcEM5q>WB^dGxEPXD>Qre+v0xQRBK` zYYpbsWv6^)b5%;8wuJo>&ZHxm!HXwuUk}#lko!(9;Z2?|7)0FIR}-FC0=6_yHLRFP z(mI2naHtc_=Bs+q=q|-U8LA7flhmipM_d70!jp%7*=r?6#|P+l(3K$17r72ut}1qm z0ed&^TCDkU9gN?*&J_EEcsV>uBtS@YGSk&7TpI_oQ>LpSQC>zw3tMx;@xxv;A1*8& zMn@Hi<&B0fVC4N&&^KJZHYpmeTF4)WfAvS+lUBQ}gc4Z>_3J;CEj0u&T_e<_DMjIB zW~c~(VpBdDE;Dep{*0=_h%qQ)0Wjo)vW3f1x9<|Q<}kN&!HaiU@FGRcvJ_%9)-7pd z`t!hsO(o%qrDz8qGPk!Fj!23S93Sfs2q%x9PbOSNdMNcbm8OO)5ZFH z-y*YTB6ey3g2k?#1(HPv&_0snzO7Oy?0m|xS;z4;(7R)~329VZHvN=c2T8}qTzl&BBqZ_ic_rqf)G z93L)9M?|0bj$a9}Y`PAb)Du=krXowxK6I>(7|QKXJ|(E88b?d99!rllr%HCqFNT z*3)qtzrdfx4|eBMEdK?ThhN^!F%&{C$M`FCa-2>Uxr1KtElHLbcTM;qTF@fa^Zl0h zd?VEiVx6irS|9=vT8JNkzS(9;3eeT}6K@GCYzK*xf{t+yM-VcQB#DVVQBz$7;`$GlJ6eXgr!zo&vRF?lg=%P6T02xw7mOZ@0~?o| znP25Sn23Hw2G`6@RFM4p_wAv@D%v zWAZt-Slvi?2JNXZq`7OPGDEp2%oI<*p3`*CN&c`EhiQNkMVBJ}_Ta#gci8QTYK}bD z3>Y`7#U88&43gB387q6y6rTT59r}aG&rJP|h}D{NLZZAbn7oN|P&`FwVj~S}JR)L} zO3j9nQi(L-({qW*AyX6nR7y0Ml?!c@LbLWVEA2^X3NCUNEF1PyWj~`8h!Uia7N<9R z0x)y;VEn5&jm_52Y)Y{p3)M|Jk>*H7PGS@6@ARV%`=;**FC#Wcd0nm<173wXvZ;y_ zr`?G*r%)W2e-FtsH&r_l$ME2=TXJ*xVZNOF3yz{w-;XDVus4|{=V04Huk|q#|3iwz z?}nohx~#lX&z$CM313gma^@-{ON6%Pa_OnHSb)uwYB=`AQa9ON3*XyDwAZ{Tdnsc| zr?=$pF5VOZcMI|otx`L~-~mcNa_G{IR|JmWF)`}0S( zjwt=6=XE#jaE!AmBZgn{8xEB6F+Er9iH;*O)Lnj7;ZbQC06A zDV!I^I;E8kcltR2-OThp`KFtKxc~~b^#qT$%!HC&t6WvHp-k%7WGGXa(2&I#wo<&K z@8l;qAk1cFv*ZfEwxpk`<$5w|vLSsy3ub0B8u6)^a{X%Nbdy)|jpy?Sf9k7@W z8*0@diO9uxUnPvawBTi^E_&CHJI%uOQ<%RRUo9?+vl@#^Tf8T|PSVsR8zW4M2msnH z<0Go>$$7-nv-I&L3oYw^oA6TE)0b4Kq*~VXHRW5)0~c30wYvDu-qt#l+F?*UH2)sM z&@^jwaofoCrRT{1&P%BV`$dkMq}I$>Yh|5Z$myvpiV}&EYjh`Z-EP7@-l?6DNaaqQ z-*$$f>bFX5CKh$OCXZFty2+(sxqElJ-Tz{}O0Hn7-!nKtrJg<-#^0KhOi;Qzdmhai z3?%dAsKPu)R!{SQ?My8P1ilHnDY(DBzt`GgUyRK5yodtMy`RPY~cmn|(Z;qtuYbwn7^xCTN zGKl0)ZNGZG+m?6drj}-*f(iT8L|;TYDeRzxGfb>gRt-zM^3LQ>(k!4-;{yeBv3m(?n{T zS&A0Cd=P|+r$xBE=)A0XYYkM(n=&3~jbPOk25L~~?T$3wHA#Wu zI|)9CIrDB)lP;B|zFtl17vp-7l0vt%{5E#Q_DXgIU>Ijj$S)26!4d&MH7o;PB$;}= z^B^3UW0{DsHSmyK*E+$`SklBm@;_*5VHAF7ChUq>)_%S*9xoNANv%5)HsLiS6Z%x% z1aK~0S>+(d0RZzUDH&3B0{tfj=cfkDzR}3AmBcIjZ!sw7j;;C})N_n}KNw|w$%x~e zaf(JLc3qe;kHRs_TlKDq@m-ddhH10%835{&X*J0nz_9t)KAO2#PK^kdn8j_c`J3C! zcbpPTD;lXFC}Vx*N{${W$qNN-IVQj)eAtO;1$l~Bmsu~*gZVWD?lEb;xBSv7VOWi; zUV!WQVi1u5lGkYVas@0dl#32){iU@{dp^|grqxsUD1G!s*dHl}@A2HV{gqEzwsrL%{ zE3L=O6>go}L@%wi$IU~>L)ERvmVM7=V{@VnE^=eUq! zKP=J%FEgs9(}C$9JrVV4+rkOGp2ou8hc!vByiE{ii{p*h3GB5#_FCr|&&5zC^;@(x zUZ3ltt1sid2(U^?gA4=Ao0eC<8NnNj%;CE}I0=4)U`yrQxp{Zag@)p4$ZHNHD>cV= zO3ixrt!rZF%>6jTM%u>SU(OK`?};oQ7+xwZS%@uLhSd!YfJcx9ma~Wr1D{UO<)vDU zs@d2G@0D4gGR_b`hd{&ixVJv(jfO~PTRI|X>Tv~DsE!iXZDUP?@QIjB_L=Mv63Wq= za-7RM@5({XvuU1_6(&}d=x4TN`=SrDmR&3#qO8ZRCA(9yh7+V2Uf2G7u}MW{zsg}_ z3JkM2a0wuxUlrfA&eb^2>HNdym3^;N##ugba3t?~VqAN%SKVBFi9@5T&yQ^{_NuE2 z=IEn`Z6@o}Ex@aJ1!u5|lri${#l101KK1Mq^#k8->Tlf9oE&XUwHct*@xx)>Wc*OM zy}t3o_W#)NOTA!g22dQX3IH@!w(GNmWO6`XJ|Nt19cSMcepX1=f9-!*(g9IHhPzxQ{g&?yv_2u_46$U6f;nQ1>8 z_Qpnb-Mc4(JmJ146pVhkMeu}3(Zl6+((`axPtBI<3XcvRu$B^k_&gURI268NEeMIa zFYoXay>fEM0077ekMUfP_|7ik86<-lzgPI|24(jqEM6D#o3K3h`&TYeLg<4WbPo?A zrlYy%zYl7-e8q~-|77KWY0$Fra=AMjzdZK92?{)n5i(AD)g9#Ok*cV4QylCU(YgLc zXw^2@$jyF%L8H6BoeihKfuXT5nGN4h-kOtf){$LU$ATii9$z}yyncPeuLE4tzliT= z8hvO}{Mqb&`Ds+AE^C=BdI7nI)fA=# zb+l`plAv||cbXEbs_Ii>eFm;NBdiwn@R^A2h1*S(E!_pC&|TM;E?`TsT!$ch6quy_ z2M?d^wv8NP<{11y1ZroH+)~e_F#;J2S(J3?nEPj$8X9h~Z>=Yjo3N8*7r}(p7AYUp(6- z%Xe8Ur)_Xcw!2;AHA?Mc{c=Uk8l6Wqv>ScGDf5_kwr!;O$tl=9>>w+Z1)=laZqrzSL(W?gls5%%WG`4uQok*Y7P z#*H2#*Itse6;Ow9=>jd^7)(+dhZ-v7htfo7QP(5obeTC(@(qxSp!5Wr_1gJ=bC8<@ z;_6m7(_eZPh<(N0ebqyJI(*hu=b(K&dF!wA4$V3pdfi!3mO+eKS0G`Y#}pZg+&07b zx9R-I&}~Mv9wy$ZPY?Y;5Nfr$kt}DFr(&r*u)OKBnT*|_B+J8NH9b{W*6Hf}VNiI( zmwA26oOE(UbqXIY72;H9=%b~g>!Ye2HZj^~SJjc?7)V32-S8eQyO|+G6+tX{Mx|*3 zioh|g*BZj1LD21vOp^5Q72Buld+ClaN7h^2HW;$?+KF=Sj+W)2v8ApwItaI%7{G1) zOMj9gLzCe-R@5GL+uEJCV;R9Fb^9utNI7{LmE95yrPCCw1WHfT3yAIExp}O}a!B;n zuw4D-3MC1Fu=3<6CsD!is@Be*t+^Y0*K(PBf?D@-slxb(fzfUunLA~;5w&@S+~F?x zQWCJDq`*%0Ft$H`QGL+4su(Ka^jkS@#W;yZigdkOq;LKbwh{Iz8XU^sGn>TDpE4J` zgf$5}rhxHj)NR5b8dIdU7`q7yi6EswPxMrC*lu=xdyOv0-HeL2eGMueW?GTmfyibT z_SWfU54y@yD7d*_!SkAWkzzU+Bmb(U0B~Bkhe^LdL-a3u=?97gfAeOzT20>0I+WPe z$>ezb_v(D$@cpT&ZJK#8S}&*io6~AN)Ze_T&L3eWvb(GaBpUMM%oo&x;5$(`_|*eQKIF&-#uO-0EE6@C>3MO%XpTtW0?53fb{tMcgA-z>O0t;h(u8ZopU( z_e}4x(1s!hXuZXwiQultQO&r9jg}_;1J+6OCF}fQ5sgjH<6DFyV)$XRtFxx znE*KZ4*dIF%g9#L@4bfrJic{{68-VO6ufQG+(T*e>`+6`F$GpORD5{eUo7YA`5G<+ zR@2F->cdg06RL=4fX&X9$9P@}xxTJ#=$kdS`M@Rp3o6MCyz6+m_m56j(`7Pmi{yfn(a-bcn3H{_@%fzO zg0s~X$u05w_Gjbw?Hs?mzYeY7?^naoNhfp11Ul8ird4!F7K?kEIpCZv5KJ_)*Cf8J zX0vR+vpZFrZnbPna_5itYc@^_IU@-- zO1#i4yQJIGQ!OOpxA1K*H498ntvRB0s{lr63)QY5v5?<g{T+v!+SL<`(YZkG=u|78{^+>VS zS;NzptIj&9HLlJLw1~e~?pRb$4441I)`(IfAw=HOsTqL?j>AXhijfQx`kpzWl~PaA z(av7nl?+qN-NbB58+OutlIf&-TOz;Q%V)z)Iw{=?i32ZLrgn)Uw~#|D-&h98M&mUV zCYJ{Mr!P|@2nKZpl0z|G5b1d;twDE@03;_d=0~<)A!y!WdG(UaHKa(WHM<>SC0_I7 z0?y2-(cR_+il7K-4RHl%$UAvw>M5xN53}PFclyMG3|{R{PnElhuru#yiAwcvza2sf0o!aklHA6J2bRmxF*N>h{RZ@hr@Vd(bpAzUi) zx9fR)*Oe}IJdO*%q3y72K#o-!izFpJ8TOkk)effA#=4NY+u3in)eXc9mTRon^5ruA z&^#`TO_oPL*-`i9K24^_ z3I;FAPFF-A{ zEB2DmPJl*S;^{Q+CK>tSeJB&qWNO!Qk#*^!+cf&Z_>) zYKR(A8XBvxF^iJ*&_aHMT>ibxcs1}fWt-M|PU@x2$m#RltYPvxPVv=H2CUk*BZsJbm-Ybj;#c>DDnjGD-5+KgV{vg-vLRdKq;_AU{yjM++ zy)v9A^Yqr#ebV=due;5xe_U}$41LZj%|?Q&ba-M+{aUN3a=D8V1WwX>lcOoPBSEoV z=BpShE@`CX6$AWd)oNXh;{wbH1up}G0PH!(BU2EA2f2pE>2aSh?c|j?OPl^Z1S{8c z3PJJVNhrTl+?|AR%zY$$b$LPwG8G+3exf3VJ~O(Hw6E)e(JqvX)!qkAGsm#LWJ6*( z4X)#Sr3#@y`oz$VtcAC>leV0;U9x4Z@r_)N3#Mez1HxonP3MLUHfPCAS18gsBdMXyg>IDiI=$QqosPq4)UtG>)Pi+-*?KuS6$f?X(PW5oM`Kdh zAB7X#izL^ZU;`ydkgY`+<%lcx!{yDbnr-PlY2rk0~Gboa4LP=4(DHjn}G?;bzPIyIpW*=W`$xz-?a>@M*bdY%FzQ zV|0I_{TQ%LF$?_AJXs7!l{MsU<__<&Np0#9@1=Np7V0k%NY_>Eb%HS5c~5!u*k3q~ zlCkQOp~=qiWz53q4iVP5aPAP0IGbVmUgS2FyzP~pdcwqilFTqjxP$w1!y}~TdF_e` zebHju^1;Z=I8k%ep!;E9m>bL00--IJuF5C^tRlg2iYRdR_`f9uGX62piXB>KkX~_k zgnG`ka#}Q3!*Vw4t1*W3#b=3>D1$sfs@f0G!>6+pEyYEG*a9kAN-~?S?9S#PRKwZG z>@oADbMkIPKW2FlB9>I~V&=JKRCHo(XN(Q(7I@!{UhqXie`)YZqgy%|%g#aUh#`!htUREBAuc3uT1fb8XgiyG`!IT%e{#q~!ON;x>Q!)eI%xZo0F=XGhXR*W_&nfJNfE1n8hy$dEv!n$fiYK}C>bL<#Vyb!H zsL)X_Qp3yZYHE56P?^WO(^G=aiu2jvZZEAPg09SSNoz>=nX7p6IMGh*)diGzxqR*t zogHsJ{_D9V)_l31H(<|tk2cMpuA3ed*>dQ1)jR%Ol?fEbon7n5PvuD8S@ZpS?}{|w zrI^&{_|c%I#YU){)E}iu{k2H-nFL(QoF-DbnahS}?4o~$PXf;Ni4I|uZnp$+G-C$_ z1{GG8BU#?PWNV(E8#uGocdoGhvUC@z+Q`|C(1$zvA4H=?b<3u1Ltd&)*`ursa>d!* zV3dkE;yx2G8*pARAB(0>JQ(G2?TOfs4Y?Wid^q$w?}6^+MORXjg8z3ZhK7ngGVk?} znbcP2=BG~Mh32YiSCMTQM3+@Z%&Ia=%XUr^*SNyQgy=+O)0a}$&{d)Ac({G9V!KSQ zb?N$&@y$V+DmzC(6}yBazrF>%$@)~5W^otx5I)&sgE%T=lEh?%1pmCCvNZ#A721Z{ zHwNiShP-xRHK|-`Ao@BH{+;#fFu(RxS5MU?^2^e!E5=*2|B#BvLd@=cP8NL>}`*=I?5Spf3hRMDeju}L?rW$NG3#Rf9giPw?!% zxiloL;%w@S=5K=4+@k=j`X}bUAzupJCm&N{`i!&`2{tvMSQ=_TlQTJ&H5=lU`X7-2 z^GTPTTVnWnkjYGuBJXdS5qN`pmrZj;B#N|?Jynft_WzzvvEEv;`Okxh;mf7X2#8uD^G@yOx>>m z8{|>5A}AiU7tBtD)`&HLGZ+8~6q5J-$*qU_?DI`? zifNKsInr>c|KVgZt?UJ$Pk_|AVYFZlrd-F8`-XORiTL~PwKkxcWZ8(6Vcux&^3Gvt z#`!ceLIAy($C$~hE)w~i-O+iFqz$&j0&_K6=s2pjIgmbkYpwqvPf9KwK= zUh7jUUJ@S7-=3}7gI0U1%|t)>)@Ug|>_30zn(4I|u8w`!w~+!EU(h*PHqgm3TA%qg zn_sBx-Xonu8lntu1|;kwh!u4wiy@p1LsmAMd?m8GaJ>>-Wn7_JhnejJ@+91>%O}a1 z2z=eK0H9<6GYhFRo}WsgBiJ536gk*{4O!?K9cyjR`?I;i)A>xM z#VDX6kt%#TvDiD|TiI*LSFop7>#{{xv|x=~q$28($y%r&AE>PVPg=D(m*I5Xm5bNp zxQ?{3@DH&h2yB^K4b5E>&64(>>HF5pvuQwrX7L2@A}0>Zi%-Y&d0WFSt&b zBFgI?Z4vLpWW8X{yK22~iKWqNNh_aSMY#%kiAXAe@-bOGF(;F=r4bD< z!(-Ljo_9WX*<2UN@f4O{CtyZDO&#L2f-ZS(6L6vGyrJF*CdV%UU0J|*HvAcgS>Tst0HzGiQy0B!J zH#P_HUc_~-*J@VH{A^vUr;!I9r~flh(X^g)P;_+YCM(`<1SP+J8$0nzN89mcC~WJC|DB@hs(YAD#vWu1IZotdd2SEI9vw@!v)7)T}tM@e6-d zPhe4Fbpb&Vlk|!XGN)YuSenr!vgoC`@P2NxycCo>nHIq}Z!$QUgwsThX$8$SE5@jm z)v82UHAs$KW{AqQfdjEvL+SXHXJ%7C`Pwt|mkl<|P41DbT|=IBg9nBXL(SYp>l3JE z@2mo0MO9#<+v&?#1HP1)pH@4vqGYA`ff%mC+Xog#)(Ab)f7bIj@p&Xr_oajZjWGK5 zeYXkDrw62L4)W=Q;LBNMQ?S$>)C0aLyrkD@TbWZ1O;L~uPw|L_kL70LYSda_$vKBQhpHEBeYBtw*Ee6TcLN)pBjF`l+V+9fb; zuBjOK=ZJznTgrBkaqo1)n`B-wUz4{`SJn=Ogk&5sXK#DEoLt-_mSW^bLDGE_5I&t1{PA~Hi3*PVvR?vPUCzic=SW)oje zhErX}+ukXGkk%W_G~>KusT5MMCdG<&m^qfvTn*eAOnjfoO~HbT%^qzpEd#M(aC&SE zn?S#WIvPdXx@MH6mriPy*8;6gd5nAI1M*iBP76KLj6NF2rNfyTYRXxEx)~Sw3@MrM zA#`jqLf5hqFFiIFO_I{|N}C!%N`e!k#SyY2;+JdqCS4JExtPepVum@_tAi~n;arkgvQAGjNhf)%QHr4IyMmiju5nuCeygGY^J2T z3AvSQsrcDP{Sfrg)l{a$qormv$-NYFo2^OO7x6_O2}N%!{(K3R8?SS9d#%gYVGkh5 zE{HXuka(K0B!?IRK>sD*4W+W9Ll$s%w!!OHAWy6(~X0(x;I=xfL^@Xp7T57SZ ze{i3N%aY^1oE@7-ts7Bv-6!$%ABk=D#~WGUT@ns+%`GxI1I zpu@_Gg)kgtoacrlz}sG&q@xt>PJFJ9IRD{Qw>HrF(GYdRe1Au_Kx$7Rkzq;U(j+$< zTJ1_N4zjg0INB9Ue}l7}m}`B0b!A+Rh^&(gX=Y^V&DtcKDT6kmUwM9Jm~tA_?nO<| zllJIm_!dtW8V^p$bzkE}2oB#g!8F@UC%(b9yrV<)TJE4Rzq z4J&3A%v>v1^hTNGL?|_HIpniYPC&LHhxi)<5)x` zD3$V=hw?hEUWk}Oe^>9X?`S|jy716eGTnk!A7$|#i^L=+SJ+xM$r1QX-A&MoncmbJ1azNm)F)GQtYJ(WZw zY4o+VR$$o>a~+>$Gp)Q_#*)o_x~|cUDafEO3W=W*0tVG%*y|#&K8mhH0riOAU;&h2 zA4?~)4L#*P$3Zv9(MGZp)4Qa+ln0~f>B?RWJ#vF7N)bJ3uihi<>kaVQF5{j^_b+b9 zyvoVA-gBJUI`6qNGh^2hiw?MnAvG%``FO$^Dxyc2Y_H z^mOP_vI%i6UJ$udjtk15c7k6k=*bU4mKqD1Lr|&jI#gcq=ni-78 z%^Wzt`D_lHH@BO+aK3^`Sysb$n=t%00>{9EREUj3IuUbEypH#*tuxxxz{gcF7fu6Y zzF3;fn@enVZG@CPkX9AkP|emq4X0;ZYk3b(1PJ@t=@H@pxewR2P_MOhS5ZQSFFN*v zu48}uOV7{_H0-UIaXUE5rkJjk`P-X*~X+RHg`Mlc8^|TEY-d;}Lo~*IL+tccJEmMa{DsQPW4gT_u6gv*{vo+M#me-3bsNOTz z^Wpl$2)vIFeIt3#x6#Kh4g|%A-PUc}Pa^jmC?Xb$b0og(Q4;RcAGdJCV8+_zSP|BT zjp@E+>2}Rsf%<$fi8l%;dE&h6J+e6{mBY`_9H#BtB$>3F%tmaq=fPlBC-bxE*uMVJ z^HwL^pB=HhY`%dtkwu_O3_n;>l991Hr<@JH?cEg>kGP2BpqwelsBKdS(70!a%HZmx zjXPQ!g9}L~zHi+v$luX$_R_AKdVEwrwV)s2-}`gh?~E#Y!*%c!@Es?s*VS+gQ8-qM zbrbIO*za3gASyW__khnM2T5 zqY@F(?qT|&5bSIE1=DQc09Qb$zmuq15E6@mP6SzwDvZ_lFeJ2_PxxC| z0fOVX0sQT(TAn)~7;_K zPHQdcD7eeL7Qs#y(QbhS0J7MKC8JrrZx>+K&~qj$`-(dk)2Q-V6yb&*;VCEo^2&5r zNd6|_DdGSzK+;tyS#{$pil+`>DE%C+yF-JeIH5EbY(4{X>8ksZDYAJ!=(Rnh+k`$) z$_K7DPVF6T((@zFzvmgWt@1ewSQX|o8P7}E;!3qncB;Z{AcHj>zG>Ij%yd%r8{FkXWcPJah`io zpQb&FCG91IhYk?)mu5wWBD;VRUHc`uJ!cu})9*5JL2W#gYFLF#)h_Kxe^phXHx8EL z%_R{>qN<-m8j*SxKfp9}6{Fw=HKtqYYDdl(7F?5T>{_4(-Pd^#y{!XIM35K4B|Kxi zmFyjM!*-TYw#KY#8s;Dx8R{e6H^EDZXRrq5#=mm+U!!84t*gIR=i~W@kVPzWXXRL^ zdQX=3^Wl1QVm@E>T~#4ey2Xa#U1fB)v7zUuzxN+Lc=Y$ZR}UWT_DBKiy*eNj+9w^? zyT0g11Qq!I*n9WyHjX1<^mqRikXLsHh(SoSlk6^NS%-Q>yw)ou6~`aN@PNROoCw4q zGk_>X;{SfTs$W&z)iVQ1a1TCyb#*=Uo+3xi7ao91k?^gvy3v`O1(X3cr65mUJ4ySB65M3Hld7qVp)e z_HKa_5|8eGDLA?h_=%{FID2>vcgga<1PhPAlJuk@1Ry~?L!XYfcd;{7s#+wW-$=Iz7y|tjF`-^h%%SExu51doR!eSBxM0#gk4@#aYjAt8X7PEu*AGq8pkQ)C14Fc-b^ zZ~{L98{4MuNe#R( zj3^Yn^SA!9y-$x0KRtRhxNVjIMOQFQ)U-yC_W*rdNX#Z&(hd3YVHjlJ5a7Yz`mdjT zdim_rqi1d)zJxrSo|du|sL0T80SP}O1u^+Rtc-Ud2X_58Q)_X1b}A^y=SV9K-LBFnE)QiWPedK z7Le;$b4rcUcY}~ArU>LfkqevxbIii31S4rh^dmt{cN&(uL4_F1ZNt=j)ES3aNQviQ}qq9Ue`A+m`dw8o_&UF4XD^L0vVoXWQLznMo@x5~Vx9 z&>{29<}J3!Bbd=xWd^a32^oi$ny7DvOF|a#P8=4xxU>`9M2u#nHJ@=fyZgMaF*)cZ zk7C?FqOEnL+oD#)+#Jb>-doJyheC?t!JuVmk$q)iaN&e(xgY{}mJMR+0%Q4gWF4XSp(l)Qq);ECGkk1kKEE7s9+AIsNQ7hp znvi0+>rsU|8R*o|f<)K0KTk2@H+%%Xy#)3OI4gMt>%J8~te9cN5{4n(H7-7-> ztzKzUp4MK-i1c^V)v9`MN+1IKv8w z(|{KhAdX1=vI2MCXGH@DhLrl5JbCf8G6KU976c1(kM?L~KA+fM$2;xUbHWu`Lnz@= z5OBrf-P#X`@Q2!vzRKSf<+`@-juRl&jk)cT04(0K-;98Ec-EA4Fs zdCxAFIua&EYMz&iFf(q?6bY`{l!KRwx(jz>?`PHI+&D0qstPr#$<*HSSZG0%A2X_U zPt!FZ9*l47+jd1vCnV37Bh2DX!=CWXZi16HXr&2R+A;PUN`&B=Ag&g@Ym9`;ggZ!W z*8?G!1`H7SnUCfu9@`_CWy`3F%l~s#FN3f{8Vo_$LlQ+kx<|Px7`F>-nCYc*1up{m zX*IbrB0BiW(+lsCNP&`p>Xr*;qzy} zb^Lg$IH<{LvUNGlw@%CRb$##K?Qeg|Vjm}q)nGcVIm1WMo+=f(x$L)5XfbAo?P~B3{4^6w(iS zQfc>2mmCOPq2?*da3FPKA}+^;&6}_fdpKcNBI$pYPaq@$aFJ;KST`^svobAeN-3Wg zA#cWCxEuDJzoBW!@ppHI)JZ>O^%3*>*GwkXrc(<<#Q(om?O(1{L*LNdmBPtW#qP+F z4YXxK;HL_8h{G1uv`Hm3@1(uPiB1h&f)Dhkz!Y(!s^OP93aGE`GW17%Z{Gz??^Sf` z(K~}*oYk&$HBU|^bzPh<`tIT5^^mu(?nz`MQFc-qW1==T9Igi;9V^0Iwf9h+-gRCp zu&H6R0&fbXqcH2f87bDf|2nFHt?u7>Q-60SF(fnP<0yP&2$txN)Ry8#X+0n> z$A-lskChe9K4ok-NSume`W-I}~I#Xx?kV4==N+l(Im?QL;qPzaysohsoU0Wle)Ex(hp zOJ#tuyPFSCG}P5`2K*?KR5geR$0ukm@f!v(kQz}3o$#99iu}D|H93zzM>{}RjOM{& zk#NMl@Br#^=p^~lt7@_Y=Xoy(srMGfS~z9Qz!g}==(OR2K{Y>t+#2~!ZA@klg7?PM z&~>mAMw~IL%%rpG)|b7?b{a#11dK$)XxT6f_UgkKqz9rS>a^Ma6tAhYz8dE(CbiL> zQjsae8{T!$ki^XCE?G4}`A1@qX@OopHGm#p3qFX1w4gc1b3=222}81FE(xHmG#I%u zaXir}I<#W9Z-FeO#MIGhF`bfFn47w~?UA(jOBQiArw3GcCEQ0Gu8Kyy)THDVSA@qG zC40MxS!~)b6?WO+EDiE3M-0+7uDVk$D@`GVZw}<%%y7M^{{ms9^y)B-9C{KHQ1jmq zkKD*Rs1#k38U@&)DX(ZDBsH>jo5h<)kV_g%PFFL=Wl%oESN`4S-nnAee4^YQ~% z;1EJy;6hzMe$GGah-^bjkI5R*JD3;H?>NU|B6K`6mh5|rhaqWfGse+`B=m?8^$oBO zoxjYB;Cuh3xtF-X43~v5Rh4YVWsn!{OyweD_+=?4x`VJ9^G(g z%h2K%Zl#C251u{FlAoXM2jZa9nC#m2nblAu7jhbNR9ec4mLfc`I3-RFLZPlmPc(?W z_H&*ujhMrl0Vllf_$* znaOZO?CjI^MW-%?h1~kcwG}7Pmb_9zob>fSx3_Onznu8GFEfGzt6M`Zk{$u#j%s3# z!f34CD4_2q9Y;cC`|_G8Y&ELd&_5N65EZD*Bmz1l=G>9~ZRV73l0GDQxH8I zL`cO}diUc_f6}q6!`D9s77ALEp>^#&L6x$q3?pHXrgsQz$_X(2`%66KgY{1Mu8j8cwmWbch4nLG6G#A8j(tMhHJ;?xN ztGi}2jotd(y2U#MGF5~W)p#+&9j`BW{%E=SQmi_^@IsY)(}K-Fgrik!4VTN!>~2MYw+M=xn#K~8dSS^R8i^2T140P%O$VxC zD6&tDP9ooX{4Sc5><5M-JKu=D`MO|iDzeWkKw?c2Ilcuu6~jzAsSjlJ|DCzD&2ge3KWk{_rD<5n+L32yQ5x<={=84}s9x$S(m z{vPI7{Q|C*I~|OtoAzXzTD5(r2d7el3Y&=50uQSc#0Wp57^{99xwEEVkPmX~&?OZX(VJE=4{rU)BD(nQ8K zBVTzlJLRsR$Beslvq*bTNLug4T`9708!OgtPGw|=M`8l#j-yDaVDk$VYTIXadaB4r z*UQ+W<8{jK(PC@p`gnUgjA*hCx?#XKvw65|+vq71Vm_wEy`hNEO3V50o2o@cshbwU z#Ni${b82#~LN4Rj-3`RTk&awP&r(}e@W>>or%tOVF*In$5YRNtLA{(n5K^$N&i)hP z1nzj0!Zwm;i*C;LFR9Zt?UEKc=FA9~1{#$ez# zA8f4hOO4fHtf|uvg-)&p#mxy8O^#fg_CSi*)efbWt_Y9_&V+6mJUi=Y6=b%Ik*He( zJU81W%Vg8QRe{Z`ln#(bH-@Z}F59S-*|wHeAB@oTao`QQ84A!5^}{S`dJTL{DZU`n zMJHV5S%OcsA>F;$53jZBz|nD;$Who1G!wow&W|kFC)Ya8g1X&z4rQ4Ng_B)W`B|oR z6_gM#Ls3U{ZV0h=)Cr+e`i33a4?&n(J*OcXeE2IU9ODzXFlvF5sb>0WP2LR?fog}7 z>Rhv0n5R&`)DjY2#3kThj^#c}K}%}Cq*Zem1Hfjku`?OL6zz|`JSIvGU9cG&OP4QM znkK(ouM#V3X>+{7d}$YDxg6SrkL*}-zzaVkDIi~=iPR9q2+qP)aS~!e3P~hyNM6}R z4`!zeFM`)SJ}U-FH@ox=Jh%~y2}iCIg0V`Hiha+dVwaF+Ca?7ol33f?e2mFE6&mtD z#ObKb%`vBKUqtex?IzU4fB$}E3(`Q>96;mX_mGvMvlt8S;>6qf{jL?+?9NtdK{?^36Wa{fQ$GOFC~lGy3eG51&&wcdRh9o^T~xWw z=pLu=?l3aTe43^^SnrsiO|dn&X#-+>&|w8ORE*ZjQL(?otR#{mhAL;%>OAmx(5J+< z;|r}y4fRzg4RjGTk8}pqsZxln?+K%Bdy_f8^2wUJu9X2)AEHBNAz*|q4%U~KiXn-+ zNw-|K9nr>DYei`GU<$#W{erj_SXufmZ-`=*As1hS##myTq%Z2abl~mrHt3Lh z6Y`jex>rzuB(s-D9CHv^VKb{j8>PwiC~P1)n8pjPPq`5>&#a4fzh_(2U4)|e5xx7- zn=#m_2wEXHxC0hdZLnFP*hC1bqBHz`2H`1cOcw|pC}w-k8mC(aa@~t}PW1`Rc;cSO zjg#$I=9Hm(zi*@b)WCMxNsaB>1y5@)h4<1tK^JFQ)Ah5-KR-NvH<_;|u$H-g%3m)O z;*ivj2LAmci6b~3a*o7|b1;mnb9&bwL{(2Kxgyi$Te57j!ceV!MEdMam}Oaa``*3% z%?8rYqcJA>qMb%%x=sG84dpWd?z45=aAH*oFN2nE3KGMzHV%)zPM#PyS{&Z}2D5i3 z?~Rtl_WFglS`s!%kocsnM?q9A-+aRE-d43jL6M@R(j2*)*hf!;$BZ1)>zffH{LoIL zS@R>;9xJS+L$Z61Wr0F7S0?%x_8Kdr&ab(?ELYmIHdp3$9?4OD2&{`1vw4o`64iP< zeivF7`Mz1Gb)AP6#2Qj2+IFj1T{o3iIbX~UKP7oiEBNf2IIpZNaFxzey9Y zswRtCo#*|u8&<@KfxdG-pDgRfl)AbWWY&FHs*`mw>t{Mat{gs;ElRws)R6HymG$_v zk(+Hzcg&WLE}%*4j8px~&!fjL4j=FH*$Oz47<^*}VcS5QHuzN7sNgNKE2qp|VMH;e zh6pV>K>Of+_hsV{D5HP$Q$9TnE-PL+t;hRlvYI$!3rr;t@tc&(+op8W9 zcDJc{;I5(Nj8Cfa(zOdP3bZ#t@;M(5#Kaq5nn9R;Fc%Y!tOO~?F52ouE}U9{gsIPL z!|l$PMm5_|E9U+=5N$21D5L-s<7CPr`4^}4k|7?IgLAA@G#Ik|hAm)v;?7M#EJ=#} z_1@xnF;g4v<=J6)DVKDW3Yfb9+LM)9Six%C{=IH7yMpZOTQ$I02$0LQ z`>O}}d9i>PvM&aMHaw`J_ttQQe2AvI$n#l!SU#P+%i&1vN?|~ZoggeM zCPV{iWl#>r&JTgaN1y7O&P__yq38GjX9!L~zvV0&m({G$2CJHcOmg<~e6m2R%QWHo zZTNCxHu|HS&SQ|UjB4b-w_6V`HPmjn5rZkgKq2p}My1L+@Uk9@fILlJHt@e4w6s<%LMsmL`F24*-ds$ zY|;Te58wjKV?()w zfu;JW^SU}?8ra>?M3C-Bo2a9KKYTqZ;KT7i{`4Ju5_L)HBGw$|+VD^pl_c&ki2{2;-Y6Ka-b-V~oQ#OO!BELGcpCdfyvJMk30EEOjhtVfP9JRumipO3y`SBVzOuwPDmj8r}MxZC-x*q`~sVr}yhKi4Q zjDqA=OAV6_D-;<;@j58BHp})oF4936U~s`&XWQq83R0;S_s#0bghR7EUO!G-NS${cKtZ;xazKZ{nfx^=a#u z@l3Inew@aA_VmA)iwYZ=VF(hmS<_=vre%AQE$L*l9O?V5o*0dMkx$S4KA)~v`OjK; z{PJC1RmCjt;-7*>bgEuGGHvvaD8)1ST2ZZ$4IQ>4#)w6Y-#vT1o~-4)S=mIY?clhg;k z)vI#(sw$V0bA9TNj|n_##GRcEBZsIZMnEPt5#rCyhtTY&EyZ3!x-{E>_O6$`2>8}F zQ$niHiIKXPv1#lrmg`kaGiQuuo>t|RIsLKQhJ zC)La@r?4RBY(ZW)K}Evf(Y^B}qZRA*Ru@IB@9=NAmFMaQet(CG`!vs_ z34;e)1ZwlJW4HR5I>#+SOmRp$iif*NJSwMAB2TiT$fT$9V)|B*g>{`PMnSU+XXSL= zctRPGwPMHK<(U8QZ1OhWj}m3t?_Dze8DQ&ni0eAb6zY(A>>Ce*=}Gl;n7gQwejV1J zvGr&b7IQDI6Zhd>@?p6V^y~WPG@*m5v0Kb}kM4 zAbTYD5>$nCc)WNw!jNIq*R);ACk0@SllH)Eb@2h0x~55BZUGH|xEGU48)X^jOW%%c zKnA0O>!HKz%QIIZmdQoK6C}1Debh4jYK$BRTM?EHNM0#JRhlS?X3gbuTg^=ZjFeSM zT3Q`qDF}SD_xw*nvL|)KP4Gn0yyIbUnU`zA871(mi^MwyP(zBt_NJ~|;D7C6m)a&2 zV^*$8ATYFDcGyj-^GGpEgRqhVERMuVlLi_?c5R@}4=vh8u~1i0qcnvSAFeAvdES}v zI-eCaxZ9n0>KK*1#OT2Fem&7KuD4 z-qa}fvRST}-+7duu}OH_aB0@ILXUKtU1p&Wz1HGUfYK9fYUBnLs6x078$=iIk`^)* zgUk*3uS;A!{4`Fy4?jyFnbJ*27G*fBQgc~VM8sno+EXD!h}AV z_N25H0Cp^cCNn`>NVXN!=9p~BlF9X&Orw0AR=YJHb%)0K53Cu7%ztChcCEhN0BU+A z{sk}#?7lt&WPmJR24E@WG~%So=unYt4uGU7DpP#P<8`EIAh1S1BvcrJ0ZTUp21MgH zt;_j(m5a8Hd6X$pP?%(uK2vWbYh9D~i1I!T2kjcrBL zQTs8N$=xA`&fTU#9-u`+r(vQtS9^x0F3^dYgd>Djj4cEJF&HoTs@BO_Z++%OVW4`l zH=U%}E|=^R-sn@Ptc@7~2(ITZ0SeaqS*32AU7Lq%w4OxQKBF4KI1;PQWmrx-RUc7Ngq|fFpXDmW?)jjkf3C9pr1 z0aB!g57m+=-Wk57nh9J_-_EabJDOYu&8*xKlSRHxQQ&B_0X~ubllyZznNQdAN#g7} zC4_Vs40fnhSI)vTB&swqiyGUQ7uRsy>d_uL!4{_zHU_{9+G>HX42dqtZ=LQ!!1aTJ zr|-h8N5r0eV!JQsG-i&%z4{RcGS;K#mnXAnY{0Z9ApN)vzD?wsB$XM)bq}j`e*5>0 zRS%u8M)&@xnw+1TAf()$U+YGMoC&ERYZgjpQ$XTkS`nONG4$x8s$4p|?sz>l%`yju zI$G2~ABT<+C^x6&P^3kQ0(BOJ$PKLzI+;MbZ?}^0V12|mf{9YyxSLo}Q}WWVj`;J1 ziyP>9QC-TU?31iJYhx7=IoaB}@gOlV(4Q{KIuYJ&j?D3FbusK+%OZyBrAe_jZK&Ct?qhk{-%USJWnTSUVu;_a=|kgpuqSWnmTD#yvyi7)s1IT z*V(w2LA!upTki5kqrJGUPs{T)mY>Y$w7}Y!G5~79=W;>6PBre?Eb~wRu{CP}f`PG} z6CJs=goL4(!=Ch5E+^As^+9oyqd$7sYIr(=ncw)eI~J?$YC723I8Z z?ow@+V!>X0fyHjZC85XD^8G>aPaImN$F0`oeGE(sx6x#|1iJ?eqwG2fx0fv)Z7*FL zx7T4AMV0Z317{{vi~!|xWAG{DknTo>d-fF@t*xH6Wdt%3Z+$N?TY-GL(*np<$%E`Bm!XS84F37WVUN*iSHjJ*0bXXny>SU^89Z^L_ad z(Tb5{MC%!b7ZIOn$)hWi&GR(2x@nE6c@vTrHQdpV;d-!Mtx5=RQrCe3KNdpgqf;!6 z9K&5H)P`e?r1{liG=6+*m9ElepMTiT=UOTpv_+B?wX)~|5^kA(t9<^~hy#x>=?`hA zNRWXBvU4-GR;S23j>RD_OFtjPnwF{IZouh6)Uwr1&8E2VS2o!DsDzA8GWV5aj|VPf zaHxUN!*{gVC4j=*hzjjb4fpN=ssM3nz@+NU-8e`#d^=)-@;j zd}$GN|H|_P&^Py-F7_)a_N!D3NTDjz59J;95Yo53UywSDt?)$4vGL_VVf6QjhJS5u z_^BpeLCa4KbDC%x_72X=ZYjN>qxXrzzq-P|`obTi!j>8%@aZ(A!j1;h(t7Ap@pE%H z6E5A`9OrmOlR*qwCxd34{k53tyBl@DI3mU+WA$g;!^6|ArOqNy#6hBqU`EXG-BYE6!0i_A=PGXjAP zaUA64S0VG>C%aOxE2VWEYt8Gpu{CVmAtAHm`PTtA-V(N-!ZnBY_VL%W4Hp+b?@z7- zX^q=nl6sxn2!ab0D%e5Ms0MR4*0MkBlv~|1TjXPy5c+=jom`T}J*iGx_O7Ai=8S<&JD`yg_aN?*H5c+N2*Hxgf|xZdl2e z>s4MoJ$(MG&n7WQx3bgkwoNTGb?Pnta8$;l|ozUqvUHqSA7Dg-wSa zlyABbMu!=bA%~nf+(kTji!ld}hggIRkw9QIVMLf-p>EaP+LV1CnU)k7*+-CHY^LW{ zt)8OebEV&qALWvLdAyjp-yrV~EgDS2!1%pE_5lW8Q2q6-O` z#2^5_4jDsXJ?yo1(puN_N+BYRQ1G}O1TqciX1%z{AUoA>8mM4Di2(`r@<$;P&|uwU zPR53dg1Vv29sdNj@a3651yO99sZ%CDQ~by*Q`}2<(a&l8cJxY?csXNO8d|O;6jXjp zCM0i4vBwUgppY?xCT)Eg^JnmZX#{^v{6gaavXDuCSf~vJxIZj(KGs8sos<9GZe5y# z`QH<`r#v)%%3Z@R=-o0SerxUmF><*B1Tu-ikKC~#$k?jxZl*9EV85r3B^A8)T{>9CH+HQEjGrjNvknSxJ`YR4KYdp?U($A}lVxAkf zDzzIHR=pLvSBWG}!^7B>r)k@%F)EirEpm^k>u&-lGjwS4m&$~7fTzYZoL0n_w^9_7 z$)>@$J~T7a_72*Tp81hohavoo)qZLn&=b0x>2+vK?&L=w+JrR{`0-P64kWMn$+->GO}z$A&&* z&Cb-t(gYLKzM(n@t+l+f(aWMMEBlIKs&{2E>jk3Ouvj1ky=LoAKIEaa=D-d<5ZPF% zE{>f#AlYe+{UiOZXE`>1Mb~y4lBi7-6A?#2ikpOGd)PR=DsB?i&ry~D7y~au(;yl7 zRo^aXnr?Q9&({(b?(-w_-842|&u!Gc-8X@F`f~#FC3a|)pBMEiuLLj^D14jLSEQ`QuBL8)V@!`;0*N;EyufA zh=>-y8Gj4}To~;{_^jb2a&Kh%M&%yDQ)o|eVovg0QhgytOT)dfSsxU8)i?2o-9{7m z|9VSOp}KtS(cv}*X<>0NJa>2tV%m*DUPM|!s&5|y^srn{FZ5U&8S7xgtI4uGrqh?)OTW=JsiVR9 zb<`M&sOby`q;4D30w(z0&No5;C!4hh-S^Uo2E^R5c;NjqnZLzj^`Za8?7_VJWPYiA zRB>Y_yeXLwKAcIDvoB3G!1~z<8d&64x;hy?M(X#zyE_6Wq-%j5-zLVAkfN{44NO7I zj@48yxh4>o93pYZm&$F;`FtO*37-4gv6+*Pl(Ib(E}#*Vu$}Ll+WEe<9RoT$Brtr% zR+|vHrSxtg%5ioYwZdPlRqT6#$Er z8Il3;>{lU4YNd0e)j=|_WQWipz6hVnErz*`laT2Sts?J_=nP55tqxT?pTnbh#4?6{ z=D?7b_Azm>d0_-(?u(D;g=z)R8D|K)Mo*YaFUPq-fVP|S(``tS>h*>Pv77F{Em!*$ zj%zuX+NNBm4z0Nf8;!(AU8#$+)zA3{eQe>)2vt~!DZdn}i(+A}O9Fm0s1QU}y2Zeu z%`ULTLaLSh){xeC;)Y?2cs%Mg;ru3R(l}Xnu~SPks|6dFJ)bVo&%Ks z@-sy7E6$3%N}1EQ8d+WytLX)Z=}a{2FuoJQe%zhxZFJRbTVoExD4S z<9R#~G@3QHv+KvkyL1DDkZd@{uH#WiYPtd%RG78uen&1#{TNU~ z$#nzd6{A)8th@ppS{<{G#_HQo2mE%U0MH0c7h_OMQu_h=?0nO5H4a+A!?dxHrtI%Q zV?jGZxtWJU5<}1UVWefu{z>UP<&27JzZ}Ts+l7|in>ain;B1k?DcMQWC0t)pQWE34zmzQC$ ztcvqP$=wCH4#6m=gQZ5GT^G_9BsoXyPr6DOXs6{Qy(pzCUOR27aT{P&n@VqOQyVq; z_AZNTSSRjgi~6pFB3HYnInl({cCaA45hIpJNhhv9W00RcKsC5q(;%{{&iOv*Hr|BT zaf5~X!t2%%Bwr6AUk%N^AeLP>>tj-sAZAUFETou|fHCo9LpFkO8dxmBYc#uqLKcmX zd1%yhb-heR^G;UW32V7|0nZ2H-BYLg`zA)?CY@b(f)Z$owl^mIoRgrF`mVR_U`_^n zk1V2S6zB7c@PST2TLlxVk4QJise#?PiM@AXqT~Qo;|fktYY3i*YbKawzC8WAI^qv} zoUtypnJE|BuW5yuU`Q|`{zkc){{zglLvv)Et+~bg=XU?-n6h`nCYupo$K`ZBPM8Yu zCCz0IU;twR1~d^!z(1#dvaD6`n(GRxG!b;^@?c&(|hqo0i#PnPL&#Hez{zMHbxIv zfo|EuFje=yJyT`2z_x7MyZfyO&7a=9-@W_eoh8Cc*C(UnMkM;=VK=?RkdE#i6T_dB z4UlWlU47)P1?H$DC>E#nQk)knke+0>`3-y9$$2%k03q*919t}-kd@K2uKOQ#L|hU) zX+ce1NWz{EY(F>6DAeYuO_fS@$CLc3Z#IG-a)a2(?6CqiR(5RX%jMzfkG>ZV>$snwVb z@WDD0VN6v++p=eWi%N}gNJ;gBO~F9bA%RVMlO7>ym?i3h;!Izv^$70wGEk3Yy>Tylz5gr=T<5um)8xida#Oz5SHjHyiAL!Us*0*ty4A$ zB39bpGo1;RI%jIrSjn&9`WvAJ%p}2h*?>m_*#O5>wwJD-VwFV^!B#~0?|SO6nJiso z&tf)!$hO1Ge_=gFRxcFLPLV9^k7&iZ1zYr~J~l*`o8w2+OEAgv^d#fhsX=2PUgNJu zkQVFx%d@_;JOfOL*}k-4oAvrs9T8%aHZSL>Ue1eEU#;{&Oko*WG|tAo^}?V;(4V?g z48o{oV3*KPWBYiJ&TxL+puI}53nosOwQDf_@I%np<9bv~WV8IoIPKbAL<^q@hT6jSv~nNeg$ zpNP_FnmtGjLpRq5KRiom8*Qe0Z}Sgb+)0e}E>djs9FClv^E!ioVA2<{FgluS-!-pB zZ+PHOpL+DIW0GS9uJ2bm@EQBT$#F~eG;WPdyt!{_mzKvUD1$}@sr=h*PQtgsmIb`+ zZ{m^A-ff%hoWCn-_Ob)pP9l^` zu~@EG&-2wqIkVxM+9QAIaOQzIzKy>Z+=6UmJD?Q34sjBkeQ%66mV?Jl-4b42K<_xv zZ$xxA@v<-@vWi>cUMK0n4Jl|f7?kSDTT{~6(`(NSoQ32q!S7Nl=}>FY&9?{K0D0Kc z>gD3WWcs#Vs)2Wjy3yhMX+AsLc@!KIlE*}Z7IOHZiz*vfUjBxJz2W*BWACWd(9nzc zL-f~{B0EB9AoGR7=Y!&OuDL}WLyW(cb_AAlUY)oxp6-h~0tkj)_)yERiJO(YGbCG< za83%G!7D%RhHuBoKNZ~eXJfBN)ve{lQGXqDI2J=87F zz;bZOkgG=WroFs%(zn=0sUvS0i1ox^CEeLCY7r3N+iqs(<$~o|A5n~#SFG~Ot;u4l z7_e-x>2$ixqjg(r;-d4$(cAs*v?^=OO}Ctu4Uy+ zbz1kiwii2&%QAiRnju9;wjLB3j?!E*G6!lBl4EBER<%0sg z23<$Zw~(y%z(f>58}5VZw))kU?6+Bo&)^hV7U6oc6JS={~KJO zzRIm8zNZKmoG#avuXs7o$!>2NMk2N8KJ!ALIR_-Oe_ofXT;IG8zTnN&8it2j>0fH1i|mh z<$$+oDAg)n>mV&&q3I1AM~WW3TtaJgi;{1piZwBTqFGEo!|Mh*S|1!_lA}(dUcLZA zxQC)+JfX~B#WqZk5^Z}lD$x<)q=Gn|MI7Fuu|w^|uy3l0on1?OCLe)9gju-K%^p-}iv4U-ubvf)x6NyKR=jU6WG!~_YJ=CzY{Ct17ebg9 zoo31H=41i^Lg-s49NoxBOq}gCZs&y`a&(@<@tE) zvi#@PDYn)72sU*YzClbd@3#u*WUEk3jJJ2N%w@6I!Yrrb?|;91@89WUr}z@zU1uq# zyHo>D2aR7fey&mm3pBBd$aNYoAeJhhpn zKMO9>(xcJFN3vwS?LXXIzQ4|-i~^km=pD4x-Lx3i9=^yS2lBRfUF;nGubWbAgEU*4 zbe~L)BB;HhvIz>&MW(+grlIBk4Fwzbv|KM{lj=kEISXk-V7u#8`MR1v%2#15eF~q%0nI8$cLdhmYO+M` zWOp&cW9Z8%;__rPxB_Pdi`-STfc`Y8s|IxZd2soalq0&s*qljww{t3BJPk zjQkDiY$8}SXdQfS36BL|03m?RgP5_WesxjuJ3xE`j-5!gszLiAGBz);hmAdE13MgE zAQC~)&kd&*Etb~l@g+$d4q>zlyj8qB2r)yripEYD`YOiXM+{KE*{#J{GK<-izlpCu z_k#P6JdiF>id*NrpfE6rn`97`&Xp8;;U?uCnUSF@ZQPmZ#S7iZ$S1%>K_x&-2-0TO zKrC*FkU73T-E@f}_cocPjuY>_7nY@{WA~JH$bR(l`R(5;3aI|RUKR8D_V!3U`s}yb z1qnefCJF|3WbV6tkxynq7>&?!1Bwm!t>QeWb~rij8{;Eavc}X5=ZgOXNh{o<&>?yX z?3OL#qOGW6tUXBVgaZzX!eAiy;(46pSu4O^S#>s>lF8fED>-*o?MH98^Sf|z2jA7c zK6T%PSe9zv6^nJ=X2ia5*HVMSg8hb`vsO+SS2f&gsINkt&_A){Krh`W0*qq`^h8p& z_XNm7mV#^HDiXuj;7!y$UpBcE$+zNRDcXL=d* zHlu6Njd6~0Wy@F9dRi6BRr7VVXpvtr-h-m{{iYlP$mjx?6%I19zNPV+&v01t>=p=Sb_PX7)asxIBQidHX`bBc(Faa z_ww!;3!*Fa9{374L3}xnVr61v-c}#cO{Nl%b5*4e;Li?pWW{a11D)#u8v9 zshDOED-9aL3tD71k>2vF9>DMRwvk6|4+bM2C_G9Y-i-c+Tcjaq2-h-E%zNz27_uzV z7J`~5$c59n+|b(7Io{}MJE>qNQQrtnlu3k|ao?IliPjM3Ql*jp^L(;UoIUcTO`vGZ zazdK7QKs@)!@woA5mNwf-@O~`L9(=X6|%Sb!}1B*q@|O!3S6o&RpAlexW!7WVMJvN zBo5nMd@%9#Y};N0BiO*}MRaB)6f8LECva#~+O*EjU~hpb&rGN=Kbd7IP-e5E)i>Fp z&t+EAnOwB2Cyt&^v8Y~0NzpV5i#?W7g&TzjzRaZfvl@M_$wzqcc_Mj}^ zUQVjFBa}hBn1BM>CkZs89j!_!-Mfh5DV1YeTS=-S9cVBo46@e03!8fcQc1-8~@(3(FzSM3$|)BGDAprGD(05sh&$1SB*r$z(nU zg`QTSoD_?CHCap*$6?-QmT&ZTOiPRT5D0*AvnV$I;3Cgg&&tWH<*I3;TCx3kU*F|N zb=cCF?)32Mjlxv46g)PL5PH-w8NDm&;rWJQ8fm<&>uuqAsW8W$}-%bJgA0P16qg|9A(TJ|2*_+`Rq zqBEebWH@-L(#$rg2t(b%JuOx94r#7Zki9f^O=H=euocC-QvXGar`kAbuE2d{tbp*c zKJAGXLaDmHpp2f^(Q^B!hMu8K{N;w4Y8mqN(xBBs1#i9!wteO@5how!UK=5zwM2Ts zKqE%d8B%hmo6*L@>g%o8q*&rQBy-~k;bGJ1^|d6_geJ+BhU{lXwPgh{>ZF|pq6Qqk zrU6UOLaALd$74B@)J9lm8Y#Oxguu}8vTrfH;3QG< zq@F6GXv>qRqxpMPXkJ#TBW|O50-tcLOaapJQr+cq{V^IKVt=l8);KyiL&R1`COSua z<3)aRU@gXN-lD8w8VcXx+kvZv)8o^7iLP>B_C3yL0(mP z^{Si~(+^{2T)WS{#dXWYfhD%%hD4tQFEjQdRo3 z|CK0z;rAyVIwL zuY51GIgq#+Fr#u+KoV*KLxcx|i~eY$C+jfE;#|vGZF9K9hF`UzV5L`gV)$H29Uifd z610NqAl_9do1ZCSHw)F(>Kw!DBdm(V!4lzZ399A<6RW+8yjw<-36YN*9kottEpaa{ zVxzSw39xFO6+eQ}q--VHPAvsGFegIxRhJ*Y@sHY-f#VsH9A4dmU7=T zxUD4FeM`e;Gj+9DPv+^MiV^KbCW9J^klXT*sPJi+$y8g;pVR=_4Z>P%k$9EW z(CK_HEzgDx_Q;F8$zR8@C|KO2QufX}VY}H*lm3BQdCHNG`E?Z-OtRtxVWlQHvZ*&5 z-GZjSyQh<{0AjtV-mv`B@dd}YRcYp#w-h0oAg8co0&xRm;(YuM4-V+yPq>|t6)Q!l zbZH&MG1eWcv9)nK-}2xQ0#M!i z7D_dMQZ@0dc7H;ssN4@N8NHu+Z=X&o0Bu2va9iWI>)j`g32BqmKdY}qqGg;54J?0HP{6w|&5xx#XaMx3@~1+yRFVE^eyFq-mg3y_|m9^&qU zNu4V+bM=Wi^^6zck{&l4b)02Co~j}}FoL@GEmLlj2KM)$TlJ@pgZ#F4#}DrM8@XBV zK~QNYFujUO&X=Q%-Q3hDoy>$$TAv=n5!rHN$t+zq zT?+}MLlm8Ok}6w|rt*#X0nDs05$v!Yg)VXh~8q~AsOaABQ0bnDh4IoUk>6oC|~k5L5VU$f1gN1xHNuHDPQ~AiNU%vEfPpRbI{4=cyZk zSF7t%khuyUI5N2=^aHhoF~#Y&)vq*X%`3nK?MQzFxw5ci!B&eMiCG!+mK7 zqOZYf(JsRgz|xrUs>_KkS1fj`YVx7qG+(&PZ!uR2a@FS3nB{OARGeLr*S33l4^`j8 zbUbz$8bJ^BcG9VTjZ|EhwqTT$3u3n8ApMqKs6AtsV5GspINf48q4#ac|34TNSlO_~ zLjxH8757IJ|0*sLk1F)li=e7KX#*Sy>{(n!F+POHRaI8|IcCnWGlY$a?}MQvR2t#F z284ZMjKLtINcy*+1M3?)_N=-7+xLlKh~jT)fp zyi0eEdc)&8JVH|7R?rdiL%8(0vGlb(U+}W&Fk4mX)nxkCI3p0s5zY=u){K-Xz7?+M zwj-;2DMmW&V)en=cMf!Ao^KMJ+iYE1kQM>n$9_LKQCwz;o{-@9p+JXpjLTt-p4NkDH{l@i{=Oc8tSTCdSr)*f9Ya`g-tKEaUiZ( z$L$2x0-lXn_E;wT_)Vac(dX9oH#&Mny6;vpG%yV2{P8-;;#8=50`F!N56{|HpKH$b ze03|Y_xdqP`3|sYh)&y{O|*-xStktCNPSkKnG{`gNX^X9RA6n<*ama)F;XfNM4@Wx zi(h6V!O{Z9O!U8mHiC3-87l zghK}a)vv;fm#UJu&TG5@LFRs5D=N&;fsPIw<(V|iBrTxAf3jSO0+*nS|;Q8e$~gf(np zsAwtJ8z+F?mu4@|<8|@*geST_oA5I1f-4?>BAFTpsc%J!99>ntXI@deh~GEp!x7~~ z4~eRN8CoyVcwhd$iy^u(P(lSzttU_J`j*p-B(0Wbkv91!HUvX90a%xmdl|xK}s9A z^Gm<&3>xIue$y_4(M}f^8Ni5`*OkygU7^-z3K_x8M|+HPb)pzL9`#1oBYO$td%_e% zTes+D0Z8-mYVoQnmx^EbAT&yNXN{J8XeX+b$Wz!94kbgZceFIZlEaj;Z&mJ|*5!Py zcpTScyPs6Dmkj@EY}9ZD48pn@uSrj4}CdA-t^_7P@QJi;NP-V$>u zFBlqKPL{2eDF9W8G5kYQQ3Ej_+cATNpg)LhN3KP0tPnmgCf#naO#reIodzIK3 z1&U+iaP1Es1v;+B=PZ%#TwEhF0$CLlfdgzLdSPIl>%mR~1X{)Tp%So@=8bB0kn*IJ ze{megnB6d~%W5H~U>eoy(|T3)x2-0|#N{yq?(j;db|k&NLn~h{Jn}G7ik0z zJl___-C5$~$Gyy~(H%xCT|ByST}>6)bREWp^nOzf-O(+@tVtNvXGa|JG6IzrmjKZW zCN%WpiDK>udq@=?*{NXF4ffI|I|};IU(y94rxorBWJ)K}X18MI--wO-fzRZ4+ zm*NU;?nK+gE;ueE#Tmd01kLfjQiEE9XXefp3wOBPUyfz|ekINm5k*R=>G z8uf-#oU|jgc0LOXj&`KI2VJ=E`@m4-D;IMn?q80McehP_5J`-TypoT5wg>t>7n)Szj+A{Vrd1u?Rg+JmO~g?9$#vpb9e zt)5`2geW|R6M~$~U`vg)PO94-AtG>mBYWR*4Jc158T?Xq=e#kH z7u~nK=tskrT5ANR-UQvtV*cUfBF8k1ftvu&7ik5>L6TY8)COXPz7-SP;I|LG6jExec#&o%FNMukS5;PGD-VBx1 zJ8}a*20%sNHnYWq>I5MD0HT7`qYfYXq?(*VN0LWmdTK)4(=Gu|$y#8b#+EpyYJpiwnSbAaTclJ6^rEFV#4wi5@cHAz z-2|4=gu5pE9lY*G{Z^nsT8 zt_F|(Nc;22$nDEMv=|vEMtH<ElUC>!tP3Y{;RO5MR6BIxv8WJsQ^(fo>Sdsj4~B~Mj%c~9-u5xX8OC?@yqMP@R#6)Hp=t0WVT+B5E zLI4bNt#258AuXhB4uhvJW?F_NlrsQ0@@WqSTsGFfM=1HO*$o77NP;L?9@#{DTnaNNzf7~ z7-Hn{re)qpK08etk2^n9Jo|_i0YMIlJ1YpR6b&}9P&diZ`P$U$M`OJV{F%|h&QFxp6Ep-p-NZ3a_JB!fB|1y7XPOr_bl zf?A5s>i+DIkUR3zzTZH=6*+D{<0yUCq&;Sg@QY7+p<^q##UFEBA-59WUG?2yC669X zW%{4wcVZfI9;-^4wY9$bxW_~mAvB~TlXo0#x$;nq0#J#;=m zWQULWPgjOBzT@zPEys4)nE$k8=Ked`f>9Dj1#kf93%K{u{WA4lecD$t;EQk90$LOr<5eFd4iFJSC>x{g_F=|{r-h)D(!}FM9LjAAh9oA+X+DWLEMJZ$n{ni4!t(a#C{6X zOBsm@{2{?4{u5UO+`M~PoR-#kfp{qNGoVjJxwbE}L6?4d(1q?S8%Qc~GV~t_DoNQ1 z#U6CqeTd-oX>fa^2?0&rWHNo-*Qefqc9))9K#wpooU{jEN8;ARjJ5ghVy5=QUre^P zU_Y45Y`@`#Xu?6jY`p%K^Z8_1b0sIQ2y!Pw7CcFaBh;G02nYxvVQ>S|poK0%x9%Lh zS>L@ox%;VieEZI5mDeki0W(ek53tn6(y2Hw4o$=%b4u2E*ih|D4BeV}2iaIfD@cxX zqy|3=Fs;?Yd_KpxvW~)Ef>Fi`Bh0D$R?v{GW=>C=tuC~EsSQ?PQm^X>-afXpXmM%v z^gPv=j;t(X2ivFl%o(yb;xv@(g4YapwS3N=9`fa}*(JigO#S zZH*xdY-Zup@*I)^Y0=|k&dpCqb@IsXp+3fSpgXV$bp=UWWP?Yu%=wOD1(PrNJuez* zmkh1IMvb!E3Cq8Cl5{S4eXyU2Mp`;~@Cw2gG686qB{!Luo^5Tuc3q=iJ*d#%+)|9T zJG8QW97&Xdcn(M4J!1QWC$U22oI?r2{i`newnJ;{5V<}8h_oEf2!&a`rp7eS4VgP9 z)!RV5&k;}-2pQ6I#x%1o!!1c@JGz?8-}WP?Z<1kHfqy&BhimK^B1C`)ncGjxhWCwPHUn90#F5Ip8i&?=o9ZU%!E{VK2yqEb7domw;;R$-^qx?!?- zIx#ZgDwhw-MrG@*h}Imq#KE4{@a+(*e}W{L&(VfJCV}`#6dfBodyLkCY4nIP5QI|i zfz4>5dcz*g&J^+) zbG!xPH3P$Q-K6{pNDx{7wpatUCr7IVR-&{z|cZ?bJ2BXJOZTaKV^7?AKQHV zq5wj%dOccte;1NVFb|nxF?*rFg2LMUz^aC6HovA)A(?EcM?37IA3%wQ(JMp2)#>|lX`_= z6*Q>uXGs4{?<{nnka7@;F$xDS6is`iV7)hj90@$j#FoI0Zb>fnOv(GO`Pr zQiWvr%*$f*X!Nny_nHJVLY|kF5;xpb&^BPWxAhoti;g}|z)fti!dlFDLkqLXy+63m zsd3ZF)IKCO0&7^z$gZoKLZ|7dVMkYr+)Hx2*gGSTNXp(bM6%fGDRpTjQC!}Ek{Bj% z0mmj?s22%7QA8UHVz~J82O#mcC=qpTfCEY9%;j!H{TE=9{H@kzd(@G`GT>-3L7YsB zYNT+NDthmyPLvJ8X2psrBK)?Swm6;b8*<8DAq)^d-61Ghrz2(cyH8C5`9+E8?dIUq z3-pH#I>V%1u1S3*@(A6@VUHRprbUH;7L&)GJ0?W6H}7ik_PTN|nju(HZn zE*XtsC+;Uy59tNj1AyO!9X*JF78%y>u(a&kFFDGt*ItosMlF8fQJQ^JiPvXxv}XZ<_QX|zD%qBGutq(8GFelbWXp~vF(c-_6#-yE&G4{Zai?$&54Qa_=Hn57YxVJa2jFhW1(KkZ2@ zVf$Eo8(ADfBF|b4_4W@zOqgENP33XY2U z03ziN#JdP7DEdGEoS=DLIS>>iOvzb}1R*p_S*ryOk}h>yUXyT=!2oMUaXWOuZjt(R zPo^P-2Ws8yLc*WJ%lD(XTmYM2?Qh>5s1g3x_iAwe^GDJhh>g{!?|RuX zPPOTxed<=C`8YiiZ22chA)@K&*O39J|KufIM{lw>-@bWseCHfb+5?I0JZH4;AbGG<(X(vXL0FgSx7htOrb@SeUN0td1CN!Okv(9 zN0?LCneQ6WfStNrDq7SR@OCJ)WzM{TYYz7B82^oqRu}Z)A=kyXrdGo8Pr%Ti(h6g1 zkGHpoC5l1%Bh@PYjBjlPn^7n+;{9>HyWYi^<-DeF<+iVF*nhi zsbY+krDC!9f|WH}?@i(yhu`jsRAIxFVB0LI7Y}!pU}4#6iS60F2u2hxF$35(L@hL? z1WH^SsBbsX3w?TZkUeSxF*uOks1vElO0056hHKp&Nk$L09hxczHGaC++s5dG{PmCb zdjA#Y>9d9EAb%vz5lA?SNNXw0g022=KB;TD0oAbiDm7roZi*!MNK)b`m=gNws#7@j zlx^Vm+>E=o)}(leU2mIBn1$lkjm&|)Z*blq;J`}bT%-QlWKVDE->Jj@cXvYe3+W(~ zA10ghOXJPBdYKL;vW2*HtB-V~{-s!5U_r%Ue4Aku+4#d7bx_GSSoowEC@2Sfl=`*P z0oG7l0QJCR2a`CRGXu!oX|rc)3|2I12={!#C6YwkpR6E3&Z;~=S6mRDiEwp7qg$*q z78cp8!gUFMkbzXhwLaYP&?lR(?mGfEiC0jhHU47wzecZq|Sq5dq zIE{Yn*2r3FVS`xM&BO@4NdMRJLI8?%$FW9y(UJs@FRfU36U2eW{RWKZ;TMu?O9;WB!7#id|hV!$F3ZZa$Tfx=XD} z(797hXb=s_XhqkBGc!V)fRHCsHPo7}>s5JarQ~|Z!BOQF zTDpS~9GZ03Z;R#0S*d0l9NKj7_`Tn3lj3Yd9vI6j$R4u-pDfan7$?Y>-m?yg{rzLV zoRPu2QBzF0E(1+ZiZQHnjFk8%naQS;Ilmkgolc1%58N;H6StNP_84*`s2 zdk7Dj@cywGc-jCYgD454I1!~KHyl!F)RP6+h73VlvV9wTNs%845uFfSJ1Ov&A>bPe zv@gW}1}t4E1}Zuh0|M4;mLu)ZYsE!C)~tU1o`U4MZ7KgZKuk;`vD0>r{{vW6^ZsBJ z=2D9cqWs|)F0?li5tXV3@AJ*JX$~7sJ&PS!3;s zq5r7m%78=?QIKH*Sljf%HlKsNjbITOSLUl{WMv>S8a5-IqpNmVk6^IJZdp-dpvSS3 zpoxMOxdV9R`--2lv3TG>J^}DXQ0|P%9Dg;(>F2rG^@+qD&_f=Bcv7CewCSza6Po7>R-+JRzhM#s3oA4JN zcr%={;6Z}>Zv!5F^!y9Kb1|tO1{dHjvm0F)u7)kyeV9<~MbhwIVAcbb$+|$D>UuHD z&x%FJWUPx=TEv-opB*vLgms0Yk)4FSEfSE9_l|Zb6}7f?eU5a784AgfvgvTVup6V# z>MGs)))I2vf7G?GDstCG&Q9v|?t4kQesSF!lT{Ffm6CwH%Op?;c0fXnkjxbU%VdO~ zfgsKDn35vfmeEahAC!^J$-_#4)b|Wb^&KJ+YRW1^qX5%EyWb*AS5W@}wF>OOTPFIfP#jRckztaiHM~dTE^y7|ovd#aLY#tE#NBu;ZrqtZYNA!H45* z<1VGX|Lp-qsE+`T8bxCpr@dDdJSXz{1eT6M>}L}$Os8CmqtwO=5{f_KGSLxg`p6J$ z4V3EtRcv2z_5s3O4bAgIP@q)y7Y4zyKb|PQ#y-C&7o92FWUeSU;TG%lsdlaH|5q@1 zRO#r_Xu-Y?LWmm$lxZ*fyBh4Df_BL{vh6TZ@ zKob_RReU(|>m+c{I~k1U1mGaur;Hfs6dyY8I_)9*dQn!hyvns?N56aN-*m+RNQZ-# zw(y`g*v>aMKCet`o9tX2FJcJUjEC!aCcxG-8iUji84^h8QlirlwI}R9J=)&-Iun+{)t;V*dJ4G+{-f19r^s&ajPF;u5RdnrES=~HvZbMM{W+64Dc`YcAy=dHto$DMs@CO9|@X< zNSEbHQN;E|1g;<4LjSxj17^B?sj^e3`46nwj3=rz_Oc=LT;P$gXMIftarrW9p4>y7 z0lRT#I#!*#UN+t=gYE0%M)Ht5B+505YAc4W3hs}m;f+z8m_`wxkQ)M(1krb3Oq2AO zkh`clk)MHlTDH-@n0ZU)80bh-ubbeeYr*6m<;&H@4S+W-*TCoWoCAR{lWwPFQ(6fY zu#1IK+SYm2a1h^php)u3Cc>m)Q1As0Gt_2IA)HggUPJKaM!0VX^3)XCXy_$`^&wG6 zHtd$w4Pw`ICF5=g`;#k(O!WCPcSI#y6^joiG|teDfT%Y7ia?aw=$NVOZ@WQ7F(W;rcHn`jd%XLUjna^frI`l_EGTjh2+=8|Bwzq(YHA54* zrVCebfx4V1=uXSAgw~dwWrupfo|aYdPw?BC@2}^17l9#*CK_#Z7waec@uKS8`6=tN z>N@n*ZZYf9|HY)%<<;)G6}}VqRuo(-4MEs&pM@43p(DfS0R1uT~zs*({?loICQT!x(ZKXnhfBE zu3b!L_~93zhqA=~=li?T1^Sj53P@pn<#>`Ch^r)7??z2emdp7E)3Uc-z;Slw$u#hG z=krz`9lBQw`?RcAHeYNU+8& zL2jGDtK-`=!j^~18L@~slJg?(fJMdGq#r4qPJ4HXjHu)NQ8`^-=8fl!bVg=b;{j=? zQ~m(r#N3GUcu=)79SPHzl+m)2@uK-j-KcaHq6DO_f3wnO{>W!os+P2Is3ymeqBjuUTI%*|lQWEv_3k)S6KJ?CdJ0LhZhVjWW>DsWY8*q^ zGVVx@KFA&>^|3@%pzw|?w~;S{d_5aT+6Apq5G!eUyj%@c4`MA8-^-OiMIqL)!v4W; zC$XfmA!e2FMTK7JUOEcDBz8N|$#k+XrQ50C7uO!#h{IXWhh-$}H?zS;!NrQ{tTl05 z+i^o7)L_HIXr+@K>XNUYWx(nPwcG2ye3qrc89`Wbz}#%machDZ!-fV7@Z7-U@8=u0 zsHR)CM`-dhiR|(EUR>T9=b3p`$Ec`42(~5Ndp*$Jyd8RVF1hW!hT)>PF^%yx1&{?% zWgovY$vCZF>D&DI1Vgt>*LCl7z6R%D^;j(Q-*UYIgM;bY-t2U)A1=$aIv>lcg??Hu z^8fszc#mpc&mFc>xWRpX(*&Pg<4h>4h$fj|e4vg7WwkfuHkDIkz6Ft3-~-$PuVYu+mHFl#6%mTdp?T;%UTNfvMg>bO zEf~TiLj}~!q;Mg`T=*}CbfmfAaeJHsO zYxz;7SS7_Y&xeASfX?yIi$}B*`omg3UAh$Lo@)Fjpot)ho&K!;&4b$;`QX+9mM-af zj1`vJ{na?b3N7*i4Hn0yeC${Y^PFEzKGX?z(o}@tmJo1iaz1IaRwO-<;s>hsa-+WX zE-w{5R=at_PNjOA^)7;l?T@xOrV2NYEvR)JdqB9&tEui2wJSIjQl@aLMf6B(;u;<5(o(%;eSS zC0xC5;N{twp$e`v;7Y6LseNfAC8M+@1nG+=g)~iK(#VnyTDt>y8eu6N@R>Tit~?-4 z3~o4{hWy5~Vh5@nY*@ZJ7}yb#+N$gO`&Bhb)A5B4Wm<%JS1skEYVowPHf}wB?I=uPxBtjD6O6go z+KQ44`!g}#f?a8ZJGx{-(cYALdvv@b?QX)Y7(5a*_3^GUD3%_Fy71H&#n~!cmdKb| zh;K$(S+47gwkEo5G0Met*>}7?v8eBVB|geFop^8& zD5x6^Z%?vqh_I1?k;gvw|7q!VFj`XcxSPRnz~jp}pWb{33z^;p_^g*IHa1D_1XZ^X z&i<&BS@8>D$>SLuT@=S7?c#m!Uax830amzS)ave>_wNE?4unE& zMT;(Pj!4-iq&nB%w7t2OmL-5(C)8VPj&qB4WV`MfiBYEp?6Pq>kNo7yNV<)EFKH+%wwocC7=ZV#?i_PQC*C4 zPC^7?7Uw_z69=i=e&Gck@%|NyvEDoJ3xh=9a|u*Y1j3i6bzZ##-7^U*2eOs1C|XfG z!unJd?&SLC;uV>A9{?IeSoCbrFEjoU5_wH8GEp+i?Q-J>}SdMX5o2$+RudN$`eb+D``Q znve$Cz=ZN{eAGts06ETYLOO+ILh*V7IUU5EpPh|6F}$svMgjw&Go<8Sq&L-4Yj^4Z zz}lck%NL3p7`Mw=lRc`&0%z|i7G?ng|HWh;7^dv5RzPMmNNl)uInB3>S!Qm&XEaR& zP&5n|9p>dw6P?!)W!3y$efxV?1c|5#;3ZwbSbSs={3Xz4)q!(Xm&Y;F>+H2qSvQBU?TVcBu7#)DXl1^zJk0J0(Ne&_qNj6XsK7^ip3i2>g{69Q6$b`u@*Um96gUL1xkB_zW z=S^FBdHQ#?eux=zD|m0hI#0lw0XPx;^JVqAz*kZRNn+_6hB_ul6z}aM7RkY4gzPWr zZ5xGT50FD3KIg!@RZlR(QQd{^n1t$zVR0l+*Y0N_-xXRR)?qv(KbZuCf%tYZXhaXN zi5gJ9@yzwbqQQnDwT7bqA9HWs-?ptR4FB&>!8pBW>rDll;QE3_Cwt{!ap4hUCwNktg^EGT4)_dz+ z0o*LB8qK>Jf%|$Ciy=Hiiz{h0V+_&f2Eq^ol^JBF)e0n+I+*TDcMe}Fa4kh_He*{w za#{BA;7}DRD4EfqxC53`rcBTLwjF6i*`}nzOvMx*Or*3~?{(*wfAuD5mHaEceurjZ zz-9S^9VrD>u;U_!t4x!Mygo~8%Pt42`kZ2VuVK5JD!^NgCv*$Y2kM}lOQn!`C7P4 z*(QmtP$tiC?5rD8i!91yB;X(c_J1QA#xG>(_k|Yb7sEF33z`{zk>-eBgngoj;-P!K zxHqsq*&#$o@S)ymcM!J8A^0bDGC6x3sYHEHI8tAE3cq;hcQp$gk!bTHA@k!p#p_3J9fHS*fXE8TkO{#ODR6g%FjP~@xq8$qk^ZPSYQWxk+Y;^izaB=!KMYY0|=~kK-hCiG=POjeDA}jF7^A|l zMT=p;(&oJe#6W0e`1VW*qol|P*w#os-PSES{CTPC&YhJ-bYilgU61ueqT@uXHkULy zBWu;4K9-qxcg(fpz4@EH^BHzC61=@eXk*OV;FFW2#Hg%o_2ctR*SIk5=rktS+jl8h z5Lg>lS?6C=duOauu<_OL$t)EnQQC8$IewqFYZ4&O$MVL%YxC~nmoN%wy!@Ujxt0`I z}!q1GFX&FYgdw+fXD9LyvYa{K$^u{r8nuOoxOQ~Lqd z&f$nBvIP9Jzxl2#_DDMQre943|5s3bvk2|AJ~e_W1bH#ij|WjJZrQRx_+TVZ0Tk_b5otw!=T_7O1}O!_*z8Z1L!xzAsYUj1 zMYn6lWZ<>@#Ej{N63`(L1%6kMjWV`HLp|X*#9|VXO*n`R!Y%HyE}=A>K=n>>2MuL{ z)MhO?<1o9{X+tjidY64aK>$DrGK_k@b{pQNAm4_&g{%y3I*5@@ zKsC*AjJ|o;s6M2~G>R6X=(BV@ZU9L@w!h0wt7C2r_LRt?CYrHMY&+E|#82~l*0m&! z`foPRjQK`parX2CvCO&Sd$1Qw( zs2(5UYqM@ew{gR*#SI@rinTf{#zt<5PItTvv}9>-fB(pRr$?x?daEvCS=a zX9DzPXIWaj5e{xnsE%Y@bq7^3?vlG;7cV}$oFT*vA91Ksek=$ap$gXJe=iM4UL*){ zQhrDArKY9hHrbrrz4j1khzT6v!;JTV0YK{SD|t8OlL$ytuLUZx(3dYNj*+PQuM}2! zhp&*+B@%s$d=DcAukd1aM!pQ|#;G0!(2`hh<0(_tsg2R^V_DY0bQd%6TKbp;l-(rh z872Y}k73=q%9b#%QrS@v!Cm!r8HIXHoVS4TJfQil!BqeqN9)I(27EiEO&_C;(D?s3 zT-Ee-=hl9C!Evy+@K^fks8w$#GPIb5pet1SmIJan$Awdqys%aq1l0`H`GgYtF(fCk zCdV-q-x?yBsuGKW^#_8%nzrw#OX<`FuG5Dy=Dt};@$V2o=O6735Coz2XhZznJg)83 zio=G~7AZOj*qX>$>sZ#?@}+k>B-gXl#MjkL;aRrUx>JcsJTuUoPr`0yQ{Kif2Yr3H4&X3hc*$9$2ER96v}b z46Vw4p3PKrg9g|)3q#~($bgUB9vFm53UzqBV76#`mGcF~k3E;wAzzumx5c+T79`)! zJ?tWAEHtPB?fsEwQ_8gETp!4CEG0YlFX|)3ta1siAuFDqd=SQ$rByAr;qD!(Rd)#| zE26ybPsO4>Vy#>Ev1VXC*rldR9*Lc;ppnPf{Q7T5CldCKM?K~VYvwaNU~%6ei{sOd z$#OdZSZZM@F>@{2I5tkO6nJMr@veQr#c_Vb@OrYxZ{?s2pJCy`L5_^Rh+@@)FbQ6&N$XI!M5F%k z08f#r;^^P)q6Wf#_w6p8_Lu68b?&jdW1JUV>$33SGn~|>hP%*`r|d>1F75Tsp9OaR zMq9{n8J3UaxS(SB z!@9QFACDK_+&H##OggdrVduV9Qx@x=b_rUmG5@i@@RY^kul>!OnAmy>mXkP)-4}Lg ziMUw(YF2LrE{OQfskm<1Pl{|f!jrVzd)l2QCgcz^*Y3F=x*@)$%krCgdebG1*Y#_| zD~_)l7lc%z%WZirQ_VMtcy2G6$ z*|^G~&bE7b`t$pPMK_*Mq&+Xj-6#|ze=bxWh)pcjxqXOyVn-kv{aj>Ttb2TaGB2{7 zGU(!aANnc@&0cg%lmix`enexSWNmZ4sd5F z({J{qdnc&my_|W1(95R7^y=+dyVdWvI2!c2-E+H;EF+xjT%dM;c?#MRg?kd2Jw>sY z`51|U!UfTf4%z(l`$>-tPxIodeJ zI{bU{c#(#Z`+}6KQWAduJ>?{9W0OhMX*qW6Q1-PP^Kb3FxV?Ah=(qU$;|DSRf#rJt zd%(eO@yGt&-5xID&K{IPii00mzAejj;ywMlv-f>xPu4>;?!|HY;}Ab|+U@qoKD;>k z4L(tOdv~$Y#~%NJX7DR~{PInw)42~I2o{&>Agqu0e3#mRr@QSQ0S-JiGR4A%5`h?l72m`dId?w_ynpP_EPVfctJeA+>EP(%SbzxMGm=9Y zQlJHn^!nYbn zUQ~-)BH+@FX4#gwoN5Ulnw_qX1zWtFnG(>6h5~ph5RY6 z%}goG1hQwC_-88IjfUwUAEp3Ty(KtOBI>$KM5p=dV|+2(=y!lusP$+-x6Mb$;+!ix z7P*`hMtlP<*r0%P>#+{Wvi!tO*`oxI4H_myDLa|a9`}RVKQ&@u+j9{sShqbqD5oY; z%M)TZxFbahvlIt(MS(PS=uz+ESRVJ=ou;7Dc5wy%0q&Z(^AHfEZT^XSz3sYmUu1GY1Vl35jcGB{x|(D?(XLM{>P8U3|)M5+3y`u=$pp2 zb?XmMP-rcAz30rLMH5<=U1BI13hQoN=$*SXf$xkBws(K81GsB{ynN8v`$jAfs^^*| zGH_MhiaS9i^x4HMw&50|gN<2Y(=8EXSM&vz07`wG1-PhkL$+>YJ^8$vnKm>mXJ^cW zd;M_uV(YMBOZW0L$6QZJsZas+$x@KyOF(ZQHR|#zxMS@EN-$O5yb4gldnd0kX?JpK z(MwgrT<%sW`N4s2^M^35%<}H+xyY;L@<1Rzytz;V)J=$IMqDVd8Q)Sd7?fNoz=qW+IX{mpvacCLhD2cUi zSyYM3S?pZ607f9Nnw0$NyIrmw%q-$2ZwrEGO5sKa1GfzdePBU?^C)crR0mR;LZU2~4pHK0OgX$kAD zg5{o|13B=NuB%*-08f;xvj>E=7&05h5Ohx)0s^zqy5$jGaoS$oy)(-q!pg#tk1tF| za`DCp7@K~BNvhC^B1_%ibc@UhxKtaxtK=AhUj;jR_wSy~inaWcz6 zdT|)r;h@N7)hndXqGvr|Z{Lfm@2KVixF-Ly`ADzCwQ+c!rvCtNjhOx6@akW*r^Xifj!o-D=5)ikY@>BYgxrgD&y7j>2?5n zNqQ1m>9||a*Te84H*4zqx!;aH?tQ#>{J_1Mb5`0sqa^Rr@HJMyU}Ao z%PQd%vofX;C!}<6#evJLDn3QM_6y-_H*klfSBhcY0-idbsYukHMVWv`oaYR^<3(1& zcB{m?EoR|v$!}0l$S41U5>QWu&k~L}W&2jv*1~)_=8aj>dxx=BUs0}Reo<56GHX-W_zb;G)2x~hHeadE(3CVx!uo&0Fl_M6Bo`vKwTx=UV`1f1P&PqH_ z>+w!J4c^re6cwJGsyw_qt~~dXX6*aJvi2=@Md++kKy#=3u5?Ea0gLQ1WdxK z5%wOH!5^&eBHXDH?ZW6URwe(j9oH*WeRaBj6O8zwK-Px*kU(Wo!$Pe0@iJuRV08nQ zvN{B`m3Nz!P~I4qF6yO6RklSACWH8M&4QzPBpasCmea4yL2IAe48Pw+fkLEjnZ#Q% zn~ksA%4L{C-cn=}(>MdwOY9S?jG9CUCIFPWG><7@=Wvx`#=+D9i!IWnyV6iI_Fa_d?7;*GbHV@hv zD}g(ZWSSE)FT6V?1tbk`K`e7!7_-cZt_>TF(@6o>_C*OkC1IPb`e>OU@j7$j7B@@+ z@PT|_gygp}m{|tifvKUJEmV+Fc=`dk@HET?6tUKNi{rKKkH^i%`@J%`a6$$D?O8W7 ziMv2Kz=ICVrcSMR{z!*)DUKG^2qp`sN_$L%U+=(T44+wBYKEi0A{uV%)NYY%+pzd@$@vcs($TUAmgGpoza!2j0Xs;D$ z>ZY;T01FTkVb9&-HH0kje~E;;sQ#EZdjQseS-<0^tWiEc4OA8)u?A`)w2ATAwA3_@ zf+VPj;P=K5C51TiwQ%Z)$dX7DN`%r$(A!y)$uejbJq8jB3jXxBLq|?qsm7 zo=RvXg|9$(Ud?9wF*F5{3K2D=ekp3AJ0(+{kTi$yTyynHIMjpqvj!BdS2C z>+8?*Wvss5G%R?1@gYU#$p9}{bpKi^Xt98|!~j9c2_sVQb@9nd_H2D+?~>^-Jp(S` zWiE3t&w2=8NAf*h_b`KunLFB%sr-fGfpq#>e_b{m=29G|fww!ix)3#Wamx@-sca=0 zMO(+VVyQLfLk=eY%g0IuQrAq#w&M-~+wt@JkpnUPAnQB<-Ek|`ax}4{+Z_nZGtJj& z4|vNONFV_oI4~MeyHVRXv*{kFbO1xNJUf}umep!vn|2GgVPyNTLoXh?sjV3VDlXOH z3$>+$8_^bsoHzA_yT{t!EIbN(gU%x3FI9V~9{-w6Z%+%y#?{GA{jW3EHFo`7AnvEm*nxF}s?Y^M;Y z?-Y#U0ycBD=`sEA#_|TrAvjNcXGI+{u8CbmfG|A)$fC`(IBB{r*6Ay>(M7Owi=x0# zN4s=h^Ap>;1SZX37#3O&(IF7mAVyk65gvBkH!3gftAjWHqExk3=pgCHuUr=JtLes2 zOC5YKNc_C+m}vjNizI+9%3+F<$CA z>6fgWCw9DrW&(2!iWU*uq7<%!v6;<>n66MQ)Fp-0mjg*DyWb>w+9fp_FX&Be&WsFW zFu{OOBi(M1p17N|c>Oh=Je7LO(vMPhLU9}wwCtKofP~xnu>ZrW7p>T~IU1LKzfY(~ zCxdZP(ptfTz#4jTt>#%U<5(_N0#;=rZ>}Bix!v(Fy6<3J7jFF zj^I^2)3mZ_>ezffGC3zbw7*olR`vFBMh_f1v$icSQ>sWq zplbqYM5k#w71KGyj3uxnuVLXu+gDu-VkuL}&9j~~pfv#GMa_3JFlc=#Bitx7T~=vg z=Gbkt_u!bOUo&=D_3H;OA>6LZGHU79^jX#Y`c5klx9hbX7WZrV?m+nZ5jcSA$6=Yp z*11U~jc!t$!{nixIa4@F{o!TWB)#QB$F0h6j}pe-&+<8pp!U4S0M5^@Ap ziEAqQ&Z+}1(XkVVfgu)Ynf;a4Lwrx)mxJhL^fge*5#(L6s8eNX?IT4)a4E{wTa~^_ zQhETOE&|m(lr)sb8VMwJL-X9MhxVbKo!uI&`W0F!mKrvYn;e;oFpMwq$*ZiiHF`qB z7Dz~)kB53miDe|)5&7z@g?D6vGE>$m>v#&UA);BBHFcZ|+dQ7a_E}AcNC4qZ<9{|> zjL$Gg+Zoy%FGGbZCOH$mQ6g!v=*s4GC`B5hZ=7|;N>;07PD-|AEq2biEUkYU#@SR& z_Fjd`iPq6fLLhMc*v-aL+Z)FiY3c4X88JCo=QWAR-fDy?s&GkqHiuq3XYtr*rhaNj z56i_+T_ot!ut`8WG*QB_m!hMa`oOA&PLDPGZ=5VXp{3@h{+3(%^b{Dv{&@U`6hOS1 z+kQE93@GNQ|5b_(uHi$v1ny0;yfJsi|CwjSr&4%mg#t}uQiFtDxM)*+c6hk)jNY|e zk7w=X8_qdnxa8_XopASKI_+97U)e7mXWKaXtdf&EuEBOacBQl5eG@BYtz*Ogkr%(D zMVVpP{?>L&eaNQfht1xG`cwdCOeh3wieJ_@*Vop!);4urLEW*a^%+Y5e{; zZ~j+ep*Hu)@6~d#QHcQ-=>c#rz6=4Oq9>0Hz^sfnub;hm$0co4it2&*u!I}&nY?Tf zqWNt33`ctQWf{*K-4}?6&`331*02|S^;rIJ{UI5lF0|d^IyTxvf`x!xCsL>`6lBHB zg)yEHzCc}D$i}x2Nu&dbyF(FzTwRxFkG;{c)nZ`8%)=)yUY_5HzL@0p$KDw%^e-QK ze~{t*mkzuEegrRu>BW~0ye|a>0_3`E=CU{Xb_8LFfI4fzWafIQQ_-CTiN-ZS*~5kN z-V!6eMGQEx`eb`#S{~T5<^}HAJnDLaSXdS5BuF7kW3myCH!J@X4uffKQ4Okr>SPi& zr!udWL}^zeyO5>sgc>!&1DJhrp(_-*{DeGuQ9Q$Q6UMQ?EzR~qSKFQI$ZhU?j@(ca zKfLR;ucK%?5LCpAP>O(Yz%0UyogqtwPJ9X#ZiAr^9^o>9)@u>$7(+P#{chND0*9Ot z!wQrZF=kGkq1mHw;#|C=qVfQOkdGJ+WpS|J$PaJF3 ztRa(Hc?pj9Flw|pyFe||0a?a=pu>}S&mQ<{WDx$8zD{QC7MkP|-O)d1K>NTNF~ws< zW+%}(?0%CG0K<63SxHwryG#O%aML3^TL$PT_(_H+ZU?@=~%!i{3SaW%l%!gSXv1v?{pZ<{! zD#|d|0@*2YgDYm`fsYGY+oQuFx%a8sSkw&nAq@j6mLKdqlSp07bK?ZY;D8qg!={UH zF_fV&=CLpPXp8bKi&bem+`qD*9^JgUJ^=hF7E^J~AZJFk>;#vIB0TwLLxqPNJDo zGcy!g_^wb8xk1BpUis4^zk~yS4;K83Hkk>SZ!h>j-J@eSi1Hhr^h9?m?^ALyWfhLN zW%(RDtLfJH@f;F6;r2opt=0IMvkC_j@G(jhTLS*L{E z1CR4Sb8wvJ>~a16<)u1vp)#ZovQOEEfv=Itaysmn*Ck%p7wMn#tl*v}SkF2r^kDPM5`D` z>6ThAjJakG#?*xlZ z&%zy0K+eLBN_Dkl7JB8Z6vmRZ#ZwX$Uil{!`P;sIbt5Ocp23OU^V=!NZJ|BC3A?og zZ-Vb{g5^VR-TF6;!i%R#U>cVKYiZHBxHO%mgX}CDoP-OhIkZ-_g4pUT<$9(U6VK2v zmFxgFMtj4qFB_zDU(^Yq&9<%;kX0XGWjFVsu?Gv+*-azw_2w)fs#Obwc97TbEb^WX zV`bom$TQW&g8p5n2blI-eMMLkA5NB}#TM<_L88Kz35J1yzv<|6NZ`uL4jEhHk6|`z z#V~ZLJ5l|NOA9fb?wyu#BZZgdIOSJRzU0IXqrLcBN#7NsnvKJiRHK&1D;b&nL{;T zr!i71F=p8qJHOF%_<^|`lUSpcJNI=%iFUmn*^I`v&Z`q9n}to|ipsMPbx%6g5 z$_A!%C)f6NgwzCph;o7MtOTW?1?6t)L}X#A0?Usk56$ILG`eds+U7jkZV-!2j^mEK zrCjFbRvFhEo$5SPFc4<#afv*CdEBuPj z@O@)vU%aeg2u7ToxHd3tqc6QrkX&cS^UZLgsj`-FGD!7~6R&uRISZzjtWL8d5ys9E z(1jK!tf*L7aFSKsvna>yVR((zPTpwUue;vUYq^6pL9+UPQy-M8 zQG{2xHf-u*C$X$!glA+GdgZ1pT4)VfjE$rbeQ6F}pR>q^h!TDQ$!3u#6iY{{3dd z{G>9By8Q^W{zjIiZuC@D)sIf^EFa^VrJKu2gk0-d$v0&})Ax205!UC}#z|4x<#cR0 z^7H9Nfv<1R&Y-d_0y4lCnCQT&0Gn(rF!&Y%6=dzTF1&hJI88DAt79F|EX4e$>n8?| z^-mi-6Q7}P)1;*_so$~VPr;Lg>N5KAj9 z2suUjNBo7MpYwTT`=*JPH3?$X*JxvXecg5D;`lj~_srUy=@JoYx=vtpiwHAD?wfY3 zN`4t~X>7XU6oGl|D@;2d()um(A#pfUOn_9M5Gi2&k0|gRY^G@-ytKwSZ<)R}OawWR zCLV)vniL;+7Py|LItgJqq-Ix07UqTIvegt6`X)AXMtJ%`Z-=a!%hS+n#p_jB$|VhCa1udIN-T*+UoD31&K3W7EFs?zYWnUJ&sM- zjrmV^#kog_tCxF$~=`W}L7cb5{D!QB`pt9VH zqIg}7(8x&mH6>Mq($p#%8e!P72T^Mkc#^b7Bqe}jCO@Ap2W6P?wHnGK(eKjo@_ot% z?IhKIY>|NzMd17hqUJEElFsiD9KX-AX|w@yILHuY2ly@$@I#jgcj_aADQgo^cA2b62F-w;R<4H0R# z)pWWlwcCK=@wGLDHD0H?ciD0}cj@;|corMhF0s0yzXph!oclQ&>5T+r6l@bHvu7fd zf>kPb5Hd!m=}Jzr4Y!^dA!1|tS2G;C0E2&OS&dw2I`!uxD~!y90(`zss&jN{>qe90 zNbZQQ@~w-uYzUY3*PraK=XzeyoVJaB$bz;* zp(?7j;aAKwHpYkz+hFdk3uk)#fnzT6V{)CsVbG1bN z=y}<@!s{uki|`60KK}NA{$57kx@9imQ%$XFAL6zC#t_eai02-}>!3IwhEg9x#=Fch zV{A;%yv&x2Et+yS_>>}xf=9T9#R?wL8gjit;^H#8A8m?f9LYI8cLMFhR$KDP!0o}H z$Y<{@v4nW+22dpY{|caAZz`^e2V&sxqGP&p?@G<_wN>WYD5G;pUE$UMJBJ+L12G~K zAkK??xYW?Cn%A=Cx!H_a^W0*u(C!)z;#-afe2tIS^cXksFzO0Cy!we+mZU zWHKX#f;R#9h1bhjc9jkfv%j3^VJK%5XXE_x-_U}3_zygw&oh14)W81&zwPORHt@&5 znaIN48P%(6Ynq%XvL?cr1o>@171g+SF4dC)F}SviU0cNzG-LFFvevs6aKwDaEB&8f z>1%U(A_ITAFwG?l!7KD1qY%wA44`9R^uey#R|Bu+hyQGt1R0ocLVFk#VLc3tIsn^_ z9*|MV`tqMmm#A^Tp_P3~$tmn&YSe;vM&eLpkUUdS}Hg!d52zj%J zt#0p2M4;H3l=UJjaM{UIW z!cXDolH0Y>CHa|LR=U~-H=B-h5#I|}POq2&Dj*=MOgw%qIDySpQXx1 zK=}}xMbt|f!+(PQ`h{7fzT1Ya&?LLcrlt71vt%L^6HWfTp-SHtylux1mZP*%=ha>f zavvo+Uel9nBF<$zUwPW;@rxB0PObX$Y@C9~>f1MoMpgAATbFFL8XT(vvFv~Y_SKD% zSuFj-a6Xw_FB3O8s2b*V_d2c4^H65*v*|6>`$57Hdaj8|SI^Rz4Ht?b$(mGQXP2 zF(R^nQJ)h*u?BY$viNOSyk^3H2EC03XZGR5|1j5;-kB2(Ia^5@v%6OXe2SHU*aENXR}QTg>qnK8s=| zANIs2E@H(-;dgd{kT~ZYUyOG*wrZPB>6UWac%#+ZTQ%zKXZhH1)^*mau~MCjIu4IM z5>e7kA7c7EI^8@kFKiV86o;a&a0tRP5ZFaG8lrSKegESRG!FP{B*e9SluP^Z!hXcA z6{yPG-qtU%qa*hvcKg(Q$$ene%{Lp^YyLrfH^_+l$j59^j()i1Sbk%eySt*A!(q8K zYsi6vr8qLKcWr6cdvg&3#QSKHQNz7-G*m(rb&Gqr2S{22oWzJ5^K}8QNA!9vD(s1I z0Bre{H{jK_UFp#}^stQ%07IC7wm{~ZsAJ*}C)@iDbzB;`h<3eq0TcoP#hPfJcTBvM z`a{Xsvp!$w&jPuf1(py%{~z-Aqf=`UoRc+l0^OoWvOp^Zp0uZF>4$L3&=_=Z4yVzi zi#JJ=q#76}i*xdXY0nZk`W{Rx2EDOPaiQVg|BALAnQKP1iM&eIF?)hl`#3OTfvC=z zmGs+SC95S~6YFvjS?!s#Y_;T6vf6W(mf2ds36YllF0FJqeX!bL0u8(`=ShLnftij0 z>;1^YEYA=&qQ`LGz=EOo!X1iB1MzPFITKS(PRlky|E~zOQ5!awK^uJw_L_jwGgm} zg+NOIzz-LqV*Tp?Z!b4_>$gFL2!a{cESdG7y}h@V+65d4h*C|`9r@)(p>qD(Y@hn& zEY@1(Kc!cVDyMVj`-Pis?1D1tDV_$8#LRkCE}Xd3Wq1Ih21U+jP9r0r%f1K70)ZIV=IueWF!8T=XTca3+E_422b6&7-0dgJ5EzqVA z@RU#&ghbeFJ`R!`i!+^;!Bc^eypJPwwtPikt7zfDBY4y-|B`=}46 zHIdI+7xnGQO`k`Kmwo)Bls_)&tSS9d2}zEO8|YIXQ2w#J|FI4Kw2#);o*qBwz|U^| zN^bcj4Xhd?y^AAwdHi|v zrW5-0)#G`z^mraEJ)TF)kEdh*`MP09&Uni)8P#qxK%-h{v~{}!-CFO#|A89;pG2;{ zNB_p=;epR&y6DI$I&x2Hy6CA>^mJ#XLEm#@YCpYYOT%`&BX3p=HLhgB^moVp!mN`1 zx?gAqqQBM`$rS0YbI{kFHqZHGT4cW03a~@_oQ_s@P~yK2-@fT_F!t>1nu?jjzoWdM z$to|v+VOpjF#&!u6Hm<7*PpDfeVo69|Bm}3OJ7Xex4$btW1k25+#8%H1-{s?+O=D+ z+&n*ioKxJ-b@;Dk1e_NzRcNjUvX!0s{9TA6kOGgXK(fJ(91m|-zBf1Jk-4gcFCx4XrbVhn*rzlsKV?Cm;wuTw2x;a&364gFx-u8#xLY@Qhjs3U?x7Eu~zRNz=QL%n4$rgUw(zvZ1AQCf=8*;Mq=Wds?d|IX-VCK4v8-=)F6m&c0CWh>4=nH*!dP47HKX|ADKd>lU z9}Zr>cz*Ks=MODBtNi%l&5QT@uUZRwW<5d4fDcj7ef)VkPOeP{7n($0^a}^_l9RrC1*E520$6OwBiaIua^PCguLs%K#u7I^HU|n7H&T~VT@r3 z3-4tPT5+J_xseyM&aS26p_yz#%wu|KIwSr2^{bz%YW6<;bB{wI7lI~3^RrjY`C%=~*zyhw*@ zzrvJY>JFQV?NC%q_U_U-gw4&_p{Zz0jBzEzeD$)jgULaK9k18Zp-rWJUN(m+>-_%` z%*G z(|%#2#KM*5@+m4P3CFSzg`M3Aoi7fC?0U{85}yeQotwxgr^I^CRtKSdj%Z}SZV_(u zj!v~KnY8LcO>!%Puz&+NW0^*d%-L_%fQ5`BF?+Q*piSw5_GAJNcqmL~NMNx#YbP(h z_GW=%^$bq`=ExcF(mgZO0zCWbblY~1CPbcaFhhxBfU>M!eh(g){BS}B7NP<_n4c-J zQz<_4L-5QZyJ+rbcq&Bmx{On8_VM85NI$e-McrDrLSyxYvdaq_;3qWP_}$_ z!mqtpAFm^$;_7OLr$d zX6V8O@VYI?5@aW??8rh+7~qCk3Rpecqt2&i*=Sy%av|o^kNG*B&L^q)F~}{Xj+8sC z)_uFsQ#$lys``0(2dmLr@-{~XPLnz zMrjUo{W)U41aiJmc%1_?kBupL$9~tb;ef4iOfq83fAm`t_hSB|-~RHi82+!HDcv>v zqu-D{TFig+TZ(%4JS%5(VE{z#yyzO#C^b#7@w;oqL$ec26XTEZAN>Y7e6061`-5Qp zvH4(^c*oz~>9^)Q#nzKCbhMa@`HvgpYe1{;qy^%`oVqM_RvY^vDRg5L-{WjE*rBTj7TcC{n&a80xoK zLS#wh07>NRi(W9U4Jf2q*Yh@i`5=j^? z|24o(s|+ovWA#ga!+=gP{c9umJe?%5_-njRu1J7JjLDy7Js<@6UH#Nwe=RUPMJ)a< znh1BaFQykbfD8F-rZ0`1WTvXjbedNQ#c5SP<+qm@&#R&ish{%O&%j<4XyZZkg<{N! z*pG-;>sglimAJHmV?D|;Z}JM0B#{iMN(NrqEt`zVeIrXAp65k1m}Amj_0xtT>uQV) z=B4U{`DE8qMXX0z1{Q4W-pZ^jTDQH>BDONp#*O)EWt9&=uW4Nk^P{YAFfj0LJjm}d zY)7nq84)`tVo&PfZ{_b-QmRY&Nj&PW`h$X$TQ$U^{3^28#&%L$6@WJxoX4hzpQ>fl zP^B?5No-^((LRcHpQlz2_@p0OS{K(>k-zbi{KjGS_=_2Ak4wEdv}?UN)Lxk)tP_8B zf;)+fce*?DsNz>9!{IZ)LwZPAnPn;GwVsW)AYmrNS5SXjB>Ky*>FK{PA|QUcOiw@Q zuz;9(liz2le)nTK_>}YO5&qO)UMB;7KS>7e4X?OZbaYy6du3^v%hrcs`jij(>wGvL zr@VA*{fYqYM9LFx3{}QM{RGKoa6SbI zY=m2GbTA$CqW$qWqEaQ2Ik4<>*u&bdvOzj6(;+*eQ-aY~KfZevQGV3{Y%FOpfQ>O4 zb2+Mm$ycdRnWhpzuezdCqzC{6YzkdhU;=9NeG!$>3z~L3OcW~t`E8U0*Ui`38;tY$ zun*Pxa^(O0CklV$-8>Q|&YUkCfn$O1DOYZ!)4djHk1HMMI#h60P@G$Wen-+myYrcR zySjt!ygTa-yX7t%JBPcgO7pjRXIGH*h-P$;|HLAN&TMzs`-3FZ9YtRk0ClC`2ey8e z7U>iSs>;=BoTllp#22S&G*14?#@A7b`T~r*8xZx>fTBJ4KLt?7 zct#j*KPG+6xHl-v_Uc7eW~bRWtFBkOtLGHcd$prcEGI63>FN%4*QwQgbV-e7!srZf z4n5_`5joDgQ9gwtIreA%OZ5+B1)!i--*I;3lx@M818PEu8jG< zNZ}I@$-SC(v)u}Y1lY`b`4pW!1zM)C4?q)~4-O4L5VD9g9_mg{dHNxB>8A;B9zqW!6$D z$MY#nH%QKuuf59FRI9sk!B_Ay-Cf&&jSOZ1 zm2hv*+N-_Q&K^=~jEIuq-6|vIbnoLOMxBN+cK{z&DKTl7L(m+FB5S-_@G?OG zEt=zwA-H`$J&*`5S7uE0N!OD*u=xVuF%Lp6+TnBobhi&KA@$}S*RP;BbU zm%*1WcL3#ikIj5eFt}w0fsxjR`l6;D77-i+6kjD;K_0n+^EKEjCBeo(ojZ6V@_Dek z0TYrMhI8xPv!m*!O)%^9>P*YEkHDc)s&BDJP71J`5a~jNN-%`AR(mEBrd7x9&#SqUEme<5<167 zLrPAQ;ff-S-C@s$@#V{BjMW}j-IAs8;)c+HK}iQ3>${9be`Pan;S$kW&e1)W=TmQ< zE}pRx;W-0394FJ!90cVrUshoQ>ZZHt16bjE{a%F^r)g(z_12i*^wA z5S9Fkd$zm!AT0;UENvH1>K>DTewp{^4K#q0UrZ6yJwY&LDe(%*Q3=^GEYr^DtxdOv zbRgyxXdxN1A(|jOn%~Q;L~}r-q9g*G0=orn}`jV%a2yO(O~?NEB!~ zN}5RgMN~5cZavuDq#1Z|l@5ST^p>BTAwNS4B|+Thz%@@(Sm}bak+-mgi`q44>*q5> zJ{Zi4az*VkTsVploC+Sjm4kvxBuAaRQ8Qj-1t zN(en5xR&A&Om-8cTVvwin#<|nBhl*4J z{t`73B~6l=APgzj$3wZ85P1d^6wp^uq>N*rk_>T5&84Lly9AE_-jTkd%qK)zP@q4e zKL#rR7%+nflFmWE89^pa1Y?9sSi`0(AR!OGfK;q5IS4S&yIdw4wmLn$J5z?Mt-c`_3;bFA?znURyZ#6{TWr<+j1(Q;S-_(i+U&HyYM8b9VTqF}B5Ec#EtAfTrD#IfDRui7kUrAz-L`XEFNrh_xm4L8Mze1EU zwJ8M-kg{}`SR~J8Vv(W?9(OV%h&^9bk|CS$>0+7f%HXlZUiQGAEqekw50DFYW$?MQ ziPF+e%*lFURowV&PnJHd2ec`;rIZx8DJ`ts{t^$CqztFMQ0wpH{yo&wBsTKys-QkJ z*w#<`V_fIyWL8}-F@OGi$-N|!yCiCID~%|6wg+GKlBy~QB>f6v11VOzr!nP1$##o4 zHb{zu7>zOD_49%-@zaObuQX>?ZS00dMt#eSb&k9VkHgdooF?$J0nBQum=$+j=7Q;F z#Hp$Pr<#U1RVBwR0eD1|0pgZsQ^oESHvMh_1YLCGQc3ob8opsQJ%cLH+RY8yWr7rR z2X87~lO7=ZtB5W(dyjh?_ztf~Ch|Qd`V!Y4_RY}Cq?mt-_AAuQyi4Ze=%C2T^KP_1 zPOqXv*c|vOWd9<`#qNfZ0c_Qf~8q=6pW9meBbiLpLmAD&Xk zT2vQp5o9Ea?dUAUpfD)D0FfoCBN=s!HeNwPKkrkm36UgzU~}Zss017mg?Us`Ugptd za$Uv6!FWEz2!WVJCljBf;*QV61;W8~0jx`bqpUJ;#6`sq zDukxdf700$kk|X8jM~@y`wvPj*P;8o58`wfoz7A86xup!y$paAx=h0Hd7hWJY>=FZ zLYP_rdjdc=8s+%tQ{6DXB;`b3pksetog>2$|1C-PWMP$^&MU6^{u=Ojm=1>+iRlO6 z<@@7FGG)RR>J5$dU7d%oEv|#nO_)#oUBmwuFO}6zwA2>wMlD*(tuB8v;iBs@z3kur z?z=%*3R;9-(96D%uBb6|h6_m>tipdZa;A~HdOXQjO$}U>na5F1xxHk~W zA~FXRnhg0vd{P~~&-dc@<((1|`Kp?-Rkalod0eIdFq-6LC0D+4GE7{S&&%l7^pwoEO1s;3 zpQ$=^5AjM*2-3J=YKB`M(YvnE1J8;-n6aMo)+ww2=8#QP%N!xM&JRpBl6 z;1hhgyScH#@g+rzFpy}CtzOomwMqUL{F~#iaxH4fh^$eo(+%}Ty&IBx+v()X9GNoW zp`4`y6vR+3b_Ies95X@O&5JesfCg|8QHHruBxNk&L_`lvJiTA3t3TugQ04n%n9WOB zOx$0<;AOLy`FxCeN91UEfoT@PFfV+4VY>s$Se_5S8Y@8Odk{7^%AjkI;17HJ%fVDFos5-(T0 z&-j&h)C89w+N-l^3H{9JSD{MVPf*ZuRnFglJmt5|#DaK&`2uCe(%dQr zimx9Xi&rH|W}Kh{KlSKYd=vcZ4F!Y6OEP)43k@UL;sx=F9v1b741M*|I+*@psG?bx z;Uy$r;c6h=3tkWwbEqu_gB1nu!($Jd5F7SbZ7Qu(8h6RM0&h#99~g|b)SIgGB|@%_ z0y>wao%pTDd|`T3phmZz55w1%72pyz^K`L*0vq4za`#CM9GxNeMCCp}Ov`Bt(2y6O zP`x~mw{G+`y#i)wI>*vmqaPF>!*2KB#UsMtV}OZ}<>7-;6aR|IDago&9)F_D6d-eq z(d&_P{NkdXn-`lkb`17j>UAc#g78&^S3hu{sK%EswK&4>EomCaR(?82l9(q9fN6Wi z5Wz&m-Y7F9-YMW=fIM4JF_Pig0A)jAu?g5kVA{|I=iUZL5;$Eg3(*?~%#L@o3jz6X z{rOZdc{F(|Q*$Cj76K-)wYA9id75%;o<@?{3DoIPFc(d+d;0egwRRlEB;Y)V7;W%l z!-IrcdGq23O9tH>Z{&mkV!oy2@SVOUBHsOI?J1qHF!*u?^8ms-K5+48(`j0u2-;I;0*YYB*H?Hfl2#@{*F^K>b-`$Zk4G(X z@f@}^8N+Z;zNCE%Vc?Foc78p>K4A<35JnPGxbe!F;G!U4SZk6dsLv1=SE{i|Ih^(; za(|?KDV?s(OE}-27D;j4pOo8MTTh-o{;$m^zZ~|SZ2#Bh(_T`}t~7|}f<(}k5p6B8 z6IYWlBN6TNE^)QY@yHY1E6=ZYa6O_P5DT5*@oq>*#X*kumExqpq7&_dAUQpLEJM%; zvG%BS@9xIqt({i4#j_q|!`)Tb4Ux3EQET-(_{rR~^=+T&qIKN+BhRL0?m{FpqF1Q3 zvtscewzRUADV_?6vGYDPoTpMZX>R}-5gL8KlEi$m-Z^3d_4Q{d$*3k1BPInELAt>i zq>D^qNwAKQOVL%T?jZ|1)W>ANca(q5v*OdWNuk(=xfYy53>PI1pE+~a71o)uWf*7P z!+DSng>8DfM?;Gh8}0PeV!(V)gcX&jPn5BiHB`3(l0|n2uFFFcQeX~>1n=d-!j3F`ThQ6&dE8 z!RbK??Io-l+^GxMFmL_xEvt6O`fr@p_emzI!XB}Gr`0cGLuYm@X3weZR0$WVZ$g$g zCr8cdj>~H~_lb&!1+&PDtz)jCGhyIZa)R^3ktgUdOrnFZ9TV5jYWHrICTgigVV9NB z=yfG7WNSvX2xG?%bioFDr%@mM3_sx064$7@7=|8E!#% znaHM|uhU_c0IwQfpW&^ZD0g}t!9G(}(SN7sW1>&37m{U0fY+XJFnRps(c?!?ltfN| z*_6PPRVRPC(x}mmUFj)cyaVA%zARs>*VghkN(aJq=&$X`pPil)D)z?g%4wdDwX7DF zyxXnsC)5;1H-OPRfFGYDip$IL2|mtL4zfhpXzjrC-?X|0CP-8=`-`okqD%~zG~g3d zZwy&2v*)F4A_r@$P@Cm>P9Pr#Dv+=xl*Ck{bJUW(ZDE4fs3p7HGQ%I*1ZW~kx&bO$ z)1-F}G6xzZDFT$Vla*wwbU2@(LkAG#FoktK$Mc2iRuP;KRBkAY-7Bdbz89)gRy_N{$rJV~TC!9Awm2+$%BZ%me*uN4Jdn zDU_aAs{I}CvR|=EJ^j540!mbV%0O&bos+g6=!iYtoY%yUR{^crUn!Ki#PbITV83V6 z-=oz5v$s`PD!CB_flLBQlL~Z~Gquo+uJTT4R`HLhXx&X0D%0E^+;Z0O!S^`7_Vg?+H< zw+(V^xrbkSO0u#oAQwO`DHThrzMx_pN{j>{shQ1E!4~2AL{A`UYXL?-K&l5-d68nZ(CE>otFaf zM&!FwkZkq5*Ay`444>P03uk>=j>U>5jOd3EGGCxX z(zaqAT8${^gURY8ATNI#2E5;JSwNn+% z{XsW;C|V@59KG&J(o(v&&v;kPHk4&!hX5G$X`_q(ZidtYqUZ8{l9jz!1&{JOEzAbc z=E@XBIqG!k`cH<72ovv$@r0ZvY<7Z{+RT!G!DF%XDj8JcYkFJLf7lJMbeGD6`fWhO zwV)Tc-!bLTSKB>y>BO#`5!XWfKe|;`MNRi4NJ33l)(>>^&Yl0aO+n4!dq;T*a(Ne% ztii&4&JeEf6>jCE6HL@u0dGnBM3rhg#ge@hedDU`XNAB-gO#cUtUpsi4_yL|(@{n` zMXYBW`=j5r>A?~G%Yv$-LAz9DJEUkLGMdd;{2~JE+yQRkVWBwp?h8GL-CT z042w0cVH3%r7q6!P&!>h1d^>I3|zv%_qf{*lVV82!dvK4s9W%~jYxvCcpJar?JI?k z!5bC2KIy1gx+F_O;NBUowm>4SvyP(Bb}k5C^%k|1v$LxfoUEu1 zu@^$UCbN);$*N=L-!!ovd9F*)R~9}4krDb_{%U@+xs=DBc38bBW=|>y+C%eB#k}O(-n?onaf@YA9%!`F z6)eQ7M^TW;rcq`>=x7>|#29LAoFb#AQ%0f?6$B6aFAl=ezH~x@Caq#hfk<8`^C~Cs z!n#BzFQ}JLu@yS^@Q6UjF!L=1CB88F=2Jd#Xy-w)(~ig_6Me)QI`DN%$67lerV;L? zuHRlBM1&~X@g;Z?jfFv^&A5@L%9}mD#!E)XJ`{;#?7lQ&rgsfM;CxC>r2DU4X@{XU z>+pe(_bIf}r*sU5eaom_gCm1+bp?-x)Y3p0HwqR!HRs8vX_r=%LI zEfu9oGVT9Z^cBrf353eerd^+{&>m((j^;r@MS5~HX!>+@nEeIF1TZLg6{IJzWQT-0 zwr3pPaouTzNIxk`NNj)60j8X^cXCCjz0TR{obIa_4qZJ8m}g@gB8|oVG-KC=m*_#( z>WW**Bc8V7&VuCdv(iI;+pwtYERX!)P!*qdMk}tO+$;_^bxYSfJA6n>y*;hre~Plr zyR`e$^zwdmHcqc#+70POT5tlPUDCf>YqF5G-8^cEcdcVf!QsYIw^k3;`4x_dEhl=j z>`^`*dOb31NyJ0L`k@ZO5g{2|*LAa|qfqa8R-{UW?{xMp zv+u)4>m+&p@I!Li8W+Mic!jmz&>Zr4vS_l#zn=Qftb55L*gB0bwJT=HR zMJj;Z3HYeK(O=%m_~~OCL4#y^k(BkAA&1CDHv|d7kJpVp-gp8t5F##Rj92Z}rq+f^ z^je+6QVXXJ+EODnM#cKsMLqYrgC2BaPT^(B5grZTEpjib`j6K)HXf7VeUS`4F^lA5 zDVz;{e5E`o@VZ+NEXE#1!Qgw3X6^`Q$=1MRzPd zR{+Lo$Yj!RIv@R&jeFyy|9ETj;lm9J)i9FLcnK^EBL^B5hvI_K3fwv9(Y(miNWu0u z7ly7Jl@0)6VBS1Bpyu~*T<=rst(8KYcW zt+}JYFqh;?gD!%Y#wU%n5~3I6O9YRC1=t&sphNoH%#JK;9}+&=Eg(ReXAICpDVjw* zQNs*L8m@kz0Rdx>T*1`hTZL=^MVR^6C)QBz<{JB>BWZxtZgp*~B@cRyebxxQWN>cjjbgQnJluM^{m2>A>ol2?`92wh%eDD! z^aP!FnMK5$V?*f%2jq>#{$FZqa5oWlQKXW5mqwe%Af35;#iJ)rHnyKwYt%sN!X3jZ zj6+bf;}DO44IQk|lpRpDK&n)G5mtH4ReXXJ92V`uMpIyB9BXi{l#%Yx*-V-ZeK7st z^8~hpL?iN`Qr0oa^cs0z&)G)HKgUB+Y1t8&4S6!gFLabGfx!=H7_gQ~(ik!mA^$rW zKa)MEk@3I^qv(z>&gVZU(q0p$Y3Mp5ZF|&WO(-)Khwc#ZcG*f!0DAs|1|tcvJkQ`P zI|Qu$b&|$vhXV+{332uATOxnLBs(P#Pr07e1a^t|2FCw+lUHyN4K0u=4=nKff&~`m~M*0O3 zfHYfR(Z#V>uqX-8bS~`mnn&On(wSA&AaKKLdk)Stf?Z3GYueOV#lDLk`>1#a1KsF7 zidRf;CAqpzO|cI?z@opNP-rvSc3E^m3_?!}rRGN^qN0&u3RFHwINBTF>w>(&P*TPO z4A3~zf>c1Rk&Q5|+-ce~50!AH#IR&^sZ)^~g%N@Q2Oy4U6!!>ibqsHo1a^pGYF_hT zo5J&qwfzO0X@r{&NZVxkJ_M!@D+5nY(+U>L_}ZRb#>PV8lt#s(JkFx{NpW5|mSFJg zG%S)4baV)~X%?rJa2E7Vc5MPbLIe_1N27O2%?g4Te$jFmLWfS%d+3QQ>=Dw-ms`C@ zWC{1;?W-2YWO&%$eAwUE>?%rmarj=v7J!L*`Ep}joy3F>m%e@DIJr>fY1G~XF#U}! zjLaYpR%ig!C5WdfZ0N8(L(#`Q-JgwhK`Z1%EG4$C_EcaczKq8UtW8xulVUM~w?t#u zRL2SFG1BSU&xidp=A(UhlT1aJ#x6{M*~^SQ<`&4t0+u3>q{b%HxD)&e;3#5;`x(3kD`G zJa}YXW>ILWCeVf29$-qd2qCfNMj$~3avK{CvFvY7f(VM6K&R*?!xjJ;F((AG1ahdg zjm`D$!}b5_Zmh#Ue-k^Ldwo$^LRT1*6Ff@so97g~cuY~= zSxcauyJ#;sH+KRHrz+kuvZiWJXKk5Tt&YyZ1{O! zyJINy>NYq^H%7xgm%$uh`%6=Eq&B4r6988AD-2AH^=x1gm3}VWc;wjbw*kt>^8Uwm z@BUur^VUtj!=ZD%x(1nPixU+<)>oLZ2j%N*nrRtqN$-rOk1SF)P=<-uZ>dsNl@GCU zc(I(4c8@6k)*5T9c|bKgK4S+FF)c)d>~oEUgI0I%g|tfjYVtWkXAjABLk1LrbdHFAzA642GNW^Rsgtg87G zef{Whp+td_V)*eTrVu{tk-!Rt8Q3|vGl51vKx)EoN#$WaNIji zSkww1$Mab-$g1l`ru~E5?ATJqy1+mKp|=b}(-Uwk`beIlWo|R;!2qU`m~>9}#Zt{n zDPBZi7?ZuQ_m?nyqbOzuv;q%7$f=Ijd+Xhe-uf||UG3Xqklg9_Uulu|TrN!WC~y$> zwzpm0`axVbiwo_j#|)4x3P~=OnpXYojYp5RHhqTs+d7Qu8;8w`0S7q9o4f*{c^_r@Y#4nTJ!BG| zQ7$4$wJfirQ9kMS6S{yk&b|q114d)Ra3mo`J^ELuLc;{aK@h1YX@7HlV*};)*_?!f zwfSrfr+Y2oZj@`M^YOSm&upm_*iIs^es9Z7R7Erx^f;+*00ffxkVXArXjYj@~0ayrgO{f)=l{S0IB4d(+y zG#&(0H~MBxVgH6H4y+?hAKLFza4Xmd;P9)e->x!NO2&1S19#IbCid^D-mV#S`YTRG z?qUPo{S2|0s>dzc_JVAOp`3)-<{@>*=^5I&%(@(a@-(lie9}b)Q2XxFv!|VImA8Rq z!MVJ%uK0#gq!Qzq6!RUmUmpDX^@~{g*po(6eB!8y z6purwFI|guWkaokm6_4Wl$rG=n+9)mq6c25l$EAv)cIT$Nk-B90#o30#xB`#xa_^Rqs z;J1c;11q-w2-^L-jli56!|bV0QW@TH;iV)e97LIGJ{Y8= zf5W?Zk)uJ})u9UnUsCpLu)oWzO*QXpTX>Nvd5HD;Gdj6PH@`1&XWF_IT;rw`IcoT- zbmyER@Wfm2@y3trz@bf|K*oFf#`G1kY`QYV2{As1C}sF*tNu3Cb9btmmu&Vm3`f`W zPlNZr`|b?bA$oJ`FeBgNt2KNlH5Qn#1CEBc>Q1kt=UF<+QRi=*qjfT!-t-b!9Lc7z zlOIY=p;C(4=Pl#9l}~3&9>*VU8WrC?Uiuurz4gR03=@ODovA@BnQFv+7C$H1_&Q$2 zht-|37?2KURVry#J4;fY3j1fO=trsS!w=U7!*;9Gp<_F)*IId=rtH6kJ03rM`63_j z-$Q)oRx=#GsLCG51^5F!!ro($L!^59%@G`~_WXCshb-3L=$YKII`F#HvW&ikbpocH z>t}o}5mo3COZ-+YNr*H)3ZN|mKRuMYcKToeyxw1rk{kIhrpuZG3WGhg~xPIC|AHAn~qn;Td zhK8Vp-nntQwSr-D!CpQZ;l~!7icevWy>2=EeFo(RQs+VU&6YvRn=BoduhMi1i>&CQ zebqMNhCRZcZmd5_p7d$WknPpoS5F>p+x>ApV6RXbu%MER_17RTX35l23B;VsaY7fZ zm~c^Ogu2n{G+(7#y~NfD8!>oor!!0BOE6UzD{xU^w%ub>Tl}@b@*P|E!*_hQ>D4C7 zHVHz=j1PP30B4Q;!S!9Wx=sJF z@3~krZG0c_eZkj6*CJ+*311+l51)4;3oqEzo~DY0Yob{F{Ea)#`-( zgOFjO2K#@|W%2{v>>7GBc{glCPFXfK)Aqwh;ZdD$K6=$r39#wKN*yugne6haq z0*AKTsHhbXb0-b0;Ah>;#q3Epy2y*utb}HQt<<@qbE5e+riNc=>SrttV$XkTaWI7C z7RUd66imIhDR_DOEAW%qRulNiEFJC06`}rHdTG3d)xi5A+IL}KkvLQ=s!_|mnD!|K z-wCGxDNmGv#mVXQ39Q!>>g5UW0eUtcNz4V{}+Sn^bY=q5pNy|S}k&jWC zp||4S+by#(%Q_q6`QL@*IT=!&3RiQTp;sCjUK&v@W%w6uq`LKJ`|;yV&i|W#%EYCR z9JG$CGp4Y+QTFz5J9<}S7btkr^%WT%&><|TDwIgX4HS09>^+7EJAeX~*%9}K?JuPT zt?ujp{QUOA{>h7fKYQ`w`HSZ#FW$d@|MorkPrgul_vU6#ThtBa<18r<=_77T}PMb zB~B8aO>R90n{G>VqPX6R^vpDqv8sQC3g=QVYd3TAkh&%Ov;~Vq1O@0h9{0n>v0}FGiDj<_SLs^4f z*rwR{wgCaRv_hpY?ke*5Zq)h~VE4aMVQ=N-HkPApg#t5^$B*@b87q00{bbaB3HP~WyJBN7EipmWCsZ&OU~s&jc#Ia=IlZ1M_|VyYGN^ z($$+*>~pp+orI7K*zpyg3`V&YF__MgT@k{yd*5pA<@{i22>qOEHK<1|1c7xl(y=_47Wb zdZY_!N*&#^FD$hN@JyH)Wqh~yEkXWH=SAo6tWk=BS(ID%h_5l5{DX2$ZvKDNy=i;fMzSdUJ->p&B${{|FWD3w1tK94HU%&QXp0f`-``q#1sar`GjreP=A5yJ-k0j?s_I%SQSXs( zynSp3R&@LAF`fIwok7@{rMYz5B-9;7khPEL@MCw^De#~mT1U#iPUo0pCBFJbc1Q;E z3pP3WMPUmy)&hW!&IH?E2F2Zw!{Pa(+lSA}GW$h*)PjH6`tIVLn;B$se- zbFGp+M+TIhgpqNA!vH5@ZmQrI12VB?Gm&t_=ipJk3_c5mc0`0&IHF5r-=~>)8R28I zK-cHRT=Dgpww{zrXSar&M4tf&{r@PHWD*E)qa*ovKn}K)Yeeaj*KSX!{7`HhjIX69 zD#AHcB?ka3=copP7+H^?W{iRuAw!fcsr`Q{jH~boakd>+d?91ZDl5}o4K=so1=@fb za-f6S@WR!=4JZK$^+`t2Qz#u={gkDjZizjbKDA_vwsZ75IMh3}4h^4jEkZYRmaZD4 zT|j4Jq}zO_MY1n#?1Zt91)RK(99jZ_p{&Sispo3w(5QkiNFuGXl-)EYblEJE8SlB& zIcB*SLhC6(LpIseG(R>d2?maZIzg{iY+OMR>kt4@HMJ7vUXt+0&rpXNsD>r5_!pgb zhfe=yyo}DRvbT#zBmavzoa*R?N@dOK>z$_hO!HmYwR38?{r@2y>@NkOYrzY<&#raO z8cGkzc9P=IH{A@jh+ta+8@1hTMn!#0tSG=bdDPY?8G*5f_wH9_gg#pC6??-IFf{=r zgRTrN65%1HoMk4(;XE$p;F_UjwzqE(M{laFS4IS$aj!j{&a*6?P43*>AB8_X&De7% zDT%{5U%CIxCaLx%(GkV@$Glg5Ui9FmgN8QPmUMDs>waZrw35FvgBk4-^Eb;3U))AT@hJu<=j09T^6Bz+) z-YE=h!j}Z0_1@-lt)Y(K`X{W1Mlu#gw6gp_yUpATTpOk%uBzo6HJwu_1wcYo2vFD^ zE^kv5(6vaH*m;4sa~$N=h`-T&gTxM$D7L= z3mZo|yY!=T0V{$YFwzelm54vO{0<@PLfOKIEK_eH(oK5&+9j+}BC)4AN2jK6l6b6H z{ZqN$aQ|m$SebNwqP=(K6X{%x?WiOq3#(1R=>yHLiB* zVn9OUX|ASzRCkmge$l{$WHXE|Ste|hmsHaIdZ>{tif3SCiwr@Af>5K)P_r?zPF|K% z74FkqG8xyJ-{ep)uY*4H7d8$t!dW9hCqC^k-u7|O{Do2XSOn}XW#VxofP@UDjRW@m zmR1hXtA5nElNVj`d1+)i{8rv5oaD`yPsp%~JbA4p$HmZ}ml7O~Hk=~u3Nx8Z-jWk_ zO`R=EcAqD4pnUFWz@x?{Z0`%UDw*Qp~G7dNYl{zG{nwir7F`|P&~Fyqq$Rb7?%U)K!TIrn>u%Z z2Kk~%52!^Sec>cJDu!qojflQt!w;wka_*z@~wGK#&Yopg|&{!z)dPI;hp0YSiEUftq{u%>DqCx@Fu0n`V zk($a>K;lu1*n7;y^om(%QH(|7ql=NP_n@iApF zXXg!+LMr{^-QNA)u(R&`6S?*efR_LHev-^8KwSTPU*sn_lKcN$phNf0^TW6O?_WLJ z>paWGX|5toi_S(`M90G8P)QE#2d(!Q#=1f`qqB%Gt|^k;*-;LSjAT4qG8y(9$2>5l zELiOo#peXpik&mmYRhC5nU@8VaC=@|*BW{!yme805mY|MWmbX2Ywa%5H&`qN#%h24 zKmI`k#|{>6eUZ%99B_0kpKaER*4Nn?I^JIMi0}`ZT+V?R%W4C8QLqaN)i)|SpW;nf zx~6U8WfBuS)Z=)@oPQFKCVe_0qeA$4%gGY_4Mv~`qg@RZ$15b zovmldX*yfavUM?A&)0vh%XyNoQF9|dUz0FuO$_t8!obt(YO=0?Q(vr?GsobcNT_iw z3<&oT-J@ymr?mlyCK2vVXrNf54t(hMAe$(uH~vreC0lSceE6h8ra4w?q*gPbHzIZx zlaO2AjpM^t8jN>){WtbunRB3lHXxS;-*GvCh|PWQov;5c-75+|w@CrIuJf7HbXzW0 ze|@{($A9mPYHWp&e6bkTid5WlfhH+)(a|GV9L-Hcmvbxg!URh@6dDEpSMPDKb7h*Gj+PY=Cdk+G~ zCh)!i;yQ0`opcfW9pus;HtI?Rq=pgv8V*07^2LF-1c zNRwD)>xg!4TbaPzIOMQhNt@P|k5+G!bG&Q;#ihxFOiL-uk5xgg+|x!RZs@~C<(K=k z4Bv_XF0_`rfZ_Wh*%2ayM+waUqOKm1S6zSJ!*Im(+z`qFTB*_Pv%3a-ua&PM`DzJ> z;SbizmY3omQf7fds+)mKZT&+mf8BX#h_~=OqwbVIH)LZ zLahjvOjUvHV2eZK=47%VzXiUk+1%|Gl*kxBeZ@E%zgF=!BDr!;u`>alK>0zzq5IqM9!CYjmD^ zRMjjuKc}h%Xz9i|B-OoIOQW3|2C-o>j@DYpJ~jx$@Ht3vP`Ft%U{_ZJI&v4pbtz;I z`<-v3CY#;NPUoRkK_KyLHS3y82@2uNt2^SdUVrH|Jl2O3{`4AU3I=1-0iT6 z9L8ItHxMHvY;xKcZl*C@)gmdU^)bC6|1f$~te(Snqh4fcSL%(E>NCH~(D3VnqLl?? z^@km?H?5l3n><&*`u~s!Ee#-<$e@OWSv4T09I8?!=kK8U0fQFtO{QKEmO(m!PvPIV z92z{FeM|h!i{Zb6;Ok?(6{c@+%KvX7`ppc#*_%M<^anVFTO)Qv=7jPj9gf+6j{b1(z#qc5b}0#-zs(G<>rH<)cPtMJZTg1cI8F(kt>-)u=h5g~xu^)f zNnNxA=Qzmc+TFOBRc@{N9gD+mb3`0%NMV}YUi~bY_w$A^n)X*3bJqn>$tfzgG^9zi zlFTw1JJ1w08pQvNghh+$(dSUS)}{1a_3BRDTjyu} zcZZ11_{_pg<2bLu&;PQMsktlL+y4KqIUp96`JxbJ1a%xkmh}IN)-9CF4z&!&A4k7` z`n`L++dmI)hSpm`nQ=SZ%!KHmAYg7s^vRkMu-Go7Bea6ip>u-|K{O1WOL*{b>c~cvP zMz|nvycQC0iojS>8u!kK-VE~h*x9_Ep>5- z3H-W$zyF~B&1W=zCs|b482GCMgCK_J*}6Cn&$9DzLQmrO6ZMr)86sVTC~L+)^hzFH zBv~Hj$;Ytd=aMTiu!x3v{kgaiA7$_v0VU3)JXTN`xssz`{;lc31TT`shbtpo$v?jP zZZP6dH2)Y327hOiQ&_5!T)WFeXEu(X1NFBmBzwMNX!8$e@s z?#LB49wKc1$|Gri7sSu|!tpc2GEB^~{2C6Vd-{nc@{y zk>MyQh!$tYi%U&HTsrQkjW?iPdwS3@8-?G?MZ6 zq96xIa`!sIWW6I%2dn?H8^>_tZb$`sBSxK4p=ns zs1`areV(!FZn)LdPH&u=8^Oa=TXO#X=1J1)PWf4~5W52@7}5JK6@jZX|1WL5#%k8~ zi{x8_z(a|#NHHI=@M)@TcGU~Dx_Nw0DAaj~{p3f76iU6|^XGaKE+dm?K=q=d8ZPJ) z9xbh%w4)i(-NMe706W(vBNnc{v~sr*-i*&$*JG_rV!g*1g)D%I?9ZE8o76zA(QF+i zqn7k9T=I?o8tKv(gh_43ErnR2J7BxuB^^m~AHOi^IK_8OYP`<1&z|*Ex?!Ipw3L-2 zLe`8D0!sOWk+Js$!&*rIhqN&~%Pwn1F(>k>5mw&fQ#*eWOCX%}i3f)HY3tKY#l&nh28K2qLLv%^f{gh1r-c!VI%}6H8()0sn0|uu;f<4HiSl_Uf!tao^8WJL@e#lq@{i4h{{G8H8K^%hyB*KlAyNf&LPz1e& zQ7Gq-D%WQy3(FbSLy?bMvr=g|2E=@>naV&W6e{;4?)*93Nm8#{PL)Yr^9fi5>6w@w z>NS<6$}&GhkatSSNa3r%-ebs}q16^LV_A}`@Bywt-kBE^(3fUkHUL4ElgniJb_v>p zxcEm{;5cZ+sW4W~N`r$>Cem#y`fxVmhCgdn!!OKNcl0j+Xbc_aK+#FD=nC99kt+pP z;Q#%7P*bC@o7rEe+UME_Sxz2E87*hjwvhG;v(ZM|`ihtxfiyKm)P-6blZo`|B8)z2 zI=mdBm~2#)E=Y$$dwfb3lX7EccXZUF&Q+)3ucc!Jnn}so2Zl_MQJ7q7BxJFCq}_2z zM($PlqJFJUTuUYMV4)U<;-rG30#%!G^=Uzh1OtS@Iw9ih!-NNlukpP2>yb)QbkZwL zf+6X;wA80L4S0;&I(4~zwkTb)Uip#hZ zVH+Hv9ty)wWfe^Uoo1S8EVwV-m3i%%w;wQ8`dP|9df5H#IIy0jpg?#r1fY;FMqPX_ zx)|2%R{>rOr{x!Aw;$f=!XM>)o?T2dj8T(v42z307$yjGWU3B^QlYDX0$7myup*>c zUyvV`Nx`wy$bt}ct9rejV}>X)qgJ2h6GFo;2(83I5UZ$wJM81;tqzTaCX}CQiO|TM zuvQV^#;gVZK}9{0)KTSStpZgkHg|JT)+<4s=WjMws_OkT$7a^Jw(2*QjqD}rOL^ox zTxN)|&anW3WDm9WO9uQ|4- zmlxglrN`a`I4aOSaIJ=_3vds-TA+l>o0>oY`~YpFZa;) z_=_)Yc+Yt_VYh&2EiS!Xh)d8O?`C&RzHL-}(7DrjUy@0*bXmbctvVvGn8ATti};1x z9Q=#xK=APRZ_i-x`-VyJ7pP^KCTFv>>I^v)QPTO>8$eE{i)6vRMTs0tC^RE*KXc$_ zF!Wp0@6Wj6dkT_{E&1c1vo{zHy713~&QG&sl3iqr&cpNMtjIrPd1#dwb{@})<>YxX z!C~~j*it8|3bWwKV}XGe$I{~Al4O+I+lKA=mdpgg0Vsik%onAC$dk?K7P!{-HvjD< z7n1}2=^uHbo_7p=N10#sp2b(!fsljfk-@l7SrnyvFt!nSEsXi?rgsMH)L-dHy=+gh zIF$&~Fb|6nDyXILFwEm*an2T|QjIO$&qwL*Zh%EHBp3@_<|sW5s-x^UF5n-j$xvNe zy~gGcRS_BhLqNR0Un$4Of~@u0Q8WeAQB(!4Q(T1z+3B^O2way}*V?Fw_lN9OVtP8! zl{u2_2vA?u!wWEwL!mG7Kfi+NDLaQ&GYp48Fk+3IM%JEE-Y}GZRI}V-7Up6h4{`v; ze4JE%y`dn8^zZ9y?roqaxinX49%zctjUV}=Ro zr79*}^Z_)N9ef>S;jaH2D9j!`sr%Kgm+pGISpa{#_*XY`V(kH(v5N!#;|Eb?P;0-J zyMV!WzXZC^^NjivqdvAJtf2Z(wr>=h^Jwv`5fl@H*3*tx@M`rvA;$KC^%|C4e8uY5 zL8()N2yg{7sS@DG!uqEAw8{)UhzomDj*driJQUZZ3Uc;Yl;-FG;N9!P$K=_JG*=G_ zAZFjq=aQI>3Ruk8+jW$!j*8!U|UqoN$@scZ1H(@7MiveQ3^M61lNua*NJF8<{h*$Ps@5ZcxyX2JF-d5zf=a z0_N|%D1;fG;-2viA}#_=YQ5b`PR4=Y0k;E!P5nFw!t|P_@KNBXtmJ222m14lgm9Wl z97B5&WopD`yS1+Z13j*4-~?DD-LDj82ds|x5J3VKUSh;l%%VG_QC`L#J_|<_JG_6M zosH02*VkW#uLra5Up|>lAO8E{qlXWl^dCO{^pO6e?}v{cJ}F~QkL8nb0+`l2@|Yul zl{;RqWg5_awS*GCX)Lcyw0Np6v3M7^=?Th0)0oclMRMs6!r|9lKkL3yKnC@*-82+$ z69#Sqyw6+mHWryqDiy}$drra>kK$?gm#jTTzn(Kk<;RW;tgEtGTQ^}t_5z50p{8K& z`*V4Mk{RYT84Pos%n--Mfhov%wH@oqD4qj^Y8L# z7IIiLOdW@abfc4y@aNCPVp2vEyk=f97K`TLd0M?f{Xsqz(M2d#45IT;9JT0UD6mYl z3Mn)u#ioC^m_?VN*m~&rZO9u5KmQ61h@ef0o`-syIpy(np!eW6Bu#$n@fuh}kSdZv z5u$;~_h2&1{sJ^nOOTWa5_`tQN~LgH4x!`^Me(8Zd0$e%peGnVE?u0Q#8gb73b=kt zKMgE&?h{!eW3d7jFzBtEx(TR}+8tB`K<%oMK<&mrGkB_Fk>F>5<7p6x>-Cj`?-tn@ z^^T`NA*t^moTTK+-AF;ZY|;n-|U?|F8aFX>5bdqU&h{hR2&Bn2)-D6qv_BJk2F-v=&61b|oCn<0#yXmBVfv+G10s6+9? z@K<(KH;(kMj44q8?ZK<}liU(m9n*)=(T+meo(I#bd&17wO_W73k(`RZ6uS4oVV2kL#>mwX)-Qw89FGD z3J!s>A#^xl`UaYTJ3t*(d!)uTx8|(Z00FJJf^rlyCC=(;d{yL;NtKD4tHEbif!yAl z2~h?ERQL}ofO8o6h{RJ0!2uMMv0ueVeg_f)iv4m_;8~ZokrJg|&1qkU#o3u_SXJ;j zV>>(hUk&c;%orV2m*wjEbMkz9ldANYNCb2q$i~VG@VCu6xS{(PzawI^vx9J0_5dkhR zw*Z+Uz?nIAL@~6)+Z#iLu{9ZGF_%OUeIFG8Z0t}N@5g`iJWO>Ueuzgw2Oj)l9 z9)tS6@H!R^c!Oevgj8eA;zr8uaJ?QXXe(h^7I7h$rQBbPO1W7{TpX3hqXgDRphw&@ z9vJNPb))HS_xf70L4p)J!7Dt$CtQBA&n1=?>lV5ANgECwGfnY&;~|SRhs%p#(?%n@ z<|}eSQwH{Gid4Mh^*&~SZc|A_LNtTFC7Qi*;WDgm;4%~E@P;OS?Oy2-`l61+&jJ}O zrYfx~Mh%F6aWS|ApXxbAE;(XjA>w8dqPWnpWGGex;#BM=(`BFCABt@2r_Sm?G+%=v zt8qn+w(Pj0>FgN25v4$-5%mFQbe62rMFih;_CnR&So7*H8T$}hyI zHU+0!h|SH}y@b)@NVs2J>&1V398W9(t~H1kVh}HCgLrRXx2$}TKz^`Z^Dn@S4aweN zP7x(K&ywmH+H%mQL>=GTt#-Yz}IS{AhJ^r?Mns zobcqvdYAoJqP@Pl(}auK)ouFIWx2;&)VMzNrDc>XG3}Fq8-f`Q`|L1+}{gz&T7{f1LPpigr*-ARaIO(OV6s! zw;eTZPJ?Q{E#|LL9q)#^I2v=AWZjl-Wl3XzZN13$spy;RuXID1p1Kxg2SLjz5Q-)v zb(TC1>txU$K&sRT%tr?ZfzfL`b{5^~XRxWz8=Yzx2axqKs)l5}%Wq@7xX52$?#Ft? zP&~0RO02NN$|wPcm=uc8Le-u?72`03N{wtFOjXq|7egv|NMRWlIGPN5&2bno77|jd zFmZ*6D@;__2>8eaaOfY?#VncsM>#kMLjgGUD;-58ldrQcO2nTG*E>S}M;s!*b zw2K5sUKY!0`ZI=$l9HdiSX9%eNm-GA$fAb>U>V|y_=MP57;wx^-#}U zYCPD%y)$$2^DcL|Q;iHf^};ts-OYL2-69B$k?!U^*4-iqoJiTieDD4G!cZHvanm3b zmNv^mKaH|5?EW72{YI8-LwC9@D*r;Z(pp~iqszCnFPJ8*B}>Zt3%-A*5IDvtTY9xy zp^`=`SV^{WyJ_O`=uU4_KH;g}ZdFwCG~e5l$L5`v%k6HH_v^K0a1l>LPZUzUC6aOr zAPB*jAmj&xWK1Z5rB`n<>lv;m!DG}u2k#2^rUt*+;FTL zLoFIZrR#%6nen)C9wpU~9bgaIMig23r-6&|0O1wmz~? zW4QU4g|)MMEELy5&&6RFBDO7h9-&J`h`Hkhs0{Ob2&x%>rT&D~%z>PP(?o?j* zx@i;}1r-14kUcZ$BpV$l8H5ez4Yw`u014>&ygFj4%I4RRCajoeZxeQi z6@Ax}`K-M0Gs`GZi_USczUyIz7yv7~Ao6SOJa6vs!CE7~zc(1(hfU2GcE&}? zYxU}|Pi4e3)ILA)kJJ)oN><)Yk3*HdtJ8PWW8@t-2#MbtE2Y*)2-*QF1)-i+8^uc{ z^7Dg*U+L;15ue1O%DfkhPDRsPQ4T;P%8E#x3$ggMF_zYaCFIN`FB1$#o47TEwhY=E zmEtwMjf~BJ6yo9ELa{HxrlN64EE;#Fi&`%QwO-oP`a&cxL^ASz?^r3|yYNb^Uv$(3 zFbLs)$KmVf>$~@d>0Jf4P84lG4_))n$xh0%q+cbMDBM7z_jE5(o$|+mT$D!b`|y zrlCMc-87KQ7_LITlUbW8L`AQ6XkB*1QG30kZUTP@oL3*F2s=t_ko$^KXrM1fYo8C_ zSVkUXdO1f4U7!04g07t9UVx+MUG8Ku?>gkWBJzKTf7%h{LcSr6x<7>79{^kY5dLr+ zm~XD%^8*v=_M^T&VmpgxNMe5XqL0&PFpRVNK) z*<8Qo{ip|FtcM=j_4npAr0y)|O(e!`P$No;nX#;VW9=-?*6SgzY@F?gc_sL|A~@bt z)Yx3=PrXlfd&T0szc&~R`sK%S56LXm+P@8i77ClH zFahM^dBUJ>K>Ug_q$|keg7iIdR{jIjj5c)oIlQFj@ab;s=Lg<1FY=yy!LFag3w#uZ zP4$3ANP4Rgl*kT#s}8)spv)!w&y$j?DX_ZF2c3aO$_`Z(PgO&mq%GA%U1cQ9q4q`jEP*wdzFTBiH%~sI$BSYC6@5=uMFUXGRpy>y zQNlu4?1o&alnm{)%P=k)Z)topt09}T+S z9Pb9}FZ(?Vb>XWa^)M#+!*lE(5yNm0gwrZ6VUF1F_eF6&OFiJJfP=hu_dZSFA$m%D zAx1BZl*45eZ*2)P3{>z=!Wj>CJY5uMun~^=`#c?gD6qw?0vB?L|6~=M>Ue7=dMzXRVx%_poY1%d4~({)`Z>#?`Wf$@SJhiMhjw|b z9=~}5Cu@;i>d8Tci{X$q5)QnWW34nyVo`-3p_%8!U$4>yIu$|)678>GcB105lP8C7 z9zJ^Z^yKanRNx1$@*Mv65tSXb<^)?+cnJ+TEN2a`NWAeE#c7876Mm}VOQ>5^;Vb@i zUWLzer>_i0G27cB@%bAwIXs2pzPrNKGl0&w<{VzUJbC-_-Qyo%2B$E34@1%~$5Zm! zqgPIvEcK-GvbR`hds{gmF(gN>l0ogeG%)?X+T&%8GL%(eVlk6iZ+vvD{@tysTQ8`WKX(ySykG-MS z|MrgLKaH?_k~qm2we?QZDIAhw0noLW`Tr0u1^@BW^Jjqd!F*?c^YegkZDF^is7Kny&r;%9I%s`LJ& z_>{v1DLR|rS9n+}^Sl7$rOKfCqZhucm3cSUC6;q9d|k_D13q1bt;4+VMHL@;hc8~e zd+UYXo2Sp7KE@v}U%fqi`NBI6pHwlBF7GR}yZ*T{4IF={>SU&8pdAu8IF;c|MON<1ymr&$m{iPaq=x^n0wQZ`7{FSs*M2Ki zl{|$yU(rjvI>9t+&ZsS9Rz>@+Hui-N4(Pnh#NNA+-CoFdxqD$6ByR( z0VQ#)`4aADxmC@bqH(ou)S=j@+GNsv;<1^>&68>G8e3`Y`K1IA_flJ<;x|%t*uEpI z{-iomi*h(Y?eL$g-CbSkovRd31&w+JoA49W5o+SKg3x@otBZ%3?T;Yj7&jNf!THU30j^STBh*d!jILygg1HKKS;q(Fj@fSgq!O-*T1!@1s-sE&P zo@L_?Ubqm)7dcNThxS6t*-Y8AR7by7yWdy4*)hsB@Z(4N$oWGzgo%ag6n&3}r{#qG zxZ(5}V=TCgb^88QS?@P$m?#@m!$fAfG0c(S;h|x+U=G)ntwxMn^|XT`+x4Ep`Hnox(V20;7n$+2!M?>!W7A19==Y=5A=_yf zo_jKD|CxS2%J3P#C!F1qOGKnh%x~eggPa_A$+9XuG9A=BS5FZAKV|7BdC|D?nA^FS zFRPS;-JtsrI6A>7jq?L^4?_C$;vng+So1yAGnr=gt=7Wi7*Ar_4;aeXJTD~MFe?Zq z0I2R^nVIhh9Ge{F6C*+t48vT{yoF|&G&LGoEK^X~Rm>>oh8LZUeX3CDNI+nMIe2pr zCmWm5J2ce{7~@522eOM9i2%XC zjdLgBUKQg%!$iM4C{a)td0v1{j112{@|ZbBbzt_#Ab~bh)Z&Tnqu`PHz?QXtN{_8$ zI)G^)IWQLC%<3yveUZaEbRqLoGCQbD;Ex<7;!L-Ao>@+qD3}z6%SG4!;#|?2t~*Ou z*WO|zu5sv5e9WX5xOpPkDUGW~m9*6=N$P=2Twgaf3C`6kJMp7GCscva3_eV7T#)905V{#xO$KwfiL z;O@j#1R6zwe0tz@ShoR~5nO`E^7i#fz=+|DZC;eH$gApr2aKwoVvT1h3Tn9{FO;cO zF-KKlN;F!2mARe4LG$LsugR_#u;&bw#-x~1$=<)LOrIQ2GwIvMGb@Bo@crrER?$Zr zin6*c?!q%cxu87k4HX0Qz*3-hX3|UR3n&-s`=T^H0rS~|h6z3sr{|_8j!^}-&C#NI`*u&^#XbfS`?HOD`{^pjbI#7I-^dn~?*VD{i%gG`+HEfyj)#{3~&v4HG(X5w;e z^(w>l$+B7-DH6YNCKn`pbYo+W^}M!x-<}ECiI-{hGdlc7Vvj$6NYP*ch(TBewL_=H zWEG6`1HJCyO;*#iAUzDU@t@&~0*a=U4#d@El=UdSK)*6O#~05PWKF5-etjfEe!RBY zj52oK_*>R4-+lY~;fpuly?p&V%CnF@4p9ym73SB;(-%*oGDGdGXhDC7B#n|xdeWL^ z!eBjGX6(Q!ngLiA-z|W!iN^TzQ8NAzon#>fa>Uy#nq+8M$-n2aK7U?h=t7HspHYYW z`#fXUT7>PRkI<~}w;Qb}M_p9WC4Ik=j?q6+BkJ>2hT0%_-@HvPD?ZYg4lES=nzfUG ztrErQI(z~LBs$GRQJwTQ3+D?mi+{<$82yFQDl4ECWy^NoyWn*foWp5t$d%JycN5?5I4Z-WvWCK4gYKg?&dD zT-T$|9p|BAoR+_d&4WF(2dkWtke3aTQXPHBj=5M8(#KH(NLzYGz=UgaifSgX3;t~h#t8S$*>t<45<0yxZ$nD>2FDRM#|S~=tn)6(Tbw&Xk3m? zE7GKjwH%uTTV8PRLq(%2!y<^b-l9N9$peslUazt43{5vvhLibz4KqQgU7&RuPO8_J+Caw;Adj+bvHsSC`T5VvE7o=V48cwYj zF$dJ=mZJjPFUAC9jK`}H6U&A#>9sLzIW=^981C;4djCTfzgT4FS)R+K^X+Y*URg|cZ!o}?#Ph>RnO!WAiUWKHqubuzGSej7yeFRNT^6S-DTNU( zP@TlFDwUkCmsC|Uo>DID81cJ04Y$+Vh2lZ<3&IXUPDlV7)4$}6L;`SZoP$H-MDsbw zoaZ1c-qTRxGQ_hZ5Jy=nfcJce}m!W_#3l_|h@?pS6@|OL4i<*~^%y%3nhH>sKkK0@{{D zMrp4}fR1Wr%(9hkPE2OdPkWc$Or)Z4NTt~ERQZC0m7^_3=NUmkCxmWrN?wZ zvI94|S5oat3}sKmwxNI;sh?2*{GY+SIW%V^4Ti;OUcYW&j)3%knvvVZM}Wd?{1d%Y zJj9#vqTm2iGVis@qwC(xdZCyEaekvG+;;Syn1JVqJ`|(!Go}5k_BQ%13(t}dKz%@k zKcV7>3^82veHLcr(@VhPfc=C6ydR0blDHmc!dHMwc?6tB_)8XlkOs?Fi)GzaBi{aO zIa6U=HtDx)rgW1t^ubG^lo6>4b=&2FCL6R0a~~BXghFwFfyc28a{R*$HXFi>!%6(yw>l0@=dsi=N`F-5koN-_OWj+ZQuaMq1hG^cG#4dzRPrJ*j4sx!*1n(TC(i< zmw8}>tK8^nyeOkz!Z90-3(*sqzlq-$S^k^(nOvHm)zttO155#w$Jj*V!Dtd7D!Go^{52)ogc`}cN z^pg?L5X+B0yiQAW#{nom)V{%Mu#v@c>A+Vk<}}GCGxV#cytwkrW91PMJE8@6R?EQd z9}Cz#bT2wznJgWq-qpF$@i~BGcj@ji3`gtl(?;I1tQdz3t)oaBsD52%LnEb zZ|Q{qqDb!AZyJ*7$-J7}f7B@PD#bI+K{P;IUYyX(zNm1iqC-0JN*W z*+#()!y{hf1M2`t6Lw{xScO-#<3Pbg)=>+E5h;Eh<}Ll86v|%-XD#L#5GYP8tr)D) z{w}>MQsed=@*iov%dLxyhc&Nows=G=2o`)J4a*CajPhka=qaCldjWa&uDb)3Hmqbf zuka{)?n3WkiqJ~Yz!5K!hEMv&pu$P?9ity0$Oqd_=0Mz+-`XSkwrmDQ`u z{fT1)R7Ofu%>xn%`$f|M2wfFe{=jh0Ba%==R0M#@hW&v!YFC1cu#IwQwF()iEZ3Wp z+8e#FOyHX?8VWQ>Z5A;-GZgAEN{$4JYd-)Bns8$EE4CY(7b8VK-&MonSV|a#XNjOE zJV5vkKd4-p;(%l5b8?E>^W+xu!Erzib>alOR9vG1_0e%Vqp&Trc8{HE7XHyu_nSf3 zC9~qAZ`i*0m^>W-rnJoA>sU>rLVeuBE2xDSjH+9HCdDF2nBNlq{)E;9`u!sb@+z>$ ziF7VQIU)M`a^?cnaV^P?td|#PR`CY86yZQnFPUTv zw}$451y^%P-drSeXgUo&A(igJ__|oE36IaYC~!i)fkXB7jqC{mXI1MXg~7_}o;m2O zhkVF0K(omrt5yLk8jHP3KD|QtQS`5#l@~Oi!V1lBHd~osi#DS|R~W@uK3!#3*MVG) z^?GYn1unSenj@2BlGgtl0j7?v;9ALQx0u9MbY@0*{4*9RGzC~3BvC<~O|^k~*1Lo? zTLs}Vp6)a+%LLKXEMD}qFAKn3_=-M`hrO@%!jpKsGj=J3$Nq9>*`4l8cm3+1JA~VO z=LG(5wlfR*{@xBGE~6=?%>o(wOF8u%2Hi}qf4YypIiQ6Hk+OkL-SPPhLv~@lj=#GV z8p>Od`dk%u>lJVo7jfzjj7R1(GaAf}Kld+!9S1hVG4<#4Fm^_cEbLh5V_sUM(iv=O ze+F=#7;c&n1PL)t`>t?2yaBM#yvQ)fl~c`(VHo}FpTrEi5pK<<r&7>UZ_N ztL5OpW?2~i0O=Pk4+JqnG$fp6B`s@oJq&B(cAn)!UlNYNe~krFldfIxMU($f7dR?l z;TxPfb<;R$VOE#%YyT)Ax45Kf4sF;je)Hg%3EZWoVHd#-dp3(p-NGV(yZ#U`_vP*k zJ<|48@OKrAFlB$qK6}?|`1p1y{4E0{j(e9edeg@mgMIk-V2lp^r;wEPE~7Cz+Q$!a zIt?wYL`y4dX(d`(aZ9Theepw|)Y1xCT475oXlVs4t-AD~-A*%j)UKa#unAl&1*b6M zs1j%nZ_8@UD0qDKEZvRD6iopPBG-a)-z|C(J&SMds5W=BL554l8U#+Ua^sfP zX+U&7Wip%c?EuXbT&p{Cr!y}>|U{57K98r6ct+Fp27%qFza8G6d0 zU#X-Vn(tjTqTY~9X>qDXWkK!Il`jPrTlEnb1L7mSz>=k2hqGdAy^;yfeiDCD?n@Qz z@v7p*0b22^@DqxaBMcvffrHSWNkQd>GZE$cpvKSg!^8KwFiRNNJ7?fgLA!u&`HawL_%+#il=596Z7)efsKuV@(fkgKg@A%TW7^@waO_~r znrp}hV;`Sv;eK-$Ma0dxe(A4~Hrop==226M#vb(S!@B%9$= zKN@Q=q{`4d?qNzXj7^wIF_do|W;yy4NAC%DQkffGsZ7)%0}upP*D6TpbS#7nvokI* zh%t(VvuZg(C4HGv?+#)GG+(;y`Jhh+F@r)d+PY|@n2K2PQyRkV|pozoNulFlMUow&~Fs*?a# zonn@FiNK?>SY25`>zsXs?jna1t>m+zwzLLm)D{`+n~Y!rUr9RJAkl@JBJmT3U+GRH)9 zU5mF^^8+LE3R}!Tua@F)(=t#~r%w!VYQwL1@K*`|R180@{gskXD^aRK$OuF97LCQ6 zY|u1g&rO!ZHuX?$=XGR~w_9n`QEUo|d%>>9Wl6m`6GV;LOEn*L8_B80h#EIX4-h*t zO~)S&&z{j1=p9j%u(~2BHn$%f)C7SA*nbpp-i-~UJoKyS?;GUzqqL% zaSz$KvO|$M><=PGdgN-!SntNOCk2&c5A4X-r;-yNHD7`K0H$eh=wj}gMb~q!x!@J= zf{Ed%SG)sG>krDtnZv$#+(8YAc2Ujk=+f}Ah>T7?s! zwUkVM9G-~Cmw5f-mjb-FDO;W3Xl4|1*)TZH`~IvyL`G^y{6N<7K*tfw`?FwY78zm9 zIK^LIF*p&idg@3UOt5+YBh4hkPp)x^vF5Wd0c>1gB3oJk4g#09)X+?o z&Rp5ox<1C6#lk{>Bvb>!tmZ&H6>s1+xCBNgFG(~1GZErk*VHW$mE0<1wk3<>1!F7Q zrM&i#E}&5zp-6my{Qx%`!IyBGG?RskMLLe%BB=D;p-Hn1E4uhHpgfw$kNCV6DZ`)iN`)e24h6wPbz z`n8R=m8V+U)QZu~=G=NzZSN}W6XK|_76duyL=%*59(<#fy0Vz5NM;O$zyW$9n<(Nl zZ_^tYBGvF;t&v+m|ArOfxN)sxVz9Hj+jtn-=y3OlMbKVLceynznwmvSeyv6*iG)HWd#AMbK!ou=_gglHXIU=mCmzfOmqfJwomB9T6~`YmY#?Y<*Y?E z5bNTmGCNTseo#}Fx1|qusxNn|LByDw#a#Q;O*%SH5`*p@HCrXJ5)$d$ytcZbW)e%d~mgCU4`h;l1h)v4}7f4VwZNk{n|5! z?dJy{lR;G)>Z7`H4_Qh}y&4#$)?&#UZOfOW)RI`Syb8mE%SKzM1gjPfNGkkgt*U_H zCBc@RN-bQ08I+d&Sv?bDVqaA*IbiF&0v6}N8@o__&DzMc$4Rst+f;7x55Q@cvt2Mv|2;Zo1 zDKyK8ZNgXU7B0(_jC33F6KJEUyVJDrtG&K!oeopOq(yazOx#QkxF)N&-{u?l_nWlp zT;Lr}VAM(SNeB0>L(U0%o1F?FdRfkvlEHR(0d3x_unpz6VmzONjLHKrUWhdf)Y!@sI2Bapt}wKR)S^jZ^uwM>aAytl3OEoD%(+8*wj#2+dd#S;;0m$`tQ1cEW zr;C2s&hcUIIXw!b0bnsyZ8`RWKN;~)xX@5jt9LqLdBmY-qe z`(Y8N2Fkec+$U<3acSDsD_61Xm1(_Rtk=bQExQ4t238SULIpGR4lPfrGo+)ots~a~ z`gtBjZ6obfLsG*MH5lK38T5xLyI!N?I_F-=BZk+S92~ojq&reFZ)J2Oopl)Amkodj z4L3xdfxo=t&}!Rd%xJhPqNz#?FA5+93|}sMYAX_TDNTZOPa9^k{HAvgX7@PhkVv_BQzy5jy`@mLHa=x<-hzc8uq0@06Lw zTWPKchR%gyGJ6fP+A2^lYmzPDs#QPtmHFyzUQcrU;09A%jnb+Ri&^ahw}L*8tz3Nl7Jfaji%-)OF7srv zx{Wz2(+7gv2(K6&u`*r|DgATeXF|hZ*1kX;6zr?Is)6Npl}Y_u-_Du`*ivzu`Nfe( zVm<>oC+%0JE&D+$_ks>*-O}fq<*v>4+8-(O)8&bwChCfjX8SnG@eJx_-wpxzXMiRCdk>0wr`P6*Nw%w&A zc-D0u+8Dl@M8j^Vu{wE4j!ia5gd4JO=aYg{OT)AvaFGnk2a*V}o5u~1xycrspKUE2 z>5z5p3vHCA?SXiNPYerNu zc&?Gb8WNcX+D)cFmQqUUP)f-+sE4S9AdmXyko$SClN;(8S!hNl4w&g}*bF!LUsI*O zS*6C|UfjYexJ_ba``Os6c46WgL?BQZimQuyiw(Se_W3DHmN!^=0{}{$HMVrX>5L{dE;!CMZXi;|^B^+v1u2WKs ztft|$d6vo&$o30@ld?u~f6A?zpSo~MhXg7gtscve8@|^9 z)`D5E&$LsAPYF4!nQBjl$hQfvLt9PnOOjF3X82sDK0{=Ulpsxpz9xwOw%yy4@)#yZ zGaTLQV#bM^6otY5VQd_g-ogn*LFlO|;k3=c>B&emrd$~j4r3T+bY>K2^JplMH;PD< zDzCLc+DJ___qM1#)u{B}_)VwXU4(+2nz@!ncgopHC^U}p;@uqOx>0@|giRwc7vzgI z*t<6n7hj`<+c%+c`uy7BT-;_#p>y?y4a52RLb{d_?s7K>Nb`2#(c{{Rq;C0f1#0Qv zD%Rk?v-r2B!#??Nj((r#3sj%gsn3)(9CRG8c|5%K+Ps5k{Ig=bEMMl& zleyz|r2(S<_5Dgj-~Pq?_*Gt{H~h*0&Uh!yB~QukdKlR&B{*kaccnTFm_Loa1ycpWha^_v6m&V zpwl>WXr0r{QvlpBxzbfz@+2C$=BI!vjsKlFoTV1CSu!tEe4Gp&h&aS>hQCp0AuNH~ zEpOmbnWc}Cl1$J`V7u9Sr2P6$EQjN=R~~nAbl8*crw7AmaNX*+6zMg&qB*Xp!2YRa z7A1D#FrP20raM#PyR3L3>MfOo$?PV5{DJPs!1jpgS4a6V1~tJ^bB6RcKy)2R29uw*XN1C2Pjr zw#iW2jkdNb{EpW~is9&PKVgg5phq(tz|s`;W%4Ey%U#alh{>B)q)FldmSTA0xEWkb zpqMwV`39lV<(|4+Io0NrB}bDIiklqAOS`%l>CUHt9!zd;ANr4=u1(zoh{ z*VL`DKafael%etZ!>U?jr%Md(m@KlSJ55T`4fW{Iyr9S#uQM6*RgyGfF{vN%8~WPy zy7=Pm1*6pD(FmuSiUD#6f@CbK^_ujyuXLyvme2G0ggVGeWYw2k*2u8Z7l-IsmVcnp zB|NUGIETC0!>56wHw9`m_Wl8cRj#*JKB^vR5+`}O6CWK zCic7CO{(={;D|(T&-81SEC=wA^yJ=x+unD)nqb-VuwTZ6iBdWq20|jKE zSQhjeygKw$nX>YW=kKF=JP9_f0&8CRSyS%9zRj>^xASfE*sD!Ce9jN-iQys zPPy&whDL!#c5oAMA#N47PN!xuOkWT)iRNrT4nmb-!s154lrI;ig@HF35Pc#d+&VxG zgWcxVX$Qt!yKFz?@V+5A7|VNN6d^eZ-O}I1Zmd2I2Kx2J+5wxa=Sa!h+r$0Bd5Fag zG|AvrPgWQP&Wku+XyYW;iXvH{OUui^f@lZ%Y?0|w;wtHbR$@e`nFZ`3MXmrID6Qdj zAdL?&HIg6VyhZi0xC*op!r>i-eIKPJ(@uiKlwVi*8RvB}$qFILcD^v(+0PI_I;>lU z%2S2cp&-+7>m5$vFaaTU@KnX#9pHWMz`uTWaHm7pc{+(b@x!}AhB03MTR@3zG3Ng2ZeT&V3Y0mj)GndhytcMz zwY(q@%6K%()8f*@5DqF}_>C)vZhblE&ttJ(c@QZAqp@@P;Q@g_v__Hl7y;+)2cPkA z7D$vxhFEgWAscd8>V!p36$#o6g1cy4krI%dhZnxyHI#%f>J@r`x7v66B@juLy133x zD3E~@1HPBE-$1G`jmCj)iMiNkh~%k7R-8Y)GKMCz{uj9=~-DvYXPL9J6!K+l1RS`5yO zGmXab8yd^8yx}~hr`Sfy8MTQ+gffGcY5K}O!rm&U4D6=8vA8Uucu>?fq8JroBZ}K? zgis2U-h{}7c+J@e#sqC7uGg*#iBN3Jzs;J?LY!pAX5sXfn@17*Y?02Y{k9fmX$s2J z%BESI1j&!X%qPi^nJFgO*xr^%`K*{Y1?&}KU!8*kz0tJll;7=rx&UZ94>a$#i^M- zV-IsP%nQuyrk2H;g!)UhP3q~X-JC5Ml*bE!!ITPi8g6%;)g({mlBa2D&);eDT87hW z1$1=+)st;=N-WdKZ`sapb2}%E2s6RemfePlNU8X~g?yCalUa^iHTnB`0GS;!1kKK> zAJf&r-H5b1PMQ&EZXV6I_GqMPR(&)tl?&6`561+|hD1Ir`0$ldhG2#pFAaL4f}3B7 z6G|aY$ilKFT7grGZo5vYH;hN@61^}nh!W5j84?*!(Nd)*h|mdz0A(w&c`->Di{kMl zl(cD2!3u^3&XHT=jg(x=#2+|XD?^=sQrl{5ud+9-tPNeS=YPKu38S?}j3J80!HX0a zAK~ZGr_es~wU1(y{fi!`Wq`8A`@RWQqMqc$jU@JpC{S4Kz1u7YFer?gZ@P5&p^fhy zxMIo8QZyW(M_7QLF}^-!7xNS#h~{zoYlPg~*!Rc)R6wi0=8FTSLs~W^YNe8}FHhNm zw@1jG0qo~#njcPP>48!yj673L!=?#CyQQ z&cEJtX4&Z?S*$w1w*ft0rKt0seN54gz4X3)#ufMb$+vfI*2BvfV2-)Q&@kl$rEy5Bd;?f(ce&^?jKA)>o=au zQSpp7=OzbSyoXA!(Q1;Og^dBUxQ+0e+i+AJD<6lo^myRfH^@M7yEO(|hv?>UI9qKS zUboxQn_FtHwYJ0sb96j1fvVH&ByjXg+T=<;!y;KJFS2)p{Ci+IM;-zgpLAWS_a1I1 z-wQiR&D3~0HUzAqTxSghubm`Z^Kg6?CD*KuzBp5KToITGV$e098WHUms0a99U0V9d z*L_OAjhzQVF#J-8Hp{qSe_iOIDm%9O1dDS6p?Oi#Zpzwm|$DsoC>ob zH8qq_TM(L|lyf7WDoke8=@Q?H{YA&)90^zg^i3SJXh9tm)#A|9M65L`3ORJ^x2#qW z!V0076T4scdfHdIpP34nEKE+}{Kr?q9{(wzq%=m~UgXk?JoacmBSe<<7R_>@DUMT+YVoFj52aq5E3I#{Z> z(6x494GQE2mE&4=%As|EsZ>TI}Ram!1b` zml`p29Bw=6=SnscZcTLHdv+b-(yZU!-m<1i9xQ~sWxXB}qyA}{VW18EU^xg`a5I>e zup9PD2_nbd*6r=TYU2sQ(+pPcORYc%V~6@d5LiZYbk5Y9sO`Z~}95bQ6^h+pz{i@wZp%W6m7T#p|k^_Jy-BvE_P4OLJ7oX|v=z zAb?2tdy#S|LRM&%71@LtSKC$I zZ}wSB00wEXpx7)JaP3{0Di1YE?4}Fb)9Ui*HN6MGflFntoQ$Jpo?~3!$A(=_&G8g= zNcXK}?W7%1nRK(X?cktQ=y`~ak)7ET&(s~o*!^Cc!BqfR;cQ9k?o%CcniIFIt7H{A z((mRq`S>Pm-MB?CQndVP)xN*@I}iu}a&hZjZo)6yf-KYEQ4JG1k>H~m5^UnX(Obm& z|F*Ec@q9p_V+12n+I@ zDV3^TNs7Rd)5>SssEahTCdH0lMQ z=IC-CZhLH;^0K>t`(p{eR`6>TX8RaodAUOqljF!K1ZB=c7fT0YhSk#i?-6|I;ifoe49a3e zRz68}Wyc~^0to!MDDP1KU zK~u+Q@H^dJYLnXp>n`Fs_f*Ey^?C^%7UWd|-Lg#&VBr_IRzc)v@C()oP^=FB>>gvB z!O~W+v{U%Cf?q4BNFFG{8GD?NOZ8woJ@9eME_ah1f5wG_{xn>~7#B18%F17w`Af{- z<9v#x38hxMQ*4Dg5Bf0Z;Wl1`WxO;CEOi0lkQPT>7;Ar#ng?^By?R{kXB?#SAYI49 z2ok={I8Y~o%sSpf>BveHT4ABDpwLPbT5+KV_zI%KV5gc}lBXl1;lkR%S^|mFEny{7 z1XA39odhN^9Vu@b2(80?I7&WxHSCrF6hM!L-9@l74f@LfS16?xk<5w)`vtDaF0=&4 zbvK^wp!XFF#KIj>)i6I09Yt!1j0HMRwa{VfqmM^0Sg*a}6rBQiTPjioq{IIk-kC&- zZt0`Z5_;h*3zT9fi`@5~r09MQ@5v6Zw;gEj`y1>=^^smLeD;$bNVARJ)Gdt4o}KI zAGt1mNB*}P%yw4UMdN9 zusu7N%3sJdju9bEVaPLnXw$-+cidUuCk?R|A`c>kMv zQ+tEK-TU_j4|;dM+JoHg@ZMM7e0}f!pm+c7H~06ThgyN*gZp29_4U24dwX|>cOSs5 z=$eJ`Q1t4sKhzIsugUxx7GNin{v52xyedV$z35P(Epoe#3lXkKl#Kdizq@?aJ zEtp(i3`M@NzphU$cTbIy(#yGz*I8fB4koqN-Q%$)IMoG)!@>jF8;+*?!+XH0r``Me zif>*9qbZten2VL5qP)2%87)f2ixMWg@v^PAoh;}kBMTCf9Sp{Kxs$>$fw_9S;cPrZ z?e;2qmWI#M#Ta$sqti5eGoPl53|MlN_$M5jzf$%!`c6a_^`5?Z^L=#p?l<>530H_2 zp}umyLXJZs|5FOkyv;U8G=+FPwn{o(fP5u5l|-GP-^41u;1VE*jIUTbI? z!Db*7cNyVe{AxIHT{?H82H~0Rq`UbJ0(+Jtm&wtzgVA@rr@#|U<98wafS8>c84Ju^jCOoY&Q-XN2M(BT@C zRAO39ax1OydwX{ZocrBEg`2)mQKj+c+v4E_-DvA#ZI6JK>T=B?MoW0Fj-?Psu^eoF zWb~X_*-`v(>DU_gP(NccXTG@$)2X^}qb}!ltCs5VGHVU$**afL-LJsLrjwsZSUb1A zla!fpbQx_`L55b=L#YaMV0tuy(_noozf}xZbr+r@LTxb0P!}q--D-^~<~hHin2)uj z#iX>6_>bY5#Bi2nJ;rCwmrGY_I$q=zCaLF(!ly-CE4EEaLZKG*C zD5TMHi<&_J-cHjFU`KSxH0dxmfT4XbG*Hr^_IgTYj{q}r+YKTaSW7~e0qQKqtb@@z zCD$vEfJaY#n0{*vT{JyzbkG-WHWI&ah(=Iw5z*H6vVx4DTjj#B(JdLhhVp@5IriE* zlWKsqfV-yTo61P&m0*C@k|JMZkun^=3>!;tI)RZ#(19towkk3i4KjP_uER7LPhI{4 zlt`yjs}e{z#$nAu(Apcr*0gN1cm=8r?fnjbV?~dl7&{R?luN_c{ZzY=F#KX<$3n3X zRRky&fGyGGSb|mEY9fFGT+dXlU1ec@aacgH;z18m(L z5a3z>(=4&E_j+nmyguxshwCo>F_ht<5*9KulX>W`$SDwRxeN!=U3LT7B z$7`)Zm5fxeSy%+k%_75xr%Dz`+YY1~XHXO8CBpDVHb4s1=eUAWMxiQ9RYY%V9U38T zEW3mt+!zViwqSm4B`Oo6Z`;e1qKuc~(!I^Hk{qf6tua+}xHifz11ZpQb1W4MBfwnke=?0zo2hm4!D#s%c3aebjkyANNo(8hCy zPHpqrb=2Y_$(V?O24Vu;YVq|d*2IJV;%(~m9^nG^>R1OxWjRa=CWbZiDi5* z8ADkUK+>K+2cZ->fGb;iV(J;uhOoPeHxB_vNCF#L*u#Jvb zyN+L`c!8yzNii;ip5g2PSeI+dk0TH9;v5}WY;Svq&%dWgL%k|FN9PJa9TK}^->)T) znE)9Lrz#FNWhLJj!5r?S^eEf)&@{+99(nol;*_F%iKjDkIiJTzd6*wdrwE5Wx$Hkw z>&!usQW2q(0RuIyaDn7kfl-rm7zTP|27q<=kKkaSU2iud?~(w_s?d7vp^2jr0Tv3M zXE{Y=!)O4~n#9b+P;M9zfZcY5g;ATWREl~%;pnT7bucbAj{YS_r1fJ2*+5CM6HdOz!52(W;UyfU1j7Yk2fxf((WEOLDKE()idlQ=5pf@=%StM zkIEj8oU}CFHzF;$; z6jS5usE1@X=C&`*o1NImrY_i$$kf0Gu7SVIo7C^)D#bKAs>LhQ$CY{0>BH8*2h+!u zd6NuhOT-D&E1(g8k1bTDmSy@$1<4<6?O%8Au(qnCoMp?vcVh^wOMEo@*VmZM7eW@W ztw`bQTLGJ+I6Ntpt1IQ+VOI%#8@o5To}Mx(?jAZpp}W_OY=2%MD#hsJe#-8yIXP$Y z;XB_8a{V(dj9cwgZ$A0NOn#&L$ygt*sJvLUy1AjOkQIdjg>5W2>f}3>RkCLD7X8y- zV)JYiQOaE@3E505DCo=}v^b8i%68!_vzH6Ww-aXhz*9%y=umHL{|5YlRgYqThWEwQ zNu4h!n0U*9e+FqjZSl{qPZ_UMTCcsdp68RYy&CPOi?S(RR)0d3H--?WM=o{n&0fm- za2__R!+Cc|aXhfU2Vt%FeroO#KB!|Qekv$BI)c8w0ftfn;L-kGuP2vbCxvvCHu~qd zT@ec0QN4Cwk;cpjwQkQrjqo*GWBCMS;vR(E`)EATBu$)TTq_?w6m_Y><93cYRc*TyNwIArTVAHAxdq z5ExNdOYiN8Q5?uRQw9VW)b&bvi!ALb3gXo#*PsK$MLGv9K!3(f;+rg|yA!4;ogkgw zM)EXP_@XoY+3`!aI)+dxO0hwS&f+*WA{9(=+FHq&4W8|GQbZ^ma$+28$K8u{ zI50`HMgt53JD@-nv?fKqZn<(6Ji4;&#+eQy4l!9fd%`)+8vrsNH!oqtj4w_?_ZOrdQlONcax>S_u z2*#cF_ucR^FZnetwpBfn?UWmHQ|_g>S{jwpcELy*uaS0Wv2Cb9HE*Mg_m8M^%LAK& z{NoqzN@{YahOw?;37PCE-Df?fwSNp>Jg)~GuXJ#M$XDcm|)vxeaW%np!KnIBV~39<+1Q3Pf0 zScZVE!5Vgx`3{LiHegT`($^|vEa;q%2SpNsu9n0ZdnA%pI(4Zej}kIs4DSO8i5?h( zsW8!nkvtKlsyn|Ht16HY(!l$`!wI_5X+O9as`atN0UuT$^behb4t@6Nz8u>d5&PYN zCUgZD`~(!I!AAB}Mu1mBBD?`HBND%vdO9n+6eHiHDMtXU<>xQM92h17eNPP6q@F@Q zga7*Kt8c$OI~$}QNm(%ZO0ZWLP~cHM9}Vc94e0sLa4pS?)4aK0uSqg4#z#dR((_q4 zog%-4e;-kI=CwW?!vlJJy+no&0~yq)&h>c1KBHx0p%?&73z&DYKuIiOq1Wn3MXT|7 zEWZ+?H4?GAoB?LZv`@M)KmuEKRURT+g)xP!MIz3Rt78EBttiiIcbu!$$9}vm-I$;* z+}5e3Q0hWHO2}SaE)hm_jH6HL$vdLY!AuUqWqufMWEr#chPF8njzkw!ueY05G zH#lEM<)iXL!;tRY>kPks8ZXKU=fr^Nv>yl7-A%F0E53U$+Do>*8CfWy+DG}!>mqv@ zfDU|N_fkwHux!3qhM|uZwc>(%e%Hs+uI69)h6MT79-j3^EcR=j^g47XXJw}74v;$b zoAXbgU5M^oRm2fFKu|gDJi$+z&wnYEdb**2&54>A&ay!HeXEUz;b}+1u=7#5m}uaMLD^?>mmUh72p#BMf+U(A)2Zm<+Qja}IgC4NQ)q+2 zemtE}4YU@?eP{8v!^^IziWf!pdaWU;%9Y(Q!6*U8l{n&cIlw44+Xv|#er&t9(vOKZS@t$*`7ud1#znL2WAhJP=_4sku7M_c_OTRFg!#tG_I`i zMM9&Va?kk$xKGv<;;-gjo$MGd(h{DmPw5h41nk4UwWTk-H<1kUw%<8(mc#>oC zA7F~A`q8wUqyBbt+Q?8lB$BmcNwbD7k%ZC;kmNM)gQc?hK8$v@oSu{=|FsUxU>B~> zVH-ol?CxPK7i8+1?5u$6wTFQ(bnLL!BqUqh&nduxu6`j4VYGu~2J9xBDph`Ye>z@b zKmFh`doET3di&{d58Ir#0tP=S+&h zoNg$F?;x1x%chMmu^xfTsI4*7am0LRw1k^|9+_t2M7idfkS-iLLgQN~jG^Eta*puu(8~DTHcSV?X1XZ*)d>Y-P0nAEA)*oR%4Z;2IBpq;*iNX$+VUN0^Qs6uIE0=+HCgh zkTN2J`G;cR00U=Wf%%>n4%};!L+8=qdGI_jF(`WJao#(^n?w;^;3DHS7IB_xit|() zQi^I^D2mz?S|KcuBqJ&po+1`7q06sV&<8}mkHzJ%3Ak0AXFN%FJyKC4_4l!CeggPR zYUWlxXjw=8@s;Kt+8`sdDJRq6Q%V)y5t>cHjLK1G3}iiIP-JOQoG6iB5?NBxJ@FQ% zLxr1=H54aE#5eqfqBmKn)9}f_d}nwX;0P?}2-J38`*=Y*8U}6FwB71f)d|rD5d#?8 zYIsvIrWnWgdB;&9P=aE=~#G&ZVKLMh_tsFl;)oPKuLsU-200*vJo*`zpUBJ8Jx z?5Ts+6kIL&a@oq(J+>zISnW>NWU-4IO6y8nV0<+4u!|SjX#s${I8Naogv+f8bq1&U z0=EnQ`TQ9c0DtgCED+A8i=+KxKn+~&&K*?4HaiDEQ_6yXMN-@&vij1YoVt5q^P`Iy zYl_}Tss!bf_IV7#Ofro9hchbIvgEP3Zt8#-d73*`Pt2yQrEkc-V_+h~y!Ua~!f~>5 z4t%IEw&aCAhZyP5J($KYvQ2DgIeSO~)D@f#T1$1$;JCpli5)@={n11SDZGh5xG|!S zmHl)DM~LF;D@-7)q6F@8N#r>+h|`3kIi=W)xBCH){6{@zUFX=v4xKoyG@$!Hpi<8 zv5RCisla5yW5;p8E$)gMDOQdm_jy#9jpWXq(nCG`W?1}lnNNZ9rTCiY+m9+SM4bIZ zmOB<($Q?(AU=pEwnHD>89*@6(2t#;!=)dWZVu~8OF*5VvC`6{7C$qR>6^$_r1i(1Al{nMTe&Jj;R zaI-%l)@@9ai^F)K2a^4TShR)CIju6gWJa;4IaDoy#Ta*Jr}lk5xp=~DU=(2I1@yMC zRxIoYy)fR#wym%tL3PZM{MH+oBl3cFmHOCM9bZk0ertQ z^b%cB5hp5?jqwSl{EjL#8jpYe{G=f8l*2JwI21_pv1}(m)Kk~Vr%B!v1G>nAkq)h# zO)-xol9a1R)5 z_DzeRe=xFL%C{!yrj65oqaqeae=2ep?7G$s?fYXGqvsPr^1u(b+wF# z<>>dR4Umksu!lzz6*Cr)5BmCYL9+W zFDi2_w$Se!JV``68d7X^@f^f<<@)xnEUC8wLvwkPe zwSZfrPyHwJ6LMu5s$CN@{CkmoYHM}GLTKa%Ci_y=ECZQT!or`5*v7iiZe$6D*0XT; zZ|=h2N&Q)&fv1HDzV~;)H80%9*Y4wE``9yV=7zR9%*8l3AJ}yUH-ph&kZen+<;?M) zUUO*)U}rDIY(+HFB>m-!M}`a;po9?X0#swCXUrR^df!WJ2&D4!XNsEumAoky?i4iu zb>>&`B>v${!eSK%<(mY0>v6xylV?^08ZemEq1&$gaZ9A;jI}_Ep}-PX4zqTqNhC@O6u`048A(~XQ|NiseOEYfDiuvGnB zusRH_Css-KK&w@e&2X$3(U`A9YlCWCxD;)Y2JD`#`E`#Erb`v_a^>^xcJ%&27hhF6L;DU9Wv}9Js z0x*{s^`gD_xoFzhGmcza^G&^MFTT&IChJ1*C6EGfGDgq5lyVp)sT;DZ=n2_XsE}PN zovGZF31O^$7e0rskokl{#|wo?ecxPg-*E+Wi&HcT=Z1Ag#Af~K#*G6GV;(s+Ho3y# zK;t0IkUF?YVIw3!|5{|f3s8m_!C?;Vq7THhuIC(>qL@Eu<^X42V;}|6X08ORKRtc? z{mU-_t!QOh4~Q85*TUD$L1l3Yhb8X^n61ndM@L+tqUPb%Tb^V*XzJx+f~2BOVT38^ zj4TW#K#Cc_oJg=I+CBz1Y|oTDtVTx!ua1?Gsoho^?;EQenV-i#i1zjlg{SJ8c^*qF z1A9`E(^9NUnYY;h71^|s`iNv(Zddv}6v30@f5vwv5M~2Q(%iSlLko_yh;Tt+*7P!t z7cSH$QIbPXFOaKJoKIWHlfCMoI!94AK6Zn8ZFKV56_~wq@>=)g>0uXDm{ntM!lS+P z562F(rGmSV7bV4TS#OPN{YYtHvvSi=E1@hGS}|5Ew0$9V5BLGlKumG|&)_!MWir6p z)Wdu>6sP%ZIYZZU$GKm<+klHQ?RA2DY%qjy78)Hh36^=M~yUA~lma^Kl%rP!<^W7RtA`>9Wx-g>A2#j$RDL&!vG^|e9HeA>b zm$JDFqFJ#}w2^=rl`gIT-iNX&Ps%Csx){;pw5SFS&!Q&a8CTg;ziRnb^)(1A@x~mU zm%G?!_1w?Dk>@L$mv8|CR!m#L==5$%oiF0%z5D$o9DSz=%o&fVz1_K3&#lr)g-yxA zvl59HK!Ebo_eJ97p0I(PQNpMrI#X6|N)uB^Mb3Wh0GO>6DJwd*vYuz+{f3PUmnZniNpRTtH>0p^!4>Qkij z0!n44*rD?j%Rw5?B;8hu{NeM2qM%_G&5v(Ydoymww`4>m@l^WKXQm>awg&EBi{F)k+0i5NVd!2 z|~T@q@RU(%RHU+wLsz=HC_H}E^Z z{1eA~Agcot-)_%~Z}+yIJzWj>rNv!GG6-4F>z2&tDgWalXM;ZiykhaqUnoL zvrB~ZslBy|;&4(F#(TI4EzC@doFlFXVh)b-P6D{)> zPAX9MhO@$0eEzgnpn7L=rktIf)>Ot}8HPGikFdAH-Y+8yqMXlkoKzXIBOU6I8w+nJ z1b|WBy(Cip((!huv43M#5yjzY<9~QDw zeN-8&HNcGNFG{p!eO-3zB5;16rAb~eAzLpFi2&MPQgK-wT`UXz%u1*Baa1tpmuXLJAA!!Lhoros^P_= zILikArLI*au=(K5e;w?9GalevE0`ofbDv2u5 z;m3=zE#Ay?ppgbujk`D)tF#LWDHA3cE6+-dj_e5`HRi#CVqz})WfVd}(TWm@ZtpW< zbccY?N;o*ZX)nRNJXPnEi%^RQ@X8a=! zp?UvW$#wZRhdv9^LjmHa)WlCX(s(x-n!?}$5K)L=B(Nkz((mBppw<4^BlO@<0fW(? z5;o4eqZ)8V3nm``knHazpFi95cK(9$Hg1<`hg74bMi*rEwd;~<=}xf|B=3@O%|WzZ zb=f4IPDA;%t=ohF0=zwxc=~B@@f7)kkp)&3P?Xi@&y<#WWl=$CQSl|mwPFQBI?aGi zLZKqMi)>#EFTY!oZTB>zH#_izZ_zOLa%Z}e4=?ZU>CgB?PPp3zl(~YMSMX_)(Hp3F zg>TtQcLHUvs3v{JrzDN1pFdB?zfz?~ML}p@>0sU*`21*^PL5R|aUXI8>|5@{EeQ*F6H778(xIA!&M*Sgp&XzDs}6uSezHisu>g2d*lG+c1~rAS3`excxp|e zO2Vi@wII82Q~)}Yp%oBOXpRz>)X1`oH)tT0Rwsn58>eV`o~4;r5xY zc9(3cH0lI3NZt~b47f3Z{Y?^|{*+gz(_+y8J5ikK7BO7xL=c$fh+w>PASIi|WU2sm z=M}!tskObWO6^NZ9YHUz`$v#zqWn5tR)JOYW0&z-#5SJl|J1PeLkEUAx#0Z@PejT( zOL-iJQuw8PSxTwwb=gRLic2H(4PA&;gHYXSn8uB?_4)a9#kJ~gif#vnc-Xnd+F-zp z+>Ewt7-+2&TL#9yb0x?VUw$&l(OekBu&#MF^HWr1u$|*!h6`)>%gXG~QY49w4WZ?&QdJYy z9ywf=TF;@5;%rov1x2jI8gNJmeBp2O$ho{<4KEMlCR1fnJyvK4#&?-6krSeZxiO$G zN#JlsWo7SJd`I+ehMc4`l4p4*d53%K`$}E(eZ-~h`*x!F?s@R@V7sBjQiVLnAzjZ+ zwL4Cn_EH`0UQ6tiCfMfW2kjbeWWx9*;+Mco%HPbWIuXEqAj|mkaCIf0g>_g{RdOTd zw6@G?{act*pPy9Jb9X2XLwN(4Pm!tK$OP^gM)Wfb1I4gzc|r`T}Im8>GPR;#5I zpMiIMjlG5$nIT9HDnG6u4Da8m|USp720`0KDBZla8ayMYt7Rmyn55)*%dhX`8M*fl(*1+u^rD?nhLV$WOtwTOEW+Nzq_{3WP;%%2 zKmwE3EF7?Z@c8LZ%57eyyl+Q+`P7kBG%F**#uP&wmSbqgRSx56iA&^Ke{*p(ZxYJm zt^F-@%f&B;{0EJuiy=)^>#Co|`o&nAyxUCNny}4wDt1xPH`vMbm#*sRAKuOfTM0p%89gYdST7PNy0-~3)=s$m}G=Zm6x3J7m> z*@`#F0H86_)}DGv(C|Y(9UbiLSyx_m<>4~`<%w+|BPsf&ESBN%MUG(9d0AH7msS1q zBF8Y%%2FK%&O$TCj2&%79xl($ipA)l$An!Nu=l$MLq&514XT+IABrglSW=b@us`;Z ztYpzlC6JS(C$$c#OmUje%30a=C%h49c<{r6>GUo39gAdZ(kfM#^IGk{ zS>=x^Ex+&F*(zG$qAEmlAq9;xAKIn>UYIkvL_KhksrZT3!N8(1o%2JyLPrA(WHOvA z7Yia+>mfTea^c2Ws_mz7yJNoYqTkUN23rq{DH?k<_xBHB2zw)V!)((b=A$;38)pB{ zC0z+L1JY$O3W->l3_ex;YO$;gS2xE84X{d)o*uobo-D|z-Fsn@(>sf}7X~)!LM#ANX$^l;kE(ZbGp_#7&<#T9XHUC{;zz;W@FOK{&PA zQ^v$oA|H;5V>lq@zM5dgsO<&fJW$ku86~?7VG7ZLqZ^Bew} zQLKVaU!~20t#>9EcR$>VJLuFUY1g!)0G8=NNLVH=$_cXoNa{3gL^H|e(>-1 zfe9AP zOrI{;YgVauwYnDrAr7mWK|1Fp$!GIb3S}+DQ>Vv}7!>@)3W;Eq?t8Bez2}jvE2T~t z#KL)TzdiKcj9O+zycKq@lQz#$Gm3>vBeDuT?o{yKvb3f__6Z{ExVudXV zc{Pdbk%n~Aat6bMYxzWMRS$-FsNHGPcz>=J(^DsWl`fv3H<5aGKCMr3!h5gt$^=-^ zsRG{C<_j>8`Y51})!*Q{(bLU7RLYt{^FEurf_Kq>Q@bGdMWB;d| zF0v@6eZ}`}@vG!mjOOopGVX$V?!4k z*aXl1OU*o>I@?Pbaol@}XDhVVpe$cj3O)_UAzXe}sQdN#^OnF@nDR!IyTWo;s@#>$&U0pWdwP#FvP*fs& zxYV|rP@`lhQg~y+kRrj*A(z{O(O|np>jwJ!tKKZT+(EORW{8_o}%kS zyI6F_2pApej&lh>dE-S-df+<6}NHI$OU1acU_K-Fm>C2*)N%RUv;QEkpgs?Zx}Y;=IV z9)LY(c*@wxTOBpq&b5Y1G?s3JF`XsBw8i0G(@*qwRHoEkA=>MO!@S<(xbPH#30cgt zpi1Z!1*g!7Wmw=<*-O&jsFp)JVWSUByP^PqodCM#sy|nA!s8tT*IF-gA#e0`Vnqwo z{@WUb86w58AshC6vH@Y1HM#DtiJqh#JkN0CL~{(6Ne{k3w-(EAp?O^p@@mA>1t%TJ z0aGC?W5A~EWeUJi84-dQ>qF#EFD0v;jNBK0ry^JK4HmhwxloX-9R5lvDg#_eA2fG? zq{F6h>c(ZISE0159_Mg$J`vX}8J7JNkPI$`v-=zA3v5C|qyJFaaFe=F6G7UjGOw~l zD8N|9SZ@E@6vlX3&ybNA4f2!8fU{`eAax22DEN}yN8y&t8nl$dcducS7Y%uao&vI) zw66=`yz_2ejuio4W&G#3%uL=v;Fv{|ckVm_6tQ=|v_eh5vqnB7l?&!AY8lF*7$-)K zu~XUE;V|FW8j#c@=i~NvYP#ClNo+|Q9B0qIgp1vc_BXW4%3+GlVg@e@>NWV}S9xm#SN~>N56VA!8zeX8X*EIO~8K z2*-ZnSxC(Hvcl8PsE@>nDoT{XE^bi~-=E9=hT#6izbd$YLGk#>P!}zUTG;=SWef0n zQ3K_bV%W3>)+48|l33gXhE^~JHjfBtV|nFg?_jX>X)$`#9uEH3!6hbdN;PSSk|lkJ zu$fB&kXHx;(_d{FJf2VL1@@I(k3F-WAiK92qsQFY4)iv5O~Yn<+OIN9`*1Yaxf&d2 zg*HJxx1qq(3ol=UVUYM}ct@^i4_#Eo$AM_35}0xT{;_&6&3HlUyCQNYOugCxR7{Xy zOzbG^+#tcE+kBB>A2A|atnwSkYw20w;y83-3o@Th-97nIiwQbAkfr&f32KZ-AKfzg-_k3&Gq((mkb)N@O~v3a2yqv>b1u`qxVNt*%I{YrlZJ znBIY@$RUEiC-rQOOd6&9z+JsWi|4Y3cT19+vV$m@)j7WbvX^8y(>Yk_Ws)wWL%-<6 z2|ciyPIqp0yakggdQS1B$!hC%YZ`Y_2V?6_`qYc6lg2OSSCmX}S!KB;JXB)KpJ&ah z9H?=iK$>Flp_~+>!Ozd%4AMpM&t=iHm`ALAp3es?xYX{t*6;Vvj0{2Ot{z2`n+PAtnXgm>y9f^f+%LzV>I6xE7CP zVhtZv|A=sqcPo+2QAy%fQ#pqRqkZkw?-HY$S8s-w_kcgtEP6A%x~H_JAN9Zh;`YYN zhXwI5UV|bxsen^d^{n}c*OddrJ%L-K=zG)CP_4X{H0%$*x}W*g4+qdFV6O)L9lP}b zEM#U}a3fEPG+!M?WDUApC9yIcrB(JiE{qPRq&$oA8A){#t^tJyyHO$J#f;y<>1ov! zu56Y)FAk4tj7ALT81@FkxE+s<@Tuk}e0!V>f2jd+1D$}8=W;Kghnk)l}0%r{5)dB_bqrLS`IO)>yPElFR<-_OCpRRjd zb-FgVVdtH0nhigQVozAsFGw2k08v1$zs|`tK&*m__U*>>2lU;fy-q(mWCI5HT~l4X zKLt3wsISE2*E?-=d@`gzMoqkv=ZwLI~E{!j@WIh&=coj<9qtsYrmgr-EebD;HHmkBa?Cs(2$`A(6O07}Dek4|*)hH0 zVo@ciNaO?3mNpZnJ)-LjH+x#rizkA(;0^r3)`Ss7H?>H>p-1g`T80kG#{R(0Cbz;u z$jKMU!n7i#&<$>-{q2K$qMq?7q;1Jo-6}R9?_MwrLo%tdsijC)fUN1JVYS+!^hh(n z2KD8y7C=KIpksI=Uv=Teyl&b#a3nw44bM=V-@!)H6(o^?&xC)kSNN6qL8aN3q)&`9 z$*T`J+AMredL^Uk8Klz54PK(bPx{q?Ko%s-X;m2P==5aDKd6b*`eVhvmh;Go32vih zn-JNl=o|QcUFL#9Wl-lYm#u@PCha9h+kM1M$Ag1YQW*K@OD@bK45Cb{#+%%j&TRK^`7X*G$XkAe7SFJ({X9 zd1d6GQ@JBMA?^{v2zXOv%m!hMY>c`{xfpfG@#R>J1qCVOx2GoN8=+Ct#t6v)MM-6bNAi`wp@e}4FHJ!E}<41 ztuQ|J5;u?Y=HkI(k&_yZ*`?SyDnKnK#}s1;SSNrDpXmLlO##+@7+E;;EN|Mhg6l=B zwGPvxznJ0c7eg$Xl@e0nYn{)BUOd4BH<|aW&2x1PR{ZwNQOOcs^Vx2#xTaHHTLkbd z$!-uwNTz={({XWF(2uP0CY@Djby)FyijhD1!rXk_wCi#q7CG%5v)$If92twf7Pp^b zpa}W_A3S2Gx07zx>%P;nt|e2}j}z6=i&#O!sjlM&JL!B@8j{_kG& ztIwZ_j!U~=G^HhaB)Dlcp=DYgC&{K&^Gi1Bmf9?~FD# z@Eu0+j#at_OJF|8*rmSG9_&o+C{VnQ8j}@BNn>G@%}i{O6Sei4crAsS6lwyDhq&=7 zQHMBCV=wLGa%8mGdCORnXeV#Em9)NZ@D{V?9}o%|Hnt4T=A<}Bx2yIdmI!!3f;ct3 zQcVw0e_=4Nni)o_y0*K(c9&K%>*JJhHLfxS;R&1)j$4$*7&lOyJB+7f4;+aPz#n;Dfyuxs+#AEwgFaJ+kqNCFz5tV zJ!d-c!dXs+kU4`!{9I*w06!P#rL3T4b-x~0@VTM4N7Zq9aa0`+rf>w_)`QW2<5LZe zVZMargL)Y@a#-8VpDzc1p8RC!^lg|cR7do zViK!6wp+vY?4<|ysE1ci(=F(kTPy6Yr=7*2NUg9o_Ek{iQyTv?3>iJ0l6;Gmun(s5 z3k>IruZ=y^klO=F^%5hQ3<_Xy>r)a#Vm@#j%bh!W6pV^7 z0$b%3?K3zHh~jl5QS}&`L88vIi!eWbJ~~E%#2t2RhKz^oXGOAehh%?<;9u(9pW%S0m-y4vXNowKwL}E>aN?KA2x&63tQDbI5K@optY#1br;vK`5f|d{5GV1#6$E^FB6-z69HM zBMO<5aVOv1h51bKc5)#axkOJ7q1cSg#=-}f+%yUh3L782hBx3M@NM@%KDsf)0ed&jdTzaGy@&%NBaYkhCt`k zI{p~=K{!^_AQ&_ z99PJMOixT%k+7DiS1GO`mvS+dTG3&r+16I2ey24NpXwdApgtYOXlO5b;j=+MahGd< zAxlLt0t3fCw8WPPMtIAFV`%~@R)+4Ztn}uvq~AJ0h92DvUHOG>9P= zoP^-C&w8miemk$|VazGu)fUk*;*ahk7D)8#)e;PYUb;doo!~SQ!kF%83K|XdrwOWF z&d+7-ObjSx!`1}eOQchATojKRea@Zc(11Ot^yEzk-C|IROZozAN4`}Xj(8vQOk z`#0z-Q9sI#ThgN94Za~w<;EyxhS&1L`5@`$LU)V}X?KgoPC;XW^{(p5QlX2wZhwG1 zol|?E*1C2urp`KT-fz>=xvx#9?rT^96k{2^KP_aRT}Y1_{y(5)3+V8DOr>UGGMw<^ z5XicGioz~q_@ur7<>%YGlk^b5+-1`F#xleK$s~228rJ9eB~hdPum%u*)Fab8wotfN z1Gk#+AgW+ysDg3ZB`U~xt4sr5dU3Z)xP*AFFDEd(L#WkZVIwqCtcTd?NvNQ{_fs0n zQZ~|?q(B#0PhxbZ*`vSOgebvIi6k*W*;$&W$qL`%nn?jC=?;%mm@MJ4GA~9>xgCK9!dfxTzIjZ7P@3dJUR-GMU8l+Xx}GN z{u&!$ewo~WQj&Sudj;QBHpn%7vylkAz!ZCX(SEuY4VZ-YDX8br5Az*&p0Cn z$IS^$Tbq2?Yb#TucB`$8f11udo%qL8w`WY^6#kwr|R6dh2c+Y;RX_idoLqqxl;V`(A=>t%cKGtkb2XECr_ zy$HPcKDRHZ3com}%Ty^T7f@2bstgG@!3gkS(n> z1|NZyw0&mi=*5N?kMZ6wiqqG@)@;zTPK%g<1RKzvr#;1z{=F4iI$Sd!ux_=(=At}n z|599i{)~x$+Tq8Ga&mF!4nLrTsIDx86~-ssNyXi9z^mWkWj-m*M-l{(_G!ZeQDld! zh1}^UVYNH@rA&=w@ThARtPFkKFF#UhdOTAyGd(WOwLVe3dQGvthBZ~2y=P$VWk3>6 zjyEUBV0Hunt8{4O@_mt)Ry~G`#hfR!X5=b1y8iqo3p=&}FkZ%@erKnW)HR|POVWt4MI;mt5V>*w zOSrPCr$Ktf)VGVnPwVB$v>>|<7nff;xIBa|MZ5#Rw%RYjBDTl2={1;Aw1ggX8#U#= zT^q^NjYujz_#YS3HWx8`RpLH_M-GdfYE*1jW073jw&1NF^ZC?Mt@vDgc%b=3_Y@&Z zw{H8q4hHFEa2u5!3Z{C)=7I1UZ7o{;`*ATT(9e_7Sbz2Po+op8*z@^n zQD8Mn;HK+Yb6~lO(vo0<7BSqPZ4e3?2;%v2nnE8hii+Y6#K98DwZYFMC=Xzp^F@9V z+05w6$;A$ht-BUQg@0ndZLMg(~wflz*_owrxHsluKk@@WO*vf?)uw9y4w_{~G-oNjU zhmEf9-1%nje!C+Eb+mUpPW-}z&trG+>Rq45v3DPX@y8R#%~v08Va<88m+l?Qu$E=c zk@Q*8&*95du)oAc<--ze&AU1fej zEdw-2`aG7f2emrT=)3gO=~D496OUP0q*aZw4JN682~t5}h@ZVCm7}+L*Xubi#ZwK^ zk0F)|`0UB)ojr#hb>Y(d^7qqEza7}(N}*sP8TRQf}ejpPD%Q5 z^!46xx}3wCZ;vT*%Tsu_|Lq^r{k=b=zu!;y|FF;R(efWY{1HC+y>l2D(S2?qg7CF*9uQ6H0k_Kieblsh_jK-arK_0L(vGHikEQ zf=}tmbh$9E9>POv#OkAtRNdv{l(fQWR*ze@E4Y>Gjf5BCV=N4$JZ|ORGM%%tFPl$T zjxPChYE|cuZEb9elll~Jntj$kl&LlukTjD;J)OR-=jeQ39#q7Ae8L7{xZyIZ10Z$;Ub2&GR0UISe56_xk9f@-K>4II^l?;s%I4+Y@s zFU1w5pI3-L!vXTEEVI3o99>`uv>#!4zZjR>+evlA?~lsk|6U6K+^I$2BUFt( zaJ^0?JX@hU_@1l4nz>b$^H7E5To=c&9owW@>sJLq$0p0dATZQ9f1v@iohkqw`|7|a zsgD}M*Zr)8#EFY{Zh)E7DMBbLaQB4+Qn4;oE2>jKNGXE zRz@s6@hC^C4RxZNi7UOKXzt{A}v$bN_@B1WagmtKK zdrWCGZ)jj%_&T`W+1`5H_ZM|S_d&c3koQkY8H7?wM>=aZ7DL`PzE((F6Z*4k$a=-C zP!M6u)|^+r$vnbe_*WM@mMhrts*$QHpczM!e<4K{i;&)HUMw)|no0JA%u32Ink(G&PIZZ9xjf~W22oU;_mtylSY{S4A)A#l;=a|99a=dFq1x&Ms< z11Db&21t;u(wkWQ+ve6TH*HTnc0;UCMNH-fPmevvZPJG!Ww(Fd6x3P79C5rTyw5rL z0@v)Ko}Oyc6K!;-Tg8+{C_!k+FnjE%h&A9)G8|64QDP7cI6Z$$^{>C96>giKvq}6Q z$5UlqKtIpwk7!2M6zD!a=Meu&tKr$ci-Ed;phLfw&D(rV$;o1=f)|US_u@yZTxd!_ z<>+$xfn(OmcyeT3%g|-N_^PLdFmEb7GZ$J;&miGLk@6}F_1lkg&7i2H^8UeCvwyBt z#EpCP&)A(i7~O0*xxg^}r*HL<)Q7}<@0}HLP~UXlXRG!-w9LynEplkP!@J2Ubq*k4 z%l9g>l%!2akKD7L+z%iL35`tt(x7dxy6E>PsM8kg4kr$)`z~}EmCj9v8MYeF}X!i{muOPdm5Nw3b)ey|6a za~~W={w=2aI)Q&y;*%ELBu;`j1UG?5gSVVGEM>Ck0pT%{UpLky2- z@NA4S=!z*9yOoG&cB3&o{B2`!Uare5YYzRLI|oEqxQGijpzNga-Lfo3I%SMIwjgpFKA2w-}Nq65#t(O1>$_Tk!Z6hUGO;Sx?ZAn`ia~iF}w5-(HuIr=F zL6GGj6K9x@OAJOK0b1pJr-Ve(Qph!aO`V-!prCd0j=;d+9Pi*T=Fx#zz4DGt2NkzQ z9gj<+05T2rl1qJOD{zi{CCR_#OaYbet@*CECpOC2uVx1*A~%~+`CF8vTcwk1)CE`O z>|kT}sj=srR|+v>eScr8eenBt{GIc_;P?Ieb>g&O6c$uM#Im+$I18R(p)++NE{hwJ z?q^x8$W^jCpj`nDhh(_^VTP)%)<|9`TtjT_&K-0GX;6j9Ka9x28H&tdT6*Eg{W~WE zcsqf}#rtd5khtWZ)JTlDaNoO3BG(|oI~^mKu*@RMbpvUc_Jk5oKhZFe0U~A#vyf=; zC0fj$$12kmcIn@va9(w`&ULQKVeH-g{owE&(sLyk2o()NfRNdbjnj|GKsrv(g*d6s zx>1?nSx&e1(td_N8HxI2W6P zyU5S8kM#2|O5T>eqQ^HbTb(_lw?GGHC;UtIm%XjhmnV27hG#&mk(+j_Q?q1){oyx5 z3XFna51P#Wik~Oy;dl7(a8ZA3;GR9iFbV`D;ncr}-_Og-vdR`{#rR`ePO~@I427!s z2mDfV2Pz95n9j;B;O7Ytl37mC*z(ytTc#vxP*hxo!P_3!GwLS$d&y7K`akdih-!0M zvcJ)1V_iALj!=tA#jgq~KE0x+SNw!Tz(e@OhWJl$avX{CB@T>#zJ{MB`agH{1H5Y8 zSAW6w7}Vh7Tk4z9`Y#xNj(`4a-l~3Hm~ZOEV_dV>Z?Y%w_lKhX^P871vY!j`ui}Tl z>4yfo`7?Keu2XN!PmY%GkAj*u&%HTS{!wt`H7Kt9p}4~L*ua^56L3JI{PqP295$#2l-}2Gk=xMy!q(|U8SX9e;>{_ zXriq|6OYRex=K;eftkZHR27|=`Km>&Dzm6>>l!r(S&h|N_0U_fwiTbkt;^oiGUBhE z)qk&79|lV`8tms(J@iy+Dpl!uzIYFZ=PAWn;NQJNduk5~CLQ8qm(#4w;{`tcuqahX zxCK6*o5!BfEc9q#%d#`ISJ^rK(C(Vq6rb1|Gn?RV&N-01qkTb#!k0J)_KjAvdW~-; z@=fpDUfa2G6WI$}dDVG&A&(q_7xcl;9v5^()KhP-k8Q75^}I%pQdRTZ**&k~FSa5^ z>dmWj3`$f{%mw|}Tls@MV$T6T{F&nB=PSDMY#%Iat1c32^KdUa<3c5fTWW)ySW(=HswmI{MjT+Zu7+eAR}Mt5sM-FKrqcOvz9R-Z1X zMYM%q0fiK2aO6(!Mu)noSk+IWk!g}kaf^Bk)Fyuz=Cf01fFI(cyQ+n|$6|cYSgdh+eDf>KZTPGL#SvEZ{wv1w4Q}K&Ajf6#Oe0! zTRMdq?)|M%E$~~rjrqY2vQjEt!55aadCF_vQlj3 zC~6nW0^4dX>W`0ba7Y1E94Xa&L_+y(%_PrD6?oUyED?Tj=g;d?7|K}={3CU!d>!l! zXYN=}0ZQ!dMsJF?<-LQ|Xlt$>VR%XufYO$dcrBksa2Ig3)Wn;pUbd*Z$M;x_a`%uk zQ$+56+XDC^~dpomgQqCfz8$s1fRsK)ZVm)!hMWmCc|lz*I>xEZ@0 zGW<{zj&j)RTvNJD6yplQi_=JNK{Dh9o}Q`Yig>qFt>OWtZF;Vb@<}nRKSmdM6IFFo zoSh*%VCp~9H1_cA>jy91JbnB0uV7(SN9rZclBvR&P zQ9vpjY)W$`__JKrSdzSi-*Qh8tc^8cbB4>5?bQ>3dUVilAAo zIPM@Iod$7$+{tswUTf#)tfoAmySq;-6utBAmF72|7bPc(@{joyyn#!rHm?MbVwPe) zF94#@#l>3Y;_8ilteSbwhAAc9t9^ZZp6BlixbM-tZs>^NAewnGDbKC|;c1FQ?H=qR z91k@JScY@c%d_HK(=sm&P>MKc5%f0vCXFbX&M3P3Uk3*Vck!@M#GFyIH~c2L*296F zuXwT5!gG+P6dxNi<+6$<7t88>GmM@Wz*R*$;0PAEg7ekl8@d9xBHRYs&A|G=Yv>*i zSi>Ok1d33~`{;B@Fx)B=8w7ILRdK2_3+ug8A1GQCK!y=uaDul0H|j~z*wNw<$>Hg; zoGoVvDE^4G;~=qVZF@vRKFKHV6W!_K0_HS|zTpn@ zmg)djz}Aa=a>1m@2c!?q@nm}aVOzA(S8!WqyC=+_>&A7r3P!3axg#0bP_=5h#VK6$ zy2UPGaC0=21T;H5AFBDACh*ctav%c|-g9+ca6EIkNc!47(-baZQ9#d2q#U4vB6aO4 zyS{ykj*l?)jVz+q3BUv-(LcC0+-*xu}Q>fu}-mHM4h`h zDl-MuW4Dl~z~DxUf1Msk_E??(Qh+RI!e`R2GL6 zDn_yXQ_~#4g}%m6tAb~6tiUhI9cj$~sVwUGq9oL7HhBhUxjrSdhD5B!%~_ZLK#oJ+ z5LJ9k7g1;9q5G#BI#i=XYS|twJ@%?L@95ORc;OTkn2w2wEtd%3px2C45dpR|nONt? zjQ}bEq97_r%WGxrOpMAS%%hS2<^^Ye#dgOE9BGs!fe{DqkC1dHI782BcoSr^o(X}R z0y5GH!JxVLh^ihZ27>JFKCbbaXj&gGb3}w_1jjhnaE)rAl80rA5{`ARKZo$*F^^3- zviiPDZ=nnz@=uIkNBk$c=CWegW{eiJqHNsl+=UqINBJ-A+6`95jdvGWRbk5P3<1yu zQhWJyfo|k_eGxzvcY$`$un6f5rgJNzp>kc)>HXcZGUT_MzI`1h9#U{OBGqw^n0vC& zdy}=%cjgT6@P!7F$PzG}1{1OVp{D<~o~wN!J4Mua01+@Ds}JpTDFEDpTUS*Y#Cf^^ z(Dn7=J#tKNU4dqS#rnW7SHTnYMAL=)#}kHc5&Ta<{F~gHg{}V@nELIJ?KGNl^emt z2i`%EeeuP(j>w37Wo-e;Ry1^*|8uVmfjvgw|8mGDnhgTK7Y5uhv43-bCwf=~c(~Ya z2YccrMM!-EjM=1!gU~RI)beSJ8U|t^@`?eeJ63G2ogycrE)75GDO~?6ryabOD*^PT zAhPq?-#T?NI61u#%Q2^{1vmn5dHbJ|5FiL)SFOhXFp%X1M=!Y51ScaBu4C8UVJyO@ zEKsoL>R7O>78^mLKC7J%apD5h0Bix`K7U`}YDRQtkia)m5LjW75x_>zkkv;af~CTm z4lrscdT|;x@5?zAd7u~`9wD7x#V?jzR@O^aP-jj#a}p83ot+!pB^OZRxN2^{JHW{x zL6$`5LdGx05l}dVwR9p_MSpZ^7@MKVrK-SQ_Q8A^cH1?n* zxcF`6oka^P$qoqF9-4Zr-9}=LJBpGTb$GC#mcAfUf|de8=x?yQZf|vKw@`2qkM%U} zM^pWKds{a}&;8~UZZxjZRwq(zgM6dvtdjT{gY$?zsQ0sJI1$ilo;=mF=5Vw8OQ=st%4_*ZIypFLupeQkqsC+cqNmK*Zx78p1J9CfB5w95Y$h=4_serp}WPcQL zJ|a-IKtWk8TVSC!+~T2W;SEaUS;X9o%-fylEy|~ij1^jLYVXjKLw)qiayDlv*+-b+ zP_#f}YeVj5TykZ1a!Md>+@9p&MT& zB?y_;^&CH))518+UUIa%`%8m0NG%EVcCguqNc8>kr z+)R^PVp)1-(dBt(iS4MTlE-w;LJa2y)7X3#cFmdF{sq<-K;mg(S!jd>n1d@ih)7Tl zr8L{Uu+$w%^c@;c%L`)|ZHfG5f}^z$wD_1F>}o zgEc*pMQ+6h)9E8iilGO;u0?ne$F7VKGTp|}-Z6DCiw@1J{o`mPzMJcFcJ5GNqCNk# z@E^762774$Xl4TtV^N@v+zRdy&Ptr5V2e{fW^fL7FW*H57z@^=ytonolL3 zLnV%y@X(A|Qx>o~Q^i%@x*6Sl>&B$_tqrK}m8~ups3n|U!EJe@P}$r1c|MO>%_7Ws zqdrN3UNXtZ-x98GYTeQR=|(Cev*h@XWC3oeno9g6+9#LRjyyler*cahP))08fZt34 zY=*d2;H{0()+(%ZeftY>)=HG+f^BnmHpExG=qik@f}O2IE5RB;;qGj$C}|zL#{kdg z_@tz$hw0Z>r?*UoAaeNXJZMRz7u#+ zB&OBxSKf;Cg1MO$%FTR%oLZ0dLa3P|!uuCU*>3ZhVzE71eoX55l~$|fN`6waWeR5e zB`yW!`j$Z{n0>;_CU)i^d^m_EqPs{1#=)y_u<9-x{KqfD=BM<)98+)l2OA$$U)nkI zgk~$@MjzPttqZl$I`zYhO+m&Ah#@Y>P2j~UaN%qM?}0*|KAX@75pHl_L%nsS(z8^V zr5U;O#(n7F1Dg&4e+=WpV2L=OU(&XQN?B^vkO6&(*vNkSE3c3) zh1Pw1P3;NbmDf<7ZLn{k0kZ3+>Pijwby!hkHxpL?89o03vA6(MM4O+YlTTw;_PnSt zVrub}&Gz&*inR@18g#E(pm^7@i9gpl&+vqot#hJp-!fmj*M_1483V53BjGOVT^IZF z_9m&;fLo9@O#ygvVmWw=tBDEezqHc zXjIK^2iNRwNF$(%J*BsAnV)j;*^n%aR7@Sa7gl^0UJ*$s`Vb-jH&T7xUN~=&@B3w= zoel40K%S=t?rm>rrFm;MvolD^BXVQE&=Hk9glzH`)#NXxNt&Ef;pmrR_V8r6q7oyP z#||;;k3w>0tP7IpURtdH?L4ZQP zj-6@<(&}Tu<&~8h?>YUe?g)S0aCB+(^Mltfp1$~D1QZjj(p7YlpGv)s9lacUd1{9b zgb@0b2ouy2wSWM{8_cE*Wz%SXZw(fi3d@vd>|2fR@TBOzaDu9*soggRJa7R?b*oOQzLxom0p@#s|v5Vwb;KZ z31^w*(PA_Pg)IzeuZ9#Hi@rMJ-#QR+$wR}jH`=$h*xK?8=}@OV_3Y+Yn~9ARWq^)$ zp=;}zkJuwYHhdTsja(3bRPG##SW{Z$q;m#P4`tIidJ&QW2!TmsoH|!D zFsb#Tux4n=yHS5(pGf21sFuxq&0N@V?Hn+ih|%D5Y!0w9y|m~lfQ#m@E50WiudSeo zy=&#AV_n}>A>4uIvm=nCo$^w^qK1_1EpO0<7^;=+s&$B6EkxJ)(yPY<06-SsweCxI z?S43;z2!CK8GQ*ZbA0=DXRO9TPA3R4X+ew$=CsfDa(DNchDe%-uPd_u=OAT3HOywk zDOr*8b-CSHlod-t)~5F(nS;Vc3E`+9?l@q3meW&|;p^e#%3qV3ni3@vJ#C{IYD`h$ zc2d~UqFjztsq?&w$mJ6a;oIBp0jk!YA6pt)dRqt9&(|1zLHk&6{pswU4(S%EIfpLN zbyx*5b-jIy{x~G5=4j0DiFTWhEdrS;A(EBbm(3G&J1X2%OeTVowV7K0lp8#UHkJRQ zQl~3dJGc*n6}~{InSqtZ5w7soF(q8KTk^;bQM;Z2Gn#+cYF-ShQbg*prf3RpiSbXO>I=-9@JlCI6HEv<`Pdse3;8!Ct}qV-T#LBML775NX$ zvd6}C=v%t3oTOPKJ4RuCMwTq^u$2bmEnXtT!GHt1yKi4Uei=P^`nTubk0R9EHgMA; zB7|!8HnFwHv82JI=NGuT=s{he@fone(<{5PUN@afjFylb&eO<9A57XMu^ZR}$_+K| zZT+Uv!eiP`FK^`TXML8Y_MEK)(R_UnO7pKEpf)7X`V9eqVseP$r%kJ-J0bLe;zK1`7}pb$t0arJ?vl)Fz~x~SDi6lum8j`YKawXtTXOmG_zUPshlA+#eO-t#^gDGpw|@KHbHtTj%pIHN3=0etKFRcezS>tbewb@k6TElt_O0k% zWRxe4#UGw8U+yn34qE)8?HSpXv5|GNoMT7?E;Xd4{}(KHKGW^8pRx8zR$jwy4^FjT z$@d=p_)qG#MG}uJ%>~+vwbgK<>MhC-K!@SOF6;<*^#nTl!R@Ad5JT*9(ud)xkp(D=rzsoMG!#Wq5K9z?Rq1(XYqqT5?c9GZkVn zRP0Tqh!9)`PSq$Ztr$`sji9HrT(pAg7bbc&rP6z&JOS)$L*#UtCC}Bb+{<}UIYXdmaoB+OYFIW{RvTwnBu2vMSeH(rUOhckAxq(brzAAN zqGP?PrmGrWs$?$RMK+xUBrJG4FbV{>=o69n)d1>{&rqOFTXzTvPo5NTX%B1=u61~` z?Y4|94(t1jE9Y-x{~nl*$9F^S$$&fnGNWUadbQ7?(!Zz<#04m-b%=LN^ng~6{%Ajlk5T0LhJ7~oiEIB zqOOV$r=w^igLqw1iR{#I(O?qj>Uz$o9M3pP-tZ#&h{;LUu%gAXvQ8RL}J_@VC=A9dLoeZUJ&Z2vjp>cWPP9-M}kL zpX4P!a#q)>`IKDZP}r$04eLiTc5dELdD zcaOAb%Ls`13}_grJJSYYo#I-pOghM}zlWTJQRay4He7}E1JR!x;k`YEWg{Z#SYx16 zoWWM!cVRDtwt+>iT&6s0Gk2a$Nd+*6s%eOTfQQSqP!LE531?!YqxLSoQDj>f*j*== z$?aOoFfjt;+2U!_Wf2ip)Y_^*K`!&G95IG#O%YhlQS#z? z+NhbhF>Elw;gP}{vvP+Kl@=&jRzJG??Cr2RJH2C4?R1AF+WGwXM)m!L2~X~^3YzHz z=7pQq8&pkB)gcau%CU&nUUJW`Z>&|i6Wl#@)r}PHuI2+I&PMABMSw)xP^p>0H1B#E zL9c>a14*Lg?5?j%D-b76=Q5~S} z)ZqdJI(4EARI7hB#e?l+T(V2 zH+p~(r75m~@yvrWZ{uE*iiG1cn*~;kpd2l6DM(;_F_q(wCz6 zIQlFN`A#t8w`x=gix*wcq1wgFnJCL>rQy(j(vCyuBYGEMQ-F9|$2s`;C59xcT*p`r zs=dch2#Ee;eG^YNkVw0JXJ*J^LBGJ2ZN)~peXI$AtV>#Bc(YMG_GW$D!le|^Q+o3r z8@n5e^r^yva%A{`%g>=9iatRA%|FM|JC2MjQRCv*i+>ci+IO1(aon5;o}O?SGjshy=t9AKLHSlq?D1UZIh2U=|CnmwyE zK*T)IRR;QY*hxG4qlcwdBD(In)#=6TNxeb+Q8r&qZ3OXFUv0ECa3PVYuYTE!;HjF} zVmqiuQeT->g3VmcUB5M=2Pv{X-U(?A@vGZ+q@&7ObvXR%xcRu_IwHBWp?74jvEGDO z2)Kj8zhNVq@O>%*WBXCR{g~GrO?yT7Y~TNn2NMXbt;9e2%I>h;hj0!UMVcvK+X_L3~j3r&i9KN{k__S#bHMb!&rPlh#ukhOE2{Vz!P|oL0niOwHB4 zQ7}T|8_t=Fj5V#|Oy6RTE*y0(q%<|a$CE2ItcS zV$=-uNWs(C5ctGc;0?3co!X1rb{uM29U$=q zGo!GY-niW`*i_4lp4K%vR#j8hQ261$Sc==35+1t-L%*S%zrAe+1m&#!WHqE=O3Cyt zwoWGoOpYH=4u_iAO8je@=~MlR*ssN|l=r6jYxl%e$)KX=I`A7+yv=@tS#60XV?CeG? z>2f~-E9H>4?nJ1LCo2@OWMxlfx4XGC$mUbsCV^$tdUI@?Gv%jw`_}&#q)2OLF3pY2Jh7>#RV*7) zE6(M8U5(1PVhY*SgwqRk@vyC0&YmH>G?&C5L(ngk<%Pbt=nq9}R6y1NScQfu)T$tw zBOw5w2ljj)y^iyJNmnt-aQzKc>VbS7s>o04PL8|1-rUU9Z zHi;@5I#WLvC%bRvK*yCZ{0M+LWlu~M9s2Dz!@Y0z_Yc1P!yo?mZL~{AOy{63s^Q1- zeK|)yVOTHDckyW#+Iy#4`L8FyNCF$(Buuji0i(%!8$3xmpDPhYDhl_^*L6om=<$qaPA&!Tv#e&}x1^A}|MQ7^9FF zRf_6Lisj~Lv6LA8l!<0DGU|Aizt{HgbX$>*eb1%PGkE~SSTj%-)X)@%4?isd{^wUJ z{w!&Y9Y-K_2Hb#BTwtMsqI_~cUI)p>&h3yO;6z+&B{yeh?T!~7Mf2mYD1bGIzXcts zf%Ee`QlJ2yNS8gC$}D@0 z2?o1qa<-MxR@H4%Gwls=%HRE5kMf#x37^A%s)Jf8eBuej6$){-pQrTPxO6Uxou<7) zXQ)O)exm^BX7U|&z&0N4>j-nrVo-!DC7wH_x?%3WE1Bxlw}!@^y=O|L1n1FM=eR$Q_|Qqee!@(2CY z#sDduMr67l-uC1i3>uVYEv`YAt{sH}Jjz$G!8xg*>{6#%Y>Su@2~TtFh(rS0kq+7l z^Vaw%f)m2DYJDa={Ggo23k9|X)4ys@q~UOQTkWaOtI3-4Me(7mmkoY-#@l~qNgt~Z;%t)nA;@>t5cS7<|bGMZ&phD#7CkRnQmn_2RNTIjCC-W*l-wT z4;rRlwJ2lYMR0ZkATcQH?jhWc|GSC*f8N9g{Yq({`n*AoR#DY45pyzWYoOBwILMuC z1ZP%8HbGZ~aMTj9@t!f(_O@E1e+jg5!uhT{Atu|vD*xe|TNV+;CWTcZB7k%?g?%_Z zCB1}+vX7w%RhT3zo~_v`*(5xHk)j^h6d($jBd2U|w-iqnxShr#BaOOh2AebSRZU*N z+L4_X$=WV75r385!6Ln*5?7sgd69L?Hf4tBOIyXdS*y@*>kUzU%5#fCCw68PZAbgW zUwNk`+TDGs{g71*r1nB-pUIwGEcmhsdoG$ZIX8!1C;jQ1c6Xnk-x~__YZ%8w=oFzR z_4p^Ckm3#d*Gsv244zU{q}?(a0)(L^7GZT2&1!-gWUcV>@yk&JGzd!dHJH_wZl|@j z4xu%^D9_PHnIp2G*5T0VpEnPf%=s*AAYti0>K`wYQYCSmNkd5wocw6lj?ftfIKk4W zlrh*vxsm`nK*hh-^L$daWzlSQ3m+DfdZtNSb0wW4s-U{-}C0AAcbB_1cMMb?;V7`CgX^xHw0d%^>7 zY~qnU#Qf8Jd8G#$clW_P2o6A3-nNdehaBs<4G5vtLi_Pu2XfPflzQ;z#U5ge$8xs^a;LZKOLUPq1U8EW4I z?a6tg>WmAHk7m8UrbhASfuT%Xqzodow1|5-@)& zZEdNZawl=?Gg2?9w8|W*50zs^(MBme6r!toUD0#l9j8G@0!m^>EP={1F2vDHP_Uls^1{pu z-L|+p@tX@3BhL(HV8Tg?EKJncTEt^1K3@)pBAQ;R>SQd*n@4dd>?h$W^^tRRCm?u( zG=X_J9w1xQ!u-3hOt2Fh40Fw75+O0Vj9k-!E9ioONS(2CEre=6scSYQBdrG9u z1-C>s)5-SauOm(Ou1I!774YYP^f@LJ_5^1w#y6U@eYP$^ z3bN%E-;Nu}+2`@CpIzv!HN#FDOX>3`bGga>9XN=)T|nT{%oJn4@d8$XH56^)i2w2a=jR#BzD;I`(jbo=69#NAMsXGu(CZnmBx!Z-} zQQ8kppc)W!WDIgSs{s0(?$=cC9_6b9c1ozTWlz=R!o=qvDzcAd3uutuCj;Qa4bwl;1Ee-8IKnxdG}ZLtDbJ}#iC zhH1jKWdF~FcdrF6bHsz26WTalIN8npR2{AFG}+Kv^?Y_7GELS#Cqtpz;bXN0^Jg)FELO`=PQYE3E{eu~_idZk)VpN9qB|MKb*R;?lByl~Dw6#pm zZ3Z`Q_s^QwgI`duH4)343T*Y%D^fnM?pouH-%`)-gM<2;n#^XMHcrReT)JD!M);5q z?^?15*BvYF`P(Jl74?1^ju!4GEycS)1sIO$e33|K3`FanJYjtp#ujdKJ*atpnufLV zP$rgw&<6Y@L91w7X80;Gz?(ofNHgQa!<482if%#)FAyPC7t=!r`8wIc>Vcs?P`MQe z-TW4Uf^5!Nxv@4-*>P-TX~(_R%Qnr1?Tr6`bfKg8{iv|Wu%v8!6&;D=8q!*v$n#&k z0$fp>XyxQrZM#BGgEfGsv#6&|NG;D@412Xuy$VA%N>#Uw<5l|hdvX4Po}ajpPUGtO zC*`n$^>cMPtEF0MUtj%%!F~S_N7o(0QLtq!_@(BBUhDGl6We>&Q(S@Be} zNv@M7r0?hQp)F(uS|jla=R_TxN6aVgagxYu_!~!=Zi{#=^z zTGhM5vkx^)Gsh#WUd*ex8BV>#8iv-vdeyW|?iF3h$wf%OcnhBQdy!9U4i|~kZ{(CG z2w5kdAU{Zpco>Vg0U?kZDx*37aBpX*Y#ye_1UPN8ricfx7%BX9d$Lol2sU%R_u82Z zq0l;@BD(c@{G*dqw9Z<7#g}QlMohh{efODpS%s@PwT`T=8-C=~doK#yd**PLa<;bW zRNX=NRd^ZYQm)3)?-?zgxB~V9!k0-}bfKoo9e%*H8ft)q)zVlFK|>aeCdP9Vl|E_* z{G0h(?Ib1`6i$p`-k2ZH%f@z0X|Amvp>?41^sv>@IB}3FCRv|92}7;ClxRz#k8@Q_ zoDPN~$XWSmD!}_wc1~9Xu_v+-o@Ay^yb@sEv2Eo!@v%9I&ZoH(Kn1q#Djby&s|R=s z#nS{&@|!lG;G^7?YLOk(^dM(n@V8;SjROa>Vm?re1#B@nV9i;STaZ z<)&Yplw;3vKRK^GDbgYw8T~*VyISY}t_-XH*xdIHvX^8&+ZEPMAgQ+1_vo zGzNDR4GRG}aV1ECXgn#VLBqgnP`xwpC$ymUjA}HeV}N3ig?s_%;wN(FL~+lzjxS`l z&L&k^g&bhEW!QpkSMcjCG=&LY@OH%rXA?d5p$e~6$k69SoiEk!r)T`t6ZdEUtWrr) z&b$8BpiXxsP9lO&mWza7Jqha4kMU8UGg#@T<4IW<0%?#HpFe7qM2=NLXoXvIxn~V1 zg8%Exl+{DX>&8v9X$9tPti$Cuk4alx%Y)5Igfoe}l~(z8V)pqE()5|7*@x9=>J(M1 zsub~`*LJ?1%2H>s>Rk7(K?d$a3*B;QI0Hp69EIn-d3p0Un`;abbu|iyC4LGCaGSM&`m6oMe326I=RXv`I8v7XiQW_MRJBg z8s$|f6XU@QAqY?%Jp6V;@p6YWPDnHF&J`ch;sedo|Hj3+w=mzA~;`!ZJ@55v~i}SHApB|y9#<-WXQy?Wlc82|1Sf|8y9h^f2?5*?XIrH|lde6Ji zT)Tb9Wq9MeuX_;FZo|DBAXqT)O`RGSqWkQfnYAmqC)8*pTc=gO>Tmtj6#nHg*xd2p zG-|u!$g<^qPySoD*J?)oBqpfMj19waCWmFt$xZg=U}ih|d3KYQ1FlIQE$w(juX=g?kSohibkiqh#psashEPR!HQA=pOb(3__*<>& zf^zoKd$*G7wjhUREfm}#5AKv4RaO^Kh;0O8cDFSuF;Bv2L=X_R=a_X{;>ZzhJ^`J# zVDbu)yDNo8+IuiR+-nAwYz+aM;}AK+CDK94w`1BWC7gHpv4gCBtCCpH*vn7xYOy=o z)DQj7y00!dqP;8=HGTO2qLZ_5jD7*-AAuC6M7Me+w+9#7K^1hU?JZ0i&Vyktsq4t8rb4F&&k={A;2OjJ z^lY*g|FPo<@X`CySqEfOTT`sI4PLj-H?@8}ZYX%%*j`iJr~b+gP$9cd!F2srEx03w z&(d707~QJ2R?Jh`t1Q^KnL};o%QJl0|0I~3853kZ_p}DQ%I#GtXbwL}xRP(=gfVE= zzJ68n*JkVsa}I>BDKpx-50Hm z^IUt^i1ujnJJc*iUoLQJvPiP_Rk@-xg-=jiYnm}*%C%*%A)jfCuO(qU>TLlAYqsjr z;zD*?I20%P&f2mh=B=KrFJnI@NLdJo;p8OLfv}dy9(A3?HeyJ8ebghLM_R2C5V=W* zoEgqA1~aQ$&nu-pTL#jbxqVt|jY5Xp+opeT>Mvv`gYB8`Fysu^Hjw90?-f;ded+tr zXoS+G+`XQ=J_4rDpPS}g{_}S8EzCdlhUYR6SCi4I8*Ifig)DwWQJjyBxmC{aXhXNu zrdfCQg1YL8t44K1H*R#@cA92`4!7vt*c5ToSxu(PZtW7UV2OE=rPo?4;?4A(^NXnxavdTlgfKXwGOF(XzjAQIZ4ffubn2To z536ygj?=v)C`2E6bt*eGQV>$tj=`FVF|{G;EEUhGFOBq*<40QUe$=5!tuH%CW4L!W zUeC-`R^+K9+e)Y76`wRBdz$ArOuAemfiS$2hp!vZsb2EZx)`X-%j+7CikU~`?hOe7 zcx0R;szWnsO0{-TyQ~t4oOAnN)S2Aya^_}Vn$5nfyr%CN-w(o!iG<$hDrG5eF5fLX zqM){}Y+A^Lh+s;e+D4I3V0>TKWjO0o?YkNKFo4 z?USEv!-_D}+S%Mh?md_q{`4_^f5pG;ame9UVB+d0_3VB7=Z(?xJ;rbD?Spf;H6W=B zospDRGqLlZ0XO&VrR-y@Kw^O49=6rl8thePKAvzeZKVd_ZXVZm{I}ms6B*|5lUf55 zvoL$_SCPBtRNS%WhfX%@Zv#d-_VLHLiU!9Yx+>UY>KO`Hx?q0eNP&3g$GP9Y-^1fW zT%Yzhf6i$tJN)Hx@V$1i5!~1@Wxu_PMZ0^y8g+o1HM!pd+)R2m24DwMc|7IEQ)g8A z;7k1HE3~0sQ(>)`9}c$D$uxt95NogQudUygc|%q5rkh;|1} zh><$a!g0y)T!A%Z-R^`$3pm%FK`Vw>(2!<2 znc9G(JRKI-p;p}q^E~axye<oKgod3gdFY1%jXQj85{RyMXJG#Uysn!yFI$ zQG&1JC`nd9xL-PnBb#~1%&x00wF?t$XrWsq(YF`sb7)tB09yh*PM@gh!Sa+xWL}GU z@xh7c)j(}a3kyiOE47&V7C4iXASqJmm3p64r>d{=i;!Km7gREm!sO0!G7PW95K&7m z^AaqXsrP97m%G8q;q%iUw~lv%y_4YR`0$6lo!y;aaqEQsUhD=x?w!6oe0>^Fi{q_> z)1QLF=fT#&Pr<+J9qe=$cK_|@c=zNaI6MyaULEc4?e27gy@T!j*E@R$FM?;0|c;OO=7(c#H14ZlO(9_$@FKc-Q3U+o^8_7?UI=vlD)1N{-4yxiK~=b^S<)9jCV ze%psfKOOJAczGJUJlx;erH9XUX=Yo`_IG8dgP#_*_qX<5b%UL)S6eT3`Kv?f<(Ql4 z?0$T?%a3ThE&9Lh)4jt3?8)}w!Raym*>eMT=CMYyifimf@Oii<9S!2a zll4bmKlqyE@Ou85{T_daisdT$-CO+2%cC6H(wg$RUjoOjPc zx`}ZT`8{Z2^RtoHhCR!z_8Kna$Qx8#rz;vJFP#L0jS);s@UBjcLekkI)k}SSz?En} zvSJq1LT@BF%RmKPGhO~{b%B#gixBKlEm~%mrs~*kuYQ8|VDx7F9Xn{Q;P)E;7VogD zf0OrkM$=m{ZPf^?)T~3zzU1!fy(|-jqcO}&(}i^BW{IkwjM-P((0$rafA?l>o7vT- z-9XO;hpPoD_+VSd6c;O1g3lSJIvoQ>;_4?gMl|jtkzAv2P30%KS{|lmuE@qsI1g3R zl|pH_3;@1o4-_>iU!}P@Rc88NyL_e_=Xqhc?ui+t6IaLcJ^;agSS)~(RMQx8d zZ_KO-jS=H$r^$cV^B4E3dsP{RKYA9`z}2-O+&pg^W9?rwLz ztTpyAzMsJQWU>cTK<*Vba5mK`Z_sVIJq@&+SJx=?F42seGcxz$cU&A6L))&6e_3cF zxtg%VcQ`DBUp9!t2{^fu`?o>S65ZgmasIY#!lJ_D+EER)OHZ{{?t>;tK$F`0`17a$ z7c*|71Wth@=oWZYP?IVz@w8S6$z7|#(f8~=%13nzqS@A#?jP$`Roz!RS9NcWWk&aU zLiO(HnasX&dUMafn?0YXeAG7k8QnkDBlKq9=-vQKqkI0(g1<>fkLmBY0Rgi!n;w{$ zj(5NrP0`E1$cWcwG! z?`(77qa;JDxktEGzL`j%=9Tcuk8f-%8^x2K)Htt6S5w;imibqAa_XAYnrl{_%2n15 zsGL+IJB=ei^}MBuN;qG3Yt2ZqK-2-Ef7jR6{u5(6_DnH#@y_GoqCBIs9j|@}uRp9F zUPal6#2Mn!WsWBku))JP%2xIzI~#TUvOMRczR4x?&iImfyM)6XCbqzO{5Nwb$ZgF0D=YWasWH-Y2~YKh%(gZ2y#P~Y5o!nEG|GBI1#acU8_ zY>k`ow8~_^;jcK&21wsIt&|9WW=Tx2;Dnymu+3BJ%+U%=2KiWT^U9o*ux3a2Qu(ZH z024OYNR%Uwds9S4tfeG0G(o0R|`Q)htAOTlkfdc~6;A~V%h+bDKQ|7e% zA>ZBtSpiV~lB1^4M!@>ErEK%iw=bnS&MIfIIZpTEZsn?9S>ltnO9IcOou~-oQEq&I zR)fdF%_7<5lSQY+;?phT(Z_cguP_lX`jXQXR!UXT)^g=TQJb(-YBv1wDi8Ct?ULSp z0UI0fx`J$XQOzshLAhIYyY)~!-IqiF%ZVI0Mo}Muw`cb;vonq*uOt?Y2$j}P?X{8% z=)LX-UkR?1>phCj_f64pe`I5%B3jgi1eS$^xYRl`UQ2Wnf}orfQH6-;GwPymav0El zJB&mOO96es8|qGhX&x~~9s95wJa{OzeqU)8I2S*hbD*=-hjkO0NC7@(9rCKGdfx_x zH^S@rjhbjN*!C#xUrGhsQB3q(2uIJZHK?H-OI2xmW7=oCAszt6OoHA{DVmvg48?Ot>A3b6Bc#x zAR30WW!{Y>o)MmnF_#5GdZ3JpL1Nm1AT@O@m!Z~-nC5a;g(v?5u9AqRa+pN!9hh5n zI+2^d)>~U!d${QXIDO>7*Q&vPo^OGBOOv#P8nw%GpTq%j$%>X(jjm0n@#!q+*vN&3 z;&yWH=l@_Rr6o-qOws|7&aEJJWN2|78z1 z_mDjfyn);o>PD*?2c4&!_I^~&FRX>qxNYilvu}Jyd^s9P5pLNx;#-!w%FfC?-KYwj zj7_3mcdJb}bL&yt{DJehBO{>SrRHf(NOme7Hq%-=xvZNUZ6m2#3v>G?+$TZ+njLd4 zg`~qeN=H+uVh>HSZOsn?Ppxyc=;XKGF+#+rS%}?~(gZo-J5IbN(v{IhXihys_HmL# znTji~oLo^%VkS6_VJY~Z=8^Y;1EglErmeGc_6YctY&rFLTmqWHAXsNy^F7 zB37Mbw2<7*{e&5eQ)-= zE8IF0vKbWtH3f~iX;^3kMdR8KK;w`%0gKKXKZC2R>m5Ufn}3y2 zMOAgkpa&N%K<6Eu+ch1e*S74TETpGjG>{y&(aY%Lg-r8|suD+^fCJap_YVAr5qP?j zA6_(Z@xG-NAG@D~n3uaO9m3Ji3BhrBXQZ|e*E%VBQI%m*lnCDmhz;k5HeRNhn~80y z69D=TR?`g}!Pp@RxN(hcpFClHob!*Gkh;dut>wxa#UEzwhZ`bf1O90LD|us2^H50w zOItof&9Bn0L4-&avnH8z;zAKX?xNaC1;o*^dCxytCj@D&fwehrrwAJ-Cr&k^Mkj9Z zmQL&Q-+n_~7Gn6DWm{xHEA-h?U1JCxhNZrmD4)oJ$q=h^pS`5o;cfb?-E59v%c)Dq z(PnnfOeVM{c}@f&u98v@N`y~gL+6hm9`W7~6>}xn+vLwS;HYUM6EKdf2U>z_ zi_Q*jjbbDyM$#c zLD?6SbM@&m-b7ej+Jy7}Ic}1TE`Ja+!OZ&LS>RmpGZWA-{Q< z0psEe<6p{g1EICTb~<)GU(_ZP;Ko;_?aw0G zV%J!8OEAr+Rxh3}qs+F}xns7T;8Q0(Mf)8#UHned-W_?ZHiO^q;kHB}z0j&Vbo`Ow zg&Wn%(P}^js+w2U!A{IYd)19ppKhp^|15ViS9xBw=yAnjQ&?7A%$%YDw*Txf*%}OH zb%=9Glg?6~r0B~fqa&_{`7wh$n#qf*M40ojs_%Yj@jdg0KnvDpwhRN$HO&j=)}N!D zeWuzg8xige1P{3|IE&9sl}Df-z(Qb0TWFgHYDSw`v>GJp3;trir!(mlY1zMMtdJ1@ zF?%*T~f0751dS4$hdxXDYemwAezWs zT44VYY{PJrUbBwr=MvSU>GRb`Uq5_EaJ)(sZbh{gE7-%8!88fSF}x0^E6mB6@XlO% z--&Z3-^_cUFqBasnmlF|xgAG2s*wqk7HV_#VH^-K#sWA!A_u0US2xkE3!;)EbS{(* zhj$0l#)qE@d@Y}Aq4Kt`0gv-P{v?1~UENJ89kZ(}W|l{)9&vtgn;%kiCa-g-lbi#x zdbtoJxPLiqEx)cN101LnZoiAMPO?ZHCUV}A)Dyl^gMs?7a?ck82qQv=HK(idGUT)q zktrZa6DWw0V`0Kwuu+#T3zp?_XvD=C1C-blYEa2LGf2HcOhyzOq+E?D@%M<@#hG%B zmh(oX%_fYrd&_@ek6ftxt8gkz6_fVXf>a!uj(s9hX11xtW4?*I?hJ=oEws_%7GLHc z!?+-Bgy_BFK4%Y9jtDPGIO<&>Rak7ZThRSqK~rq9YWPixR_}~-+xB}q>6jDfP(RxM zLWi=vS77W0O9p6p0P1XMxjnq#54g4EESKoUb}G(kO9{CeJkHB8!SVE|^8pvMn}m!q zaZ3%+e!OZLx6Pt$=(#6Y(dUZC@W@s5xHo&X6`H=Ihu)_QI|r{gSv}RFDyfcHR}1;B zVywg!(_ybnX%c7436ygw6U4;GkyeNgMR>6^lrgr8q+zhI7H9e=pVN{1v9kB|WfB5RnO!q;&i{Hf_;ZNhB0xcB>M1}iY_Yo}k89jw0h3lK|% z)jBB=uhIb$s*LFVl+Hl4Pc;O=3FzjN&RZQWenX=1sriFLyE~@c z@^7fcQT@eT&a6z^kwXnf%bb@B>oROZ2Z2XY*GL{MBP&yG_JI4fJCsx`h%9noD(%AB zdKGh7(@gW`=?>Vi^|sZ2)RLtNgC=ip1J^is{0sNNJ>6NOwy&3~Y>RKL z)nnHlW*2wniPndcAAi_@6$s24NdEoQxzFhBcWq0(&o}bxopeBi9(`;CW7t!r4*FcE zwgeuP4ke{@jw<6$nr;IFZZ!)JUbuZ_C*4zT2}G>6-`-683>=Mk-g61I^?j;+?ol?K z#7V7<*->ZGZahwv54plxCx{@HT90y}YB;wIN3rawrH{j4k*h^6&O|+PkD!h(+N%oB zKA&0Fl@q8EvXIqSpQN04I|N87gyj}QMA{DyHRY~gD4R2xoy3xrD50-22+ozkn_WIU zyg=hTr}@@5Qpq3foNic`w;OwVP2&?y(T{h^@fpTO2~-i&W79Wem^gas>DEd z7+l1(7g_&e>ZHpI&Q|YpxT&c> zFFX4t9=x-q+?kIdT1q?7@e01*Go{|K(X8pQl}fEirs~-=c6`rlJ!Bbt^Lg43*Mot=sOURw*8`4BXNgA5-KIzWe8No#kwWisLR;R zV!CRK7Is%X{Ja$A8iF!w{tmSEIqK3QmUza{xG$D>sp};n?x}Srbd2+S#?0m$+HeBg z*DnhJEgoC6Bvles2tJlBRvThmL#vyAEdXeRo3OD{_uRmJ!rl=(R?^392SD4O!i!Xs z-A3?#qcf0R*gS3U13bWel%xrd+hM|%u6XYuQtz4ZQLoR*u?#dh47n-M4T3H67M_-a zuImps+drtcrH(%?<7Tdslp1J?l-|~LghHt{tbi!ds63C=SQv zEdk8vNzMQc^ z0BdH2czdR4sea*V1GTAYu?yM*LD^ZxHQA--)dl{sU+-C}Q?$P8X$T3mS-Rg_>#Z-% zYPctte4l?*L3V-uFEt3Hdc;ZDsWDPpZv<~1JnRNvKYZ71yx&Ut7f1#Z1aH>Ar8f6# zZP?AlG5R==X;p*ADBdhrdl zIv-6Z7g$5BK|YBS*4I*-VTfRWdJA?B<|YvuEj71=o?g%lYHwsd+qgK?0C_`NJ~gk2 zCo7^Q`x;!7Z6lx>A56mbHU%2p$P{oF(;FoV2S>%zntpJrMXj8owLwg zcA?3MC|z}fC2YMDwV%7Yb=AqY9z26Bu0vOFhPgm=3X6-~3aVQl z^8EGT9f84vg2>BhfrFU6An_U1zMRK88ZB`VBr7?exh(fs8a>=~Cid7`M`>xtQ&VJyn5!8L z&PH^fmfAY?@S=qv2K4%Na+A$Q4>M28>)OI0-|r_&eZj-6W8g5Cg2k4h=53?ixW&gY z_gWj7x?~#mWXT=UB{gW`&8LE_szcr&_epi^Ub|{Hv6iQgSL3IPGZ2A?Xj~!?j}dD` zG`9^YwBO|>0m!9H*M5&9)eHc=NjP>7pdqw>Dfr&}1RJmvYzVgFKi;(vmXH~W7DCeK zxee;%>*lRvc_65sp0)Z7^O>h>_;sJAQNguAT*qiSL&a{jeR(2J|QY8pIF+tw0Y~Nr|Bec zKfN1eWpBV4`&f-|9S=xmH#>TBhdEtDEZ^!E(-~8l&3>IQ)cpYr*yde133E4YV;W@E zADwpXB8ci4=CZ5WyM#Bkh%g}x{foTZ~Uxy(1< zskYQ@GB|(jEd3?AqA%XF|Id5qiIJIKE&LE*XU0cY;fNYOed2UV5}5b4WgliX zo;S*J`@yvK^&hg9MrU*Sxos_3G$9bD<|qU=dmXG?(TOwSU-NK2_17E5(P+@i$`J;? zP`7{oUfPvNce6LIZCEWgP~D`)pt<@(G%lOpl7zoWi6w_ck#&}`=;t!d*dw_5?MiY@ z>T}C-Zy#CwBDVbT-7(F^nR}}LHb9{W&+|El2b30#3ez$D44#e-YRI4X@Y z8xe!BiV=Dra+2}woO**aagGhX4DQKbP<*vnhhRLU@jv`)8D&!rwQe|CwY;ar@*P1(iuo z%P1p7bOuc^*VQt$sZ5y_R1`Ylib9&bI?-xYbPPQZ;9+(;oun`mL8L=jqRB;!gvep? zkN*~OH~VNx7~nWDNQm^ajZO^Up;Of-5#x1pUCacgnIOW>5NR?`3n z^hfV>_uo$69~|!NR%Gcey{!>H^JZzAz60NJbj<&poc^@WKhWvc@$S~ryIw3_mSPwd z3mA_}#1z8e@}~{^h2g2BCtA66tzLo!=O`m~2BPr1hA#hkTic2u{j`a8>~{YUj!KB6 z1+h2+NXx+&rrhaozs+q4kgHldGnmCNHF#9wk4IrY`jPH)XNCs14j(cN{jg*1)zV+r zALo-W5i`q^McwVir+>Zwcoi?6{`JAqa_uwBpFVAVNYClZb@SzYk9llzNOz?DTzf9g z)wbx+%D8x%gluSHM>n zkzsvq8`NE(gnW0Z*6(>LO~9A|1cHm+tH2`h`5nwc=TcWT*eU2I9J^KAgIMaoV=lIbfDHx`E5;16a_|NR%!Lp!pZWG!-T}x}tS) zc-sKzx?ucUWJ}uJG8ZJH=YI^e@Z6uwf)*W9Vdf%>hUVt5UK5SJs7fifVg%>YE{`_z z&|G=+V|5ffdnnf0VXY2lB(yc=LeF|yf|)ih!zCCD6ystOmkdDp2iTO-vh%2@pi2Jc z-Q)H>dEmeuD@;2bd9GU_e=OCpvNW+KXGx{9&r(-RVC~&I+jhTK#3PNbSTg<`zvdtLagTWQggE#pDmdneSj=C4`MCP)4gLT0V{bx? zQrFpdY%Q35u6wieH}Jii!Q(K%W%F2CqnNL|+}YXWUJAZh3om^@ zH@XYu$EK?ZsnjMdsDrPLK|9h2JgJMXogoxC)jcc%w|6G>qBF?xx8FFZnGnQet>)U= zWi{c7y`0m{fnB5JSgvyE`z6*y)>La)@mIt_{|yF-S{G(g>+^MF+C}Z-=9P66P=po! zesXxwp--I~2i=oDJDi!iht^Cv+}Pli;QIi7n%oQ<0f)M-%^=0?v^5Bfm+8K71aKV0 zI=|MOQ*QL_F;@xMpv&s^x?JT=+o#2*f6sM!-P(*MCh3?LYu3^5v94B2Y+6_U$g#MkY3TJWF0c=pp=o`sx!$4Yv436s=99qcXcZ3mfO7v^B#xeVJK ziGK^}zcYcJOP=paoIj5=e1}bIU6@B2?@DiHQd_@6kJ5e~o&5u;>>om7 zKhB^M%MIJ-91{CawPSMDZ%rZ8LovG)(T8WzsHrlTr91cfux7LxJ3VR6=ofUClnX4ueEf7?A^zV+;GONT|2?Xh#r$tJr&D9t&Q&&UrtrO-7#*(tb z>`KSoB3A{OWxmT>&gD%5dC}`@NV3DWA~IB79_=2#+B-SfJ3M&5vwN_&yR*@*j9n^6 zy(~Is_!-52skTWRHafSuXsC+MU4rAXW%EbZbbWR=jP~EzS^I41%{Y2T;IQ}x9;l|L z9#h}EXLv#QqIQGU7KSH8lXr`PqdxvA$i`Si;$-@2d$)&R3rpkJ^N+|6icwn%CC+{H z^y{@~Y@gDY`^p$7)I1I`tIxXhu@uj_h|Tac=qkrj~;y6>qF6QuLREPDtb@cPF`CG zth>eZeUuPH^D>vR@Y;T9&f-1d!rrToj(tlM=6#vqSl(+47a2XXB z8It}Z_L;aTv3i3CmtVgHXXS`ZQAs(Ln8dOeAlw=peu4(n*LlL3O!=3o?1G*N zh>ub>{6~@|(UOgwlBhmF4Tq`I5nS;|*gW0=XB*50$ZkzCVkN=rvDrg5Wk~a-$s;Y8 zw->sDG!QW*2HAIR!Kl#}BzsZzR){(PRacl;v1*aV84IgJ|V6MLX{_WS+e%Pp=yMM z!|ca4D#&k)c=ng?wznVd?)ooJkmVUP;r^Xv2XkkMH0-TEqRXe$@z;gLW5Uym8^Pl7 z+j4C!`VOZTXN%p1#n*|v*h-Re6!D|&vcQw=6o{4|5Zad~lUSY{0jtTQk$!c;v=@0r z@ca}GV7Uy2=X8RJv^yXKXix-N9;D?}6qeO9YIAsrH}qc&jyyc0+7y3aY#4;`Am=wk zxj0pRNwh9PgJ(oO@a9Dp=J|&6malu{uU5Fmq$WJ}zXGEhS$;yIv zM`b_a?K~*QXI!YtyrBoOGg(?N6NOeg5rQhXg4RG!dnX%{n_?pEuR$e^} z*6maJSv|gAJ-+Weeo#Gr;5`1idi=HX_+j<hU+`F#$KvZ#P*f7%o5}oR>0B z_iZ&@yuROfecyfkpz->F`}*s~>#yC{4;!x^y05=!yyj&cWy+cs5o4AkMFlJRv_cF! z@s)u3m3}A91qBelCU|oY2_nrxc4+1{<_|$(;PrkkQ$@6Kb+7gkgR^!CJ>W{)_Pp!( zm0L6|8Kkb^97<#nE}}5xKz-5+RMnM>e=k~{MZ&TUkS)q-FKJ-m7hR<1NGHOMrs8BA zq{AVD{ysQeWP)Cqgdi1p5amc)9Agv|K98gpUGR1hol@&j6en*Nd%=E`t6)|_G{{os zZAT;7ReFR}zk~&%B$nGDyUw2a#IgTeE-6kU{+W<_aFtR&1N}NA`a_KOFZ7a5Pbb|I z%#jG*I7;DSo113=0wv{!g|sv9ASNMuWbrr&jeIB^YRa3>ct%TKiU^=5N_={TbdtbE z4T4D98fj~gy<;YOuNjE4bYi>Ws;5lO2tDNPXF=SLnUYPwT{GCp7(|Q|g##=UDrjda zvfvN|LDsDD(OH|lqi2G3x#FHs7yiX?p7#aNbET&z#JtHww>?t1&xyIVMw5$BMx`GC z2tnR2r7vmmf~28KA=^>Et-&$U_%a`p0;>EbuQ@AOeU$J+y+xxFw~2(3_If?xIEXCa zH%MMMj)Y$s^Bv^PrvLJ9<58~3ui+7nig*PlbC-As&g_C*wNrhO!~F$h6ajf5vM?bq z5Bby(OpVImnFJT)eG=GmxnN5))_|xswHXt6>`NLph6nVD!aF6wIzI$YBo8rEIzHnc z@Fy?0_HE3`+Xhj2vm$?x$n1`&L{!}5%OnrsB`<+ol9C(PfHQC5$2IOZYM&|LZ|6K1Z+YI(8H0CF93r{TAH!K7n$$P@C-|$+Z}VhBBG*jbN?Q* zJSH>)KYz|0KFC60nD8{D=`ja^0+@u6zz~#lqXm(kOrkzYv_e=XBmpCh9Q-!_&9it! zI}zj)nH#k(ZxkSiU(5*G^c{>IJdrCz@03{rFScq@C&@8J zHxb%lseL69`>O9^2*7VkO0-j*_3jOGN#;|Xr+6YA#r;cR4^Jv21nz_z6Y!Ue1sDSz zsQ3J$NEq1}3c-$`{OpHu=e8)~8TQ!@TbBt0wQdJ4QqUVxVOSXwd(TAM%-h zokY2=<5g6IoJ$v(%XU;+2#&1r2A{t&;?022s{yAV;uNlvEY`P%s0@6mgLoJ@A7*Co znNA*K!gP5N?#Um6 z+u<*z^)jCbuqV0){%r4l*C0ToGxmDrZ`yi&jxx90tEW0_?fy8TP0jHC_1?X2+lDz3 zji=tsw+yTNIQ=4or_wI=Fp+ZWU#lH}+pag_6 z+WX*>f(!e?!|@Styyf{^V0pXh;daaE?J@5*n2A7e$wo`IxsV!FQYe8TNjgdp&zGxQ zZT@1E4<{Y)Ho$wdT+<9MqU=f~O!p-)zQnmPUY8Xp3dKW48CTH7Fypg@pRTH8DyUO_ zKtlth+@~GPC!tJzmw)lKztWer&2DR2ZMmp*Q1_bY5&bGN_a3(%K+Co(gxTNrIE*f1 zKZevaknPU}mrG)KsNBK+5=V{PiGtikE(@TwT%p;9vCPVR)7sc+_k0vj?1qe{a$!mK z&ywa|aocJ~T3Y+twd(=qD+7uSWXZ}kQv^#Nnux{+KorTKi;f2PDG~!eOoi5{)bWdb zxlOPoOEv-qv124u$&3dET=m^yh9tqExe4x{EL?$|NR(XdmqZ|7@N~eB__v7=%B>-S zrc`a2&?U%KnJK@ciX$2!b2;~T5JLlbQ)7i*gyV52Ob&i9py4nC#JCK*2vaD(#Y4k{ zXhf`Mp-5eFIu4jZTmE(xHk}5n%Bzb=;d;kwx#Pd|_{)7FK26l~szNxf_;9#Z5Q}4}Am-%lYG~BT)n}|!hTJ}Mz84_mf`n$}y9uDc&ZQCn zb1VKa0>B3A?DwgiPFK_`h{Z*iXlQ#Cr8uOiBAnDVlDOs9$NMZXv38S4Y92-7T$5sx z#E-h^Bbax=mGy|z^~5VwRg&VPl1c*Fl~Ivys3Y0;A|+x7s|I1w3p!zCh-ttv43O2v z0!fC#1qKK;h)2EP2i$~TME(jt&^4EBnrJU5He$zCIssiO(AxKRT`56OmI#%-ynUq{ zNBwq{1g77&RslO1Ji6OLtD)PLx-Yh0k9r6|<<7-NCaJWQKG7R_kT$Mp>qj-NV$SDm zN}hkkRd0`WtQq1Xfy06kW-Zqdgw@OTwm9(F?O(B7dy;Zu-HuQm`e50hZAg+3F6@MY z4$f8y@p5(JIKKg%E7TDXf|1etdc)qlUkDTgT@09vCrT;K#a%4u$1B8n%D(vr)3mEX>yiD;iZ%w@;Ddp#0n=clgi9#wcMUJC@fh_pD2Bmb)l*r zfu(~&Sj)o?Bju;zK;WvM#V;UMT66?I1Iyr$#7orJs4M7d)PxNqNbrCvA_$Tci2!;m zpPZUbHbZM?ezWg`bF-5ux-oRp$JXGuqrm2*EvLt{jm$Qio#KLSdp_=5bQgmpyE0+kuVecVWPIe zewt;XMGg=hp-E9x4ZFwne|d%cE2|!QM-x|XpL69lrnvOWXb6CYcVZqU%!J2L1POz! zyhscqt7wiL1KNaUei5?X;FKL;CZ6i%XoiNy`D{lDNZAoi%87tD@U_!!JCa4>UsdZK z3tzBrj3sox%5kDM4Q#0S?oP9c_z0@rUqu;Qe&~T1AxmX#`AoH)p63YaK%L)Cd?nUC zuQT1pjEylvbC7kK!HRn#cWQBVKH|E3^S)8a_9%DuG?V>ttkKr4L|b?FO|f5Xmxbw6 z90~lla3r&@CvokyphJHL6eF5u)zYiRcIAz>-ja2%`V0c|_P8&g(b#4Ea`r~s58Jl7 zZ$Z!5?Y;wr=_q#qQw7lL+`=zEVXqRw2?Tp0VZ4ltUiM{Z^@|MDxj2*5WNVn^vK0Y6 z1yH#H#CpwWokT9EqADF>JFCG^D$e&2^mU~$n$&&O1HZ7E-)-Mtp%Uhf%_4TJI+`d+fyqV*N4!B0h?eW@0)SMgvV zXy{c;tX?VViK0ly;ws`=<@-KDBBmsA?91koajgTfe&NOl4{6R@5LR28z7HpjeX_So zCR4X=%e)8b;FC>MQJd=F91+c|G%r%eKri)3%?Hr5HncGX)8xWxTWZ9BI8eD6Bcp>k z)epq#dLeJevMlpXwHW40E15QDRaQ*XGn;$7rQK4PDJFZAMJqH&BFHPJbJVFH5iJIp zBPL6hV1-pQYW6v)w^wChVP#Y8O}49c_=b}_lV zpl8-Gz`36}Kdu_ZiDoi!jA4yW`Zcqd{YX#}A{SXlrgqXZwHB!L1Mg8bLG-q;rvw{D zVN3r6*3^PO%ty~-xn$327V4A)l?OvH{Tn%|l{%b>qnNPEKcunaDpYw2*-f<@sT@kG zSoqKyFOFb=mPBp31kk~9qyw_aRabM2Vv7u!Tg37Af+L95!Pfri%Jc6eD_NA3-sAN( zN$MqL4EL41xKQ)We@O{&MD>C}NPOLzOiDz><0{a?_A|0jCfX0#*bqh(et+r%k zU`V2DYj!huS4K_;hoq+L6k?(F!!^Ubqi2-SAtfT8*IAU)LKw3f?#udP(S4O-%BkY6;9Fi=y?$V*Z0L*gTK{8N)J^C+~vA8v;q6{ zED=tzur_4olLWNJXNv0Nr{MCfEK`>Axmfld!55L$y8zQ2sR86@{!#jyQQ%0u7(>H= z4v^CYg;<5H(oq6=j0Sz(m}Zj*@)2)*nWZZ;+u<#D1Wu^&mY%XJ!2>4k{jB^YinFxY zOkbeU5aV2MhS7ebp*+QZdF9^{Uc)z|I13wXM|!$rxYyNR;$iGwV2IMqKKLnKPog|3 zn(yT?8f3%~MveDi6h)%HZrPn{F|ioF<6_)gs66MDoJT~w6Iyzb5IFFAZ%c;sB0kqmOWU@L z&-uJ0hKAs_{$8J>Nm#;?+T0a=jwTn`^eTy)^VR1JbPb)~ zTWXv&53!Wz+(z5eQHDkHdf=&mHQ3UYIjU-PN(9|9t=uF|I1%eO3Vsr^%d`yVv?;@u zMqN0}UI551@gFV>9>&+=IavF;8@xoDf5CsEA~=e!mEWiDBYU1D09OPiShU zvY(1Ca#VAV+IC4_uDHC_TdLB5GEuc1-9k>=`(*YvN|p4T5Qs%najOzpM`;Gi%#WnH z`T>X5ixG{UmN&uQ2$2=a%8_^}I^CU2O=brK-dT+I)bNbpJWs8U(^XtdjhEAvYxX_O z!Ye{p=;#Rg-&{ETDSHL~4F;Ibw!wfF*9&~EMk$UxA z5dT33ni+Llo|a?UD`i*U6J3rBN1@}8;K`}Xjmy;#lCVEQ2zfMU_*!9%s!P$2s{}00 zv;!lOi|46wc^}l?EmrpY8hUc^DrUb|$I33UJD{~o%C$p$q zj>=3y@`sqNkeCm`t7+gi3{o{P$j#aT@@XHF7VG-7a7%9vwFa;bm1BRfaXJ-@qc7`I zbQ;8iguNua?~_uZTz-n+GtBWgVJR5+FoWlaWt(`fy(bcqBNH57I9(Bz)ETW zV)F^wSVD0EYsc!G%cw(4^45Pil2C+6i)SS}EkIxkh)9mobJuHur7|Y_F`SNh=JL~! zGZthSf#@%AlwQzRBho8$m6f5Vtdxi->l)+!$?OdnA$Fw{IHe^_2^&x|?>?W!LMz2> zTyUZO#^uf{&j;)H(CQ$4t8;YCGr7er+2RIAY38{C^EXWbWL|cZy~R87{0-sj>ANHxSVZ#S>x187KisY~`qmY?rq*?Bfw1jaeeEKb-~9uk!a4H^iil@P z{7c4J;z*#zY3E#LqaQuX(#t5}Gu`8aSALm|@p*3;UP&sf9;%ouae|PxvDymO -1; + }; + var exists = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + return true; + } + } + return false; + }; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i); + } + }; + var eachr = function (xs, f) { + for (var i = xs.length - 1; i >= 0; i--) { + var x = xs[i]; + f(x, i); + } + }; + var partition = function (xs, pred) { + var pass = []; + var fail = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + var arr = pred(x, i) ? pass : fail; + arr.push(x); + } + return { + pass: pass, + fail: fail + }; + }; + var filter = function (xs, pred) { + var r = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + var foldr = function (xs, f, acc) { + eachr(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var foldl = function (xs, f, acc) { + each(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var find = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + return Option.some(x); + } + } + return Option.none(); + }; + var findIndex = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + return Option.some(i); + } + } + return Option.none(); + }; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + return flatten(map(xs, f)); + }; + var forall = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; ++i) { + var x = xs[i]; + if (pred(x, i) !== true) { + return false; + } + } + return true; + }; + var reverse = function (xs) { + var r = nativeSlice.call(xs, 0); + r.reverse(); + return r; + }; + var difference = function (a1, a2) { + return filter(a1, function (x) { + return !contains(a2, x); + }); + }; + var mapToObject = function (xs, f) { + var r = {}; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + r[String(x)] = f(x, i); + } + return r; + }; + var sort = function (xs, comparator) { + var copy = nativeSlice.call(xs, 0); + copy.sort(comparator); + return copy; + }; + var head = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[0]); + }; + var last = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); + }; + var from$1 = isFunction(Array.from) ? Array.from : function (x) { + return nativeSlice.call(x); + }; + + var keys = Object.keys; + var hasOwnProperty = Object.hasOwnProperty; + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i); + } + }; + var map$1 = function (obj, f) { + return tupleMap(obj, function (x, i) { + return { + k: i, + v: f(x, i) + }; + }); + }; + var tupleMap = function (obj, f) { + var r = {}; + each$1(obj, function (x, i) { + var tuple = f(x, i); + r[tuple.k] = tuple.v; + }); + return r; + }; + var objAcc = function (r) { + return function (x, i) { + r[i] = x; + }; + }; + var internalFilter = function (obj, pred, onTrue, onFalse) { + var r = {}; + each$1(obj, function (x, i) { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + return r; + }; + var bifilter = function (obj, pred) { + var t = {}; + var f = {}; + internalFilter(obj, pred, objAcc(t), objAcc(f)); + return { + t: t, + f: f + }; + }; + var filter$1 = function (obj, pred) { + var t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + var get = function (obj, key) { + return has(obj, key) ? Option.from(obj[key]) : Option.none(); + }; + var has = function (obj, key) { + return hasOwnProperty.call(obj, key); + }; + + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + function __rest(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === 'function') + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + } + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + + var fromHtml = function (html, scope) { + var doc = scope || domGlobals.document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + var clone = function () { + return Cell(get()); + }; + return { + get: get, + set: set, + clone: clone + }; + }; + + var firstMatch = function (regexes, s) { + for (var i = 0; i < regexes.length; i++) { + var x = regexes[i]; + if (x.test(s)) { + return x; + } + } + return undefined; + }; + var find$1 = function (regexes, agent) { + var r = firstMatch(regexes, agent); + if (!r) { + return { + major: 0, + minor: 0 + }; + } + var group = function (i) { + return Number(agent.replace(r, '$' + i)); + }; + return nu(group(1), group(2)); + }; + var detect = function (versionRegexes, agent) { + var cleanedAgent = String(agent).toLowerCase(); + if (versionRegexes.length === 0) { + return unknown(); + } + return find$1(versionRegexes, cleanedAgent); + }; + var unknown = function () { + return nu(0, 0); + }; + var nu = function (major, minor) { + return { + major: major, + minor: minor + }; + }; + var Version = { + nu: nu, + detect: detect, + unknown: unknown + }; + + var edge = 'Edge'; + var chrome = 'Chrome'; + var ie = 'IE'; + var opera = 'Opera'; + var firefox = 'Firefox'; + var safari = 'Safari'; + var isBrowser = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$1 = function () { + return nu$1({ + current: undefined, + version: Version.unknown() + }); + }; + var nu$1 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isEdge: isBrowser(edge, current), + isChrome: isBrowser(chrome, current), + isIE: isBrowser(ie, current), + isOpera: isBrowser(opera, current), + isFirefox: isBrowser(firefox, current), + isSafari: isBrowser(safari, current) + }; + }; + var Browser = { + unknown: unknown$1, + nu: nu$1, + edge: constant(edge), + chrome: constant(chrome), + ie: constant(ie), + opera: constant(opera), + firefox: constant(firefox), + safari: constant(safari) + }; + + var windows = 'Windows'; + var ios = 'iOS'; + var android = 'Android'; + var linux = 'Linux'; + var osx = 'OSX'; + var solaris = 'Solaris'; + var freebsd = 'FreeBSD'; + var chromeos = 'ChromeOS'; + var isOS = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$2 = function () { + return nu$2({ + current: undefined, + version: Version.unknown() + }); + }; + var nu$2 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isWindows: isOS(windows, current), + isiOS: isOS(ios, current), + isAndroid: isOS(android, current), + isOSX: isOS(osx, current), + isLinux: isOS(linux, current), + isSolaris: isOS(solaris, current), + isFreeBSD: isOS(freebsd, current), + isChromeOS: isOS(chromeos, current) + }; + }; + var OperatingSystem = { + unknown: unknown$2, + nu: nu$2, + windows: constant(windows), + ios: constant(ios), + android: constant(android), + linux: constant(linux), + osx: constant(osx), + solaris: constant(solaris), + freebsd: constant(freebsd), + chromeos: constant(chromeos) + }; + + var DeviceType = function (os, browser, userAgent, mediaMatch) { + var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; + var isiPhone = os.isiOS() && !isiPad; + var isMobile = os.isiOS() || os.isAndroid(); + var isTouch = isMobile || mediaMatch('(pointer:coarse)'); + var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)'); + var isPhone = isiPhone || isMobile && !isTablet; + var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; + var isDesktop = !isPhone && !isTablet && !iOSwebview; + return { + isiPad: constant(isiPad), + isiPhone: constant(isiPhone), + isTablet: constant(isTablet), + isPhone: constant(isPhone), + isTouch: constant(isTouch), + isAndroid: os.isAndroid, + isiOS: os.isiOS, + isWebView: constant(iOSwebview), + isDesktop: constant(isDesktop) + }; + }; + + var detect$1 = function (candidates, userAgent) { + var agent = String(userAgent).toLowerCase(); + return find(candidates, function (candidate) { + return candidate.search(agent); + }); + }; + var detectBrowser = function (browsers, userAgent) { + return detect$1(browsers, userAgent).map(function (browser) { + var version = Version.detect(browser.versionRegexes, userAgent); + return { + current: browser.name, + version: version + }; + }); + }; + var detectOs = function (oses, userAgent) { + return detect$1(oses, userAgent).map(function (os) { + var version = Version.detect(os.versionRegexes, userAgent); + return { + current: os.name, + version: version + }; + }); + }; + var UaString = { + detectBrowser: detectBrowser, + detectOs: detectOs + }; + + var checkRange = function (str, substr, start) { + if (substr === '') { + return true; + } + if (str.length < substr.length) { + return false; + } + var x = str.substr(start, start + substr.length); + return x === substr; + }; + var contains$1 = function (str, substr) { + return str.indexOf(substr) !== -1; + }; + var startsWith = function (str, prefix) { + return checkRange(str, prefix, 0); + }; + var trim = function (str) { + return str.replace(/^\s+|\s+$/g, ''); + }; + var lTrim = function (str) { + return str.replace(/^\s+/g, ''); + }; + var rTrim = function (str) { + return str.replace(/\s+$/g, ''); + }; + + var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; + var checkContains = function (target) { + return function (uastring) { + return contains$1(uastring, target); + }; + }; + var browsers = [ + { + name: 'Edge', + versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], + search: function (uastring) { + return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit'); + } + }, + { + name: 'Chrome', + versionRegexes: [ + /.*?chrome\/([0-9]+)\.([0-9]+).*/, + normalVersionRegex + ], + search: function (uastring) { + return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe'); + } + }, + { + name: 'IE', + versionRegexes: [ + /.*?msie\ ?([0-9]+)\.([0-9]+).*/, + /.*?rv:([0-9]+)\.([0-9]+).*/ + ], + search: function (uastring) { + return contains$1(uastring, 'msie') || contains$1(uastring, 'trident'); + } + }, + { + name: 'Opera', + versionRegexes: [ + normalVersionRegex, + /.*?opera\/([0-9]+)\.([0-9]+).*/ + ], + search: checkContains('opera') + }, + { + name: 'Firefox', + versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], + search: checkContains('firefox') + }, + { + name: 'Safari', + versionRegexes: [ + normalVersionRegex, + /.*?cpu os ([0-9]+)_([0-9]+).*/ + ], + search: function (uastring) { + return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit'); + } + } + ]; + var oses = [ + { + name: 'Windows', + search: checkContains('win'), + versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'iOS', + search: function (uastring) { + return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad'); + }, + versionRegexes: [ + /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, + /.*cpu os ([0-9]+)_([0-9]+).*/, + /.*cpu iphone os ([0-9]+)_([0-9]+).*/ + ] + }, + { + name: 'Android', + search: checkContains('android'), + versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'OSX', + search: checkContains('mac os x'), + versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] + }, + { + name: 'Linux', + search: checkContains('linux'), + versionRegexes: [] + }, + { + name: 'Solaris', + search: checkContains('sunos'), + versionRegexes: [] + }, + { + name: 'FreeBSD', + search: checkContains('freebsd'), + versionRegexes: [] + }, + { + name: 'ChromeOS', + search: checkContains('cros'), + versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] + } + ]; + var PlatformInfo = { + browsers: constant(browsers), + oses: constant(oses) + }; + + var detect$2 = function (userAgent, mediaMatch) { + var browsers = PlatformInfo.browsers(); + var oses = PlatformInfo.oses(); + var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu); + var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu); + var deviceType = DeviceType(os, browser, userAgent, mediaMatch); + return { + browser: browser, + os: os, + deviceType: deviceType + }; + }; + var PlatformDetection = { detect: detect$2 }; + + var mediaMatch = function (query) { + return domGlobals.window.matchMedia(query).matches; + }; + var platform = Cell(PlatformDetection.detect(domGlobals.navigator.userAgent, mediaMatch)); + var detect$3 = function () { + return platform.get(); + }; + + var Immutable = function () { + var fields = []; + for (var _i = 0; _i < arguments.length; _i++) { + fields[_i] = arguments[_i]; + } + return function () { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + if (fields.length !== values.length) { + throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments'); + } + var struct = {}; + each(fields, function (name, i) { + struct[name] = constant(values[i]); + }); + return struct; + }; + }; + + var toArray = function (target, f) { + var r = []; + var recurse = function (e) { + r.push(e); + return f(e); + }; + var cur = f(target); + do { + cur = cur.bind(recurse); + } while (cur.isSome()); + return r; + }; + var Recurse = { toArray: toArray }; + + var compareDocumentPosition = function (a, b, match) { + return (a.compareDocumentPosition(b) & match) !== 0; + }; + var documentPositionPreceding = function (a, b) { + return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_PRECEDING); + }; + var documentPositionContainedBy = function (a, b) { + return compareDocumentPosition(a, b, domGlobals.Node.DOCUMENT_POSITION_CONTAINED_BY); + }; + var Node = { + documentPositionPreceding: documentPositionPreceding, + documentPositionContainedBy: documentPositionContainedBy + }; + + var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE; + var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE; + var COMMENT = domGlobals.Node.COMMENT_NODE; + var DOCUMENT = domGlobals.Node.DOCUMENT_NODE; + var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE; + var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE; + var ELEMENT = domGlobals.Node.ELEMENT_NODE; + var TEXT = domGlobals.Node.TEXT_NODE; + var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE; + var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE; + var ENTITY = domGlobals.Node.ENTITY_NODE; + var NOTATION = domGlobals.Node.NOTATION_NODE; + + var ELEMENT$1 = ELEMENT; + var DOCUMENT$1 = DOCUMENT; + var is = function (element, selector) { + var dom = element.dom(); + if (dom.nodeType !== ELEMENT$1) { + return false; + } else { + var elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + var bypassSelector = function (dom) { + return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0; + }; + var all = function (selector, scope) { + var base = scope === undefined ? domGlobals.document : scope.dom(); + return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom); + }; + var one = function (selector, scope) { + var base = scope === undefined ? domGlobals.document : scope.dom(); + return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom); + }; + + var eq = function (e1, e2) { + return e1.dom() === e2.dom(); + }; + var regularContains = function (e1, e2) { + var d1 = e1.dom(); + var d2 = e2.dom(); + return d1 === d2 ? false : d1.contains(d2); + }; + var ieContains = function (e1, e2) { + return Node.documentPositionContainedBy(e1.dom(), e2.dom()); + }; + var browser = detect$3().browser; + var contains$2 = browser.isIE() ? ieContains : regularContains; + + var owner = function (element) { + return Element.fromDom(element.dom().ownerDocument); + }; + var documentElement = function (element) { + return Element.fromDom(element.dom().ownerDocument.documentElement); + }; + var defaultView = function (element) { + return Element.fromDom(element.dom().ownerDocument.defaultView); + }; + var parent = function (element) { + return Option.from(element.dom().parentNode).map(Element.fromDom); + }; + var parents = function (element, isRoot) { + var stop = isFunction(isRoot) ? isRoot : never; + var dom = element.dom(); + var ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + var rawParent = dom.parentNode; + var p = Element.fromDom(rawParent); + ret.push(p); + if (stop(p) === true) { + break; + } else { + dom = rawParent; + } + } + return ret; + }; + var prevSibling = function (element) { + return Option.from(element.dom().previousSibling).map(Element.fromDom); + }; + var nextSibling = function (element) { + return Option.from(element.dom().nextSibling).map(Element.fromDom); + }; + var prevSiblings = function (element) { + return reverse(Recurse.toArray(element, prevSibling)); + }; + var nextSiblings = function (element) { + return Recurse.toArray(element, nextSibling); + }; + var children = function (element) { + return map(element.dom().childNodes, Element.fromDom); + }; + var child = function (element, index) { + var cs = element.dom().childNodes; + return Option.from(cs[index]).map(Element.fromDom); + }; + var firstChild = function (element) { + return child(element, 0); + }; + var lastChild = function (element) { + return child(element, element.dom().childNodes.length - 1); + }; + var childNodesCount = function (element) { + return element.dom().childNodes.length; + }; + var spot = Immutable('element', 'offset'); + + var before = function (marker, element) { + var parent$1 = parent(marker); + parent$1.each(function (v) { + v.dom().insertBefore(element.dom(), marker.dom()); + }); + }; + var after = function (marker, element) { + var sibling = nextSibling(marker); + sibling.fold(function () { + var parent$1 = parent(marker); + parent$1.each(function (v) { + append(v, element); + }); + }, function (v) { + before(v, element); + }); + }; + var prepend = function (parent, element) { + var firstChild$1 = firstChild(parent); + firstChild$1.fold(function () { + append(parent, element); + }, function (v) { + parent.dom().insertBefore(element.dom(), v.dom()); + }); + }; + var append = function (parent, element) { + parent.dom().appendChild(element.dom()); + }; + var wrap = function (element, wrapper) { + before(element, wrapper); + append(wrapper, element); + }; + + var before$1 = function (marker, elements) { + each(elements, function (x) { + before(marker, x); + }); + }; + var append$1 = function (parent, elements) { + each(elements, function (x) { + append(parent, x); + }); + }; + + var empty = function (element) { + element.dom().textContent = ''; + each(children(element), function (rogue) { + remove(rogue); + }); + }; + var remove = function (element) { + var dom = element.dom(); + if (dom.parentNode !== null) { + dom.parentNode.removeChild(dom); + } + }; + var unwrap = function (wrapper) { + var children$1 = children(wrapper); + if (children$1.length > 0) { + before$1(wrapper, children$1); + } + remove(wrapper); + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var name = function (element) { + var r = element.dom().nodeName; + return r.toLowerCase(); + }; + var type = function (element) { + return element.dom().nodeType; + }; + var isType$1 = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isElement = isType$1(ELEMENT); + var isText = isType$1(TEXT); + + var inBody = function (element) { + var dom = isText(element) ? element.dom().parentNode : element.dom(); + return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom); + }; + + var r = function (left, top) { + var translate = function (x, y) { + return r(left + x, top + y); + }; + return { + left: constant(left), + top: constant(top), + translate: translate + }; + }; + var Position = r; + + var boxPosition = function (dom) { + var box = dom.getBoundingClientRect(); + return Position(box.left, box.top); + }; + var firstDefinedOrZero = function (a, b) { + return a !== undefined ? a : b !== undefined ? b : 0; + }; + var absolute = function (element) { + var doc = element.dom().ownerDocument; + var body = doc.body; + var win = doc.defaultView; + var html = doc.documentElement; + if (body === element.dom()) { + return Position(body.offsetLeft, body.offsetTop); + } + var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop); + var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft); + var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop); + var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft); + return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop); + }; + var viewport = function (element) { + var dom = element.dom(); + var doc = dom.ownerDocument; + var body = doc.body; + if (body === dom) { + return Position(body.offsetLeft, body.offsetTop); + } + if (!inBody(element)) { + return Position(0, 0); + } + return boxPosition(dom); + }; + + var isSafari = detect$3().browser.isSafari(); + var get$1 = function (_DOC) { + var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document; + var x = doc.body.scrollLeft || doc.documentElement.scrollLeft; + var y = doc.body.scrollTop || doc.documentElement.scrollTop; + return Position(x, y); + }; + var to = function (x, y, _DOC) { + var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document; + var win = doc.defaultView; + win.scrollTo(x, y); + }; + var intoView = function (element, alignToTop) { + if (isSafari && isFunction(element.dom().scrollIntoViewIfNeeded)) { + element.dom().scrollIntoViewIfNeeded(false); + } else { + element.dom().scrollIntoView(alignToTop); + } + }; + + var get$2 = function (_win) { + var win = _win === undefined ? domGlobals.window : _win; + return Option.from(win['visualViewport']); + }; + var bounds = function (x, y, width, height) { + return { + x: constant(x), + y: constant(y), + width: constant(width), + height: constant(height), + right: constant(x + width), + bottom: constant(y + height) + }; + }; + var getBounds = function (_win) { + var win = _win === undefined ? domGlobals.window : _win; + var doc = win.document; + var scroll = get$1(Element.fromDom(doc)); + return get$2(win).fold(function () { + var html = win.document.documentElement; + var width = html.clientWidth; + var height = html.clientHeight; + return bounds(scroll.left(), scroll.top(), width, height); + }, function (visualViewport) { + return bounds(Math.max(visualViewport.pageLeft, scroll.left()), Math.max(visualViewport.pageTop, scroll.top()), visualViewport.width, visualViewport.height); + }); + }; + + var isNodeType = function (type) { + return function (node) { + return !!node && node.nodeType === type; + }; + }; + var isRestrictedNode = function (node) { + return !!node && !Object.getPrototypeOf(node); + }; + var isElement$1 = isNodeType(1); + var matchNodeNames = function (names) { + var lowercasedNames = names.map(function (s) { + return s.toLowerCase(); + }); + return function (node) { + if (node && node.nodeName) { + var nodeName = node.nodeName.toLowerCase(); + return contains(lowercasedNames, nodeName); + } + return false; + }; + }; + var matchStyleValues = function (name, values) { + var items = values.toLowerCase().split(' '); + return function (node) { + var i, cssValue; + if (isElement$1(node)) { + for (i = 0; i < items.length; i++) { + var computed = node.ownerDocument.defaultView.getComputedStyle(node, null); + cssValue = computed ? computed.getPropertyValue(name) : null; + if (cssValue === items[i]) { + return true; + } + } + } + return false; + }; + }; + var hasPropValue = function (propName, propValue) { + return function (node) { + return isElement$1(node) && node[propName] === propValue; + }; + }; + var hasAttribute = function (attrName, attrValue) { + return function (node) { + return isElement$1(node) && node.hasAttribute(attrName); + }; + }; + var hasAttributeValue = function (attrName, attrValue) { + return function (node) { + return isElement$1(node) && node.getAttribute(attrName) === attrValue; + }; + }; + var isBogus = function (node) { + return isElement$1(node) && node.hasAttribute('data-mce-bogus'); + }; + var isBogusAll = function (node) { + return isElement$1(node) && node.getAttribute('data-mce-bogus') === 'all'; + }; + var isTable = function (node) { + return isElement$1(node) && node.tagName === 'TABLE'; + }; + var hasContentEditableState = function (value) { + return function (node) { + if (isElement$1(node)) { + if (node.contentEditable === value) { + return true; + } + if (node.getAttribute('data-mce-contenteditable') === value) { + return true; + } + } + return false; + }; + }; + var isTextareaOrInput = matchNodeNames([ + 'textarea', + 'input' + ]); + var isText$1 = isNodeType(3); + var isComment = isNodeType(8); + var isDocument = isNodeType(9); + var isDocumentFragment = isNodeType(11); + var isBr = matchNodeNames(['br']); + var isContentEditableTrue = hasContentEditableState('true'); + var isContentEditableFalse = hasContentEditableState('false'); + var NodeType = { + isText: isText$1, + isElement: isElement$1, + isComment: isComment, + isDocument: isDocument, + isDocumentFragment: isDocumentFragment, + isBr: isBr, + isContentEditableTrue: isContentEditableTrue, + isContentEditableFalse: isContentEditableFalse, + isRestrictedNode: isRestrictedNode, + matchNodeNames: matchNodeNames, + hasPropValue: hasPropValue, + hasAttribute: hasAttribute, + hasAttributeValue: hasAttributeValue, + matchStyleValues: matchStyleValues, + isBogus: isBogus, + isBogusAll: isBogusAll, + isTable: isTable, + isTextareaOrInput: isTextareaOrInput + }; + + var isSupported = function (dom) { + return dom.style !== undefined && isFunction(dom.style.getPropertyValue); + }; + + var rawSet = function (dom, key, value) { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + var set = function (element, key, value) { + rawSet(element.dom(), key, value); + }; + var setAll = function (element, attrs) { + var dom = element.dom(); + each$1(attrs, function (v, k) { + rawSet(dom, k, v); + }); + }; + var get$3 = function (element, key) { + var v = element.dom().getAttribute(key); + return v === null ? undefined : v; + }; + var getOpt = function (element, key) { + return Option.from(get$3(element, key)); + }; + var has$1 = function (element, key) { + var dom = element.dom(); + return dom && dom.hasAttribute ? dom.hasAttribute(key) : false; + }; + var remove$1 = function (element, key) { + element.dom().removeAttribute(key); + }; + + var get$4 = function (element, property) { + var dom = element.dom(); + var styles = domGlobals.window.getComputedStyle(dom); + var r = styles.getPropertyValue(property); + var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + return v === null ? undefined : v; + }; + var getUnsafeProperty = function (dom, property) { + return isSupported(dom) ? dom.style.getPropertyValue(property) : ''; + }; + var getRaw = function (element, property) { + var dom = element.dom(); + var raw = getUnsafeProperty(dom, property); + return Option.from(raw).filter(function (r) { + return r.length > 0; + }); + }; + var getAllRaw = function (element) { + var css = {}; + var dom = element.dom(); + if (isSupported(dom)) { + for (var i = 0; i < dom.style.length; i++) { + var ruleName = dom.style.item(i); + css[ruleName] = dom.style[ruleName]; + } + } + return css; + }; + var reflow = function (e) { + return e.dom().offsetWidth; + }; + + var browser$1 = detect$3().browser; + var firstElement = function (nodes) { + return find(nodes, isElement); + }; + var getTableCaptionDeltaY = function (elm) { + if (browser$1.isFirefox() && name(elm) === 'table') { + return firstElement(children(elm)).filter(function (elm) { + return name(elm) === 'caption'; + }).bind(function (caption) { + return firstElement(nextSiblings(caption)).map(function (body) { + var bodyTop = body.dom().offsetTop; + var captionTop = caption.dom().offsetTop; + var captionHeight = caption.dom().offsetHeight; + return bodyTop <= captionTop ? -captionHeight : 0; + }); + }).getOr(0); + } else { + return 0; + } + }; + var hasChild = function (elm, child) { + return elm.children && contains(elm.children, child); + }; + var getPos = function (body, elm, rootElm) { + var x = 0, y = 0, offsetParent; + var doc = body.ownerDocument; + var pos; + rootElm = rootElm ? rootElm : body; + if (elm) { + if (rootElm === body && elm.getBoundingClientRect && get$4(Element.fromDom(body), 'position') === 'static') { + pos = elm.getBoundingClientRect(); + x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft; + y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop; + return { + x: x, + y: y + }; + } + offsetParent = elm; + while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) { + x += offsetParent.offsetLeft || 0; + y += offsetParent.offsetTop || 0; + offsetParent = offsetParent.offsetParent; + } + offsetParent = elm.parentNode; + while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) { + x -= offsetParent.scrollLeft || 0; + y -= offsetParent.scrollTop || 0; + offsetParent = offsetParent.parentNode; + } + y += getTableCaptionDeltaY(Element.fromDom(elm)); + } + return { + x: x, + y: y + }; + }; + var Position$1 = { getPos: getPos }; + + var exports$1 = {}, module$1 = { exports: exports$1 }; + (function (define, exports, module, require) { + (function (f) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + module.exports = f(); + } else if (typeof define === 'function' && define.amd) { + define([], f); + } else { + var g; + if (typeof window !== 'undefined') { + g = window; + } else if (typeof global !== 'undefined') { + g = global; + } else if (typeof self !== 'undefined') { + g = self; + } else { + g = this; + } + g.EphoxContactWrapper = f(); + } + }(function () { + return function () { + function r(e, n, t) { + function o(i, f) { + if (!n[i]) { + if (!e[i]) { + var c = 'function' == typeof require && require; + if (!f && c) + return c(i, !0); + if (u) + return u(i, !0); + var a = new Error('Cannot find module \'' + i + '\''); + throw a.code = 'MODULE_NOT_FOUND', a; + } + var p = n[i] = { exports: {} }; + e[i][0].call(p.exports, function (r) { + var n = e[i][1][r]; + return o(n || r); + }, p, p.exports, r, e, n, t); + } + return n[i].exports; + } + for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ + 1: [ + function (require, module, exports) { + var process = module.exports = {}; + var cachedSetTimeout; + var cachedClearTimeout; + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout() { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + }()); + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + return setTimeout(fun, 0); + } + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + return cachedSetTimeout(fun, 0); + } catch (e) { + try { + return cachedSetTimeout.call(null, fun, 0); + } catch (e) { + return cachedSetTimeout.call(this, fun, 0); + } + } + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + return clearTimeout(marker); + } + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + return cachedClearTimeout(marker); + } catch (e) { + try { + return cachedClearTimeout.call(null, marker); + } catch (e) { + return cachedClearTimeout.call(this, marker); + } + } + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; + process.versions = {}; + function noop() { + } + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + process.listeners = function (name) { + return []; + }; + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + process.cwd = function () { + return '/'; + }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function () { + return 0; + }; + }, + {} + ], + 2: [ + function (require, module, exports) { + (function (setImmediate) { + (function (root) { + var setTimeoutFunc = setTimeout; + function noop() { + } + function bind(fn, thisArg) { + return function () { + fn.apply(thisArg, arguments); + }; + } + function Promise(fn) { + if (typeof this !== 'object') + throw new TypeError('Promises must be constructed via new'); + if (typeof fn !== 'function') + throw new TypeError('not a function'); + this._state = 0; + this._handled = false; + this._value = undefined; + this._deferreds = []; + doResolve(fn, this); + } + function handle(self, deferred) { + while (self._state === 3) { + self = self._value; + } + if (self._state === 0) { + self._deferreds.push(deferred); + return; + } + self._handled = true; + Promise._immediateFn(function () { + var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected; + if (cb === null) { + (self._state === 1 ? resolve : reject)(deferred.promise, self._value); + return; + } + var ret; + try { + ret = cb(self._value); + } catch (e) { + reject(deferred.promise, e); + return; + } + resolve(deferred.promise, ret); + }); + } + function resolve(self, newValue) { + try { + if (newValue === self) + throw new TypeError('A promise cannot be resolved with itself.'); + if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { + var then = newValue.then; + if (newValue instanceof Promise) { + self._state = 3; + self._value = newValue; + finale(self); + return; + } else if (typeof then === 'function') { + doResolve(bind(then, newValue), self); + return; + } + } + self._state = 1; + self._value = newValue; + finale(self); + } catch (e) { + reject(self, e); + } + } + function reject(self, newValue) { + self._state = 2; + self._value = newValue; + finale(self); + } + function finale(self) { + if (self._state === 2 && self._deferreds.length === 0) { + Promise._immediateFn(function () { + if (!self._handled) { + Promise._unhandledRejectionFn(self._value); + } + }); + } + for (var i = 0, len = self._deferreds.length; i < len; i++) { + handle(self, self._deferreds[i]); + } + self._deferreds = null; + } + function Handler(onFulfilled, onRejected, promise) { + this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; + this.onRejected = typeof onRejected === 'function' ? onRejected : null; + this.promise = promise; + } + function doResolve(fn, self) { + var done = false; + try { + fn(function (value) { + if (done) + return; + done = true; + resolve(self, value); + }, function (reason) { + if (done) + return; + done = true; + reject(self, reason); + }); + } catch (ex) { + if (done) + return; + done = true; + reject(self, ex); + } + } + Promise.prototype['catch'] = function (onRejected) { + return this.then(null, onRejected); + }; + Promise.prototype.then = function (onFulfilled, onRejected) { + var prom = new this.constructor(noop); + handle(this, new Handler(onFulfilled, onRejected, prom)); + return prom; + }; + Promise.all = function (arr) { + var args = Array.prototype.slice.call(arr); + return new Promise(function (resolve, reject) { + if (args.length === 0) + return resolve([]); + var remaining = args.length; + function res(i, val) { + try { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call(val, function (val) { + res(i, val); + }, reject); + return; + } + } + args[i] = val; + if (--remaining === 0) { + resolve(args); + } + } catch (ex) { + reject(ex); + } + } + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + }; + Promise.resolve = function (value) { + if (value && typeof value === 'object' && value.constructor === Promise) { + return value; + } + return new Promise(function (resolve) { + resolve(value); + }); + }; + Promise.reject = function (value) { + return new Promise(function (resolve, reject) { + reject(value); + }); + }; + Promise.race = function (values) { + return new Promise(function (resolve, reject) { + for (var i = 0, len = values.length; i < len; i++) { + values[i].then(resolve, reject); + } + }); + }; + Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) { + setImmediate(fn); + } : function (fn) { + setTimeoutFunc(fn, 0); + }; + Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) { + if (typeof console !== 'undefined' && console) { + console.warn('Possible Unhandled Promise Rejection:', err); + } + }; + Promise._setImmediateFn = function _setImmediateFn(fn) { + Promise._immediateFn = fn; + }; + Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) { + Promise._unhandledRejectionFn = fn; + }; + if (typeof module !== 'undefined' && module.exports) { + module.exports = Promise; + } else if (!root.Promise) { + root.Promise = Promise; + } + }(this)); + }.call(this, require('timers').setImmediate)); + }, + { 'timers': 3 } + ], + 3: [ + function (require, module, exports) { + (function (setImmediate, clearImmediate) { + var nextTick = require('process/browser.js').nextTick; + var apply = Function.prototype.apply; + var slice = Array.prototype.slice; + var immediateIds = {}; + var nextImmediateId = 0; + exports.setTimeout = function () { + return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout); + }; + exports.setInterval = function () { + return new Timeout(apply.call(setInterval, window, arguments), clearInterval); + }; + exports.clearTimeout = exports.clearInterval = function (timeout) { + timeout.close(); + }; + function Timeout(id, clearFn) { + this._id = id; + this._clearFn = clearFn; + } + Timeout.prototype.unref = Timeout.prototype.ref = function () { + }; + Timeout.prototype.close = function () { + this._clearFn.call(window, this._id); + }; + exports.enroll = function (item, msecs) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = msecs; + }; + exports.unenroll = function (item) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = -1; + }; + exports._unrefActive = exports.active = function (item) { + clearTimeout(item._idleTimeoutId); + var msecs = item._idleTimeout; + if (msecs >= 0) { + item._idleTimeoutId = setTimeout(function onTimeout() { + if (item._onTimeout) + item._onTimeout(); + }, msecs); + } + }; + exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) { + var id = nextImmediateId++; + var args = arguments.length < 2 ? false : slice.call(arguments, 1); + immediateIds[id] = true; + nextTick(function onNextTick() { + if (immediateIds[id]) { + if (args) { + fn.apply(null, args); + } else { + fn.call(null); + } + exports.clearImmediate(id); + } + }); + return id; + }; + exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) { + delete immediateIds[id]; + }; + }.call(this, require('timers').setImmediate, require('timers').clearImmediate)); + }, + { + 'process/browser.js': 1, + 'timers': 3 + } + ], + 4: [ + function (require, module, exports) { + var promisePolyfill = require('promise-polyfill'); + var Global = function () { + if (typeof window !== 'undefined') { + return window; + } else { + return Function('return this;')(); + } + }(); + module.exports = { boltExport: Global.Promise || promisePolyfill }; + }, + { 'promise-polyfill': 2 } + ] + }, {}, [4])(4); + })); + }(undefined, exports$1, module$1, undefined)); + var Promise = module$1.exports.boltExport; + + var nu$3 = function (baseFn) { + var data = Option.none(); + var callbacks = []; + var map = function (f) { + return nu$3(function (nCallback) { + get(function (data) { + nCallback(f(data)); + }); + }); + }; + var get = function (nCallback) { + if (isReady()) { + call(nCallback); + } else { + callbacks.push(nCallback); + } + }; + var set = function (x) { + data = Option.some(x); + run(callbacks); + callbacks = []; + }; + var isReady = function () { + return data.isSome(); + }; + var run = function (cbs) { + each(cbs, call); + }; + var call = function (cb) { + data.each(function (x) { + domGlobals.setTimeout(function () { + cb(x); + }, 0); + }); + }; + baseFn(set); + return { + get: get, + map: map, + isReady: isReady + }; + }; + var pure = function (a) { + return nu$3(function (callback) { + callback(a); + }); + }; + var LazyValue = { + nu: nu$3, + pure: pure + }; + + var errorReporter = function (err) { + domGlobals.setTimeout(function () { + throw err; + }, 0); + }; + var make = function (run) { + var get = function (callback) { + run().then(callback, errorReporter); + }; + var map = function (fab) { + return make(function () { + return run().then(fab); + }); + }; + var bind = function (aFutureB) { + return make(function () { + return run().then(function (v) { + return aFutureB(v).toPromise(); + }); + }); + }; + var anonBind = function (futureB) { + return make(function () { + return run().then(function () { + return futureB.toPromise(); + }); + }); + }; + var toLazy = function () { + return LazyValue.nu(get); + }; + var toCached = function () { + var cache = null; + return make(function () { + if (cache === null) { + cache = run(); + } + return cache; + }); + }; + var toPromise = run; + return { + map: map, + bind: bind, + anonBind: anonBind, + toLazy: toLazy, + toCached: toCached, + toPromise: toPromise, + get: get + }; + }; + var nu$4 = function (baseFn) { + return make(function () { + return new Promise(baseFn); + }); + }; + var pure$1 = function (a) { + return make(function () { + return Promise.resolve(a); + }); + }; + var Future = { + nu: nu$4, + pure: pure$1 + }; + + var par = function (asyncValues, nu) { + return nu(function (callback) { + var r = []; + var count = 0; + var cb = function (i) { + return function (value) { + r[i] = value; + count++; + if (count >= asyncValues.length) { + callback(r); + } + }; + }; + if (asyncValues.length === 0) { + callback([]); + } else { + each(asyncValues, function (asyncValue, i) { + asyncValue.get(cb(i)); + }); + } + }); + }; + + var par$1 = function (futures) { + return par(futures, Future.nu); + }; + + var value = function (o) { + var is = function (v) { + return o === v; + }; + var or = function (opt) { + return value(o); + }; + var orThunk = function (f) { + return value(o); + }; + var map = function (f) { + return value(f(o)); + }; + var mapError = function (f) { + return value(o); + }; + var each = function (f) { + f(o); + }; + var bind = function (f) { + return f(o); + }; + var fold = function (_, onValue) { + return onValue(o); + }; + var exists = function (f) { + return f(o); + }; + var forall = function (f) { + return f(o); + }; + var toOption = function () { + return Option.some(o); + }; + return { + is: is, + isValue: always, + isError: never, + getOr: constant(o), + getOrThunk: constant(o), + getOrDie: constant(o), + or: or, + orThunk: orThunk, + fold: fold, + map: map, + mapError: mapError, + each: each, + bind: bind, + exists: exists, + forall: forall, + toOption: toOption + }; + }; + var error = function (message) { + var getOrThunk = function (f) { + return f(); + }; + var getOrDie = function () { + return die(String(message))(); + }; + var or = function (opt) { + return opt; + }; + var orThunk = function (f) { + return f(); + }; + var map = function (f) { + return error(message); + }; + var mapError = function (f) { + return error(f(message)); + }; + var bind = function (f) { + return error(message); + }; + var fold = function (onError, _) { + return onError(message); + }; + return { + is: never, + isValue: never, + isError: always, + getOr: identity, + getOrThunk: getOrThunk, + getOrDie: getOrDie, + or: or, + orThunk: orThunk, + fold: fold, + map: map, + mapError: mapError, + each: noop, + bind: bind, + exists: never, + forall: always, + toOption: Option.none + }; + }; + var fromOption = function (opt, err) { + return opt.fold(function () { + return error(err); + }, value); + }; + var Result = { + value: value, + error: error, + fromOption: fromOption + }; + + var promise = function () { + function bind(fn, thisArg) { + return function () { + fn.apply(thisArg, arguments); + }; + } + var isArray = Array.isArray || function (value) { + return Object.prototype.toString.call(value) === '[object Array]'; + }; + var Promise = function (fn) { + if (typeof this !== 'object') { + throw new TypeError('Promises must be constructed via new'); + } + if (typeof fn !== 'function') { + throw new TypeError('not a function'); + } + this._state = null; + this._value = null; + this._deferreds = []; + doResolve(fn, bind(resolve, this), bind(reject, this)); + }; + var asap = Promise.immediateFn || typeof domGlobals.setImmediate === 'function' && domGlobals.setImmediate || function (fn) { + domGlobals.setTimeout(fn, 1); + }; + function handle(deferred) { + var me = this; + if (this._state === null) { + this._deferreds.push(deferred); + return; + } + asap(function () { + var cb = me._state ? deferred.onFulfilled : deferred.onRejected; + if (cb === null) { + (me._state ? deferred.resolve : deferred.reject)(me._value); + return; + } + var ret; + try { + ret = cb(me._value); + } catch (e) { + deferred.reject(e); + return; + } + deferred.resolve(ret); + }); + } + function resolve(newValue) { + try { + if (newValue === this) { + throw new TypeError('A promise cannot be resolved with itself.'); + } + if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { + var then = newValue.then; + if (typeof then === 'function') { + doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this)); + return; + } + } + this._state = true; + this._value = newValue; + finale.call(this); + } catch (e) { + reject.call(this, e); + } + } + function reject(newValue) { + this._state = false; + this._value = newValue; + finale.call(this); + } + function finale() { + for (var i = 0, len = this._deferreds.length; i < len; i++) { + handle.call(this, this._deferreds[i]); + } + this._deferreds = null; + } + function Handler(onFulfilled, onRejected, resolve, reject) { + this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; + this.onRejected = typeof onRejected === 'function' ? onRejected : null; + this.resolve = resolve; + this.reject = reject; + } + function doResolve(fn, onFulfilled, onRejected) { + var done = false; + try { + fn(function (value) { + if (done) { + return; + } + done = true; + onFulfilled(value); + }, function (reason) { + if (done) { + return; + } + done = true; + onRejected(reason); + }); + } catch (ex) { + if (done) { + return; + } + done = true; + onRejected(ex); + } + } + Promise.prototype.catch = function (onRejected) { + return this.then(null, onRejected); + }; + Promise.prototype.then = function (onFulfilled, onRejected) { + var me = this; + return new Promise(function (resolve, reject) { + handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject)); + }); + }; + Promise.all = function () { + var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments); + return new Promise(function (resolve, reject) { + if (args.length === 0) { + return resolve([]); + } + var remaining = args.length; + function res(i, val) { + try { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call(val, function (val) { + res(i, val); + }, reject); + return; + } + } + args[i] = val; + if (--remaining === 0) { + resolve(args); + } + } catch (ex) { + reject(ex); + } + } + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + }; + Promise.resolve = function (value) { + if (value && typeof value === 'object' && value.constructor === Promise) { + return value; + } + return new Promise(function (resolve) { + resolve(value); + }); + }; + Promise.reject = function (value) { + return new Promise(function (resolve, reject) { + reject(value); + }); + }; + Promise.race = function (values) { + return new Promise(function (resolve, reject) { + for (var i = 0, len = values.length; i < len; i++) { + values[i].then(resolve, reject); + } + }); + }; + return Promise; + }; + var promiseObj = window.Promise ? window.Promise : promise(); + + var requestAnimationFramePromise; + var requestAnimationFrame = function (callback, element) { + var i, requestAnimationFrameFunc = domGlobals.window.requestAnimationFrame; + var vendors = [ + 'ms', + 'moz', + 'webkit' + ]; + var featurefill = function (callback) { + domGlobals.window.setTimeout(callback, 0); + }; + for (i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) { + requestAnimationFrameFunc = domGlobals.window[vendors[i] + 'RequestAnimationFrame']; + } + if (!requestAnimationFrameFunc) { + requestAnimationFrameFunc = featurefill; + } + requestAnimationFrameFunc(callback, element); + }; + var wrappedSetTimeout = function (callback, time) { + if (typeof time !== 'number') { + time = 0; + } + return domGlobals.setTimeout(callback, time); + }; + var wrappedSetInterval = function (callback, time) { + if (typeof time !== 'number') { + time = 1; + } + return domGlobals.setInterval(callback, time); + }; + var wrappedClearTimeout = function (id) { + return domGlobals.clearTimeout(id); + }; + var wrappedClearInterval = function (id) { + return domGlobals.clearInterval(id); + }; + var debounce = function (callback, time) { + var timer, func; + func = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + domGlobals.clearTimeout(timer); + timer = wrappedSetTimeout(function () { + callback.apply(this, args); + }, time); + }; + func.stop = function () { + domGlobals.clearTimeout(timer); + }; + return func; + }; + var Delay = { + requestAnimationFrame: function (callback, element) { + if (requestAnimationFramePromise) { + requestAnimationFramePromise.then(callback); + return; + } + requestAnimationFramePromise = new promiseObj(function (resolve) { + if (!element) { + element = domGlobals.document.body; + } + requestAnimationFrame(resolve, element); + }).then(callback); + }, + setTimeout: wrappedSetTimeout, + setInterval: wrappedSetInterval, + setEditorTimeout: function (editor, callback, time) { + return wrappedSetTimeout(function () { + if (!editor.removed) { + callback(); + } + }, time); + }, + setEditorInterval: function (editor, callback, time) { + var timer; + timer = wrappedSetInterval(function () { + if (!editor.removed) { + callback(); + } else { + domGlobals.clearInterval(timer); + } + }, time); + return timer; + }, + debounce: debounce, + throttle: debounce, + clearInterval: wrappedClearInterval, + clearTimeout: wrappedClearTimeout + }; + + var userAgent = domGlobals.navigator.userAgent; + var platform$1 = detect$3(); + var browser$2 = platform$1.browser; + var os = platform$1.os; + var deviceType = platform$1.deviceType; + var webkit = /WebKit/.test(userAgent) && !browser$2.isEdge(); + var fileApi = 'FormData' in domGlobals.window && 'FileReader' in domGlobals.window && 'URL' in domGlobals.window && !!domGlobals.URL.createObjectURL; + var windowsPhone = userAgent.indexOf('Windows Phone') !== -1; + var Env = { + opera: browser$2.isOpera(), + webkit: webkit, + ie: browser$2.isIE() || browser$2.isEdge() ? browser$2.version.major : false, + gecko: browser$2.isFirefox(), + mac: os.isOSX() || os.isiOS(), + iOS: deviceType.isiPad() || deviceType.isiPhone(), + android: os.isAndroid(), + contentEditable: true, + transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', + caretAfter: true, + range: domGlobals.window.getSelection && 'Range' in domGlobals.window, + documentMode: browser$2.isIE() ? domGlobals.document.documentMode || 7 : 10, + fileApi: fileApi, + ceFalse: true, + cacheSuffix: null, + container: null, + experimentalShadowDom: false, + canHaveCSP: !browser$2.isIE(), + desktop: deviceType.isDesktop(), + windowsPhone: windowsPhone, + browser: { + current: browser$2.current, + version: browser$2.version, + isChrome: browser$2.isChrome, + isEdge: browser$2.isEdge, + isFirefox: browser$2.isFirefox, + isIE: browser$2.isIE, + isOpera: browser$2.isOpera, + isSafari: browser$2.isSafari + }, + os: { + current: os.current, + version: os.version, + isAndroid: os.isAndroid, + isChromeOS: os.isChromeOS, + isFreeBSD: os.isFreeBSD, + isiOS: os.isiOS, + isLinux: os.isLinux, + isOSX: os.isOSX, + isSolaris: os.isSolaris, + isWindows: os.isWindows + }, + deviceType: { + isDesktop: deviceType.isDesktop, + isiPad: deviceType.isiPad, + isiPhone: deviceType.isiPhone, + isPhone: deviceType.isPhone, + isTablet: deviceType.isTablet, + isTouch: deviceType.isTouch, + isWebView: deviceType.isWebView + } + }; + + var isArray$1 = Array.isArray; + var toArray$1 = function (obj) { + var array = obj, i, l; + if (!isArray$1(obj)) { + array = []; + for (i = 0, l = obj.length; i < l; i++) { + array[i] = obj[i]; + } + } + return array; + }; + var each$2 = function (o, cb, s) { + var n, l; + if (!o) { + return 0; + } + s = s || o; + if (o.length !== undefined) { + for (n = 0, l = o.length; n < l; n++) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } else { + for (n in o) { + if (o.hasOwnProperty(n)) { + if (cb.call(s, o[n], n, o) === false) { + return 0; + } + } + } + } + return 1; + }; + var map$2 = function (array, callback) { + var out = []; + each$2(array, function (item, index) { + out.push(callback(item, index, array)); + }); + return out; + }; + var filter$2 = function (a, f) { + var o = []; + each$2(a, function (v, index) { + if (!f || f(v, index, a)) { + o.push(v); + } + }); + return o; + }; + var indexOf$1 = function (a, v) { + var i, l; + if (a) { + for (i = 0, l = a.length; i < l; i++) { + if (a[i] === v) { + return i; + } + } + } + return -1; + }; + var reduce = function (collection, iteratee, accumulator, thisArg) { + var i = 0; + if (arguments.length < 3) { + accumulator = collection[0]; + } + for (; i < collection.length; i++) { + accumulator = iteratee.call(thisArg, accumulator, collection[i], i); + } + return accumulator; + }; + var findIndex$1 = function (array, predicate, thisArg) { + var i, l; + for (i = 0, l = array.length; i < l; i++) { + if (predicate.call(thisArg, array[i], i, array)) { + return i; + } + } + return -1; + }; + var find$2 = function (array, predicate, thisArg) { + var idx = findIndex$1(array, predicate, thisArg); + if (idx !== -1) { + return array[idx]; + } + return undefined; + }; + var last$1 = function (collection) { + return collection[collection.length - 1]; + }; + var ArrUtils = { + isArray: isArray$1, + toArray: toArray$1, + each: each$2, + map: map$2, + filter: filter$2, + indexOf: indexOf$1, + reduce: reduce, + findIndex: findIndex$1, + find: find$2, + last: last$1 + }; + + var whiteSpaceRegExp = /^\s*|\s*$/g; + var trim$1 = function (str) { + return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp, ''); + }; + var is$1 = function (obj, type) { + if (!type) { + return obj !== undefined; + } + if (type === 'array' && ArrUtils.isArray(obj)) { + return true; + } + return typeof obj === type; + }; + var makeMap = function (items, delim, map) { + var i; + items = items || []; + delim = delim || ','; + if (typeof items === 'string') { + items = items.split(delim); + } + map = map || {}; + i = items.length; + while (i--) { + map[items[i]] = {}; + } + return map; + }; + var hasOwnProperty$1 = function (obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + }; + var create = function (s, p, root) { + var self = this; + var sp, ns, cn, scn, c, de = 0; + s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s); + cn = s[3].match(/(^|\.)(\w+)$/i)[2]; + ns = self.createNS(s[3].replace(/\.\w+$/, ''), root); + if (ns[cn]) { + return; + } + if (s[2] === 'static') { + ns[cn] = p; + if (this.onCreate) { + this.onCreate(s[2], s[3], ns[cn]); + } + return; + } + if (!p[cn]) { + p[cn] = function () { + }; + de = 1; + } + ns[cn] = p[cn]; + self.extend(ns[cn].prototype, p); + if (s[5]) { + sp = self.resolve(s[5]).prototype; + scn = s[5].match(/\.(\w+)$/i)[1]; + c = ns[cn]; + if (de) { + ns[cn] = function () { + return sp[scn].apply(this, arguments); + }; + } else { + ns[cn] = function () { + this.parent = sp[scn]; + return c.apply(this, arguments); + }; + } + ns[cn].prototype[cn] = ns[cn]; + self.each(sp, function (f, n) { + ns[cn].prototype[n] = sp[n]; + }); + self.each(p, function (f, n) { + if (sp[n]) { + ns[cn].prototype[n] = function () { + this.parent = sp[n]; + return f.apply(this, arguments); + }; + } else { + if (n !== cn) { + ns[cn].prototype[n] = f; + } + } + }); + } + self.each(p.static, function (f, n) { + ns[cn][n] = f; + }); + }; + var extend = function (obj, ext) { + var x = []; + for (var _i = 2; _i < arguments.length; _i++) { + x[_i - 2] = arguments[_i]; + } + var i, l, name; + var args = arguments; + var value; + for (i = 1, l = args.length; i < l; i++) { + ext = args[i]; + for (name in ext) { + if (ext.hasOwnProperty(name)) { + value = ext[name]; + if (value !== undefined) { + obj[name] = value; + } + } + } + } + return obj; + }; + var walk = function (o, f, n, s) { + s = s || this; + if (o) { + if (n) { + o = o[n]; + } + ArrUtils.each(o, function (o, i) { + if (f.call(s, o, i, n) === false) { + return false; + } + walk(o, f, n, s); + }); + } + }; + var createNS = function (n, o) { + var i, v; + o = o || domGlobals.window; + n = n.split('.'); + for (i = 0; i < n.length; i++) { + v = n[i]; + if (!o[v]) { + o[v] = {}; + } + o = o[v]; + } + return o; + }; + var resolve = function (n, o) { + var i, l; + o = o || domGlobals.window; + n = n.split('.'); + for (i = 0, l = n.length; i < l; i++) { + o = o[n[i]]; + if (!o) { + break; + } + } + return o; + }; + var explode = function (s, d) { + if (!s || is$1(s, 'array')) { + return s; + } + return ArrUtils.map(s.split(d || ','), trim$1); + }; + var _addCacheSuffix = function (url) { + var cacheSuffix = Env.cacheSuffix; + if (cacheSuffix) { + url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix; + } + return url; + }; + var Tools = { + trim: trim$1, + isArray: ArrUtils.isArray, + is: is$1, + toArray: ArrUtils.toArray, + makeMap: makeMap, + each: ArrUtils.each, + map: ArrUtils.map, + grep: ArrUtils.filter, + inArray: ArrUtils.indexOf, + hasOwn: hasOwnProperty$1, + extend: extend, + create: create, + walk: walk, + createNS: createNS, + resolve: resolve, + explode: explode, + _addCacheSuffix: _addCacheSuffix + }; + + function StyleSheetLoader(document, settings) { + if (settings === void 0) { + settings = {}; + } + var idCount = 0; + var loadedStates = {}; + var maxLoadTime; + maxLoadTime = settings.maxLoadTime || 5000; + var _setReferrerPolicy = function (referrerPolicy) { + settings.referrerPolicy = referrerPolicy; + }; + var appendToHead = function (node) { + document.getElementsByTagName('head')[0].appendChild(node); + }; + var load = function (url, loadedCallback, errorCallback) { + var link, style, startTime, state; + var resolve = function (status) { + state.status = status; + state.passed = []; + state.failed = []; + if (link) { + link.onload = null; + link.onerror = null; + link = null; + } + }; + var passed = function () { + var callbacks = state.passed; + var i = callbacks.length; + while (i--) { + callbacks[i](); + } + resolve(2); + }; + var failed = function () { + var callbacks = state.failed; + var i = callbacks.length; + while (i--) { + callbacks[i](); + } + resolve(3); + }; + var isOldWebKit = function () { + var webKitChunks = domGlobals.navigator.userAgent.match(/WebKit\/(\d*)/); + return !!(webKitChunks && parseInt(webKitChunks[1], 10) < 536); + }; + var wait = function (testCallback, waitCallback) { + if (!testCallback()) { + if (new Date().getTime() - startTime < maxLoadTime) { + Delay.setTimeout(waitCallback); + } else { + failed(); + } + } + }; + var waitForWebKitLinkLoaded = function () { + wait(function () { + var styleSheets = document.styleSheets; + var styleSheet, i = styleSheets.length, owner; + while (i--) { + styleSheet = styleSheets[i]; + owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement; + if (owner && owner.id === link.id) { + passed(); + return true; + } + } + }, waitForWebKitLinkLoaded); + }; + var waitForGeckoLinkLoaded = function () { + wait(function () { + try { + var cssRules = style.sheet.cssRules; + passed(); + return !!cssRules; + } catch (ex) { + } + }, waitForGeckoLinkLoaded); + }; + url = Tools._addCacheSuffix(url); + if (!loadedStates[url]) { + state = { + passed: [], + failed: [] + }; + loadedStates[url] = state; + } else { + state = loadedStates[url]; + } + if (loadedCallback) { + state.passed.push(loadedCallback); + } + if (errorCallback) { + state.failed.push(errorCallback); + } + if (state.status === 1) { + return; + } + if (state.status === 2) { + passed(); + return; + } + if (state.status === 3) { + failed(); + return; + } + state.status = 1; + link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.id = 'u' + idCount++; + link.async = false; + link.defer = false; + startTime = new Date().getTime(); + if (settings.contentCssCors) { + link.crossOrigin = 'anonymous'; + } + if (settings.referrerPolicy) { + set(Element.fromDom(link), 'referrerpolicy', settings.referrerPolicy); + } + if ('onload' in link && !isOldWebKit()) { + link.onload = waitForWebKitLinkLoaded; + link.onerror = failed; + } else { + if (domGlobals.navigator.userAgent.indexOf('Firefox') > 0) { + style = document.createElement('style'); + style.textContent = '@import "' + url + '"'; + waitForGeckoLinkLoaded(); + appendToHead(style); + return; + } + waitForWebKitLinkLoaded(); + } + appendToHead(link); + link.href = url; + }; + var loadF = function (url) { + return Future.nu(function (resolve) { + load(url, compose(resolve, constant(Result.value(url))), compose(resolve, constant(Result.error(url)))); + }); + }; + var unbox = function (result) { + return result.fold(identity, identity); + }; + var loadAll = function (urls, success, failure) { + par$1(map(urls, loadF)).get(function (result) { + var parts = partition(result, function (r) { + return r.isValue(); + }); + if (parts.fail.length > 0) { + failure(parts.fail.map(unbox)); + } else { + success(parts.pass.map(unbox)); + } + }); + }; + return { + load: load, + loadAll: loadAll, + _setReferrerPolicy: _setReferrerPolicy + }; + } + + var blocks = [ + 'article', + 'aside', + 'details', + 'div', + 'dt', + 'figcaption', + 'footer', + 'form', + 'fieldset', + 'header', + 'hgroup', + 'html', + 'main', + 'nav', + 'section', + 'summary', + 'body', + 'p', + 'dl', + 'multicol', + 'dd', + 'figure', + 'address', + 'center', + 'blockquote', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'listing', + 'xmp', + 'pre', + 'plaintext', + 'menu', + 'dir', + 'ul', + 'ol', + 'li', + 'hr', + 'table', + 'tbody', + 'thead', + 'tfoot', + 'th', + 'tr', + 'td', + 'caption' + ]; + var voids = [ + 'area', + 'base', + 'basefont', + 'br', + 'col', + 'frame', + 'hr', + 'img', + 'input', + 'isindex', + 'link', + 'meta', + 'param', + 'embed', + 'source', + 'wbr', + 'track' + ]; + var tableCells = [ + 'td', + 'th' + ]; + var tableSections = [ + 'thead', + 'tbody', + 'tfoot' + ]; + var textBlocks = [ + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'p', + 'div', + 'address', + 'pre', + 'form', + 'blockquote', + 'center', + 'dir', + 'fieldset', + 'header', + 'footer', + 'article', + 'section', + 'hgroup', + 'aside', + 'nav', + 'figure' + ]; + var headings = [ + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6' + ]; + var listItems = [ + 'li', + 'dd', + 'dt' + ]; + var lists = [ + 'ul', + 'ol', + 'dl' + ]; + var wsElements = [ + 'pre', + 'script', + 'textarea', + 'style' + ]; + var lazyLookup = function (items) { + var lookup; + return function (node) { + lookup = lookup ? lookup : mapToObject(items, constant(true)); + return lookup.hasOwnProperty(name(node)); + }; + }; + var isHeading = lazyLookup(headings); + var isBlock = lazyLookup(blocks); + var isTable$1 = function (node) { + return name(node) === 'table'; + }; + var isInline = function (node) { + return isElement(node) && !isBlock(node); + }; + var isBr$1 = function (node) { + return isElement(node) && name(node) === 'br'; + }; + var isTextBlock = lazyLookup(textBlocks); + var isList = lazyLookup(lists); + var isListItem = lazyLookup(listItems); + var isVoid = lazyLookup(voids); + var isTableSection = lazyLookup(tableSections); + var isTableCell = lazyLookup(tableCells); + var isWsPreserveElement = lazyLookup(wsElements); + + var surroundedBySpans = function (node) { + var previousIsSpan = node.previousSibling && node.previousSibling.nodeName === 'SPAN'; + var nextIsSpan = node.nextSibling && node.nextSibling.nodeName === 'SPAN'; + return previousIsSpan && nextIsSpan; + }; + var isBookmarkNode = function (node) { + return node && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark'; + }; + var trimNode = function (dom, node) { + var i, children = node.childNodes; + if (NodeType.isElement(node) && isBookmarkNode(node)) { + return; + } + for (i = children.length - 1; i >= 0; i--) { + trimNode(dom, children[i]); + } + if (NodeType.isDocument(node) === false) { + if (NodeType.isText(node) && node.nodeValue.length > 0) { + var trimmedLength = Tools.trim(node.nodeValue).length; + if (dom.isBlock(node.parentNode) || trimmedLength > 0) { + return; + } + if (trimmedLength === 0 && surroundedBySpans(node)) { + return; + } + } else if (NodeType.isElement(node)) { + children = node.childNodes; + if (children.length === 1 && isBookmarkNode(children[0])) { + node.parentNode.insertBefore(children[0], node); + } + if (children.length || isVoid(Element.fromDom(node))) { + return; + } + } + dom.remove(node); + } + return node; + }; + var TrimNode = { trimNode: trimNode }; + + var makeMap$1 = Tools.makeMap; + var namedEntities, baseEntities, reverseEntities; + var attrsCharsRegExp = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + var textCharsRegExp = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + var rawCharsRegExp = /[<>&\"\']/g; + var entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi; + var asciiMap = { + 128: '\u20AC', + 130: '\u201A', + 131: '\u0192', + 132: '\u201E', + 133: '\u2026', + 134: '\u2020', + 135: '\u2021', + 136: '\u02c6', + 137: '\u2030', + 138: '\u0160', + 139: '\u2039', + 140: '\u0152', + 142: '\u017d', + 145: '\u2018', + 146: '\u2019', + 147: '\u201C', + 148: '\u201D', + 149: '\u2022', + 150: '\u2013', + 151: '\u2014', + 152: '\u02DC', + 153: '\u2122', + 154: '\u0161', + 155: '\u203A', + 156: '\u0153', + 158: '\u017e', + 159: '\u0178' + }; + baseEntities = { + '"': '"', + '\'': ''', + '<': '<', + '>': '>', + '&': '&', + '`': '`' + }; + reverseEntities = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + ''': '\'' + }; + var nativeDecode = function (text) { + var elm; + elm = Element.fromTag('div').dom(); + elm.innerHTML = text; + return elm.textContent || elm.innerText || text; + }; + var buildEntitiesLookup = function (items, radix) { + var i, chr, entity; + var lookup = {}; + if (items) { + items = items.split(','); + radix = radix || 10; + for (i = 0; i < items.length; i += 2) { + chr = String.fromCharCode(parseInt(items[i], radix)); + if (!baseEntities[chr]) { + entity = '&' + items[i + 1] + ';'; + lookup[chr] = entity; + lookup[entity] = chr; + } + } + return lookup; + } + }; + namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32); + var encodeRaw = function (text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) { + return baseEntities[chr] || chr; + }); + }; + var encodeAllRaw = function (text) { + return ('' + text).replace(rawCharsRegExp, function (chr) { + return baseEntities[chr] || chr; + }); + }; + var encodeNumeric = function (text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) { + if (chr.length > 1) { + return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';'; + } + return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';'; + }); + }; + var encodeNamed = function (text, attr, entities) { + entities = entities || namedEntities; + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) { + return baseEntities[chr] || entities[chr] || chr; + }); + }; + var getEncodeFunc = function (name, entities) { + var entitiesMap = buildEntitiesLookup(entities) || namedEntities; + var encodeNamedAndNumeric = function (text, attr) { + return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) { + if (baseEntities[chr] !== undefined) { + return baseEntities[chr]; + } + if (entitiesMap[chr] !== undefined) { + return entitiesMap[chr]; + } + if (chr.length > 1) { + return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';'; + } + return '&#' + chr.charCodeAt(0) + ';'; + }); + }; + var encodeCustomNamed = function (text, attr) { + return encodeNamed(text, attr, entitiesMap); + }; + var nameMap = makeMap$1(name.replace(/\+/g, ',')); + if (nameMap.named && nameMap.numeric) { + return encodeNamedAndNumeric; + } + if (nameMap.named) { + if (entities) { + return encodeCustomNamed; + } + return encodeNamed; + } + if (nameMap.numeric) { + return encodeNumeric; + } + return encodeRaw; + }; + var decode = function (text) { + return text.replace(entityRegExp, function (all, numeric) { + if (numeric) { + if (numeric.charAt(0).toLowerCase() === 'x') { + numeric = parseInt(numeric.substr(1), 16); + } else { + numeric = parseInt(numeric, 10); + } + if (numeric > 65535) { + numeric -= 65536; + return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023)); + } + return asciiMap[numeric] || String.fromCharCode(numeric); + } + return reverseEntities[all] || namedEntities[all] || nativeDecode(all); + }); + }; + var Entities = { + encodeRaw: encodeRaw, + encodeAllRaw: encodeAllRaw, + encodeNumeric: encodeNumeric, + encodeNamed: encodeNamed, + getEncodeFunc: getEncodeFunc, + decode: decode + }; + + var mapCache = {}, dummyObj = {}; + var makeMap$2 = Tools.makeMap, each$3 = Tools.each, extend$1 = Tools.extend, explode$1 = Tools.explode, inArray = Tools.inArray; + var split = function (items, delim) { + items = Tools.trim(items); + return items ? items.split(delim || ' ') : []; + }; + var compileSchema = function (type) { + var schema = {}; + var globalAttributes, blockContent; + var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent; + var add = function (name, attributes, children) { + var ni, attributesOrder, element; + var arrayToMap = function (array, obj) { + var map = {}; + var i, l; + for (i = 0, l = array.length; i < l; i++) { + map[array[i]] = obj || {}; + } + return map; + }; + children = children || []; + attributes = attributes || ''; + if (typeof children === 'string') { + children = split(children); + } + name = split(name); + ni = name.length; + while (ni--) { + attributesOrder = split([ + globalAttributes, + attributes + ].join(' ')); + element = { + attributes: arrayToMap(attributesOrder), + attributesOrder: attributesOrder, + children: arrayToMap(children, dummyObj) + }; + schema[name[ni]] = element; + } + }; + var addAttrs = function (name, attributes) { + var ni, schemaItem, i, l; + name = split(name); + ni = name.length; + attributes = split(attributes); + while (ni--) { + schemaItem = schema[name[ni]]; + for (i = 0, l = attributes.length; i < l; i++) { + schemaItem.attributes[attributes[i]] = {}; + schemaItem.attributesOrder.push(attributes[i]); + } + } + }; + if (mapCache[type]) { + return mapCache[type]; + } + globalAttributes = 'id accesskey class dir lang style tabindex title role'; + blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul'; + phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment'; + if (type !== 'html4') { + globalAttributes += ' contenteditable contextmenu draggable dropzone ' + 'hidden spellcheck translate'; + blockContent += ' article aside details dialog figure main header footer hgroup section nav'; + phrasingContent += ' audio canvas command datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen'; + } + if (type !== 'html5-strict') { + globalAttributes += ' xml:lang'; + html4PhrasingContent = 'acronym applet basefont big font strike tt'; + phrasingContent = [ + phrasingContent, + html4PhrasingContent + ].join(' '); + each$3(split(html4PhrasingContent), function (name) { + add(name, '', phrasingContent); + }); + html4BlockContent = 'center dir isindex noframes'; + blockContent = [ + blockContent, + html4BlockContent + ].join(' '); + flowContent = [ + blockContent, + phrasingContent + ].join(' '); + each$3(split(html4BlockContent), function (name) { + add(name, '', flowContent); + }); + } + flowContent = flowContent || [ + blockContent, + phrasingContent + ].join(' '); + add('html', 'manifest', 'head body'); + add('head', '', 'base command link meta noscript script style title'); + add('title hr noscript br'); + add('base', 'href target'); + add('link', 'href rel media hreflang type sizes hreflang'); + add('meta', 'name http-equiv content charset'); + add('style', 'media type scoped'); + add('script', 'src async defer type charset'); + add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent); + add('address dt dd div caption', '', flowContent); + add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent); + add('blockquote', 'cite', flowContent); + add('ol', 'reversed start type', 'li'); + add('ul', '', 'li'); + add('li', 'value', flowContent); + add('dl', '', 'dt dd'); + add('a', 'href target rel media hreflang type', phrasingContent); + add('q', 'cite', phrasingContent); + add('ins del', 'cite datetime', flowContent); + add('img', 'src sizes srcset alt usemap ismap width height'); + add('iframe', 'src name width height', flowContent); + add('embed', 'src type width height'); + add('object', 'data type typemustmatch name usemap form width height', [ + flowContent, + 'param' + ].join(' ')); + add('param', 'name value'); + add('map', 'name', [ + flowContent, + 'area' + ].join(' ')); + add('area', 'alt coords shape href target rel media hreflang type'); + add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : '')); + add('colgroup', 'span', 'col'); + add('col', 'span'); + add('tbody thead tfoot', '', 'tr'); + add('tr', '', 'td th'); + add('td', 'colspan rowspan headers', flowContent); + add('th', 'colspan rowspan headers scope abbr', flowContent); + add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent); + add('fieldset', 'disabled form name', [ + flowContent, + 'legend' + ].join(' ')); + add('label', 'form for', phrasingContent); + add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width'); + add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent); + add('select', 'disabled form multiple name required size', 'option optgroup'); + add('optgroup', 'disabled label', 'option'); + add('option', 'disabled label selected value'); + add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap'); + add('menu', 'type label', [ + flowContent, + 'li' + ].join(' ')); + add('noscript', '', flowContent); + if (type !== 'html4') { + add('wbr'); + add('ruby', '', [ + phrasingContent, + 'rt rp' + ].join(' ')); + add('figcaption', '', flowContent); + add('mark rt rp summary bdi', '', phrasingContent); + add('canvas', 'width height', flowContent); + add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [ + flowContent, + 'track source' + ].join(' ')); + add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [ + flowContent, + 'track source' + ].join(' ')); + add('picture', '', 'img source'); + add('source', 'src srcset type media sizes'); + add('track', 'kind src srclang label default'); + add('datalist', '', [ + phrasingContent, + 'option' + ].join(' ')); + add('article section nav aside main header footer', '', flowContent); + add('hgroup', '', 'h1 h2 h3 h4 h5 h6'); + add('figure', '', [ + flowContent, + 'figcaption' + ].join(' ')); + add('time', 'datetime', phrasingContent); + add('dialog', 'open', flowContent); + add('command', 'type label icon disabled checked radiogroup command'); + add('output', 'for form name', phrasingContent); + add('progress', 'value max', phrasingContent); + add('meter', 'value min max low high optimum', phrasingContent); + add('details', 'open', [ + flowContent, + 'summary' + ].join(' ')); + add('keygen', 'autofocus challenge disabled form keytype name'); + } + if (type !== 'html5-strict') { + addAttrs('script', 'language xml:space'); + addAttrs('style', 'xml:space'); + addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace'); + addAttrs('embed', 'align name hspace vspace'); + addAttrs('param', 'valuetype type'); + addAttrs('a', 'charset name rev shape coords'); + addAttrs('br', 'clear'); + addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace'); + addAttrs('img', 'name longdesc align border hspace vspace'); + addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align'); + addAttrs('font basefont', 'size color face'); + addAttrs('input', 'usemap align'); + addAttrs('select'); + addAttrs('textarea'); + addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align'); + addAttrs('ul', 'type compact'); + addAttrs('li', 'type'); + addAttrs('ol dl menu dir', 'compact'); + addAttrs('pre', 'width xml:space'); + addAttrs('hr', 'align noshade size width'); + addAttrs('isindex', 'prompt'); + addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor'); + addAttrs('col', 'width align char charoff valign'); + addAttrs('colgroup', 'width align char charoff valign'); + addAttrs('thead', 'align char charoff valign'); + addAttrs('tr', 'align char charoff valign bgcolor'); + addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height'); + addAttrs('form', 'accept'); + addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height'); + addAttrs('tfoot', 'align char charoff valign'); + addAttrs('tbody', 'align char charoff valign'); + addAttrs('area', 'nohref'); + addAttrs('body', 'background bgcolor text link vlink alink'); + } + if (type !== 'html4') { + addAttrs('input button select textarea', 'autofocus'); + addAttrs('input textarea', 'placeholder'); + addAttrs('a', 'download'); + addAttrs('link script img', 'crossorigin'); + addAttrs('img', 'loading'); + addAttrs('iframe', 'sandbox seamless allowfullscreen loading'); + } + each$3(split('a form meter progress dfn'), function (name) { + if (schema[name]) { + delete schema[name].children[name]; + } + }); + delete schema.caption.children.table; + delete schema.script; + mapCache[type] = schema; + return schema; + }; + var compileElementMap = function (value, mode) { + var styles; + if (value) { + styles = {}; + if (typeof value === 'string') { + value = { '*': value }; + } + each$3(value, function (value, key) { + styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$1(value, /[, ]/); + }); + } + return styles; + }; + function Schema(settings) { + var elements = {}; + var children = {}; + var patternElements = []; + var validStyles; + var invalidStyles; + var schemaItems; + var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, validClasses; + var blockElementsMap, nonEmptyElementsMap, moveCaretBeforeOnEnterElementsMap, textBlockElementsMap, textInlineElementsMap; + var customElementsMap = {}, specialElements = {}; + var createLookupTable = function (option, defaultValue, extendWith) { + var value = settings[option]; + if (!value) { + value = mapCache[option]; + if (!value) { + value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' ')); + value = extend$1(value, extendWith); + mapCache[option] = value; + } + } else { + value = makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/)); + } + return value; + }; + settings = settings || {}; + schemaItems = compileSchema(settings.schema); + if (settings.verify_html === false) { + settings.valid_elements = '*[*]'; + } + validStyles = compileElementMap(settings.valid_styles); + invalidStyles = compileElementMap(settings.invalid_styles, 'map'); + validClasses = compileElementMap(settings.valid_classes, 'map'); + whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code'); + selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr'); + shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track'); + boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls'); + nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object ' + 'script pre code', shortEndedElementsMap); + moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', 'table', nonEmptyElementsMap); + textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure'); + blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap); + textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp'); + each$3((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) { + specialElements[name] = new RegExp(']*>', 'gi'); + }); + var patternToRegExp = function (str) { + return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$'); + }; + var addValidElements = function (validElements) { + var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, prefix, outputName, globalAttributes, globalAttributesOrder, key, value; + var elementRuleRegExp = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/, attrRuleRegExp = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/, hasPatternsRegExp = /[*?+]/; + if (validElements) { + validElements = split(validElements, ','); + if (elements['@']) { + globalAttributes = elements['@'].attributes; + globalAttributesOrder = elements['@'].attributesOrder; + } + for (ei = 0, el = validElements.length; ei < el; ei++) { + matches = elementRuleRegExp.exec(validElements[ei]); + if (matches) { + prefix = matches[1]; + elementName = matches[2]; + outputName = matches[3]; + attrData = matches[5]; + attributes = {}; + attributesOrder = []; + element = { + attributes: attributes, + attributesOrder: attributesOrder + }; + if (prefix === '#') { + element.paddEmpty = true; + } + if (prefix === '-') { + element.removeEmpty = true; + } + if (matches[4] === '!') { + element.removeEmptyAttrs = true; + } + if (globalAttributes) { + for (key in globalAttributes) { + attributes[key] = globalAttributes[key]; + } + attributesOrder.push.apply(attributesOrder, globalAttributesOrder); + } + if (attrData) { + attrData = split(attrData, '|'); + for (ai = 0, al = attrData.length; ai < al; ai++) { + matches = attrRuleRegExp.exec(attrData[ai]); + if (matches) { + attr = {}; + attrType = matches[1]; + attrName = matches[2].replace(/[\\:]:/g, ':'); + prefix = matches[3]; + value = matches[4]; + if (attrType === '!') { + element.attributesRequired = element.attributesRequired || []; + element.attributesRequired.push(attrName); + attr.required = true; + } + if (attrType === '-') { + delete attributes[attrName]; + attributesOrder.splice(inArray(attributesOrder, attrName), 1); + continue; + } + if (prefix) { + if (prefix === '=') { + element.attributesDefault = element.attributesDefault || []; + element.attributesDefault.push({ + name: attrName, + value: value + }); + attr.defaultValue = value; + } + if (prefix === ':') { + element.attributesForced = element.attributesForced || []; + element.attributesForced.push({ + name: attrName, + value: value + }); + attr.forcedValue = value; + } + if (prefix === '<') { + attr.validValues = makeMap$2(value, '?'); + } + } + if (hasPatternsRegExp.test(attrName)) { + element.attributePatterns = element.attributePatterns || []; + attr.pattern = patternToRegExp(attrName); + element.attributePatterns.push(attr); + } else { + if (!attributes[attrName]) { + attributesOrder.push(attrName); + } + attributes[attrName] = attr; + } + } + } + } + if (!globalAttributes && elementName === '@') { + globalAttributes = attributes; + globalAttributesOrder = attributesOrder; + } + if (outputName) { + element.outputName = elementName; + elements[outputName] = element; + } + if (hasPatternsRegExp.test(elementName)) { + element.pattern = patternToRegExp(elementName); + patternElements.push(element); + } else { + elements[elementName] = element; + } + } + } + } + }; + var setValidElements = function (validElements) { + elements = {}; + patternElements = []; + addValidElements(validElements); + each$3(schemaItems, function (element, name) { + children[name] = element.children; + }); + }; + var addCustomElements = function (customElements) { + var customElementRegExp = /^(~)?(.+)$/; + if (customElements) { + mapCache.text_block_elements = mapCache.block_elements = null; + each$3(split(customElements, ','), function (rule) { + var matches = customElementRegExp.exec(rule), inline = matches[1] === '~', cloneName = inline ? 'span' : 'div', name = matches[2]; + children[name] = children[cloneName]; + customElementsMap[name] = cloneName; + if (!inline) { + blockElementsMap[name.toUpperCase()] = {}; + blockElementsMap[name] = {}; + } + if (!elements[name]) { + var customRule = elements[cloneName]; + customRule = extend$1({}, customRule); + delete customRule.removeEmptyAttrs; + delete customRule.removeEmpty; + elements[name] = customRule; + } + each$3(children, function (element, elmName) { + if (element[cloneName]) { + children[elmName] = element = extend$1({}, children[elmName]); + element[name] = element[cloneName]; + } + }); + }); + } + }; + var addValidChildren = function (validChildren) { + var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/; + mapCache[settings.schema] = null; + if (validChildren) { + each$3(split(validChildren, ','), function (rule) { + var matches = childRuleRegExp.exec(rule); + var parent, prefix; + if (matches) { + prefix = matches[1]; + if (prefix) { + parent = children[matches[2]]; + } else { + parent = children[matches[2]] = { '#comment': {} }; + } + parent = children[matches[2]]; + each$3(split(matches[3], '|'), function (child) { + if (prefix === '-') { + delete parent[child]; + } else { + parent[child] = {}; + } + }); + } + }); + } + }; + var getElementRule = function (name) { + var element = elements[name], i; + if (element) { + return element; + } + i = patternElements.length; + while (i--) { + element = patternElements[i]; + if (element.pattern.test(name)) { + return element; + } + } + }; + if (!settings.valid_elements) { + each$3(schemaItems, function (element, name) { + elements[name] = { + attributes: element.attributes, + attributesOrder: element.attributesOrder + }; + children[name] = element.children; + }); + if (settings.schema !== 'html5') { + each$3(split('strong/b em/i'), function (item) { + item = split(item, '/'); + elements[item[1]].outputName = item[0]; + }); + } + each$3(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function (name) { + if (elements[name]) { + elements[name].removeEmpty = true; + } + }); + each$3(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption li'), function (name) { + elements[name].paddEmpty = true; + }); + each$3(split('span'), function (name) { + elements[name].removeEmptyAttrs = true; + }); + } else { + setValidElements(settings.valid_elements); + } + addCustomElements(settings.custom_elements); + addValidChildren(settings.valid_children); + addValidElements(settings.extended_valid_elements); + addValidChildren('+ol[ul|ol],+ul[ul|ol]'); + each$3({ + dd: 'dl', + dt: 'dl', + li: 'ul ol', + td: 'tr', + th: 'tr', + tr: 'tbody thead tfoot', + tbody: 'table', + thead: 'table', + tfoot: 'table', + legend: 'fieldset', + area: 'map', + param: 'video audio object' + }, function (parents, item) { + if (elements[item]) { + elements[item].parentsRequired = split(parents); + } + }); + if (settings.invalid_elements) { + each$3(explode$1(settings.invalid_elements), function (item) { + if (elements[item]) { + delete elements[item]; + } + }); + } + if (!getElementRule('span')) { + addValidElements('span[!data-mce-type|*]'); + } + var getValidStyles = function () { + return validStyles; + }; + var getInvalidStyles = function () { + return invalidStyles; + }; + var getValidClasses = function () { + return validClasses; + }; + var getBoolAttrs = function () { + return boolAttrMap; + }; + var getBlockElements = function () { + return blockElementsMap; + }; + var getTextBlockElements = function () { + return textBlockElementsMap; + }; + var getTextInlineElements = function () { + return textInlineElementsMap; + }; + var getShortEndedElements = function () { + return shortEndedElementsMap; + }; + var getSelfClosingElements = function () { + return selfClosingElementsMap; + }; + var getNonEmptyElements = function () { + return nonEmptyElementsMap; + }; + var getMoveCaretBeforeOnEnterElements = function () { + return moveCaretBeforeOnEnterElementsMap; + }; + var getWhiteSpaceElements = function () { + return whiteSpaceElementsMap; + }; + var getSpecialElements = function () { + return specialElements; + }; + var isValidChild = function (name, child) { + var parent = children[name.toLowerCase()]; + return !!(parent && parent[child.toLowerCase()]); + }; + var isValid = function (name, attr) { + var attrPatterns, i; + var rule = getElementRule(name); + if (rule) { + if (attr) { + if (rule.attributes[attr]) { + return true; + } + attrPatterns = rule.attributePatterns; + if (attrPatterns) { + i = attrPatterns.length; + while (i--) { + if (attrPatterns[i].pattern.test(name)) { + return true; + } + } + } + } else { + return true; + } + } + return false; + }; + var getCustomElements = function () { + return customElementsMap; + }; + return { + children: children, + elements: elements, + getValidStyles: getValidStyles, + getValidClasses: getValidClasses, + getBlockElements: getBlockElements, + getInvalidStyles: getInvalidStyles, + getShortEndedElements: getShortEndedElements, + getTextBlockElements: getTextBlockElements, + getTextInlineElements: getTextInlineElements, + getBoolAttrs: getBoolAttrs, + getElementRule: getElementRule, + getSelfClosingElements: getSelfClosingElements, + getNonEmptyElements: getNonEmptyElements, + getMoveCaretBeforeOnEnterElements: getMoveCaretBeforeOnEnterElements, + getWhiteSpaceElements: getWhiteSpaceElements, + getSpecialElements: getSpecialElements, + isValidChild: isValidChild, + isValid: isValid, + getCustomElements: getCustomElements, + addValidElements: addValidElements, + setValidElements: setValidElements, + addCustomElements: addCustomElements, + addValidChildren: addValidChildren + }; + } + + var zeroWidth = '\uFEFF'; + var nbsp = '\xA0'; + + var toHex = function (match, r, g, b) { + var hex = function (val) { + val = parseInt(val, 10).toString(16); + return val.length > 1 ? val : '0' + val; + }; + return '#' + hex(r) + hex(g) + hex(b); + }; + var Styles = function (settings, schema) { + var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi; + var urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi; + var styleRegExp = /\s*([^:]+):\s*([^;]+);?/g; + var trimRightRegExp = /\s+$/; + var i; + var encodingLookup = {}; + var encodingItems; + var validStyles; + var invalidStyles; + var invisibleChar = zeroWidth; + settings = settings || {}; + if (schema) { + validStyles = schema.getValidStyles(); + invalidStyles = schema.getInvalidStyles(); + } + encodingItems = ('\\" \\\' \\; \\: ; : ' + invisibleChar).split(' '); + for (i = 0; i < encodingItems.length; i++) { + encodingLookup[encodingItems[i]] = invisibleChar + i; + encodingLookup[invisibleChar + i] = encodingItems[i]; + } + return { + toHex: function (color) { + return color.replace(rgbRegExp, toHex); + }, + parse: function (css) { + var styles = {}; + var matches, name, value, isEncoded; + var urlConverter = settings.url_converter; + var urlConverterScope = settings.url_converter_scope || this; + var compress = function (prefix, suffix, noJoin) { + var top, right, bottom, left; + top = styles[prefix + '-top' + suffix]; + if (!top) { + return; + } + right = styles[prefix + '-right' + suffix]; + if (!right) { + return; + } + bottom = styles[prefix + '-bottom' + suffix]; + if (!bottom) { + return; + } + left = styles[prefix + '-left' + suffix]; + if (!left) { + return; + } + var box = [ + top, + right, + bottom, + left + ]; + i = box.length - 1; + while (i--) { + if (box[i] !== box[i + 1]) { + break; + } + } + if (i > -1 && noJoin) { + return; + } + styles[prefix + suffix] = i === -1 ? box[0] : box.join(' '); + delete styles[prefix + '-top' + suffix]; + delete styles[prefix + '-right' + suffix]; + delete styles[prefix + '-bottom' + suffix]; + delete styles[prefix + '-left' + suffix]; + }; + var canCompress = function (key) { + var value = styles[key], i; + if (!value) { + return; + } + value = value.split(' '); + i = value.length; + while (i--) { + if (value[i] !== value[0]) { + return false; + } + } + styles[key] = value[0]; + return true; + }; + var compress2 = function (target, a, b, c) { + if (!canCompress(a)) { + return; + } + if (!canCompress(b)) { + return; + } + if (!canCompress(c)) { + return; + } + styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c]; + delete styles[a]; + delete styles[b]; + delete styles[c]; + }; + var encode = function (str) { + isEncoded = true; + return encodingLookup[str]; + }; + var decode = function (str, keepSlashes) { + if (isEncoded) { + str = str.replace(/\uFEFF[0-9]/g, function (str) { + return encodingLookup[str]; + }); + } + if (!keepSlashes) { + str = str.replace(/\\([\'\";:])/g, '$1'); + } + return str; + }; + var decodeSingleHexSequence = function (escSeq) { + return String.fromCharCode(parseInt(escSeq.slice(1), 16)); + }; + var decodeHexSequences = function (value) { + return value.replace(/\\[0-9a-f]+/gi, decodeSingleHexSequence); + }; + var processUrl = function (match, url, url2, url3, str, str2) { + str = str || str2; + if (str) { + str = decode(str); + return '\'' + str.replace(/\'/g, '\\\'') + '\''; + } + url = decode(url || url2 || url3); + if (!settings.allow_script_urls) { + var scriptUrl = url.replace(/[\s\r\n]+/g, ''); + if (/(java|vb)script:/i.test(scriptUrl)) { + return ''; + } + if (!settings.allow_svg_data_urls && /^data:image\/svg/i.test(scriptUrl)) { + return ''; + } + } + if (urlConverter) { + url = urlConverter.call(urlConverterScope, url, 'style'); + } + return 'url(\'' + url.replace(/\'/g, '\\\'') + '\')'; + }; + if (css) { + css = css.replace(/[\u0000-\u001F]/g, ''); + css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (str) { + return str.replace(/[;:]/g, encode); + }); + while (matches = styleRegExp.exec(css)) { + styleRegExp.lastIndex = matches.index + matches[0].length; + name = matches[1].replace(trimRightRegExp, '').toLowerCase(); + value = matches[2].replace(trimRightRegExp, ''); + if (name && value) { + name = decodeHexSequences(name); + value = decodeHexSequences(value); + if (name.indexOf(invisibleChar) !== -1 || name.indexOf('"') !== -1) { + continue; + } + if (!settings.allow_script_urls && (name === 'behavior' || /expression\s*\(|\/\*|\*\//.test(value))) { + continue; + } + if (name === 'font-weight' && value === '700') { + value = 'bold'; + } else if (name === 'color' || name === 'background-color') { + value = value.toLowerCase(); + } + value = value.replace(rgbRegExp, toHex); + value = value.replace(urlOrStrRegExp, processUrl); + styles[name] = isEncoded ? decode(value, true) : value; + } + } + compress('border', '', true); + compress('border', '-width'); + compress('border', '-color'); + compress('border', '-style'); + compress('padding', ''); + compress('margin', ''); + compress2('border', 'border-width', 'border-style', 'border-color'); + if (styles.border === 'medium none') { + delete styles.border; + } + if (styles['border-image'] === 'none') { + delete styles['border-image']; + } + } + return styles; + }, + serialize: function (styles, elementName) { + var css = '', name, value; + var serializeStyles = function (name) { + var styleList, i, l, value; + styleList = validStyles[name]; + if (styleList) { + for (i = 0, l = styleList.length; i < l; i++) { + name = styleList[i]; + value = styles[name]; + if (value) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + }; + var isValid = function (name, elementName) { + var styleMap; + styleMap = invalidStyles['*']; + if (styleMap && styleMap[name]) { + return false; + } + styleMap = invalidStyles[elementName]; + if (styleMap && styleMap[name]) { + return false; + } + return true; + }; + if (elementName && validStyles) { + serializeStyles('*'); + serializeStyles(elementName); + } else { + for (name in styles) { + value = styles[name]; + if (value && (!invalidStyles || isValid(name, elementName))) { + css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';'; + } + } + } + return css; + } + }; + }; + + var eventExpandoPrefix = 'mce-data-'; + var mouseEventRe = /^(?:mouse|contextmenu)|click/; + var deprecated = { + keyLocation: 1, + layerX: 1, + layerY: 1, + returnValue: 1, + webkitMovementX: 1, + webkitMovementY: 1, + keyIdentifier: 1, + mozPressure: 1 + }; + var hasIsDefaultPrevented = function (event) { + return event.isDefaultPrevented === returnTrue || event.isDefaultPrevented === returnFalse; + }; + var returnFalse = function () { + return false; + }; + var returnTrue = function () { + return true; + }; + var addEvent = function (target, name, callback, capture) { + if (target.addEventListener) { + target.addEventListener(name, callback, capture || false); + } else if (target.attachEvent) { + target.attachEvent('on' + name, callback); + } + }; + var removeEvent = function (target, name, callback, capture) { + if (target.removeEventListener) { + target.removeEventListener(name, callback, capture || false); + } else if (target.detachEvent) { + target.detachEvent('on' + name, callback); + } + }; + var getTargetFromShadowDom = function (event, defaultTarget) { + if (event.composedPath) { + var composedPath = event.composedPath(); + if (composedPath && composedPath.length > 0) { + return composedPath[0]; + } + } + return defaultTarget; + }; + var fix = function (originalEvent, data) { + var name; + var event = data || {}; + for (name in originalEvent) { + if (!deprecated[name]) { + event[name] = originalEvent[name]; + } + } + if (!event.target) { + event.target = event.srcElement || domGlobals.document; + } + if (Env.experimentalShadowDom) { + event.target = getTargetFromShadowDom(originalEvent, event.target); + } + if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undefined && originalEvent.clientX !== undefined) { + var eventDoc = event.target.ownerDocument || domGlobals.document; + var doc = eventDoc.documentElement; + var body = eventDoc.body; + event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + event.preventDefault = function () { + event.isDefaultPrevented = returnTrue; + if (originalEvent) { + if (originalEvent.preventDefault) { + originalEvent.preventDefault(); + } else { + originalEvent.returnValue = false; + } + } + }; + event.stopPropagation = function () { + event.isPropagationStopped = returnTrue; + if (originalEvent) { + if (originalEvent.stopPropagation) { + originalEvent.stopPropagation(); + } else { + originalEvent.cancelBubble = true; + } + } + }; + event.stopImmediatePropagation = function () { + event.isImmediatePropagationStopped = returnTrue; + event.stopPropagation(); + }; + if (hasIsDefaultPrevented(event) === false) { + event.isDefaultPrevented = returnFalse; + event.isPropagationStopped = returnFalse; + event.isImmediatePropagationStopped = returnFalse; + } + if (typeof event.metaKey === 'undefined') { + event.metaKey = false; + } + return event; + }; + var bindOnReady = function (win, callback, eventUtils) { + var doc = win.document, event = { type: 'ready' }; + if (eventUtils.domLoaded) { + callback(event); + return; + } + var isDocReady = function () { + return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body; + }; + var readyHandler = function () { + removeEvent(win, 'DOMContentLoaded', readyHandler); + removeEvent(win, 'load', readyHandler); + if (!eventUtils.domLoaded) { + eventUtils.domLoaded = true; + callback(event); + } + }; + if (isDocReady()) { + readyHandler(); + } else { + addEvent(win, 'DOMContentLoaded', readyHandler); + } + addEvent(win, 'load', readyHandler); + }; + var EventUtils = function () { + function EventUtils() { + this.domLoaded = false; + this.events = {}; + this.count = 1; + this.expando = eventExpandoPrefix + (+new Date()).toString(32); + this.hasMouseEnterLeave = 'onmouseenter' in domGlobals.document.documentElement; + this.hasFocusIn = 'onfocusin' in domGlobals.document.documentElement; + this.count = 1; + } + EventUtils.prototype.bind = function (target, names, callback, scope) { + var self = this; + var id, callbackList, i, name, fakeName, nativeHandler, capture; + var win = domGlobals.window; + var defaultNativeHandler = function (evt) { + self.executeHandlers(fix(evt || win.event), id); + }; + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return; + } + if (!target[self.expando]) { + id = self.count++; + target[self.expando] = id; + self.events[id] = {}; + } else { + id = target[self.expando]; + } + scope = scope || target; + var namesList = names.split(' '); + i = namesList.length; + while (i--) { + name = namesList[i]; + nativeHandler = defaultNativeHandler; + fakeName = capture = false; + if (name === 'DOMContentLoaded') { + name = 'ready'; + } + if (self.domLoaded && name === 'ready' && target.readyState === 'complete') { + callback.call(scope, fix({ type: name })); + continue; + } + if (!self.hasMouseEnterLeave) { + fakeName = self.mouseEnterLeave[name]; + if (fakeName) { + nativeHandler = function (evt) { + var current, related; + current = evt.currentTarget; + related = evt.relatedTarget; + if (related && current.contains) { + related = current.contains(related); + } else { + while (related && related !== current) { + related = related.parentNode; + } + } + if (!related) { + evt = fix(evt || win.event); + evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter'; + evt.target = current; + self.executeHandlers(evt, id); + } + }; + } + } + if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) { + capture = true; + fakeName = name === 'focusin' ? 'focus' : 'blur'; + nativeHandler = function (evt) { + evt = fix(evt || win.event); + evt.type = evt.type === 'focus' ? 'focusin' : 'focusout'; + self.executeHandlers(evt, id); + }; + } + callbackList = self.events[id][name]; + if (!callbackList) { + self.events[id][name] = callbackList = [{ + func: callback, + scope: scope + }]; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + callbackList.nativeHandler = nativeHandler; + if (name === 'ready') { + bindOnReady(target, nativeHandler, self); + } else { + addEvent(target, fakeName || name, nativeHandler, capture); + } + } else { + if (name === 'ready' && self.domLoaded) { + callback(fix({ type: name })); + } else { + callbackList.push({ + func: callback, + scope: scope + }); + } + } + } + target = callbackList = 0; + return callback; + }; + EventUtils.prototype.unbind = function (target, names, callback) { + var id, callbackList, i, ci, name, eventMap; + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return this; + } + id = target[this.expando]; + if (id) { + eventMap = this.events[id]; + if (names) { + var namesList = names.split(' '); + i = namesList.length; + while (i--) { + name = namesList[i]; + callbackList = eventMap[name]; + if (callbackList) { + if (callback) { + ci = callbackList.length; + while (ci--) { + if (callbackList[ci].func === callback) { + var nativeHandler = callbackList.nativeHandler; + var fakeName = callbackList.fakeName, capture = callbackList.capture; + callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1)); + callbackList.nativeHandler = nativeHandler; + callbackList.fakeName = fakeName; + callbackList.capture = capture; + eventMap[name] = callbackList; + } + } + } + if (!callback || callbackList.length === 0) { + delete eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + } + } + } else { + for (name in eventMap) { + callbackList = eventMap[name]; + removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture); + } + eventMap = {}; + } + for (name in eventMap) { + return this; + } + delete this.events[id]; + try { + delete target[this.expando]; + } catch (ex) { + target[this.expando] = null; + } + } + return this; + }; + EventUtils.prototype.fire = function (target, name, args) { + var id; + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return this; + } + var event = fix(null, args); + event.type = name; + event.target = target; + do { + id = target[this.expando]; + if (id) { + this.executeHandlers(event, id); + } + target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow; + } while (target && !event.isPropagationStopped()); + return this; + }; + EventUtils.prototype.clean = function (target) { + var i, children; + if (!target || target.nodeType === 3 || target.nodeType === 8) { + return this; + } + if (target[this.expando]) { + this.unbind(target); + } + if (!target.getElementsByTagName) { + target = target.document; + } + if (target && target.getElementsByTagName) { + this.unbind(target); + children = target.getElementsByTagName('*'); + i = children.length; + while (i--) { + target = children[i]; + if (target[this.expando]) { + this.unbind(target); + } + } + } + return this; + }; + EventUtils.prototype.destroy = function () { + this.events = {}; + }; + EventUtils.prototype.cancel = function (e) { + if (e) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + return false; + }; + EventUtils.prototype.executeHandlers = function (evt, id) { + var callbackList, i, l, callback; + var container = this.events[id]; + callbackList = container && container[evt.type]; + if (callbackList) { + for (i = 0, l = callbackList.length; i < l; i++) { + callback = callbackList[i]; + if (callback && callback.func.call(callback.scope, evt) === false) { + evt.preventDefault(); + } + if (evt.isImmediatePropagationStopped()) { + return; + } + } + } + }; + EventUtils.Event = new EventUtils(); + return EventUtils; + }(); + + var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains$3, expando = 'sizzle' + -new Date(), preferredDoc = domGlobals.window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function (a, b) { + if (a === b) { + hasDuplicate = true; + } + return 0; + }, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push = arr.push, slice = arr.slice, indexOf$2 = arr.indexOf || function (elem) { + var i = 0, len = this.length; + for (; i < len; i++) { + if (this[i] === elem) { + return i; + } + } + return -1; + }, booleans = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', whitespace = '[\\x20\\t\\r\\n\\f]', identifier = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+', attributes = '\\[' + whitespace + '*(' + identifier + ')(?:' + whitespace + '*([*^$|!~]?=)' + whitespace + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + identifier + '))|)' + whitespace + '*\\]', pseudos = ':(' + identifier + ')(?:\\((' + '(\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|' + '((?:\\\\.|[^\\\\()[\\]]|' + attributes + ')*)|' + '.*' + ')\\)|)', rtrim = new RegExp('^' + whitespace + '+|((?:^|[^\\\\])(?:\\\\.)*)' + whitespace + '+$', 'g'), rcomma = new RegExp('^' + whitespace + '*,' + whitespace + '*'), rcombinators = new RegExp('^' + whitespace + '*([>+~]|' + whitespace + ')' + whitespace + '*'), rattributeQuotes = new RegExp('=' + whitespace + '*([^\\]\'"]*?)' + whitespace + '*\\]', 'g'), rpseudo = new RegExp(pseudos), ridentifier = new RegExp('^' + identifier + '$'), matchExpr = { + ID: new RegExp('^#(' + identifier + ')'), + CLASS: new RegExp('^\\.(' + identifier + ')'), + TAG: new RegExp('^(' + identifier + '|[*])'), + ATTR: new RegExp('^' + attributes), + PSEUDO: new RegExp('^' + pseudos), + CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + whitespace + '*(even|odd|(([+-]|)(\\d*)n|)' + whitespace + '*(?:([+-]|)' + whitespace + '*(\\d+)|))' + whitespace + '*\\)|)', 'i'), + bool: new RegExp('^(?:' + booleans + ')$', 'i'), + needsContext: new RegExp('^' + whitespace + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + whitespace + '*((?:-\\d)?\\d*)' + whitespace + '*\\)|)(?=[^-]|$)', 'i') + }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, rescape = /'|\\/g, runescape = new RegExp('\\\\([\\da-f]{1,6}' + whitespace + '?|(' + whitespace + ')|.)', 'ig'), funescape = function (_, escaped, escapedWhitespace) { + var high = '0x' + escaped - 65536; + return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); + }; + try { + push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); + arr[preferredDoc.childNodes.length].nodeType; + } catch (e) { + push = { + apply: arr.length ? function (target, els) { + push_native.apply(target, slice.call(els)); + } : function (target, els) { + var j = target.length, i = 0; + while (target[j++] = els[i++]) { + } + target.length = j - 1; + } + }; + } + var Sizzle = function (selector, context, results, seed) { + var match, elem, m, nodeType, i, groups, old, nid, newContext, newSelector; + if ((context ? context.ownerDocument || context : preferredDoc) !== document) { + setDocument(context); + } + context = context || document; + results = results || []; + if (!selector || typeof selector !== 'string') { + return results; + } + if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) { + return []; + } + if (documentIsHTML && !seed) { + if (match = rquickExpr.exec(selector)) { + if (m = match[1]) { + if (nodeType === 9) { + elem = context.getElementById(m); + if (elem && elem.parentNode) { + if (elem.id === m) { + results.push(elem); + return results; + } + } else { + return results; + } + } else { + if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains$3(context, elem) && elem.id === m) { + results.push(elem); + return results; + } + } + } else if (match[2]) { + push.apply(results, context.getElementsByTagName(selector)); + return results; + } else if ((m = match[3]) && support.getElementsByClassName) { + push.apply(results, context.getElementsByClassName(m)); + return results; + } + } + if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + if (nodeType === 1 && context.nodeName.toLowerCase() !== 'object') { + groups = tokenize(selector); + if (old = context.getAttribute('id')) { + nid = old.replace(rescape, '\\$&'); + } else { + context.setAttribute('id', nid); + } + nid = '[id=\'' + nid + '\'] '; + i = groups.length; + while (i--) { + groups[i] = nid + toSelector(groups[i]); + } + newContext = rsibling.test(selector) && testContext(context.parentNode) || context; + newSelector = groups.join(','); + } + if (newSelector) { + try { + push.apply(results, newContext.querySelectorAll(newSelector)); + return results; + } catch (qsaError) { + } finally { + if (!old) { + context.removeAttribute('id'); + } + } + } + } + } + return select(selector.replace(rtrim, '$1'), context, results, seed); + }; + function createCache() { + var keys = []; + function cache(key, value) { + if (keys.push(key + ' ') > Expr.cacheLength) { + delete cache[keys.shift()]; + } + return cache[key + ' '] = value; + } + return cache; + } + function markFunction(fn) { + fn[expando] = true; + return fn; + } + function siblingCheck(a, b) { + var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE); + if (diff) { + return diff; + } + if (cur) { + while (cur = cur.nextSibling) { + if (cur === b) { + return -1; + } + } + } + return a ? 1 : -1; + } + function createInputPseudo(type) { + return function (elem) { + var name = elem.nodeName.toLowerCase(); + return name === 'input' && elem.type === type; + }; + } + function createButtonPseudo(type) { + return function (elem) { + var name = elem.nodeName.toLowerCase(); + return (name === 'input' || name === 'button') && elem.type === type; + }; + } + function createPositionalPseudo(fn) { + return markFunction(function (argument) { + argument = +argument; + return markFunction(function (seed, matches) { + var j, matchIndexes = fn([], seed.length, argument), i = matchIndexes.length; + while (i--) { + if (seed[j = matchIndexes[i]]) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); + } + function testContext(context) { + return context && typeof context.getElementsByTagName !== strundefined && context; + } + support = Sizzle.support = {}; + isXML = Sizzle.isXML = function (elem) { + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== 'HTML' : false; + }; + setDocument = Sizzle.setDocument = function (node) { + var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent = doc.defaultView; + function getTop(win) { + try { + return win.top; + } catch (ex) { + } + return null; + } + if (doc === document || doc.nodeType !== 9 || !doc.documentElement) { + return document; + } + document = doc; + docElem = doc.documentElement; + documentIsHTML = !isXML(doc); + if (parent && parent !== getTop(parent)) { + if (parent.addEventListener) { + parent.addEventListener('unload', function () { + setDocument(); + }, false); + } else if (parent.attachEvent) { + parent.attachEvent('onunload', function () { + setDocument(); + }); + } + } + support.attributes = true; + support.getElementsByTagName = true; + support.getElementsByClassName = rnative.test(doc.getElementsByClassName); + support.getById = true; + Expr.find.ID = function (id, context) { + if (typeof context.getElementById !== strundefined && documentIsHTML) { + var m = context.getElementById(id); + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter.ID = function (id) { + var attrId = id.replace(runescape, funescape); + return function (elem) { + return elem.getAttribute('id') === attrId; + }; + }; + Expr.find.TAG = support.getElementsByTagName ? function (tag, context) { + if (typeof context.getElementsByTagName !== strundefined) { + return context.getElementsByTagName(tag); + } + } : function (tag, context) { + var elem, tmp = [], i = 0, results = context.getElementsByTagName(tag); + if (tag === '*') { + while (elem = results[i++]) { + if (elem.nodeType === 1) { + tmp.push(elem); + } + } + return tmp; + } + return results; + }; + Expr.find.CLASS = support.getElementsByClassName && function (className, context) { + if (documentIsHTML) { + return context.getElementsByClassName(className); + } + }; + rbuggyMatches = []; + rbuggyQSA = []; + support.disconnectedMatch = true; + rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join('|')); + rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join('|')); + hasCompare = rnative.test(docElem.compareDocumentPosition); + contains$3 = hasCompare || rnative.test(docElem.contains) ? function (a, b) { + var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode; + return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16)); + } : function (a, b) { + if (b) { + while (b = b.parentNode) { + if (b === a) { + return true; + } + } + } + return false; + }; + sortOrder = hasCompare ? function (a, b) { + if (a === b) { + hasDuplicate = true; + return 0; + } + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if (compare) { + return compare; + } + compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1; + if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) { + if (a === doc || a.ownerDocument === preferredDoc && contains$3(preferredDoc, a)) { + return -1; + } + if (b === doc || b.ownerDocument === preferredDoc && contains$3(preferredDoc, b)) { + return 1; + } + return sortInput ? indexOf$2.call(sortInput, a) - indexOf$2.call(sortInput, b) : 0; + } + return compare & 4 ? -1 : 1; + } : function (a, b) { + if (a === b) { + hasDuplicate = true; + return 0; + } + var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [a], bp = [b]; + if (!aup || !bup) { + return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf$2.call(sortInput, a) - indexOf$2.call(sortInput, b) : 0; + } else if (aup === bup) { + return siblingCheck(a, b); + } + cur = a; + while (cur = cur.parentNode) { + ap.unshift(cur); + } + cur = b; + while (cur = cur.parentNode) { + bp.unshift(cur); + } + while (ap[i] === bp[i]) { + i++; + } + return i ? siblingCheck(ap[i], bp[i]) : ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0; + }; + return doc; + }; + Sizzle.matches = function (expr, elements) { + return Sizzle(expr, null, null, elements); + }; + Sizzle.matchesSelector = function (elem, expr) { + if ((elem.ownerDocument || elem) !== document) { + setDocument(elem); + } + expr = expr.replace(rattributeQuotes, '=\'$1\']'); + if (support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) { + try { + var ret = matches.call(elem, expr); + if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) { + return ret; + } + } catch (e) { + } + } + return Sizzle(expr, document, null, [elem]).length > 0; + }; + Sizzle.contains = function (context, elem) { + if ((context.ownerDocument || context) !== document) { + setDocument(context); + } + return contains$3(context, elem); + }; + Sizzle.attr = function (elem, name) { + if ((elem.ownerDocument || elem) !== document) { + setDocument(elem); + } + var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined; + return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; + }; + Sizzle.error = function (msg) { + throw new Error('Syntax error, unrecognized expression: ' + msg); + }; + Sizzle.uniqueSort = function (results) { + var elem, duplicates = [], j = 0, i = 0; + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice(0); + results.sort(sortOrder); + if (hasDuplicate) { + while (elem = results[i++]) { + if (elem === results[i]) { + j = duplicates.push(i); + } + } + while (j--) { + results.splice(duplicates[j], 1); + } + } + sortInput = null; + return results; + }; + getText = Sizzle.getText = function (elem) { + var node, ret = '', i = 0, nodeType = elem.nodeType; + if (!nodeType) { + while (node = elem[i++]) { + ret += getText(node); + } + } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { + if (typeof elem.textContent === 'string') { + return elem.textContent; + } else { + for (elem = elem.firstChild; elem; elem = elem.nextSibling) { + ret += getText(elem); + } + } + } else if (nodeType === 3 || nodeType === 4) { + return elem.nodeValue; + } + return ret; + }; + Expr = Sizzle.selectors = { + cacheLength: 50, + createPseudo: markFunction, + match: matchExpr, + attrHandle: {}, + find: {}, + relative: { + '>': { + dir: 'parentNode', + first: true + }, + ' ': { dir: 'parentNode' }, + '+': { + dir: 'previousSibling', + first: true + }, + '~': { dir: 'previousSibling' } + }, + preFilter: { + ATTR: function (match) { + match[1] = match[1].replace(runescape, funescape); + match[3] = (match[3] || match[4] || match[5] || '').replace(runescape, funescape); + if (match[2] === '~=') { + match[3] = ' ' + match[3] + ' '; + } + return match.slice(0, 4); + }, + CHILD: function (match) { + match[1] = match[1].toLowerCase(); + if (match[1].slice(0, 3) === 'nth') { + if (!match[3]) { + Sizzle.error(match[0]); + } + match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === 'even' || match[3] === 'odd')); + match[5] = +(match[7] + match[8] || match[3] === 'odd'); + } else if (match[3]) { + Sizzle.error(match[0]); + } + return match; + }, + PSEUDO: function (match) { + var excess, unquoted = !match[6] && match[2]; + if (matchExpr.CHILD.test(match[0])) { + return null; + } + if (match[3]) { + match[2] = match[4] || match[5] || ''; + } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(')', unquoted.length - excess) - unquoted.length)) { + match[0] = match[0].slice(0, excess); + match[2] = unquoted.slice(0, excess); + } + return match.slice(0, 3); + } + }, + filter: { + TAG: function (nodeNameSelector) { + var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); + return nodeNameSelector === '*' ? function () { + return true; + } : function (elem) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + CLASS: function (className) { + var pattern = classCache[className + ' ']; + return pattern || (pattern = new RegExp('(^|' + whitespace + ')' + className + '(' + whitespace + '|$)')) && classCache(className, function (elem) { + return pattern.test(typeof elem.className === 'string' && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute('class') || ''); + }); + }, + ATTR: function (name, operator, check) { + return function (elem) { + var result = Sizzle.attr(elem, name); + if (result == null) { + return operator === '!='; + } + if (!operator) { + return true; + } + result += ''; + return operator === '=' ? result === check : operator === '!=' ? result !== check : operator === '^=' ? check && result.indexOf(check) === 0 : operator === '*=' ? check && result.indexOf(check) > -1 : operator === '$=' ? check && result.slice(-check.length) === check : operator === '~=' ? (' ' + result + ' ').indexOf(check) > -1 : operator === '|=' ? result === check || result.slice(0, check.length + 1) === check + '-' : false; + }; + }, + CHILD: function (type, what, argument, first, last) { + var simple = type.slice(0, 3) !== 'nth', forward = type.slice(-4) !== 'last', ofType = what === 'of-type'; + return first === 1 && last === 0 ? function (elem) { + return !!elem.parentNode; + } : function (elem, context, xml) { + var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType; + if (parent) { + if (simple) { + while (dir) { + node = elem; + while (node = node[dir]) { + if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) { + return false; + } + } + start = dir = type === 'only' && !start && 'nextSibling'; + } + return true; + } + start = [forward ? parent.firstChild : parent.lastChild]; + if (forward && useCache) { + outerCache = parent[expando] || (parent[expando] = {}); + cache = outerCache[type] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[nodeIndex]; + while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) { + if (node.nodeType === 1 && ++diff && node === elem) { + outerCache[type] = [ + dirruns, + nodeIndex, + diff + ]; + break; + } + } + } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) { + diff = cache[1]; + } else { + while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) { + if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) { + if (useCache) { + (node[expando] || (node[expando] = {}))[type] = [ + dirruns, + diff + ]; + } + if (node === elem) { + break; + } + } + } + } + diff -= last; + return diff === first || diff % first === 0 && diff / first >= 0; + } + }; + }, + PSEUDO: function (pseudo, argument) { + var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error('unsupported pseudo: ' + pseudo); + if (fn[expando]) { + return fn(argument); + } + if (fn.length > 1) { + args = [ + pseudo, + pseudo, + '', + argument + ]; + return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) { + var idx, matched = fn(seed, argument), i = matched.length; + while (i--) { + idx = indexOf$2.call(seed, matched[i]); + seed[idx] = !(matches[idx] = matched[i]); + } + }) : function (elem) { + return fn(elem, 0, args); + }; + } + return fn; + } + }, + pseudos: { + not: markFunction(function (selector) { + var input = [], results = [], matcher = compile(selector.replace(rtrim, '$1')); + return matcher[expando] ? markFunction(function (seed, matches, context, xml) { + var elem, unmatched = matcher(seed, null, xml, []), i = seed.length; + while (i--) { + if (elem = unmatched[i]) { + seed[i] = !(matches[i] = elem); + } + } + }) : function (elem, context, xml) { + input[0] = elem; + matcher(input, null, xml, results); + return !results.pop(); + }; + }), + has: markFunction(function (selector) { + return function (elem) { + return Sizzle(selector, elem).length > 0; + }; + }), + contains: markFunction(function (text) { + text = text.replace(runescape, funescape); + return function (elem) { + return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1; + }; + }), + lang: markFunction(function (lang) { + if (!ridentifier.test(lang || '')) { + Sizzle.error('unsupported lang: ' + lang); + } + lang = lang.replace(runescape, funescape).toLowerCase(); + return function (elem) { + var elemLang; + do { + if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute('xml:lang') || elem.getAttribute('lang')) { + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf(lang + '-') === 0; + } + } while ((elem = elem.parentNode) && elem.nodeType === 1); + return false; + }; + }), + target: function (elem) { + var hash = domGlobals.window.location && domGlobals.window.location.hash; + return hash && hash.slice(1) === elem.id; + }, + root: function (elem) { + return elem === docElem; + }, + focus: function (elem) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + enabled: function (elem) { + return elem.disabled === false; + }, + disabled: function (elem) { + return elem.disabled === true; + }, + checked: function (elem) { + var nodeName = elem.nodeName.toLowerCase(); + return nodeName === 'input' && !!elem.checked || nodeName === 'option' && !!elem.selected; + }, + selected: function (elem) { + if (elem.parentNode) { + elem.parentNode.selectedIndex; + } + return elem.selected === true; + }, + empty: function (elem) { + for (elem = elem.firstChild; elem; elem = elem.nextSibling) { + if (elem.nodeType < 6) { + return false; + } + } + return true; + }, + parent: function (elem) { + return !Expr.pseudos.empty(elem); + }, + header: function (elem) { + return rheader.test(elem.nodeName); + }, + input: function (elem) { + return rinputs.test(elem.nodeName); + }, + button: function (elem) { + var name = elem.nodeName.toLowerCase(); + return name === 'input' && elem.type === 'button' || name === 'button'; + }, + text: function (elem) { + var attr; + return elem.nodeName.toLowerCase() === 'input' && elem.type === 'text' && ((attr = elem.getAttribute('type')) == null || attr.toLowerCase() === 'text'); + }, + first: createPositionalPseudo(function () { + return [0]; + }), + last: createPositionalPseudo(function (matchIndexes, length) { + return [length - 1]; + }), + eq: createPositionalPseudo(function (matchIndexes, length, argument) { + return [argument < 0 ? argument + length : argument]; + }), + even: createPositionalPseudo(function (matchIndexes, length) { + var i = 0; + for (; i < length; i += 2) { + matchIndexes.push(i); + } + return matchIndexes; + }), + odd: createPositionalPseudo(function (matchIndexes, length) { + var i = 1; + for (; i < length; i += 2) { + matchIndexes.push(i); + } + return matchIndexes; + }), + lt: createPositionalPseudo(function (matchIndexes, length, argument) { + var i = argument < 0 ? argument + length : argument; + for (; --i >= 0;) { + matchIndexes.push(i); + } + return matchIndexes; + }), + gt: createPositionalPseudo(function (matchIndexes, length, argument) { + var i = argument < 0 ? argument + length : argument; + for (; ++i < length;) { + matchIndexes.push(i); + } + return matchIndexes; + }) + } + }; + Expr.pseudos.nth = Expr.pseudos.eq; + for (i in { + radio: true, + checkbox: true, + file: true, + password: true, + image: true + }) { + Expr.pseudos[i] = createInputPseudo(i); + } + for (i in { + submit: true, + reset: true + }) { + Expr.pseudos[i] = createButtonPseudo(i); + } + function setFilters() { + } + setFilters.prototype = Expr.filters = Expr.pseudos; + Expr.setFilters = new setFilters(); + tokenize = Sizzle.tokenize = function (selector, parseOnly) { + var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + ' ']; + if (cached) { + return parseOnly ? 0 : cached.slice(0); + } + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + while (soFar) { + if (!matched || (match = rcomma.exec(soFar))) { + if (match) { + soFar = soFar.slice(match[0].length) || soFar; + } + groups.push(tokens = []); + } + matched = false; + if (match = rcombinators.exec(soFar)) { + matched = match.shift(); + tokens.push({ + value: matched, + type: match[0].replace(rtrim, ' ') + }); + soFar = soFar.slice(matched.length); + } + for (type in Expr.filter) { + if (!Expr.filter.hasOwnProperty(type)) + continue; + if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice(matched.length); + } + } + if (!matched) { + break; + } + } + return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0); + }; + function toSelector(tokens) { + var i = 0, len = tokens.length, selector = ''; + for (; i < len; i++) { + selector += tokens[i].value; + } + return selector; + } + function addCombinator(matcher, combinator, base) { + var dir = combinator.dir, checkNonElements = base && dir === 'parentNode', doneName = done++; + return combinator.first ? function (elem, context, xml) { + while (elem = elem[dir]) { + if (elem.nodeType === 1 || checkNonElements) { + return matcher(elem, context, xml); + } + } + } : function (elem, context, xml) { + var oldCache, outerCache, newCache = [ + dirruns, + doneName + ]; + if (xml) { + while (elem = elem[dir]) { + if (elem.nodeType === 1 || checkNonElements) { + if (matcher(elem, context, xml)) { + return true; + } + } + } + } else { + while (elem = elem[dir]) { + if (elem.nodeType === 1 || checkNonElements) { + outerCache = elem[expando] || (elem[expando] = {}); + if ((oldCache = outerCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) { + return newCache[2] = oldCache[2]; + } else { + outerCache[dir] = newCache; + if (newCache[2] = matcher(elem, context, xml)) { + return true; + } + } + } + } + } + }; + } + function elementMatcher(matchers) { + return matchers.length > 1 ? function (elem, context, xml) { + var i = matchers.length; + while (i--) { + if (!matchers[i](elem, context, xml)) { + return false; + } + } + return true; + } : matchers[0]; + } + function multipleContexts(selector, contexts, results) { + var i = 0, len = contexts.length; + for (; i < len; i++) { + Sizzle(selector, contexts[i], results); + } + return results; + } + function condense(unmatched, map, filter, context, xml) { + var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null; + for (; i < len; i++) { + if (elem = unmatched[i]) { + if (!filter || filter(elem, context, xml)) { + newUnmatched.push(elem); + if (mapped) { + map.push(i); + } + } + } + } + return newUnmatched; + } + function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { + if (postFilter && !postFilter[expando]) { + postFilter = setMatcher(postFilter); + } + if (postFinder && !postFinder[expando]) { + postFinder = setMatcher(postFinder, postSelector); + } + return markFunction(function (seed, results, context, xml) { + var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector || '*', context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn; + if (matcher) { + matcher(matcherIn, matcherOut, context, xml); + } + if (postFilter) { + temp = condense(matcherOut, postMap); + postFilter(temp, [], context, xml); + i = temp.length; + while (i--) { + if (elem = temp[i]) { + matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem); + } + } + } + if (seed) { + if (postFinder || preFilter) { + if (postFinder) { + temp = []; + i = matcherOut.length; + while (i--) { + if (elem = matcherOut[i]) { + temp.push(matcherIn[i] = elem); + } + } + postFinder(null, matcherOut = [], temp, xml); + } + i = matcherOut.length; + while (i--) { + if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf$2.call(seed, elem) : preMap[i]) > -1) { + seed[temp] = !(results[temp] = elem); + } + } + } + } else { + matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut); + if (postFinder) { + postFinder(null, results, matcherOut, xml); + } else { + push.apply(results, matcherOut); + } + } + }); + } + function matcherFromTokens(tokens) { + var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[' '], i = leadingRelative ? 1 : 0, matchContext = addCombinator(function (elem) { + return elem === checkContext; + }, implicitRelative, true), matchAnyContext = addCombinator(function (elem) { + return indexOf$2.call(checkContext, elem) > -1; + }, implicitRelative, true), matchers = [function (elem, context, xml) { + return !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); + }]; + for (; i < len; i++) { + if (matcher = Expr.relative[tokens[i].type]) { + matchers = [addCombinator(elementMatcher(matchers), matcher)]; + } else { + matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); + if (matcher[expando]) { + j = ++i; + for (; j < len; j++) { + if (Expr.relative[tokens[j].type]) { + break; + } + } + return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === ' ' ? '*' : '' })).replace(rtrim, '$1'), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens)); + } + matchers.push(matcher); + } + } + return elementMatcher(matchers); + } + function matcherFromGroupMatchers(elementMatchers, setMatchers) { + var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function (seed, context, xml, results, outermost) { + var elem, j, matcher, matchedCount = 0, i = '0', unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG('*', outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length; + if (outermost) { + outermostContext = context !== document && context; + } + for (; i !== len && (elem = elems[i]) != null; i++) { + if (byElement && elem) { + j = 0; + while (matcher = elementMatchers[j++]) { + if (matcher(elem, context, xml)) { + results.push(elem); + break; + } + } + if (outermost) { + dirruns = dirrunsUnique; + } + } + if (bySet) { + if (elem = !matcher && elem) { + matchedCount--; + } + if (seed) { + unmatched.push(elem); + } + } + } + matchedCount += i; + if (bySet && i !== matchedCount) { + j = 0; + while (matcher = setMatchers[j++]) { + matcher(unmatched, setMatched, context, xml); + } + if (seed) { + if (matchedCount > 0) { + while (i--) { + if (!(unmatched[i] || setMatched[i])) { + setMatched[i] = pop.call(results); + } + } + } + setMatched = condense(setMatched); + } + push.apply(results, setMatched); + if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { + Sizzle.uniqueSort(results); + } + } + if (outermost) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + return unmatched; + }; + return bySet ? markFunction(superMatcher) : superMatcher; + } + compile = Sizzle.compile = function (selector, match) { + var i, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + ' ']; + if (!cached) { + if (!match) { + match = tokenize(selector); + } + i = match.length; + while (i--) { + cached = matcherFromTokens(match[i]); + if (cached[expando]) { + setMatchers.push(cached); + } else { + elementMatchers.push(cached); + } + } + cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); + cached.selector = selector; + } + return cached; + }; + select = Sizzle.select = function (selector, context, results, seed) { + var i, tokens, token, type, find, compiled = typeof selector === 'function' && selector, match = !seed && tokenize(selector = compiled.selector || selector); + results = results || []; + if (match.length === 1) { + tokens = match[0] = match[0].slice(0); + if (tokens.length > 2 && (token = tokens[0]).type === 'ID' && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { + context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0]; + if (!context) { + return results; + } else if (compiled) { + context = context.parentNode; + } + selector = selector.slice(tokens.shift().value.length); + } + i = matchExpr.needsContext.test(selector) ? 0 : tokens.length; + while (i--) { + token = tokens[i]; + if (Expr.relative[type = token.type]) { + break; + } + if (find = Expr.find[type]) { + if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) { + tokens.splice(i, 1); + selector = seed.length && toSelector(tokens); + if (!selector) { + push.apply(results, seed); + return results; + } + break; + } + } + } + } + (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, rsibling.test(selector) && testContext(context.parentNode) || context); + return results; + }; + support.sortStable = expando.split('').sort(sortOrder).join('') === expando; + support.detectDuplicates = !!hasDuplicate; + setDocument(); + support.sortDetached = true; + + var doc = domGlobals.document, push$1 = Array.prototype.push, slice$1 = Array.prototype.slice; + var rquickExpr$1 = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/; + var Event = EventUtils.Event; + var skipUniques = Tools.makeMap('children,contents,next,prev'); + var isDefined = function (obj) { + return typeof obj !== 'undefined'; + }; + var isString$1 = function (obj) { + return typeof obj === 'string'; + }; + var isWindow = function (obj) { + return obj && obj === obj.window; + }; + var createFragment = function (html, fragDoc) { + var frag, node, container; + fragDoc = fragDoc || doc; + container = fragDoc.createElement('div'); + frag = fragDoc.createDocumentFragment(); + container.innerHTML = html; + while (node = container.firstChild) { + frag.appendChild(node); + } + return frag; + }; + var domManipulate = function (targetNodes, sourceItem, callback, reverse) { + var i; + if (isString$1(sourceItem)) { + sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0])); + } else if (sourceItem.length && !sourceItem.nodeType) { + sourceItem = DomQuery.makeArray(sourceItem); + if (reverse) { + for (i = sourceItem.length - 1; i >= 0; i--) { + domManipulate(targetNodes, sourceItem[i], callback, reverse); + } + } else { + for (i = 0; i < sourceItem.length; i++) { + domManipulate(targetNodes, sourceItem[i], callback, reverse); + } + } + return targetNodes; + } + if (sourceItem.nodeType) { + i = targetNodes.length; + while (i--) { + callback.call(targetNodes[i], sourceItem); + } + } + return targetNodes; + }; + var hasClass = function (node, className) { + return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1; + }; + var wrap$1 = function (elements, wrapper, all) { + var lastParent, newWrapper; + wrapper = DomQuery(wrapper)[0]; + elements.each(function () { + var self = this; + if (!all || lastParent !== self.parentNode) { + lastParent = self.parentNode; + newWrapper = wrapper.cloneNode(false); + self.parentNode.insertBefore(newWrapper, self); + newWrapper.appendChild(self); + } else { + newWrapper.appendChild(self); + } + }); + return elements; + }; + var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' '); + var booleanMap = Tools.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' '); + var propFix = { + for: 'htmlFor', + class: 'className', + readonly: 'readOnly' + }; + var cssFix = { float: 'cssFloat' }; + var attrHooks = {}, cssHooks = {}; + var DomQueryConstructor = function (selector, context) { + return new DomQuery.fn.init(selector, context); + }; + var inArray$1 = function (item, array) { + var i; + if (array.indexOf) { + return array.indexOf(item); + } + i = array.length; + while (i--) { + if (array[i] === item) { + return i; + } + } + return -1; + }; + var whiteSpaceRegExp$1 = /^\s*|\s*$/g; + var trim$2 = function (str) { + return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp$1, ''); + }; + var each$4 = function (obj, callback) { + var length, key, i, value; + if (obj) { + length = obj.length; + if (length === undefined) { + for (key in obj) { + if (obj.hasOwnProperty(key)) { + value = obj[key]; + if (callback.call(value, key, value) === false) { + break; + } + } + } + } else { + for (i = 0; i < length; i++) { + value = obj[i]; + if (callback.call(value, i, value) === false) { + break; + } + } + } + } + return obj; + }; + var grep = function (array, callback) { + var out = []; + each$4(array, function (i, item) { + if (callback(item, i)) { + out.push(item); + } + }); + return out; + }; + var getElementDocument = function (element) { + if (!element) { + return doc; + } + if (element.nodeType === 9) { + return element; + } + return element.ownerDocument; + }; + DomQueryConstructor.fn = DomQueryConstructor.prototype = { + constructor: DomQueryConstructor, + selector: '', + context: null, + length: 0, + init: function (selector, context) { + var self = this; + var match, node; + if (!selector) { + return self; + } + if (selector.nodeType) { + self.context = self[0] = selector; + self.length = 1; + return self; + } + if (context && context.nodeType) { + self.context = context; + } else { + if (context) { + return DomQuery(selector).attr(context); + } + self.context = context = domGlobals.document; + } + if (isString$1(selector)) { + self.selector = selector; + if (selector.charAt(0) === '<' && selector.charAt(selector.length - 1) === '>' && selector.length >= 3) { + match = [ + null, + selector, + null + ]; + } else { + match = rquickExpr$1.exec(selector); + } + if (match) { + if (match[1]) { + node = createFragment(selector, getElementDocument(context)).firstChild; + while (node) { + push$1.call(self, node); + node = node.nextSibling; + } + } else { + node = getElementDocument(context).getElementById(match[2]); + if (!node) { + return self; + } + if (node.id !== match[2]) { + return self.find(selector); + } + self.length = 1; + self[0] = node; + } + } else { + return DomQuery(context).find(selector); + } + } else { + this.add(selector, false); + } + return self; + }, + toArray: function () { + return Tools.toArray(this); + }, + add: function (items, sort) { + var self = this; + var nodes, i; + if (isString$1(items)) { + return self.add(DomQuery(items)); + } + if (sort !== false) { + nodes = DomQuery.unique(self.toArray().concat(DomQuery.makeArray(items))); + self.length = nodes.length; + for (i = 0; i < nodes.length; i++) { + self[i] = nodes[i]; + } + } else { + push$1.apply(self, DomQuery.makeArray(items)); + } + return self; + }, + attr: function (name, value) { + var self = this; + var hook; + if (typeof name === 'object') { + each$4(name, function (name, value) { + self.attr(name, value); + }); + } else if (isDefined(value)) { + this.each(function () { + var hook; + if (this.nodeType === 1) { + hook = attrHooks[name]; + if (hook && hook.set) { + hook.set(this, value); + return; + } + if (value === null) { + this.removeAttribute(name, 2); + } else { + this.setAttribute(name, value, 2); + } + } + }); + } else { + if (self[0] && self[0].nodeType === 1) { + hook = attrHooks[name]; + if (hook && hook.get) { + return hook.get(self[0], name); + } + if (booleanMap[name]) { + return self.prop(name) ? name : undefined; + } + value = self[0].getAttribute(name, 2); + if (value === null) { + value = undefined; + } + } + return value; + } + return self; + }, + removeAttr: function (name) { + return this.attr(name, null); + }, + prop: function (name, value) { + var self = this; + name = propFix[name] || name; + if (typeof name === 'object') { + each$4(name, function (name, value) { + self.prop(name, value); + }); + } else if (isDefined(value)) { + this.each(function () { + if (this.nodeType === 1) { + this[name] = value; + } + }); + } else { + if (self[0] && self[0].nodeType && name in self[0]) { + return self[0][name]; + } + return value; + } + return self; + }, + css: function (name, value) { + var self = this; + var elm, hook; + var camel = function (name) { + return name.replace(/-(\D)/g, function (a, b) { + return b.toUpperCase(); + }); + }; + var dashed = function (name) { + return name.replace(/[A-Z]/g, function (a) { + return '-' + a; + }); + }; + if (typeof name === 'object') { + each$4(name, function (name, value) { + self.css(name, value); + }); + } else { + if (isDefined(value)) { + name = camel(name); + if (typeof value === 'number' && !numericCssMap[name]) { + value = value.toString() + 'px'; + } + self.each(function () { + var style = this.style; + hook = cssHooks[name]; + if (hook && hook.set) { + hook.set(this, value); + return; + } + try { + this.style[cssFix[name] || name] = value; + } catch (ex) { + } + if (value === null || value === '') { + if (style.removeProperty) { + style.removeProperty(dashed(name)); + } else { + style.removeAttribute(name); + } + } + }); + } else { + elm = self[0]; + hook = cssHooks[name]; + if (hook && hook.get) { + return hook.get(elm); + } + if (elm.ownerDocument.defaultView) { + try { + return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name)); + } catch (ex) { + return undefined; + } + } else if (elm.currentStyle) { + return elm.currentStyle[camel(name)]; + } else { + return ''; + } + } + } + return self; + }, + remove: function () { + var self = this; + var node, i = this.length; + while (i--) { + node = self[i]; + Event.clean(node); + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + return this; + }, + empty: function () { + var self = this; + var node, i = this.length; + while (i--) { + node = self[i]; + while (node.firstChild) { + node.removeChild(node.firstChild); + } + } + return this; + }, + html: function (value) { + var self = this; + var i; + if (isDefined(value)) { + i = self.length; + try { + while (i--) { + self[i].innerHTML = value; + } + } catch (ex) { + DomQuery(self[i]).empty().append(value); + } + return self; + } + return self[0] ? self[0].innerHTML : ''; + }, + text: function (value) { + var self = this; + var i; + if (isDefined(value)) { + i = self.length; + while (i--) { + if ('innerText' in self[i]) { + self[i].innerText = value; + } else { + self[0].textContent = value; + } + } + return self; + } + return self[0] ? self[0].innerText || self[0].textContent : ''; + }, + append: function () { + return domManipulate(this, arguments, function (node) { + if (this.nodeType === 1 || this.host && this.host.nodeType === 1) { + this.appendChild(node); + } + }); + }, + prepend: function () { + return domManipulate(this, arguments, function (node) { + if (this.nodeType === 1 || this.host && this.host.nodeType === 1) { + this.insertBefore(node, this.firstChild); + } + }, true); + }, + before: function () { + var self = this; + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function (node) { + this.parentNode.insertBefore(node, this); + }); + } + return self; + }, + after: function () { + var self = this; + if (self[0] && self[0].parentNode) { + return domManipulate(self, arguments, function (node) { + this.parentNode.insertBefore(node, this.nextSibling); + }, true); + } + return self; + }, + appendTo: function (val) { + DomQuery(val).append(this); + return this; + }, + prependTo: function (val) { + DomQuery(val).prepend(this); + return this; + }, + replaceWith: function (content) { + return this.before(content).remove(); + }, + wrap: function (content) { + return wrap$1(this, content); + }, + wrapAll: function (content) { + return wrap$1(this, content, true); + }, + wrapInner: function (content) { + this.each(function () { + DomQuery(this).contents().wrapAll(content); + }); + return this; + }, + unwrap: function () { + return this.parent().each(function () { + DomQuery(this).replaceWith(this.childNodes); + }); + }, + clone: function () { + var result = []; + this.each(function () { + result.push(this.cloneNode(true)); + }); + return DomQuery(result); + }, + addClass: function (className) { + return this.toggleClass(className, true); + }, + removeClass: function (className) { + return this.toggleClass(className, false); + }, + toggleClass: function (className, state) { + var self = this; + if (typeof className !== 'string') { + return self; + } + if (className.indexOf(' ') !== -1) { + each$4(className.split(' '), function () { + self.toggleClass(this, state); + }); + } else { + self.each(function (index, node) { + var existingClassName, classState; + classState = hasClass(node, className); + if (classState !== state) { + existingClassName = node.className; + if (classState) { + node.className = trim$2((' ' + existingClassName + ' ').replace(' ' + className + ' ', ' ')); + } else { + node.className += existingClassName ? ' ' + className : className; + } + } + }); + } + return self; + }, + hasClass: function (className) { + return hasClass(this[0], className); + }, + each: function (callback) { + return each$4(this, callback); + }, + on: function (name, callback) { + return this.each(function () { + Event.bind(this, name, callback); + }); + }, + off: function (name, callback) { + return this.each(function () { + Event.unbind(this, name, callback); + }); + }, + trigger: function (name) { + return this.each(function () { + if (typeof name === 'object') { + Event.fire(this, name.type, name); + } else { + Event.fire(this, name); + } + }); + }, + show: function () { + return this.css('display', ''); + }, + hide: function () { + return this.css('display', 'none'); + }, + slice: function () { + return new DomQuery(slice$1.apply(this, arguments)); + }, + eq: function (index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + find: function (selector) { + var i, l; + var ret = []; + for (i = 0, l = this.length; i < l; i++) { + DomQuery.find(selector, this[i], ret); + } + return DomQuery(ret); + }, + filter: function (selector) { + if (typeof selector === 'function') { + return DomQuery(grep(this.toArray(), function (item, i) { + return selector(i, item); + })); + } + return DomQuery(DomQuery.filter(selector, this.toArray())); + }, + closest: function (selector) { + var result = []; + if (selector instanceof DomQuery) { + selector = selector[0]; + } + this.each(function (i, node) { + while (node) { + if (typeof selector === 'string' && DomQuery(node).is(selector)) { + result.push(node); + break; + } else if (node === selector) { + result.push(node); + break; + } + node = node.parentNode; + } + }); + return DomQuery(result); + }, + offset: function (offset) { + var elm, doc, docElm; + var x = 0, y = 0, pos; + if (!offset) { + elm = this[0]; + if (elm) { + doc = elm.ownerDocument; + docElm = doc.documentElement; + if (elm.getBoundingClientRect) { + pos = elm.getBoundingClientRect(); + x = pos.left + (docElm.scrollLeft || doc.body.scrollLeft) - docElm.clientLeft; + y = pos.top + (docElm.scrollTop || doc.body.scrollTop) - docElm.clientTop; + } + } + return { + left: x, + top: y + }; + } + return this.css(offset); + }, + push: push$1, + sort: Array.prototype.sort, + splice: Array.prototype.splice + }; + Tools.extend(DomQueryConstructor, { + extend: Tools.extend, + makeArray: function (object) { + if (isWindow(object) || object.nodeType) { + return [object]; + } + return Tools.toArray(object); + }, + inArray: inArray$1, + isArray: Tools.isArray, + each: each$4, + trim: trim$2, + grep: grep, + find: Sizzle, + expr: Sizzle.selectors, + unique: Sizzle.uniqueSort, + text: Sizzle.getText, + contains: Sizzle.contains, + filter: function (expr, elems, not) { + var i = elems.length; + if (not) { + expr = ':not(' + expr + ')'; + } + while (i--) { + if (elems[i].nodeType !== 1) { + elems.splice(i, 1); + } + } + if (elems.length === 1) { + elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : []; + } else { + elems = DomQuery.find.matches(expr, elems); + } + return elems; + } + }); + var dir = function (el, prop, until) { + var matched = []; + var cur = el[prop]; + if (typeof until !== 'string' && until instanceof DomQuery) { + until = until[0]; + } + while (cur && cur.nodeType !== 9) { + if (until !== undefined) { + if (cur === until) { + break; + } + if (typeof until === 'string' && DomQuery(cur).is(until)) { + break; + } + } + if (cur.nodeType === 1) { + matched.push(cur); + } + cur = cur[prop]; + } + return matched; + }; + var sibling = function (node, siblingName, nodeType, until) { + var result = []; + if (until instanceof DomQuery) { + until = until[0]; + } + for (; node; node = node[siblingName]) { + if (nodeType && node.nodeType !== nodeType) { + continue; + } + if (until !== undefined) { + if (node === until) { + break; + } + if (typeof until === 'string' && DomQuery(node).is(until)) { + break; + } + } + result.push(node); + } + return result; + }; + var firstSibling = function (node, siblingName, nodeType) { + for (node = node[siblingName]; node; node = node[siblingName]) { + if (node.nodeType === nodeType) { + return node; + } + } + return null; + }; + each$4({ + parent: function (node) { + var parent = node.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function (node) { + return dir(node, 'parentNode'); + }, + next: function (node) { + return firstSibling(node, 'nextSibling', 1); + }, + prev: function (node) { + return firstSibling(node, 'previousSibling', 1); + }, + children: function (node) { + return sibling(node.firstChild, 'nextSibling', 1); + }, + contents: function (node) { + return Tools.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes); + } + }, function (name, fn) { + DomQueryConstructor.fn[name] = function (selector) { + var self = this; + var result = []; + self.each(function () { + var nodes = fn.call(result, this, selector, result); + if (nodes) { + if (DomQuery.isArray(nodes)) { + result.push.apply(result, nodes); + } else { + result.push(nodes); + } + } + }); + if (this.length > 1) { + if (!skipUniques[name]) { + result = DomQuery.unique(result); + } + if (name.indexOf('parents') === 0) { + result = result.reverse(); + } + } + var wrappedResult = DomQuery(result); + if (selector) { + return wrappedResult.filter(selector); + } + return wrappedResult; + }; + }); + each$4({ + parentsUntil: function (node, until) { + return dir(node, 'parentNode', until); + }, + nextUntil: function (node, until) { + return sibling(node, 'nextSibling', 1, until).slice(1); + }, + prevUntil: function (node, until) { + return sibling(node, 'previousSibling', 1, until).slice(1); + } + }, function (name, fn) { + DomQueryConstructor.fn[name] = function (selector, filter) { + var self = this; + var result = []; + self.each(function () { + var nodes = fn.call(result, this, selector, result); + if (nodes) { + if (DomQuery.isArray(nodes)) { + result.push.apply(result, nodes); + } else { + result.push(nodes); + } + } + }); + if (this.length > 1) { + result = DomQuery.unique(result); + if (name.indexOf('parents') === 0 || name === 'prevUntil') { + result = result.reverse(); + } + } + var wrappedResult = DomQuery(result); + if (filter) { + return wrappedResult.filter(filter); + } + return wrappedResult; + }; + }); + DomQueryConstructor.fn.is = function (selector) { + return !!selector && this.filter(selector).length > 0; + }; + DomQueryConstructor.fn.init.prototype = DomQueryConstructor.fn; + DomQueryConstructor.overrideDefaults = function (callback) { + var defaults; + var sub = function (selector, context) { + defaults = defaults || callback(); + if (arguments.length === 0) { + selector = defaults.element; + } + if (!context) { + context = defaults.context; + } + return new sub.fn.init(selector, context); + }; + DomQuery.extend(sub, this); + return sub; + }; + DomQueryConstructor.attrHooks = attrHooks; + DomQueryConstructor.cssHooks = cssHooks; + var DomQuery = DomQueryConstructor; + + var TreeWalker = function () { + function TreeWalker(startNode, rootNode) { + this.node = startNode; + this.rootNode = rootNode; + this.current = this.current.bind(this); + this.next = this.next.bind(this); + this.prev = this.prev.bind(this); + this.prev2 = this.prev2.bind(this); + } + TreeWalker.prototype.current = function () { + return this.node; + }; + TreeWalker.prototype.next = function (shallow) { + this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow); + return this.node; + }; + TreeWalker.prototype.prev = function (shallow) { + this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow); + return this.node; + }; + TreeWalker.prototype.prev2 = function (shallow) { + this.node = this.findPreviousNode(this.node, 'lastChild', 'previousSibling', shallow); + return this.node; + }; + TreeWalker.prototype.findSibling = function (node, startName, siblingName, shallow) { + var sibling, parent; + if (node) { + if (!shallow && node[startName]) { + return node[startName]; + } + if (node !== this.rootNode) { + sibling = node[siblingName]; + if (sibling) { + return sibling; + } + for (parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) { + sibling = parent[siblingName]; + if (sibling) { + return sibling; + } + } + } + } + }; + TreeWalker.prototype.findPreviousNode = function (node, startName, siblingName, shallow) { + var sibling, parent, child; + if (node) { + sibling = node[siblingName]; + if (this.rootNode && sibling === this.rootNode) { + return; + } + if (sibling) { + if (!shallow) { + for (child = sibling[startName]; child; child = child[startName]) { + if (!child[startName]) { + return child; + } + } + } + return sibling; + } + parent = node.parentNode; + if (parent && parent !== this.rootNode) { + return parent; + } + } + }; + return TreeWalker; + }(); + + var each$5 = Tools.each; + var grep$1 = Tools.grep; + var isIE = Env.ie; + var simpleSelectorRe = /^([a-z0-9],?)+$/i; + var whiteSpaceRegExp$2 = /^[ \t\r\n]*$/; + var setupAttrHooks = function (styles, settings, getContext) { + var keepValues = settings.keep_values; + var keepUrlHook = { + set: function ($elm, value, name) { + if (settings.url_converter) { + value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name, $elm[0]); + } + $elm.attr('data-mce-' + name, value).attr(name, value); + }, + get: function ($elm, name) { + return $elm.attr('data-mce-' + name) || $elm.attr(name); + } + }; + var attrHooks = { + style: { + set: function ($elm, value) { + if (value !== null && typeof value === 'object') { + $elm.css(value); + return; + } + if (keepValues) { + $elm.attr('data-mce-style', value); + } + if (value !== null && typeof value === 'string') { + $elm.removeAttr('style'); + $elm.css(styles.parse(value)); + } else { + $elm.attr('style', value); + } + }, + get: function ($elm) { + var value = $elm.attr('data-mce-style') || $elm.attr('style'); + value = styles.serialize(styles.parse(value), $elm[0].nodeName); + return value; + } + } + }; + if (keepValues) { + attrHooks.href = attrHooks.src = keepUrlHook; + } + return attrHooks; + }; + var updateInternalStyleAttr = function (styles, $elm) { + var rawValue = $elm.attr('style'); + var value = styles.serialize(styles.parse(rawValue), $elm[0].nodeName); + if (!value) { + value = null; + } + $elm.attr('data-mce-style', value); + }; + var findNodeIndex = function (node, normalized) { + var idx = 0, lastNodeType, nodeType; + if (node) { + for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) { + nodeType = node.nodeType; + if (normalized && nodeType === 3) { + if (nodeType === lastNodeType || !node.nodeValue.length) { + continue; + } + } + idx++; + lastNodeType = nodeType; + } + } + return idx; + }; + function DOMUtils(doc, settings) { + var _this = this; + if (settings === void 0) { + settings = {}; + } + var attrHooks; + var addedStyles = {}; + var win = domGlobals.window; + var files = {}; + var counter = 0; + var stdMode = true; + var boxModel = true; + var styleSheetLoader = StyleSheetLoader(doc, { + contentCssCors: settings.contentCssCors, + referrerPolicy: settings.referrerPolicy + }); + var boundEvents = []; + var schema = settings.schema ? settings.schema : Schema({}); + var styles = Styles({ + url_converter: settings.url_converter, + url_converter_scope: settings.url_converter_scope + }, settings.schema); + var events = settings.ownEvents ? new EventUtils() : EventUtils.Event; + var blockElementsMap = schema.getBlockElements(); + var $ = DomQuery.overrideDefaults(function () { + return { + context: doc, + element: self.getRoot() + }; + }); + var isBlock = function (node) { + if (typeof node === 'string') { + return !!blockElementsMap[node]; + } else if (node) { + var type = node.nodeType; + if (type) { + return !!(type === 1 && blockElementsMap[node.nodeName]); + } + } + return false; + }; + var get = function (elm) { + if (elm && doc && typeof elm === 'string') { + var node = doc.getElementById(elm); + if (node && node.id !== elm) { + return doc.getElementsByName(elm)[1]; + } else { + return node; + } + } + return elm; + }; + var $$ = function (elm) { + if (typeof elm === 'string') { + elm = get(elm); + } + return $(elm); + }; + var getAttrib = function (elm, name, defaultVal) { + var hook, value; + var $elm = $$(elm); + if ($elm.length) { + hook = attrHooks[name]; + if (hook && hook.get) { + value = hook.get($elm, name); + } else { + value = $elm.attr(name); + } + } + if (typeof value === 'undefined') { + value = defaultVal || ''; + } + return value; + }; + var getAttribs = function (elm) { + var node = get(elm); + if (!node) { + return []; + } + return node.attributes; + }; + var setAttrib = function (elm, name, value) { + var originalValue, hook; + if (value === '') { + value = null; + } + var $elm = $$(elm); + originalValue = $elm.attr(name); + if (!$elm.length) { + return; + } + hook = attrHooks[name]; + if (hook && hook.set) { + hook.set($elm, value, name); + } else { + $elm.attr(name, value); + } + if (originalValue !== value && settings.onSetAttrib) { + settings.onSetAttrib({ + attrElm: $elm, + attrName: name, + attrValue: value + }); + } + }; + var clone = function (node, deep) { + if (!isIE || node.nodeType !== 1 || deep) { + return node.cloneNode(deep); + } + if (!deep) { + var clone_1 = doc.createElement(node.nodeName); + each$5(getAttribs(node), function (attr) { + setAttrib(clone_1, attr.nodeName, getAttrib(node, attr.nodeName)); + }); + return clone_1; + } + return null; + }; + var getRoot = function () { + return settings.root_element || doc.body; + }; + var getViewPort = function (argWin) { + var vp = getBounds(argWin); + return { + x: vp.x(), + y: vp.y(), + w: vp.width(), + h: vp.height() + }; + }; + var getPos = function (elm, rootElm) { + return Position$1.getPos(doc.body, get(elm), rootElm); + }; + var setStyle = function (elm, name, value) { + var $elm = isString(name) ? $$(elm).css(name, value) : $$(elm).css(name); + if (settings.update_styles) { + updateInternalStyleAttr(styles, $elm); + } + }; + var setStyles = function (elm, stylesArg) { + var $elm = $$(elm).css(stylesArg); + if (settings.update_styles) { + updateInternalStyleAttr(styles, $elm); + } + }; + var getStyle = function (elm, name, computed) { + var $elm = $$(elm); + if (computed) { + return $elm.css(name); + } + name = name.replace(/-(\D)/g, function (a, b) { + return b.toUpperCase(); + }); + if (name === 'float') { + name = Env.browser.isIE() ? 'styleFloat' : 'cssFloat'; + } + return $elm[0] && $elm[0].style ? $elm[0].style[name] : undefined; + }; + var getSize = function (elm) { + var w, h; + elm = get(elm); + w = getStyle(elm, 'width'); + h = getStyle(elm, 'height'); + if (w.indexOf('px') === -1) { + w = 0; + } + if (h.indexOf('px') === -1) { + h = 0; + } + return { + w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth, + h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight + }; + }; + var getRect = function (elm) { + var pos, size; + elm = get(elm); + pos = getPos(elm); + size = getSize(elm); + return { + x: pos.x, + y: pos.y, + w: size.w, + h: size.h + }; + }; + var is = function (elm, selector) { + var i; + if (!elm) { + return false; + } + if (!Array.isArray(elm)) { + if (selector === '*') { + return elm.nodeType === 1; + } + if (simpleSelectorRe.test(selector)) { + var selectors = selector.toLowerCase().split(/,/); + var elmName = elm.nodeName.toLowerCase(); + for (i = selectors.length - 1; i >= 0; i--) { + if (selectors[i] === elmName) { + return true; + } + } + return false; + } + if (elm.nodeType && elm.nodeType !== 1) { + return false; + } + } + var elms = !Array.isArray(elm) ? [elm] : elm; + return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0; + }; + var getParents = function (elm, selector, root, collect) { + var result = []; + var selectorVal; + var node = get(elm); + collect = collect === undefined; + root = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null); + if (Tools.is(selector, 'string')) { + selectorVal = selector; + if (selector === '*') { + selector = function (node) { + return node.nodeType === 1; + }; + } else { + selector = function (node) { + return is(node, selectorVal); + }; + } + } + while (node) { + if (node === root || !node.nodeType || node.nodeType === 9) { + break; + } + if (!selector || typeof selector === 'function' && selector(node)) { + if (collect) { + result.push(node); + } else { + return [node]; + } + } + node = node.parentNode; + } + return collect ? result : null; + }; + var getParent = function (node, selector, root) { + var parents = getParents(node, selector, root, false); + return parents && parents.length > 0 ? parents[0] : null; + }; + var _findSib = function (node, selector, name) { + var func = selector; + if (node) { + if (typeof selector === 'string') { + func = function (node) { + return is(node, selector); + }; + } + for (node = node[name]; node; node = node[name]) { + if (typeof func === 'function' && func(node)) { + return node; + } + } + } + return null; + }; + var getNext = function (node, selector) { + return _findSib(node, selector, 'nextSibling'); + }; + var getPrev = function (node, selector) { + return _findSib(node, selector, 'previousSibling'); + }; + var select = function (selector, scope) { + return Sizzle(selector, get(scope) || settings.root_element || doc, []); + }; + var run = function (elm, func, scope) { + var result; + var node = typeof elm === 'string' ? get(elm) : elm; + if (!node) { + return false; + } + if (Tools.isArray(node) && (node.length || node.length === 0)) { + result = []; + each$5(node, function (elm, i) { + if (elm) { + if (typeof elm === 'string') { + elm = get(elm); + } + result.push(func.call(scope, elm, i)); + } + }); + return result; + } + var context = scope ? scope : _this; + return func.call(context, node); + }; + var setAttribs = function (elm, attrs) { + $$(elm).each(function (i, node) { + each$5(attrs, function (value, name) { + setAttrib(node, name, value); + }); + }); + }; + var setHTML = function (elm, html) { + var $elm = $$(elm); + if (isIE) { + $elm.each(function (i, target) { + if (target.canHaveHTML === false) { + return; + } + while (target.firstChild) { + target.removeChild(target.firstChild); + } + try { + target.innerHTML = '
' + html; + target.removeChild(target.firstChild); + } catch (ex) { + DomQuery('

').html('
' + html).contents().slice(1).appendTo(target); + } + return html; + }); + } else { + $elm.html(html); + } + }; + var add = function (parentElm, name, attrs, html, create) { + return run(parentElm, function (parentElm) { + var newElm = typeof name === 'string' ? doc.createElement(name) : name; + setAttribs(newElm, attrs); + if (html) { + if (typeof html !== 'string' && html.nodeType) { + newElm.appendChild(html); + } else if (typeof html === 'string') { + setHTML(newElm, html); + } + } + return !create ? parentElm.appendChild(newElm) : newElm; + }); + }; + var create = function (name, attrs, html) { + return add(doc.createElement(name), name, attrs, html, true); + }; + var decode = Entities.decode; + var encode = Entities.encodeAllRaw; + var createHTML = function (name, attrs, html) { + var outHtml = '', key; + outHtml += '<' + name; + for (key in attrs) { + if (attrs.hasOwnProperty(key) && attrs[key] !== null && typeof attrs[key] !== 'undefined') { + outHtml += ' ' + key + '="' + encode(attrs[key]) + '"'; + } + } + if (typeof html !== 'undefined') { + return outHtml + '>' + html + ''; + } + return outHtml + ' />'; + }; + var createFragment = function (html) { + var node; + var container = doc.createElement('div'); + var frag = doc.createDocumentFragment(); + if (html) { + container.innerHTML = html; + } + while (node = container.firstChild) { + frag.appendChild(node); + } + return frag; + }; + var remove = function (node, keepChildren) { + var $node = $$(node); + if (keepChildren) { + $node.each(function () { + var child; + while (child = this.firstChild) { + if (child.nodeType === 3 && child.data.length === 0) { + this.removeChild(child); + } else { + this.parentNode.insertBefore(child, this); + } + } + }).remove(); + } else { + $node.remove(); + } + return $node.length > 1 ? $node.toArray() : $node[0]; + }; + var removeAllAttribs = function (e) { + return run(e, function (e) { + var i; + var attrs = e.attributes; + for (i = attrs.length - 1; i >= 0; i--) { + e.removeAttributeNode(attrs.item(i)); + } + }); + }; + var parseStyle = function (cssText) { + return styles.parse(cssText); + }; + var serializeStyle = function (stylesArg, name) { + return styles.serialize(stylesArg, name); + }; + var addStyle = function (cssText) { + var head, styleElm; + if (self !== DOMUtils.DOM && doc === domGlobals.document) { + if (addedStyles[cssText]) { + return; + } + addedStyles[cssText] = true; + } + styleElm = doc.getElementById('mceDefaultStyles'); + if (!styleElm) { + styleElm = doc.createElement('style'); + styleElm.id = 'mceDefaultStyles'; + styleElm.type = 'text/css'; + head = doc.getElementsByTagName('head')[0]; + if (head.firstChild) { + head.insertBefore(styleElm, head.firstChild); + } else { + head.appendChild(styleElm); + } + } + if (styleElm.styleSheet) { + styleElm.styleSheet.cssText += cssText; + } else { + styleElm.appendChild(doc.createTextNode(cssText)); + } + }; + var loadCSS = function (url) { + var head; + if (self !== DOMUtils.DOM && doc === domGlobals.document) { + DOMUtils.DOM.loadCSS(url); + return; + } + if (!url) { + url = ''; + } + head = doc.getElementsByTagName('head')[0]; + each$5(url.split(','), function (url) { + var link; + url = Tools._addCacheSuffix(url); + if (files[url]) { + return; + } + files[url] = true; + link = create('link', __assign(__assign({ + rel: 'stylesheet', + type: 'text/css', + href: url + }, settings.contentCssCors ? { crossOrigin: 'anonymous' } : {}), settings.referrerPolicy ? { referrerPolicy: settings.referrerPolicy } : {})); + head.appendChild(link); + }); + }; + var toggleClass = function (elm, cls, state) { + $$(elm).toggleClass(cls, state).each(function () { + if (this.className === '') { + DomQuery(this).attr('class', null); + } + }); + }; + var addClass = function (elm, cls) { + $$(elm).addClass(cls); + }; + var removeClass = function (elm, cls) { + toggleClass(elm, cls, false); + }; + var hasClass = function (elm, cls) { + return $$(elm).hasClass(cls); + }; + var show = function (elm) { + $$(elm).show(); + }; + var hide = function (elm) { + $$(elm).hide(); + }; + var isHidden = function (elm) { + return $$(elm).css('display') === 'none'; + }; + var uniqueId = function (prefix) { + return (!prefix ? 'mce_' : prefix) + counter++; + }; + var getOuterHTML = function (elm) { + var node = typeof elm === 'string' ? get(elm) : elm; + return NodeType.isElement(node) ? node.outerHTML : DomQuery('
').append(DomQuery(node).clone()).html(); + }; + var setOuterHTML = function (elm, html) { + $$(elm).each(function () { + try { + if ('outerHTML' in this) { + this.outerHTML = html; + return; + } + } catch (ex) { + } + remove(DomQuery(this).html(html), true); + }); + }; + var insertAfter = function (node, reference) { + var referenceNode = get(reference); + return run(node, function (node) { + var parent, nextSibling; + parent = referenceNode.parentNode; + nextSibling = referenceNode.nextSibling; + if (nextSibling) { + parent.insertBefore(node, nextSibling); + } else { + parent.appendChild(node); + } + return node; + }); + }; + var replace = function (newElm, oldElm, keepChildren) { + return run(oldElm, function (oldElm) { + if (Tools.is(oldElm, 'array')) { + newElm = newElm.cloneNode(true); + } + if (keepChildren) { + each$5(grep$1(oldElm.childNodes), function (node) { + newElm.appendChild(node); + }); + } + return oldElm.parentNode.replaceChild(newElm, oldElm); + }); + }; + var rename = function (elm, name) { + var newElm; + if (elm.nodeName !== name.toUpperCase()) { + newElm = create(name); + each$5(getAttribs(elm), function (attrNode) { + setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName)); + }); + replace(newElm, elm, true); + } + return newElm || elm; + }; + var findCommonAncestor = function (a, b) { + var ps = a, pe; + while (ps) { + pe = b; + while (pe && ps !== pe) { + pe = pe.parentNode; + } + if (ps === pe) { + break; + } + ps = ps.parentNode; + } + if (!ps && a.ownerDocument) { + return a.ownerDocument.documentElement; + } + return ps; + }; + var toHex = function (rgbVal) { + return styles.toHex(Tools.trim(rgbVal)); + }; + var isEmpty = function (node, elements) { + var i, attributes, type, name, brCount = 0; + node = node.firstChild; + if (node) { + var walker = new TreeWalker(node, node.parentNode); + var whitespace = schema ? schema.getWhiteSpaceElements() : {}; + elements = elements || (schema ? schema.getNonEmptyElements() : null); + do { + type = node.nodeType; + if (NodeType.isElement(node)) { + var bogusVal = node.getAttribute('data-mce-bogus'); + if (bogusVal) { + node = walker.next(bogusVal === 'all'); + continue; + } + name = node.nodeName.toLowerCase(); + if (elements && elements[name]) { + if (name === 'br') { + brCount++; + node = walker.next(); + continue; + } + return false; + } + attributes = getAttribs(node); + i = attributes.length; + while (i--) { + name = attributes[i].nodeName; + if (name === 'name' || name === 'data-mce-bookmark') { + return false; + } + } + } + if (type === 8) { + return false; + } + if (type === 3 && !whiteSpaceRegExp$2.test(node.nodeValue)) { + return false; + } + if (type === 3 && node.parentNode && whitespace[node.parentNode.nodeName] && whiteSpaceRegExp$2.test(node.nodeValue)) { + return false; + } + node = walker.next(); + } while (node); + } + return brCount <= 1; + }; + var createRng = function () { + return doc.createRange(); + }; + var split = function (parentElm, splitElm, replacementElm) { + var r = createRng(), bef, aft, pa; + if (parentElm && splitElm) { + r.setStart(parentElm.parentNode, findNodeIndex(parentElm)); + r.setEnd(splitElm.parentNode, findNodeIndex(splitElm)); + bef = r.extractContents(); + r = createRng(); + r.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1); + r.setEnd(parentElm.parentNode, findNodeIndex(parentElm) + 1); + aft = r.extractContents(); + pa = parentElm.parentNode; + pa.insertBefore(TrimNode.trimNode(self, bef), parentElm); + if (replacementElm) { + pa.insertBefore(replacementElm, parentElm); + } else { + pa.insertBefore(splitElm, parentElm); + } + pa.insertBefore(TrimNode.trimNode(self, aft), parentElm); + remove(parentElm); + return replacementElm || splitElm; + } + }; + var bind = function (target, name, func, scope) { + if (Tools.isArray(target)) { + var i = target.length; + var rv = []; + while (i--) { + rv[i] = bind(target[i], name, func, scope); + } + return rv; + } + if (settings.collect && (target === doc || target === win)) { + boundEvents.push([ + target, + name, + func, + scope + ]); + } + return events.bind(target, name, func, scope || self); + }; + var unbind = function (target, name, func) { + var i; + if (Tools.isArray(target)) { + i = target.length; + var rv = []; + while (i--) { + rv[i] = unbind(target[i], name, func); + } + return rv; + } + if (boundEvents && (target === doc || target === win)) { + i = boundEvents.length; + while (i--) { + var item = boundEvents[i]; + if (target === item[0] && (!name || name === item[1]) && (!func || func === item[2])) { + events.unbind(item[0], item[1], item[2]); + } + } + } + return events.unbind(target, name, func); + }; + var fire = function (target, name, evt) { + return events.fire(target, name, evt); + }; + var getContentEditable = function (node) { + if (node && NodeType.isElement(node)) { + var contentEditable = node.getAttribute('data-mce-contenteditable'); + if (contentEditable && contentEditable !== 'inherit') { + return contentEditable; + } + return node.contentEditable !== 'inherit' ? node.contentEditable : null; + } else { + return null; + } + }; + var getContentEditableParent = function (node) { + var root = getRoot(); + var state = null; + for (; node && node !== root; node = node.parentNode) { + state = getContentEditable(node); + if (state !== null) { + break; + } + } + return state; + }; + var destroy = function () { + if (boundEvents) { + var i = boundEvents.length; + while (i--) { + var item = boundEvents[i]; + events.unbind(item[0], item[1], item[2]); + } + } + if (Sizzle.setDocument) { + Sizzle.setDocument(); + } + }; + var isChildOf = function (node, parent) { + while (node) { + if (parent === node) { + return true; + } + node = node.parentNode; + } + return false; + }; + var dumpRng = function (r) { + return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset; + }; + var self = { + doc: doc, + settings: settings, + win: win, + files: files, + stdMode: stdMode, + boxModel: boxModel, + styleSheetLoader: styleSheetLoader, + boundEvents: boundEvents, + styles: styles, + schema: schema, + events: events, + isBlock: isBlock, + $: $, + $$: $$, + root: null, + clone: clone, + getRoot: getRoot, + getViewPort: getViewPort, + getRect: getRect, + getSize: getSize, + getParent: getParent, + getParents: getParents, + get: get, + getNext: getNext, + getPrev: getPrev, + select: select, + is: is, + add: add, + create: create, + createHTML: createHTML, + createFragment: createFragment, + remove: remove, + setStyle: setStyle, + getStyle: getStyle, + setStyles: setStyles, + removeAllAttribs: removeAllAttribs, + setAttrib: setAttrib, + setAttribs: setAttribs, + getAttrib: getAttrib, + getPos: getPos, + parseStyle: parseStyle, + serializeStyle: serializeStyle, + addStyle: addStyle, + loadCSS: loadCSS, + addClass: addClass, + removeClass: removeClass, + hasClass: hasClass, + toggleClass: toggleClass, + show: show, + hide: hide, + isHidden: isHidden, + uniqueId: uniqueId, + setHTML: setHTML, + getOuterHTML: getOuterHTML, + setOuterHTML: setOuterHTML, + decode: decode, + encode: encode, + insertAfter: insertAfter, + replace: replace, + rename: rename, + findCommonAncestor: findCommonAncestor, + toHex: toHex, + run: run, + getAttribs: getAttribs, + isEmpty: isEmpty, + createRng: createRng, + nodeIndex: findNodeIndex, + split: split, + bind: bind, + unbind: unbind, + fire: fire, + getContentEditable: getContentEditable, + getContentEditableParent: getContentEditableParent, + destroy: destroy, + isChildOf: isChildOf, + dumpRng: dumpRng + }; + attrHooks = setupAttrHooks(styles, settings, function () { + return self; + }); + return self; + } + (function (DOMUtils) { + DOMUtils.DOM = DOMUtils(domGlobals.document); + DOMUtils.nodeIndex = findNodeIndex; + }(DOMUtils || (DOMUtils = {}))); + var DOMUtils$1 = DOMUtils; + + var DOM = DOMUtils$1.DOM; + var each$6 = Tools.each, grep$2 = Tools.grep; + var QUEUED = 0; + var LOADING = 1; + var LOADED = 2; + var FAILED = 3; + var ScriptLoader = function () { + function ScriptLoader(settings) { + if (settings === void 0) { + settings = {}; + } + this.states = {}; + this.queue = []; + this.scriptLoadedCallbacks = {}; + this.queueLoadedCallbacks = []; + this.loading = 0; + this.settings = settings; + } + ScriptLoader.prototype._setReferrerPolicy = function (referrerPolicy) { + this.settings.referrerPolicy = referrerPolicy; + }; + ScriptLoader.prototype.loadScript = function (url, success, failure) { + var dom = DOM; + var elm, id; + var done = function () { + dom.remove(id); + if (elm) { + elm.onreadystatechange = elm.onload = elm = null; + } + success(); + }; + var error = function () { + if (isFunction(failure)) { + failure(); + } else { + if (typeof domGlobals.console !== 'undefined' && domGlobals.console.log) { + domGlobals.console.log('Failed to load script: ' + url); + } + } + }; + id = dom.uniqueId(); + elm = domGlobals.document.createElement('script'); + elm.id = id; + elm.type = 'text/javascript'; + elm.src = Tools._addCacheSuffix(url); + if (this.settings.referrerPolicy) { + dom.setAttrib(elm, 'referrerpolicy', this.settings.referrerPolicy); + } + elm.onload = done; + elm.onerror = error; + (domGlobals.document.getElementsByTagName('head')[0] || domGlobals.document.body).appendChild(elm); + }; + ScriptLoader.prototype.isDone = function (url) { + return this.states[url] === LOADED; + }; + ScriptLoader.prototype.markDone = function (url) { + this.states[url] = LOADED; + }; + ScriptLoader.prototype.add = function (url, success, scope, failure) { + var state = this.states[url]; + if (state === undefined) { + this.queue.push(url); + this.states[url] = QUEUED; + } + if (success) { + if (!this.scriptLoadedCallbacks[url]) { + this.scriptLoadedCallbacks[url] = []; + } + this.scriptLoadedCallbacks[url].push({ + success: success, + failure: failure, + scope: scope || this + }); + } + }; + ScriptLoader.prototype.load = function (url, success, scope, failure) { + return this.add(url, success, scope, failure); + }; + ScriptLoader.prototype.remove = function (url) { + delete this.states[url]; + delete this.scriptLoadedCallbacks[url]; + }; + ScriptLoader.prototype.loadQueue = function (success, scope, failure) { + this.loadScripts(this.queue, success, scope, failure); + }; + ScriptLoader.prototype.loadScripts = function (scripts, success, scope, failure) { + var self = this; + var loadScripts; + var failures = []; + var execCallbacks = function (name, url) { + each$6(self.scriptLoadedCallbacks[url], function (callback) { + if (isFunction(callback[name])) { + callback[name].call(callback.scope); + } + }); + self.scriptLoadedCallbacks[url] = undefined; + }; + self.queueLoadedCallbacks.push({ + success: success, + failure: failure, + scope: scope || this + }); + loadScripts = function () { + var loadingScripts = grep$2(scripts); + scripts.length = 0; + each$6(loadingScripts, function (url) { + if (self.states[url] === LOADED) { + execCallbacks('success', url); + return; + } + if (self.states[url] === FAILED) { + execCallbacks('failure', url); + return; + } + if (self.states[url] !== LOADING) { + self.states[url] = LOADING; + self.loading++; + self.loadScript(url, function () { + self.states[url] = LOADED; + self.loading--; + execCallbacks('success', url); + loadScripts(); + }, function () { + self.states[url] = FAILED; + self.loading--; + failures.push(url); + execCallbacks('failure', url); + loadScripts(); + }); + } + }); + if (!self.loading) { + var notifyCallbacks = self.queueLoadedCallbacks.slice(0); + self.queueLoadedCallbacks.length = 0; + each$6(notifyCallbacks, function (callback) { + if (failures.length === 0) { + if (isFunction(callback.success)) { + callback.success.call(callback.scope); + } + } else { + if (isFunction(callback.failure)) { + callback.failure.call(callback.scope, failures); + } + } + }); + } + }; + loadScripts(); + }; + ScriptLoader.ScriptLoader = new ScriptLoader(); + return ScriptLoader; + }(); + + var isRaw = function (str) { + return isObject(str) && has(str, 'raw'); + }; + var isTokenised = function (str) { + return isArray(str) && str.length > 1; + }; + var data = {}; + var currentCode = Cell('en'); + var getLanguageData = function () { + return get(data, currentCode.get()); + }; + var getData = function () { + return map$1(data, function (value) { + return __assign({}, value); + }); + }; + var setCode = function (newCode) { + if (newCode) { + currentCode.set(newCode); + } + }; + var getCode = function () { + return currentCode.get(); + }; + var add = function (code, items) { + var langData = data[code]; + if (!langData) { + data[code] = langData = {}; + } + each$1(items, function (translation, name) { + langData[name.toLowerCase()] = translation; + }); + }; + var translate = function (text) { + var langData = getLanguageData().getOr({}); + var toString = function (obj) { + if (isFunction(obj)) { + return Object.prototype.toString.call(obj); + } + return !isEmpty(obj) ? '' + obj : ''; + }; + var isEmpty = function (text) { + return text === '' || text === null || text === undefined; + }; + var getLangData = function (text) { + var textstr = toString(text); + return get(langData, textstr.toLowerCase()).map(toString).getOr(textstr); + }; + var removeContext = function (str) { + return str.replace(/{context:\w+}$/, ''); + }; + var translated = function (text) { + return text; + }; + if (isEmpty(text)) { + return translated(''); + } + if (isRaw(text)) { + return translated(toString(text.raw)); + } + if (isTokenised(text)) { + var values_1 = text.slice(1); + var substitued = getLangData(text[0]).replace(/\{([0-9]+)\}/g, function ($1, $2) { + return has(values_1, $2) ? toString(values_1[$2]) : $1; + }); + return translated(removeContext(substitued)); + } + return translated(removeContext(getLangData(text))); + }; + var isRtl = function () { + return getLanguageData().bind(function (items) { + return get(items, '_dir'); + }).exists(function (dir) { + return dir === 'rtl'; + }); + }; + var hasCode = function (code) { + return has(data, code); + }; + var I18n = { + getData: getData, + setCode: setCode, + getCode: getCode, + add: add, + translate: translate, + isRtl: isRtl, + hasCode: hasCode + }; + + function AddOnManager() { + var _this = this; + var items = []; + var urls = {}; + var lookup = {}; + var _listeners = []; + var runListeners = function (name, state) { + var matchedListeners = filter(_listeners, function (listener) { + return listener.name === name && listener.state === state; + }); + each(matchedListeners, function (listener) { + return listener.callback(); + }); + }; + var get = function (name) { + if (lookup[name]) { + return lookup[name].instance; + } + return undefined; + }; + var dependencies = function (name) { + var result; + if (lookup[name]) { + result = lookup[name].dependencies; + } + return result || []; + }; + var requireLangPack = function (name, languages) { + if (AddOnManager.languageLoad !== false) { + waitFor(name, function () { + var language = I18n.getCode(); + var wrappedLanguages = ',' + (languages || '') + ','; + if (!language || languages && wrappedLanguages.indexOf(',' + language + ',') === -1) { + return; + } + ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js'); + }, 'loaded'); + } + }; + var add = function (id, addOn, dependencies) { + var addOnConstructor = addOn; + items.push(addOnConstructor); + lookup[id] = { + instance: addOnConstructor, + dependencies: dependencies + }; + runListeners(id, 'added'); + return addOnConstructor; + }; + var remove = function (name) { + delete urls[name]; + delete lookup[name]; + }; + var createUrl = function (baseUrl, dep) { + if (typeof dep === 'object') { + return dep; + } + return typeof baseUrl === 'string' ? { + prefix: '', + resource: dep, + suffix: '' + } : { + prefix: baseUrl.prefix, + resource: dep, + suffix: baseUrl.suffix + }; + }; + var addComponents = function (pluginName, scripts) { + var pluginUrl = _this.urls[pluginName]; + each(scripts, function (script) { + ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script); + }); + }; + var loadDependencies = function (name, addOnUrl, success, scope) { + var deps = dependencies(name); + each(deps, function (dep) { + var newUrl = createUrl(addOnUrl, dep); + load(newUrl.resource, newUrl, undefined, undefined); + }); + if (success) { + if (scope) { + success.call(scope); + } else { + success.call(ScriptLoader); + } + } + }; + var load = function (name, addOnUrl, success, scope, failure) { + if (urls[name]) { + return; + } + var urlString = typeof addOnUrl === 'string' ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix; + if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) { + urlString = AddOnManager.baseURL + '/' + urlString; + } + urls[name] = urlString.substring(0, urlString.lastIndexOf('/')); + var done = function () { + runListeners(name, 'loaded'); + loadDependencies(name, addOnUrl, success, scope); + }; + if (lookup[name]) { + done(); + } else { + ScriptLoader.ScriptLoader.add(urlString, done, scope, failure); + } + }; + var waitFor = function (name, callback, state) { + if (state === void 0) { + state = 'added'; + } + if (has(lookup, name) && state === 'added') { + callback(); + } else if (has(urls, name) && state === 'loaded') { + callback(); + } else { + _listeners.push({ + name: name, + state: state, + callback: callback + }); + } + }; + return { + items: items, + urls: urls, + lookup: lookup, + _listeners: _listeners, + get: get, + dependencies: dependencies, + requireLangPack: requireLangPack, + add: add, + remove: remove, + createUrl: createUrl, + addComponents: addComponents, + load: load, + waitFor: waitFor + }; + } + (function (AddOnManager) { + AddOnManager.PluginManager = AddOnManager(); + AddOnManager.ThemeManager = AddOnManager(); + }(AddOnManager || (AddOnManager = {}))); + var AddOnManager$1 = AddOnManager; + + var first = function (fn, rate) { + var timer = null; + var cancel = function () { + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + }; + var throttle = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (timer === null) { + timer = domGlobals.setTimeout(function () { + fn.apply(null, args); + timer = null; + }, rate); + } + }; + return { + cancel: cancel, + throttle: throttle + }; + }; + var last$2 = function (fn, rate) { + var timer = null; + var cancel = function () { + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + }; + var throttle = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (timer !== null) { + domGlobals.clearTimeout(timer); + } + timer = domGlobals.setTimeout(function () { + fn.apply(null, args); + timer = null; + }, rate); + }; + return { + cancel: cancel, + throttle: throttle + }; + }; + + var read = function (element, attr) { + var value = get$3(element, attr); + return value === undefined || value === '' ? [] : value.split(' '); + }; + var add$1 = function (element, attr, id) { + var old = read(element, attr); + var nu = old.concat([id]); + set(element, attr, nu.join(' ')); + return true; + }; + var remove$2 = function (element, attr, id) { + var nu = filter(read(element, attr), function (v) { + return v !== id; + }); + if (nu.length > 0) { + set(element, attr, nu.join(' ')); + } else { + remove$1(element, attr); + } + return false; + }; + + var supports = function (element) { + return element.dom().classList !== undefined; + }; + var get$5 = function (element) { + return read(element, 'class'); + }; + var add$2 = function (element, clazz) { + return add$1(element, 'class', clazz); + }; + var remove$3 = function (element, clazz) { + return remove$2(element, 'class', clazz); + }; + + var add$3 = function (element, clazz) { + if (supports(element)) { + element.dom().classList.add(clazz); + } else { + add$2(element, clazz); + } + }; + var cleanClass = function (element) { + var classList = supports(element) ? element.dom().classList : get$5(element); + if (classList.length === 0) { + remove$1(element, 'class'); + } + }; + var remove$4 = function (element, clazz) { + if (supports(element)) { + var classList = element.dom().classList; + classList.remove(clazz); + } else { + remove$3(element, clazz); + } + cleanClass(element); + }; + var has$2 = function (element, clazz) { + return supports(element) && element.dom().classList.contains(clazz); + }; + + var descendants = function (scope, predicate) { + var result = []; + each(children(scope), function (x) { + if (predicate(x)) { + result = result.concat([x]); + } + result = result.concat(descendants(x, predicate)); + }); + return result; + }; + + var descendants$1 = function (scope, selector) { + return all(selector, scope); + }; + + function ClosestOrAncestor (is, ancestor, scope, a, isRoot) { + return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot); + } + + var ancestor = function (scope, predicate, isRoot) { + var element = scope.dom(); + var stop = isFunction(isRoot) ? isRoot : constant(false); + while (element.parentNode) { + element = element.parentNode; + var el = Element.fromDom(element); + if (predicate(el)) { + return Option.some(el); + } else if (stop(el)) { + break; + } + } + return Option.none(); + }; + var closest = function (scope, predicate, isRoot) { + var is = function (s, test) { + return test(s); + }; + return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot); + }; + + var ancestor$1 = function (scope, selector, isRoot) { + return ancestor(scope, function (e) { + return is(e, selector); + }, isRoot); + }; + var descendant = function (scope, selector) { + return one(selector, scope); + }; + var closest$1 = function (scope, selector, isRoot) { + return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot); + }; + + var annotation = constant('mce-annotation'); + var dataAnnotation = constant('data-mce-annotation'); + var dataAnnotationId = constant('data-mce-annotation-uid'); + + var identify = function (editor, annotationName) { + var rng = editor.selection.getRng(); + var start = Element.fromDom(rng.startContainer); + var root = Element.fromDom(editor.getBody()); + var selector = annotationName.fold(function () { + return '.' + annotation(); + }, function (an) { + return '[' + dataAnnotation() + '="' + an + '"]'; + }); + var newStart = child(start, rng.startOffset).getOr(start); + var closest = closest$1(newStart, selector, function (n) { + return eq(n, root); + }); + var getAttr = function (c, property) { + if (has$1(c, property)) { + return Option.some(get$3(c, property)); + } else { + return Option.none(); + } + }; + return closest.bind(function (c) { + return getAttr(c, '' + dataAnnotationId()).bind(function (uid) { + return getAttr(c, '' + dataAnnotation()).map(function (name) { + var elements = findMarkers(editor, uid); + return { + uid: uid, + name: name, + elements: elements + }; + }); + }); + }); + }; + var isAnnotation = function (elem) { + return isElement(elem) && has$2(elem, annotation()); + }; + var findMarkers = function (editor, uid) { + var body = Element.fromDom(editor.getBody()); + return descendants$1(body, '[' + dataAnnotationId() + '="' + uid + '"]'); + }; + var findAll = function (editor, name) { + var body = Element.fromDom(editor.getBody()); + var markers = descendants$1(body, '[' + dataAnnotation() + '="' + name + '"]'); + var directory = {}; + each(markers, function (m) { + var uid = get$3(m, dataAnnotationId()); + var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : []; + directory[uid] = nodesAlready.concat([m]); + }); + return directory; + }; + + var setup = function (editor, registry) { + var changeCallbacks = Cell({}); + var initData = function () { + return { + listeners: [], + previous: Cell(Option.none()) + }; + }; + var withCallbacks = function (name, f) { + updateCallbacks(name, function (data) { + f(data); + return data; + }); + }; + var updateCallbacks = function (name, f) { + var callbackMap = changeCallbacks.get(); + var data = callbackMap.hasOwnProperty(name) ? callbackMap[name] : initData(); + var outputData = f(data); + callbackMap[name] = outputData; + changeCallbacks.set(callbackMap); + }; + var fireCallbacks = function (name, uid, elements) { + withCallbacks(name, function (data) { + each(data.listeners, function (f) { + return f(true, name, { + uid: uid, + nodes: map(elements, function (elem) { + return elem.dom(); + }) + }); + }); + }); + }; + var fireNoAnnotation = function (name) { + withCallbacks(name, function (data) { + each(data.listeners, function (f) { + return f(false, name); + }); + }); + }; + var onNodeChange = last$2(function () { + var callbackMap = changeCallbacks.get(); + var annotations = sort(keys(callbackMap)); + each(annotations, function (name) { + updateCallbacks(name, function (data) { + var prev = data.previous.get(); + identify(editor, Option.some(name)).fold(function () { + if (prev.isSome()) { + fireNoAnnotation(name); + data.previous.set(Option.none()); + } + }, function (_a) { + var uid = _a.uid, name = _a.name, elements = _a.elements; + if (!prev.is(uid)) { + fireCallbacks(name, uid, elements); + data.previous.set(Option.some(uid)); + } + }); + return { + previous: data.previous, + listeners: data.listeners + }; + }); + }); + }, 30); + editor.on('remove', function () { + onNodeChange.cancel(); + }); + editor.on('NodeChange', function () { + onNodeChange.throttle(); + }); + var addListener = function (name, f) { + updateCallbacks(name, function (data) { + return { + previous: data.previous, + listeners: data.listeners.concat([f]) + }; + }); + }; + return { addListener: addListener }; + }; + + var setup$1 = function (editor, registry) { + var identifyParserNode = function (span) { + return Option.from(span.attr(dataAnnotation())).bind(registry.lookup); + }; + editor.on('init', function () { + editor.serializer.addNodeFilter('span', function (spans) { + each(spans, function (span) { + identifyParserNode(span).each(function (settings) { + if (settings.persistent === false) { + span.unwrap(); + } + }); + }); + }); + }); + }; + + var create$1 = function () { + var annotations = {}; + var register = function (name, settings) { + annotations[name] = { + name: name, + settings: settings + }; + }; + var lookup = function (name) { + return annotations.hasOwnProperty(name) ? Option.from(annotations[name]).map(function (a) { + return a.settings; + }) : Option.none(); + }; + return { + register: register, + lookup: lookup + }; + }; + + var unique = 0; + var generate = function (prefix) { + var date = new Date(); + var time = date.getTime(); + var random = Math.floor(Math.random() * 1000000000); + unique++; + return prefix + '_' + random + unique + String(time); + }; + + var add$4 = function (element, classes) { + each(classes, function (x) { + add$3(element, x); + }); + }; + + var fromHtml$1 = function (html, scope) { + var doc = scope || domGlobals.document; + var div = doc.createElement('div'); + div.innerHTML = html; + return children(Element.fromDom(div)); + }; + + var get$6 = function (element) { + return element.dom().innerHTML; + }; + var set$1 = function (element, content) { + var owner$1 = owner(element); + var docDom = owner$1.dom(); + var fragment = Element.fromDom(docDom.createDocumentFragment()); + var contentElements = fromHtml$1(content, docDom); + append$1(fragment, contentElements); + empty(element); + append(element, fragment); + }; + + var clone = function (original, isDeep) { + return Element.fromDom(original.dom().cloneNode(isDeep)); + }; + var shallow = function (original) { + return clone(original, false); + }; + var deep = function (original) { + return clone(original, true); + }; + + var ZWSP = zeroWidth; + var isZwsp = function (chr) { + return chr === ZWSP; + }; + var trim$3 = function (text) { + return text.replace(new RegExp(ZWSP, 'g'), ''); + }; + var Zwsp = { + isZwsp: isZwsp, + ZWSP: ZWSP, + trim: trim$3 + }; + + var isElement$2 = NodeType.isElement; + var isText$2 = NodeType.isText; + var isCaretContainerBlock = function (node) { + if (isText$2(node)) { + node = node.parentNode; + } + return isElement$2(node) && node.hasAttribute('data-mce-caret'); + }; + var isCaretContainerInline = function (node) { + return isText$2(node) && Zwsp.isZwsp(node.data); + }; + var isCaretContainer = function (node) { + return isCaretContainerBlock(node) || isCaretContainerInline(node); + }; + var hasContent = function (node) { + return node.firstChild !== node.lastChild || !NodeType.isBr(node.firstChild); + }; + var insertInline = function (node, before) { + var doc, sibling, textNode, parentNode; + doc = node.ownerDocument; + textNode = doc.createTextNode(Zwsp.ZWSP); + parentNode = node.parentNode; + if (!before) { + sibling = node.nextSibling; + if (isText$2(sibling)) { + if (isCaretContainer(sibling)) { + return sibling; + } + if (startsWithCaretContainer(sibling)) { + sibling.splitText(1); + return sibling; + } + } + if (node.nextSibling) { + parentNode.insertBefore(textNode, node.nextSibling); + } else { + parentNode.appendChild(textNode); + } + } else { + sibling = node.previousSibling; + if (isText$2(sibling)) { + if (isCaretContainer(sibling)) { + return sibling; + } + if (endsWithCaretContainer(sibling)) { + return sibling.splitText(sibling.data.length - 1); + } + } + parentNode.insertBefore(textNode, node); + } + return textNode; + }; + var isBeforeInline = function (pos) { + var container = pos.container(); + if (!pos || !NodeType.isText(container)) { + return false; + } + return container.data.charAt(pos.offset()) === Zwsp.ZWSP || pos.isAtStart() && isCaretContainerInline(container.previousSibling); + }; + var isAfterInline = function (pos) { + var container = pos.container(); + if (!pos || !NodeType.isText(container)) { + return false; + } + return container.data.charAt(pos.offset() - 1) === Zwsp.ZWSP || pos.isAtEnd() && isCaretContainerInline(container.nextSibling); + }; + var createBogusBr = function () { + var br = domGlobals.document.createElement('br'); + br.setAttribute('data-mce-bogus', '1'); + return br; + }; + var insertBlock = function (blockName, node, before) { + var doc, blockNode, parentNode; + doc = node.ownerDocument; + blockNode = doc.createElement(blockName); + blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after'); + blockNode.setAttribute('data-mce-bogus', 'all'); + blockNode.appendChild(createBogusBr()); + parentNode = node.parentNode; + if (!before) { + if (node.nextSibling) { + parentNode.insertBefore(blockNode, node.nextSibling); + } else { + parentNode.appendChild(blockNode); + } + } else { + parentNode.insertBefore(blockNode, node); + } + return blockNode; + }; + var startsWithCaretContainer = function (node) { + return isText$2(node) && node.data[0] === Zwsp.ZWSP; + }; + var endsWithCaretContainer = function (node) { + return isText$2(node) && node.data[node.data.length - 1] === Zwsp.ZWSP; + }; + var trimBogusBr = function (elm) { + var brs = elm.getElementsByTagName('br'); + var lastBr = brs[brs.length - 1]; + if (NodeType.isBogus(lastBr)) { + lastBr.parentNode.removeChild(lastBr); + } + }; + var showCaretContainerBlock = function (caretContainer) { + if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) { + trimBogusBr(caretContainer); + caretContainer.removeAttribute('data-mce-caret'); + caretContainer.removeAttribute('data-mce-bogus'); + caretContainer.removeAttribute('style'); + caretContainer.removeAttribute('_moz_abspos'); + return caretContainer; + } + return null; + }; + var isRangeInCaretContainerBlock = function (range) { + return isCaretContainerBlock(range.startContainer); + }; + + var isContentEditableTrue$1 = NodeType.isContentEditableTrue; + var isContentEditableFalse$1 = NodeType.isContentEditableFalse; + var isBr$2 = NodeType.isBr; + var isText$3 = NodeType.isText; + var isInvalidTextElement = NodeType.matchNodeNames([ + 'script', + 'style', + 'textarea' + ]); + var isAtomicInline = NodeType.matchNodeNames([ + 'img', + 'input', + 'textarea', + 'hr', + 'iframe', + 'video', + 'audio', + 'object' + ]); + var isTable$2 = NodeType.matchNodeNames(['table']); + var isCaretContainer$1 = isCaretContainer; + var isCaretCandidate = function (node) { + if (isCaretContainer$1(node)) { + return false; + } + if (isText$3(node)) { + if (isInvalidTextElement(node.parentNode)) { + return false; + } + return true; + } + return isAtomicInline(node) || isBr$2(node) || isTable$2(node) || isNonUiContentEditableFalse(node); + }; + var isUnselectable = function (node) { + return NodeType.isElement(node) && node.getAttribute('unselectable') === 'true'; + }; + var isNonUiContentEditableFalse = function (node) { + return isUnselectable(node) === false && isContentEditableFalse$1(node); + }; + var isInEditable = function (node, root) { + for (node = node.parentNode; node && node !== root; node = node.parentNode) { + if (isNonUiContentEditableFalse(node)) { + return false; + } + if (isContentEditableTrue$1(node)) { + return true; + } + } + return true; + }; + var isAtomicContentEditableFalse = function (node) { + if (!isNonUiContentEditableFalse(node)) { + return false; + } + return foldl(from$1(node.getElementsByTagName('*')), function (result, elm) { + return result || isContentEditableTrue$1(elm); + }, false) !== true; + }; + var isAtomic = function (node) { + return isAtomicInline(node) || isAtomicContentEditableFalse(node); + }; + var isEditableCaretCandidate = function (node, root) { + return isCaretCandidate(node) && isInEditable(node, root); + }; + + var round = Math.round; + var clone$1 = function (rect) { + if (!rect) { + return { + left: 0, + top: 0, + bottom: 0, + right: 0, + width: 0, + height: 0 + }; + } + return { + left: round(rect.left), + top: round(rect.top), + bottom: round(rect.bottom), + right: round(rect.right), + width: round(rect.width), + height: round(rect.height) + }; + }; + var collapse = function (rect, toStart) { + rect = clone$1(rect); + if (toStart) { + rect.right = rect.left; + } else { + rect.left = rect.left + rect.width; + rect.right = rect.left; + } + rect.width = 0; + return rect; + }; + var isEqual = function (rect1, rect2) { + return rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right; + }; + var isValidOverflow = function (overflowY, rect1, rect2) { + return overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2; + }; + var isAbove = function (rect1, rect2) { + if (rect1.bottom - rect1.height / 2 < rect2.top) { + return true; + } + if (rect1.top > rect2.bottom) { + return false; + } + return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2); + }; + var isBelow = function (rect1, rect2) { + if (rect1.top > rect2.bottom) { + return true; + } + if (rect1.bottom < rect2.top) { + return false; + } + return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2); + }; + var containsXY = function (rect, clientX, clientY) { + return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom; + }; + + var getSelectedNode = function (range) { + var startContainer = range.startContainer, startOffset = range.startOffset; + if (startContainer.hasChildNodes() && range.endOffset === startOffset + 1) { + return startContainer.childNodes[startOffset]; + } + return null; + }; + var getNode = function (container, offset) { + if (container.nodeType === 1 && container.hasChildNodes()) { + if (offset >= container.childNodes.length) { + offset = container.childNodes.length - 1; + } + container = container.childNodes[offset]; + } + return container; + }; + + var extendingChars = new RegExp('[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a' + '\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0' + '\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c' + '\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3' + '\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc' + '\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57' + '\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56' + '\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44' + '\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9' + '\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97' + '\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074' + '\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5' + '\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18' + '\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1ABE\u1b00-\u1b03\u1b34' + '\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9' + '\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9' + '\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20DD-\u20E0\u20e1\u20E2-\u20E4\u20e5-\u20f0\u2cef-\u2cf1' + '\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\uA670-\uA672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1' + '\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc' + '\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1' + '\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]'); + var isExtendingChar = function (ch) { + return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch); + }; + + var lift2 = function (oa, ob, f) { + return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none(); + }; + var lift3 = function (oa, ob, oc, f) { + return oa.isSome() && ob.isSome() && oc.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Option.none(); + }; + var someIf = function (b, a) { + return b ? Option.some(a) : Option.none(); + }; + + var slice$2 = [].slice; + var or = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + var args = slice$2.call(arguments); + return function (x) { + for (var i = 0; i < args.length; i++) { + if (args[i](x)) { + return true; + } + } + return false; + }; + }; + var and = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + var args = slice$2.call(arguments); + return function (x) { + for (var i = 0; i < args.length; i++) { + if (!args[i](x)) { + return false; + } + } + return true; + }; + }; + var Predicate = { + and: and, + or: or + }; + + var isElement$3 = NodeType.isElement; + var isCaretCandidate$1 = isCaretCandidate; + var isBlock$1 = NodeType.matchStyleValues('display', 'block table'); + var isFloated = NodeType.matchStyleValues('float', 'left right'); + var isValidElementCaretCandidate = Predicate.and(isElement$3, isCaretCandidate$1, not(isFloated)); + var isNotPre = not(NodeType.matchStyleValues('white-space', 'pre pre-line pre-wrap')); + var isText$4 = NodeType.isText; + var isBr$3 = NodeType.isBr; + var nodeIndex = DOMUtils$1.nodeIndex; + var resolveIndex = getNode; + var createRange = function (doc) { + return 'createRange' in doc ? doc.createRange() : DOMUtils$1.DOM.createRng(); + }; + var isWhiteSpace = function (chr) { + return chr && /[\r\n\t ]/.test(chr); + }; + var isRange = function (rng) { + return !!rng.setStart && !!rng.setEnd; + }; + var isHiddenWhiteSpaceRange = function (range) { + var container = range.startContainer; + var offset = range.startOffset; + var text; + if (isWhiteSpace(range.toString()) && isNotPre(container.parentNode) && NodeType.isText(container)) { + text = container.data; + if (isWhiteSpace(text[offset - 1]) || isWhiteSpace(text[offset + 1])) { + return true; + } + } + return false; + }; + var getBrClientRect = function (brNode) { + var doc = brNode.ownerDocument; + var rng = createRange(doc); + var nbsp$1 = doc.createTextNode(nbsp); + var parentNode = brNode.parentNode; + var clientRect; + parentNode.insertBefore(nbsp$1, brNode); + rng.setStart(nbsp$1, 0); + rng.setEnd(nbsp$1, 1); + clientRect = clone$1(rng.getBoundingClientRect()); + parentNode.removeChild(nbsp$1); + return clientRect; + }; + var getBoundingClientRectWebKitText = function (rng) { + var sc = rng.startContainer; + var ec = rng.endContainer; + var so = rng.startOffset; + var eo = rng.endOffset; + if (sc === ec && NodeType.isText(ec) && so === 0 && eo === 1) { + var newRng = rng.cloneRange(); + newRng.setEndAfter(ec); + return getBoundingClientRect(newRng); + } else { + return null; + } + }; + var isZeroRect = function (r) { + return r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0; + }; + var getBoundingClientRect = function (item) { + var clientRect, clientRects; + clientRects = item.getClientRects(); + if (clientRects.length > 0) { + clientRect = clone$1(clientRects[0]); + } else { + clientRect = clone$1(item.getBoundingClientRect()); + } + if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) { + return getBrClientRect(item); + } + if (isZeroRect(clientRect) && isRange(item)) { + return getBoundingClientRectWebKitText(item); + } + return clientRect; + }; + var collapseAndInflateWidth = function (clientRect, toStart) { + var newClientRect = collapse(clientRect, toStart); + newClientRect.width = 1; + newClientRect.right = newClientRect.left + 1; + return newClientRect; + }; + var getCaretPositionClientRects = function (caretPosition) { + var clientRects = []; + var beforeNode, node; + var addUniqueAndValidRect = function (clientRect) { + if (clientRect.height === 0) { + return; + } + if (clientRects.length > 0) { + if (isEqual(clientRect, clientRects[clientRects.length - 1])) { + return; + } + } + clientRects.push(clientRect); + }; + var addCharacterOffset = function (container, offset) { + var range = createRange(container.ownerDocument); + if (offset < container.data.length) { + if (isExtendingChar(container.data[offset])) { + return clientRects; + } + if (isExtendingChar(container.data[offset - 1])) { + range.setStart(container, offset); + range.setEnd(container, offset + 1); + if (!isHiddenWhiteSpaceRange(range)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false)); + return clientRects; + } + } + } + if (offset > 0) { + range.setStart(container, offset - 1); + range.setEnd(container, offset); + if (!isHiddenWhiteSpaceRange(range)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false)); + } + } + if (offset < container.data.length) { + range.setStart(container, offset); + range.setEnd(container, offset + 1); + if (!isHiddenWhiteSpaceRange(range)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), true)); + } + } + }; + if (isText$4(caretPosition.container())) { + addCharacterOffset(caretPosition.container(), caretPosition.offset()); + return clientRects; + } + if (isElement$3(caretPosition.container())) { + if (caretPosition.isAtEnd()) { + node = resolveIndex(caretPosition.container(), caretPosition.offset()); + if (isText$4(node)) { + addCharacterOffset(node, node.data.length); + } + if (isValidElementCaretCandidate(node) && !isBr$3(node)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false)); + } + } else { + node = resolveIndex(caretPosition.container(), caretPosition.offset()); + if (isText$4(node)) { + addCharacterOffset(node, 0); + } + if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false)); + return clientRects; + } + beforeNode = resolveIndex(caretPosition.container(), caretPosition.offset() - 1); + if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) { + if (isBlock$1(beforeNode) || isBlock$1(node) || !isValidElementCaretCandidate(node)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(beforeNode), false)); + } + } + if (isValidElementCaretCandidate(node)) { + addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), true)); + } + } + } + return clientRects; + }; + function CaretPosition(container, offset, clientRects) { + var isAtStart = function () { + if (isText$4(container)) { + return offset === 0; + } + return offset === 0; + }; + var isAtEnd = function () { + if (isText$4(container)) { + return offset >= container.data.length; + } + return offset >= container.childNodes.length; + }; + var toRange = function () { + var range; + range = createRange(container.ownerDocument); + range.setStart(container, offset); + range.setEnd(container, offset); + return range; + }; + var getClientRects = function () { + if (!clientRects) { + clientRects = getCaretPositionClientRects(CaretPosition(container, offset)); + } + return clientRects; + }; + var isVisible = function () { + return getClientRects().length > 0; + }; + var isEqual = function (caretPosition) { + return caretPosition && container === caretPosition.container() && offset === caretPosition.offset(); + }; + var getNode = function (before) { + return resolveIndex(container, before ? offset - 1 : offset); + }; + return { + container: constant(container), + offset: constant(offset), + toRange: toRange, + getClientRects: getClientRects, + isVisible: isVisible, + isAtStart: isAtStart, + isAtEnd: isAtEnd, + isEqual: isEqual, + getNode: getNode + }; + } + (function (CaretPosition) { + CaretPosition.fromRangeStart = function (range) { + return CaretPosition(range.startContainer, range.startOffset); + }; + CaretPosition.fromRangeEnd = function (range) { + return CaretPosition(range.endContainer, range.endOffset); + }; + CaretPosition.after = function (node) { + return CaretPosition(node.parentNode, nodeIndex(node) + 1); + }; + CaretPosition.before = function (node) { + return CaretPosition(node.parentNode, nodeIndex(node)); + }; + CaretPosition.isAbove = function (pos1, pos2) { + return lift2(head(pos2.getClientRects()), last(pos1.getClientRects()), isAbove).getOr(false); + }; + CaretPosition.isBelow = function (pos1, pos2) { + return lift2(last(pos2.getClientRects()), head(pos1.getClientRects()), isBelow).getOr(false); + }; + CaretPosition.isAtStart = function (pos) { + return pos ? pos.isAtStart() : false; + }; + CaretPosition.isAtEnd = function (pos) { + return pos ? pos.isAtEnd() : false; + }; + CaretPosition.isTextPosition = function (pos) { + return pos ? NodeType.isText(pos.container()) : false; + }; + CaretPosition.isElementPosition = function (pos) { + return CaretPosition.isTextPosition(pos) === false; + }; + }(CaretPosition || (CaretPosition = {}))); + var CaretPosition$1 = CaretPosition; + + var isText$5 = NodeType.isText; + var isBogus$1 = NodeType.isBogus; + var nodeIndex$1 = DOMUtils$1.nodeIndex; + var normalizedParent = function (node) { + var parentNode = node.parentNode; + if (isBogus$1(parentNode)) { + return normalizedParent(parentNode); + } + return parentNode; + }; + var getChildNodes = function (node) { + if (!node) { + return []; + } + return ArrUtils.reduce(node.childNodes, function (result, node) { + if (isBogus$1(node) && node.nodeName !== 'BR') { + result = result.concat(getChildNodes(node)); + } else { + result.push(node); + } + return result; + }, []); + }; + var normalizedTextOffset = function (node, offset) { + while (node = node.previousSibling) { + if (!isText$5(node)) { + break; + } + offset += node.data.length; + } + return offset; + }; + var equal = function (a) { + return function (b) { + return a === b; + }; + }; + var normalizedNodeIndex = function (node) { + var nodes, index, numTextFragments; + nodes = getChildNodes(normalizedParent(node)); + index = ArrUtils.findIndex(nodes, equal(node), node); + nodes = nodes.slice(0, index + 1); + numTextFragments = ArrUtils.reduce(nodes, function (result, node, i) { + if (isText$5(node) && isText$5(nodes[i - 1])) { + result++; + } + return result; + }, 0); + nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([node.nodeName])); + index = ArrUtils.findIndex(nodes, equal(node), node); + return index - numTextFragments; + }; + var createPathItem = function (node) { + var name; + if (isText$5(node)) { + name = 'text()'; + } else { + name = node.nodeName.toLowerCase(); + } + return name + '[' + normalizedNodeIndex(node) + ']'; + }; + var parentsUntil = function (root, node, predicate) { + var parents = []; + for (node = node.parentNode; node !== root; node = node.parentNode) { + if (predicate && predicate(node)) { + break; + } + parents.push(node); + } + return parents; + }; + var create$2 = function (root, caretPosition) { + var container, offset, path = [], outputOffset, childNodes, parents; + container = caretPosition.container(); + offset = caretPosition.offset(); + if (isText$5(container)) { + outputOffset = normalizedTextOffset(container, offset); + } else { + childNodes = container.childNodes; + if (offset >= childNodes.length) { + outputOffset = 'after'; + offset = childNodes.length - 1; + } else { + outputOffset = 'before'; + } + container = childNodes[offset]; + } + path.push(createPathItem(container)); + parents = parentsUntil(root, container); + parents = ArrUtils.filter(parents, not(NodeType.isBogus)); + path = path.concat(ArrUtils.map(parents, function (node) { + return createPathItem(node); + })); + return path.reverse().join('/') + ',' + outputOffset; + }; + var resolvePathItem = function (node, name, index) { + var nodes = getChildNodes(node); + nodes = ArrUtils.filter(nodes, function (node, index) { + return !isText$5(node) || !isText$5(nodes[index - 1]); + }); + nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([name])); + return nodes[index]; + }; + var findTextPosition = function (container, offset) { + var node = container, targetOffset = 0, dataLen; + while (isText$5(node)) { + dataLen = node.data.length; + if (offset >= targetOffset && offset <= targetOffset + dataLen) { + container = node; + offset = offset - targetOffset; + break; + } + if (!isText$5(node.nextSibling)) { + container = node; + offset = dataLen; + break; + } + targetOffset += dataLen; + node = node.nextSibling; + } + if (isText$5(container) && offset > container.data.length) { + offset = container.data.length; + } + return CaretPosition$1(container, offset); + }; + var resolve$1 = function (root, path) { + var parts, container, offset; + if (!path) { + return null; + } + parts = path.split(','); + path = parts[0].split('/'); + offset = parts.length > 1 ? parts[1] : 'before'; + container = ArrUtils.reduce(path, function (result, value) { + value = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(value); + if (!value) { + return null; + } + if (value[1] === 'text()') { + value[1] = '#text'; + } + return resolvePathItem(result, value[1], parseInt(value[2], 10)); + }, root); + if (!container) { + return null; + } + if (!isText$5(container)) { + if (offset === 'after') { + offset = nodeIndex$1(container) + 1; + } else { + offset = nodeIndex$1(container); + } + return CaretPosition$1(container.parentNode, offset); + } + return findTextPosition(container, parseInt(offset, 10)); + }; + + var trimEmptyTextNode = function (dom, node) { + if (NodeType.isText(node) && node.data.length === 0) { + dom.remove(node); + } + }; + var insertNode = function (dom, rng, node) { + rng.insertNode(node); + trimEmptyTextNode(dom, node.previousSibling); + trimEmptyTextNode(dom, node.nextSibling); + }; + var insertFragment = function (dom, rng, frag) { + var firstChild = Option.from(frag.firstChild); + var lastChild = Option.from(frag.lastChild); + rng.insertNode(frag); + firstChild.each(function (child) { + return trimEmptyTextNode(dom, child.previousSibling); + }); + lastChild.each(function (child) { + return trimEmptyTextNode(dom, child.nextSibling); + }); + }; + var rangeInsertNode = function (dom, rng, node) { + if (NodeType.isDocumentFragment(node)) { + insertFragment(dom, rng, node); + } else { + insertNode(dom, rng, node); + } + }; + + var isContentEditableFalse$2 = NodeType.isContentEditableFalse; + var getNormalizedTextOffset = function (trim, container, offset) { + var node, trimmedOffset; + trimmedOffset = trim(container.data.slice(0, offset)).length; + for (node = container.previousSibling; node && NodeType.isText(node); node = node.previousSibling) { + trimmedOffset += trim(node.data).length; + } + return trimmedOffset; + }; + var getPoint = function (dom, trim, normalized, rng, start) { + var container = rng[start ? 'startContainer' : 'endContainer']; + var offset = rng[start ? 'startOffset' : 'endOffset']; + var point = []; + var childNodes, after = 0; + var root = dom.getRoot(); + if (NodeType.isText(container)) { + point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset); + } else { + childNodes = container.childNodes; + if (offset >= childNodes.length && childNodes.length) { + after = 1; + offset = Math.max(0, childNodes.length - 1); + } + point.push(dom.nodeIndex(childNodes[offset], normalized) + after); + } + for (; container && container !== root; container = container.parentNode) { + point.push(dom.nodeIndex(container, normalized)); + } + return point; + }; + var getLocation = function (trim, selection, normalized, rng) { + var dom = selection.dom, bookmark = {}; + bookmark.start = getPoint(dom, trim, normalized, rng, true); + if (!selection.isCollapsed()) { + bookmark.end = getPoint(dom, trim, normalized, rng, false); + } + return bookmark; + }; + var findIndex$2 = function (dom, name, element) { + var count = 0; + Tools.each(dom.select(name), function (node) { + if (node.getAttribute('data-mce-bogus') === 'all') { + return; + } + if (node === element) { + return false; + } + count++; + }); + return count; + }; + var moveEndPoint = function (rng, start) { + var container, offset, childNodes; + var prefix = start ? 'start' : 'end'; + container = rng[prefix + 'Container']; + offset = rng[prefix + 'Offset']; + if (NodeType.isElement(container) && container.nodeName === 'TR') { + childNodes = container.childNodes; + container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)]; + if (container) { + offset = start ? 0 : container.childNodes.length; + rng['set' + (start ? 'Start' : 'End')](container, offset); + } + } + }; + var normalizeTableCellSelection = function (rng) { + moveEndPoint(rng, true); + moveEndPoint(rng, false); + return rng; + }; + var findSibling = function (node, offset) { + var sibling; + if (NodeType.isElement(node)) { + node = getNode(node, offset); + if (isContentEditableFalse$2(node)) { + return node; + } + } + if (isCaretContainer(node)) { + if (NodeType.isText(node) && isCaretContainerBlock(node)) { + node = node.parentNode; + } + sibling = node.previousSibling; + if (isContentEditableFalse$2(sibling)) { + return sibling; + } + sibling = node.nextSibling; + if (isContentEditableFalse$2(sibling)) { + return sibling; + } + } + }; + var findAdjacentContentEditableFalseElm = function (rng) { + return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset); + }; + var getOffsetBookmark = function (trim, normalized, selection) { + var element = selection.getNode(); + var name = element ? element.nodeName : null; + var rng = selection.getRng(); + if (isContentEditableFalse$2(element) || name === 'IMG') { + return { + name: name, + index: findIndex$2(selection.dom, name, element) + }; + } + var sibling = findAdjacentContentEditableFalseElm(rng); + if (sibling) { + name = sibling.tagName; + return { + name: name, + index: findIndex$2(selection.dom, name, sibling) + }; + } + return getLocation(trim, selection, normalized, rng); + }; + var getCaretBookmark = function (selection) { + var rng = selection.getRng(); + return { + start: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)), + end: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng)) + }; + }; + var getRangeBookmark = function (selection) { + return { rng: selection.getRng() }; + }; + var createBookmarkSpan = function (dom, id, filled) { + var args = { + 'data-mce-type': 'bookmark', + 'id': id, + 'style': 'overflow:hidden;line-height:0px' + }; + return filled ? dom.create('span', args, '') : dom.create('span', args); + }; + var getPersistentBookmark = function (selection, filled) { + var dom = selection.dom; + var rng = selection.getRng(); + var id = dom.uniqueId(); + var collapsed = selection.isCollapsed(); + var element = selection.getNode(); + var name = element.nodeName; + if (name === 'IMG') { + return { + name: name, + index: findIndex$2(dom, name, element) + }; + } + var rng2 = normalizeTableCellSelection(rng.cloneRange()); + if (!collapsed) { + rng2.collapse(false); + var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled); + rangeInsertNode(dom, rng2, endBookmarkNode); + } + rng = normalizeTableCellSelection(rng); + rng.collapse(true); + var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled); + rangeInsertNode(dom, rng, startBookmarkNode); + selection.moveToBookmark({ + id: id, + keep: 1 + }); + return { id: id }; + }; + var getBookmark = function (selection, type, normalized) { + if (type === 2) { + return getOffsetBookmark(Zwsp.trim, normalized, selection); + } else if (type === 3) { + return getCaretBookmark(selection); + } else if (type) { + return getRangeBookmark(selection); + } else { + return getPersistentBookmark(selection, false); + } + }; + var GetBookmark = { + getBookmark: getBookmark, + getUndoBookmark: curry(getOffsetBookmark, identity, true), + getPersistentBookmark: getPersistentBookmark + }; + + var TextWalker = function (startNode, rootNode, isBoundary) { + if (isBoundary === void 0) { + isBoundary = never; + } + var walker = new TreeWalker(startNode, rootNode); + var walk = function (direction) { + var next; + do { + next = walker[direction](); + } while (next && !NodeType.isText(next) && !isBoundary(next)); + return Option.from(next).filter(NodeType.isText); + }; + return { + current: function () { + return Option.from(walker.current()).filter(NodeType.isText); + }, + next: function () { + return walk('next'); + }, + prev: function () { + return walk('prev'); + }, + prev2: function () { + return walk('prev2'); + } + }; + }; + + var TextSeeker = function (dom, isBoundary) { + var isBlockBoundary = isBoundary ? isBoundary : function (node) { + return dom.isBlock(node) || NodeType.isBr(node) || NodeType.isContentEditableFalse(node); + }; + var walk = function (node, offset, walker, process) { + if (NodeType.isText(node)) { + var newOffset = process(node, offset, node.data); + if (newOffset !== -1) { + return Option.some({ + container: node, + offset: newOffset + }); + } + } + return walker().bind(function (next) { + return walk(next.container, next.offset, walker, process); + }); + }; + var backwards = function (node, offset, process, root) { + var walker = TextWalker(node, root, isBlockBoundary); + return walk(node, offset, function () { + return walker.prev().map(function (prev) { + return { + container: prev, + offset: prev.length + }; + }); + }, process).getOrNull(); + }; + var forwards = function (node, offset, process, root) { + var walker = TextWalker(node, root, isBlockBoundary); + return walk(node, offset, function () { + return walker.next().map(function (next) { + return { + container: next, + offset: 0 + }; + }); + }, process).getOrNull(); + }; + return { + backwards: backwards, + forwards: forwards + }; + }; + + var CARET_ID = '_mce_caret'; + var isCaretNode = function (node) { + return NodeType.isElement(node) && node.id === CARET_ID; + }; + var getParentCaretContainer = function (body, node) { + while (node && node !== body) { + if (node.id === CARET_ID) { + return node; + } + node = node.parentNode; + } + return null; + }; + + var isElement$4 = NodeType.isElement; + var isText$6 = NodeType.isText; + var removeNode = function (node) { + var parentNode = node.parentNode; + if (parentNode) { + parentNode.removeChild(node); + } + }; + var getNodeValue = function (node) { + try { + return node.nodeValue; + } catch (ex) { + return ''; + } + }; + var setNodeValue = function (node, text) { + if (text.length === 0) { + removeNode(node); + } else { + node.nodeValue = text; + } + }; + var trimCount = function (text) { + var trimmedText = Zwsp.trim(text); + return { + count: text.length - trimmedText.length, + text: trimmedText + }; + }; + var removeUnchanged = function (caretContainer, pos) { + remove$5(caretContainer); + return pos; + }; + var removeTextAndReposition = function (caretContainer, pos) { + var before = trimCount(caretContainer.data.substr(0, pos.offset())); + var after = trimCount(caretContainer.data.substr(pos.offset())); + var text = before.text + after.text; + if (text.length > 0) { + setNodeValue(caretContainer, text); + return CaretPosition$1(caretContainer, pos.offset() - before.count); + } else { + return pos; + } + }; + var removeElementAndReposition = function (caretContainer, pos) { + var parentNode = pos.container(); + var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) { + return index < pos.offset() ? CaretPosition$1(parentNode, pos.offset() - 1) : pos; + }).getOr(pos); + remove$5(caretContainer); + return newPosition; + }; + var removeTextCaretContainer = function (caretContainer, pos) { + return isText$6(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos); + }; + var removeElementCaretContainer = function (caretContainer, pos) { + return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos); + }; + var removeAndReposition = function (container, pos) { + return CaretPosition$1.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos); + }; + var remove$5 = function (caretContainerNode) { + if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) { + if (hasContent(caretContainerNode)) { + caretContainerNode.removeAttribute('data-mce-caret'); + } else { + removeNode(caretContainerNode); + } + } + if (isText$6(caretContainerNode)) { + var text = Zwsp.trim(getNodeValue(caretContainerNode)); + setNodeValue(caretContainerNode, text); + } + }; + var CaretContainerRemove = { + removeAndReposition: removeAndReposition, + remove: remove$5 + }; + + var DOM$1 = DOMUtils$1.DOM; + var getBodySetting = function (editor, name, defaultValue) { + var value = editor.getParam(name, defaultValue); + if (value.indexOf('=') !== -1) { + var bodyObj = editor.getParam(name, '', 'hash'); + return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue; + } else { + return value; + } + }; + var getIframeAttrs = function (editor) { + return editor.getParam('iframe_attrs', {}); + }; + var getDocType = function (editor) { + return editor.getParam('doctype', ''); + }; + var getDocumentBaseUrl = function (editor) { + return editor.getParam('document_base_url', ''); + }; + var getBodyId = function (editor) { + return getBodySetting(editor, 'body_id', 'tinymce'); + }; + var getBodyClass = function (editor) { + return getBodySetting(editor, 'body_class', ''); + }; + var getContentSecurityPolicy = function (editor) { + return editor.getParam('content_security_policy', ''); + }; + var shouldPutBrInPre = function (editor) { + return editor.getParam('br_in_pre', true); + }; + var getForcedRootBlock = function (editor) { + if (editor.getParam('force_p_newlines', false)) { + return 'p'; + } + var block = editor.getParam('forced_root_block', 'p'); + if (block === false) { + return ''; + } else if (block === true) { + return 'p'; + } else { + return block; + } + }; + var getForcedRootBlockAttrs = function (editor) { + return editor.getParam('forced_root_block_attrs', {}); + }; + var getBrNewLineSelector = function (editor) { + return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption'); + }; + var getNoNewLineSelector = function (editor) { + return editor.getParam('no_newline_selector', ''); + }; + var shouldKeepStyles = function (editor) { + return editor.getParam('keep_styles', true); + }; + var shouldEndContainerOnEmptyBlock = function (editor) { + return editor.getParam('end_container_on_empty_block', false); + }; + var getFontStyleValues = function (editor) { + return Tools.explode(editor.getParam('font_size_style_values', 'xx-small,x-small,small,medium,large,x-large,xx-large')); + }; + var getFontSizeClasses = function (editor) { + return Tools.explode(editor.getParam('font_size_classes', '')); + }; + var getImagesDataImgFilter = function (editor) { + return editor.getParam('images_dataimg_filter', constant(true), 'function'); + }; + var isAutomaticUploadsEnabled = function (editor) { + return editor.getParam('automatic_uploads', true, 'boolean'); + }; + var shouldReuseFileName = function (editor) { + return editor.getParam('images_reuse_filename', false, 'boolean'); + }; + var shouldReplaceBlobUris = function (editor) { + return editor.getParam('images_replace_blob_uris', true, 'boolean'); + }; + var getIconPackName = function (editor) { + return editor.getParam('icons', '', 'string'); + }; + var getIconsUrl = function (editor) { + return editor.getParam('icons_url', '', 'string'); + }; + var getImageUploadUrl = function (editor) { + return editor.getParam('images_upload_url', '', 'string'); + }; + var getImageUploadBasePath = function (editor) { + return editor.getParam('images_upload_base_path', '', 'string'); + }; + var getImagesUploadCredentials = function (editor) { + return editor.getParam('images_upload_credentials', false, 'boolean'); + }; + var getImagesUploadHandler = function (editor) { + return editor.getParam('images_upload_handler', null, 'function'); + }; + var shouldUseContentCssCors = function (editor) { + return editor.getParam('content_css_cors', false, 'boolean'); + }; + var getReferrerPolicy = function (editor) { + return editor.getParam('referrer_policy', '', 'string'); + }; + var getLanguageCode = function (editor) { + return editor.getParam('language', 'en', 'string'); + }; + var getLanguageUrl = function (editor) { + return editor.getParam('language_url', '', 'string'); + }; + var shouldIndentUseMargin = function (editor) { + return editor.getParam('indent_use_margin', false); + }; + var getIndentation = function (editor) { + return editor.getParam('indentation', '40px', 'string'); + }; + var getContentCss = function (editor) { + var contentCss = editor.settings.content_css; + if (isString(contentCss)) { + return map(contentCss.split(','), trim); + } else if (isArray(contentCss)) { + return contentCss; + } else if (contentCss === false || editor.inline) { + return []; + } else { + return ['default']; + } + }; + var getDirectionality = function (editor) { + return editor.getParam('directionality', I18n.isRtl() ? 'rtl' : undefined); + }; + var getInlineBoundarySelector = function (editor) { + return editor.getParam('inline_boundaries_selector', 'a[href],code,.mce-annotation', 'string'); + }; + var getObjectResizing = function (editor) { + return editor.getParam('object_resizing'); + }; + var getResizeImgProportional = function (editor) { + return editor.getParam('resize_img_proportional', true, 'boolean'); + }; + var getPlaceholder = function (editor) { + return editor.getParam('placeholder', DOM$1.getAttrib(editor.getElement(), 'placeholder'), 'string'); + }; + var Settings = { + getIframeAttrs: getIframeAttrs, + getDocType: getDocType, + getDocumentBaseUrl: getDocumentBaseUrl, + getBodyId: getBodyId, + getBodyClass: getBodyClass, + getContentSecurityPolicy: getContentSecurityPolicy, + shouldPutBrInPre: shouldPutBrInPre, + getForcedRootBlock: getForcedRootBlock, + getForcedRootBlockAttrs: getForcedRootBlockAttrs, + getBrNewLineSelector: getBrNewLineSelector, + getNoNewLineSelector: getNoNewLineSelector, + shouldKeepStyles: shouldKeepStyles, + shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock, + getFontStyleValues: getFontStyleValues, + getFontSizeClasses: getFontSizeClasses, + getIconPackName: getIconPackName, + getIconsUrl: getIconsUrl, + getImagesDataImgFilter: getImagesDataImgFilter, + isAutomaticUploadsEnabled: isAutomaticUploadsEnabled, + shouldReuseFileName: shouldReuseFileName, + shouldReplaceBlobUris: shouldReplaceBlobUris, + getImageUploadUrl: getImageUploadUrl, + getImageUploadBasePath: getImageUploadBasePath, + getImagesUploadCredentials: getImagesUploadCredentials, + getImagesUploadHandler: getImagesUploadHandler, + shouldUseContentCssCors: shouldUseContentCssCors, + getReferrerPolicy: getReferrerPolicy, + getLanguageCode: getLanguageCode, + getLanguageUrl: getLanguageUrl, + shouldIndentUseMargin: shouldIndentUseMargin, + getIndentation: getIndentation, + getContentCss: getContentCss, + getDirectionality: getDirectionality, + getInlineBoundarySelector: getInlineBoundarySelector, + getObjectResizing: getObjectResizing, + getResizeImgProportional: getResizeImgProportional, + getPlaceholder: getPlaceholder + }; + + var browser$3 = detect$3().browser; + var isContentEditableFalse$3 = NodeType.isContentEditableFalse; + var isTableCell$1 = function (node) { + return NodeType.isElement(node) && /^(TD|TH)$/i.test(node.tagName); + }; + var getAbsoluteClientRect = function (root, element, before) { + var clientRect = collapse(element.getBoundingClientRect(), before); + var docElm, scrollX, scrollY, margin, rootRect; + if (root.tagName === 'BODY') { + docElm = root.ownerDocument.documentElement; + scrollX = root.scrollLeft || docElm.scrollLeft; + scrollY = root.scrollTop || docElm.scrollTop; + } else { + rootRect = root.getBoundingClientRect(); + scrollX = root.scrollLeft - rootRect.left; + scrollY = root.scrollTop - rootRect.top; + } + clientRect.left += scrollX; + clientRect.right += scrollX; + clientRect.top += scrollY; + clientRect.bottom += scrollY; + clientRect.width = 1; + margin = element.offsetWidth - element.clientWidth; + if (margin > 0) { + if (before) { + margin *= -1; + } + clientRect.left += margin; + clientRect.right += margin; + } + return clientRect; + }; + var trimInlineCaretContainers = function (root) { + var contentEditableFalseNodes, node, sibling, i, data; + contentEditableFalseNodes = DomQuery('*[contentEditable=false]', root); + for (i = 0; i < contentEditableFalseNodes.length; i++) { + node = contentEditableFalseNodes[i]; + sibling = node.previousSibling; + if (endsWithCaretContainer(sibling)) { + data = sibling.data; + if (data.length === 1) { + sibling.parentNode.removeChild(sibling); + } else { + sibling.deleteData(data.length - 1, 1); + } + } + sibling = node.nextSibling; + if (startsWithCaretContainer(sibling)) { + data = sibling.data; + if (data.length === 1) { + sibling.parentNode.removeChild(sibling); + } else { + sibling.deleteData(0, 1); + } + } + } + }; + var FakeCaret = function (editor, root, isBlock, hasFocus) { + var lastVisualCaret = Cell(Option.none()); + var cursorInterval, caretContainerNode; + var rootBlock = Settings.getForcedRootBlock(editor); + var caretBlock = rootBlock.length > 0 ? rootBlock : 'p'; + var show = function (before, element) { + var clientRect, rng; + hide(); + if (isTableCell$1(element)) { + return null; + } + if (isBlock(element)) { + caretContainerNode = insertBlock(caretBlock, element, before); + clientRect = getAbsoluteClientRect(root, element, before); + DomQuery(caretContainerNode).css('top', clientRect.top); + var caret = DomQuery('
').css(clientRect).appendTo(root)[0]; + lastVisualCaret.set(Option.some({ + caret: caret, + element: element, + before: before + })); + lastVisualCaret.get().each(function (caretState) { + if (before) { + DomQuery(caretState.caret).addClass('mce-visual-caret-before'); + } + }); + startBlink(); + rng = element.ownerDocument.createRange(); + rng.setStart(caretContainerNode, 0); + rng.setEnd(caretContainerNode, 0); + } else { + caretContainerNode = insertInline(element, before); + rng = element.ownerDocument.createRange(); + if (isContentEditableFalse$3(caretContainerNode.nextSibling)) { + rng.setStart(caretContainerNode, 0); + rng.setEnd(caretContainerNode, 0); + } else { + rng.setStart(caretContainerNode, 1); + rng.setEnd(caretContainerNode, 1); + } + return rng; + } + return rng; + }; + var hide = function () { + trimInlineCaretContainers(root); + if (caretContainerNode) { + CaretContainerRemove.remove(caretContainerNode); + caretContainerNode = null; + } + lastVisualCaret.get().each(function (caretState) { + DomQuery(caretState.caret).remove(); + lastVisualCaret.set(Option.none()); + }); + Delay.clearInterval(cursorInterval); + }; + var startBlink = function () { + cursorInterval = Delay.setInterval(function () { + if (hasFocus()) { + DomQuery('div.mce-visual-caret', root).toggleClass('mce-visual-caret-hidden'); + } else { + DomQuery('div.mce-visual-caret', root).addClass('mce-visual-caret-hidden'); + } + }, 500); + }; + var reposition = function () { + lastVisualCaret.get().each(function (caretState) { + var clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before); + DomQuery(caretState.caret).css(__assign({}, clientRect)); + }); + }; + var destroy = function () { + return Delay.clearInterval(cursorInterval); + }; + var getCss = function () { + return '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}'; + }; + return { + show: show, + hide: hide, + getCss: getCss, + reposition: reposition, + destroy: destroy + }; + }; + var isFakeCaretTableBrowser = function () { + return browser$3.isIE() || browser$3.isEdge() || browser$3.isFirefox(); + }; + var isFakeCaretTarget = function (node) { + return isContentEditableFalse$3(node) || NodeType.isTable(node) && isFakeCaretTableBrowser(); + }; + + var isContentEditableFalse$4 = NodeType.isContentEditableFalse; + var isBlockLike = NodeType.matchStyleValues('display', 'block table table-cell table-caption list-item'); + var isCaretContainer$2 = isCaretContainer; + var isCaretContainerBlock$1 = isCaretContainerBlock; + var isElement$5 = NodeType.isElement; + var isCaretCandidate$2 = isCaretCandidate; + var isForwards = function (direction) { + return direction > 0; + }; + var isBackwards = function (direction) { + return direction < 0; + }; + var skipCaretContainers = function (walk, shallow) { + var node; + while (node = walk(shallow)) { + if (!isCaretContainerBlock$1(node)) { + return node; + } + } + return null; + }; + var findNode = function (node, direction, predicateFn, rootNode, shallow) { + var walker = new TreeWalker(node, rootNode); + if (isBackwards(direction)) { + if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) { + node = skipCaretContainers(walker.prev, true); + if (predicateFn(node)) { + return node; + } + } + while (node = skipCaretContainers(walker.prev, shallow)) { + if (predicateFn(node)) { + return node; + } + } + } + if (isForwards(direction)) { + if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) { + node = skipCaretContainers(walker.next, true); + if (predicateFn(node)) { + return node; + } + } + while (node = skipCaretContainers(walker.next, shallow)) { + if (predicateFn(node)) { + return node; + } + } + } + return null; + }; + var getParentBlock = function (node, rootNode) { + while (node && node !== rootNode) { + if (isBlockLike(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var isInSameBlock = function (caretPosition1, caretPosition2, rootNode) { + return getParentBlock(caretPosition1.container(), rootNode) === getParentBlock(caretPosition2.container(), rootNode); + }; + var getChildNodeAtRelativeOffset = function (relativeOffset, caretPosition) { + var container, offset; + if (!caretPosition) { + return null; + } + container = caretPosition.container(); + offset = caretPosition.offset(); + if (!isElement$5(container)) { + return null; + } + return container.childNodes[offset + relativeOffset]; + }; + var beforeAfter = function (before, node) { + var range = node.ownerDocument.createRange(); + if (before) { + range.setStartBefore(node); + range.setEndBefore(node); + } else { + range.setStartAfter(node); + range.setEndAfter(node); + } + return range; + }; + var isNodesInSameBlock = function (root, node1, node2) { + return getParentBlock(node1, root) === getParentBlock(node2, root); + }; + var lean = function (left, root, node) { + var sibling, siblingName; + if (left) { + siblingName = 'previousSibling'; + } else { + siblingName = 'nextSibling'; + } + while (node && node !== root) { + sibling = node[siblingName]; + if (isCaretContainer$2(sibling)) { + sibling = sibling[siblingName]; + } + if (isContentEditableFalse$4(sibling)) { + if (isNodesInSameBlock(root, sibling, node)) { + return sibling; + } + break; + } + if (isCaretCandidate$2(sibling)) { + break; + } + node = node.parentNode; + } + return null; + }; + var before$2 = curry(beforeAfter, true); + var after$1 = curry(beforeAfter, false); + var normalizeRange = function (direction, root, range) { + var node, container, offset, location; + var leanLeft = curry(lean, true, root); + var leanRight = curry(lean, false, root); + container = range.startContainer; + offset = range.startOffset; + if (isCaretContainerBlock(container)) { + if (!isElement$5(container)) { + container = container.parentNode; + } + location = container.getAttribute('data-mce-caret'); + if (location === 'before') { + node = container.nextSibling; + if (isFakeCaretTarget(node)) { + return before$2(node); + } + } + if (location === 'after') { + node = container.previousSibling; + if (isFakeCaretTarget(node)) { + return after$1(node); + } + } + } + if (!range.collapsed) { + return range; + } + if (NodeType.isText(container)) { + if (isCaretContainer$2(container)) { + if (direction === 1) { + node = leanRight(container); + if (node) { + return before$2(node); + } + node = leanLeft(container); + if (node) { + return after$1(node); + } + } + if (direction === -1) { + node = leanLeft(container); + if (node) { + return after$1(node); + } + node = leanRight(container); + if (node) { + return before$2(node); + } + } + return range; + } + if (endsWithCaretContainer(container) && offset >= container.data.length - 1) { + if (direction === 1) { + node = leanRight(container); + if (node) { + return before$2(node); + } + } + return range; + } + if (startsWithCaretContainer(container) && offset <= 1) { + if (direction === -1) { + node = leanLeft(container); + if (node) { + return after$1(node); + } + } + return range; + } + if (offset === container.data.length) { + node = leanRight(container); + if (node) { + return before$2(node); + } + return range; + } + if (offset === 0) { + node = leanLeft(container); + if (node) { + return after$1(node); + } + return range; + } + } + return range; + }; + var getRelativeCefElm = function (forward, caretPosition) { + return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$4); + }; + var getNormalizedRangeEndPoint = function (direction, root, range) { + var normalizedRange = normalizeRange(direction, root, range); + if (direction === -1) { + return CaretPosition.fromRangeStart(normalizedRange); + } + return CaretPosition.fromRangeEnd(normalizedRange); + }; + var getElementFromPosition = function (pos) { + return Option.from(pos.getNode()).map(Element.fromDom); + }; + var getElementFromPrevPosition = function (pos) { + return Option.from(pos.getNode(true)).map(Element.fromDom); + }; + var getVisualCaretPosition = function (walkFn, caretPosition) { + while (caretPosition = walkFn(caretPosition)) { + if (caretPosition.isVisible()) { + return caretPosition; + } + } + return caretPosition; + }; + var isMoveInsideSameBlock = function (from, to) { + var inSameBlock = isInSameBlock(from, to); + if (!inSameBlock && NodeType.isBr(from.getNode())) { + return true; + } + return inSameBlock; + }; + + var HDirection; + (function (HDirection) { + HDirection[HDirection['Backwards'] = -1] = 'Backwards'; + HDirection[HDirection['Forwards'] = 1] = 'Forwards'; + }(HDirection || (HDirection = {}))); + var isContentEditableFalse$5 = NodeType.isContentEditableFalse; + var isText$7 = NodeType.isText; + var isElement$6 = NodeType.isElement; + var isBr$4 = NodeType.isBr; + var isCaretCandidate$3 = isCaretCandidate; + var isAtomic$1 = isAtomic; + var isEditableCaretCandidate$1 = isEditableCaretCandidate; + var getParents = function (node, root) { + var parents = []; + while (node && node !== root) { + parents.push(node); + node = node.parentNode; + } + return parents; + }; + var nodeAtIndex = function (container, offset) { + if (container.hasChildNodes() && offset < container.childNodes.length) { + return container.childNodes[offset]; + } + return null; + }; + var getCaretCandidatePosition = function (direction, node) { + if (isForwards(direction)) { + if (isCaretCandidate$3(node.previousSibling) && !isText$7(node.previousSibling)) { + return CaretPosition$1.before(node); + } + if (isText$7(node)) { + return CaretPosition$1(node, 0); + } + } + if (isBackwards(direction)) { + if (isCaretCandidate$3(node.nextSibling) && !isText$7(node.nextSibling)) { + return CaretPosition$1.after(node); + } + if (isText$7(node)) { + return CaretPosition$1(node, node.data.length); + } + } + if (isBackwards(direction)) { + if (isBr$4(node)) { + return CaretPosition$1.before(node); + } + return CaretPosition$1.after(node); + } + return CaretPosition$1.before(node); + }; + var moveForwardFromBr = function (root, nextNode) { + var nextSibling = nextNode.nextSibling; + if (nextSibling && isCaretCandidate$3(nextSibling)) { + if (isText$7(nextSibling)) { + return CaretPosition$1(nextSibling, 0); + } else { + return CaretPosition$1.before(nextSibling); + } + } else { + return findCaretPosition(HDirection.Forwards, CaretPosition$1.after(nextNode), root); + } + }; + var findCaretPosition = function (direction, startPos, root) { + var node, nextNode, innerNode; + var rootContentEditableFalseElm, caretPosition; + if (!isElement$6(root) || !startPos) { + return null; + } + if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) { + caretPosition = CaretPosition$1.after(root.lastChild); + if (isBackwards(direction) && isCaretCandidate$3(root.lastChild) && isElement$6(root.lastChild)) { + return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition; + } + } else { + caretPosition = startPos; + } + var container = caretPosition.container(); + var offset = caretPosition.offset(); + if (isText$7(container)) { + if (isBackwards(direction) && offset > 0) { + return CaretPosition$1(container, --offset); + } + if (isForwards(direction) && offset < container.length) { + return CaretPosition$1(container, ++offset); + } + node = container; + } else { + if (isBackwards(direction) && offset > 0) { + nextNode = nodeAtIndex(container, offset - 1); + if (isCaretCandidate$3(nextNode)) { + if (!isAtomic$1(nextNode)) { + innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode); + if (innerNode) { + if (isText$7(innerNode)) { + return CaretPosition$1(innerNode, innerNode.data.length); + } + return CaretPosition$1.after(innerNode); + } + } + if (isText$7(nextNode)) { + return CaretPosition$1(nextNode, nextNode.data.length); + } + return CaretPosition$1.before(nextNode); + } + } + if (isForwards(direction) && offset < container.childNodes.length) { + nextNode = nodeAtIndex(container, offset); + if (isCaretCandidate$3(nextNode)) { + if (isBr$4(nextNode)) { + return moveForwardFromBr(root, nextNode); + } + if (!isAtomic$1(nextNode)) { + innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode); + if (innerNode) { + if (isText$7(innerNode)) { + return CaretPosition$1(innerNode, 0); + } + return CaretPosition$1.before(innerNode); + } + } + if (isText$7(nextNode)) { + return CaretPosition$1(nextNode, 0); + } + return CaretPosition$1.after(nextNode); + } + } + node = nextNode ? nextNode : caretPosition.getNode(); + } + if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) { + node = findNode(node, direction, constant(true), root, true); + if (isEditableCaretCandidate$1(node, root)) { + return getCaretCandidatePosition(direction, node); + } + } + nextNode = findNode(node, direction, isEditableCaretCandidate$1, root); + rootContentEditableFalseElm = ArrUtils.last(filter(getParents(container, root), isContentEditableFalse$5)); + if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) { + if (isForwards(direction)) { + caretPosition = CaretPosition$1.after(rootContentEditableFalseElm); + } else { + caretPosition = CaretPosition$1.before(rootContentEditableFalseElm); + } + return caretPosition; + } + if (nextNode) { + return getCaretCandidatePosition(direction, nextNode); + } + return null; + }; + var CaretWalker = function (root) { + return { + next: function (caretPosition) { + return findCaretPosition(HDirection.Forwards, caretPosition, root); + }, + prev: function (caretPosition) { + return findCaretPosition(HDirection.Backwards, caretPosition, root); + } + }; + }; + + var walkToPositionIn = function (forward, root, start) { + var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start); + return fromPosition(forward, root, position); + }; + var afterElement = function (node) { + return NodeType.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node); + }; + var isBeforeOrStart = function (position) { + if (CaretPosition$1.isTextPosition(position)) { + return position.offset() === 0; + } else { + return isCaretCandidate(position.getNode()); + } + }; + var isAfterOrEnd = function (position) { + if (CaretPosition$1.isTextPosition(position)) { + var container = position.container(); + return position.offset() === container.data.length; + } else { + return isCaretCandidate(position.getNode(true)); + } + }; + var isBeforeAfterSameElement = function (from, to) { + return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true); + }; + var isAtBr = function (position) { + return !CaretPosition$1.isTextPosition(position) && NodeType.isBr(position.getNode()); + }; + var shouldSkipPosition = function (forward, from, to) { + if (forward) { + return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to); + } else { + return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to); + } + }; + var fromPosition = function (forward, root, pos) { + var walker = CaretWalker(root); + return Option.from(forward ? walker.next(pos) : walker.prev(pos)); + }; + var navigate = function (forward, root, from) { + return fromPosition(forward, root, from).bind(function (to) { + if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) { + return fromPosition(forward, root, to); + } else { + return Option.some(to); + } + }); + }; + var navigateIgnore = function (forward, root, from, ignoreFilter) { + return navigate(forward, root, from).bind(function (pos) { + return ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Option.some(pos); + }); + }; + var positionIn = function (forward, element) { + var startNode = forward ? element.firstChild : element.lastChild; + if (NodeType.isText(startNode)) { + return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length)); + } else if (startNode) { + if (isCaretCandidate(startNode)) { + return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode)); + } else { + return walkToPositionIn(forward, element, startNode); + } + } else { + return Option.none(); + } + }; + var nextPosition = curry(fromPosition, true); + var prevPosition = curry(fromPosition, false); + var CaretFinder = { + fromPosition: fromPosition, + nextPosition: nextPosition, + prevPosition: prevPosition, + navigate: navigate, + navigateIgnore: navigateIgnore, + positionIn: positionIn, + firstPositionIn: curry(positionIn, true), + lastPositionIn: curry(positionIn, false) + }; + + var isStringPathBookmark = function (bookmark) { + return typeof bookmark.start === 'string'; + }; + var isRangeBookmark = function (bookmark) { + return bookmark.hasOwnProperty('rng'); + }; + var isIdBookmark = function (bookmark) { + return bookmark.hasOwnProperty('id'); + }; + var isIndexBookmark = function (bookmark) { + return bookmark.hasOwnProperty('name'); + }; + var isPathBookmark = function (bookmark) { + return Tools.isArray(bookmark.start); + }; + + var addBogus = function (dom, node) { + if (NodeType.isElement(node) && dom.isBlock(node) && !node.innerHTML && !Env.ie) { + node.innerHTML = '
'; + } + return node; + }; + var resolveCaretPositionBookmark = function (dom, bookmark) { + var rng, pos; + rng = dom.createRng(); + pos = resolve$1(dom.getRoot(), bookmark.start); + rng.setStart(pos.container(), pos.offset()); + pos = resolve$1(dom.getRoot(), bookmark.end); + rng.setEnd(pos.container(), pos.offset()); + return rng; + }; + var insertZwsp = function (node, rng) { + var textNode = node.ownerDocument.createTextNode(Zwsp.ZWSP); + node.appendChild(textNode); + rng.setStart(textNode, 0); + rng.setEnd(textNode, 0); + }; + var isEmpty = function (node) { + return node.hasChildNodes() === false; + }; + var tryFindRangePosition = function (node, rng) { + return CaretFinder.lastPositionIn(node).fold(function () { + return false; + }, function (pos) { + rng.setStart(pos.container(), pos.offset()); + rng.setEnd(pos.container(), pos.offset()); + return true; + }); + }; + var padEmptyCaretContainer = function (root, node, rng) { + if (isEmpty(node) && getParentCaretContainer(root, node)) { + insertZwsp(node, rng); + return true; + } else { + return false; + } + }; + var setEndPoint = function (dom, start, bookmark, rng) { + var point = bookmark[start ? 'start' : 'end']; + var i, node, offset, children; + var root = dom.getRoot(); + if (point) { + offset = point[0]; + for (node = root, i = point.length - 1; i >= 1; i--) { + children = node.childNodes; + if (padEmptyCaretContainer(root, node, rng)) { + return true; + } + if (point[i] > children.length - 1) { + if (padEmptyCaretContainer(root, node, rng)) { + return true; + } + return tryFindRangePosition(node, rng); + } + node = children[point[i]]; + } + if (node.nodeType === 3) { + offset = Math.min(point[0], node.nodeValue.length); + } + if (node.nodeType === 1) { + offset = Math.min(point[0], node.childNodes.length); + } + if (start) { + rng.setStart(node, offset); + } else { + rng.setEnd(node, offset); + } + } + return true; + }; + var isValidTextNode = function (node) { + return NodeType.isText(node) && node.data.length > 0; + }; + var restoreEndPoint = function (dom, suffix, bookmark) { + var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev; + var keep = bookmark.keep; + var container, offset; + if (marker) { + node = marker.parentNode; + if (suffix === 'start') { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + if (marker.hasChildNodes()) { + node = marker.firstChild; + idx = 1; + } else if (isValidTextNode(marker.nextSibling)) { + node = marker.nextSibling; + idx = 0; + } else if (isValidTextNode(marker.previousSibling)) { + node = marker.previousSibling; + idx = marker.previousSibling.data.length; + } else { + node = marker.parentNode; + idx = dom.nodeIndex(marker) + 1; + } + } + container = node; + offset = idx; + } else { + if (!keep) { + idx = dom.nodeIndex(marker); + } else { + if (marker.hasChildNodes()) { + node = marker.firstChild; + idx = 1; + } else if (isValidTextNode(marker.previousSibling)) { + node = marker.previousSibling; + idx = marker.previousSibling.data.length; + } else { + node = marker.parentNode; + idx = dom.nodeIndex(marker); + } + } + container = node; + offset = idx; + } + if (!keep) { + prev = marker.previousSibling; + next = marker.nextSibling; + Tools.each(Tools.grep(marker.childNodes), function (node) { + if (NodeType.isText(node)) { + node.nodeValue = node.nodeValue.replace(/\uFEFF/g, ''); + } + }); + while (marker = dom.get(bookmark.id + '_' + suffix)) { + dom.remove(marker, true); + } + if (prev && next && prev.nodeType === next.nodeType && NodeType.isText(prev) && !Env.opera) { + idx = prev.nodeValue.length; + prev.appendData(next.nodeValue); + dom.remove(next); + if (suffix === 'start') { + container = prev; + offset = idx; + } else { + container = prev; + offset = idx; + } + } + } + return Option.some(CaretPosition$1(container, offset)); + } else { + return Option.none(); + } + }; + var resolvePaths = function (dom, bookmark) { + var rng = dom.createRng(); + if (setEndPoint(dom, true, bookmark, rng) && setEndPoint(dom, false, bookmark, rng)) { + return Option.some(rng); + } else { + return Option.none(); + } + }; + var resolveId = function (dom, bookmark) { + var startPos = restoreEndPoint(dom, 'start', bookmark); + var endPos = restoreEndPoint(dom, 'end', bookmark); + return lift2(startPos, endPos.or(startPos), function (spos, epos) { + var rng = dom.createRng(); + rng.setStart(addBogus(dom, spos.container()), spos.offset()); + rng.setEnd(addBogus(dom, epos.container()), epos.offset()); + return rng; + }); + }; + var resolveIndex$1 = function (dom, bookmark) { + return Option.from(dom.select(bookmark.name)[bookmark.index]).map(function (elm) { + var rng = dom.createRng(); + rng.selectNode(elm); + return rng; + }); + }; + var resolve$2 = function (selection, bookmark) { + var dom = selection.dom; + if (bookmark) { + if (isPathBookmark(bookmark)) { + return resolvePaths(dom, bookmark); + } else if (isStringPathBookmark(bookmark)) { + return Option.some(resolveCaretPositionBookmark(dom, bookmark)); + } else if (isIdBookmark(bookmark)) { + return resolveId(dom, bookmark); + } else if (isIndexBookmark(bookmark)) { + return resolveIndex$1(dom, bookmark); + } else if (isRangeBookmark(bookmark)) { + return Option.some(bookmark.rng); + } + } + return Option.none(); + }; + var ResolveBookmark = { resolve: resolve$2 }; + + var getBookmark$1 = function (selection, type, normalized) { + return GetBookmark.getBookmark(selection, type, normalized); + }; + var moveToBookmark = function (selection, bookmark) { + ResolveBookmark.resolve(selection, bookmark).each(function (rng) { + selection.setRng(rng); + }); + }; + var isBookmarkNode$1 = function (node) { + return NodeType.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark'; + }; + var Bookmarks = { + getBookmark: getBookmark$1, + moveToBookmark: moveToBookmark, + isBookmarkNode: isBookmarkNode$1 + }; + + var is$2 = function (expected) { + return function (actual) { + return expected === actual; + }; + }; + var isNbsp = is$2(nbsp); + var isWhiteSpace$1 = function (chr) { + return chr !== '' && ' \f\n\r\t\x0B'.indexOf(chr) !== -1; + }; + var isContent = function (chr) { + return !isWhiteSpace$1(chr) && !isNbsp(chr); + }; + + var isNode = function (node) { + return !!node.nodeType; + }; + var isInlineBlock = function (node) { + return node && /^(IMG)$/.test(node.nodeName); + }; + var moveStart = function (dom, selection, rng) { + var offset = rng.startOffset; + var container = rng.startContainer, walker, node, nodes; + if (rng.startContainer === rng.endContainer) { + if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) { + return; + } + } + if (container.nodeType === 1) { + nodes = container.childNodes; + if (offset < nodes.length) { + container = nodes[offset]; + walker = new TreeWalker(container, dom.getParent(container, dom.isBlock)); + } else { + container = nodes[nodes.length - 1]; + walker = new TreeWalker(container, dom.getParent(container, dom.isBlock)); + walker.next(true); + } + for (node = walker.current(); node; node = walker.next()) { + if (node.nodeType === 3 && !isWhiteSpaceNode(node)) { + rng.setStart(node, 0); + selection.setRng(rng); + return; + } + } + } + }; + var getNonWhiteSpaceSibling = function (node, next, inc) { + if (node) { + var nextName = next ? 'nextSibling' : 'previousSibling'; + for (node = inc ? node : node[nextName]; node; node = node[nextName]) { + if (node.nodeType === 1 || !isWhiteSpaceNode(node)) { + return node; + } + } + } + }; + var isTextBlock$1 = function (editor, name) { + if (isNode(name)) { + name = name.nodeName; + } + return !!editor.schema.getTextBlockElements()[name.toLowerCase()]; + }; + var isValid = function (ed, parent, child) { + return ed.schema.isValidChild(parent, child); + }; + var isWhiteSpaceNode = function (node) { + return node && NodeType.isText(node) && /^([\t \r\n]+|)$/.test(node.nodeValue); + }; + var isEmptyTextNode = function (node) { + return node && NodeType.isText(node) && node.length === 0; + }; + var replaceVars = function (value, vars) { + if (typeof value !== 'string') { + value = value(vars); + } else if (vars) { + value = value.replace(/%(\w+)/g, function (str, name) { + return vars[name] || str; + }); + } + return value; + }; + var isEq = function (str1, str2) { + str1 = str1 || ''; + str2 = str2 || ''; + str1 = '' + (str1.nodeName || str1); + str2 = '' + (str2.nodeName || str2); + return str1.toLowerCase() === str2.toLowerCase(); + }; + var normalizeStyleValue = function (dom, value, name) { + if (name === 'color' || name === 'backgroundColor') { + value = dom.toHex(value); + } + if (name === 'fontWeight' && value === 700) { + value = 'bold'; + } + if (name === 'fontFamily') { + value = value.replace(/[\'\"]/g, '').replace(/,\s+/g, ','); + } + return '' + value; + }; + var getStyle = function (dom, node, name) { + return normalizeStyleValue(dom, dom.getStyle(node, name), name); + }; + var getTextDecoration = function (dom, node) { + var decoration; + dom.getParent(node, function (n) { + decoration = dom.getStyle(n, 'text-decoration'); + return decoration && decoration !== 'none'; + }); + return decoration; + }; + var getParents$1 = function (dom, node, selector) { + return dom.getParents(node, selector, dom.getRoot()); + }; + + var isBookmarkNode$2 = Bookmarks.isBookmarkNode; + var getParents$2 = getParents$1, isWhiteSpaceNode$1 = isWhiteSpaceNode, isTextBlock$2 = isTextBlock$1; + var isBogusBr = function (node) { + return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling; + }; + var findParentContentEditable = function (dom, node) { + var parent = node; + while (parent) { + if (NodeType.isElement(parent) && dom.getContentEditable(parent)) { + return dom.getContentEditable(parent) === 'false' ? parent : node; + } + parent = parent.parentNode; + } + return node; + }; + var walkText = function (start, node, offset, predicate) { + var str = node.data; + for (var i = offset; start ? i >= 0 : i < str.length; start ? i-- : i++) { + if (predicate(str.charAt(i))) { + return start ? i + 1 : i; + } + } + return -1; + }; + var findSpace = function (start, node, offset) { + return walkText(start, node, offset, function (c) { + return isNbsp(c) || isWhiteSpace$1(c); + }); + }; + var findContent = function (start, node, offset) { + return walkText(start, node, offset, isContent); + }; + var findWordEndPoint = function (dom, body, container, offset, start, includeTrailingSpaces) { + var lastTextNode; + var rootNode = dom.getParent(container, dom.isBlock) || body; + var walk = function (container, offset, pred) { + var textSeeker = TextSeeker(dom); + var walker = start ? textSeeker.backwards : textSeeker.forwards; + return Option.from(walker(container, offset, function (text, textOffset) { + if (isBookmarkNode$2(text.parentNode)) { + return -1; + } else { + lastTextNode = text; + return pred(start, text, textOffset); + } + }, rootNode)); + }; + var spaceResult = walk(container, offset, findSpace); + return spaceResult.bind(function (result) { + return includeTrailingSpaces ? walk(result.container, result.offset + (start ? -1 : 0), findContent) : Option.some(result); + }).orThunk(function () { + return lastTextNode ? Option.some({ + container: lastTextNode, + offset: start ? 0 : lastTextNode.length + }) : Option.none(); + }); + }; + var findSelectorEndPoint = function (dom, format, rng, container, siblingName) { + if (NodeType.isText(container) && container.nodeValue.length === 0 && container[siblingName]) { + container = container[siblingName]; + } + var parents = getParents$2(dom, container); + for (var i = 0; i < parents.length; i++) { + for (var y = 0; y < format.length; y++) { + var curFormat = format[y]; + if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) { + continue; + } + if (dom.is(parents[i], curFormat.selector)) { + return parents[i]; + } + } + } + return container; + }; + var findBlockEndPoint = function (editor, format, container, siblingName) { + var node; + var dom = editor.dom; + var root = dom.getRoot(); + if (!format[0].wrapper) { + node = dom.getParent(container, format[0].block, root); + } + if (!node) { + var scopeRoot = dom.getParent(container, 'LI,TD,TH'); + node = dom.getParent(NodeType.isText(container) ? container.parentNode : container, function (node) { + return node !== root && isTextBlock$2(editor, node); + }, scopeRoot); + } + if (node && format[0].wrapper) { + node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node; + } + if (!node) { + node = container; + while (node[siblingName] && !dom.isBlock(node[siblingName])) { + node = node[siblingName]; + if (isEq(node, 'br')) { + break; + } + } + } + return node || container; + }; + var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) { + var container, parent, sibling, siblingName, root; + container = parent = start ? startContainer : endContainer; + siblingName = start ? 'previousSibling' : 'nextSibling'; + root = dom.getRoot(); + if (NodeType.isText(container) && !isWhiteSpaceNode$1(container)) { + if (start ? startOffset > 0 : endOffset < container.nodeValue.length) { + return container; + } + } + while (true) { + if (!format[0].block_expand && dom.isBlock(parent)) { + return parent; + } + for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) { + if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) { + return parent; + } + } + if (parent === root || parent.parentNode === root) { + container = parent; + break; + } + parent = parent.parentNode; + } + return container; + }; + var expandRng = function (editor, rng, format, includeTrailingSpace) { + if (includeTrailingSpace === void 0) { + includeTrailingSpace = false; + } + var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset; + var dom = editor.dom; + if (NodeType.isElement(startContainer) && startContainer.hasChildNodes()) { + startContainer = getNode(startContainer, startOffset); + if (NodeType.isText(startContainer)) { + startOffset = 0; + } + } + if (NodeType.isElement(endContainer) && endContainer.hasChildNodes()) { + endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1); + if (NodeType.isText(endContainer)) { + endOffset = endContainer.nodeValue.length; + } + } + startContainer = findParentContentEditable(dom, startContainer); + endContainer = findParentContentEditable(dom, endContainer); + if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) { + startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode; + if (rng.collapsed) { + startContainer = startContainer.previousSibling || startContainer; + } else { + startContainer = startContainer.nextSibling || startContainer; + } + if (NodeType.isText(startContainer)) { + startOffset = rng.collapsed ? startContainer.length : 0; + } + } + if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) { + endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode; + if (rng.collapsed) { + endContainer = endContainer.nextSibling || endContainer; + } else { + endContainer = endContainer.previousSibling || endContainer; + } + if (NodeType.isText(endContainer)) { + endOffset = rng.collapsed ? 0 : endContainer.length; + } + } + if (rng.collapsed) { + var startPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, includeTrailingSpace); + startPoint.each(function (_a) { + var container = _a.container, offset = _a.offset; + startContainer = container; + startOffset = offset; + }); + var endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, includeTrailingSpace); + endPoint.each(function (_a) { + var container = _a.container, offset = _a.offset; + endContainer = container; + endOffset = offset; + }); + } + if (format[0].inline || format[0].block_expand) { + if (!format[0].inline || (!NodeType.isText(startContainer) || startOffset === 0)) { + startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true); + } + if (!format[0].inline || (!NodeType.isText(endContainer) || endOffset === endContainer.nodeValue.length)) { + endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false); + } + } + if (format[0].selector && format[0].expand !== false && !format[0].inline) { + startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling'); + endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling'); + } + if (format[0].block || format[0].selector) { + startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling'); + endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling'); + if (format[0].block) { + if (!dom.isBlock(startContainer)) { + startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true); + } + if (!dom.isBlock(endContainer)) { + endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false); + } + } + } + if (NodeType.isElement(startContainer)) { + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + if (NodeType.isElement(endContainer)) { + endOffset = dom.nodeIndex(endContainer) + 1; + endContainer = endContainer.parentNode; + } + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + }; + + var each$7 = Tools.each; + var clampToExistingChildren = function (container, index) { + var childNodes = container.childNodes; + if (index >= childNodes.length) { + index = childNodes.length - 1; + } else if (index < 0) { + index = 0; + } + return childNodes[index] || container; + }; + var getEndChild = function (container, index) { + return clampToExistingChildren(container, index - 1); + }; + var walk$1 = function (dom, rng, callback) { + var startContainer = rng.startContainer; + var startOffset = rng.startOffset; + var endContainer = rng.endContainer; + var endOffset = rng.endOffset; + var nodes = dom.select('td[data-mce-selected],th[data-mce-selected]'); + if (nodes.length > 0) { + each$7(nodes, function (node) { + callback([node]); + }); + return; + } + var exclude = function (nodes) { + var node; + node = nodes[0]; + if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) { + nodes.splice(0, 1); + } + node = nodes[nodes.length - 1]; + if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) { + nodes.splice(nodes.length - 1, 1); + } + return nodes; + }; + var collectSiblings = function (node, name, endNode) { + var siblings = []; + for (; node && node !== endNode; node = node[name]) { + siblings.push(node); + } + return siblings; + }; + var findEndPoint = function (node, root) { + do { + if (node.parentNode === root) { + return node; + } + node = node.parentNode; + } while (node); + }; + var walkBoundary = function (startNode, endNode, next) { + var siblingName = next ? 'nextSibling' : 'previousSibling'; + for (var node = startNode, parent_1 = node.parentNode; node && node !== endNode; node = parent_1) { + parent_1 = node.parentNode; + var siblings_1 = collectSiblings(node === startNode ? node : node[siblingName], siblingName); + if (siblings_1.length) { + if (!next) { + siblings_1.reverse(); + } + callback(exclude(siblings_1)); + } + } + }; + if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) { + startContainer = clampToExistingChildren(startContainer, startOffset); + } + if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) { + endContainer = getEndChild(endContainer, endOffset); + } + if (startContainer === endContainer) { + return callback(exclude([startContainer])); + } + var ancestor = dom.findCommonAncestor(startContainer, endContainer); + for (var node = startContainer; node; node = node.parentNode) { + if (node === endContainer) { + return walkBoundary(startContainer, ancestor, true); + } + if (node === ancestor) { + break; + } + } + for (var node = endContainer; node; node = node.parentNode) { + if (node === startContainer) { + return walkBoundary(endContainer, ancestor); + } + if (node === ancestor) { + break; + } + } + var startPoint = findEndPoint(startContainer, ancestor) || startContainer; + var endPoint = findEndPoint(endContainer, ancestor) || endContainer; + walkBoundary(startContainer, startPoint, true); + var siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint); + if (siblings.length) { + callback(exclude(siblings)); + } + walkBoundary(endContainer, endPoint); + }; + var RangeWalk = { walk: walk$1 }; + + function NodeValue (is, name) { + var get = function (element) { + if (!is(element)) { + throw new Error('Can only get ' + name + ' value of a ' + name + ' node'); + } + return getOption(element).getOr(''); + }; + var getOption = function (element) { + return is(element) ? Option.from(element.dom().nodeValue) : Option.none(); + }; + var set = function (element, value) { + if (!is(element)) { + throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node'); + } + element.dom().nodeValue = value; + }; + return { + get: get, + getOption: getOption, + set: set + }; + } + + var api = NodeValue(isText, 'text'); + var get$7 = function (element) { + return api.get(element); + }; + + var isZeroWidth = function (elem) { + return isText(elem) && get$7(elem) === zeroWidth; + }; + var context = function (editor, elem, wrapName, nodeName) { + return parent(elem).fold(function () { + return 'skipping'; + }, function (parent) { + if (nodeName === 'br' || isZeroWidth(elem)) { + return 'valid'; + } else if (isAnnotation(elem)) { + return 'existing'; + } else if (isCaretNode(elem)) { + return 'caret'; + } else if (!isValid(editor, wrapName, nodeName) || !isValid(editor, name(parent), wrapName)) { + return 'invalid-child'; + } else { + return 'valid'; + } + }); + }; + + var applyWordGrab = function (editor, rng) { + var r = expandRng(editor, rng, [{ inline: true }]); + rng.setStart(r.startContainer, r.startOffset); + rng.setEnd(r.endContainer, r.endOffset); + editor.selection.setRng(rng); + }; + var makeAnnotation = function (eDoc, _a, annotationName, decorate) { + var _b = _a.uid, uid = _b === void 0 ? generate('mce-annotation') : _b, data = __rest(_a, ['uid']); + var master = Element.fromTag('span', eDoc); + add$3(master, annotation()); + set(master, '' + dataAnnotationId(), uid); + set(master, '' + dataAnnotation(), annotationName); + var _c = decorate(uid, data), _d = _c.attributes, attributes = _d === void 0 ? {} : _d, _e = _c.classes, classes = _e === void 0 ? [] : _e; + setAll(master, attributes); + add$4(master, classes); + return master; + }; + var annotate = function (editor, rng, annotationName, decorate, data) { + var newWrappers = []; + var master = makeAnnotation(editor.getDoc(), data, annotationName, decorate); + var wrapper = Cell(Option.none()); + var finishWrapper = function () { + wrapper.set(Option.none()); + }; + var getOrOpenWrapper = function () { + return wrapper.get().getOrThunk(function () { + var nu = shallow(master); + newWrappers.push(nu); + wrapper.set(Option.some(nu)); + return nu; + }); + }; + var processElements = function (elems) { + each(elems, processElement); + }; + var processElement = function (elem) { + var ctx = context(editor, elem, 'span', name(elem)); + switch (ctx) { + case 'invalid-child': { + finishWrapper(); + var children$1 = children(elem); + processElements(children$1); + finishWrapper(); + break; + } + case 'valid': { + var w = getOrOpenWrapper(); + wrap(elem, w); + break; + } + } + }; + var processNodes = function (nodes) { + var elems = map(nodes, Element.fromDom); + processElements(elems); + }; + RangeWalk.walk(editor.dom, rng, function (nodes) { + finishWrapper(); + processNodes(nodes); + }); + return newWrappers; + }; + var annotateWithBookmark = function (editor, name, settings, data) { + editor.undoManager.transact(function () { + var initialRng = editor.selection.getRng(); + if (initialRng.collapsed) { + applyWordGrab(editor, initialRng); + } + if (editor.selection.getRng().collapsed) { + var wrapper = makeAnnotation(editor.getDoc(), data, name, settings.decorate); + set$1(wrapper, nbsp); + editor.selection.getRng().insertNode(wrapper.dom()); + editor.selection.select(wrapper.dom()); + } else { + var bookmark = GetBookmark.getPersistentBookmark(editor.selection, false); + var rng = editor.selection.getRng(); + annotate(editor, rng, name, settings.decorate, data); + editor.selection.moveToBookmark(bookmark); + } + }); + }; + + var Annotator = function (editor) { + var registry = create$1(); + setup$1(editor, registry); + var changes = setup(editor); + return { + register: function (name, settings) { + registry.register(name, settings); + }, + annotate: function (name, data) { + registry.lookup(name).each(function (settings) { + annotateWithBookmark(editor, name, settings, data); + }); + }, + annotationChanged: function (name, callback) { + changes.addListener(name, callback); + }, + remove: function (name) { + identify(editor, Option.some(name)).each(function (_a) { + var elements = _a.elements; + each(elements, unwrap); + }); + }, + getAll: function (name) { + var directory = findAll(editor, name); + return map$1(directory, function (elems) { + return map(elems, function (elem) { + return elem.dom(); + }); + }); + } + }; + }; + + var whiteSpaceRegExp$3 = /^[ \t\r\n]*$/; + var typeLookup = { + '#text': 3, + '#comment': 8, + '#cdata': 4, + '#pi': 7, + '#doctype': 10, + '#document-fragment': 11 + }; + var walk$2 = function (node, root, prev) { + var startName = prev ? 'lastChild' : 'firstChild'; + var siblingName = prev ? 'prev' : 'next'; + if (node[startName]) { + return node[startName]; + } + if (node !== root) { + var sibling = node[siblingName]; + if (sibling) { + return sibling; + } + for (var parent_1 = node.parent; parent_1 && parent_1 !== root; parent_1 = parent_1.parent) { + sibling = parent_1[siblingName]; + if (sibling) { + return sibling; + } + } + } + }; + var isEmptyTextNode$1 = function (node) { + if (!whiteSpaceRegExp$3.test(node.value)) { + return false; + } + var parentNode = node.parent; + if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(node.value)) { + return false; + } + return true; + }; + var Node$1 = function () { + function Node(name, type) { + this.name = name; + this.type = type; + if (type === 1) { + this.attributes = []; + this.attributes.map = {}; + } + } + Node.create = function (name, attrs) { + var node = new Node(name, typeLookup[name] || 1); + if (attrs) { + for (var attrName in attrs) { + node.attr(attrName, attrs[attrName]); + } + } + return node; + }; + Node.prototype.replace = function (node) { + var self = this; + if (node.parent) { + node.remove(); + } + self.insert(node, self); + self.remove(); + return self; + }; + Node.prototype.attr = function (name, value) { + var self = this; + var attrs; + if (typeof name !== 'string') { + for (var key in name) { + self.attr(key, name[key]); + } + return self; + } + if (attrs = self.attributes) { + if (value !== undefined) { + if (value === null) { + if (name in attrs.map) { + delete attrs.map[name]; + var i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs.splice(i, 1); + return self; + } + } + } + return self; + } + if (name in attrs.map) { + var i = attrs.length; + while (i--) { + if (attrs[i].name === name) { + attrs[i].value = value; + break; + } + } + } else { + attrs.push({ + name: name, + value: value + }); + } + attrs.map[name] = value; + return self; + } + return attrs.map[name]; + } + }; + Node.prototype.clone = function () { + var self = this; + var clone = new Node(self.name, self.type); + var selfAttrs; + if (selfAttrs = self.attributes) { + var cloneAttrs = []; + cloneAttrs.map = {}; + for (var i = 0, l = selfAttrs.length; i < l; i++) { + var selfAttr = selfAttrs[i]; + if (selfAttr.name !== 'id') { + cloneAttrs[cloneAttrs.length] = { + name: selfAttr.name, + value: selfAttr.value + }; + cloneAttrs.map[selfAttr.name] = selfAttr.value; + } + } + clone.attributes = cloneAttrs; + } + clone.value = self.value; + clone.shortEnded = self.shortEnded; + return clone; + }; + Node.prototype.wrap = function (wrapper) { + var self = this; + self.parent.insert(wrapper, self); + wrapper.append(self); + return self; + }; + Node.prototype.unwrap = function () { + var self = this; + for (var node = self.firstChild; node;) { + var next = node.next; + self.insert(node, self, true); + node = next; + } + self.remove(); + }; + Node.prototype.remove = function () { + var self = this, parent = self.parent, next = self.next, prev = self.prev; + if (parent) { + if (parent.firstChild === self) { + parent.firstChild = next; + if (next) { + next.prev = null; + } + } else { + prev.next = next; + } + if (parent.lastChild === self) { + parent.lastChild = prev; + if (prev) { + prev.next = null; + } + } else { + next.prev = prev; + } + self.parent = self.next = self.prev = null; + } + return self; + }; + Node.prototype.append = function (node) { + var self = this; + if (node.parent) { + node.remove(); + } + var last = self.lastChild; + if (last) { + last.next = node; + node.prev = last; + self.lastChild = node; + } else { + self.lastChild = self.firstChild = node; + } + node.parent = self; + return node; + }; + Node.prototype.insert = function (node, refNode, before) { + if (node.parent) { + node.remove(); + } + var parent = refNode.parent || this; + if (before) { + if (refNode === parent.firstChild) { + parent.firstChild = node; + } else { + refNode.prev.next = node; + } + node.prev = refNode.prev; + node.next = refNode; + refNode.prev = node; + } else { + if (refNode === parent.lastChild) { + parent.lastChild = node; + } else { + refNode.next.prev = node; + } + node.next = refNode.next; + node.prev = refNode; + refNode.next = node; + } + node.parent = parent; + return node; + }; + Node.prototype.getAll = function (name) { + var self = this; + var collection = []; + for (var node = self.firstChild; node; node = walk$2(node, self)) { + if (node.name === name) { + collection.push(node); + } + } + return collection; + }; + Node.prototype.empty = function () { + var self = this; + if (self.firstChild) { + var nodes = []; + for (var node = self.firstChild; node; node = walk$2(node, self)) { + nodes.push(node); + } + var i = nodes.length; + while (i--) { + var node = nodes[i]; + node.parent = node.firstChild = node.lastChild = node.next = node.prev = null; + } + } + self.firstChild = self.lastChild = null; + return self; + }; + Node.prototype.isEmpty = function (elements, whitespace, predicate) { + if (whitespace === void 0) { + whitespace = {}; + } + var self = this; + var node = self.firstChild; + if (node) { + do { + if (node.type === 1) { + if (node.attr('data-mce-bogus')) { + continue; + } + if (elements[node.name]) { + return false; + } + var i = node.attributes.length; + while (i--) { + var name_1 = node.attributes[i].name; + if (name_1 === 'name' || name_1.indexOf('data-mce-bookmark') === 0) { + return false; + } + } + } + if (node.type === 8) { + return false; + } + if (node.type === 3 && !isEmptyTextNode$1(node)) { + return false; + } + if (node.type === 3 && node.parent && whitespace[node.parent.name] && whiteSpaceRegExp$3.test(node.value)) { + return false; + } + if (predicate && predicate(node)) { + return false; + } + } while (node = walk$2(node, self)); + } + return true; + }; + Node.prototype.walk = function (prev) { + return walk$2(this, null, prev); + }; + return Node; + }(); + + var isValidPrefixAttrName = function (name) { + return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0; + }; + var isInvalidUri = function (settings, uri) { + if (settings.allow_html_data_urls) { + return false; + } else if (/^data:image\//i.test(uri)) { + return settings.allow_svg_data_urls === false && /^data:image\/svg\+xml/i.test(uri); + } else { + return /^data:/i.test(uri); + } + }; + var findEndTagIndex = function (schema, html, startIndex) { + var count = 1, index, matches, tokenRegExp, shortEndedElements; + shortEndedElements = schema.getShortEndedElements(); + tokenRegExp = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g; + tokenRegExp.lastIndex = index = startIndex; + while (matches = tokenRegExp.exec(html)) { + index = tokenRegExp.lastIndex; + if (matches[1] === '/') { + count--; + } else if (!matches[1]) { + if (matches[2] in shortEndedElements) { + continue; + } + count++; + } + if (count === 0) { + break; + } + } + return index; + }; + var isConditionalComment = function (html, startIndex) { + return /^\s*\[if [\w\W]+\]>.*/.test(html.substr(startIndex)); + }; + var findCommentEndIndex = function (html, isBogus, startIndex) { + if (startIndex === void 0) { + startIndex = 0; + } + var lcHtml = html.toLowerCase(); + if (lcHtml.indexOf('[if ', startIndex) !== -1 && isConditionalComment(lcHtml, startIndex)) { + var endIfIndex = lcHtml.indexOf('[endif]', startIndex); + return lcHtml.indexOf('>', endIfIndex); + } else { + if (isBogus) { + var endIndex = lcHtml.indexOf('>', startIndex); + return endIndex !== -1 ? endIndex : lcHtml.length; + } else { + var endCommentRegexp = /--!?>/; + endCommentRegexp.lastIndex = startIndex; + var match = endCommentRegexp.exec(html); + return match ? match.index + match[0].length : lcHtml.length; + } + } + }; + var checkBogusAttribute = function (regExp, attrString) { + var matches = regExp.exec(attrString); + if (matches) { + var name_1 = matches[1]; + var value = matches[2]; + return typeof name_1 === 'string' && name_1.toLowerCase() === 'data-mce-bogus' ? value : null; + } else { + return null; + } + }; + function SaxParser(settings, schema) { + if (schema === void 0) { + schema = Schema(); + } + var noop = function () { + }; + settings = settings || {}; + if (settings.fix_self_closing !== false) { + settings.fix_self_closing = true; + } + var comment = settings.comment ? settings.comment : noop; + var cdata = settings.cdata ? settings.cdata : noop; + var text = settings.text ? settings.text : noop; + var start = settings.start ? settings.start : noop; + var end = settings.end ? settings.end : noop; + var pi = settings.pi ? settings.pi : noop; + var doctype = settings.doctype ? settings.doctype : noop; + var parse = function (html, format) { + if (format === void 0) { + format = 'html'; + } + var matches, index = 0, value, endRegExp; + var stack = []; + var attrList, i, textData, name; + var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded; + var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns; + var attributesRequired, attributesDefault, attributesForced, processHtml; + var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0; + var decode = Entities.decode; + var fixSelfClosing; + var filteredUrlAttrs = Tools.makeMap('src,href,data,background,formaction,poster,xlink:href'); + var scriptUriRegExp = /((java|vb)script|mhtml):/i; + var parsingMode = format === 'html' ? 0 : 1; + var processEndTag = function (name) { + var pos, i; + pos = stack.length; + while (pos--) { + if (stack[pos].name === name) { + break; + } + } + if (pos >= 0) { + for (i = stack.length - 1; i >= pos; i--) { + name = stack[i]; + if (name.valid) { + end(name.name); + } + } + stack.length = pos; + } + }; + var processComment = function (value) { + if (value === '') { + return; + } + if (value.charAt(0) === '>') { + value = ' ' + value; + } + if (!settings.allow_conditional_comments && value.substr(0, 3).toLowerCase() === '[if') { + value = ' ' + value; + } + comment(value); + }; + var processMalformedComment = function (value, startIndex) { + var startTag = value || ''; + var isBogus = !startsWith(startTag, '--'); + var endIndex = findCommentEndIndex(html, isBogus, startIndex); + value = html.substr(startIndex, endIndex - startIndex); + processComment(isBogus ? startTag + value : value); + return endIndex + 1; + }; + var parseAttribute = function (match, name, value, val2, val3) { + var attrRule, i; + var trimRegExp = /[\s\u0000-\u001F]+/g; + name = name.toLowerCase(); + value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); + if (validate && !isInternalElement && isValidPrefixAttrName(name) === false) { + attrRule = validAttributesMap[name]; + if (!attrRule && validAttributePatterns) { + i = validAttributePatterns.length; + while (i--) { + attrRule = validAttributePatterns[i]; + if (attrRule.pattern.test(name)) { + break; + } + } + if (i === -1) { + attrRule = null; + } + } + if (!attrRule) { + return; + } + if (attrRule.validValues && !(value in attrRule.validValues)) { + return; + } + } + if (filteredUrlAttrs[name] && !settings.allow_script_urls) { + var uri = value.replace(trimRegExp, ''); + try { + uri = decodeURIComponent(uri); + } catch (ex) { + uri = unescape(uri); + } + if (scriptUriRegExp.test(uri)) { + return; + } + if (isInvalidUri(settings, uri)) { + return; + } + } + if (isInternalElement && (name in filteredUrlAttrs || name.indexOf('on') === 0)) { + return; + } + attrList.map[name] = value; + attrList.push({ + name: name, + value: value + }); + }; + tokenRegExp = new RegExp('<(?:' + '(?:!--([\\w\\W]*?)--!?>)|' + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + '(?:![Dd][Oo][Cc][Tt][Yy][Pp][Ee]([\\w\\W]*?)>)|' + '(?:!(--)?)|' + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + '(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + ')', 'g'); + attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g; + shortEndedElements = schema.getShortEndedElements(); + selfClosing = settings.self_closing_elements || schema.getSelfClosingElements(); + fillAttrsMap = schema.getBoolAttrs(); + validate = settings.validate; + removeInternalElements = settings.remove_internals; + fixSelfClosing = settings.fix_self_closing; + specialElements = schema.getSpecialElements(); + processHtml = html + '>'; + while (matches = tokenRegExp.exec(processHtml)) { + var matchText = matches[0]; + if (index < matches.index) { + text(decode(html.substr(index, matches.index - index))); + } + if (value = matches[7]) { + value = value.toLowerCase(); + if (value.charAt(0) === ':') { + value = value.substr(1); + } + processEndTag(value); + } else if (value = matches[8]) { + if (matches.index + matchText.length > html.length) { + text(decode(html.substr(matches.index))); + index = matches.index + matchText.length; + continue; + } + value = value.toLowerCase(); + if (value.charAt(0) === ':') { + value = value.substr(1); + } + isShortEnded = value in shortEndedElements; + if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) { + processEndTag(value); + } + var bogusValue = checkBogusAttribute(attrRegExp, matches[9]); + if (bogusValue !== null) { + if (bogusValue === 'all') { + index = findEndTagIndex(schema, html, tokenRegExp.lastIndex); + tokenRegExp.lastIndex = index; + continue; + } + isValidElement = false; + } + if (!validate || (elementRule = schema.getElementRule(value))) { + isValidElement = true; + if (validate) { + validAttributesMap = elementRule.attributes; + validAttributePatterns = elementRule.attributePatterns; + } + if (attribsValue = matches[9]) { + isInternalElement = attribsValue.indexOf('data-mce-type') !== -1; + if (isInternalElement && removeInternalElements) { + isValidElement = false; + } + attrList = []; + attrList.map = {}; + attribsValue.replace(attrRegExp, parseAttribute); + } else { + attrList = []; + attrList.map = {}; + } + if (validate && !isInternalElement) { + attributesRequired = elementRule.attributesRequired; + attributesDefault = elementRule.attributesDefault; + attributesForced = elementRule.attributesForced; + anyAttributesRequired = elementRule.removeEmptyAttrs; + if (anyAttributesRequired && !attrList.length) { + isValidElement = false; + } + if (attributesForced) { + i = attributesForced.length; + while (i--) { + attr = attributesForced[i]; + name = attr.name; + attrValue = attr.value; + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + attrList.map[name] = attrValue; + attrList.push({ + name: name, + value: attrValue + }); + } + } + if (attributesDefault) { + i = attributesDefault.length; + while (i--) { + attr = attributesDefault[i]; + name = attr.name; + if (!(name in attrList.map)) { + attrValue = attr.value; + if (attrValue === '{$uid}') { + attrValue = 'mce_' + idCount++; + } + attrList.map[name] = attrValue; + attrList.push({ + name: name, + value: attrValue + }); + } + } + } + if (attributesRequired) { + i = attributesRequired.length; + while (i--) { + if (attributesRequired[i] in attrList.map) { + break; + } + } + if (i === -1) { + isValidElement = false; + } + } + if (attr = attrList.map['data-mce-bogus']) { + if (attr === 'all') { + index = findEndTagIndex(schema, html, tokenRegExp.lastIndex); + tokenRegExp.lastIndex = index; + continue; + } + isValidElement = false; + } + } + if (isValidElement) { + start(value, attrList, isShortEnded); + } + } else { + isValidElement = false; + } + if (endRegExp = specialElements[value]) { + endRegExp.lastIndex = index = matches.index + matchText.length; + if (matches = endRegExp.exec(html)) { + if (isValidElement) { + textData = html.substr(index, matches.index - index); + } + index = matches.index + matches[0].length; + } else { + textData = html.substr(index); + index = html.length; + } + if (isValidElement) { + if (textData.length > 0) { + text(textData, true); + } + end(value); + } + tokenRegExp.lastIndex = index; + continue; + } + if (!isShortEnded) { + if (!attribsValue || attribsValue.indexOf('/') !== attribsValue.length - 1) { + stack.push({ + name: value, + valid: isValidElement + }); + } else if (isValidElement) { + end(value); + } + } + } else if (value = matches[1]) { + processComment(value); + } else if (value = matches[2]) { + var isValidCdataSection = parsingMode === 1 || settings.preserve_cdata || stack.length > 0 && schema.isValidChild(stack[stack.length - 1].name, '#cdata'); + if (isValidCdataSection) { + cdata(value); + } else { + index = processMalformedComment('', matches.index + 2); + tokenRegExp.lastIndex = index; + continue; + } + } else if (value = matches[3]) { + doctype(value); + } else if ((value = matches[4]) || matchText === '= 0; i--) { + value = stack[i]; + if (value.valid) { + end(value.name); + } + } + }; + return { parse: parse }; + } + (function (SaxParser) { + SaxParser.findEndTag = findEndTagIndex; + }(SaxParser || (SaxParser = {}))); + var SaxParser$1 = SaxParser; + + var trimHtml = function (tempAttrs, html) { + var trimContentRegExp = new RegExp(['\\s?(' + tempAttrs.join('|') + ')="[^"]+"'].join('|'), 'gi'); + return html.replace(trimContentRegExp, ''); + }; + var trimInternal = function (serializer, html) { + var content = html; + var bogusAllRegExp = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g; + var endTagIndex, index, matchLength, matches, shortEndedElements; + var schema = serializer.schema; + content = trimHtml(serializer.getTempAttrs(), content); + shortEndedElements = schema.getShortEndedElements(); + while (matches = bogusAllRegExp.exec(content)) { + index = bogusAllRegExp.lastIndex; + matchLength = matches[0].length; + if (shortEndedElements[matches[1]]) { + endTagIndex = index; + } else { + endTagIndex = SaxParser$1.findEndTag(schema, content, index); + } + content = content.substring(0, index - matchLength) + content.substring(endTagIndex); + bogusAllRegExp.lastIndex = index - matchLength; + } + return Zwsp.trim(content); + }; + var trimExternal = trimInternal; + var TrimHtml = { + trimExternal: trimExternal, + trimInternal: trimInternal + }; + + var defaultFormat = 'html'; + var trimEmptyContents = function (editor, html) { + var blockName = Settings.getForcedRootBlock(editor); + var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>( | |\\s|\xA0|
|)<\\/' + blockName + '>[\r\n]*|
[\r\n]*)$'); + return html.replace(emptyRegExp, ''); + }; + var getContentFromBody = function (editor, args, body) { + var content; + args.format = args.format ? args.format : defaultFormat; + args.get = true; + args.getInner = true; + if (!args.no_events) { + editor.fire('BeforeGetContent', args); + } + if (args.format === 'raw') { + content = Tools.trim(TrimHtml.trimExternal(editor.serializer, body.innerHTML)); + } else if (args.format === 'text') { + content = Zwsp.trim(body.innerText || body.textContent); + } else if (args.format === 'tree') { + return editor.serializer.serialize(body, args); + } else { + content = trimEmptyContents(editor, editor.serializer.serialize(body, args)); + } + if (args.format !== 'text' && !isWsPreserveElement(Element.fromDom(body))) { + args.content = Tools.trim(content); + } else { + args.content = content; + } + if (!args.no_events) { + editor.fire('GetContent', args); + } + return args.content; + }; + var getContent = function (editor, args) { + if (args === void 0) { + args = {}; + } + return Option.from(editor.getBody()).fold(constant(args.format === 'tree' ? new Node$1('body', 11) : ''), function (body) { + return getContentFromBody(editor, args, body); + }); + }; + + var makeMap$3 = Tools.makeMap; + var Writer = function (settings) { + var html = []; + var indent, indentBefore, indentAfter, encode, htmlOutput; + settings = settings || {}; + indent = settings.indent; + indentBefore = makeMap$3(settings.indent_before || ''); + indentAfter = makeMap$3(settings.indent_after || ''); + encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities); + htmlOutput = settings.element_format === 'html'; + return { + start: function (name, attrs, empty) { + var i, l, attr, value; + if (indent && indentBefore[name] && html.length > 0) { + value = html[html.length - 1]; + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + html.push('<', name); + if (attrs) { + for (i = 0, l = attrs.length; i < l; i++) { + attr = attrs[i]; + html.push(' ', attr.name, '="', encode(attr.value, true), '"'); + } + } + if (!empty || htmlOutput) { + html[html.length] = '>'; + } else { + html[html.length] = ' />'; + } + if (empty && indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + end: function (name) { + var value; + html.push(''); + if (indent && indentAfter[name] && html.length > 0) { + value = html[html.length - 1]; + if (value.length > 0 && value !== '\n') { + html.push('\n'); + } + } + }, + text: function (text, raw) { + if (text.length > 0) { + html[html.length] = raw ? text : encode(text); + } + }, + cdata: function (text) { + html.push(''); + }, + comment: function (text) { + html.push(''); + }, + pi: function (name, text) { + if (text) { + html.push(''); + } else { + html.push(''); + } + if (indent) { + html.push('\n'); + } + }, + doctype: function (text) { + html.push('', indent ? '\n' : ''); + }, + reset: function () { + html.length = 0; + }, + getContent: function () { + return html.join('').replace(/\n$/, ''); + } + }; + }; + + var Serializer = function (settings, schema) { + if (schema === void 0) { + schema = Schema(); + } + var writer = Writer(settings); + settings = settings || {}; + settings.validate = 'validate' in settings ? settings.validate : true; + var serialize = function (node) { + var handlers, validate; + validate = settings.validate; + handlers = { + 3: function (node) { + writer.text(node.value, node.raw); + }, + 8: function (node) { + writer.comment(node.value); + }, + 7: function (node) { + writer.pi(node.name, node.value); + }, + 10: function (node) { + writer.doctype(node.value); + }, + 4: function (node) { + writer.cdata(node.value); + }, + 11: function (node) { + if (node = node.firstChild) { + do { + walk(node); + } while (node = node.next); + } + } + }; + writer.reset(); + var walk = function (node) { + var handler = handlers[node.type]; + var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule; + if (!handler) { + name = node.name; + isEmpty = node.shortEnded; + attrs = node.attributes; + if (validate && attrs && attrs.length > 1) { + sortedAttrs = []; + sortedAttrs.map = {}; + elementRule = schema.getElementRule(node.name); + if (elementRule) { + for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) { + attrName = elementRule.attributesOrder[i]; + if (attrName in attrs.map) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({ + name: attrName, + value: attrValue + }); + } + } + for (i = 0, l = attrs.length; i < l; i++) { + attrName = attrs[i].name; + if (!(attrName in sortedAttrs.map)) { + attrValue = attrs.map[attrName]; + sortedAttrs.map[attrName] = attrValue; + sortedAttrs.push({ + name: attrName, + value: attrValue + }); + } + } + attrs = sortedAttrs; + } + } + writer.start(node.name, attrs, isEmpty); + if (!isEmpty) { + if (node = node.firstChild) { + do { + walk(node); + } while (node = node.next); + } + writer.end(name); + } + } else { + handler(node); + } + }; + if (node.type === 1 && !settings.inner) { + walk(node); + } else { + handlers[11](node); + } + return writer.getContent(); + }; + return { serialize: serialize }; + }; + + var traverse = function (node, fn) { + fn(node); + if (node.firstChild) { + traverse(node.firstChild, fn); + } + if (node.next) { + traverse(node.next, fn); + } + }; + var findMatchingNodes = function (nodeFilters, attributeFilters, node) { + var nodeMatches = {}; + var attrMatches = {}; + var matches = []; + if (node.firstChild) { + traverse(node.firstChild, function (node) { + each(nodeFilters, function (filter) { + if (filter.name === node.name) { + if (nodeMatches[filter.name]) { + nodeMatches[filter.name].nodes.push(node); + } else { + nodeMatches[filter.name] = { + filter: filter, + nodes: [node] + }; + } + } + }); + each(attributeFilters, function (filter) { + if (typeof node.attr(filter.name) === 'string') { + if (attrMatches[filter.name]) { + attrMatches[filter.name].nodes.push(node); + } else { + attrMatches[filter.name] = { + filter: filter, + nodes: [node] + }; + } + } + }); + }); + } + for (var name_1 in nodeMatches) { + if (nodeMatches.hasOwnProperty(name_1)) { + matches.push(nodeMatches[name_1]); + } + } + for (var name_2 in attrMatches) { + if (attrMatches.hasOwnProperty(name_2)) { + matches.push(attrMatches[name_2]); + } + } + return matches; + }; + var filter$3 = function (nodeFilters, attributeFilters, node) { + var matches = findMatchingNodes(nodeFilters, attributeFilters, node); + each(matches, function (match) { + each(match.filter.callbacks, function (callback) { + callback(match.nodes, match.filter.name, {}); + }); + }); + }; + + var hasFocus = function (element) { + var doc = owner(element).dom(); + return element.dom() === doc.activeElement; + }; + var active = function (_doc) { + var doc = _doc !== undefined ? _doc.dom() : domGlobals.document; + return Option.from(doc.activeElement).map(Element.fromDom); + }; + var search = function (element) { + return active(owner(element)).filter(function (e) { + return element.dom().contains(e.dom()); + }); + }; + + var generate$1 = function (cases) { + if (!isArray(cases)) { + throw new Error('cases must be an array'); + } + if (cases.length === 0) { + throw new Error('there must be at least one case'); + } + var constructors = []; + var adt = {}; + each(cases, function (acase, count) { + var keys$1 = keys(acase); + if (keys$1.length !== 1) { + throw new Error('one and only one name per case'); + } + var key = keys$1[0]; + var value = acase[key]; + if (adt[key] !== undefined) { + throw new Error('duplicate key detected:' + key); + } else if (key === 'cata') { + throw new Error('cannot have a case named cata (sorry)'); + } else if (!isArray(value)) { + throw new Error('case arguments must be an array'); + } + constructors.push(key); + adt[key] = function () { + var argLength = arguments.length; + if (argLength !== value.length) { + throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength); + } + var args = new Array(argLength); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var match = function (branches) { + var branchKeys = keys(branches); + if (constructors.length !== branchKeys.length) { + throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(',')); + } + var allReqd = forall(constructors, function (reqKey) { + return contains(branchKeys, reqKey); + }); + if (!allReqd) { + throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', ')); + } + return branches[key].apply(null, args); + }; + return { + fold: function () { + if (arguments.length !== cases.length) { + throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length); + } + var target = arguments[count]; + return target.apply(null, args); + }, + match: match, + log: function (label) { + domGlobals.console.log(label, { + constructors: constructors, + constructor: key, + params: args + }); + } + }; + }; + }); + return adt; + }; + var Adt = { generate: generate$1 }; + + var create$3 = Immutable('start', 'soffset', 'finish', 'foffset'); + var SimRange = { create: create$3 }; + + var adt = Adt.generate([ + { before: ['element'] }, + { + on: [ + 'element', + 'offset' + ] + }, + { after: ['element'] } + ]); + var cata = function (subject, onBefore, onOn, onAfter) { + return subject.fold(onBefore, onOn, onAfter); + }; + var getStart = function (situ) { + return situ.fold(identity, identity, identity); + }; + var before$3 = adt.before; + var on = adt.on; + var after$2 = adt.after; + var Situ = { + before: before$3, + on: on, + after: after$2, + cata: cata, + getStart: getStart + }; + + var adt$1 = Adt.generate([ + { domRange: ['rng'] }, + { + relative: [ + 'startSitu', + 'finishSitu' + ] + }, + { + exact: [ + 'start', + 'soffset', + 'finish', + 'foffset' + ] + } + ]); + var exactFromRange = function (simRange) { + return adt$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset()); + }; + var getStart$1 = function (selection) { + return selection.match({ + domRange: function (rng) { + return Element.fromDom(rng.startContainer); + }, + relative: function (startSitu, finishSitu) { + return Situ.getStart(startSitu); + }, + exact: function (start, soffset, finish, foffset) { + return start; + } + }); + }; + var domRange = adt$1.domRange; + var relative = adt$1.relative; + var exact = adt$1.exact; + var getWin = function (selection) { + var start = getStart$1(selection); + return defaultView(start); + }; + var range = SimRange.create; + var Selection = { + domRange: domRange, + relative: relative, + exact: exact, + exactFromRange: exactFromRange, + getWin: getWin, + range: range + }; + + var browser$4 = detect$3().browser; + var clamp = function (offset, element) { + var max = isText(element) ? get$7(element).length : children(element).length + 1; + if (offset > max) { + return max; + } else if (offset < 0) { + return 0; + } + return offset; + }; + var normalizeRng = function (rng) { + return Selection.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish())); + }; + var isOrContains = function (root, elm) { + return !NodeType.isRestrictedNode(elm.dom()) && (contains$2(root, elm) || eq(root, elm)); + }; + var isRngInRoot = function (root) { + return function (rng) { + return isOrContains(root, rng.start()) && isOrContains(root, rng.finish()); + }; + }; + var shouldStore = function (editor) { + return editor.inline === true || browser$4.isIE(); + }; + var nativeRangeToSelectionRange = function (r) { + return Selection.range(Element.fromDom(r.startContainer), r.startOffset, Element.fromDom(r.endContainer), r.endOffset); + }; + var readRange = function (win) { + var selection = win.getSelection(); + var rng = !selection || selection.rangeCount === 0 ? Option.none() : Option.from(selection.getRangeAt(0)); + return rng.map(nativeRangeToSelectionRange); + }; + var getBookmark$2 = function (root) { + var win = defaultView(root); + return readRange(win.dom()).filter(isRngInRoot(root)); + }; + var validate = function (root, bookmark) { + return Option.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng); + }; + var bookmarkToNativeRng = function (bookmark) { + var rng = domGlobals.document.createRange(); + try { + rng.setStart(bookmark.start().dom(), bookmark.soffset()); + rng.setEnd(bookmark.finish().dom(), bookmark.foffset()); + return Option.some(rng); + } catch (_) { + return Option.none(); + } + }; + var store = function (editor) { + var newBookmark = shouldStore(editor) ? getBookmark$2(Element.fromDom(editor.getBody())) : Option.none(); + editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark; + }; + var storeNative = function (editor, rng) { + var root = Element.fromDom(editor.getBody()); + var range = shouldStore(editor) ? Option.from(rng) : Option.none(); + var newBookmark = range.map(nativeRangeToSelectionRange).filter(isRngInRoot(root)); + editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark; + }; + var getRng = function (editor) { + var bookmark = editor.bookmark ? editor.bookmark : Option.none(); + return bookmark.bind(function (x) { + return validate(Element.fromDom(editor.getBody()), x); + }).bind(bookmarkToNativeRng); + }; + var restore = function (editor) { + getRng(editor).each(function (rng) { + editor.selection.setRng(rng); + }); + }; + var SelectionBookmark = { + store: store, + storeNative: storeNative, + readRange: readRange, + restore: restore, + getRng: getRng, + getBookmark: getBookmark$2, + validate: validate + }; + + var isEditorUIElement = function (elm) { + var className = elm.className.toString(); + return className.indexOf('tox-') !== -1 || className.indexOf('mce-') !== -1; + }; + var FocusManager = { isEditorUIElement: isEditorUIElement }; + + var isManualNodeChange = function (e) { + return e.type === 'nodechange' && e.selectionChange; + }; + var registerPageMouseUp = function (editor, throttledStore) { + var mouseUpPage = function () { + throttledStore.throttle(); + }; + DOMUtils$1.DOM.bind(domGlobals.document, 'mouseup', mouseUpPage); + editor.on('remove', function () { + DOMUtils$1.DOM.unbind(domGlobals.document, 'mouseup', mouseUpPage); + }); + }; + var registerFocusOut = function (editor) { + editor.on('focusout', function () { + SelectionBookmark.store(editor); + }); + }; + var registerMouseUp = function (editor, throttledStore) { + editor.on('mouseup touchend', function (e) { + throttledStore.throttle(); + }); + }; + var registerEditorEvents = function (editor, throttledStore) { + var browser = detect$3().browser; + if (browser.isIE()) { + registerFocusOut(editor); + } else { + registerMouseUp(editor, throttledStore); + } + editor.on('keyup NodeChange', function (e) { + if (!isManualNodeChange(e)) { + SelectionBookmark.store(editor); + } + }); + }; + var register = function (editor) { + var throttledStore = first(function () { + SelectionBookmark.store(editor); + }, 0); + editor.on('init', function () { + if (editor.inline) { + registerPageMouseUp(editor, throttledStore); + } + registerEditorEvents(editor, throttledStore); + }); + editor.on('remove', function () { + throttledStore.cancel(); + }); + }; + var SelectionRestore = { register: register }; + + var documentFocusInHandler; + var DOM$2 = DOMUtils$1.DOM; + var isEditorUIElement$1 = function (elm) { + return FocusManager.isEditorUIElement(elm); + }; + var isEditorContentAreaElement = function (elm) { + var classList = elm.classList; + if (classList !== undefined) { + return classList.contains('tox-edit-area') || classList.contains('tox-edit-area__iframe') || classList.contains('mce-content-body'); + } else { + return false; + } + }; + var isUIElement = function (editor, elm) { + var customSelector = editor ? editor.settings.custom_ui_selector : ''; + var parent = DOM$2.getParent(elm, function (elm) { + return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false); + }); + return parent !== null; + }; + var getActiveElement = function () { + try { + return domGlobals.document.activeElement; + } catch (ex) { + return domGlobals.document.body; + } + }; + var registerEvents = function (editorManager, e) { + var editor = e.editor; + SelectionRestore.register(editor); + editor.on('focusin', function () { + var self = this; + var focusedEditor = editorManager.focusedEditor; + if (focusedEditor !== self) { + if (focusedEditor) { + focusedEditor.fire('blur', { focusedEditor: self }); + } + editorManager.setActive(self); + editorManager.focusedEditor = self; + self.fire('focus', { blurredEditor: focusedEditor }); + self.focus(true); + } + }); + editor.on('focusout', function () { + var self = this; + Delay.setEditorTimeout(self, function () { + var focusedEditor = editorManager.focusedEditor; + if (!isUIElement(self, getActiveElement()) && focusedEditor === self) { + self.fire('blur', { focusedEditor: null }); + editorManager.focusedEditor = null; + } + }); + }); + if (!documentFocusInHandler) { + documentFocusInHandler = function (e) { + var activeEditor = editorManager.activeEditor; + var target; + target = e.target; + if (activeEditor && target.ownerDocument === domGlobals.document) { + if (target !== domGlobals.document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) { + activeEditor.fire('blur', { focusedEditor: null }); + editorManager.focusedEditor = null; + } + } + }; + DOM$2.bind(domGlobals.document, 'focusin', documentFocusInHandler); + } + }; + var unregisterDocumentEvents = function (editorManager, e) { + if (editorManager.focusedEditor === e.editor) { + editorManager.focusedEditor = null; + } + if (!editorManager.activeEditor) { + DOM$2.unbind(domGlobals.document, 'focusin', documentFocusInHandler); + documentFocusInHandler = null; + } + }; + var setup$2 = function (editorManager) { + editorManager.on('AddEditor', curry(registerEvents, editorManager)); + editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager)); + }; + var FocusController = { + setup: setup$2, + isEditorUIElement: isEditorUIElement$1, + isEditorContentAreaElement: isEditorContentAreaElement, + isUIElement: isUIElement + }; + + var getContentEditableHost = function (editor, node) { + return editor.dom.getParent(node, function (node) { + return editor.dom.getContentEditable(node) === 'true'; + }); + }; + var getCollapsedNode = function (rng) { + return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element.fromDom) : Option.none(); + }; + var getFocusInElement = function (root, rng) { + return getCollapsedNode(rng).bind(function (node) { + if (isTableSection(node)) { + return Option.some(node); + } else if (contains$2(root, node) === false) { + return Option.some(root); + } else { + return Option.none(); + } + }); + }; + var normalizeSelection = function (editor, rng) { + getFocusInElement(Element.fromDom(editor.getBody()), rng).bind(function (elm) { + return CaretFinder.firstPositionIn(elm.dom()); + }).fold(function () { + editor.selection.normalize(); + return; + }, function (caretPos) { + return editor.selection.setRng(caretPos.toRange()); + }); + }; + var focusBody = function (body) { + if (body.setActive) { + try { + body.setActive(); + } catch (ex) { + body.focus(); + } + } else { + body.focus(); + } + }; + var hasElementFocus = function (elm) { + return hasFocus(elm) || search(elm).isSome(); + }; + var hasIframeFocus = function (editor) { + return editor.iframeElement && hasFocus(Element.fromDom(editor.iframeElement)); + }; + var hasInlineFocus = function (editor) { + var rawBody = editor.getBody(); + return rawBody && hasElementFocus(Element.fromDom(rawBody)); + }; + var hasUiFocus = function (editor) { + return active().filter(function (elem) { + return !FocusController.isEditorContentAreaElement(elem.dom()) && FocusController.isUIElement(editor, elem.dom()); + }).isSome(); + }; + var hasFocus$1 = function (editor) { + return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor); + }; + var hasEditorOrUiFocus = function (editor) { + return hasFocus$1(editor) || hasUiFocus(editor); + }; + var focusEditor = function (editor) { + var selection = editor.selection; + var body = editor.getBody(); + var rng = selection.getRng(); + editor.quirks.refreshContentEditable(); + if (editor.bookmark !== undefined && hasFocus$1(editor) === false) { + SelectionBookmark.getRng(editor).each(function (bookmarkRng) { + editor.selection.setRng(bookmarkRng); + rng = bookmarkRng; + }); + } + var contentEditableHost = getContentEditableHost(editor, selection.getNode()); + if (editor.$.contains(body, contentEditableHost)) { + focusBody(contentEditableHost); + normalizeSelection(editor, rng); + activateEditor(editor); + return; + } + if (!editor.inline) { + if (!Env.opera) { + focusBody(body); + } + editor.getWin().focus(); + } + if (Env.gecko || editor.inline) { + focusBody(body); + normalizeSelection(editor, rng); + } + activateEditor(editor); + }; + var activateEditor = function (editor) { + return editor.editorManager.setActive(editor); + }; + var focus = function (editor, skipFocus) { + if (editor.removed) { + return; + } + skipFocus ? activateEditor(editor) : focusEditor(editor); + }; + var EditorFocus = { + focus: focus, + hasFocus: hasFocus$1, + hasEditorOrUiFocus: hasEditorOrUiFocus + }; + + var defaultFormat$1 = 'html'; + var isTreeNode = function (content) { + return content instanceof Node$1; + }; + var moveSelection = function (editor) { + if (EditorFocus.hasFocus(editor)) { + CaretFinder.firstPositionIn(editor.getBody()).each(function (pos) { + var node = pos.getNode(); + var caretPos = NodeType.isTable(node) ? CaretFinder.firstPositionIn(node).getOr(pos) : pos; + editor.selection.setRng(caretPos.toRange()); + }); + } + }; + var setEditorHtml = function (editor, html) { + editor.dom.setHTML(editor.getBody(), html); + moveSelection(editor); + }; + var setContentString = function (editor, body, content, args) { + var forcedRootBlockName, padd; + if (content.length === 0 || /^\s+$/.test(content)) { + padd = '
'; + if (body.nodeName === 'TABLE') { + content = '' + padd + ''; + } else if (/^(UL|OL)$/.test(body.nodeName)) { + content = '
  • ' + padd + '
  • '; + } + forcedRootBlockName = Settings.getForcedRootBlock(editor); + if (forcedRootBlockName && editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) { + content = padd; + content = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs, content); + } else if (!content) { + content = '
    '; + } + setEditorHtml(editor, content); + editor.fire('SetContent', args); + } else { + if (args.format !== 'raw') { + content = Serializer({ validate: editor.validate }, editor.schema).serialize(editor.parser.parse(content, { + isRootContent: true, + insert: true + })); + } + args.content = isWsPreserveElement(Element.fromDom(body)) ? content : Tools.trim(content); + setEditorHtml(editor, args.content); + if (!args.no_events) { + editor.fire('SetContent', args); + } + } + return args.content; + }; + var setContentTree = function (editor, body, content, args) { + filter$3(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content); + var html = Serializer({ validate: editor.validate }, editor.schema).serialize(content); + args.content = isWsPreserveElement(Element.fromDom(body)) ? html : Tools.trim(html); + setEditorHtml(editor, args.content); + if (!args.no_events) { + editor.fire('SetContent', args); + } + return content; + }; + var setContent = function (editor, content, args) { + if (args === void 0) { + args = {}; + } + args.format = args.format ? args.format : defaultFormat$1; + args.set = true; + args.content = isTreeNode(content) ? '' : content; + if (!isTreeNode(content) && !args.no_events) { + editor.fire('BeforeSetContent', args); + content = args.content; + } + return Option.from(editor.getBody()).fold(constant(content), function (body) { + return isTreeNode(content) ? setContentTree(editor, body, content, args) : setContentString(editor, body, content, args); + }); + }; + + var firePreProcess = function (editor, args) { + return editor.fire('PreProcess', args); + }; + var firePostProcess = function (editor, args) { + return editor.fire('PostProcess', args); + }; + var fireRemove = function (editor) { + return editor.fire('remove'); + }; + var fireDetach = function (editor) { + return editor.fire('detach'); + }; + var fireSwitchMode = function (editor, mode) { + return editor.fire('SwitchMode', { mode: mode }); + }; + var fireObjectResizeStart = function (editor, target, width, height) { + editor.fire('ObjectResizeStart', { + target: target, + width: width, + height: height + }); + }; + var fireObjectResized = function (editor, target, width, height) { + editor.fire('ObjectResized', { + target: target, + width: width, + height: height + }); + }; + var firePreInit = function (editor) { + return editor.fire('PreInit'); + }; + var firePostRender = function (editor) { + return editor.fire('PostRender'); + }; + var fireInit = function (editor) { + return editor.fire('Init'); + }; + var firePlaceholderToggle = function (editor, state) { + return editor.fire('PlaceholderToggle', { state: state }); + }; + var fireError = function (editor, errorType, error) { + return editor.fire(errorType, error); + }; + + var DOM$3 = DOMUtils$1.DOM; + var restoreOriginalStyles = function (editor) { + DOM$3.setStyle(editor.id, 'display', editor.orgDisplay); + }; + var safeDestroy = function (x) { + return Option.from(x).each(function (x) { + return x.destroy(); + }); + }; + var clearDomReferences = function (editor) { + editor.contentAreaContainer = editor.formElement = editor.container = editor.editorContainer = null; + editor.bodyElement = editor.contentDocument = editor.contentWindow = null; + editor.iframeElement = editor.targetElm = null; + if (editor.selection) { + editor.selection = editor.selection.win = editor.selection.dom = editor.selection.dom.doc = null; + } + }; + var restoreForm = function (editor) { + var form = editor.formElement; + if (form) { + if (form._mceOldSubmit) { + form.submit = form._mceOldSubmit; + form._mceOldSubmit = null; + } + DOM$3.unbind(form, 'submit reset', editor.formEventDelegate); + } + }; + var remove$6 = function (editor) { + if (!editor.removed) { + var _selectionOverrides = editor._selectionOverrides, editorUpload = editor.editorUpload; + var body = editor.getBody(); + var element = editor.getElement(); + if (body) { + editor.save({ is_removing: true }); + } + editor.removed = true; + editor.unbindAllNativeEvents(); + if (editor.hasHiddenInput && element) { + DOM$3.remove(element.nextSibling); + } + fireRemove(editor); + editor.editorManager.remove(editor); + if (!editor.inline && body) { + restoreOriginalStyles(editor); + } + fireDetach(editor); + DOM$3.remove(editor.getContainer()); + safeDestroy(_selectionOverrides); + safeDestroy(editorUpload); + editor.destroy(); + } + }; + var destroy = function (editor, automatic) { + var selection = editor.selection, dom = editor.dom; + if (editor.destroyed) { + return; + } + if (!automatic && !editor.removed) { + editor.remove(); + return; + } + if (!automatic) { + editor.editorManager.off('beforeunload', editor._beforeUnload); + if (editor.theme && editor.theme.destroy) { + editor.theme.destroy(); + } + safeDestroy(selection); + safeDestroy(dom); + } + restoreForm(editor); + clearDomReferences(editor); + editor.destroyed = true; + }; + + var hasOwnProperty$2 = Object.prototype.hasOwnProperty; + var deep$1 = function (old, nu) { + var bothObjects = isObject(old) && isObject(nu); + return bothObjects ? deepMerge(old, nu) : nu; + }; + var baseMerge = function (merger) { + return function () { + var objects = new Array(arguments.length); + for (var i = 0; i < objects.length; i++) { + objects[i] = arguments[i]; + } + if (objects.length === 0) { + throw new Error('Can\'t merge zero objects'); + } + var ret = {}; + for (var j = 0; j < objects.length; j++) { + var curObject = objects[j]; + for (var key in curObject) { + if (hasOwnProperty$2.call(curObject, key)) { + ret[key] = merger(ret[key], curObject[key]); + } + } + } + return ret; + }; + }; + var deepMerge = baseMerge(deep$1); + + var sectionResult = Immutable('sections', 'settings'); + var deviceDetection = detect$3().deviceType; + var isTouch = deviceDetection.isTouch(); + var isPhone = deviceDetection.isPhone(); + var isTablet = deviceDetection.isTablet(); + var legacyMobilePlugins = [ + 'lists', + 'autolink', + 'autosave' + ]; + var defaultTouchSettings = { + table_grid: false, + object_resizing: false, + resize: false + }; + var normalizePlugins = function (plugins) { + var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins; + var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim); + return filter(trimmedPlugins, function (item) { + return item.length > 0; + }); + }; + var filterLegacyMobilePlugins = function (plugins) { + return filter(plugins, curry(contains, legacyMobilePlugins)); + }; + var extractSections = function (keys, settings) { + var result = bifilter(settings, function (value, key) { + return contains(keys, key); + }); + return sectionResult(result.t, result.f); + }; + var getSection = function (sectionResult, name, defaults) { + if (defaults === void 0) { + defaults = {}; + } + var sections = sectionResult.sections(); + var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {}; + return Tools.extend({}, defaults, sectionSettings); + }; + var hasSection = function (sectionResult, name) { + return sectionResult.sections().hasOwnProperty(name); + }; + var isSectionTheme = function (sectionResult, name, theme) { + var section = sectionResult.sections(); + return hasSection(sectionResult, name) && section[name].theme === theme; + }; + var getSectionConfig = function (sectionResult, name) { + return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {}; + }; + var getToolbarMode = function (settings, defaultVal) { + return get(settings, 'toolbar_mode').orThunk(function () { + return get(settings, 'toolbar_drawer').map(function (val) { + return val === false ? 'wrap' : val; + }); + }).getOr(defaultVal); + }; + var getDefaultSettings = function (settings, id, documentBaseUrl, isTouch, editor) { + var baseDefaults = { + id: id, + theme: 'silver', + toolbar_mode: getToolbarMode(settings, 'floating'), + plugins: '', + document_base_url: documentBaseUrl, + add_form_submit_trigger: true, + submit_patch: true, + add_unload_trigger: true, + convert_urls: true, + relative_urls: true, + remove_script_host: true, + object_resizing: true, + doctype: '', + visual: true, + font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%', + forced_root_block: 'p', + hidden_input: true, + inline_styles: true, + convert_fonts_to_spans: true, + indent: true, + indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist', + indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist', + entity_encoding: 'named', + url_converter: editor.convertURL, + url_converter_scope: editor + }; + return __assign(__assign({}, baseDefaults), isTouch ? defaultTouchSettings : {}); + }; + var getDefaultMobileSettings = function (settings, isPhone) { + var defaultMobileSettings = { + resize: false, + toolbar_mode: getToolbarMode(settings, 'scrolling'), + toolbar_sticky: false + }; + var defaultPhoneSettings = { menubar: false }; + return __assign(__assign(__assign({}, defaultTouchSettings), defaultMobileSettings), isPhone ? defaultPhoneSettings : {}); + }; + var getExternalPlugins = function (overrideSettings, settings) { + var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {}; + if (overrideSettings && overrideSettings.external_plugins) { + return Tools.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins); + } else { + return userDefinedExternalPlugins; + } + }; + var combinePlugins = function (forcedPlugins, plugins) { + return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins)); + }; + var processPlugins = function (isMobileDevice, sectionResult, defaultOverrideSettings, settings) { + var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins); + var desktopPlugins = normalizePlugins(settings.plugins); + var mobileConfig = getSectionConfig(sectionResult, 'mobile'); + var mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins; + var platformPlugins = isMobileDevice && isSectionTheme(sectionResult, 'mobile', 'mobile') ? filterLegacyMobilePlugins(mobilePlugins) : isMobileDevice && hasSection(sectionResult, 'mobile') ? mobilePlugins : desktopPlugins; + var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins); + return Tools.extend(settings, { plugins: combinedPlugins.join(' ') }); + }; + var isOnMobile = function (isMobileDevice, sectionResult) { + return isMobileDevice && hasSection(sectionResult, 'mobile'); + }; + var combineSettings = function (isMobileDevice, isPhone, defaultSettings, defaultOverrideSettings, settings) { + var defaultDeviceSettings = isMobileDevice ? { mobile: getDefaultMobileSettings(settings, isPhone) } : {}; + var sectionResult = extractSections(['mobile'], deepMerge(defaultDeviceSettings, settings)); + var extendedSettings = Tools.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isMobileDevice, sectionResult) ? getSection(sectionResult, 'mobile') : {}, { + validate: true, + external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings()) + }); + return processPlugins(isMobileDevice, sectionResult, defaultOverrideSettings, extendedSettings); + }; + var getEditorSettings = function (editor, id, documentBaseUrl, defaultOverrideSettings, settings) { + var defaultSettings = getDefaultSettings(settings, id, documentBaseUrl, isTouch, editor); + return combineSettings(isPhone || isTablet, isPhone, defaultSettings, defaultOverrideSettings, settings); + }; + var getFiltered = function (predicate, editor, name) { + return Option.from(editor.settings[name]).filter(predicate); + }; + var getParamObject = function (value) { + var output = {}; + if (typeof value === 'string') { + each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) { + var arr = val.split('='); + if (arr.length > 1) { + output[Tools.trim(arr[0])] = Tools.trim(arr[1]); + } else { + output[Tools.trim(arr[0])] = Tools.trim(arr[0]); + } + }); + } else { + output = value; + } + return output; + }; + var isArrayOf = function (p) { + return function (a) { + return isArray(a) && forall(a, p); + }; + }; + var getParam = function (editor, name, defaultVal, type) { + var value = name in editor.settings ? editor.settings[name] : defaultVal; + if (type === 'hash') { + return getParamObject(value); + } else if (type === 'string') { + return getFiltered(isString, editor, name).getOr(defaultVal); + } else if (type === 'number') { + return getFiltered(isNumber, editor, name).getOr(defaultVal); + } else if (type === 'boolean') { + return getFiltered(isBoolean, editor, name).getOr(defaultVal); + } else if (type === 'object') { + return getFiltered(isObject, editor, name).getOr(defaultVal); + } else if (type === 'array') { + return getFiltered(isArray, editor, name).getOr(defaultVal); + } else if (type === 'string[]') { + return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal); + } else if (type === 'function') { + return getFiltered(isFunction, editor, name).getOr(defaultVal); + } else { + return value; + } + }; + + var CreateIconManager = function () { + var lookup = {}; + var add = function (id, iconPack) { + lookup[id] = iconPack; + }; + var get = function (id) { + if (lookup[id]) { + return lookup[id]; + } + return { icons: {} }; + }; + var has$1 = function (id) { + return has(lookup, id); + }; + return { + add: add, + get: get, + has: has$1 + }; + }; + var IconManager = CreateIconManager(); + + var getProp = function (propName, elm) { + var rawElm = elm.dom(); + return rawElm[propName]; + }; + var getComputedSizeProp = function (propName, elm) { + return parseInt(get$4(elm, propName), 10); + }; + var getClientWidth = curry(getProp, 'clientWidth'); + var getClientHeight = curry(getProp, 'clientHeight'); + var getMarginTop = curry(getComputedSizeProp, 'margin-top'); + var getMarginLeft = curry(getComputedSizeProp, 'margin-left'); + var getBoundingClientRect$1 = function (elm) { + return elm.dom().getBoundingClientRect(); + }; + var isInsideElementContentArea = function (bodyElm, clientX, clientY) { + var clientWidth = getClientWidth(bodyElm); + var clientHeight = getClientHeight(bodyElm); + return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight; + }; + var transpose = function (inline, elm, clientX, clientY) { + var clientRect = getBoundingClientRect$1(elm); + var deltaX = inline ? clientRect.left + elm.dom().clientLeft + getMarginLeft(elm) : 0; + var deltaY = inline ? clientRect.top + elm.dom().clientTop + getMarginTop(elm) : 0; + var x = clientX - deltaX; + var y = clientY - deltaY; + return { + x: x, + y: y + }; + }; + var isXYInContentArea = function (editor, clientX, clientY) { + var bodyElm = Element.fromDom(editor.getBody()); + var targetElm = editor.inline ? bodyElm : documentElement(bodyElm); + var transposedPoint = transpose(editor.inline, targetElm, clientX, clientY); + return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y); + }; + var fromDomSafe = function (node) { + return Option.from(node).map(Element.fromDom); + }; + var isEditorAttachedToDom = function (editor) { + var rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer(); + return fromDomSafe(rawContainer).map(function (container) { + return contains$2(owner(container), container); + }).getOr(false); + }; + var EditorView = { + isXYInContentArea: isXYInContentArea, + isEditorAttachedToDom: isEditorAttachedToDom + }; + + function NotificationManagerImpl() { + var unimplemented = function () { + throw new Error('Theme did not provide a NotificationManager implementation.'); + }; + return { + open: unimplemented, + close: unimplemented, + reposition: unimplemented, + getArgs: unimplemented + }; + } + + function NotificationManager(editor) { + var notifications = []; + var getImplementation = function () { + var theme = editor.theme; + return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl(); + }; + var getTopNotification = function () { + return Option.from(notifications[0]); + }; + var isEqual = function (a, b) { + return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout; + }; + var reposition = function () { + if (notifications.length > 0) { + getImplementation().reposition(notifications); + } + }; + var addNotification = function (notification) { + notifications.push(notification); + }; + var closeNotification = function (notification) { + findIndex(notifications, function (otherNotification) { + return otherNotification === notification; + }).each(function (index) { + notifications.splice(index, 1); + }); + }; + var open = function (spec) { + if (editor.removed || !EditorView.isEditorAttachedToDom(editor)) { + return; + } + return find(notifications, function (notification) { + return isEqual(getImplementation().getArgs(notification), spec); + }).getOrThunk(function () { + editor.editorManager.setActive(editor); + var notification = getImplementation().open(spec, function () { + closeNotification(notification); + reposition(); + }); + addNotification(notification); + reposition(); + return notification; + }); + }; + var close = function () { + getTopNotification().each(function (notification) { + getImplementation().close(notification); + closeNotification(notification); + reposition(); + }); + }; + var getNotifications = function () { + return notifications; + }; + var registerEvents = function (editor) { + editor.on('SkinLoaded', function () { + var serviceMessage = editor.settings.service_message; + if (serviceMessage) { + open({ + text: serviceMessage, + type: 'warning', + timeout: 0 + }); + } + }); + editor.on('ResizeEditor ResizeWindow NodeChange', function () { + Delay.requestAnimationFrame(reposition); + }); + editor.on('remove', function () { + each(notifications.slice(), function (notification) { + getImplementation().close(notification); + }); + }); + }; + registerEvents(editor); + return { + open: open, + close: close, + getNotifications: getNotifications + }; + } + + var PluginManager = AddOnManager$1.PluginManager; + + var ThemeManager = AddOnManager$1.ThemeManager; + + function WindowManagerImpl () { + var unimplemented = function () { + throw new Error('Theme did not provide a WindowManager implementation.'); + }; + return { + open: unimplemented, + openUrl: unimplemented, + alert: unimplemented, + confirm: unimplemented, + close: unimplemented, + getParams: unimplemented, + setParams: unimplemented + }; + } + + var WindowManager = function (editor) { + var dialogs = []; + var getImplementation = function () { + var theme = editor.theme; + return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl(); + }; + var funcBind = function (scope, f) { + return function () { + return f ? f.apply(scope, arguments) : undefined; + }; + }; + var fireOpenEvent = function (dialog) { + editor.fire('OpenWindow', { dialog: dialog }); + }; + var fireCloseEvent = function (dialog) { + editor.fire('CloseWindow', { dialog: dialog }); + }; + var addDialog = function (dialog) { + dialogs.push(dialog); + fireOpenEvent(dialog); + }; + var closeDialog = function (dialog) { + fireCloseEvent(dialog); + dialogs = filter(dialogs, function (otherDialog) { + return otherDialog !== dialog; + }); + if (dialogs.length === 0) { + editor.focus(); + } + }; + var getTopDialog = function () { + return Option.from(dialogs[dialogs.length - 1]); + }; + var storeSelectionAndOpenDialog = function (openDialog) { + editor.editorManager.setActive(editor); + SelectionBookmark.store(editor); + var dialog = openDialog(); + addDialog(dialog); + return dialog; + }; + var open = function (args, params) { + return storeSelectionAndOpenDialog(function () { + return getImplementation().open(args, params, closeDialog); + }); + }; + var openUrl = function (args) { + return storeSelectionAndOpenDialog(function () { + return getImplementation().openUrl(args, closeDialog); + }); + }; + var alert = function (message, callback, scope) { + getImplementation().alert(message, funcBind(scope ? scope : this, callback)); + }; + var confirm = function (message, callback, scope) { + getImplementation().confirm(message, funcBind(scope ? scope : this, callback)); + }; + var close = function () { + getTopDialog().each(function (dialog) { + getImplementation().close(dialog); + closeDialog(dialog); + }); + }; + editor.on('remove', function () { + each(dialogs, function (dialog) { + getImplementation().close(dialog); + }); + }); + return { + open: open, + openUrl: openUrl, + alert: alert, + confirm: confirm, + close: close + }; + }; + + var displayNotification = function (editor, message) { + editor.notificationManager.open({ + type: 'error', + text: message + }); + }; + var displayError = function (editor, message) { + if (editor._skinLoaded) { + displayNotification(editor, message); + } else { + editor.on('SkinLoaded', function () { + displayNotification(editor, message); + }); + } + }; + var uploadError = function (editor, message) { + displayError(editor, I18n.translate([ + 'Failed to upload image: {0}', + message + ])); + }; + var logError = function (editor, errorType, msg) { + fireError(editor, errorType, { message: msg }); + domGlobals.console.error(msg); + }; + var createLoadError = function (type, url, name) { + return name ? 'Failed to load ' + type + ': ' + name + ' from url ' + url : 'Failed to load ' + type + ' url: ' + url; + }; + var pluginLoadError = function (editor, url, name) { + logError(editor, 'PluginLoadError', createLoadError('plugin', url, name)); + }; + var iconsLoadError = function (editor, url, name) { + logError(editor, 'IconsLoadError', createLoadError('icons', url, name)); + }; + var languageLoadError = function (editor, url, name) { + logError(editor, 'LanguageLoadError', createLoadError('language', url, name)); + }; + var pluginInitError = function (editor, name, err) { + var message = I18n.translate([ + 'Failed to initialize plugin: {0}', + name + ]); + initError(message, err); + displayError(editor, message); + }; + var initError = function (message) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var console = domGlobals.window.console; + if (console) { + if (console.error) { + console.error.apply(console, arguments); + } else { + console.log.apply(console, arguments); + } + } + }; + var ErrorReporter = { + pluginLoadError: pluginLoadError, + iconsLoadError: iconsLoadError, + languageLoadError: languageLoadError, + pluginInitError: pluginInitError, + uploadError: uploadError, + displayError: displayError, + initError: initError + }; + + var getAll = function () { + return { + 'accessibility-check': '', + 'action-next': '', + 'action-prev': '', + 'align-center': '', + 'align-justify': '', + 'align-left': '', + 'align-none': '', + 'align-right': '', + 'arrow-left': '', + 'arrow-right': '', + 'bold': '', + 'bookmark': '', + 'border-width': '', + 'brightness': '', + 'browse': '', + 'cancel': '', + 'change-case': '', + 'character-count': '', + 'checklist-rtl': '', + 'checklist': '', + 'checkmark': '', + 'chevron-down': '', + 'chevron-left': '', + 'chevron-right': '', + 'chevron-up': '', + 'close': '', + 'code-sample': '', + 'color-levels': '', + 'color-picker': '', + 'color-swatch-remove-color': '', + 'color-swatch': '', + 'comment-add': '', + 'comment': '', + 'contrast': '', + 'copy': '', + 'crop': '', + 'cut': '', + 'document-properties': '', + 'drag': '', + 'duplicate': '', + 'edit-block': '', + 'edit-image': '', + 'embed-page': '', + 'embed': '', + 'emoji': '', + 'fill': '', + 'flip-horizontally': '', + 'flip-vertically': '', + 'format-painter': '', + 'format': '', + 'fullscreen': '', + 'gallery': '', + 'gamma': '', + 'help': '', + 'highlight-bg-color': '', + 'home': '', + 'horizontal-rule': '', + 'image-options': '', + 'image': '', + 'indent': '', + 'info': '', + 'insert-character': '', + 'insert-time': '', + 'invert': '', + 'italic': '', + 'line': '', + 'link': '', + 'list-bull-circle': '', + 'list-bull-default': '', + 'list-bull-square': '', + 'list-num-default-rtl': '', + 'list-num-default': '', + 'list-num-lower-alpha-rtl': '', + 'list-num-lower-alpha': '', + 'list-num-lower-greek-rtl': '', + 'list-num-lower-greek': '', + 'list-num-lower-roman-rtl': '', + 'list-num-lower-roman': '', + 'list-num-upper-alpha-rtl': '', + 'list-num-upper-alpha': '', + 'list-num-upper-roman-rtl': '', + 'list-num-upper-roman': '', + 'lock': '', + 'ltr': '', + 'more-drawer': '', + 'new-document': '', + 'new-tab': '', + 'non-breaking': '', + 'notice': '', + 'ordered-list-rtl': '', + 'ordered-list': '', + 'orientation': '', + 'outdent': '', + 'page-break': '', + 'paragraph': '', + 'paste-text': '', + 'paste': '', + 'permanent-pen': '', + 'plus': '', + 'preferences': '', + 'preview': '', + 'print': '', + 'quote': '', + 'redo': '', + 'reload': '', + 'remove-formatting': '', + 'remove': '', + 'resize-handle': '', + 'resize': '', + 'restore-draft': '', + 'rotate-left': '', + 'rotate-right': '', + 'rtl': '', + 'save': '', + 'search': '', + 'select-all': '', + 'selected': '', + 'settings': '', + 'sharpen': '', + 'sort-asc': '', + 'sort-dsc': '', + 'sourcecode': '', + 'spell-check': '', + 'strike-through': '', + 'subscript': '', + 'superscript': '', + 'table-cell-properties': '', + 'table-cell-select-all': '', + 'table-cell-select-inner': '', + 'table-delete-column': '', + 'table-delete-row': '', + 'table-delete-table': '', + 'table-insert-column-after': '', + 'table-insert-column-before': '', + 'table-insert-row-above': '', + 'table-insert-row-after': '', + 'table-left-header': '', + 'table-merge-cells': '', + 'table-row-properties': '', + 'table-split-cells': '', + 'table-top-header': '', + 'table': '', + 'template': '', + 'temporary-placeholder': '', + 'text-color': '', + 'toc': '', + 'translate': '', + 'underline': '', + 'undo': '', + 'unlink': '', + 'unlock': '', + 'unordered-list': '', + 'unselected': '', + 'upload': '', + 'user': '', + 'visualblocks': '', + 'visualchars': '', + 'warning': '', + 'zoom-in': '', + 'zoom-out': '' + }; + }; + + var isContentCssSkinName = function (url) { + return /^[a-z0-9\-]+$/i.test(url); + }; + var getContentCssUrls = function (editor) { + var contentCss = Settings.getContentCss(editor); + var skinUrl = editor.editorManager.baseURL + '/skins/content'; + var suffix = editor.editorManager.suffix; + var contentCssFile = 'content' + suffix + '.css'; + var inline = editor.inline === true; + return map(contentCss, function (url) { + if (isContentCssSkinName(url) && !inline) { + return skinUrl + '/' + url + '/' + contentCssFile; + } else { + return editor.documentBaseURI.toAbsolute(url); + } + }); + }; + var appendContentCssFromSettings = function (editor) { + editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor)); + }; + + function BookmarkManager(selection) { + return { + getBookmark: curry(Bookmarks.getBookmark, selection), + moveToBookmark: curry(Bookmarks.moveToBookmark, selection) + }; + } + (function (BookmarkManager) { + BookmarkManager.isBookmarkNode = Bookmarks.isBookmarkNode; + }(BookmarkManager || (BookmarkManager = {}))); + var BookmarkManager$1 = BookmarkManager; + + var isXYWithinRange = function (clientX, clientY, range) { + if (range.collapsed) { + return false; + } + if (Env.browser.isIE() && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) { + var elm = range.startContainer.childNodes[range.startOffset]; + if (NodeType.isElement(elm)) { + return exists(elm.getClientRects(), function (rect) { + return containsXY(rect, clientX, clientY); + }); + } + } + return exists(range.getClientRects(), function (rect) { + return containsXY(rect, clientX, clientY); + }); + }; + var RangePoint = { isXYWithinRange: isXYWithinRange }; + + var VK = { + BACKSPACE: 8, + DELETE: 46, + DOWN: 40, + ENTER: 13, + LEFT: 37, + RIGHT: 39, + SPACEBAR: 32, + TAB: 9, + UP: 38, + END: 35, + HOME: 36, + modifierPressed: function (e) { + return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e); + }, + metaKeyPressed: function (e) { + return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey; + } + }; + + var isContentEditableFalse$6 = NodeType.isContentEditableFalse; + var isContentEditableTrue$2 = NodeType.isContentEditableTrue; + var getContentEditableRoot = function (root, node) { + while (node && node !== root) { + if (isContentEditableTrue$2(node) || isContentEditableFalse$6(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var ControlSelection = function (selection, editor) { + var dom = editor.dom, each = Tools.each; + var selectedElm, selectedElmGhost, resizeHelper, resizeHandles, selectedHandle; + var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted; + var width, height; + var editableDoc = editor.getDoc(), rootDocument = domGlobals.document; + var abs = Math.abs, round = Math.round, rootElement = editor.getBody(); + var startScrollWidth, startScrollHeight; + resizeHandles = { + nw: [ + 0, + 0, + -1, + -1 + ], + ne: [ + 1, + 0, + 1, + -1 + ], + se: [ + 1, + 1, + 1, + 1 + ], + sw: [ + 0, + 1, + -1, + 1 + ] + }; + var isImage = function (elm) { + return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image')); + }; + var isEventOnImageOutsideRange = function (evt, range) { + if (evt.type === 'longpress' || evt.type.indexOf('touch') === 0) { + var touch = evt.touches[0]; + return isImage(evt.target) && !RangePoint.isXYWithinRange(touch.clientX, touch.clientY, range); + } else { + return isImage(evt.target) && !RangePoint.isXYWithinRange(evt.clientX, evt.clientY, range); + } + }; + var contextMenuSelectImage = function (evt) { + var target = evt.target; + if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) { + editor.selection.select(target); + } + }; + var getResizeTarget = function (elm) { + return editor.dom.is(elm, 'figure.image') ? elm.querySelector('img') : elm; + }; + var isResizable = function (elm) { + var selector = Settings.getObjectResizing(editor); + if (selector === false || Env.iOS) { + return false; + } + if (typeof selector !== 'string') { + selector = 'table,img,figure.image,div'; + } + if (elm.getAttribute('data-mce-resize') === 'false') { + return false; + } + if (elm === editor.getBody()) { + return false; + } + return is(Element.fromDom(elm), selector); + }; + var resizeGhostElement = function (e) { + var deltaX, deltaY, proportional; + var resizeHelperX, resizeHelperY; + deltaX = e.screenX - startX; + deltaY = e.screenY - startY; + width = deltaX * selectedHandle[2] + startW; + height = deltaY * selectedHandle[3] + startH; + width = width < 5 ? 5 : width; + height = height < 5 ? 5 : height; + if (isImage(selectedElm) && Settings.getResizeImgProportional(editor) !== false) { + proportional = !VK.modifierPressed(e); + } else { + proportional = VK.modifierPressed(e); + } + if (proportional) { + if (abs(deltaX) > abs(deltaY)) { + height = round(width * ratio); + width = round(height / ratio); + } else { + width = round(height / ratio); + height = round(width * ratio); + } + } + dom.setStyles(getResizeTarget(selectedElmGhost), { + width: width, + height: height + }); + resizeHelperX = selectedHandle.startPos.x + deltaX; + resizeHelperY = selectedHandle.startPos.y + deltaY; + resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0; + resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0; + dom.setStyles(resizeHelper, { + left: resizeHelperX, + top: resizeHelperY, + display: 'block' + }); + resizeHelper.innerHTML = width + ' × ' + height; + if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) { + dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width)); + } + if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) { + dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height)); + } + deltaX = rootElement.scrollWidth - startScrollWidth; + deltaY = rootElement.scrollHeight - startScrollHeight; + if (deltaX + deltaY !== 0) { + dom.setStyles(resizeHelper, { + left: resizeHelperX - deltaX, + top: resizeHelperY - deltaY + }); + } + if (!resizeStarted) { + fireObjectResizeStart(editor, selectedElm, startW, startH); + resizeStarted = true; + } + }; + var endGhostResize = function () { + resizeStarted = false; + var setSizeProp = function (name, value) { + if (value) { + if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) { + dom.setStyle(getResizeTarget(selectedElm), name, value); + } else { + dom.setAttrib(getResizeTarget(selectedElm), name, value); + } + } + }; + setSizeProp('width', width); + setSizeProp('height', height); + dom.unbind(editableDoc, 'mousemove', resizeGhostElement); + dom.unbind(editableDoc, 'mouseup', endGhostResize); + if (rootDocument !== editableDoc) { + dom.unbind(rootDocument, 'mousemove', resizeGhostElement); + dom.unbind(rootDocument, 'mouseup', endGhostResize); + } + dom.remove(selectedElmGhost); + dom.remove(resizeHelper); + showResizeRect(selectedElm); + fireObjectResized(editor, selectedElm, width, height); + dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style')); + editor.nodeChanged(); + }; + var showResizeRect = function (targetElm) { + var position, targetWidth, targetHeight, e, rect; + hideResizeRect(); + unbindResizeHandleEvents(); + position = dom.getPos(targetElm, rootElement); + selectedElmX = position.x; + selectedElmY = position.y; + rect = targetElm.getBoundingClientRect(); + targetWidth = rect.width || rect.right - rect.left; + targetHeight = rect.height || rect.bottom - rect.top; + if (selectedElm !== targetElm) { + selectedElm = targetElm; + width = height = 0; + } + e = editor.fire('ObjectSelected', { target: targetElm }); + if (isResizable(targetElm) && !e.isDefaultPrevented()) { + each(resizeHandles, function (handle, name) { + var handleElm; + var startDrag = function (e) { + startX = e.screenX; + startY = e.screenY; + startW = getResizeTarget(selectedElm).clientWidth; + startH = getResizeTarget(selectedElm).clientHeight; + ratio = startH / startW; + selectedHandle = handle; + handle.startPos = { + x: targetWidth * handle[0] + selectedElmX, + y: targetHeight * handle[1] + selectedElmY + }; + startScrollWidth = rootElement.scrollWidth; + startScrollHeight = rootElement.scrollHeight; + selectedElmGhost = selectedElm.cloneNode(true); + dom.addClass(selectedElmGhost, 'mce-clonedresizable'); + dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all'); + selectedElmGhost.contentEditable = false; + selectedElmGhost.unSelectabe = true; + dom.setStyles(selectedElmGhost, { + left: selectedElmX, + top: selectedElmY, + margin: 0 + }); + selectedElmGhost.removeAttribute('data-mce-selected'); + rootElement.appendChild(selectedElmGhost); + dom.bind(editableDoc, 'mousemove', resizeGhostElement); + dom.bind(editableDoc, 'mouseup', endGhostResize); + if (rootDocument !== editableDoc) { + dom.bind(rootDocument, 'mousemove', resizeGhostElement); + dom.bind(rootDocument, 'mouseup', endGhostResize); + } + resizeHelper = dom.add(rootElement, 'div', { + 'class': 'mce-resize-helper', + 'data-mce-bogus': 'all' + }, startW + ' × ' + startH); + }; + handleElm = dom.get('mceResizeHandle' + name); + if (handleElm) { + dom.remove(handleElm); + } + handleElm = dom.add(rootElement, 'div', { + 'id': 'mceResizeHandle' + name, + 'data-mce-bogus': 'all', + 'class': 'mce-resizehandle', + 'unselectable': true, + 'style': 'cursor:' + name + '-resize; margin:0; padding:0' + }); + if (Env.ie === 11) { + handleElm.contentEditable = false; + } + dom.bind(handleElm, 'mousedown', function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + startDrag(e); + }); + handle.elm = handleElm; + dom.setStyles(handleElm, { + left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2, + top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2 + }); + }); + } else { + hideResizeRect(); + } + selectedElm.setAttribute('data-mce-selected', '1'); + }; + var hideResizeRect = function () { + var name, handleElm; + unbindResizeHandleEvents(); + if (selectedElm) { + selectedElm.removeAttribute('data-mce-selected'); + } + for (name in resizeHandles) { + handleElm = dom.get('mceResizeHandle' + name); + if (handleElm) { + dom.unbind(handleElm); + dom.remove(handleElm); + } + } + }; + var updateResizeRect = function (e) { + var startElm, controlElm; + var isChildOrEqual = function (node, parent) { + if (node) { + do { + if (node === parent) { + return true; + } + } while (node = node.parentNode); + } + }; + if (resizeStarted || editor.removed) { + return; + } + each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) { + img.removeAttribute('data-mce-selected'); + }); + controlElm = e.type === 'mousedown' ? e.target : selection.getNode(); + controlElm = dom.$(controlElm).closest('table,img,figure.image,hr')[0]; + if (isChildOrEqual(controlElm, rootElement)) { + disableGeckoResize(); + startElm = selection.getStart(true); + if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) { + showResizeRect(controlElm); + return; + } + } + hideResizeRect(); + }; + var isWithinContentEditableFalse = function (elm) { + return isContentEditableFalse$6(getContentEditableRoot(editor.getBody(), elm)); + }; + var unbindResizeHandleEvents = function () { + for (var name_1 in resizeHandles) { + var handle = resizeHandles[name_1]; + if (handle.elm) { + dom.unbind(handle.elm); + delete handle.elm; + } + } + }; + var disableGeckoResize = function () { + try { + editor.getDoc().execCommand('enableObjectResizing', false, false); + } catch (ex) { + } + }; + editor.on('init', function () { + disableGeckoResize(); + if (Env.browser.isIE() || Env.browser.isEdge()) { + editor.on('mousedown click', function (e) { + var target = e.target, nodeName = target.nodeName; + if (!resizeStarted && /^(TABLE|IMG|HR)$/.test(nodeName) && !isWithinContentEditableFalse(target)) { + if (e.button !== 2) { + editor.selection.select(target, nodeName === 'TABLE'); + } + if (e.type === 'mousedown') { + editor.nodeChanged(); + } + } + }); + var handleMSControlSelect_1 = function (e) { + var delayedSelect = function (node) { + Delay.setEditorTimeout(editor, function () { + return editor.selection.select(node); + }); + }; + if (isWithinContentEditableFalse(e.target)) { + e.preventDefault(); + delayedSelect(e.target); + return; + } + if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) { + e.preventDefault(); + if (e.target.tagName === 'IMG') { + delayedSelect(e.target); + } + } + }; + dom.bind(rootElement, 'mscontrolselect', handleMSControlSelect_1); + editor.on('remove', function () { + return dom.unbind(rootElement, 'mscontrolselect', handleMSControlSelect_1); + }); + } + var throttledUpdateResizeRect = Delay.throttle(function (e) { + if (!editor.composing) { + updateResizeRect(e); + } + }); + editor.on('nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged', throttledUpdateResizeRect); + editor.on('keyup compositionend', function (e) { + if (selectedElm && selectedElm.nodeName === 'TABLE') { + throttledUpdateResizeRect(e); + } + }); + editor.on('hide blur', hideResizeRect); + editor.on('contextmenu longpress', contextMenuSelectImage, true); + }); + editor.on('remove', unbindResizeHandleEvents); + var destroy = function () { + selectedElm = selectedElmGhost = null; + }; + return { + isResizable: isResizable, + showResizeRect: showResizeRect, + hideResizeRect: hideResizeRect, + updateResizeRect: updateResizeRect, + destroy: destroy + }; + }; + + function Dimension (name, getOffset) { + var set = function (element, h) { + if (!isNumber(h) && !h.match(/^[0-9]+$/)) { + throw new Error(name + '.set accepts only positive integer values. Value was ' + h); + } + var dom = element.dom(); + if (isSupported(dom)) { + dom.style[name] = h + 'px'; + } + }; + var get = function (element) { + var r = getOffset(element); + if (r <= 0 || r === null) { + var css = get$4(element, name); + return parseFloat(css) || 0; + } + return r; + }; + var getOuter = get; + var aggregate = function (element, properties) { + return foldl(properties, function (acc, property) { + var val = get$4(element, property); + var value = val === undefined ? 0 : parseInt(val, 10); + return isNaN(value) ? acc : acc + value; + }, 0); + }; + var max = function (element, value, properties) { + var cumulativeInclusions = aggregate(element, properties); + var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0; + return absoluteMax; + }; + return { + set: set, + get: get, + getOuter: getOuter, + aggregate: aggregate, + max: max + }; + } + + var api$1 = Dimension('height', function (element) { + var dom = element.dom(); + return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight; + }); + var get$8 = function (element) { + return api$1.get(element); + }; + + var walkUp = function (navigation, doc) { + var frame = navigation.view(doc); + return frame.fold(constant([]), function (f) { + var parent = navigation.owner(f); + var rest = walkUp(navigation, parent); + return [f].concat(rest); + }); + }; + var pathTo = function (element, navigation) { + var d = navigation.owner(element); + return walkUp(navigation, d); + }; + + var view = function (doc) { + var element = doc.dom() === domGlobals.document ? Option.none() : Option.from(doc.dom().defaultView.frameElement); + return element.map(Element.fromDom); + }; + var owner$1 = function (element) { + return owner(element); + }; + + var Navigation = /*#__PURE__*/Object.freeze({ + __proto__: null, + view: view, + owner: owner$1 + }); + + var find$3 = function (element) { + var doc = Element.fromDom(domGlobals.document); + var scroll = get$1(doc); + var frames = pathTo(element, Navigation); + var offset = viewport(element); + var r = foldr(frames, function (b, a) { + var loc = viewport(a); + return { + left: b.left + loc.left(), + top: b.top + loc.top() + }; + }, { + left: 0, + top: 0 + }); + return Position(r.left + offset.left() + scroll.left(), r.top + offset.top() + scroll.top()); + }; + + var excludeFromDescend = function (element) { + return name(element) === 'textarea'; + }; + var fireScrollIntoViewEvent = function (editor, data) { + var scrollEvent = editor.fire('ScrollIntoView', data); + return scrollEvent.isDefaultPrevented(); + }; + var fireAfterScrollIntoViewEvent = function (editor, data) { + editor.fire('AfterScrollIntoView', data); + }; + var descend = function (element, offset) { + var children$1 = children(element); + if (children$1.length === 0 || excludeFromDescend(element)) { + return { + element: element, + offset: offset + }; + } else if (offset < children$1.length && !excludeFromDescend(children$1[offset])) { + return { + element: children$1[offset], + offset: 0 + }; + } else { + var last = children$1[children$1.length - 1]; + if (excludeFromDescend(last)) { + return { + element: element, + offset: offset + }; + } else { + if (name(last) === 'img') { + return { + element: last, + offset: 1 + }; + } else if (isText(last)) { + return { + element: last, + offset: get$7(last).length + }; + } else { + return { + element: last, + offset: children(last).length + }; + } + } + } + }; + var markerInfo = function (element, cleanupFun) { + var pos = absolute(element); + var height = get$8(element); + return { + element: element, + bottom: pos.top() + height, + height: height, + pos: pos, + cleanup: cleanupFun + }; + }; + var createMarker = function (element, offset) { + var startPoint = descend(element, offset); + var span = Element.fromHtml('' + Zwsp.ZWSP + ''); + before(startPoint.element, span); + return markerInfo(span, function () { + return remove(span); + }); + }; + var elementMarker = function (element) { + return markerInfo(Element.fromDom(element), noop); + }; + var withMarker = function (editor, f, rng, alignToTop) { + preserveWith(editor, function (_s, _e) { + return applyWithMarker(editor, f, rng, alignToTop); + }, rng); + }; + var withScrollEvents = function (editor, doc, f, marker, alignToTop) { + var data = { + elm: marker.element.dom(), + alignToTop: alignToTop + }; + if (fireScrollIntoViewEvent(editor, data)) { + return; + } + var scrollTop = get$1(doc).top(); + f(doc, scrollTop, marker, alignToTop); + fireAfterScrollIntoViewEvent(editor, data); + }; + var applyWithMarker = function (editor, f, rng, alignToTop) { + var body = Element.fromDom(editor.getBody()); + var doc = Element.fromDom(editor.getDoc()); + reflow(body); + var marker = createMarker(Element.fromDom(rng.startContainer), rng.startOffset); + withScrollEvents(editor, doc, f, marker, alignToTop); + marker.cleanup(); + }; + var withElement = function (editor, element, f, alignToTop) { + var doc = Element.fromDom(editor.getDoc()); + withScrollEvents(editor, doc, f, elementMarker(element), alignToTop); + }; + var preserveWith = function (editor, f, rng) { + var startElement = rng.startContainer; + var startOffset = rng.startOffset; + var endElement = rng.endContainer; + var endOffset = rng.endOffset; + f(Element.fromDom(startElement), Element.fromDom(endElement)); + var newRng = editor.dom.createRng(); + newRng.setStart(startElement, startOffset); + newRng.setEnd(endElement, endOffset); + editor.selection.setRng(rng); + }; + var scrollToMarker = function (marker, viewHeight, alignToTop, doc) { + var pos = marker.pos; + if (alignToTop) { + to(pos.left(), pos.top(), doc); + } else { + var y = pos.top() - viewHeight + marker.height; + to(pos.left(), y, doc); + } + }; + var intoWindowIfNeeded = function (doc, scrollTop, viewHeight, marker, alignToTop) { + var viewportBottom = viewHeight + scrollTop; + var markerTop = marker.pos.top(); + var markerBottom = marker.bottom; + var largerThanViewport = markerBottom - markerTop >= viewHeight; + if (markerTop < scrollTop) { + scrollToMarker(marker, viewHeight, alignToTop !== false, doc); + } else if (markerTop > viewportBottom) { + var align = largerThanViewport ? alignToTop !== false : alignToTop === true; + scrollToMarker(marker, viewHeight, align, doc); + } else if (markerBottom > viewportBottom && !largerThanViewport) { + scrollToMarker(marker, viewHeight, alignToTop === true, doc); + } + }; + var intoWindow = function (doc, scrollTop, marker, alignToTop) { + var viewHeight = doc.dom().defaultView.innerHeight; + intoWindowIfNeeded(doc, scrollTop, viewHeight, marker, alignToTop); + }; + var intoFrame = function (doc, scrollTop, marker, alignToTop) { + var frameViewHeight = doc.dom().defaultView.innerHeight; + intoWindowIfNeeded(doc, scrollTop, frameViewHeight, marker, alignToTop); + var op = find$3(marker.element); + var viewportBounds = getBounds(domGlobals.window); + if (op.top() < viewportBounds.y()) { + intoView(marker.element, alignToTop !== false); + } else if (op.top() > viewportBounds.bottom()) { + intoView(marker.element, alignToTop === true); + } + }; + var rangeIntoWindow = function (editor, rng, alignToTop) { + return withMarker(editor, intoWindow, rng, alignToTop); + }; + var elementIntoWindow = function (editor, element, alignToTop) { + return withElement(editor, element, intoWindow, alignToTop); + }; + var rangeIntoFrame = function (editor, rng, alignToTop) { + return withMarker(editor, intoFrame, rng, alignToTop); + }; + var elementIntoFrame = function (editor, element, alignToTop) { + return withElement(editor, element, intoFrame, alignToTop); + }; + var elementIntoView = function (editor, element, alignToTop) { + var scroller = editor.inline ? elementIntoWindow : elementIntoFrame; + scroller(editor, element, alignToTop); + }; + var rangeIntoView = function (editor, rng, alignToTop) { + var scroller = editor.inline ? rangeIntoWindow : rangeIntoFrame; + scroller(editor, rng, alignToTop); + }; + var ScrollIntoView = { + scrollElementIntoView: elementIntoView, + scrollRangeIntoView: rangeIntoView + }; + + var hasCeProperty = function (node) { + return NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node); + }; + var findParent = function (node, rootNode, predicate) { + while (node && node !== rootNode) { + if (predicate(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var findClosestIeRange = function (clientX, clientY, doc) { + var element, rng, rects; + element = doc.elementFromPoint(clientX, clientY); + rng = doc.body.createTextRange(); + if (!element || element.tagName === 'HTML') { + element = doc.body; + } + rng.moveToElementText(element); + rects = Tools.toArray(rng.getClientRects()); + rects = rects.sort(function (a, b) { + a = Math.abs(Math.max(a.top - clientY, a.bottom - clientY)); + b = Math.abs(Math.max(b.top - clientY, b.bottom - clientY)); + return a - b; + }); + if (rects.length > 0) { + clientY = (rects[0].bottom + rects[0].top) / 2; + try { + rng.moveToPoint(clientX, clientY); + rng.collapse(true); + return rng; + } catch (ex) { + } + } + return null; + }; + var moveOutOfContentEditableFalse = function (rng, rootNode) { + var parentElement = rng && rng.parentElement ? rng.parentElement() : null; + return NodeType.isContentEditableFalse(findParent(parentElement, rootNode, hasCeProperty)) ? null : rng; + }; + var fromPoint$1 = function (clientX, clientY, doc) { + var rng, point; + var pointDoc = doc; + if (pointDoc.caretPositionFromPoint) { + point = pointDoc.caretPositionFromPoint(clientX, clientY); + if (point) { + rng = doc.createRange(); + rng.setStart(point.offsetNode, point.offset); + rng.collapse(true); + } + } else if (doc.caretRangeFromPoint) { + rng = doc.caretRangeFromPoint(clientX, clientY); + } else if (pointDoc.body.createTextRange) { + rng = pointDoc.body.createTextRange(); + try { + rng.moveToPoint(clientX, clientY); + rng.collapse(true); + } catch (ex) { + rng = findClosestIeRange(clientX, clientY, doc); + } + return moveOutOfContentEditableFalse(rng, doc.body); + } + return rng; + }; + var CaretRangeFromPoint = { fromPoint: fromPoint$1 }; + + var processRanges = function (editor, ranges) { + return map(ranges, function (range) { + var evt = editor.fire('GetSelectionRange', { range: range }); + return evt.range !== range ? evt.range : range; + }); + }; + var EventProcessRanges = { processRanges: processRanges }; + + var fromElements = function (elements, scope) { + var doc = scope || domGlobals.document; + var fragment = doc.createDocumentFragment(); + each(elements, function (element) { + fragment.appendChild(element.dom()); + }); + return Element.fromDom(fragment); + }; + + var dropLast = function (xs) { + return xs.slice(0, -1); + }; + var parentsUntil$1 = function (start, root, predicate) { + if (contains$2(root, start)) { + return dropLast(parents(start, function (elm) { + return predicate(elm) || eq(elm, root); + })); + } else { + return []; + } + }; + var parents$1 = function (start, root) { + return parentsUntil$1(start, root, constant(false)); + }; + var parentsAndSelf = function (start, root) { + return [start].concat(parents$1(start, root)); + }; + var Parents = { + parentsUntil: parentsUntil$1, + parents: parents$1, + parentsAndSelf: parentsAndSelf + }; + + var getStartNode = function (rng) { + var sc = rng.startContainer, so = rng.startOffset; + if (NodeType.isText(sc)) { + return so === 0 ? Option.some(Element.fromDom(sc)) : Option.none(); + } else { + return Option.from(sc.childNodes[so]).map(Element.fromDom); + } + }; + var getEndNode = function (rng) { + var ec = rng.endContainer, eo = rng.endOffset; + if (NodeType.isText(ec)) { + return eo === ec.data.length ? Option.some(Element.fromDom(ec)) : Option.none(); + } else { + return Option.from(ec.childNodes[eo - 1]).map(Element.fromDom); + } + }; + var getFirstChildren = function (node) { + return firstChild(node).fold(constant([node]), function (child) { + return [node].concat(getFirstChildren(child)); + }); + }; + var getLastChildren = function (node) { + return lastChild(node).fold(constant([node]), function (child) { + if (name(child) === 'br') { + return prevSibling(child).map(function (sibling) { + return [node].concat(getLastChildren(sibling)); + }).getOr([]); + } else { + return [node].concat(getLastChildren(child)); + } + }); + }; + var hasAllContentsSelected = function (elm, rng) { + return lift2(getStartNode(rng), getEndNode(rng), function (startNode, endNode) { + var start = find(getFirstChildren(elm), curry(eq, startNode)); + var end = find(getLastChildren(elm), curry(eq, endNode)); + return start.isSome() && end.isSome(); + }).getOr(false); + }; + var moveEndPoint$1 = function (dom, rng, node, start) { + var root = node, walker = new TreeWalker(node, root); + var nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + do { + if (node.nodeType === 3 && Tools.trim(node.nodeValue).length !== 0) { + if (start) { + rng.setStart(node, 0); + } else { + rng.setEnd(node, node.nodeValue.length); + } + return; + } + if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) { + if (start) { + rng.setStartBefore(node); + } else { + if (node.nodeName === 'BR') { + rng.setEndBefore(node); + } else { + rng.setEndAfter(node); + } + } + return; + } + } while (node = start ? walker.next() : walker.prev()); + if (root.nodeName === 'BODY') { + if (start) { + rng.setStart(root, 0); + } else { + rng.setEnd(root, root.childNodes.length); + } + } + }; + var hasAnyRanges = function (editor) { + var sel = editor.selection.getSel(); + return sel && sel.rangeCount > 0; + }; + + var tableModel = Immutable('element', 'width', 'rows'); + var tableRow = Immutable('element', 'cells'); + var cellPosition = Immutable('x', 'y'); + var getSpan = function (td, key) { + var value = parseInt(get$3(td, key), 10); + return isNaN(value) ? 1 : value; + }; + var fillout = function (table, x, y, tr, td) { + var rowspan = getSpan(td, 'rowspan'); + var colspan = getSpan(td, 'colspan'); + var rows = table.rows(); + for (var y2 = y; y2 < y + rowspan; y2++) { + if (!rows[y2]) { + rows[y2] = tableRow(deep(tr), []); + } + for (var x2 = x; x2 < x + colspan; x2++) { + var cells = rows[y2].cells(); + cells[x2] = y2 === y && x2 === x ? td : shallow(td); + } + } + }; + var cellExists = function (table, x, y) { + var rows = table.rows(); + var cells = rows[y] ? rows[y].cells() : []; + return !!cells[x]; + }; + var skipCellsX = function (table, x, y) { + while (cellExists(table, x, y)) { + x++; + } + return x; + }; + var getWidth = function (rows) { + return foldl(rows, function (acc, row) { + return row.cells().length > acc ? row.cells().length : acc; + }, 0); + }; + var findElementPos = function (table, element) { + var rows = table.rows(); + for (var y = 0; y < rows.length; y++) { + var cells = rows[y].cells(); + for (var x = 0; x < cells.length; x++) { + if (eq(cells[x], element)) { + return Option.some(cellPosition(x, y)); + } + } + } + return Option.none(); + }; + var extractRows = function (table, sx, sy, ex, ey) { + var newRows = []; + var rows = table.rows(); + for (var y = sy; y <= ey; y++) { + var cells = rows[y].cells(); + var slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1); + newRows.push(tableRow(rows[y].element(), slice)); + } + return newRows; + }; + var subTable = function (table, startPos, endPos) { + var sx = startPos.x(), sy = startPos.y(); + var ex = endPos.x(), ey = endPos.y(); + var newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy); + return tableModel(table.element(), getWidth(newRows), newRows); + }; + var createDomTable = function (table, rows) { + var tableElement = shallow(table.element()); + var tableBody = Element.fromTag('tbody'); + append$1(tableBody, rows); + append(tableElement, tableBody); + return tableElement; + }; + var modelRowsToDomRows = function (table) { + return map(table.rows(), function (row) { + var cells = map(row.cells(), function (cell) { + var td = deep(cell); + remove$1(td, 'colspan'); + remove$1(td, 'rowspan'); + return td; + }); + var tr = shallow(row.element()); + append$1(tr, cells); + return tr; + }); + }; + var fromDom$1 = function (tableElm) { + var table = tableModel(shallow(tableElm), 0, []); + each(descendants$1(tableElm, 'tr'), function (tr, y) { + each(descendants$1(tr, 'td,th'), function (td, x) { + fillout(table, skipCellsX(table, x, y), y, tr, td); + }); + }); + return tableModel(table.element(), getWidth(table.rows()), table.rows()); + }; + var toDom = function (table) { + return createDomTable(table, modelRowsToDomRows(table)); + }; + var subsection = function (table, startElement, endElement) { + return findElementPos(table, startElement).bind(function (startPos) { + return findElementPos(table, endElement).map(function (endPos) { + return subTable(table, startPos, endPos); + }); + }); + }; + var SimpleTableModel = { + fromDom: fromDom$1, + toDom: toDom, + subsection: subsection + }; + + var getRanges = function (selection) { + var ranges = []; + if (selection) { + for (var i = 0; i < selection.rangeCount; i++) { + ranges.push(selection.getRangeAt(i)); + } + } + return ranges; + }; + var getSelectedNodes = function (ranges) { + return bind(ranges, function (range) { + var node = getSelectedNode(range); + return node ? [Element.fromDom(node)] : []; + }); + }; + var hasMultipleRanges = function (selection) { + return getRanges(selection).length > 1; + }; + var MultiRange = { + getRanges: getRanges, + getSelectedNodes: getSelectedNodes, + hasMultipleRanges: hasMultipleRanges + }; + + var getCellsFromRanges = function (ranges) { + return filter(MultiRange.getSelectedNodes(ranges), isTableCell); + }; + var getCellsFromElement = function (elm) { + return descendants$1(elm, 'td[data-mce-selected],th[data-mce-selected]'); + }; + var getCellsFromElementOrRanges = function (ranges, element) { + var selectedCells = getCellsFromElement(element); + var rangeCells = getCellsFromRanges(ranges); + return selectedCells.length > 0 ? selectedCells : rangeCells; + }; + var getCellsFromEditor = function (editor) { + return getCellsFromElementOrRanges(MultiRange.getRanges(editor.selection.getSel()), Element.fromDom(editor.getBody())); + }; + var TableCellSelection = { + getCellsFromRanges: getCellsFromRanges, + getCellsFromElement: getCellsFromElement, + getCellsFromElementOrRanges: getCellsFromElementOrRanges, + getCellsFromEditor: getCellsFromEditor + }; + + var findParentListContainer = function (parents) { + return find(parents, function (elm) { + return name(elm) === 'ul' || name(elm) === 'ol'; + }); + }; + var getFullySelectedListWrappers = function (parents, rng) { + return find(parents, function (elm) { + return name(elm) === 'li' && hasAllContentsSelected(elm, rng); + }).fold(constant([]), function (li) { + return findParentListContainer(parents).map(function (listCont) { + return [ + Element.fromTag('li'), + Element.fromTag(name(listCont)) + ]; + }).getOr([]); + }); + }; + var wrap$2 = function (innerElm, elms) { + var wrapped = foldl(elms, function (acc, elm) { + append(elm, acc); + return elm; + }, innerElm); + return elms.length > 0 ? fromElements([wrapped]) : wrapped; + }; + var directListWrappers = function (commonAnchorContainer) { + if (isListItem(commonAnchorContainer)) { + return parent(commonAnchorContainer).filter(isList).fold(constant([]), function (listElm) { + return [ + commonAnchorContainer, + listElm + ]; + }); + } else { + return isList(commonAnchorContainer) ? [commonAnchorContainer] : []; + } + }; + var getWrapElements = function (rootNode, rng) { + var commonAnchorContainer = Element.fromDom(rng.commonAncestorContainer); + var parents = Parents.parentsAndSelf(commonAnchorContainer, rootNode); + var wrapElements = filter(parents, function (elm) { + return isInline(elm) || isHeading(elm); + }); + var listWrappers = getFullySelectedListWrappers(parents, rng); + var allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer)); + return map(allWrappers, shallow); + }; + var emptyFragment = function () { + return fromElements([]); + }; + var getFragmentFromRange = function (rootNode, rng) { + return wrap$2(Element.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng)); + }; + var getParentTable = function (rootElm, cell) { + return ancestor$1(cell, 'table', curry(eq, rootElm)); + }; + var getTableFragment = function (rootNode, selectedTableCells) { + return getParentTable(rootNode, selectedTableCells[0]).bind(function (tableElm) { + var firstCell = selectedTableCells[0]; + var lastCell = selectedTableCells[selectedTableCells.length - 1]; + var fullTableModel = SimpleTableModel.fromDom(tableElm); + return SimpleTableModel.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) { + return fromElements([SimpleTableModel.toDom(sectionedTableModel)]); + }); + }).getOrThunk(emptyFragment); + }; + var getSelectionFragment = function (rootNode, ranges) { + return ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]); + }; + var read$1 = function (rootNode, ranges) { + var selectedCells = TableCellSelection.getCellsFromElementOrRanges(ranges, rootNode); + return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges); + }; + var FragmentReader = { read: read$1 }; + + var getTextContent = function (editor) { + return Option.from(editor.selection.getRng()).map(function (rng) { + var bin = editor.dom.add(editor.getBody(), 'div', { + 'data-mce-bogus': 'all', + 'style': 'overflow: hidden; opacity: 0;' + }, rng.cloneContents()); + var text = Zwsp.trim(bin.innerText); + editor.dom.remove(bin); + return text; + }).getOr(''); + }; + var getHtmlContent = function (editor, args) { + var rng = editor.selection.getRng(), tmpElm = editor.dom.create('body'); + var sel = editor.selection.getSel(); + var fragment; + var ranges = EventProcessRanges.processRanges(editor, MultiRange.getRanges(sel)); + fragment = args.contextual ? FragmentReader.read(Element.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents(); + if (fragment) { + tmpElm.appendChild(fragment); + } + return editor.selection.serializer.serialize(tmpElm, args); + }; + var getContent$1 = function (editor, args) { + if (args === void 0) { + args = {}; + } + args.get = true; + args.format = args.format || 'html'; + args.selection = true; + args = editor.fire('BeforeGetContent', args); + if (args.isDefaultPrevented()) { + editor.fire('GetContent', args); + return args.content; + } + if (args.format === 'text') { + return getTextContent(editor); + } else { + args.getInner = true; + var content = getHtmlContent(editor, args); + if (args.format === 'tree') { + return content; + } else { + args.content = editor.selection.isCollapsed() ? '' : content; + editor.fire('GetContent', args); + return args.content; + } + } + }; + var GetSelectionContent = { getContent: getContent$1 }; + + var isEq$1 = function (rng1, rng2) { + return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset); + }; + var RangeCompare = { isEq: isEq$1 }; + + var findParent$1 = function (node, rootNode, predicate) { + while (node && node !== rootNode) { + if (predicate(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var hasParent = function (node, rootNode, predicate) { + return findParent$1(node, rootNode, predicate) !== null; + }; + var hasParentWithName = function (node, rootNode, name) { + return hasParent(node, rootNode, function (node) { + return node.nodeName === name; + }); + }; + var isTable$3 = function (node) { + return node && node.nodeName === 'TABLE'; + }; + var isTableCell$2 = function (node) { + return node && /^(TD|TH|CAPTION)$/.test(node.nodeName); + }; + var isCeFalseCaretContainer = function (node, rootNode) { + return isCaretContainer(node) && hasParent(node, rootNode, isCaretNode) === false; + }; + var hasBrBeforeAfter = function (dom, node, left) { + var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || dom.getRoot()); + while (node = walker[left ? 'prev' : 'next']()) { + if (NodeType.isBr(node)) { + return true; + } + } + }; + var isPrevNode = function (node, name) { + return node.previousSibling && node.previousSibling.nodeName === name; + }; + var hasContentEditableFalseParent = function (body, node) { + while (node && node !== body) { + if (NodeType.isContentEditableFalse(node)) { + return true; + } + node = node.parentNode; + } + return false; + }; + var findTextNodeRelative = function (dom, isAfterNode, collapsed, left, startNode) { + var lastInlineElement; + var body = dom.getRoot(); + var node; + var nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + var parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body; + if (left && NodeType.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) { + return Option.some(CaretPosition(startNode.parentNode, dom.nodeIndex(startNode))); + } + var walker = new TreeWalker(startNode, parentBlockContainer); + while (node = walker[left ? 'prev' : 'next']()) { + if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) { + return Option.none(); + } + if (NodeType.isText(node) && node.nodeValue.length > 0) { + if (hasParentWithName(node, body, 'A') === false) { + return Option.some(CaretPosition(node, left ? node.nodeValue.length : 0)); + } + return Option.none(); + } + if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + return Option.none(); + } + lastInlineElement = node; + } + if (collapsed && lastInlineElement) { + return Option.some(CaretPosition(lastInlineElement, 0)); + } + return Option.none(); + }; + var normalizeEndPoint = function (dom, collapsed, start, rng) { + var container, offset; + var body = dom.getRoot(); + var node, nonEmptyElementsMap; + var directionLeft, isAfterNode, normalized = false; + container = rng[(start ? 'start' : 'end') + 'Container']; + offset = rng[(start ? 'start' : 'end') + 'Offset']; + isAfterNode = NodeType.isElement(container) && offset === container.childNodes.length; + nonEmptyElementsMap = dom.schema.getNonEmptyElements(); + directionLeft = start; + if (isCaretContainer(container)) { + return Option.none(); + } + if (NodeType.isElement(container) && offset > container.childNodes.length - 1) { + directionLeft = false; + } + if (NodeType.isDocument(container)) { + container = body; + offset = 0; + } + if (container === body) { + if (directionLeft) { + node = container.childNodes[offset > 0 ? offset - 1 : 0]; + if (node) { + if (isCaretContainer(node)) { + return Option.none(); + } + if (nonEmptyElementsMap[node.nodeName] || isTable$3(node)) { + return Option.none(); + } + } + } + if (container.hasChildNodes()) { + offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1); + container = container.childNodes[offset]; + offset = NodeType.isText(container) && isAfterNode ? container.data.length : 0; + if (!collapsed && container === body.lastChild && isTable$3(container)) { + return Option.none(); + } + if (hasContentEditableFalseParent(body, container) || isCaretContainer(container)) { + return Option.none(); + } + if (container.hasChildNodes() && isTable$3(container) === false) { + node = container; + var walker = new TreeWalker(container, body); + do { + if (NodeType.isContentEditableFalse(node) || isCaretContainer(node)) { + normalized = false; + break; + } + if (NodeType.isText(node) && node.nodeValue.length > 0) { + offset = directionLeft ? 0 : node.nodeValue.length; + container = node; + normalized = true; + break; + } + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCell$2(node)) { + offset = dom.nodeIndex(node); + container = node.parentNode; + if (!directionLeft) { + offset++; + } + normalized = true; + break; + } + } while (node = directionLeft ? walker.next() : walker.prev()); + } + } + } + if (collapsed) { + if (NodeType.isText(container) && offset === 0) { + findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(function (pos) { + container = pos.container(); + offset = pos.offset(); + normalized = true; + }); + } + if (NodeType.isElement(container)) { + node = container.childNodes[offset]; + if (!node) { + node = container.childNodes[offset - 1]; + } + if (node && NodeType.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) { + findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(function (pos) { + container = pos.container(); + offset = pos.offset(); + normalized = true; + }); + } + } + } + if (directionLeft && !collapsed && NodeType.isText(container) && offset === container.nodeValue.length) { + findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(function (pos) { + container = pos.container(); + offset = pos.offset(); + normalized = true; + }); + } + return normalized ? Option.some(CaretPosition(container, offset)) : Option.none(); + }; + var normalize = function (dom, rng) { + var collapsed = rng.collapsed, normRng = rng.cloneRange(); + var startPos = CaretPosition.fromRangeStart(rng); + normalizeEndPoint(dom, collapsed, true, normRng).each(function (pos) { + if (!collapsed || !CaretPosition.isAbove(startPos, pos)) { + normRng.setStart(pos.container(), pos.offset()); + } + }); + if (!collapsed) { + normalizeEndPoint(dom, collapsed, false, normRng).each(function (pos) { + normRng.setEnd(pos.container(), pos.offset()); + }); + } + if (collapsed) { + normRng.collapse(true); + } + return RangeCompare.isEq(rng, normRng) ? Option.none() : Option.some(normRng); + }; + var NormalizeRange = { normalize: normalize }; + + var prependData = function (target, data) { + target.insertData(0, data); + }; + var removeEmpty = function (text) { + if (text.dom().length === 0) { + remove(text); + return Option.none(); + } + return Option.some(text); + }; + var rngSetContent = function (rng, fragment) { + var firstChild = Option.from(fragment.firstChild).map(Element.fromDom); + var lastChild = Option.from(fragment.lastChild).map(Element.fromDom); + rng.deleteContents(); + rng.insertNode(fragment); + var prevText = firstChild.bind(prevSibling).filter(isText).bind(removeEmpty); + var nextText = lastChild.bind(nextSibling).filter(isText).bind(removeEmpty); + lift2(prevText, firstChild.filter(isText), function (prev, start) { + prependData(start.dom(), prev.dom().data); + remove(prev); + }); + lift2(nextText, lastChild.filter(isText), function (next, end) { + var oldLength = end.dom().length; + end.dom().appendData(next.dom().data); + rng.setEnd(end.dom(), oldLength); + remove(next); + }); + rng.collapse(false); + }; + var setupArgs = function (args, content) { + args = args || { format: 'html' }; + args.set = true; + args.selection = true; + args.content = content; + return args; + }; + var setContent$1 = function (editor, content, args) { + args = setupArgs(args, content); + if (!args.no_events) { + args = editor.fire('BeforeSetContent', args); + if (args.isDefaultPrevented()) { + editor.fire('SetContent', args); + return; + } + } + var rng = editor.selection.getRng(); + rngSetContent(rng, rng.createContextualFragment(args.content)); + editor.selection.setRng(rng); + ScrollIntoView.scrollRangeIntoView(editor, rng); + if (!args.no_events) { + editor.fire('SetContent', args); + } + }; + var SetSelectionContent = { setContent: setContent$1 }; + + var getEndpointElement = function (root, rng, start, real, resolve) { + var container = start ? rng.startContainer : rng.endContainer; + var offset = start ? rng.startOffset : rng.endOffset; + return Option.from(container).map(Element.fromDom).map(function (elm) { + return !real || !rng.collapsed ? child(elm, resolve(elm, offset)).getOr(elm) : elm; + }).bind(function (elm) { + return isElement(elm) ? Option.some(elm) : parent(elm); + }).map(function (elm) { + return elm.dom(); + }).getOr(root); + }; + var getStart$2 = function (root, rng, real) { + return getEndpointElement(root, rng, true, real, function (elm, offset) { + return Math.min(childNodesCount(elm), offset); + }); + }; + var getEnd = function (root, rng, real) { + return getEndpointElement(root, rng, false, real, function (elm, offset) { + return offset > 0 ? offset - 1 : offset; + }); + }; + var skipEmptyTextNodes = function (node, forwards) { + var orig = node; + while (node && NodeType.isText(node) && node.length === 0) { + node = forwards ? node.nextSibling : node.previousSibling; + } + return node || orig; + }; + var getNode$1 = function (root, rng) { + var elm, startContainer, endContainer, startOffset, endOffset; + if (!rng) { + return root; + } + startContainer = rng.startContainer; + endContainer = rng.endContainer; + startOffset = rng.startOffset; + endOffset = rng.endOffset; + elm = rng.commonAncestorContainer; + if (!rng.collapsed) { + if (startContainer === endContainer) { + if (endOffset - startOffset < 2) { + if (startContainer.hasChildNodes()) { + elm = startContainer.childNodes[startOffset]; + } + } + } + if (startContainer.nodeType === 3 && endContainer.nodeType === 3) { + if (startContainer.length === startOffset) { + startContainer = skipEmptyTextNodes(startContainer.nextSibling, true); + } else { + startContainer = startContainer.parentNode; + } + if (endOffset === 0) { + endContainer = skipEmptyTextNodes(endContainer.previousSibling, false); + } else { + endContainer = endContainer.parentNode; + } + if (startContainer && startContainer === endContainer) { + return startContainer; + } + } + } + if (elm && elm.nodeType === 3) { + return elm.parentNode; + } + return elm; + }; + var getSelectedBlocks = function (dom, rng, startElm, endElm) { + var node, root; + var selectedBlocks = []; + root = dom.getRoot(); + startElm = dom.getParent(startElm || getStart$2(root, rng, rng.collapsed), dom.isBlock); + endElm = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock); + if (startElm && startElm !== root) { + selectedBlocks.push(startElm); + } + if (startElm && endElm && startElm !== endElm) { + node = startElm; + var walker = new TreeWalker(startElm, root); + while ((node = walker.next()) && node !== endElm) { + if (dom.isBlock(node)) { + selectedBlocks.push(node); + } + } + } + if (endElm && startElm !== endElm && endElm !== root) { + selectedBlocks.push(endElm); + } + return selectedBlocks; + }; + var select$1 = function (dom, node, content) { + return Option.from(node).map(function (node) { + var idx = dom.nodeIndex(node); + var rng = dom.createRng(); + rng.setStart(node.parentNode, idx); + rng.setEnd(node.parentNode, idx + 1); + if (content) { + moveEndPoint$1(dom, rng, node, true); + moveEndPoint$1(dom, rng, node, false); + } + return rng; + }); + }; + + var deleteFromCallbackMap = function (callbackMap, selector, callback) { + if (callbackMap && callbackMap.hasOwnProperty(selector)) { + var newCallbacks = filter(callbackMap[selector], function (cb) { + return cb !== callback; + }); + if (newCallbacks.length === 0) { + delete callbackMap[selector]; + } else { + callbackMap[selector] = newCallbacks; + } + } + }; + function SelectorChanged (dom, editor) { + var selectorChangedData; + var currentSelectors; + return { + selectorChangedWithUnbind: function (selector, callback) { + if (!selectorChangedData) { + selectorChangedData = {}; + currentSelectors = {}; + editor.on('NodeChange', function (e) { + var node = e.element, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {}; + Tools.each(selectorChangedData, function (callbacks, selector) { + Tools.each(parents, function (node) { + if (dom.is(node, selector)) { + if (!currentSelectors[selector]) { + Tools.each(callbacks, function (callback) { + callback(true, { + node: node, + selector: selector, + parents: parents + }); + }); + currentSelectors[selector] = callbacks; + } + matchedSelectors[selector] = callbacks; + return false; + } + }); + }); + Tools.each(currentSelectors, function (callbacks, selector) { + if (!matchedSelectors[selector]) { + delete currentSelectors[selector]; + Tools.each(callbacks, function (callback) { + callback(false, { + node: node, + selector: selector, + parents: parents + }); + }); + } + }); + }); + } + if (!selectorChangedData[selector]) { + selectorChangedData[selector] = []; + } + selectorChangedData[selector].push(callback); + return { + unbind: function () { + deleteFromCallbackMap(selectorChangedData, selector, callback); + deleteFromCallbackMap(currentSelectors, selector, callback); + } + }; + } + }; + } + + var isNativeIeSelection = function (rng) { + return !!rng.select; + }; + var isAttachedToDom = function (node) { + return !!(node && node.ownerDocument) && contains$2(Element.fromDom(node.ownerDocument), Element.fromDom(node)); + }; + var isValidRange = function (rng) { + if (!rng) { + return false; + } else if (isNativeIeSelection(rng)) { + return true; + } else { + return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer); + } + }; + var Selection$1 = function (dom, win, serializer, editor) { + var bookmarkManager; + var controlSelection; + var selectedRange; + var explicitRange; + var selectorChangedWithUnbind = SelectorChanged(dom, editor).selectorChangedWithUnbind; + var setCursorLocation = function (node, offset) { + var rng = dom.createRng(); + if (!node) { + moveEndPoint$1(dom, rng, editor.getBody(), true); + setRng(rng); + } else { + rng.setStart(node, offset); + rng.setEnd(node, offset); + setRng(rng); + collapse(false); + } + }; + var getContent = function (args) { + return GetSelectionContent.getContent(editor, args); + }; + var setContent = function (content, args) { + return SetSelectionContent.setContent(editor, content, args); + }; + var getStart = function (real) { + return getStart$2(editor.getBody(), getRng(), real); + }; + var getEnd$1 = function (real) { + return getEnd(editor.getBody(), getRng(), real); + }; + var getBookmark = function (type, normalized) { + return bookmarkManager.getBookmark(type, normalized); + }; + var moveToBookmark = function (bookmark) { + return bookmarkManager.moveToBookmark(bookmark); + }; + var select = function (node, content) { + select$1(dom, node, content).each(setRng); + return node; + }; + var isCollapsed = function () { + var rng = getRng(), sel = getSel(); + if (!rng || rng.item) { + return false; + } + if (rng.compareEndPoints) { + return rng.compareEndPoints('StartToEnd', rng) === 0; + } + return !sel || rng.collapsed; + }; + var collapse = function (toStart) { + var rng = getRng(); + rng.collapse(!!toStart); + setRng(rng); + }; + var getSel = function () { + return win.getSelection ? win.getSelection() : win.document.selection; + }; + var getRng = function () { + var selection, rng, elm, doc; + var tryCompareBoundaryPoints = function (how, sourceRange, destinationRange) { + try { + return sourceRange.compareBoundaryPoints(how, destinationRange); + } catch (ex) { + return -1; + } + }; + if (!win) { + return null; + } + doc = win.document; + if (typeof doc === 'undefined' || doc === null) { + return null; + } + if (editor.bookmark !== undefined && EditorFocus.hasFocus(editor) === false) { + var bookmark = SelectionBookmark.getRng(editor); + if (bookmark.isSome()) { + return bookmark.map(function (r) { + return EventProcessRanges.processRanges(editor, [r])[0]; + }).getOr(doc.createRange()); + } + } + try { + if ((selection = getSel()) && !NodeType.isRestrictedNode(selection.anchorNode)) { + if (selection.rangeCount > 0) { + rng = selection.getRangeAt(0); + } else { + rng = selection.createRange ? selection.createRange() : doc.createRange(); + } + } + } catch (ex) { + } + rng = EventProcessRanges.processRanges(editor, [rng])[0]; + if (!rng) { + rng = doc.createRange ? doc.createRange() : doc.body.createTextRange(); + } + if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) { + elm = dom.getRoot(); + rng.setStart(elm, 0); + rng.setEnd(elm, 0); + } + if (selectedRange && explicitRange) { + if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) { + rng = explicitRange; + } else { + selectedRange = null; + explicitRange = null; + } + } + return rng; + }; + var setRng = function (rng, forward) { + var sel, node, evt; + if (!isValidRange(rng)) { + return; + } + var ieRange = isNativeIeSelection(rng) ? rng : null; + if (ieRange) { + explicitRange = null; + try { + ieRange.select(); + } catch (ex) { + } + return; + } + sel = getSel(); + evt = editor.fire('SetSelectionRange', { + range: rng, + forward: forward + }); + rng = evt.range; + if (sel) { + explicitRange = rng; + try { + sel.removeAllRanges(); + sel.addRange(rng); + } catch (ex) { + } + if (forward === false && sel.extend) { + sel.collapse(rng.endContainer, rng.endOffset); + sel.extend(rng.startContainer, rng.startOffset); + } + selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null; + } + if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !Env.ie) { + if (rng.endOffset - rng.startOffset < 2) { + if (rng.startContainer.hasChildNodes()) { + node = rng.startContainer.childNodes[rng.startOffset]; + if (node && node.tagName === 'IMG') { + sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset); + if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) { + sel.setBaseAndExtent(node, 0, node, 1); + } + } + } + } + } + editor.fire('AfterSetSelectionRange', { + range: rng, + forward: forward + }); + }; + var setNode = function (elm) { + setContent(dom.getOuterHTML(elm)); + return elm; + }; + var getNode = function () { + return getNode$1(editor.getBody(), getRng()); + }; + var getSelectedBlocks$1 = function (startElm, endElm) { + return getSelectedBlocks(dom, getRng(), startElm, endElm); + }; + var isForward = function () { + var sel = getSel(); + var anchorRange, focusRange; + if (!sel || !sel.anchorNode || !sel.focusNode) { + return true; + } + anchorRange = dom.createRng(); + anchorRange.setStart(sel.anchorNode, sel.anchorOffset); + anchorRange.collapse(true); + focusRange = dom.createRng(); + focusRange.setStart(sel.focusNode, sel.focusOffset); + focusRange.collapse(true); + return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0; + }; + var normalize = function () { + var rng = getRng(); + var sel = getSel(); + if (!MultiRange.hasMultipleRanges(sel) && hasAnyRanges(editor)) { + var normRng = NormalizeRange.normalize(dom, rng); + normRng.each(function (normRng) { + setRng(normRng, isForward()); + }); + return normRng.getOr(rng); + } + return rng; + }; + var selectorChanged = function (selector, callback) { + selectorChangedWithUnbind(selector, callback); + return exports; + }; + var getScrollContainer = function () { + var scrollContainer; + var node = dom.getRoot(); + while (node && node.nodeName !== 'BODY') { + if (node.scrollHeight > node.clientHeight) { + scrollContainer = node; + break; + } + node = node.parentNode; + } + return scrollContainer; + }; + var scrollIntoView = function (elm, alignToTop) { + return ScrollIntoView.scrollElementIntoView(editor, elm, alignToTop); + }; + var placeCaretAt = function (clientX, clientY) { + return setRng(CaretRangeFromPoint.fromPoint(clientX, clientY, editor.getDoc())); + }; + var getBoundingClientRect = function () { + var rng = getRng(); + return rng.collapsed ? CaretPosition$1.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect(); + }; + var destroy = function () { + win = selectedRange = explicitRange = null; + controlSelection.destroy(); + }; + var exports = { + bookmarkManager: null, + controlSelection: null, + dom: dom, + win: win, + serializer: serializer, + editor: editor, + collapse: collapse, + setCursorLocation: setCursorLocation, + getContent: getContent, + setContent: setContent, + getBookmark: getBookmark, + moveToBookmark: moveToBookmark, + select: select, + isCollapsed: isCollapsed, + isForward: isForward, + setNode: setNode, + getNode: getNode, + getSel: getSel, + setRng: setRng, + getRng: getRng, + getStart: getStart, + getEnd: getEnd$1, + getSelectedBlocks: getSelectedBlocks$1, + normalize: normalize, + selectorChanged: selectorChanged, + selectorChangedWithUnbind: selectorChangedWithUnbind, + getScrollContainer: getScrollContainer, + scrollIntoView: scrollIntoView, + placeCaretAt: placeCaretAt, + getBoundingClientRect: getBoundingClientRect, + destroy: destroy + }; + bookmarkManager = BookmarkManager$1(exports); + controlSelection = ControlSelection(exports, editor); + exports.bookmarkManager = bookmarkManager; + exports.controlSelection = controlSelection; + return exports; + }; + + var removeAttrs = function (node, names) { + each(names, function (name) { + node.attr(name, null); + }); + }; + var addFontToSpansFilter = function (domParser, styles, fontSizes) { + domParser.addNodeFilter('font', function (nodes) { + each(nodes, function (node) { + var props = styles.parse(node.attr('style')); + var color = node.attr('color'); + var face = node.attr('face'); + var size = node.attr('size'); + if (color) { + props.color = color; + } + if (face) { + props['font-family'] = face; + } + if (size) { + props['font-size'] = fontSizes[parseInt(node.attr('size'), 10) - 1]; + } + node.name = 'span'; + node.attr('style', styles.serialize(props)); + removeAttrs(node, [ + 'color', + 'face', + 'size' + ]); + }); + }); + }; + var addStrikeToSpanFilter = function (domParser, styles) { + domParser.addNodeFilter('strike', function (nodes) { + each(nodes, function (node) { + var props = styles.parse(node.attr('style')); + props['text-decoration'] = 'line-through'; + node.name = 'span'; + node.attr('style', styles.serialize(props)); + }); + }); + }; + var addFilters = function (domParser, settings) { + var styles = Styles(); + if (settings.convert_fonts_to_spans) { + addFontToSpansFilter(domParser, styles, Tools.explode(settings.font_size_legacy_values)); + } + addStrikeToSpanFilter(domParser, styles); + }; + var register$1 = function (domParser, settings) { + if (settings.inline_styles) { + addFilters(domParser, settings); + } + }; + var LegacyFilter = { register: register$1 }; + + var paddEmptyNode = function (settings, args, blockElements, node) { + var brPreferred = settings.padd_empty_with_br || args.insert; + if (brPreferred && blockElements[node.name]) { + node.empty().append(new Node$1('br', 1)).shortEnded = true; + } else { + node.empty().append(new Node$1('#text', 3)).value = nbsp; + } + }; + var isPaddedWithNbsp = function (node) { + return hasOnlyChild(node, '#text') && node.firstChild.value === nbsp; + }; + var hasOnlyChild = function (node, name) { + return node && node.firstChild && node.firstChild === node.lastChild && node.firstChild.name === name; + }; + var isPadded = function (schema, node) { + var rule = schema.getElementRule(node.name); + return rule && rule.paddEmpty; + }; + var isEmpty$1 = function (schema, nonEmptyElements, whitespaceElements, node) { + return node.isEmpty(nonEmptyElements, whitespaceElements, function (node) { + return isPadded(schema, node); + }); + }; + var isLineBreakNode = function (node, blockElements) { + return node && (blockElements[node.name] || node.name === 'br'); + }; + + var register$2 = function (parser, settings) { + var schema = parser.schema; + if (settings.remove_trailing_brs) { + parser.addNodeFilter('br', function (nodes, _, args) { + var i; + var l = nodes.length; + var node; + var blockElements = Tools.extend({}, schema.getBlockElements()); + var nonEmptyElements = schema.getNonEmptyElements(); + var parent, lastParent, prev, prevName; + var whiteSpaceElements = schema.getNonEmptyElements(); + var elementRule, textNode; + blockElements.body = 1; + for (i = 0; i < l; i++) { + node = nodes[i]; + parent = node.parent; + if (blockElements[node.parent.name] && node === parent.lastChild) { + prev = node.prev; + while (prev) { + prevName = prev.name; + if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') { + if (prevName !== 'br') { + break; + } + if (prevName === 'br') { + node = null; + break; + } + } + prev = prev.prev; + } + if (node) { + node.remove(); + if (isEmpty$1(schema, nonEmptyElements, whiteSpaceElements, parent)) { + elementRule = schema.getElementRule(parent.name); + if (elementRule) { + if (elementRule.removeEmpty) { + parent.remove(); + } else if (elementRule.paddEmpty) { + paddEmptyNode(settings, args, blockElements, parent); + } + } + } + } + } else { + lastParent = node; + while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) { + lastParent = parent; + if (blockElements[parent.name]) { + break; + } + parent = parent.parent; + } + if (lastParent === parent && settings.padd_empty_with_br !== true) { + textNode = new Node$1('#text', 3); + textNode.value = nbsp; + node.replace(textNode); + } + } + } + }); + } + parser.addAttributeFilter('href', function (nodes) { + var i = nodes.length, node; + var appendRel = function (rel) { + var parts = rel.split(' ').filter(function (p) { + return p.length > 0; + }); + return parts.concat(['noopener']).sort().join(' '); + }; + var addNoOpener = function (rel) { + var newRel = rel ? Tools.trim(rel) : ''; + if (!/\b(noopener)\b/g.test(newRel)) { + return appendRel(newRel); + } else { + return newRel; + } + }; + if (!settings.allow_unsafe_link_target) { + while (i--) { + node = nodes[i]; + if (node.name === 'a' && node.attr('target') === '_blank') { + node.attr('rel', addNoOpener(node.attr('rel'))); + } + } + } + }); + if (!settings.allow_html_in_named_anchor) { + parser.addAttributeFilter('id,name', function (nodes) { + var i = nodes.length, sibling, prevSibling, parent, node; + while (i--) { + node = nodes[i]; + if (node.name === 'a' && node.firstChild && !node.attr('href')) { + parent = node.parent; + sibling = node.lastChild; + do { + prevSibling = sibling.prev; + parent.insert(sibling, node); + sibling = prevSibling; + } while (sibling); + } + } + }); + } + if (settings.fix_list_elements) { + parser.addNodeFilter('ul,ol', function (nodes) { + var i = nodes.length, node, parentNode; + while (i--) { + node = nodes[i]; + parentNode = node.parent; + if (parentNode.name === 'ul' || parentNode.name === 'ol') { + if (node.prev && node.prev.name === 'li') { + node.prev.append(node); + } else { + var li = new Node$1('li', 1); + li.attr('style', 'list-style-type: none'); + node.wrap(li); + } + } + } + }); + } + if (settings.validate && schema.getValidClasses()) { + parser.addAttributeFilter('class', function (nodes) { + var i = nodes.length, node, classList, ci, className, classValue; + var validClasses = schema.getValidClasses(); + var validClassesMap, valid; + while (i--) { + node = nodes[i]; + classList = node.attr('class').split(' '); + classValue = ''; + for (ci = 0; ci < classList.length; ci++) { + className = classList[ci]; + valid = false; + validClassesMap = validClasses['*']; + if (validClassesMap && validClassesMap[className]) { + valid = true; + } + validClassesMap = validClasses[node.name]; + if (!valid && validClassesMap && validClassesMap[className]) { + valid = true; + } + if (valid) { + if (classValue) { + classValue += ' '; + } + classValue += className; + } + } + if (!classValue.length) { + classValue = null; + } + node.attr('class', classValue); + } + }); + } + }; + + var makeMap$4 = Tools.makeMap, each$8 = Tools.each, explode$2 = Tools.explode, extend$2 = Tools.extend; + var DomParser = function (settings, schema) { + if (schema === void 0) { + schema = Schema(); + } + var nodeFilters = {}; + var attributeFilters = []; + var matchedNodes = {}; + var matchedAttributes = {}; + settings = settings || {}; + settings.validate = 'validate' in settings ? settings.validate : true; + settings.root_name = settings.root_name || 'body'; + var fixInvalidChildren = function (nodes) { + var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i; + var nonEmptyElements, whitespaceElements, nonSplitableElements, textBlockElements, specialElements, sibling, nextNode; + nonSplitableElements = makeMap$4('tr,td,th,tbody,thead,tfoot,table'); + nonEmptyElements = schema.getNonEmptyElements(); + whitespaceElements = schema.getWhiteSpaceElements(); + textBlockElements = schema.getTextBlockElements(); + specialElements = schema.getSpecialElements(); + for (ni = 0; ni < nodes.length; ni++) { + node = nodes[ni]; + if (!node.parent || node.fixed) { + continue; + } + if (textBlockElements[node.name] && node.parent.name === 'li') { + sibling = node.next; + while (sibling) { + if (textBlockElements[sibling.name]) { + sibling.name = 'li'; + sibling.fixed = true; + node.parent.insert(sibling, node.parent); + } else { + break; + } + sibling = sibling.next; + } + node.unwrap(node); + continue; + } + parents = [node]; + for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplitableElements[parent.name]; parent = parent.parent) { + parents.push(parent); + } + if (parent && parents.length > 1) { + parents.reverse(); + newParent = currentNode = filterNode(parents[0].clone()); + for (i = 0; i < parents.length - 1; i++) { + if (schema.isValidChild(currentNode.name, parents[i].name)) { + tempNode = filterNode(parents[i].clone()); + currentNode.append(tempNode); + } else { + tempNode = currentNode; + } + for (childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) { + nextNode = childNode.next; + tempNode.append(childNode); + childNode = nextNode; + } + currentNode = tempNode; + } + if (!isEmpty$1(schema, nonEmptyElements, whitespaceElements, newParent)) { + parent.insert(newParent, parents[0], true); + parent.insert(node, newParent); + } else { + parent.insert(node, parents[0], true); + } + parent = parents[0]; + if (isEmpty$1(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) { + parent.empty().remove(); + } + } else if (node.parent) { + if (node.name === 'li') { + sibling = node.prev; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.append(node); + continue; + } + sibling = node.next; + if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) { + sibling.insert(node, sibling.firstChild, true); + continue; + } + node.wrap(filterNode(new Node$1('ul', 1))); + continue; + } + if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) { + node.wrap(filterNode(new Node$1('div', 1))); + } else { + if (specialElements[node.name]) { + node.empty().remove(); + } else { + node.unwrap(); + } + } + } + } + }; + var filterNode = function (node) { + var i, name, list; + name = node.name; + if (name in nodeFilters) { + list = matchedNodes[name]; + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + i = attributeFilters.length; + while (i--) { + name = attributeFilters[i].name; + if (name in node.attributes.map) { + list = matchedAttributes[name]; + if (list) { + list.push(node); + } else { + matchedAttributes[name] = [node]; + } + } + } + return node; + }; + var addNodeFilter = function (name, callback) { + each$8(explode$2(name), function (name) { + var list = nodeFilters[name]; + if (!list) { + nodeFilters[name] = list = []; + } + list.push(callback); + }); + }; + var getNodeFilters = function () { + var out = []; + for (var name_1 in nodeFilters) { + if (nodeFilters.hasOwnProperty(name_1)) { + out.push({ + name: name_1, + callbacks: nodeFilters[name_1] + }); + } + } + return out; + }; + var addAttributeFilter = function (name, callback) { + each$8(explode$2(name), function (name) { + var i; + for (i = 0; i < attributeFilters.length; i++) { + if (attributeFilters[i].name === name) { + attributeFilters[i].callbacks.push(callback); + return; + } + } + attributeFilters.push({ + name: name, + callbacks: [callback] + }); + }); + }; + var getAttributeFilters = function () { + return [].concat(attributeFilters); + }; + var parse = function (html, args) { + var parser, nodes, i, l, fi, fl, list, name; + var blockElements; + var invalidChildren = []; + var isInWhiteSpacePreservedElement; + var node; + var getRootBlockName = function (name) { + if (name === false) { + return ''; + } else if (name === true) { + return 'p'; + } else { + return name; + } + }; + args = args || {}; + matchedNodes = {}; + matchedAttributes = {}; + blockElements = extend$2(makeMap$4('script,style,head,html,body,title,meta,param'), schema.getBlockElements()); + var nonEmptyElements = schema.getNonEmptyElements(); + var children = schema.children; + var validate = settings.validate; + var forcedRootBlockName = 'forced_root_block' in args ? args.forced_root_block : settings.forced_root_block; + var rootBlockName = getRootBlockName(forcedRootBlockName); + var whiteSpaceElements = schema.getWhiteSpaceElements(); + var startWhiteSpaceRegExp = /^[ \t\r\n]+/; + var endWhiteSpaceRegExp = /[ \t\r\n]+$/; + var allWhiteSpaceRegExp = /[ \t\r\n]+/g; + var isAllWhiteSpaceRegExp = /^[ \t\r\n]+$/; + isInWhiteSpacePreservedElement = whiteSpaceElements.hasOwnProperty(args.context) || whiteSpaceElements.hasOwnProperty(settings.root_name); + var addRootBlocks = function () { + var node = rootNode.firstChild, next, rootBlockNode; + var trim = function (rootBlockNode) { + if (rootBlockNode) { + node = rootBlockNode.firstChild; + if (node && node.type === 3) { + node.value = node.value.replace(startWhiteSpaceRegExp, ''); + } + node = rootBlockNode.lastChild; + if (node && node.type === 3) { + node.value = node.value.replace(endWhiteSpaceRegExp, ''); + } + } + }; + if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) { + return; + } + while (node) { + next = node.next; + if (node.type === 3 || node.type === 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type')) { + if (!rootBlockNode) { + rootBlockNode = createNode(rootBlockName, 1); + rootBlockNode.attr(settings.forced_root_block_attrs); + rootNode.insert(rootBlockNode, node); + rootBlockNode.append(node); + } else { + rootBlockNode.append(node); + } + } else { + trim(rootBlockNode); + rootBlockNode = null; + } + node = next; + } + trim(rootBlockNode); + }; + var createNode = function (name, type) { + var node = new Node$1(name, type); + var list; + if (name in nodeFilters) { + list = matchedNodes[name]; + if (list) { + list.push(node); + } else { + matchedNodes[name] = [node]; + } + } + return node; + }; + var removeWhitespaceBefore = function (node) { + var textNode, textNodeNext, textVal, sibling; + var blockElements = schema.getBlockElements(); + for (textNode = node.prev; textNode && textNode.type === 3;) { + textVal = textNode.value.replace(endWhiteSpaceRegExp, ''); + if (textVal.length > 0) { + textNode.value = textVal; + return; + } + textNodeNext = textNode.next; + if (textNodeNext) { + if (textNodeNext.type === 3 && textNodeNext.value.length) { + textNode = textNode.prev; + continue; + } + if (!blockElements[textNodeNext.name] && textNodeNext.name !== 'script' && textNodeNext.name !== 'style') { + textNode = textNode.prev; + continue; + } + } + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + } + }; + var cloneAndExcludeBlocks = function (input) { + var name; + var output = {}; + for (name in input) { + if (name !== 'li' && name !== 'p') { + output[name] = input[name]; + } + } + return output; + }; + parser = SaxParser$1({ + validate: validate, + allow_script_urls: settings.allow_script_urls, + allow_conditional_comments: settings.allow_conditional_comments, + preserve_cdata: settings.preserve_cdata, + self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()), + cdata: function (text) { + node.append(createNode('#cdata', 4)).value = text; + }, + text: function (text, raw) { + var textNode; + if (!isInWhiteSpacePreservedElement) { + text = text.replace(allWhiteSpaceRegExp, ' '); + if (isLineBreakNode(node.lastChild, blockElements)) { + text = text.replace(startWhiteSpaceRegExp, ''); + } + } + if (text.length !== 0) { + textNode = createNode('#text', 3); + textNode.raw = !!raw; + node.append(textNode).value = text; + } + }, + comment: function (text) { + node.append(createNode('#comment', 8)).value = text; + }, + pi: function (name, text) { + node.append(createNode(name, 7)).value = text; + removeWhitespaceBefore(node); + }, + doctype: function (text) { + var newNode; + newNode = node.append(createNode('#doctype', 10)); + newNode.value = text; + removeWhitespaceBefore(node); + }, + start: function (name, attrs, empty) { + var newNode, attrFiltersLen, elementRule, attrName, parent; + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + newNode = createNode(elementRule.outputName || name, 1); + newNode.attributes = attrs; + newNode.shortEnded = empty; + node.append(newNode); + parent = children[node.name]; + if (parent && children[newNode.name] && !parent[newNode.name]) { + invalidChildren.push(newNode); + } + attrFiltersLen = attributeFilters.length; + while (attrFiltersLen--) { + attrName = attributeFilters[attrFiltersLen].name; + if (attrName in attrs.map) { + list = matchedAttributes[attrName]; + if (list) { + list.push(newNode); + } else { + matchedAttributes[attrName] = [newNode]; + } + } + } + if (blockElements[name]) { + removeWhitespaceBefore(newNode); + } + if (!empty) { + node = newNode; + } + if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = true; + } + } + }, + end: function (name) { + var textNode, elementRule, text, sibling, tempNode; + elementRule = validate ? schema.getElementRule(name) : {}; + if (elementRule) { + if (blockElements[name]) { + if (!isInWhiteSpacePreservedElement) { + textNode = node.firstChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(startWhiteSpaceRegExp, ''); + if (text.length > 0) { + textNode.value = text; + textNode = textNode.next; + } else { + sibling = textNode.next; + textNode.remove(); + textNode = sibling; + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.next; + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + textNode = sibling; + } + } + } + textNode = node.lastChild; + if (textNode && textNode.type === 3) { + text = textNode.value.replace(endWhiteSpaceRegExp, ''); + if (text.length > 0) { + textNode.value = text; + textNode = textNode.prev; + } else { + sibling = textNode.prev; + textNode.remove(); + textNode = sibling; + while (textNode && textNode.type === 3) { + text = textNode.value; + sibling = textNode.prev; + if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) { + textNode.remove(); + textNode = sibling; + } + textNode = sibling; + } + } + } + } + } + if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) { + isInWhiteSpacePreservedElement = false; + } + if (elementRule.removeEmpty && isEmpty$1(schema, nonEmptyElements, whiteSpaceElements, node)) { + if (!node.attr('name') && !node.attr('id')) { + tempNode = node.parent; + if (blockElements[node.name]) { + node.empty().remove(); + } else { + node.unwrap(); + } + node = tempNode; + return; + } + } + if (elementRule.paddEmpty && (isPaddedWithNbsp(node) || isEmpty$1(schema, nonEmptyElements, whiteSpaceElements, node))) { + paddEmptyNode(settings, args, blockElements, node); + } + node = node.parent; + } + } + }, schema); + var rootNode = node = new Node$1(args.context || settings.root_name, 11); + parser.parse(html, args.format); + if (validate && invalidChildren.length) { + if (!args.context) { + fixInvalidChildren(invalidChildren); + } else { + args.invalid = true; + } + } + if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) { + addRootBlocks(); + } + if (!args.invalid) { + for (name in matchedNodes) { + if (!matchedNodes.hasOwnProperty(name)) { + continue; + } + list = nodeFilters[name]; + nodes = matchedNodes[name]; + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + for (i = 0, l = list.length; i < l; i++) { + list[i](nodes, name, args); + } + } + for (i = 0, l = attributeFilters.length; i < l; i++) { + list = attributeFilters[i]; + if (list.name in matchedAttributes) { + nodes = matchedAttributes[list.name]; + fi = nodes.length; + while (fi--) { + if (!nodes[fi].parent) { + nodes.splice(fi, 1); + } + } + for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) { + list.callbacks[fi](nodes, list.name, args); + } + } + } + } + return rootNode; + }; + var exports = { + schema: schema, + addAttributeFilter: addAttributeFilter, + getAttributeFilters: getAttributeFilters, + addNodeFilter: addNodeFilter, + getNodeFilters: getNodeFilters, + filterNode: filterNode, + parse: parse + }; + register$2(exports, settings); + LegacyFilter.register(exports, settings); + return exports; + }; + + var register$3 = function (htmlParser, settings, dom) { + htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + node.attr('tabindex', node.attr('data-mce-tabindex')); + node.attr(name, null); + } + }); + htmlParser.addAttributeFilter('src,href,style', function (nodes, name) { + var i = nodes.length, node, value; + var internalName = 'data-mce-' + name; + var urlConverter = settings.url_converter; + var urlConverterScope = settings.url_converter_scope; + while (i--) { + node = nodes[i]; + value = node.attr(internalName); + if (value !== undefined) { + node.attr(name, value.length > 0 ? value : null); + node.attr(internalName, null); + } else { + value = node.attr(name); + if (name === 'style') { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + } else if (urlConverter) { + value = urlConverter.call(urlConverterScope, value, name, node.name); + } + node.attr(name, value.length > 0 ? value : null); + } + } + }); + htmlParser.addAttributeFilter('class', function (nodes) { + var i = nodes.length, node, value; + while (i--) { + node = nodes[i]; + value = node.attr('class'); + if (value) { + value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ''); + node.attr('class', value.length > 0 ? value : null); + } + } + }); + htmlParser.addAttributeFilter('data-mce-type', function (nodes, name, args) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) { + var hasChildren = Option.from(node.firstChild).exists(function (firstChild) { + return !Zwsp.isZwsp(firstChild.value); + }); + if (hasChildren) { + node.unwrap(); + } else { + node.remove(); + } + } + } + }); + htmlParser.addNodeFilter('noscript', function (nodes) { + var i = nodes.length, node; + while (i--) { + node = nodes[i].firstChild; + if (node) { + node.value = Entities.decode(node.value); + } + } + }); + htmlParser.addNodeFilter('script,style', function (nodes, name) { + var i = nodes.length, node, value, type; + var trim = function (value) { + return value.replace(/()/g, '\n').replace(/^[\r\n]*|[\r\n]*$/g, '').replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, ''); + }; + while (i--) { + node = nodes[i]; + value = node.firstChild ? node.firstChild.value : ''; + if (name === 'script') { + type = node.attr('type'); + if (type) { + node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\-/, '')); + } + if (settings.element_format === 'xhtml' && value.length > 0) { + node.firstChild.value = '// '; + } + } else { + if (settings.element_format === 'xhtml' && value.length > 0) { + node.firstChild.value = ''; + } + } + } + }); + htmlParser.addNodeFilter('#comment', function (nodes) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + if (settings.preserve_cdata && node.value.indexOf('[CDATA[') === 0) { + node.name = '#cdata'; + node.type = 4; + node.value = dom.decode(node.value.replace(/^\[CDATA\[|\]\]$/g, '')); + } else if (node.value.indexOf('mce:protected ') === 0) { + node.name = '#text'; + node.type = 3; + node.raw = true; + node.value = unescape(node.value).substr(14); + } + } + }); + htmlParser.addNodeFilter('xml:namespace,input', function (nodes, name) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + if (node.type === 7) { + node.remove(); + } else if (node.type === 1) { + if (name === 'input' && !node.attr('type')) { + node.attr('type', 'text'); + } + } + } + }); + htmlParser.addAttributeFilter('data-mce-type', function (nodes) { + each(nodes, function (node) { + if (node.attr('data-mce-type') === 'format-caret') { + if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) { + node.remove(); + } else { + node.unwrap(); + } + } + }); + }); + htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,' + 'data-mce-type,data-mce-resize,data-mce-placeholder', function (nodes, name) { + var i = nodes.length; + while (i--) { + nodes[i].attr(name, null); + } + }); + }; + var trimTrailingBr = function (rootNode) { + var brNode1, brNode2; + var isBr = function (node) { + return node && node.name === 'br'; + }; + brNode1 = rootNode.lastChild; + if (isBr(brNode1)) { + brNode2 = brNode1.prev; + if (isBr(brNode2)) { + brNode1.remove(); + brNode2.remove(); + } + } + }; + var DomSerializerFilters = { + register: register$3, + trimTrailingBr: trimTrailingBr + }; + + var preProcess = function (editor, node, args) { + var impl, doc, oldDoc; + var dom = editor.dom; + node = node.cloneNode(true); + impl = domGlobals.document.implementation; + if (impl.createHTMLDocument) { + doc = impl.createHTMLDocument(''); + Tools.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) { + doc.body.appendChild(doc.importNode(node, true)); + }); + if (node.nodeName !== 'BODY') { + node = doc.body.firstChild; + } else { + node = doc.body; + } + oldDoc = dom.doc; + dom.doc = doc; + } + firePreProcess(editor, __assign(__assign({}, args), { node: node })); + if (oldDoc) { + dom.doc = oldDoc; + } + return node; + }; + var shouldFireEvent = function (editor, args) { + return editor && editor.hasEventListeners('PreProcess') && !args.no_events; + }; + var process = function (editor, node, args) { + return shouldFireEvent(editor, args) ? preProcess(editor, node, args) : node; + }; + var DomSerializerPreProcess = { process: process }; + + var addTempAttr = function (htmlParser, tempAttrs, name) { + if (Tools.inArray(tempAttrs, name) === -1) { + htmlParser.addAttributeFilter(name, function (nodes, name) { + var i = nodes.length; + while (i--) { + nodes[i].attr(name, null); + } + }); + tempAttrs.push(name); + } + }; + var postProcess = function (editor, args, content) { + if (!args.no_events && editor) { + var outArgs = firePostProcess(editor, __assign(__assign({}, args), { content: content })); + return outArgs.content; + } else { + return content; + } + }; + var getHtmlFromNode = function (dom, node, args) { + var html = Zwsp.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node)); + return args.selection || isWsPreserveElement(Element.fromDom(node)) ? html : Tools.trim(html); + }; + var parseHtml = function (htmlParser, html, args) { + var parserArgs = args.selection ? __assign({ forced_root_block: false }, args) : args; + var rootNode = htmlParser.parse(html, parserArgs); + DomSerializerFilters.trimTrailingBr(rootNode); + return rootNode; + }; + var serializeNode = function (settings, schema, node) { + var htmlSerializer = Serializer(settings, schema); + return htmlSerializer.serialize(node); + }; + var toHtml = function (editor, settings, schema, rootNode, args) { + var content = serializeNode(settings, schema, rootNode); + return postProcess(editor, args, content); + }; + var DomSerializer = function (settings, editor) { + var tempAttrs = ['data-mce-selected']; + var dom = editor && editor.dom ? editor.dom : DOMUtils$1.DOM; + var schema = editor && editor.schema ? editor.schema : Schema(settings); + settings.entity_encoding = settings.entity_encoding || 'named'; + settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true; + var htmlParser = DomParser(settings, schema); + DomSerializerFilters.register(htmlParser, settings, dom); + var serialize = function (node, parserArgs) { + if (parserArgs === void 0) { + parserArgs = {}; + } + var args = __assign({ format: 'html' }, parserArgs); + var targetNode = DomSerializerPreProcess.process(editor, node, args); + var html = getHtmlFromNode(dom, targetNode, args); + var rootNode = parseHtml(htmlParser, html, args); + return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args); + }; + return { + schema: schema, + addNodeFilter: htmlParser.addNodeFilter, + addAttributeFilter: htmlParser.addAttributeFilter, + serialize: serialize, + addRules: function (rules) { + schema.addValidElements(rules); + }, + setRules: function (rules) { + schema.setValidElements(rules); + }, + addTempAttr: curry(addTempAttr, htmlParser, tempAttrs), + getTempAttrs: function () { + return tempAttrs; + }, + getNodeFilters: htmlParser.getNodeFilters, + getAttributeFilters: htmlParser.getAttributeFilters + }; + }; + + var Serializer$1 = function (settings, editor) { + var domSerializer = DomSerializer(settings, editor); + return { + schema: domSerializer.schema, + addNodeFilter: domSerializer.addNodeFilter, + addAttributeFilter: domSerializer.addAttributeFilter, + serialize: domSerializer.serialize, + addRules: domSerializer.addRules, + setRules: domSerializer.setRules, + addTempAttr: domSerializer.addTempAttr, + getTempAttrs: domSerializer.getTempAttrs, + getNodeFilters: domSerializer.getNodeFilters, + getAttributeFilters: domSerializer.getAttributeFilters + }; + }; + + var blobUriToBlob = function (url) { + return new promiseObj(function (resolve, reject) { + var rejectWithError = function () { + reject('Cannot convert ' + url + ' to Blob. Resource might not exist or is inaccessible.'); + }; + try { + var xhr = new domGlobals.XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'blob'; + xhr.onload = function () { + if (this.status === 200) { + resolve(this.response); + } else { + rejectWithError(); + } + }; + xhr.onerror = rejectWithError; + xhr.send(); + } catch (ex) { + rejectWithError(); + } + }); + }; + var parseDataUri = function (uri) { + var type, matches; + var uriParts = decodeURIComponent(uri).split(','); + matches = /data:([^;]+)/.exec(uriParts[0]); + if (matches) { + type = matches[1]; + } + return { + type: type, + data: uriParts[1] + }; + }; + var dataUriToBlob = function (uri) { + return new promiseObj(function (resolve) { + var str, arr, i; + var uriParts = parseDataUri(uri); + try { + str = domGlobals.atob(uriParts.data); + } catch (e) { + resolve(new domGlobals.Blob([])); + return; + } + arr = new Uint8Array(str.length); + for (i = 0; i < arr.length; i++) { + arr[i] = str.charCodeAt(i); + } + resolve(new domGlobals.Blob([arr], { type: uriParts.type })); + }); + }; + var uriToBlob = function (url) { + if (url.indexOf('blob:') === 0) { + return blobUriToBlob(url); + } + if (url.indexOf('data:') === 0) { + return dataUriToBlob(url); + } + return null; + }; + var blobToDataUri = function (blob) { + return new promiseObj(function (resolve) { + var reader = new domGlobals.FileReader(); + reader.onloadend = function () { + resolve(reader.result); + }; + reader.readAsDataURL(blob); + }); + }; + var Conversions = { + uriToBlob: uriToBlob, + blobToDataUri: blobToDataUri, + parseDataUri: parseDataUri + }; + + var count = 0; + var uniqueId = function (prefix) { + return (prefix || 'blobid') + count++; + }; + var imageToBlobInfo = function (blobCache, img, resolve, reject) { + var base64, blobInfo; + if (img.src.indexOf('blob:') === 0) { + blobInfo = blobCache.getByUri(img.src); + if (blobInfo) { + resolve({ + image: img, + blobInfo: blobInfo + }); + } else { + Conversions.uriToBlob(img.src).then(function (blob) { + Conversions.blobToDataUri(blob).then(function (dataUri) { + base64 = Conversions.parseDataUri(dataUri).data; + blobInfo = blobCache.create(uniqueId(), blob, base64); + blobCache.add(blobInfo); + resolve({ + image: img, + blobInfo: blobInfo + }); + }); + }, function (err) { + reject(err); + }); + } + return; + } + base64 = Conversions.parseDataUri(img.src).data; + blobInfo = blobCache.findFirst(function (cachedBlobInfo) { + return cachedBlobInfo.base64() === base64; + }); + if (blobInfo) { + resolve({ + image: img, + blobInfo: blobInfo + }); + } else { + Conversions.uriToBlob(img.src).then(function (blob) { + blobInfo = blobCache.create(uniqueId(), blob, base64); + blobCache.add(blobInfo); + resolve({ + image: img, + blobInfo: blobInfo + }); + }, function (err) { + reject(err); + }); + } + }; + var getAllImages = function (elm) { + return elm ? from$1(elm.getElementsByTagName('img')) : []; + }; + function ImageScanner(uploadStatus, blobCache) { + var cachedPromises = {}; + var findAll = function (elm, predicate) { + var images; + if (!predicate) { + predicate = constant(true); + } + images = filter(getAllImages(elm), function (img) { + var src = img.src; + if (!Env.fileApi) { + return false; + } + if (img.hasAttribute('data-mce-bogus')) { + return false; + } + if (img.hasAttribute('data-mce-placeholder')) { + return false; + } + if (!src || src === Env.transparentSrc) { + return false; + } + if (src.indexOf('blob:') === 0) { + return !uploadStatus.isUploaded(src) && predicate(img); + } + if (src.indexOf('data:') === 0) { + return predicate(img); + } + return false; + }); + var promises = map(images, function (img) { + if (cachedPromises[img.src]) { + return new promiseObj(function (resolve) { + cachedPromises[img.src].then(function (imageInfo) { + if (typeof imageInfo === 'string') { + return imageInfo; + } + resolve({ + image: img, + blobInfo: imageInfo.blobInfo + }); + }); + }); + } + var newPromise = new promiseObj(function (resolve, reject) { + imageToBlobInfo(blobCache, img, resolve, reject); + }).then(function (result) { + delete cachedPromises[result.image.src]; + return result; + }).catch(function (error) { + delete cachedPromises[img.src]; + return error; + }); + cachedPromises[img.src] = newPromise; + return newPromise; + }); + return promiseObj.all(promises); + }; + return { findAll: findAll }; + } + + function Uploader(uploadStatus, settings) { + var pendingPromises = {}; + var pathJoin = function (path1, path2) { + if (path1) { + return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); + } + return path2; + }; + var defaultHandler = function (blobInfo, success, failure, progress) { + var xhr, formData; + xhr = new domGlobals.XMLHttpRequest(); + xhr.open('POST', settings.url); + xhr.withCredentials = settings.credentials; + xhr.upload.onprogress = function (e) { + progress(e.loaded / e.total * 100); + }; + xhr.onerror = function () { + failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status); + }; + xhr.onload = function () { + var json; + if (xhr.status < 200 || xhr.status >= 300) { + failure('HTTP Error: ' + xhr.status); + return; + } + json = JSON.parse(xhr.responseText); + if (!json || typeof json.location !== 'string') { + failure('Invalid JSON: ' + xhr.responseText); + return; + } + success(pathJoin(settings.basePath, json.location)); + }; + formData = new domGlobals.FormData(); + formData.append('file', blobInfo.blob(), blobInfo.filename()); + xhr.send(formData); + }; + var noUpload = function () { + return new promiseObj(function (resolve) { + resolve([]); + }); + }; + var handlerSuccess = function (blobInfo, url) { + return { + url: url, + blobInfo: blobInfo, + status: true + }; + }; + var handlerFailure = function (blobInfo, error) { + return { + url: '', + blobInfo: blobInfo, + status: false, + error: error + }; + }; + var resolvePending = function (blobUri, result) { + Tools.each(pendingPromises[blobUri], function (resolve) { + resolve(result); + }); + delete pendingPromises[blobUri]; + }; + var uploadBlobInfo = function (blobInfo, handler, openNotification) { + uploadStatus.markPending(blobInfo.blobUri()); + return new promiseObj(function (resolve) { + var notification, progress; + var noop = function () { + }; + try { + var closeNotification_1 = function () { + if (notification) { + notification.close(); + progress = noop; + } + }; + var success = function (url) { + closeNotification_1(); + uploadStatus.markUploaded(blobInfo.blobUri(), url); + resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url)); + resolve(handlerSuccess(blobInfo, url)); + }; + var failure = function (error) { + closeNotification_1(); + uploadStatus.removeFailed(blobInfo.blobUri()); + resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error)); + resolve(handlerFailure(blobInfo, error)); + }; + progress = function (percent) { + if (percent < 0 || percent > 100) { + return; + } + if (!notification) { + notification = openNotification(); + } + notification.progressBar.value(percent); + }; + handler(blobInfo, success, failure, progress); + } catch (ex) { + resolve(handlerFailure(blobInfo, ex.message)); + } + }); + }; + var isDefaultHandler = function (handler) { + return handler === defaultHandler; + }; + var pendingUploadBlobInfo = function (blobInfo) { + var blobUri = blobInfo.blobUri(); + return new promiseObj(function (resolve) { + pendingPromises[blobUri] = pendingPromises[blobUri] || []; + pendingPromises[blobUri].push(resolve); + }); + }; + var uploadBlobs = function (blobInfos, openNotification) { + blobInfos = Tools.grep(blobInfos, function (blobInfo) { + return !uploadStatus.isUploaded(blobInfo.blobUri()); + }); + return promiseObj.all(Tools.map(blobInfos, function (blobInfo) { + return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification); + })); + }; + var upload = function (blobInfos, openNotification) { + return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification); + }; + if (isFunction(settings.handler) === false) { + settings.handler = defaultHandler; + } + return { upload: upload }; + } + + function UploadStatus () { + var PENDING = 1, UPLOADED = 2; + var blobUriStatuses = {}; + var createStatus = function (status, resultUri) { + return { + status: status, + resultUri: resultUri + }; + }; + var hasBlobUri = function (blobUri) { + return blobUri in blobUriStatuses; + }; + var getResultUri = function (blobUri) { + var result = blobUriStatuses[blobUri]; + return result ? result.resultUri : null; + }; + var isPending = function (blobUri) { + return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false; + }; + var isUploaded = function (blobUri) { + return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false; + }; + var markPending = function (blobUri) { + blobUriStatuses[blobUri] = createStatus(PENDING, null); + }; + var markUploaded = function (blobUri, resultUri) { + blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri); + }; + var removeFailed = function (blobUri) { + delete blobUriStatuses[blobUri]; + }; + var destroy = function () { + blobUriStatuses = {}; + }; + return { + hasBlobUri: hasBlobUri, + getResultUri: getResultUri, + isPending: isPending, + isUploaded: isUploaded, + markPending: markPending, + markUploaded: markUploaded, + removeFailed: removeFailed, + destroy: destroy + }; + } + + var count$1 = 0; + var seed = function () { + var rnd = function () { + return Math.round(Math.random() * 4294967295).toString(36); + }; + var now = new Date().getTime(); + return 's' + now.toString(36) + rnd() + rnd() + rnd(); + }; + var uuid = function (prefix) { + return prefix + count$1++ + seed(); + }; + var Uuid = { uuid: uuid }; + + var BlobCache = function () { + var cache = []; + var mimeToExt = function (mime) { + var mimes = { + 'image/jpeg': 'jpg', + 'image/jpg': 'jpg', + 'image/gif': 'gif', + 'image/png': 'png' + }; + return mimes[mime.toLowerCase()] || 'dat'; + }; + var create = function (o, blob, base64, filename) { + if (isString(o)) { + var id = o; + return toBlobInfo({ + id: id, + name: filename, + blob: blob, + base64: base64 + }); + } else if (isObject(o)) { + return toBlobInfo(o); + } else { + throw new Error('Unknown input type'); + } + }; + var toBlobInfo = function (o) { + var id, name; + if (!o.blob || !o.base64) { + throw new Error('blob and base64 representations of the image are required for BlobInfo to be created'); + } + id = o.id || Uuid.uuid('blobid'); + name = o.name || id; + return { + id: constant(id), + name: constant(name), + filename: constant(name + '.' + mimeToExt(o.blob.type)), + blob: constant(o.blob), + base64: constant(o.base64), + blobUri: constant(o.blobUri || domGlobals.URL.createObjectURL(o.blob)), + uri: constant(o.uri) + }; + }; + var add = function (blobInfo) { + if (!get(blobInfo.id())) { + cache.push(blobInfo); + } + }; + var get = function (id) { + return findFirst(function (cachedBlobInfo) { + return cachedBlobInfo.id() === id; + }); + }; + var findFirst = function (predicate) { + return filter(cache, predicate)[0]; + }; + var getByUri = function (blobUri) { + return findFirst(function (blobInfo) { + return blobInfo.blobUri() === blobUri; + }); + }; + var removeByUri = function (blobUri) { + cache = filter(cache, function (blobInfo) { + if (blobInfo.blobUri() === blobUri) { + domGlobals.URL.revokeObjectURL(blobInfo.blobUri()); + return false; + } + return true; + }); + }; + var destroy = function () { + each(cache, function (cachedBlobInfo) { + domGlobals.URL.revokeObjectURL(cachedBlobInfo.blobUri()); + }); + cache = []; + }; + return { + create: create, + add: add, + get: get, + getByUri: getByUri, + findFirst: findFirst, + removeByUri: removeByUri, + destroy: destroy + }; + }; + + var EditorUpload = function (editor) { + var blobCache = BlobCache(); + var uploader, imageScanner; + var uploadStatus = UploadStatus(); + var urlFilters = []; + var aliveGuard = function (callback) { + return function (result) { + if (editor.selection) { + return callback(result); + } + return []; + }; + }; + var cacheInvalidator = function (url) { + return url + (url.indexOf('?') === -1 ? '?' : '&') + new Date().getTime(); + }; + var replaceString = function (content, search, replace) { + var index = 0; + do { + index = content.indexOf(search, index); + if (index !== -1) { + content = content.substring(0, index) + replace + content.substr(index + search.length); + index += replace.length - search.length + 1; + } + } while (index !== -1); + return content; + }; + var replaceImageUrl = function (content, targetUrl, replacementUrl) { + content = replaceString(content, 'src="' + targetUrl + '"', 'src="' + replacementUrl + '"'); + content = replaceString(content, 'data-mce-src="' + targetUrl + '"', 'data-mce-src="' + replacementUrl + '"'); + return content; + }; + var replaceUrlInUndoStack = function (targetUrl, replacementUrl) { + each(editor.undoManager.data, function (level) { + if (level.type === 'fragmented') { + level.fragments = map(level.fragments, function (fragment) { + return replaceImageUrl(fragment, targetUrl, replacementUrl); + }); + } else { + level.content = replaceImageUrl(level.content, targetUrl, replacementUrl); + } + }); + }; + var openNotification = function () { + return editor.notificationManager.open({ + text: editor.translate('Image uploading...'), + type: 'info', + timeout: -1, + progressBar: true + }); + }; + var replaceImageUri = function (image, resultUri) { + blobCache.removeByUri(image.src); + replaceUrlInUndoStack(image.src, resultUri); + editor.$(image).attr({ + 'src': Settings.shouldReuseFileName(editor) ? cacheInvalidator(resultUri) : resultUri, + 'data-mce-src': editor.convertURL(resultUri, 'src') + }); + }; + var uploadImages = function (callback) { + if (!uploader) { + uploader = Uploader(uploadStatus, { + url: Settings.getImageUploadUrl(editor), + basePath: Settings.getImageUploadBasePath(editor), + credentials: Settings.getImagesUploadCredentials(editor), + handler: Settings.getImagesUploadHandler(editor) + }); + } + return scanForImages().then(aliveGuard(function (imageInfos) { + var blobInfos = map(imageInfos, function (imageInfo) { + return imageInfo.blobInfo; + }); + return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) { + var filteredResult = map(result, function (uploadInfo, index) { + var image = imageInfos[index].image; + if (uploadInfo.status && Settings.shouldReplaceBlobUris(editor)) { + replaceImageUri(image, uploadInfo.url); + } else if (uploadInfo.error) { + ErrorReporter.uploadError(editor, uploadInfo.error); + } + return { + element: image, + status: uploadInfo.status + }; + }); + if (callback) { + callback(filteredResult); + } + return filteredResult; + })); + })); + }; + var uploadImagesAuto = function (callback) { + if (Settings.isAutomaticUploadsEnabled(editor)) { + return uploadImages(callback); + } + }; + var isValidDataUriImage = function (imgElm) { + if (forall(urlFilters, function (filter) { + return filter(imgElm); + }) === false) { + return false; + } + if (imgElm.getAttribute('src').indexOf('data:') === 0) { + var dataImgFilter = Settings.getImagesDataImgFilter(editor); + return dataImgFilter(imgElm); + } + return true; + }; + var addFilter = function (filter) { + urlFilters.push(filter); + }; + var scanForImages = function () { + if (!imageScanner) { + imageScanner = ImageScanner(uploadStatus, blobCache); + } + return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(function (result) { + result = filter(result, function (resultItem) { + if (typeof resultItem === 'string') { + ErrorReporter.displayError(editor, resultItem); + return false; + } + return true; + }); + each(result, function (resultItem) { + replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri()); + resultItem.image.src = resultItem.blobInfo.blobUri(); + resultItem.image.removeAttribute('data-mce-src'); + }); + return result; + })); + }; + var destroy = function () { + blobCache.destroy(); + uploadStatus.destroy(); + imageScanner = uploader = null; + }; + var replaceBlobUris = function (content) { + return content.replace(/src="(blob:[^"]+)"/g, function (match, blobUri) { + var resultUri = uploadStatus.getResultUri(blobUri); + if (resultUri) { + return 'src="' + resultUri + '"'; + } + var blobInfo = blobCache.getByUri(blobUri); + if (!blobInfo) { + blobInfo = foldl(editor.editorManager.get(), function (result, editor) { + return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri); + }, null); + } + if (blobInfo) { + var blob = blobInfo.blob(); + return 'src="data:' + blob.type + ';base64,' + blobInfo.base64() + '"'; + } + return match; + }); + }; + editor.on('SetContent', function () { + if (Settings.isAutomaticUploadsEnabled(editor)) { + uploadImagesAuto(); + } else { + scanForImages(); + } + }); + editor.on('RawSaveContent', function (e) { + e.content = replaceBlobUris(e.content); + }); + editor.on('GetContent', function (e) { + if (e.source_view || e.format === 'raw') { + return; + } + e.content = replaceBlobUris(e.content); + }); + editor.on('PostRender', function () { + editor.parser.addNodeFilter('img', function (images) { + each(images, function (img) { + var src = img.attr('src'); + if (blobCache.getByUri(src)) { + return; + } + var resultUri = uploadStatus.getResultUri(src); + if (resultUri) { + img.attr('src', resultUri); + } + }); + }); + }); + return { + blobCache: blobCache, + addFilter: addFilter, + uploadImages: uploadImages, + uploadImagesAuto: uploadImagesAuto, + scanForImages: scanForImages, + destroy: destroy + }; + }; + + var getLastChildren$1 = function (elm) { + var children = []; + var rawNode = elm.dom(); + while (rawNode) { + children.push(Element.fromDom(rawNode)); + rawNode = rawNode.lastChild; + } + return children; + }; + var removeTrailingBr = function (elm) { + var allBrs = descendants$1(elm, 'br'); + var brs = filter(getLastChildren$1(elm).slice(-1), isBr$1); + if (allBrs.length === brs.length) { + each(brs, remove); + } + }; + var fillWithPaddingBr = function (elm) { + empty(elm); + append(elm, Element.fromHtml('
    ')); + }; + var isPaddingContents = function (elm) { + return isText(elm) ? get$7(elm) === nbsp : isBr$1(elm); + }; + var isPaddedElement = function (elm) { + return filter(children(elm), isPaddingContents).length === 1; + }; + var trimBlockTrailingBr = function (elm) { + lastChild(elm).each(function (lastChild) { + prevSibling(lastChild).each(function (lastChildPrevSibling) { + if (isBlock(elm) && isBr$1(lastChild) && isBlock(lastChildPrevSibling)) { + remove(lastChild); + } + }); + }); + }; + var PaddingBr = { + removeTrailingBr: removeTrailingBr, + fillWithPaddingBr: fillWithPaddingBr, + isPaddedElement: isPaddedElement, + trimBlockTrailingBr: trimBlockTrailingBr + }; + + var isEq$2 = isEq; + var matchesUnInheritedFormatSelector = function (ed, node, name) { + var formatList = ed.formatter.get(name); + if (formatList) { + for (var i = 0; i < formatList.length; i++) { + if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) { + return true; + } + } + } + return false; + }; + var matchParents = function (editor, node, name, vars) { + var root = editor.dom.getRoot(); + if (node === root) { + return false; + } + node = editor.dom.getParent(node, function (node) { + if (matchesUnInheritedFormatSelector(editor, node, name)) { + return true; + } + return node.parentNode === root || !!matchNode(editor, node, name, vars, true); + }); + return matchNode(editor, node, name, vars); + }; + var matchName = function (dom, node, format) { + if (isEq$2(node, format.inline)) { + return true; + } + if (isEq$2(node, format.block)) { + return true; + } + if (format.selector) { + return node.nodeType === 1 && dom.is(node, format.selector); + } + }; + var matchItems = function (dom, node, format, itemName, similar, vars) { + var key, value; + var items = format[itemName]; + var i; + if (format.onmatch) { + return format.onmatch(node, format, itemName); + } + if (items) { + if (typeof items.length === 'undefined') { + for (key in items) { + if (items.hasOwnProperty(key)) { + if (itemName === 'attributes') { + value = dom.getAttrib(node, key); + } else { + value = getStyle(dom, node, key); + } + if (similar && !value && !format.exact) { + return; + } + if ((!similar || format.exact) && !isEq$2(value, normalizeStyleValue(dom, replaceVars(items[key], vars), key))) { + return; + } + } + } + } else { + for (i = 0; i < items.length; i++) { + if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) { + return format; + } + } + } + } + return format; + }; + var matchNode = function (ed, node, name, vars, similar) { + var formatList = ed.formatter.get(name); + var format, i, x, classes; + var dom = ed.dom; + if (formatList && node) { + for (i = 0; i < formatList.length; i++) { + format = formatList[i]; + if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) { + if (classes = format.classes) { + for (x = 0; x < classes.length; x++) { + if (!ed.dom.hasClass(node, classes[x])) { + return; + } + } + } + return format; + } + } + } + }; + var match = function (editor, name, vars, node) { + var startNode; + if (node) { + return matchParents(editor, node, name, vars); + } + node = editor.selection.getNode(); + if (matchParents(editor, node, name, vars)) { + return true; + } + startNode = editor.selection.getStart(); + if (startNode !== node) { + if (matchParents(editor, startNode, name, vars)) { + return true; + } + } + return false; + }; + var matchAll = function (editor, names, vars) { + var startElement; + var matchedFormatNames = []; + var checkedMap = {}; + startElement = editor.selection.getStart(); + editor.dom.getParent(startElement, function (node) { + var i, name; + for (i = 0; i < names.length; i++) { + name = names[i]; + if (!checkedMap[name] && matchNode(editor, node, name, vars)) { + checkedMap[name] = true; + matchedFormatNames.push(name); + } + } + }, editor.dom.getRoot()); + return matchedFormatNames; + }; + var canApply = function (editor, name) { + var formatList = editor.formatter.get(name); + var startNode, parents, i, x, selector; + var dom = editor.dom; + if (formatList) { + startNode = editor.selection.getStart(); + parents = getParents$1(dom, startNode); + for (x = formatList.length - 1; x >= 0; x--) { + selector = formatList[x].selector; + if (!selector || formatList[x].defaultBlock) { + return true; + } + for (i = parents.length - 1; i >= 0; i--) { + if (dom.is(parents[i], selector)) { + return true; + } + } + } + } + return false; + }; + + var splitText = function (node, offset) { + return node.splitText(offset); + }; + var split$1 = function (rng) { + var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset; + if (startContainer === endContainer && NodeType.isText(startContainer)) { + if (startOffset > 0 && startOffset < startContainer.nodeValue.length) { + endContainer = splitText(startContainer, startOffset); + startContainer = endContainer.previousSibling; + if (endOffset > startOffset) { + endOffset = endOffset - startOffset; + startContainer = endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + startOffset = 0; + } else { + endOffset = 0; + } + } + } else { + if (NodeType.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) { + startContainer = splitText(startContainer, startOffset); + startOffset = 0; + } + if (NodeType.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) { + endContainer = splitText(endContainer, endOffset).previousSibling; + endOffset = endContainer.nodeValue.length; + } + } + return { + startContainer: startContainer, + startOffset: startOffset, + endContainer: endContainer, + endOffset: endOffset + }; + }; + + var normalizeContent = function (content, isStartOfContent, isEndOfContent) { + var result = foldl(content, function (acc, c) { + if (isWhiteSpace$1(c) || isNbsp(c)) { + if (acc.previousCharIsSpace || acc.str === '' && isStartOfContent || acc.str.length === content.length - 1 && isEndOfContent) { + return { + previousCharIsSpace: false, + str: acc.str + nbsp + }; + } else { + return { + previousCharIsSpace: true, + str: acc.str + ' ' + }; + } + } else { + return { + previousCharIsSpace: false, + str: acc.str + c + }; + } + }, { + previousCharIsSpace: false, + str: '' + }); + return result.str; + }; + var normalize$1 = function (node, offset, count) { + if (count === 0) { + return; + } + var whitespace = node.data.slice(offset, offset + count); + var isEndOfContent = offset + count >= node.data.length; + var isStartOfContent = offset === 0; + node.replaceData(offset, count, normalizeContent(whitespace, isStartOfContent, isEndOfContent)); + }; + var normalizeWhitespaceAfter = function (node, offset) { + var content = node.data.slice(offset); + var whitespaceCount = content.length - lTrim(content).length; + return normalize$1(node, offset, whitespaceCount); + }; + var normalizeWhitespaceBefore = function (node, offset) { + var content = node.data.slice(0, offset); + var whitespaceCount = content.length - rTrim(content).length; + return normalize$1(node, offset - whitespaceCount, whitespaceCount); + }; + var mergeTextNodes = function (prevNode, nextNode, normalizeWhitespace) { + var whitespaceOffset = rTrim(prevNode.data).length; + prevNode.appendData(nextNode.data); + remove(Element.fromDom(nextNode)); + if (normalizeWhitespace) { + normalizeWhitespaceAfter(prevNode, whitespaceOffset); + } + return prevNode; + }; + + var ancestor$2 = function (scope, selector, isRoot) { + return ancestor$1(scope, selector, isRoot).isSome(); + }; + + var hasWhitespacePreserveParent = function (rootNode, node) { + var rootElement = Element.fromDom(rootNode); + var startNode = Element.fromDom(node); + return ancestor$2(startNode, 'pre,code', curry(eq, rootElement)); + }; + var isWhitespace = function (rootNode, node) { + return NodeType.isText(node) && /^[ \t\r\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false; + }; + var isNamedAnchor = function (node) { + return NodeType.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name'); + }; + var isContent$1 = function (rootNode, node) { + return isCaretCandidate(node) && isWhitespace(rootNode, node) === false || isNamedAnchor(node) || isBookmark(node); + }; + var isBookmark = NodeType.hasAttribute('data-mce-bookmark'); + var isBogus$2 = NodeType.hasAttribute('data-mce-bogus'); + var isBogusAll$1 = NodeType.hasAttributeValue('data-mce-bogus', 'all'); + var isEmptyNode = function (targetNode, skipBogus) { + var node, brCount = 0; + if (isContent$1(targetNode, targetNode)) { + return false; + } else { + node = targetNode.firstChild; + if (!node) { + return true; + } + var walker = new TreeWalker(node, targetNode); + do { + if (skipBogus) { + if (isBogusAll$1(node)) { + node = walker.next(true); + continue; + } + if (isBogus$2(node)) { + node = walker.next(); + continue; + } + } + if (NodeType.isBr(node)) { + brCount++; + node = walker.next(); + continue; + } + if (isContent$1(targetNode, node)) { + return false; + } + node = walker.next(); + } while (node); + return brCount <= 1; + } + }; + var isEmpty$2 = function (elm, skipBogus) { + if (skipBogus === void 0) { + skipBogus = true; + } + return isEmptyNode(elm.dom(), skipBogus); + }; + var Empty = { isEmpty: isEmpty$2 }; + + var needsReposition = function (pos, elm) { + var container = pos.container(); + var offset = pos.offset(); + return CaretPosition$1.isTextPosition(pos) === false && container === elm.parentNode && offset > CaretPosition$1.before(elm).offset(); + }; + var reposition = function (elm, pos) { + return needsReposition(pos, elm) ? CaretPosition$1(pos.container(), pos.offset() - 1) : pos; + }; + var beforeOrStartOf = function (node) { + return NodeType.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node); + }; + var afterOrEndOf = function (node) { + return NodeType.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node); + }; + var getPreviousSiblingCaretPosition = function (elm) { + if (isCaretCandidate(elm.previousSibling)) { + return Option.some(afterOrEndOf(elm.previousSibling)); + } else { + return elm.previousSibling ? CaretFinder.lastPositionIn(elm.previousSibling) : Option.none(); + } + }; + var getNextSiblingCaretPosition = function (elm) { + if (isCaretCandidate(elm.nextSibling)) { + return Option.some(beforeOrStartOf(elm.nextSibling)); + } else { + return elm.nextSibling ? CaretFinder.firstPositionIn(elm.nextSibling) : Option.none(); + } + }; + var findCaretPositionBackwardsFromElm = function (rootElement, elm) { + var startPosition = CaretPosition$1.before(elm.previousSibling ? elm.previousSibling : elm.parentNode); + return CaretFinder.prevPosition(rootElement, startPosition).fold(function () { + return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm)); + }, Option.some); + }; + var findCaretPositionForwardsFromElm = function (rootElement, elm) { + return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () { + return CaretFinder.prevPosition(rootElement, CaretPosition$1.before(elm)); + }, Option.some); + }; + var findCaretPositionBackwards = function (rootElement, elm) { + return getPreviousSiblingCaretPosition(elm).orThunk(function () { + return getNextSiblingCaretPosition(elm); + }).orThunk(function () { + return findCaretPositionBackwardsFromElm(rootElement, elm); + }); + }; + var findCaretPositionForward = function (rootElement, elm) { + return getNextSiblingCaretPosition(elm).orThunk(function () { + return getPreviousSiblingCaretPosition(elm); + }).orThunk(function () { + return findCaretPositionForwardsFromElm(rootElement, elm); + }); + }; + var findCaretPosition$1 = function (forward, rootElement, elm) { + return forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm); + }; + var findCaretPosOutsideElmAfterDelete = function (forward, rootElement, elm) { + return findCaretPosition$1(forward, rootElement, elm).map(curry(reposition, elm)); + }; + var setSelection = function (editor, forward, pos) { + pos.fold(function () { + editor.focus(); + }, function (pos) { + editor.selection.setRng(pos.toRange(), forward); + }); + }; + var eqRawNode = function (rawNode) { + return function (elm) { + return elm.dom() === rawNode; + }; + }; + var isBlock$2 = function (editor, elm) { + return elm && editor.schema.getBlockElements().hasOwnProperty(name(elm)); + }; + var paddEmptyBlock = function (elm) { + if (Empty.isEmpty(elm)) { + var br = Element.fromHtml('
    '); + empty(elm); + append(elm, br); + return Option.some(CaretPosition$1.before(br.dom())); + } else { + return Option.none(); + } + }; + var deleteNormalized = function (elm, afterDeletePosOpt, normalizeWhitespace) { + var prevTextOpt = prevSibling(elm).filter(isText); + var nextTextOpt = nextSibling(elm).filter(isText); + remove(elm); + return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, function (prev, next, pos) { + var prevNode = prev.dom(), nextNode = next.dom(); + var offset = prevNode.data.length; + mergeTextNodes(prevNode, nextNode, normalizeWhitespace); + return pos.container() === nextNode ? CaretPosition$1(prevNode, offset) : pos; + }).orThunk(function () { + if (normalizeWhitespace) { + prevTextOpt.each(function (elm) { + return normalizeWhitespaceBefore(elm.dom(), elm.dom().length); + }); + nextTextOpt.each(function (elm) { + return normalizeWhitespaceAfter(elm.dom(), 0); + }); + } + return afterDeletePosOpt; + }); + }; + var isInlineElement = function (editor, element) { + return has(editor.schema.getTextInlineElements(), name(element)); + }; + var deleteElement = function (editor, forward, elm, moveCaret) { + if (moveCaret === void 0) { + moveCaret = true; + } + var afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom()); + var parentBlock = ancestor(elm, curry(isBlock$2, editor), eqRawNode(editor.getBody())); + var normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, isInlineElement(editor, elm)); + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + editor.selection.setCursorLocation(); + } else { + parentBlock.bind(paddEmptyBlock).fold(function () { + if (moveCaret) { + setSelection(editor, forward, normalizedAfterDeletePos); + } + }, function (paddPos) { + if (moveCaret) { + setSelection(editor, forward, Option.some(paddPos)); + } + }); + } + }; + var DeleteElement = { deleteElement: deleteElement }; + + var ZWSP$1 = Zwsp.ZWSP, CARET_ID$1 = '_mce_caret'; + var importNode = function (ownerDocument, node) { + return ownerDocument.importNode(node, true); + }; + var getEmptyCaretContainers = function (node) { + var nodes = []; + while (node) { + if (node.nodeType === 3 && node.nodeValue !== ZWSP$1 || node.childNodes.length > 1) { + return []; + } + if (node.nodeType === 1) { + nodes.push(node); + } + node = node.firstChild; + } + return nodes; + }; + var isCaretContainerEmpty = function (node) { + return getEmptyCaretContainers(node).length > 0; + }; + var findFirstTextNode = function (node) { + if (node) { + var walker = new TreeWalker(node, node); + for (node = walker.current(); node; node = walker.next()) { + if (NodeType.isText(node)) { + return node; + } + } + } + return null; + }; + var createCaretContainer = function (fill) { + var caretContainer = Element.fromTag('span'); + setAll(caretContainer, { + 'id': CARET_ID$1, + 'data-mce-bogus': '1', + 'data-mce-type': 'format-caret' + }); + if (fill) { + append(caretContainer, Element.fromText(ZWSP$1)); + } + return caretContainer; + }; + var trimZwspFromCaretContainer = function (caretContainerNode) { + var textNode = findFirstTextNode(caretContainerNode); + if (textNode && textNode.nodeValue.charAt(0) === ZWSP$1) { + textNode.deleteData(0, 1); + } + return textNode; + }; + var removeCaretContainerNode = function (editor, node, moveCaret) { + if (moveCaret === void 0) { + moveCaret = true; + } + var dom = editor.dom, selection = editor.selection; + if (isCaretContainerEmpty(node)) { + DeleteElement.deleteElement(editor, false, Element.fromDom(node), moveCaret); + } else { + var rng = selection.getRng(); + var block = dom.getParent(node, dom.isBlock); + var textNode = trimZwspFromCaretContainer(node); + if (rng.startContainer === textNode && rng.startOffset > 0) { + rng.setStart(textNode, rng.startOffset - 1); + } + if (rng.endContainer === textNode && rng.endOffset > 0) { + rng.setEnd(textNode, rng.endOffset - 1); + } + dom.remove(node, true); + if (block && dom.isEmpty(block)) { + PaddingBr.fillWithPaddingBr(Element.fromDom(block)); + } + selection.setRng(rng); + } + }; + var removeCaretContainer = function (editor, node, moveCaret) { + if (moveCaret === void 0) { + moveCaret = true; + } + var dom = editor.dom, selection = editor.selection; + if (!node) { + node = getParentCaretContainer(editor.getBody(), selection.getStart()); + if (!node) { + while (node = dom.get(CARET_ID$1)) { + removeCaretContainerNode(editor, node, false); + } + } + } else { + removeCaretContainerNode(editor, node, moveCaret); + } + }; + var insertCaretContainerNode = function (editor, caretContainer, formatNode) { + var dom = editor.dom, block = dom.getParent(formatNode, curry(isTextBlock$1, editor)); + if (block && dom.isEmpty(block)) { + formatNode.parentNode.replaceChild(caretContainer, formatNode); + } else { + PaddingBr.removeTrailingBr(Element.fromDom(formatNode)); + if (dom.isEmpty(formatNode)) { + formatNode.parentNode.replaceChild(caretContainer, formatNode); + } else { + dom.insertAfter(caretContainer, formatNode); + } + } + }; + var appendNode = function (parentNode, node) { + parentNode.appendChild(node); + return node; + }; + var insertFormatNodesIntoCaretContainer = function (formatNodes, caretContainer) { + var innerMostFormatNode = foldr(formatNodes, function (parentNode, formatNode) { + return appendNode(parentNode, formatNode.cloneNode(false)); + }, caretContainer); + return appendNode(innerMostFormatNode, innerMostFormatNode.ownerDocument.createTextNode(ZWSP$1)); + }; + var applyCaretFormat = function (editor, name, vars) { + var rng, caretContainer, textNode, offset, bookmark, container, text; + var selection = editor.selection; + rng = selection.getRng(); + offset = rng.startOffset; + container = rng.startContainer; + text = container.nodeValue; + caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart()); + if (caretContainer) { + textNode = findFirstTextNode(caretContainer); + } + var wordcharRegex = /[^\s\u00a0\u00ad\u200b\ufeff]/; + if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) { + bookmark = selection.getBookmark(); + rng.collapse(true); + rng = expandRng(editor, rng, editor.formatter.get(name)); + rng = split$1(rng); + editor.formatter.apply(name, vars, rng); + selection.moveToBookmark(bookmark); + } else { + if (!caretContainer || textNode.nodeValue !== ZWSP$1) { + caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom()); + textNode = caretContainer.firstChild; + rng.insertNode(caretContainer); + offset = 1; + editor.formatter.apply(name, vars, caretContainer); + } else { + editor.formatter.apply(name, vars, caretContainer); + } + selection.setCursorLocation(textNode, offset); + } + }; + var removeCaretFormat = function (editor, name, vars, similar) { + var dom = editor.dom, selection = editor.selection; + var container, offset, bookmark; + var hasContentAfter, node, formatNode; + var parents = [], rng = selection.getRng(); + var caretContainer; + container = rng.startContainer; + offset = rng.startOffset; + node = container; + if (container.nodeType === 3) { + if (offset !== container.nodeValue.length) { + hasContentAfter = true; + } + node = node.parentNode; + } + while (node) { + if (matchNode(editor, node, name, vars, similar)) { + formatNode = node; + break; + } + if (node.nextSibling) { + hasContentAfter = true; + } + parents.push(node); + node = node.parentNode; + } + if (!formatNode) { + return; + } + if (hasContentAfter) { + bookmark = selection.getBookmark(); + rng.collapse(true); + var expandedRng = expandRng(editor, rng, editor.formatter.get(name), true); + expandedRng = split$1(expandedRng); + editor.formatter.remove(name, vars, expandedRng); + selection.moveToBookmark(bookmark); + } else { + caretContainer = getParentCaretContainer(editor.getBody(), formatNode); + var newCaretContainer = createCaretContainer(false).dom(); + var caretNode = insertFormatNodesIntoCaretContainer(parents, newCaretContainer); + if (caretContainer) { + insertCaretContainerNode(editor, newCaretContainer, caretContainer); + } else { + insertCaretContainerNode(editor, newCaretContainer, formatNode); + } + removeCaretContainerNode(editor, caretContainer, false); + selection.setCursorLocation(caretNode, 1); + if (dom.isEmpty(formatNode)) { + dom.remove(formatNode); + } + } + }; + var disableCaretContainer = function (editor, keyCode) { + var selection = editor.selection, body = editor.getBody(); + removeCaretContainer(editor, null, false); + if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP$1) { + removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart())); + } + if (keyCode === 37 || keyCode === 39) { + removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart())); + } + }; + var setup$3 = function (editor) { + editor.on('mouseup keydown', function (e) { + disableCaretContainer(editor, e.keyCode); + }); + }; + var replaceWithCaretFormat = function (targetNode, formatNodes) { + var caretContainer = createCaretContainer(false); + var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom()); + before(Element.fromDom(targetNode), caretContainer); + remove(Element.fromDom(targetNode)); + return CaretPosition$1(innerMost, 0); + }; + var isFormatElement = function (editor, element) { + var inlineElements = editor.schema.getTextInlineElements(); + return inlineElements.hasOwnProperty(name(element)) && !isCaretNode(element.dom()) && !NodeType.isBogus(element.dom()); + }; + var isEmptyCaretFormatElement = function (element) { + return isCaretNode(element.dom()) && isCaretContainerEmpty(element.dom()); + }; + + var postProcessHooks = {}, filter$4 = ArrUtils.filter, each$9 = ArrUtils.each; + var addPostProcessHook = function (name, hook) { + var hooks = postProcessHooks[name]; + if (!hooks) { + postProcessHooks[name] = hooks = []; + } + postProcessHooks[name].push(hook); + }; + var postProcess$1 = function (name, editor) { + each$9(postProcessHooks[name], function (hook) { + hook(editor); + }); + }; + addPostProcessHook('pre', function (editor) { + var rng = editor.selection.getRng(); + var isPre, blocks; + var hasPreSibling = function (pre) { + return isPre(pre.previousSibling) && ArrUtils.indexOf(blocks, pre.previousSibling) !== -1; + }; + var joinPre = function (pre1, pre2) { + DomQuery(pre2).remove(); + DomQuery(pre1).append('

    ').append(pre2.childNodes); + }; + isPre = NodeType.matchNodeNames(['pre']); + if (!rng.collapsed) { + blocks = editor.selection.getSelectedBlocks(); + each$9(filter$4(filter$4(blocks, isPre), hasPreSibling), function (pre) { + joinPre(pre.previousSibling, pre); + }); + } + }); + + var each$a = Tools.each; + var ElementUtils = function (dom) { + this.compare = function (node1, node2) { + if (node1.nodeName !== node2.nodeName) { + return false; + } + var getAttribs = function (node) { + var attribs = {}; + each$a(dom.getAttribs(node), function (attr) { + var name = attr.nodeName.toLowerCase(); + if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) { + attribs[name] = dom.getAttrib(node, name); + } + }); + return attribs; + }; + var compareObjects = function (obj1, obj2) { + var value, name; + for (name in obj1) { + if (obj1.hasOwnProperty(name)) { + value = obj2[name]; + if (typeof value === 'undefined') { + return false; + } + if (obj1[name] !== value) { + return false; + } + delete obj2[name]; + } + } + for (name in obj2) { + if (obj2.hasOwnProperty(name)) { + return false; + } + } + return true; + }; + if (!compareObjects(getAttribs(node1), getAttribs(node2))) { + return false; + } + if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) { + return false; + } + return !Bookmarks.isBookmarkNode(node1) && !Bookmarks.isBookmarkNode(node2); + }; + }; + + var MCE_ATTR_RE = /^(src|href|style)$/; + var each$b = Tools.each; + var isEq$3 = isEq; + var isTableCell$3 = function (node) { + return /^(TH|TD)$/.test(node.nodeName); + }; + var isChildOfInlineParent = function (dom, node, parent) { + return dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent); + }; + var getContainer = function (ed, rng, start) { + var container, offset; + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + if (NodeType.isElement(container)) { + var lastIdx = container.childNodes.length - 1; + if (!start && offset) { + offset--; + } + container = container.childNodes[offset > lastIdx ? lastIdx : offset]; + } + if (NodeType.isText(container) && start && offset >= container.nodeValue.length) { + container = new TreeWalker(container, ed.getBody()).next() || container; + } + if (NodeType.isText(container) && !start && offset === 0) { + container = new TreeWalker(container, ed.getBody()).prev() || container; + } + return container; + }; + var wrap$3 = function (dom, node, name, attrs) { + var wrapper = dom.create(name, attrs); + node.parentNode.insertBefore(wrapper, node); + wrapper.appendChild(node); + return wrapper; + }; + var wrapWithSiblings = function (dom, node, next, name, attrs) { + var start = Element.fromDom(node); + var wrapper = Element.fromDom(dom.create(name, attrs)); + var siblings = next ? nextSiblings(start) : prevSiblings(start); + append$1(wrapper, siblings); + if (next) { + before(start, wrapper); + prepend(wrapper, start); + } else { + after(start, wrapper); + append(wrapper, start); + } + return wrapper.dom(); + }; + var matchName$1 = function (dom, node, format) { + if (isEq$3(node, format.inline)) { + return true; + } + if (isEq$3(node, format.block)) { + return true; + } + if (format.selector) { + return NodeType.isElement(node) && dom.is(node, format.selector); + } + }; + var isColorFormatAndAnchor = function (node, format) { + return format.links && node.nodeName === 'A'; + }; + var find$4 = function (dom, node, next, inc) { + node = getNonWhiteSpaceSibling(node, next, inc); + return !node || (node.nodeName === 'BR' || dom.isBlock(node)); + }; + var removeNode$1 = function (ed, node, format) { + var parentNode = node.parentNode; + var rootBlockElm; + var dom = ed.dom, forcedRootBlock = Settings.getForcedRootBlock(ed); + if (format.block) { + if (!forcedRootBlock) { + if (dom.isBlock(node) && !dom.isBlock(parentNode)) { + if (!find$4(dom, node, false) && !find$4(dom, node.firstChild, true, true)) { + node.insertBefore(dom.create('br'), node.firstChild); + } + if (!find$4(dom, node, true) && !find$4(dom, node.lastChild, false, true)) { + node.appendChild(dom.create('br')); + } + } + } else { + if (parentNode === dom.getRoot()) { + if (!format.list_block || !isEq$3(node, format.list_block)) { + each$b(Tools.grep(node.childNodes), function (node) { + if (isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) { + if (!rootBlockElm) { + rootBlockElm = wrap$3(dom, node, forcedRootBlock); + dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs); + } else { + rootBlockElm.appendChild(node); + } + } else { + rootBlockElm = 0; + } + }); + } + } + } + } + if (format.selector && format.inline && !isEq$3(format.inline, node)) { + return; + } + dom.remove(node, true); + }; + var removeFormat = function (ed, format, vars, node, compareNode) { + var stylesModified; + var dom = ed.dom; + if (!matchName$1(dom, node, format) && !isColorFormatAndAnchor(node, format)) { + return false; + } + var elm = node; + if (format.remove !== 'all') { + each$b(format.styles, function (value, name) { + value = normalizeStyleValue(dom, replaceVars(value, vars), name); + if (typeof name === 'number') { + name = value; + compareNode = null; + } + if (format.remove_similar || (!compareNode || isEq$3(getStyle(dom, compareNode, name), value))) { + dom.setStyle(elm, name, ''); + } + stylesModified = true; + }); + if (stylesModified && dom.getAttrib(elm, 'style') === '') { + elm.removeAttribute('style'); + elm.removeAttribute('data-mce-style'); + } + each$b(format.attributes, function (value, name) { + var valueOut; + value = replaceVars(value, vars); + if (typeof name === 'number') { + name = value; + compareNode = null; + } + if (format.remove_similar || (!compareNode || isEq$3(dom.getAttrib(compareNode, name), value))) { + if (name === 'class') { + value = dom.getAttrib(elm, name); + if (value) { + valueOut = ''; + each$b(value.split(/\s+/), function (cls) { + if (/mce\-\w+/.test(cls)) { + valueOut += (valueOut ? ' ' : '') + cls; + } + }); + if (valueOut) { + dom.setAttrib(elm, name, valueOut); + return; + } + } + } + if (name === 'class') { + elm.removeAttribute('className'); + } + if (MCE_ATTR_RE.test(name)) { + elm.removeAttribute('data-mce-' + name); + } + elm.removeAttribute(name); + } + }); + each$b(format.classes, function (value) { + value = replaceVars(value, vars); + if (!compareNode || dom.hasClass(compareNode, value)) { + dom.removeClass(elm, value); + } + }); + var attrs = dom.getAttribs(elm); + for (var i = 0; i < attrs.length; i++) { + var attrName = attrs[i].nodeName; + if (attrName.indexOf('_') !== 0 && attrName.indexOf('data-') !== 0) { + return false; + } + } + } + if (format.remove !== 'none') { + removeNode$1(ed, elm, format); + return true; + } + }; + var findFormatRoot = function (editor, container, name, vars, similar) { + var formatRoot; + each$b(getParents$1(editor.dom, container.parentNode).reverse(), function (parent) { + var format; + if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') { + format = matchNode(editor, parent, name, vars, similar); + if (format && format.split !== false) { + formatRoot = parent; + } + } + }); + return formatRoot; + }; + var wrapAndSplit = function (editor, formatList, formatRoot, container, target, split, format, vars) { + var parent, clone, lastClone, firstClone, i, formatRootParent; + var dom = editor.dom; + if (formatRoot) { + formatRootParent = formatRoot.parentNode; + for (parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) { + clone = dom.clone(parent, false); + for (i = 0; i < formatList.length; i++) { + if (removeFormat(editor, formatList[i], vars, clone, clone)) { + clone = 0; + break; + } + } + if (clone) { + if (lastClone) { + clone.appendChild(lastClone); + } + if (!firstClone) { + firstClone = clone; + } + lastClone = clone; + } + } + if (split && (!format.mixed || !dom.isBlock(formatRoot))) { + container = dom.split(formatRoot, container); + } + if (lastClone) { + target.parentNode.insertBefore(lastClone, target); + firstClone.appendChild(target); + } + } + return container; + }; + var remove$7 = function (ed, name, vars, node, similar) { + var formatList = ed.formatter.get(name), format = formatList[0]; + var bookmark, rng, contentEditable = true; + var dom = ed.dom; + var selection = ed.selection; + var splitToFormatRoot = function (container) { + var formatRoot = findFormatRoot(ed, container, name, vars, similar); + return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars); + }; + var isRemoveBookmarkNode = function (node) { + return Bookmarks.isBookmarkNode(node) && NodeType.isElement(node) && (node.id === '_start' || node.id === '_end'); + }; + var process = function (node) { + var children, i, l, lastContentEditable, hasContentEditableState; + if (NodeType.isElement(node) && dom.getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = dom.getContentEditable(node) === 'true'; + hasContentEditableState = true; + } + children = Tools.grep(node.childNodes); + if (contentEditable && !hasContentEditableState) { + for (i = 0, l = formatList.length; i < l; i++) { + if (removeFormat(ed, formatList[i], vars, node, node)) { + break; + } + } + } + if (format.deep) { + if (children.length) { + for (i = 0, l = children.length; i < l; i++) { + process(children[i]); + } + if (hasContentEditableState) { + contentEditable = lastContentEditable; + } + } + } + }; + var unwrap = function (start) { + var node = dom.get(start ? '_start' : '_end'); + var out = node[start ? 'firstChild' : 'lastChild']; + if (isRemoveBookmarkNode(out)) { + out = out[start ? 'firstChild' : 'lastChild']; + } + if (NodeType.isText(out) && out.data.length === 0) { + out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling; + } + dom.remove(node, true); + return out; + }; + var removeRngStyle = function (rng) { + var startContainer, endContainer; + var commonAncestorContainer = rng.commonAncestorContainer; + var expandedRng = expandRng(ed, rng, formatList, true); + if (format.split) { + expandedRng = split$1(expandedRng); + startContainer = getContainer(ed, expandedRng, true); + endContainer = getContainer(ed, expandedRng); + if (startContainer !== endContainer) { + if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) { + if (startContainer.nodeName === 'TR') { + startContainer = startContainer.firstChild.firstChild || startContainer; + } else { + startContainer = startContainer.firstChild || startContainer; + } + } + if (commonAncestorContainer && /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && isTableCell$3(endContainer) && endContainer.firstChild) { + endContainer = endContainer.firstChild || endContainer; + } + if (isChildOfInlineParent(dom, startContainer, endContainer)) { + var marker = Option.from(startContainer.firstChild).getOr(startContainer); + splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', { + 'id': '_start', + 'data-mce-type': 'bookmark' + })); + unwrap(true); + return; + } + if (isChildOfInlineParent(dom, endContainer, startContainer)) { + var marker = Option.from(endContainer.lastChild).getOr(endContainer); + splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', { + 'id': '_end', + 'data-mce-type': 'bookmark' + })); + unwrap(false); + return; + } + startContainer = wrap$3(dom, startContainer, 'span', { + 'id': '_start', + 'data-mce-type': 'bookmark' + }); + endContainer = wrap$3(dom, endContainer, 'span', { + 'id': '_end', + 'data-mce-type': 'bookmark' + }); + var newRng = dom.createRng(); + newRng.setStartAfter(startContainer); + newRng.setEndBefore(endContainer); + RangeWalk.walk(dom, newRng, function (nodes) { + each(nodes, function (n) { + if (!Bookmarks.isBookmarkNode(n) && !Bookmarks.isBookmarkNode(n.parentNode)) { + splitToFormatRoot(n); + } + }); + }); + splitToFormatRoot(startContainer); + splitToFormatRoot(endContainer); + startContainer = unwrap(true); + endContainer = unwrap(); + } else { + startContainer = endContainer = splitToFormatRoot(startContainer); + } + expandedRng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer; + expandedRng.startOffset = dom.nodeIndex(startContainer); + expandedRng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer; + expandedRng.endOffset = dom.nodeIndex(endContainer) + 1; + } + RangeWalk.walk(dom, expandedRng, function (nodes) { + each$b(nodes, function (node) { + process(node); + if (NodeType.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && getTextDecoration(dom, node.parentNode) === 'underline') { + removeFormat(ed, { + deep: false, + exact: true, + inline: 'span', + styles: { textDecoration: 'underline' } + }, null, node); + } + }); + }); + }; + if (node) { + if (isNode(node)) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + removeRngStyle(rng); + } else { + removeRngStyle(node); + } + return; + } + if (dom.getContentEditable(selection.getNode()) === 'false') { + node = selection.getNode(); + for (var i = 0, l = formatList.length; i < l; i++) { + if (formatList[i].ceFalseOverride) { + if (removeFormat(ed, formatList[i], vars, node, node)) { + break; + } + } + } + return; + } + if (!selection.isCollapsed() || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) { + bookmark = GetBookmark.getPersistentBookmark(ed.selection, true); + removeRngStyle(selection.getRng()); + selection.moveToBookmark(bookmark); + if (format.inline && match(ed, name, vars, selection.getStart())) { + moveStart(dom, selection, selection.getRng()); + } + ed.nodeChanged(); + } else { + removeCaretFormat(ed, name, vars, similar); + } + }; + + var each$c = Tools.each; + var isElementNode = function (node) { + return NodeType.isElement(node) && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node); + }; + var findElementSibling = function (node, siblingName) { + var sibling; + for (sibling = node; sibling; sibling = sibling[siblingName]) { + if (NodeType.isText(sibling) && sibling.nodeValue.length !== 0) { + return node; + } + if (NodeType.isElement(sibling) && !Bookmarks.isBookmarkNode(sibling)) { + return sibling; + } + } + return node; + }; + var mergeSiblingsNodes = function (dom, prev, next) { + var sibling, tmpSibling; + var elementUtils = new ElementUtils(dom); + if (prev && next) { + prev = findElementSibling(prev, 'previousSibling'); + next = findElementSibling(next, 'nextSibling'); + if (elementUtils.compare(prev, next)) { + for (sibling = prev.nextSibling; sibling && sibling !== next;) { + tmpSibling = sibling; + sibling = sibling.nextSibling; + prev.appendChild(tmpSibling); + } + dom.remove(next); + Tools.each(Tools.grep(next.childNodes), function (node) { + prev.appendChild(node); + }); + return prev; + } + } + return next; + }; + var processChildElements = function (node, filter, process) { + each$c(node.childNodes, function (node) { + if (isElementNode(node)) { + if (filter(node)) { + process(node); + } + if (node.hasChildNodes()) { + processChildElements(node, filter, process); + } + } + }); + }; + var hasStyle = function (dom, name) { + return curry(function (name, node) { + return !!(node && getStyle(dom, node, name)); + }, name); + }; + var applyStyle = function (dom, name, value) { + return curry(function (name, value, node) { + dom.setStyle(node, name, value); + if (node.getAttribute('style') === '') { + node.removeAttribute('style'); + } + unwrapEmptySpan(dom, node); + }, name, value); + }; + var unwrapEmptySpan = function (dom, node) { + if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) { + dom.remove(node, true); + } + }; + var processUnderlineAndColor = function (dom, node) { + var textDecoration; + if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) { + textDecoration = getTextDecoration(dom, node.parentNode); + if (dom.getStyle(node, 'color') && textDecoration) { + dom.setStyle(node, 'text-decoration', textDecoration); + } else if (dom.getStyle(node, 'text-decoration') === textDecoration) { + dom.setStyle(node, 'text-decoration', null); + } + } + }; + var mergeUnderlineAndColor = function (dom, format, vars, node) { + if (format.styles.color || format.styles.textDecoration) { + Tools.walk(node, curry(processUnderlineAndColor, dom), 'childNodes'); + processUnderlineAndColor(dom, node); + } + }; + var mergeBackgroundColorAndFontSize = function (dom, format, vars, node) { + if (format.styles && format.styles.backgroundColor) { + processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', replaceVars(format.styles.backgroundColor, vars))); + } + }; + var mergeSubSup = function (dom, format, vars, node) { + if (format.inline === 'sub' || format.inline === 'sup') { + processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'fontSize', '')); + dom.remove(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), true); + } + }; + var mergeSiblings = function (dom, format, vars, node) { + if (node && format.merge_siblings !== false) { + node = mergeSiblingsNodes(dom, getNonWhiteSpaceSibling(node), node); + node = mergeSiblingsNodes(dom, node, getNonWhiteSpaceSibling(node, true)); + } + }; + var clearChildStyles = function (dom, format, node) { + if (format.clear_child_styles) { + var selector = format.links ? '*:not(a)' : '*'; + each$c(dom.select(selector, node), function (node) { + if (isElementNode(node)) { + each$c(format.styles, function (value, name) { + dom.setStyle(node, name, ''); + }); + } + }); + } + }; + var mergeWithChildren = function (editor, formatList, vars, node) { + each$c(formatList, function (format) { + each$c(editor.dom.select(format.inline, node), function (child) { + if (!isElementNode(child)) { + return; + } + removeFormat(editor, format, vars, child, format.exact ? child : null); + }); + clearChildStyles(editor.dom, format, node); + }); + }; + var mergeWithParents = function (editor, format, name, vars, node) { + if (matchNode(editor, node.parentNode, name, vars)) { + if (removeFormat(editor, format, vars, node)) { + return; + } + } + if (format.merge_with_parents) { + editor.dom.getParent(node.parentNode, function (parent) { + if (matchNode(editor, parent, name, vars)) { + removeFormat(editor, format, vars, node); + return true; + } + }); + } + }; + + var createRange$1 = function (sc, so, ec, eo) { + var rng = domGlobals.document.createRange(); + rng.setStart(sc, so); + rng.setEnd(ec, eo); + return rng; + }; + var normalizeBlockSelectionRange = function (rng) { + var startPos = CaretPosition$1.fromRangeStart(rng); + var endPos = CaretPosition$1.fromRangeEnd(rng); + var rootNode = rng.commonAncestorContainer; + return CaretFinder.fromPosition(false, rootNode, endPos).map(function (newEndPos) { + if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) { + return createRange$1(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset()); + } else { + return rng; + } + }).getOr(rng); + }; + var normalize$2 = function (rng) { + return rng.collapsed ? rng : normalizeBlockSelectionRange(rng); + }; + var RangeNormalizer = { normalize: normalize$2 }; + + var each$d = Tools.each; + var isElementNode$1 = function (node) { + return node && node.nodeType === 1 && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node); + }; + var applyFormat = function (ed, name, vars, node) { + var formatList = ed.formatter.get(name); + var format = formatList[0]; + var bookmark, rng; + var isCollapsed = !node && ed.selection.isCollapsed(); + var dom = ed.dom, selection = ed.selection; + var setElementFormat = function (elm, fmt) { + fmt = fmt || format; + if (elm) { + if (fmt.onformat) { + fmt.onformat(elm, fmt, vars, node); + } + each$d(fmt.styles, function (value, name) { + dom.setStyle(elm, name, replaceVars(value, vars)); + }); + if (fmt.styles) { + var styleVal = dom.getAttrib(elm, 'style'); + if (styleVal) { + dom.setAttrib(elm, 'data-mce-style', styleVal); + } + } + each$d(fmt.attributes, function (value, name) { + dom.setAttrib(elm, name, replaceVars(value, vars)); + }); + each$d(fmt.classes, function (value) { + value = replaceVars(value, vars); + if (!dom.hasClass(elm, value)) { + dom.addClass(elm, value); + } + }); + } + }; + var applyNodeStyle = function (formatList, node) { + var found = false; + if (!format.selector) { + return false; + } + each$d(formatList, function (format) { + if ('collapsed' in format && format.collapsed !== isCollapsed) { + return; + } + if (dom.is(node, format.selector) && !isCaretNode(node)) { + setElementFormat(node, format); + found = true; + return false; + } + }); + return found; + }; + var applyRngStyle = function (dom, rng, bookmark, nodeSpecific) { + var newWrappers = []; + var wrapName, wrapElm, contentEditable = true; + wrapName = format.inline || format.block; + wrapElm = dom.create(wrapName); + setElementFormat(wrapElm); + RangeWalk.walk(dom, rng, function (nodes) { + var currentWrapElm; + var process = function (node) { + var hasContentEditableState = false; + var lastContentEditable = contentEditable; + var nodeName = node.nodeName.toLowerCase(); + var parentName = node.parentNode.nodeName.toLowerCase(); + if (NodeType.isElement(node) && dom.getContentEditable(node)) { + lastContentEditable = contentEditable; + contentEditable = dom.getContentEditable(node) === 'true'; + hasContentEditableState = true; + } + if (isEq(nodeName, 'br')) { + currentWrapElm = 0; + if (format.block) { + dom.remove(node); + } + return; + } + if (format.wrapper && matchNode(ed, node, name, vars)) { + currentWrapElm = 0; + return; + } + if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && isTextBlock$1(ed, nodeName) && isValid(ed, parentName, wrapName)) { + node = dom.rename(node, wrapName); + setElementFormat(node); + newWrappers.push(node); + currentWrapElm = 0; + return; + } + if (format.selector) { + var found = applyNodeStyle(formatList, node); + if (!format.inline || found) { + currentWrapElm = 0; + return; + } + } + if (contentEditable && !hasContentEditableState && isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) { + if (!currentWrapElm) { + currentWrapElm = dom.clone(wrapElm, false); + node.parentNode.insertBefore(currentWrapElm, node); + newWrappers.push(currentWrapElm); + } + currentWrapElm.appendChild(node); + } else { + currentWrapElm = 0; + each$d(Tools.grep(node.childNodes), process); + if (hasContentEditableState) { + contentEditable = lastContentEditable; + } + currentWrapElm = 0; + } + }; + each$d(nodes, process); + }); + if (format.links === true) { + each$d(newWrappers, function (node) { + var process = function (node) { + if (node.nodeName === 'A') { + setElementFormat(node, format); + } + each$d(Tools.grep(node.childNodes), process); + }; + process(node); + }); + } + each$d(newWrappers, function (node) { + var childCount; + var getChildCount = function (node) { + var count = 0; + each$d(node.childNodes, function (node) { + if (!isEmptyTextNode(node) && !Bookmarks.isBookmarkNode(node)) { + count++; + } + }); + return count; + }; + var getChildElementNode = function (root) { + var child = false; + each$d(root.childNodes, function (node) { + if (isElementNode$1(node)) { + child = node; + return false; + } + }); + return child; + }; + var mergeStyles = function (node) { + var child, clone; + child = getChildElementNode(node); + if (child && !Bookmarks.isBookmarkNode(child) && matchName(dom, child, format)) { + clone = dom.clone(child, false); + setElementFormat(clone); + dom.replace(clone, node, true); + dom.remove(child, true); + } + return clone || node; + }; + childCount = getChildCount(node); + if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) { + dom.remove(node, true); + return; + } + if (format.inline || format.wrapper) { + if (!format.exact && childCount === 1) { + node = mergeStyles(node); + } + mergeWithChildren(ed, formatList, vars, node); + mergeWithParents(ed, format, name, vars, node); + mergeBackgroundColorAndFontSize(dom, format, vars, node); + mergeSubSup(dom, format, vars, node); + mergeSiblings(dom, format, vars, node); + } + }); + }; + if (dom.getContentEditable(selection.getNode()) === 'false') { + node = selection.getNode(); + for (var i = 0, l = formatList.length; i < l; i++) { + if (formatList[i].ceFalseOverride && dom.is(node, formatList[i].selector)) { + setElementFormat(node, formatList[i]); + return; + } + } + return; + } + if (format) { + if (node) { + if (isNode(node)) { + if (!applyNodeStyle(formatList, node)) { + rng = dom.createRng(); + rng.setStartBefore(node); + rng.setEndAfter(node); + applyRngStyle(dom, expandRng(ed, rng, formatList), null, true); + } + } else { + applyRngStyle(dom, node, null, true); + } + } else { + if (!isCollapsed || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) { + var curSelNode = ed.selection.getNode(); + if (!ed.settings.forced_root_block && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) { + applyFormat(ed, formatList[0].defaultBlock); + } + ed.selection.setRng(RangeNormalizer.normalize(ed.selection.getRng())); + bookmark = GetBookmark.getPersistentBookmark(ed.selection, true); + applyRngStyle(dom, expandRng(ed, selection.getRng(), formatList)); + if (format.styles) { + mergeUnderlineAndColor(dom, format, vars, curSelNode); + } + selection.moveToBookmark(bookmark); + moveStart(dom, selection, selection.getRng()); + ed.nodeChanged(); + } else { + applyCaretFormat(ed, name, vars); + } + } + postProcess$1(name, ed); + } + }; + + var setup$4 = function (registeredFormatListeners, editor) { + var currentFormats = Cell({}); + registeredFormatListeners.set({}); + editor.on('NodeChange', function (e) { + updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get()); + }); + }; + var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) { + var formatsList = keys(currentFormats.get()); + var newFormats = {}; + var matchedFormats = {}; + var parents = filter(getParents$1(editor.dom, elm), function (node) { + return node.nodeType === 1 && !node.getAttribute('data-mce-bogus'); + }); + each$1(formatChangeData, function (data, format) { + Tools.each(parents, function (node) { + if (editor.formatter.matchNode(node, format, {}, data.similar)) { + if (formatsList.indexOf(format) === -1) { + each(data.callbacks, function (callback) { + callback(true, { + node: node, + format: format, + parents: parents + }); + }); + newFormats[format] = data.callbacks; + } + matchedFormats[format] = data.callbacks; + return false; + } + if (matchesUnInheritedFormatSelector(editor, node, format)) { + return false; + } + }); + }); + var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents); + currentFormats.set(__assign(__assign({}, newFormats), remainingFormats)); + }; + var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) { + return bifilter(currentFormats, function (callbacks, format) { + if (!has(matchedFormats, format)) { + each(callbacks, function (callback) { + callback(false, { + node: elm, + format: format, + parents: parents + }); + }); + return false; + } else { + return true; + } + }).t; + }; + var addListeners = function (registeredFormatListeners, formats, callback, similar) { + var formatChangeItems = registeredFormatListeners.get(); + each(formats.split(','), function (format) { + if (!formatChangeItems[format]) { + formatChangeItems[format] = { + similar: similar, + callbacks: [] + }; + } + formatChangeItems[format].callbacks.push(callback); + }); + registeredFormatListeners.set(formatChangeItems); + }; + var removeListeners = function (registeredFormatListeners, formats, callback) { + var formatChangeItems = registeredFormatListeners.get(); + each(formats.split(','), function (format) { + formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) { + return c !== callback; + }); + if (formatChangeItems[format].callbacks.length === 0) { + delete formatChangeItems[format]; + } + }); + registeredFormatListeners.set(formatChangeItems); + }; + var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) { + if (registeredFormatListeners.get() === null) { + setup$4(registeredFormatListeners, editor); + } + addListeners(registeredFormatListeners, formats, callback, similar); + return { + unbind: function () { + return removeListeners(registeredFormatListeners, formats, callback); + } + }; + }; + + var get$9 = function (dom) { + var formats = { + valigntop: [{ + selector: 'td,th', + styles: { verticalAlign: 'top' } + }], + valignmiddle: [{ + selector: 'td,th', + styles: { verticalAlign: 'middle' } + }], + valignbottom: [{ + selector: 'td,th', + styles: { verticalAlign: 'bottom' } + }], + alignleft: [ + { + selector: 'figure.image', + collapsed: false, + classes: 'align-left', + ceFalseOverride: true, + preview: 'font-family font-size' + }, + { + selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', + styles: { textAlign: 'left' }, + inherit: false, + preview: false, + defaultBlock: 'div' + }, + { + selector: 'img,table', + collapsed: false, + styles: { float: 'left' }, + preview: 'font-family font-size' + } + ], + aligncenter: [ + { + selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', + styles: { textAlign: 'center' }, + inherit: false, + preview: 'font-family font-size', + defaultBlock: 'div' + }, + { + selector: 'figure.image', + collapsed: false, + classes: 'align-center', + ceFalseOverride: true, + preview: 'font-family font-size' + }, + { + selector: 'img', + collapsed: false, + styles: { + display: 'block', + marginLeft: 'auto', + marginRight: 'auto' + }, + preview: false + }, + { + selector: 'table', + collapsed: false, + styles: { + marginLeft: 'auto', + marginRight: 'auto' + }, + preview: 'font-family font-size' + } + ], + alignright: [ + { + selector: 'figure.image', + collapsed: false, + classes: 'align-right', + ceFalseOverride: true, + preview: 'font-family font-size' + }, + { + selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', + styles: { textAlign: 'right' }, + inherit: false, + preview: 'font-family font-size', + defaultBlock: 'div' + }, + { + selector: 'img,table', + collapsed: false, + styles: { float: 'right' }, + preview: 'font-family font-size' + } + ], + alignjustify: [{ + selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', + styles: { textAlign: 'justify' }, + inherit: false, + defaultBlock: 'div', + preview: 'font-family font-size' + }], + bold: [ + { + inline: 'strong', + remove: 'all' + }, + { + inline: 'span', + styles: { fontWeight: 'bold' } + }, + { + inline: 'b', + remove: 'all' + } + ], + italic: [ + { + inline: 'em', + remove: 'all' + }, + { + inline: 'span', + styles: { fontStyle: 'italic' } + }, + { + inline: 'i', + remove: 'all' + } + ], + underline: [ + { + inline: 'span', + styles: { textDecoration: 'underline' }, + exact: true + }, + { + inline: 'u', + remove: 'all' + } + ], + strikethrough: [ + { + inline: 'span', + styles: { textDecoration: 'line-through' }, + exact: true + }, + { + inline: 'strike', + remove: 'all' + } + ], + forecolor: { + inline: 'span', + styles: { color: '%value' }, + links: true, + remove_similar: true, + clear_child_styles: true + }, + hilitecolor: { + inline: 'span', + styles: { backgroundColor: '%value' }, + links: true, + remove_similar: true, + clear_child_styles: true + }, + fontname: { + inline: 'span', + toggle: false, + styles: { fontFamily: '%value' }, + clear_child_styles: true + }, + fontsize: { + inline: 'span', + toggle: false, + styles: { fontSize: '%value' }, + clear_child_styles: true + }, + fontsize_class: { + inline: 'span', + attributes: { class: '%value' } + }, + blockquote: { + block: 'blockquote', + wrapper: true, + remove: 'all' + }, + subscript: { inline: 'sub' }, + superscript: { inline: 'sup' }, + code: { inline: 'code' }, + link: { + inline: 'a', + selector: 'a', + remove: 'all', + split: true, + deep: true, + onmatch: function () { + return true; + }, + onformat: function (elm, fmt, vars) { + Tools.each(vars, function (value, key) { + dom.setAttrib(elm, key, value); + }); + } + }, + removeformat: [ + { + selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins', + remove: 'all', + split: true, + expand: false, + block_expand: true, + deep: true + }, + { + selector: 'span', + attributes: [ + 'style', + 'class' + ], + remove: 'empty', + split: true, + expand: false, + deep: true + }, + { + selector: '*', + attributes: [ + 'style', + 'class' + ], + split: false, + expand: false, + deep: true + } + ] + }; + Tools.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\s/), function (name) { + formats[name] = { + block: name, + remove: 'all' + }; + }); + return formats; + }; + var DefaultFormats = { get: get$9 }; + + function FormatRegistry(editor) { + var formats = {}; + var get = function (name) { + return name ? formats[name] : formats; + }; + var has$1 = function (name) { + return has(formats, name); + }; + var register = function (name, format) { + if (name) { + if (typeof name !== 'string') { + Tools.each(name, function (format, name) { + register(name, format); + }); + } else { + if (!isArray(format)) { + format = [format]; + } + Tools.each(format, function (format) { + if (typeof format.deep === 'undefined') { + format.deep = !format.selector; + } + if (typeof format.split === 'undefined') { + format.split = !format.selector || format.inline; + } + if (typeof format.remove === 'undefined' && format.selector && !format.inline) { + format.remove = 'none'; + } + if (format.selector && format.inline) { + format.mixed = true; + format.block_expand = true; + } + if (typeof format.classes === 'string') { + format.classes = format.classes.split(/\s+/); + } + }); + formats[name] = format; + } + } + }; + var unregister = function (name) { + if (name && formats[name]) { + delete formats[name]; + } + return formats; + }; + register(DefaultFormats.get(editor.dom)); + register(editor.settings.formats); + return { + get: get, + has: has$1, + register: register, + unregister: unregister + }; + } + + var each$e = Tools.each; + var dom = DOMUtils$1.DOM; + var parsedSelectorToHtml = function (ancestry, editor) { + var elm, item, fragment; + var schema = editor && editor.schema || Schema({}); + var decorate = function (elm, item) { + if (item.classes.length) { + dom.addClass(elm, item.classes.join(' ')); + } + dom.setAttribs(elm, item.attrs); + }; + var createElement = function (sItem) { + var elm; + item = typeof sItem === 'string' ? { + name: sItem, + classes: [], + attrs: {} + } : sItem; + elm = dom.create(item.name); + decorate(elm, item); + return elm; + }; + var getRequiredParent = function (elm, candidate) { + var name = typeof elm !== 'string' ? elm.nodeName.toLowerCase() : elm; + var elmRule = schema.getElementRule(name); + var parentsRequired = elmRule && elmRule.parentsRequired; + if (parentsRequired && parentsRequired.length) { + return candidate && Tools.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0]; + } else { + return false; + } + }; + var wrapInHtml = function (elm, ancestry, siblings) { + var parent, parentCandidate, parentRequired; + var ancestor = ancestry.length > 0 && ancestry[0]; + var ancestorName = ancestor && ancestor.name; + parentRequired = getRequiredParent(elm, ancestorName); + if (parentRequired) { + if (ancestorName === parentRequired) { + parentCandidate = ancestry[0]; + ancestry = ancestry.slice(1); + } else { + parentCandidate = parentRequired; + } + } else if (ancestor) { + parentCandidate = ancestry[0]; + ancestry = ancestry.slice(1); + } else if (!siblings) { + return elm; + } + if (parentCandidate) { + parent = createElement(parentCandidate); + parent.appendChild(elm); + } + if (siblings) { + if (!parent) { + parent = dom.create('div'); + parent.appendChild(elm); + } + Tools.each(siblings, function (sibling) { + var siblingElm = createElement(sibling); + parent.insertBefore(siblingElm, elm); + }); + } + return wrapInHtml(parent, ancestry, parentCandidate && parentCandidate.siblings); + }; + if (ancestry && ancestry.length) { + item = ancestry[0]; + elm = createElement(item); + fragment = dom.create('div'); + fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), item.siblings)); + return fragment; + } else { + return ''; + } + }; + var parseSelectorItem = function (item) { + var tagName; + var obj = { + classes: [], + attrs: {} + }; + item = obj.selector = Tools.trim(item); + if (item !== '*') { + tagName = item.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function ($0, $1, $2, $3, $4) { + switch ($1) { + case '#': + obj.attrs.id = $2; + break; + case '.': + obj.classes.push($2); + break; + case ':': + if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) { + obj.attrs[$2] = $2; + } + break; + } + if ($3 === '[') { + var m = $4.match(/([\w\-]+)(?:\=\"([^\"]+))?/); + if (m) { + obj.attrs[m[1]] = m[2]; + } + } + return ''; + }); + } + obj.name = tagName || 'div'; + return obj; + }; + var parseSelector = function (selector) { + if (!selector || typeof selector !== 'string') { + return []; + } + selector = selector.split(/\s*,\s*/)[0]; + selector = selector.replace(/\s*(~\+|~|\+|>)\s*/g, '$1'); + return Tools.map(selector.split(/(?:>|\s+(?![^\[\]]+\]))/), function (item) { + var siblings = Tools.map(item.split(/(?:~\+|~|\+)/), parseSelectorItem); + var obj = siblings.pop(); + if (siblings.length) { + obj.siblings = siblings; + } + return obj; + }).reverse(); + }; + var getCssText = function (editor, format) { + var name, previewFrag, previewElm, items; + var previewCss = '', parentFontSize, previewStyles; + previewStyles = editor.settings.preview_styles; + if (previewStyles === false) { + return ''; + } + if (typeof previewStyles !== 'string') { + previewStyles = 'font-family font-size font-weight font-style text-decoration ' + 'text-transform color background-color border border-radius outline text-shadow'; + } + var removeVars = function (val) { + return val.replace(/%(\w+)/g, ''); + }; + if (typeof format === 'string') { + format = editor.formatter.get(format); + if (!format) { + return; + } + format = format[0]; + } + if ('preview' in format) { + previewStyles = format.preview; + if (previewStyles === false) { + return ''; + } + } + name = format.block || format.inline || 'span'; + items = parseSelector(format.selector); + if (items.length) { + if (!items[0].name) { + items[0].name = name; + } + name = format.selector; + previewFrag = parsedSelectorToHtml(items, editor); + } else { + previewFrag = parsedSelectorToHtml([name], editor); + } + previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild; + each$e(format.styles, function (value, name) { + value = removeVars(value); + if (value) { + dom.setStyle(previewElm, name, value); + } + }); + each$e(format.attributes, function (value, name) { + value = removeVars(value); + if (value) { + dom.setAttrib(previewElm, name, value); + } + }); + each$e(format.classes, function (value) { + value = removeVars(value); + if (!dom.hasClass(previewElm, value)) { + dom.addClass(previewElm, value); + } + }); + editor.fire('PreviewFormats'); + dom.setStyles(previewFrag, { + position: 'absolute', + left: -65535 + }); + editor.getBody().appendChild(previewFrag); + parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true); + parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; + each$e(previewStyles.split(' '), function (name) { + var value = dom.getStyle(previewElm, name, true); + if (name === 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { + value = dom.getStyle(editor.getBody(), name, true); + if (dom.toHex(value).toLowerCase() === '#ffffff') { + return; + } + } + if (name === 'color') { + if (dom.toHex(value).toLowerCase() === '#000000') { + return; + } + } + if (name === 'font-size') { + if (/em|%$/.test(value)) { + if (parentFontSize === 0) { + return; + } + var numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1); + value = numValue * parentFontSize + 'px'; + } + } + if (name === 'border' && value) { + previewCss += 'padding:0 2px;'; + } + previewCss += name + ':' + value + ';'; + }); + editor.fire('AfterPreviewFormats'); + dom.remove(previewFrag); + return previewCss; + }; + + var toggle = function (editor, formats, name, vars, node) { + var fmt = formats.get(name); + if (match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) { + remove$7(editor, name, vars, node); + } else { + applyFormat(editor, name, vars, node); + } + }; + + var setup$5 = function (editor) { + editor.addShortcut('meta+b', '', 'Bold'); + editor.addShortcut('meta+i', '', 'Italic'); + editor.addShortcut('meta+u', '', 'Underline'); + for (var i = 1; i <= 6; i++) { + editor.addShortcut('access+' + i, '', [ + 'FormatBlock', + false, + 'h' + i + ]); + } + editor.addShortcut('access+7', '', [ + 'FormatBlock', + false, + 'p' + ]); + editor.addShortcut('access+8', '', [ + 'FormatBlock', + false, + 'div' + ]); + editor.addShortcut('access+9', '', [ + 'FormatBlock', + false, + 'address' + ]); + }; + var FormatShortcuts = { setup: setup$5 }; + + var Formatter = function (editor) { + var formats = FormatRegistry(editor); + var formatChangeState = Cell(null); + FormatShortcuts.setup(editor); + setup$3(editor); + return { + get: formats.get, + has: formats.has, + register: formats.register, + unregister: formats.unregister, + apply: curry(applyFormat, editor), + remove: curry(remove$7, editor), + toggle: curry(toggle, editor, formats), + match: curry(match, editor), + matchAll: curry(matchAll, editor), + matchNode: curry(matchNode, editor), + canApply: curry(canApply, editor), + formatChanged: curry(formatChanged, editor, formatChangeState), + getCssText: curry(getCssText, editor) + }; + }; + + var KEEP = 0, INSERT = 1, DELETE = 2; + var diff = function (left, right) { + var size = left.length + right.length + 2; + var vDown = new Array(size); + var vUp = new Array(size); + var snake = function (start, end, diag) { + return { + start: start, + end: end, + diag: diag + }; + }; + var buildScript = function (start1, end1, start2, end2, script) { + var middle = getMiddleSnake(start1, end1, start2, end2); + if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) { + var i = start1; + var j = start2; + while (i < end1 || j < end2) { + if (i < end1 && j < end2 && left[i] === right[j]) { + script.push([ + KEEP, + left[i] + ]); + ++i; + ++j; + } else { + if (end1 - start1 > end2 - start2) { + script.push([ + DELETE, + left[i] + ]); + ++i; + } else { + script.push([ + INSERT, + right[j] + ]); + ++j; + } + } + } + } else { + buildScript(start1, middle.start, start2, middle.start - middle.diag, script); + for (var i2 = middle.start; i2 < middle.end; ++i2) { + script.push([ + KEEP, + left[i2] + ]); + } + buildScript(middle.end, end1, middle.end - middle.diag, end2, script); + } + }; + var buildSnake = function (start, diag, end1, end2) { + var end = start; + while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) { + ++end; + } + return snake(start, end, diag); + }; + var getMiddleSnake = function (start1, end1, start2, end2) { + var m = end1 - start1; + var n = end2 - start2; + if (m === 0 || n === 0) { + return null; + } + var delta = m - n; + var sum = n + m; + var offset = (sum % 2 === 0 ? sum : sum + 1) / 2; + vDown[1 + offset] = start1; + vUp[1 + offset] = end1 + 1; + var d, k, i, x, y; + for (d = 0; d <= offset; ++d) { + for (k = -d; k <= d; k += 2) { + i = k + offset; + if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) { + vDown[i] = vDown[i + 1]; + } else { + vDown[i] = vDown[i - 1] + 1; + } + x = vDown[i]; + y = x - start1 + start2 - k; + while (x < end1 && y < end2 && left[x] === right[y]) { + vDown[i] = ++x; + ++y; + } + if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) { + if (vUp[i - delta] <= vDown[i]) { + return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2); + } + } + } + for (k = delta - d; k <= delta + d; k += 2) { + i = k + offset - delta; + if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) { + vUp[i] = vUp[i + 1] - 1; + } else { + vUp[i] = vUp[i - 1]; + } + x = vUp[i] - 1; + y = x - start1 + start2 - k; + while (x >= start1 && y >= start2 && left[x] === right[y]) { + vUp[i] = x--; + y--; + } + if (delta % 2 === 0 && -d <= k && k <= d) { + if (vUp[i] <= vDown[i + delta]) { + return buildSnake(vUp[i], k + start1 - start2, end1, end2); + } + } + } + } + }; + var script = []; + buildScript(0, left.length, 0, right.length, script); + return script; + }; + var Diff = { + KEEP: KEEP, + DELETE: DELETE, + INSERT: INSERT, + diff: diff + }; + + var getOuterHtml = function (elm) { + if (NodeType.isElement(elm)) { + return elm.outerHTML; + } else if (NodeType.isText(elm)) { + return Entities.encodeRaw(elm.data, false); + } else if (NodeType.isComment(elm)) { + return ''; + } + return ''; + }; + var createFragment$1 = function (html) { + var frag, node, container; + container = domGlobals.document.createElement('div'); + frag = domGlobals.document.createDocumentFragment(); + if (html) { + container.innerHTML = html; + } + while (node = container.firstChild) { + frag.appendChild(node); + } + return frag; + }; + var insertAt = function (elm, html, index) { + var fragment = createFragment$1(html); + if (elm.hasChildNodes() && index < elm.childNodes.length) { + var target = elm.childNodes[index]; + target.parentNode.insertBefore(fragment, target); + } else { + elm.appendChild(fragment); + } + }; + var removeAt = function (elm, index) { + if (elm.hasChildNodes() && index < elm.childNodes.length) { + var target = elm.childNodes[index]; + target.parentNode.removeChild(target); + } + }; + var applyDiff = function (diff, elm) { + var index = 0; + each(diff, function (action) { + if (action[0] === Diff.KEEP) { + index++; + } else if (action[0] === Diff.INSERT) { + insertAt(elm, action[1], index); + index++; + } else if (action[0] === Diff.DELETE) { + removeAt(elm, index); + } + }); + }; + var read$2 = function (elm) { + return filter(map(from$1(elm.childNodes), getOuterHtml), function (item) { + return item.length > 0; + }); + }; + var write = function (fragments, elm) { + var currentFragments = map(from$1(elm.childNodes), getOuterHtml); + applyDiff(Diff.diff(currentFragments, fragments), elm); + return elm; + }; + var Fragments = { + read: read$2, + write: write + }; + + var undoLevelDocument = Cell(Option.none()); + var lazyTempDocument = function () { + return undoLevelDocument.get().getOrThunk(function () { + var doc = domGlobals.document.implementation.createHTMLDocument('undo'); + undoLevelDocument.set(Option.some(doc)); + return doc; + }); + }; + var hasIframes = function (html) { + return html.indexOf('') !== -1; + }; + var createFragmentedLevel = function (fragments) { + return { + type: 'fragmented', + fragments: fragments, + content: '', + bookmark: null, + beforeBookmark: null + }; + }; + var createCompleteLevel = function (content) { + return { + type: 'complete', + fragments: null, + content: content, + bookmark: null, + beforeBookmark: null + }; + }; + var createFromEditor = function (editor) { + var fragments, content, trimmedFragments; + fragments = Fragments.read(editor.getBody()); + trimmedFragments = bind(fragments, function (html) { + var trimmed = TrimHtml.trimInternal(editor.serializer, html); + return trimmed.length > 0 ? [trimmed] : []; + }); + content = trimmedFragments.join(''); + return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content); + }; + var applyToEditor = function (editor, level, before) { + if (level.type === 'fragmented') { + Fragments.write(level.fragments, editor.getBody()); + } else { + editor.setContent(level.content, { format: 'raw' }); + } + editor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark); + }; + var getLevelContent = function (level) { + return level.type === 'fragmented' ? level.fragments.join('') : level.content; + }; + var getCleanLevelContent = function (level) { + var elm = Element.fromTag('body', lazyTempDocument()); + set$1(elm, getLevelContent(level)); + each(descendants$1(elm, '*[data-mce-bogus]'), unwrap); + return get$6(elm); + }; + var hasEqualContent = function (level1, level2) { + return getLevelContent(level1) === getLevelContent(level2); + }; + var hasEqualCleanedContent = function (level1, level2) { + return getCleanLevelContent(level1) === getCleanLevelContent(level2); + }; + var isEq$4 = function (level1, level2) { + if (!level1 || !level2) { + return false; + } else if (hasEqualContent(level1, level2)) { + return true; + } else { + return hasEqualCleanedContent(level1, level2); + } + }; + var Levels = { + createFragmentedLevel: createFragmentedLevel, + createCompleteLevel: createCompleteLevel, + createFromEditor: createFromEditor, + applyToEditor: applyToEditor, + isEq: isEq$4 + }; + + var isUnlocked = function (locks) { + return locks.get() === 0; + }; + + var setTyping = function (undoManager, typing, locks) { + if (isUnlocked(locks)) { + undoManager.typing = typing; + } + }; + var endTyping = function (undoManager, locks) { + if (undoManager.typing) { + setTyping(undoManager, false, locks); + undoManager.add(); + } + }; + var endTypingLevelIgnoreLocks = function (undoManager) { + if (undoManager.typing) { + undoManager.typing = false; + undoManager.add(); + } + }; + + var beforeChange = function (editor, locks, beforeBookmark) { + if (isUnlocked(locks)) { + beforeBookmark.set(Option.some(GetBookmark.getUndoBookmark(editor.selection))); + } + }; + var addUndoLevel = function (editor, undoManager, index, locks, beforeBookmark, level, event) { + var settings = editor.settings; + var currentLevel = Levels.createFromEditor(editor); + level = level || {}; + level = Tools.extend(level, currentLevel); + if (isUnlocked(locks) === false || editor.removed) { + return null; + } + var lastLevel = undoManager.data[index.get()]; + if (editor.fire('BeforeAddUndo', { + level: level, + lastLevel: lastLevel, + originalEvent: event + }).isDefaultPrevented()) { + return null; + } + if (lastLevel && Levels.isEq(lastLevel, level)) { + return null; + } + if (undoManager.data[index.get()]) { + beforeBookmark.get().each(function (bm) { + undoManager.data[index.get()].beforeBookmark = bm; + }); + } + if (settings.custom_undo_redo_levels) { + if (undoManager.data.length > settings.custom_undo_redo_levels) { + for (var i = 0; i < undoManager.data.length - 1; i++) { + undoManager.data[i] = undoManager.data[i + 1]; + } + undoManager.data.length--; + index.set(undoManager.data.length); + } + } + level.bookmark = GetBookmark.getUndoBookmark(editor.selection); + if (index.get() < undoManager.data.length - 1) { + undoManager.data.length = index.get() + 1; + } + undoManager.data.push(level); + index.set(undoManager.data.length - 1); + var args = { + level: level, + lastLevel: lastLevel, + originalEvent: event + }; + editor.fire('AddUndo', args); + if (index.get() > 0) { + editor.setDirty(true); + editor.fire('change', args); + } + return level; + }; + var clear = function (editor, undoManager, index) { + undoManager.data = []; + index.set(0); + undoManager.typing = false; + editor.fire('ClearUndos'); + }; + var extra = function (editor, undoManager, index, callback1, callback2) { + if (undoManager.transact(callback1)) { + var bookmark = undoManager.data[index.get()].bookmark; + var lastLevel = undoManager.data[index.get() - 1]; + Levels.applyToEditor(editor, lastLevel, true); + if (undoManager.transact(callback2)) { + undoManager.data[index.get() - 1].beforeBookmark = bookmark; + } + } + }; + var redo = function (editor, index, data) { + var level; + if (index.get() < data.length - 1) { + index.set(index.get() + 1); + level = data[index.get()]; + Levels.applyToEditor(editor, level, false); + editor.setDirty(true); + editor.fire('Redo', { level: level }); + } + return level; + }; + var undo = function (editor, undoManager, locks, index) { + var level; + if (undoManager.typing) { + undoManager.add(); + undoManager.typing = false; + setTyping(undoManager, false, locks); + } + if (index.get() > 0) { + index.set(index.get() - 1); + level = undoManager.data[index.get()]; + Levels.applyToEditor(editor, level, true); + editor.setDirty(true); + editor.fire('Undo', { level: level }); + } + return level; + }; + var reset = function (undoManager) { + undoManager.clear(); + undoManager.add(); + }; + var hasUndo = function (editor, undoManager, index) { + return index.get() > 0 || undoManager.typing && undoManager.data[0] && !Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]); + }; + var hasRedo = function (undoManager, index) { + return index.get() < undoManager.data.length - 1 && !undoManager.typing; + }; + var transact = function (undoManager, locks, callback) { + endTyping(undoManager, locks); + undoManager.beforeChange(); + undoManager.ignore(callback); + return undoManager.add(); + }; + var ignore = function (locks, callback) { + try { + locks.set(locks.get() + 1); + callback(); + } finally { + locks.set(locks.get() - 1); + } + }; + + var registerEvents$1 = function (editor, undoManager, locks) { + var isFirstTypedCharacter = Cell(false); + var addNonTypingUndoLevel = function (e) { + setTyping(undoManager, false, locks); + undoManager.add({}, e); + }; + editor.on('init', function () { + undoManager.add(); + }); + editor.on('BeforeExecCommand', function (e) { + var cmd = e.command; + if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') { + endTyping(undoManager, locks); + undoManager.beforeChange(); + } + }); + editor.on('ExecCommand', function (e) { + var cmd = e.command; + if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') { + addNonTypingUndoLevel(e); + } + }); + editor.on('ObjectResizeStart cut', function () { + undoManager.beforeChange(); + }); + editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel); + editor.on('dragend', addNonTypingUndoLevel); + editor.on('keyup', function (e) { + var keyCode = e.keyCode; + if (e.isDefaultPrevented()) { + return; + } + if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) { + addNonTypingUndoLevel(); + editor.nodeChanged(); + } + if (keyCode === 46 || keyCode === 8) { + editor.nodeChanged(); + } + if (isFirstTypedCharacter.get() && undoManager.typing && Levels.isEq(Levels.createFromEditor(editor), undoManager.data[0]) === false) { + if (editor.isDirty() === false) { + editor.setDirty(true); + editor.fire('change', { + level: undoManager.data[0], + lastLevel: null + }); + } + editor.fire('TypingUndo'); + isFirstTypedCharacter.set(false); + editor.nodeChanged(); + } + }); + editor.on('keydown', function (e) { + var keyCode = e.keyCode; + if (e.isDefaultPrevented()) { + return; + } + if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) { + if (undoManager.typing) { + addNonTypingUndoLevel(e); + } + return; + } + var modKey = e.ctrlKey && !e.altKey || e.metaKey; + if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) { + undoManager.beforeChange(); + setTyping(undoManager, true, locks); + undoManager.add({}, e); + isFirstTypedCharacter.set(true); + } + }); + editor.on('mousedown', function (e) { + if (undoManager.typing) { + addNonTypingUndoLevel(e); + } + }); + var isInsertReplacementText = function (event) { + return event.inputType === 'insertReplacementText'; + }; + var isInsertTextDataNull = function (event) { + return event.inputType === 'insertText' && event.data === null; + }; + editor.on('input', function (e) { + if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e))) { + addNonTypingUndoLevel(e); + } + }); + editor.on('AddUndo Undo Redo ClearUndos', function (e) { + if (!e.isDefaultPrevented()) { + editor.nodeChanged(); + } + }); + }; + var addKeyboardShortcuts = function (editor) { + editor.addShortcut('meta+z', '', 'Undo'); + editor.addShortcut('meta+y,meta+shift+z', '', 'Redo'); + }; + + var UndoManager = function (editor) { + var beforeBookmark = Cell(Option.none()); + var locks = Cell(0); + var index = Cell(0); + var undoManager = { + data: [], + typing: false, + beforeChange: function () { + beforeChange(editor, locks, beforeBookmark); + }, + add: function (level, event) { + return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event); + }, + undo: function () { + return undo(editor, undoManager, locks, index); + }, + redo: function () { + return redo(editor, index, undoManager.data); + }, + clear: function () { + clear(editor, undoManager, index); + }, + reset: function () { + reset(undoManager); + }, + hasUndo: function () { + return hasUndo(editor, undoManager, index); + }, + hasRedo: function () { + return hasRedo(undoManager, index); + }, + transact: function (callback) { + return transact(undoManager, locks, callback); + }, + ignore: function (callback) { + ignore(locks, callback); + }, + extra: function (callback1, callback2) { + extra(editor, undoManager, index, callback1, callback2); + } + }; + registerEvents$1(editor, undoManager, locks); + addKeyboardShortcuts(editor); + return undoManager; + }; + + var nonTypingKeycodes = [ + 9, + 27, + VK.HOME, + VK.END, + 19, + 20, + 44, + 144, + 145, + 33, + 34, + 45, + 16, + 17, + 18, + 91, + 92, + 93, + VK.DOWN, + VK.UP, + VK.LEFT, + VK.RIGHT + ].concat(Env.browser.isFirefox() ? [224] : []); + var placeholderAttr = 'data-mce-placeholder'; + var isKeyboardEvent = function (e) { + return e.type === 'keydown' || e.type === 'keyup'; + }; + var isDeleteEvent = function (e) { + var keyCode = e.keyCode; + return keyCode === VK.BACKSPACE || keyCode === VK.DELETE; + }; + var isNonTypingKeyboardEvent = function (e) { + if (isKeyboardEvent(e)) { + var keyCode = e.keyCode; + return !isDeleteEvent(e) && (VK.metaKeyPressed(e) || e.altKey || keyCode >= 112 && keyCode <= 123 || contains(nonTypingKeycodes, keyCode)); + } else { + return false; + } + }; + var isTypingKeyboardEvent = function (e) { + return isKeyboardEvent(e) && !(isDeleteEvent(e) || e.type === 'keyup' && e.keyCode === 229); + }; + var isVisuallyEmpty = function (dom, rootElm, forcedRootBlock) { + if (Empty.isEmpty(Element.fromDom(rootElm), false)) { + var isForcedRootBlockFalse = forcedRootBlock === ''; + var firstElement = rootElm.firstElementChild; + if (!firstElement) { + return true; + } else if (dom.getStyle(rootElm.firstElementChild, 'padding-left') || dom.getStyle(rootElm.firstElementChild, 'padding-right')) { + return false; + } else { + return isForcedRootBlockFalse ? !dom.isBlock(firstElement) : forcedRootBlock === firstElement.nodeName.toLowerCase(); + } + } else { + return false; + } + }; + var setup$6 = function (editor) { + var dom = editor.dom; + var rootBlock = Settings.getForcedRootBlock(editor); + var placeholder = Settings.getPlaceholder(editor); + var updatePlaceholder = function (e, initial) { + if (isNonTypingKeyboardEvent(e)) { + return; + } + var body = editor.getBody(); + var showPlaceholder = isTypingKeyboardEvent(e) ? false : isVisuallyEmpty(dom, body, rootBlock); + var isPlaceholderShown = dom.getAttrib(body, placeholderAttr) !== ''; + if (isPlaceholderShown !== showPlaceholder || initial) { + dom.setAttrib(body, placeholderAttr, showPlaceholder ? placeholder : null); + dom.setAttrib(body, 'aria-placeholder', showPlaceholder ? placeholder : null); + firePlaceholderToggle(editor, showPlaceholder); + editor.on(showPlaceholder ? 'keydown' : 'keyup', updatePlaceholder); + editor.off(showPlaceholder ? 'keyup' : 'keydown', updatePlaceholder); + } + }; + if (placeholder) { + editor.on('init', function (e) { + updatePlaceholder(e, true); + editor.on('change SetContent ExecCommand', updatePlaceholder); + editor.on('remove', function () { + var body = editor.getBody(); + dom.setAttrib(body, placeholderAttr, null); + dom.setAttrib(body, 'aria-placeholder', null); + }); + }); + } + }; + + var SIGNIFICANT_MOVE = 5; + var LONGPRESS_DELAY = 400; + var getTouch = function (event) { + if (event.touches === undefined || event.touches.length !== 1) { + return Option.none(); + } + return Option.some(event.touches[0]); + }; + var isFarEnough = function (touch, data) { + var distX = Math.abs(touch.clientX - data.x()); + var distY = Math.abs(touch.clientY - data.y()); + return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE; + }; + var setup$7 = function (editor) { + var startData = Cell(Option.none()); + var longpressFired = Cell(false); + var debounceLongpress = last$2(function (e) { + editor.fire('longpress', __assign(__assign({}, e), { type: 'longpress' })); + longpressFired.set(true); + }, LONGPRESS_DELAY); + editor.on('touchstart', function (e) { + getTouch(e).each(function (touch) { + debounceLongpress.cancel(); + var data = { + x: constant(touch.clientX), + y: constant(touch.clientY), + target: constant(e.target) + }; + debounceLongpress.throttle(e); + longpressFired.set(false); + startData.set(Option.some(data)); + }); + }, true); + editor.on('touchmove', function (e) { + debounceLongpress.cancel(); + getTouch(e).each(function (touch) { + startData.get().each(function (data) { + if (isFarEnough(touch, data)) { + startData.set(Option.none()); + longpressFired.set(false); + editor.fire('longpresscancel'); + } + }); + }); + }, true); + editor.on('touchend touchcancel', function (e) { + debounceLongpress.cancel(); + if (e.type === 'touchcancel') { + return; + } + startData.get().filter(function (data) { + return data.target().isEqualNode(e.target); + }).each(function () { + if (longpressFired.get()) { + e.preventDefault(); + } else { + editor.fire('tap', __assign(__assign({}, e), { type: 'tap' })); + } + }); + }, true); + }; + var TouchEvents = { setup: setup$7 }; + + var isBlockElement = function (blockElements, node) { + return blockElements.hasOwnProperty(node.nodeName); + }; + var isValidTarget = function (blockElements, node) { + if (NodeType.isText(node)) { + return true; + } else if (NodeType.isElement(node)) { + return !isBlockElement(blockElements, node) && !Bookmarks.isBookmarkNode(node); + } else { + return false; + } + }; + var hasBlockParent = function (blockElements, root, node) { + return exists(Parents.parents(Element.fromDom(node), Element.fromDom(root)), function (elm) { + return isBlockElement(blockElements, elm.dom()); + }); + }; + var shouldRemoveTextNode = function (blockElements, node) { + if (NodeType.isText(node)) { + if (node.nodeValue.length === 0) { + return true; + } else if (/^\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) { + return true; + } + } + return false; + }; + var addRootBlocks = function (editor) { + var dom = editor.dom, selection = editor.selection; + var schema = editor.schema, blockElements = schema.getBlockElements(); + var node = selection.getStart(); + var rootNode = editor.getBody(); + var rng; + var startContainer, startOffset, endContainer, endOffset, rootBlockNode; + var tempNode, wrapped, restoreSelection; + var rootNodeName; + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (!node || !NodeType.isElement(node) || !forcedRootBlock) { + return; + } + rootNodeName = rootNode.nodeName.toLowerCase(); + if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, node)) { + return; + } + rng = selection.getRng(); + startContainer = rng.startContainer; + startOffset = rng.startOffset; + endContainer = rng.endContainer; + endOffset = rng.endOffset; + restoreSelection = EditorFocus.hasFocus(editor); + node = rootNode.firstChild; + while (node) { + if (isValidTarget(blockElements, node)) { + if (shouldRemoveTextNode(blockElements, node)) { + tempNode = node; + node = node.nextSibling; + dom.remove(tempNode); + continue; + } + if (!rootBlockNode) { + rootBlockNode = dom.create(forcedRootBlock, Settings.getForcedRootBlockAttrs(editor)); + node.parentNode.insertBefore(rootBlockNode, node); + wrapped = true; + } + tempNode = node; + node = node.nextSibling; + rootBlockNode.appendChild(tempNode); + } else { + rootBlockNode = null; + node = node.nextSibling; + } + } + if (wrapped && restoreSelection) { + rng.setStart(startContainer, startOffset); + rng.setEnd(endContainer, endOffset); + selection.setRng(rng); + editor.nodeChanged(); + } + }; + var setup$8 = function (editor) { + if (Settings.getForcedRootBlock(editor)) { + editor.on('NodeChange', curry(addRootBlocks, editor)); + } + }; + var ForceBlocks = { setup: setup$8 }; + + var isText$8 = NodeType.isText; + var startsWithCaretContainer$1 = function (node) { + return isText$8(node) && node.data[0] === Zwsp.ZWSP; + }; + var endsWithCaretContainer$1 = function (node) { + return isText$8(node) && node.data[node.data.length - 1] === Zwsp.ZWSP; + }; + var createZwsp = function (node) { + return node.ownerDocument.createTextNode(Zwsp.ZWSP); + }; + var insertBefore = function (node) { + if (isText$8(node.previousSibling)) { + if (endsWithCaretContainer$1(node.previousSibling)) { + return node.previousSibling; + } else { + node.previousSibling.appendData(Zwsp.ZWSP); + return node.previousSibling; + } + } else if (isText$8(node)) { + if (startsWithCaretContainer$1(node)) { + return node; + } else { + node.insertData(0, Zwsp.ZWSP); + return node; + } + } else { + var newNode = createZwsp(node); + node.parentNode.insertBefore(newNode, node); + return newNode; + } + }; + var insertAfter = function (node) { + if (isText$8(node.nextSibling)) { + if (startsWithCaretContainer$1(node.nextSibling)) { + return node.nextSibling; + } else { + node.nextSibling.insertData(0, Zwsp.ZWSP); + return node.nextSibling; + } + } else if (isText$8(node)) { + if (endsWithCaretContainer$1(node)) { + return node; + } else { + node.appendData(Zwsp.ZWSP); + return node; + } + } else { + var newNode = createZwsp(node); + if (node.nextSibling) { + node.parentNode.insertBefore(newNode, node.nextSibling); + } else { + node.parentNode.appendChild(newNode); + } + return newNode; + } + }; + var insertInline$1 = function (before, node) { + return before ? insertBefore(node) : insertAfter(node); + }; + var insertInlineBefore = curry(insertInline$1, true); + var insertInlineAfter = curry(insertInline$1, false); + + var insertInlinePos = function (pos, before) { + if (NodeType.isText(pos.container())) { + return insertInline$1(before, pos.container()); + } else { + return insertInline$1(before, pos.getNode()); + } + }; + var isPosCaretContainer = function (pos, caret) { + var caretNode = caret.get(); + return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode); + }; + var renderCaret = function (caret, location) { + return location.fold(function (element) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlineBefore(element); + caret.set(text); + return Option.some(CaretPosition$1(text, text.length - 1)); + }, function (element) { + return CaretFinder.firstPositionIn(element).map(function (pos) { + if (!isPosCaretContainer(pos, caret)) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlinePos(pos, true); + caret.set(text); + return CaretPosition$1(text, 1); + } else { + return CaretPosition$1(caret.get(), 1); + } + }); + }, function (element) { + return CaretFinder.lastPositionIn(element).map(function (pos) { + if (!isPosCaretContainer(pos, caret)) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlinePos(pos, false); + caret.set(text); + return CaretPosition$1(text, text.length - 1); + } else { + return CaretPosition$1(caret.get(), caret.get().length - 1); + } + }); + }, function (element) { + CaretContainerRemove.remove(caret.get()); + var text = insertInlineAfter(element); + caret.set(text); + return Option.some(CaretPosition$1(text, 1)); + }); + }; + var BoundaryCaret = { renderCaret: renderCaret }; + + var strongRtl = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/; + var hasStrongRtl = function (text) { + return strongRtl.test(text); + }; + + var isInlineTarget = function (editor, elm) { + return is(Element.fromDom(elm), Settings.getInlineBoundarySelector(editor)); + }; + var isRtl$1 = function (element) { + return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent); + }; + var findInlineParents = function (isInlineTarget, rootNode, pos) { + return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget); + }; + var findRootInline = function (isInlineTarget, rootNode, pos) { + var parents = findInlineParents(isInlineTarget, rootNode, pos); + return Option.from(parents[parents.length - 1]); + }; + var hasSameParentBlock = function (rootNode, node1, node2) { + var block1 = getParentBlock(node1, rootNode); + var block2 = getParentBlock(node2, rootNode); + return block1 && block1 === block2; + }; + var isAtZwsp = function (pos) { + return isBeforeInline(pos) || isAfterInline(pos); + }; + var normalizePosition = function (forward, pos) { + if (!pos) { + return pos; + } + var container = pos.container(), offset = pos.offset(); + if (forward) { + if (isCaretContainerInline(container)) { + if (NodeType.isText(container.nextSibling)) { + return CaretPosition$1(container.nextSibling, 0); + } else { + return CaretPosition$1.after(container); + } + } else { + return isBeforeInline(pos) ? CaretPosition$1(container, offset + 1) : pos; + } + } else { + if (isCaretContainerInline(container)) { + if (NodeType.isText(container.previousSibling)) { + return CaretPosition$1(container.previousSibling, container.previousSibling.data.length); + } else { + return CaretPosition$1.before(container); + } + } else { + return isAfterInline(pos) ? CaretPosition$1(container, offset - 1) : pos; + } + } + }; + var normalizeForwards = curry(normalizePosition, true); + var normalizeBackwards = curry(normalizePosition, false); + var InlineUtils = { + isInlineTarget: isInlineTarget, + findRootInline: findRootInline, + isRtl: isRtl$1, + isAtZwsp: isAtZwsp, + normalizePosition: normalizePosition, + normalizeForwards: normalizeForwards, + normalizeBackwards: normalizeBackwards, + hasSameParentBlock: hasSameParentBlock + }; + + var evaluateUntil = function (fns, args) { + for (var i = 0; i < fns.length; i++) { + var result = fns[i].apply(null, args); + if (result.isSome()) { + return result; + } + } + return Option.none(); + }; + var LazyEvaluator = { evaluateUntil: evaluateUntil }; + + var Location = Adt.generate([ + { before: ['element'] }, + { start: ['element'] }, + { end: ['element'] }, + { after: ['element'] } + ]); + var rescope = function (rootNode, node) { + var parentBlock = getParentBlock(node, rootNode); + return parentBlock ? parentBlock : rootNode; + }; + var before$4 = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeForwards(pos); + var scope = rescope(rootNode, nPos.container()); + return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () { + return CaretFinder.nextPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) { + return Location.before(inline); + }); + }, Option.none); + }; + var isNotInsideFormatCaretContainer = function (rootNode, elm) { + return getParentCaretContainer(rootNode, elm) === null; + }; + var findInsideRootInline = function (isInlineTarget, rootNode, pos) { + return InlineUtils.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode)); + }; + var start = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeBackwards(pos); + return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) { + var prevPos = CaretFinder.prevPosition(inline, nPos); + return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none(); + }); + }; + var end = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeForwards(pos); + return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) { + var nextPos = CaretFinder.nextPosition(inline, nPos); + return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none(); + }); + }; + var after$3 = function (isInlineTarget, rootNode, pos) { + var nPos = InlineUtils.normalizeBackwards(pos); + var scope = rescope(rootNode, nPos.container()); + return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () { + return CaretFinder.prevPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) { + return Location.after(inline); + }); + }, Option.none); + }; + var isValidLocation = function (location) { + return InlineUtils.isRtl(getElement(location)) === false; + }; + var readLocation = function (isInlineTarget, rootNode, pos) { + var location = LazyEvaluator.evaluateUntil([ + before$4, + start, + end, + after$3 + ], [ + isInlineTarget, + rootNode, + pos + ]); + return location.filter(isValidLocation); + }; + var getElement = function (location) { + return location.fold(identity, identity, identity, identity); + }; + var getName = function (location) { + return location.fold(constant('before'), constant('start'), constant('end'), constant('after')); + }; + var outside = function (location) { + return location.fold(Location.before, Location.before, Location.after, Location.after); + }; + var inside = function (location) { + return location.fold(Location.start, Location.start, Location.end, Location.end); + }; + var isEq$5 = function (location1, location2) { + return getName(location1) === getName(location2) && getElement(location1) === getElement(location2); + }; + var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) { + return lift2(InlineUtils.findRootInline(isInlineTarget, rootNode, from), InlineUtils.findRootInline(isInlineTarget, rootNode, to), function (fromInline, toInline) { + if (fromInline !== toInline && InlineUtils.hasSameParentBlock(rootNode, fromInline, toInline)) { + return Location.after(forward ? fromInline : toInline); + } else { + return location; + } + }).getOr(location); + }; + var skipNoMovement = function (fromLocation, toLocation) { + return fromLocation.fold(constant(true), function (fromLocation) { + return !isEq$5(fromLocation, toLocation); + }); + }; + var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) { + var from = InlineUtils.normalizePosition(forward, pos); + var to = CaretFinder.fromPosition(forward, rootNode, from).map(curry(InlineUtils.normalizePosition, forward)); + var location = to.fold(function () { + return fromLocation.map(outside); + }, function (to) { + return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation)); + }); + return location.filter(isValidLocation); + }; + var findLocationSimple = function (forward, location) { + if (forward) { + return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none); + } else { + return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end)); + } + }; + var findLocation = function (forward, isInlineTarget, rootNode, pos) { + var from = InlineUtils.normalizePosition(forward, pos); + var fromLocation = readLocation(isInlineTarget, rootNode, from); + return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () { + return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos); + }); + }; + var BoundaryLocation = { + readLocation: readLocation, + findLocation: findLocation, + prevLocation: curry(findLocation, false), + nextLocation: curry(findLocation, true), + getElement: getElement, + outside: outside, + inside: inside + }; + + var hasSelectionModifyApi = function (editor) { + return isFunction(editor.selection.getSel().modify); + }; + var moveRel = function (forward, selection, pos) { + var delta = forward ? 1 : -1; + selection.setRng(CaretPosition$1(pos.container(), pos.offset() + delta).toRange()); + selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word'); + return true; + }; + var moveByWord = function (forward, editor) { + var rng = editor.selection.getRng(); + var pos = forward ? CaretPosition$1.fromRangeEnd(rng) : CaretPosition$1.fromRangeStart(rng); + if (!hasSelectionModifyApi(editor)) { + return false; + } else if (forward && isBeforeInline(pos)) { + return moveRel(true, editor.selection, pos); + } else if (!forward && isAfterInline(pos)) { + return moveRel(false, editor.selection, pos); + } else { + return false; + } + }; + var WordSelection = { + hasSelectionModifyApi: hasSelectionModifyApi, + moveByWord: moveByWord + }; + + var setCaretPosition = function (editor, pos) { + var rng = editor.dom.createRng(); + rng.setStart(pos.container(), pos.offset()); + rng.setEnd(pos.container(), pos.offset()); + editor.selection.setRng(rng); + }; + var isFeatureEnabled = function (editor) { + return editor.settings.inline_boundaries !== false; + }; + var setSelected = function (state, elm) { + if (state) { + elm.setAttribute('data-mce-selected', 'inline-boundary'); + } else { + elm.removeAttribute('data-mce-selected'); + } + }; + var renderCaretLocation = function (editor, caret, location) { + return BoundaryCaret.renderCaret(caret, location).map(function (pos) { + setCaretPosition(editor, pos); + return location; + }); + }; + var findLocation$1 = function (editor, caret, forward) { + var rootNode = editor.getBody(); + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var location = BoundaryLocation.findLocation(forward, isInlineTarget, rootNode, from); + return location.bind(function (location) { + return renderCaretLocation(editor, caret, location); + }); + }; + var toggleInlines = function (isInlineTarget, dom, elms) { + var selectedInlines = filter(dom.select('*[data-mce-selected="inline-boundary"]'), isInlineTarget); + var targetInlines = filter(elms, isInlineTarget); + each(difference(selectedInlines, targetInlines), curry(setSelected, false)); + each(difference(targetInlines, selectedInlines), curry(setSelected, true)); + }; + var safeRemoveCaretContainer = function (editor, caret) { + if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + if (CaretPosition$1.isTextPosition(pos) && InlineUtils.isAtZwsp(pos) === false) { + setCaretPosition(editor, CaretContainerRemove.removeAndReposition(caret.get(), pos)); + caret.set(null); + } + } + }; + var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) { + if (editor.selection.isCollapsed()) { + var inlines = filter(elms, isInlineTarget); + each(inlines, function (inline) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) { + return renderCaretLocation(editor, caret, location); + }); + }); + } + }; + var move = function (editor, caret, forward) { + return function () { + return isFeatureEnabled(editor) ? findLocation$1(editor, caret, forward).isSome() : false; + }; + }; + var moveWord = function (forward, editor, caret) { + return function () { + return isFeatureEnabled(editor) ? WordSelection.moveByWord(forward, editor) : false; + }; + }; + var setupSelectedState = function (editor) { + var caret = Cell(null); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + editor.on('NodeChange', function (e) { + if (isFeatureEnabled(editor) && !(Env.browser.isIE() && e.initial)) { + toggleInlines(isInlineTarget, editor.dom, e.parents); + safeRemoveCaretContainer(editor, caret); + renderInsideInlineCaret(isInlineTarget, editor, caret, e.parents); + } + }); + return caret; + }; + var moveNextWord = curry(moveWord, true); + var movePrevWord = curry(moveWord, false); + var BoundarySelection = { + move: move, + moveNextWord: moveNextWord, + movePrevWord: movePrevWord, + setupSelectedState: setupSelectedState, + setCaretPosition: setCaretPosition + }; + + var getNodeClientRects = function (node) { + var toArrayWithNode = function (clientRects) { + return map(clientRects, function (clientRect) { + clientRect = clone$1(clientRect); + clientRect.node = node; + return clientRect; + }); + }; + if (NodeType.isElement(node)) { + return toArrayWithNode(node.getClientRects()); + } + if (NodeType.isText(node)) { + var rng = node.ownerDocument.createRange(); + rng.setStart(node, 0); + rng.setEnd(node, node.data.length); + return toArrayWithNode(rng.getClientRects()); + } + }; + var getClientRects = function (node) { + return foldl(node, function (result, node) { + return result.concat(getNodeClientRects(node)); + }, []); + }; + + var VDirection; + (function (VDirection) { + VDirection[VDirection['Up'] = -1] = 'Up'; + VDirection[VDirection['Down'] = 1] = 'Down'; + }(VDirection || (VDirection = {}))); + var findUntil = function (direction, root, predicateFn, node) { + while (node = findNode(node, direction, isEditableCaretCandidate, root)) { + if (predicateFn(node)) { + return; + } + } + }; + var walkUntil = function (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) { + var line = 0, node; + var result = []; + var targetClientRect; + var add = function (node) { + var i, clientRect, clientRects; + clientRects = getClientRects([node]); + if (direction === -1) { + clientRects = clientRects.reverse(); + } + for (i = 0; i < clientRects.length; i++) { + clientRect = clientRects[i]; + if (isBeflowFn(clientRect, targetClientRect)) { + continue; + } + if (result.length > 0 && isAboveFn(clientRect, ArrUtils.last(result))) { + line++; + } + clientRect.line = line; + if (predicateFn(clientRect)) { + return true; + } + result.push(clientRect); + } + }; + targetClientRect = ArrUtils.last(caretPosition.getClientRects()); + if (!targetClientRect) { + return result; + } + node = caretPosition.getNode(); + add(node); + findUntil(direction, root, add, node); + return result; + }; + var aboveLineNumber = function (lineNumber, clientRect) { + return clientRect.line > lineNumber; + }; + var isLineNumber = function (lineNumber, clientRect) { + return clientRect.line === lineNumber; + }; + var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow); + var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove); + var positionsUntil = function (direction, root, predicateFn, node) { + var caretWalker = CaretWalker(root); + var walkFn, isBelowFn, isAboveFn, caretPosition; + var result = []; + var line = 0, clientRect, targetClientRect; + var getClientRect = function (caretPosition) { + if (direction === 1) { + return ArrUtils.last(caretPosition.getClientRects()); + } + return ArrUtils.last(caretPosition.getClientRects()); + }; + if (direction === 1) { + walkFn = caretWalker.next; + isBelowFn = isBelow; + isAboveFn = isAbove; + caretPosition = CaretPosition$1.after(node); + } else { + walkFn = caretWalker.prev; + isBelowFn = isAbove; + isAboveFn = isBelow; + caretPosition = CaretPosition$1.before(node); + } + targetClientRect = getClientRect(caretPosition); + do { + if (!caretPosition.isVisible()) { + continue; + } + clientRect = getClientRect(caretPosition); + if (isAboveFn(clientRect, targetClientRect)) { + continue; + } + if (result.length > 0 && isBelowFn(clientRect, ArrUtils.last(result))) { + line++; + } + clientRect = clone$1(clientRect); + clientRect.position = caretPosition; + clientRect.line = line; + if (predicateFn(clientRect)) { + return result; + } + result.push(clientRect); + } while (caretPosition = walkFn(caretPosition)); + return result; + }; + var isAboveLine = function (lineNumber) { + return function (clientRect) { + return aboveLineNumber(lineNumber, clientRect); + }; + }; + var isLine = function (lineNumber) { + return function (clientRect) { + return isLineNumber(lineNumber, clientRect); + }; + }; + + var isContentEditableFalse$7 = NodeType.isContentEditableFalse; + var findNode$1 = findNode; + var distanceToRectLeft = function (clientRect, clientX) { + return Math.abs(clientRect.left - clientX); + }; + var distanceToRectRight = function (clientRect, clientX) { + return Math.abs(clientRect.right - clientX); + }; + var isInside = function (clientX, clientRect) { + return clientX >= clientRect.left && clientX <= clientRect.right; + }; + var findClosestClientRect = function (clientRects, clientX) { + return ArrUtils.reduce(clientRects, function (oldClientRect, clientRect) { + var oldDistance, newDistance; + oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX)); + newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX)); + if (isInside(clientX, clientRect)) { + return clientRect; + } + if (isInside(clientX, oldClientRect)) { + return oldClientRect; + } + if (newDistance === oldDistance && isContentEditableFalse$7(clientRect.node)) { + return clientRect; + } + if (newDistance < oldDistance) { + return clientRect; + } + return oldClientRect; + }); + }; + var walkUntil$1 = function (direction, root, predicateFn, node) { + while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) { + if (predicateFn(node)) { + return; + } + } + }; + var findLineNodeRects = function (root, targetNodeRect) { + var clientRects = []; + var collect = function (checkPosFn, node) { + var lineRects; + lineRects = filter(getClientRects([node]), function (clientRect) { + return !checkPosFn(clientRect, targetNodeRect); + }); + clientRects = clientRects.concat(lineRects); + return lineRects.length === 0; + }; + clientRects.push(targetNodeRect); + walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node); + walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node); + return clientRects; + }; + var getFakeCaretTargets = function (root) { + return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget); + }; + var caretInfo = function (clientRect, clientX) { + return { + node: clientRect.node, + before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX) + }; + }; + var closestCaret = function (root, clientX, clientY) { + var closestNodeRect; + var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root)); + var targetNodeRects = filter(contentEditableFalseNodeRects, function (rect) { + return clientY >= rect.top && clientY <= rect.bottom; + }); + closestNodeRect = findClosestClientRect(targetNodeRects, clientX); + if (closestNodeRect) { + closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX); + if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) { + return caretInfo(closestNodeRect, clientX); + } + } + return null; + }; + + var isContentEditableTrue$3 = NodeType.isContentEditableTrue; + var isContentEditableFalse$8 = NodeType.isContentEditableFalse; + var showCaret = function (direction, editor, node, before, scrollIntoView) { + return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView); + }; + var getNodeRange = function (node) { + var rng = node.ownerDocument.createRange(); + rng.selectNode(node); + return rng; + }; + var selectNode = function (editor, node) { + var e = editor.fire('BeforeObjectSelected', { target: node }); + if (e.isDefaultPrevented()) { + return null; + } + return getNodeRange(node); + }; + var renderCaretAtRange = function (editor, range, scrollIntoView) { + var normalizedRange = normalizeRange(1, editor.getBody(), range); + var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange); + var caretPositionNode = caretPosition.getNode(); + if (isContentEditableFalse$8(caretPositionNode)) { + return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false); + } + var caretPositionBeforeNode = caretPosition.getNode(true); + if (isContentEditableFalse$8(caretPositionBeforeNode)) { + return showCaret(1, editor, caretPositionBeforeNode, false, false); + } + var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) { + return isContentEditableFalse$8(node) || isContentEditableTrue$3(node); + }); + if (isContentEditableFalse$8(ceRoot)) { + return showCaret(1, editor, ceRoot, false, scrollIntoView); + } + return null; + }; + var renderRangeCaret = function (editor, range, scrollIntoView) { + if (!range || !range.collapsed) { + return range; + } + var caretRange = renderCaretAtRange(editor, range, scrollIntoView); + if (caretRange) { + return caretRange; + } + return range; + }; + + var isChar = function (forward, predicate, pos) { + return Option.from(pos.container()).filter(NodeType.isText).exists(function (text) { + var delta = forward ? 0 : -1; + return predicate(text.data.charAt(pos.offset() + delta)); + }); + }; + var isBeforeSpace = curry(isChar, true, isWhiteSpace$1); + var isAfterSpace = curry(isChar, false, isWhiteSpace$1); + var isEmptyText = function (pos) { + var container = pos.container(); + return NodeType.isText(container) && container.data.length === 0; + }; + var matchesElementPosition = function (before, predicate) { + return function (pos) { + return Option.from(getChildNodeAtRelativeOffset(before ? 0 : -1, pos)).filter(predicate).isSome(); + }; + }; + var isImageBlock = function (node) { + return node.nodeName === 'IMG' && get$4(Element.fromDom(node), 'display') === 'block'; + }; + var isCefNode = function (node) { + return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node); + }; + var isBeforeImageBlock = matchesElementPosition(true, isImageBlock); + var isAfterImageBlock = matchesElementPosition(false, isImageBlock); + var isBeforeTable = matchesElementPosition(true, NodeType.isTable); + var isAfterTable = matchesElementPosition(false, NodeType.isTable); + var isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode); + var isAfterContentEditableFalse = matchesElementPosition(false, isCefNode); + + var BreakType; + (function (BreakType) { + BreakType[BreakType['Br'] = 0] = 'Br'; + BreakType[BreakType['Block'] = 1] = 'Block'; + BreakType[BreakType['Wrap'] = 2] = 'Wrap'; + BreakType[BreakType['Eol'] = 3] = 'Eol'; + }(BreakType || (BreakType = {}))); + var flip = function (direction, positions) { + return direction === HDirection.Backwards ? reverse(positions) : positions; + }; + var walk$3 = function (direction, caretWalker, pos) { + return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos); + }; + var getBreakType = function (scope, direction, currentPos, nextPos) { + if (NodeType.isBr(nextPos.getNode(direction === HDirection.Forwards))) { + return BreakType.Br; + } else if (isInSameBlock(currentPos, nextPos) === false) { + return BreakType.Block; + } else { + return BreakType.Wrap; + } + }; + var getPositionsUntil = function (predicate, direction, scope, start) { + var caretWalker = CaretWalker(scope); + var currentPos = start, nextPos; + var positions = []; + while (currentPos) { + nextPos = walk$3(direction, caretWalker, currentPos); + if (!nextPos) { + break; + } + if (NodeType.isBr(nextPos.getNode(false))) { + if (direction === HDirection.Forwards) { + return { + positions: flip(direction, positions).concat([nextPos]), + breakType: BreakType.Br, + breakAt: Option.some(nextPos) + }; + } else { + return { + positions: flip(direction, positions), + breakType: BreakType.Br, + breakAt: Option.some(nextPos) + }; + } + } + if (!nextPos.isVisible()) { + currentPos = nextPos; + continue; + } + if (predicate(currentPos, nextPos)) { + var breakType = getBreakType(scope, direction, currentPos, nextPos); + return { + positions: flip(direction, positions), + breakType: breakType, + breakAt: Option.some(nextPos) + }; + } + positions.push(nextPos); + currentPos = nextPos; + } + return { + positions: flip(direction, positions), + breakType: BreakType.Eol, + breakAt: Option.none() + }; + }; + var getAdjacentLinePositions = function (direction, getPositionsUntilBreak, scope, start) { + return getPositionsUntilBreak(scope, start).breakAt.map(function (pos) { + var positions = getPositionsUntilBreak(scope, pos).positions; + return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions); + }).getOr([]); + }; + var findClosestHorizontalPositionFromPoint = function (positions, x) { + return foldl(positions, function (acc, newPos) { + return acc.fold(function () { + return Option.some(newPos); + }, function (lastPos) { + return lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), function (lastRect, newRect) { + var lastDist = Math.abs(x - lastRect.left); + var newDist = Math.abs(x - newRect.left); + return newDist <= lastDist ? newPos : lastPos; + }).or(acc); + }); + }, Option.none()); + }; + var findClosestHorizontalPosition = function (positions, pos) { + return head(pos.getClientRects()).bind(function (targetRect) { + return findClosestHorizontalPositionFromPoint(positions, targetRect.left); + }); + }; + var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1); + var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1); + var isAtFirstLine = function (scope, pos) { + return getPositionsUntilPreviousLine(scope, pos).breakAt.isNone(); + }; + var isAtLastLine = function (scope, pos) { + return getPositionsUntilNextLine(scope, pos).breakAt.isNone(); + }; + var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine); + var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine); + var getFirstLinePositions = function (scope) { + return CaretFinder.firstPositionIn(scope).map(function (pos) { + return [pos].concat(getPositionsUntilNextLine(scope, pos).positions); + }).getOr([]); + }; + var getLastLinePositions = function (scope) { + return CaretFinder.lastPositionIn(scope).map(function (pos) { + return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos); + }).getOr([]); + }; + + var isContentEditableFalse$9 = NodeType.isContentEditableFalse; + var getSelectedNode$1 = getSelectedNode; + var moveToCeFalseHorizontally = function (direction, editor, getNextPosFn, range) { + var forwards = direction === HDirection.Forwards; + var isBeforeContentEditableFalseFn = forwards ? isBeforeContentEditableFalse : isAfterContentEditableFalse; + if (!range.collapsed) { + var node = getSelectedNode$1(range); + if (isContentEditableFalse$9(node)) { + return showCaret(direction, editor, node, direction === HDirection.Backwards, true); + } + } + var rangeIsInContainerBlock = isRangeInCaretContainerBlock(range); + var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + if (isBeforeContentEditableFalseFn(caretPosition)) { + return selectNode(editor, caretPosition.getNode(!forwards)); + } + var nextCaretPosition = InlineUtils.normalizePosition(forwards, getNextPosFn(caretPosition)); + if (!nextCaretPosition) { + if (rangeIsInContainerBlock) { + return range; + } + return null; + } + if (isBeforeContentEditableFalseFn(nextCaretPosition)) { + return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, true); + } + var peekCaretPosition = getNextPosFn(nextCaretPosition); + if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) { + if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) { + return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, true); + } + } + if (rangeIsInContainerBlock) { + return renderRangeCaret(editor, nextCaretPosition.toRange(), true); + } + return null; + }; + var moveToCeFalseVertically = function (direction, editor, walkerFn, range) { + var caretPosition, linePositions, nextLinePositions; + var closestNextLineRect, caretClientRect, clientX; + var dist1, dist2, contentEditableFalseNode; + contentEditableFalseNode = getSelectedNode$1(range); + caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition); + nextLinePositions = filter(linePositions, isLine(1)); + caretClientRect = ArrUtils.last(caretPosition.getClientRects()); + if (isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition)) { + contentEditableFalseNode = caretPosition.getNode(); + } + if (isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition)) { + contentEditableFalseNode = caretPosition.getNode(true); + } + if (!caretClientRect) { + return null; + } + clientX = caretClientRect.left; + closestNextLineRect = findClosestClientRect(nextLinePositions, clientX); + if (closestNextLineRect) { + if (isContentEditableFalse$9(closestNextLineRect.node)) { + dist1 = Math.abs(clientX - closestNextLineRect.left); + dist2 = Math.abs(clientX - closestNextLineRect.right); + return showCaret(direction, editor, closestNextLineRect.node, dist1 < dist2, true); + } + } + if (contentEditableFalseNode) { + var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode); + closestNextLineRect = findClosestClientRect(filter(caretPositions, isLine(1)), clientX); + if (closestNextLineRect) { + return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true); + } + closestNextLineRect = ArrUtils.last(filter(caretPositions, isLine(0))); + if (closestNextLineRect) { + return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true); + } + } + }; + var createTextBlock = function (editor) { + var textBlock = editor.dom.create(Settings.getForcedRootBlock(editor)); + if (!Env.ie || Env.ie >= 11) { + textBlock.innerHTML = '
    '; + } + return textBlock; + }; + var exitPreBlock = function (editor, direction, range) { + var pre, caretPos, newBlock; + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + if (range.collapsed && editor.settings.forced_root_block) { + pre = editor.dom.getParent(range.startContainer, 'PRE'); + if (!pre) { + return; + } + if (direction === 1) { + caretPos = getNextVisualCaretPosition(CaretPosition$1.fromRangeStart(range)); + } else { + caretPos = getPrevVisualCaretPosition(CaretPosition$1.fromRangeStart(range)); + } + if (!caretPos) { + newBlock = createTextBlock(editor); + if (direction === 1) { + editor.$(pre).after(newBlock); + } else { + editor.$(pre).before(newBlock); + } + editor.selection.select(newBlock, true); + editor.selection.collapse(); + } + } + }; + var getHorizontalRange = function (editor, forward) { + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + var newRange; + var direction = forward ? HDirection.Forwards : HDirection.Backwards; + var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition; + var range = editor.selection.getRng(); + newRange = moveToCeFalseHorizontally(direction, editor, getNextPosFn, range); + if (newRange) { + return newRange; + } + newRange = exitPreBlock(editor, direction, range); + if (newRange) { + return newRange; + } + return null; + }; + var getVerticalRange = function (editor, down) { + var newRange; + var direction = down ? 1 : -1; + var walkerFn = down ? downUntil : upUntil; + var range = editor.selection.getRng(); + newRange = moveToCeFalseVertically(direction, editor, walkerFn, range); + if (newRange) { + return newRange; + } + newRange = exitPreBlock(editor, direction, range); + if (newRange) { + return newRange; + } + return null; + }; + var moveH = function (editor, forward) { + return function () { + var newRng = getHorizontalRange(editor, forward); + if (newRng) { + editor.selection.setRng(newRng); + return true; + } else { + return false; + } + }; + }; + var moveV = function (editor, down) { + return function () { + var newRng = getVerticalRange(editor, down); + if (newRng) { + editor.selection.setRng(newRng); + return true; + } else { + return false; + } + }; + }; + var isCefPosition = function (forward) { + return function (pos) { + return forward ? isAfterContentEditableFalse(pos) : isBeforeContentEditableFalse(pos); + }; + }; + var moveToLineEndPoint = function (editor, forward) { + return function () { + var from = forward ? CaretPosition$1.fromRangeEnd(editor.selection.getRng()) : CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var result = forward ? getPositionsUntilNextLine(editor.getBody(), from) : getPositionsUntilPreviousLine(editor.getBody(), from); + var to = forward ? last(result.positions) : head(result.positions); + return to.filter(isCefPosition(forward)).fold(constant(false), function (pos) { + editor.selection.setRng(pos.toRange()); + return true; + }); + }; + }; + + var deflate = function (rect, delta) { + return { + left: rect.left - delta, + top: rect.top - delta, + right: rect.right + delta * 2, + bottom: rect.bottom + delta * 2, + width: rect.width + delta, + height: rect.height + delta + }; + }; + var getCorners = function (getYAxisValue, tds) { + return bind(tds, function (td) { + var rect = deflate(clone$1(td.getBoundingClientRect()), -1); + return [ + { + x: rect.left, + y: getYAxisValue(rect), + cell: td + }, + { + x: rect.right, + y: getYAxisValue(rect), + cell: td + } + ]; + }); + }; + var findClosestCorner = function (corners, x, y) { + return foldl(corners, function (acc, newCorner) { + return acc.fold(function () { + return Option.some(newCorner); + }, function (oldCorner) { + var oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y)); + var newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y)); + return Option.some(newDist < oldDist ? newCorner : oldCorner); + }); + }, Option.none()); + }; + var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) { + var cells = descendants$1(Element.fromDom(table), 'td,th,caption').map(function (e) { + return e.dom(); + }); + var corners = filter(getCorners(getYAxisValue, cells), function (corner) { + return isTargetCorner(corner, y); + }); + return findClosestCorner(corners, x, y).map(function (corner) { + return corner.cell; + }); + }; + var getBottomValue = function (rect) { + return rect.bottom; + }; + var getTopValue = function (rect) { + return rect.top; + }; + var isAbove$1 = function (corner, y) { + return corner.y < y; + }; + var isBelow$1 = function (corner, y) { + return corner.y > y; + }; + var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1); + var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1); + var findClosestPositionInAboveCell = function (table, pos) { + return head(pos.getClientRects()).bind(function (rect) { + return getClosestCellAbove(table, rect.left, rect.top); + }).bind(function (cell) { + return findClosestHorizontalPosition(getLastLinePositions(cell), pos); + }); + }; + var findClosestPositionInBelowCell = function (table, pos) { + return last(pos.getClientRects()).bind(function (rect) { + return getClosestCellBelow(table, rect.left, rect.top); + }).bind(function (cell) { + return findClosestHorizontalPosition(getFirstLinePositions(cell), pos); + }); + }; + + var moveToRange = function (editor, rng) { + editor.selection.setRng(rng); + ScrollIntoView.scrollRangeIntoView(editor, rng); + }; + var hasNextBreak = function (getPositionsUntil, scope, lineInfo) { + return lineInfo.breakAt.map(function (breakPos) { + return getPositionsUntil(scope, breakPos).breakAt.isSome(); + }).getOr(false); + }; + var startsWithWrapBreak = function (lineInfo) { + return lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0; + }; + var startsWithBrBreak = function (lineInfo) { + return lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1; + }; + var isAtTableCellLine = function (getPositionsUntil, scope, pos) { + var lineInfo = getPositionsUntil(scope, pos); + if (startsWithWrapBreak(lineInfo) || !NodeType.isBr(pos.getNode()) && startsWithBrBreak(lineInfo)) { + return !hasNextBreak(getPositionsUntil, scope, lineInfo); + } else { + return lineInfo.breakAt.isNone(); + } + }; + var isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine); + var isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine); + var isCaretAtStartOrEndOfTable = function (forward, rng, table) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + return CaretFinder.positionIn(!forward, table).map(function (pos) { + return pos.isEqual(caretPos); + }).getOr(false); + }; + var navigateHorizontally = function (editor, forward, table, td) { + var rng = editor.selection.getRng(); + var direction = forward ? 1 : -1; + if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) { + var newRng = showCaret(direction, editor, table, !forward, true); + moveToRange(editor, newRng); + return true; + } + return false; + }; + var getClosestAbovePosition = function (root, table, start) { + return findClosestPositionInAboveCell(table, start).orThunk(function () { + return head(start.getClientRects()).bind(function (rect) { + return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left); + }); + }).getOr(CaretPosition$1.before(table)); + }; + var getClosestBelowPosition = function (root, table, start) { + return findClosestPositionInBelowCell(table, start).orThunk(function () { + return head(start.getClientRects()).bind(function (rect) { + return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left); + }); + }).getOr(CaretPosition$1.after(table)); + }; + var getTable = function (previous, pos) { + var node = pos.getNode(previous); + return NodeType.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none(); + }; + var renderBlock = function (down, editor, table, pos) { + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (forcedRootBlock) { + editor.undoManager.transact(function () { + var element = Element.fromTag(forcedRootBlock); + setAll(element, Settings.getForcedRootBlockAttrs(editor)); + append(element, Element.fromTag('br')); + if (down) { + after(Element.fromDom(table), element); + } else { + before(Element.fromDom(table), element); + } + var rng = editor.dom.createRng(); + rng.setStart(element.dom(), 0); + rng.setEnd(element.dom(), 0); + moveToRange(editor, rng); + }); + } else { + moveToRange(editor, pos.toRange()); + } + }; + var moveCaret = function (editor, down, pos) { + var table = down ? getTable(true, pos) : getTable(false, pos); + var last = down === false; + table.fold(function () { + return moveToRange(editor, pos.toRange()); + }, function (table) { + return CaretFinder.positionIn(last, editor.getBody()).filter(function (lastPos) { + return lastPos.isEqual(pos); + }).fold(function () { + return moveToRange(editor, pos.toRange()); + }, function (_) { + return renderBlock(down, editor, table, pos); + }); + }); + }; + var navigateVertically = function (editor, down, table, td) { + var rng = editor.selection.getRng(); + var pos = CaretPosition$1.fromRangeStart(rng); + var root = editor.getBody(); + if (!down && isAtFirstTableCellLine(td, pos)) { + var newPos = getClosestAbovePosition(root, table, pos); + moveCaret(editor, down, newPos); + return true; + } else if (down && isAtLastTableCellLine(td, pos)) { + var newPos = getClosestBelowPosition(root, table, pos); + moveCaret(editor, down, newPos); + return true; + } else { + return false; + } + }; + var moveH$1 = function (editor, forward) { + return function () { + return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) { + return Option.from(editor.dom.getParent(td, 'table')).map(function (table) { + return navigateHorizontally(editor, forward, table); + }); + }).getOr(false); + }; + }; + var moveV$1 = function (editor, forward) { + return function () { + return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) { + return Option.from(editor.dom.getParent(td, 'table')).map(function (table) { + return navigateVertically(editor, forward, table, td); + }); + }).getOr(false); + }; + }; + + var isTarget = function (node) { + return contains(['figcaption'], name(node)); + }; + var rangeBefore = function (target) { + var rng = domGlobals.document.createRange(); + rng.setStartBefore(target.dom()); + rng.setEndBefore(target.dom()); + return rng; + }; + var insertElement = function (root, elm, forward) { + if (forward) { + append(root, elm); + } else { + prepend(root, elm); + } + }; + var insertBr = function (root, forward) { + var br = Element.fromTag('br'); + insertElement(root, br, forward); + return rangeBefore(br); + }; + var insertBlock$1 = function (root, forward, blockName, attrs) { + var block = Element.fromTag(blockName); + var br = Element.fromTag('br'); + setAll(block, attrs); + append(block, br); + insertElement(root, block, forward); + return rangeBefore(br); + }; + var insertEmptyLine = function (root, rootBlockName, attrs, forward) { + if (rootBlockName === '') { + return insertBr(root, forward); + } else { + return insertBlock$1(root, forward, rootBlockName, attrs); + } + }; + var getClosestTargetBlock = function (pos, root) { + var isRoot = curry(eq, root); + return closest(Element.fromDom(pos.container()), isBlock, isRoot).filter(isTarget); + }; + var isAtFirstOrLastLine = function (root, forward, pos) { + return forward ? isAtLastLine(root.dom(), pos) : isAtFirstLine(root.dom(), pos); + }; + var moveCaretToNewEmptyLine = function (editor, forward) { + var root = Element.fromDom(editor.getBody()); + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var rootBlock = Settings.getForcedRootBlock(editor); + var rootBlockAttrs = Settings.getForcedRootBlockAttrs(editor); + return getClosestTargetBlock(pos, root).exists(function () { + if (isAtFirstOrLastLine(root, forward, pos)) { + var rng = insertEmptyLine(root, rootBlock, rootBlockAttrs, forward); + editor.selection.setRng(rng); + return true; + } else { + return false; + } + }); + }; + var moveV$2 = function (editor, forward) { + return function () { + if (editor.selection.isCollapsed()) { + return moveCaretToNewEmptyLine(editor, forward); + } else { + return false; + } + }; + }; + + var defaultPatterns = function (patterns) { + return map(patterns, function (pattern) { + return __assign({ + shiftKey: false, + altKey: false, + ctrlKey: false, + metaKey: false, + keyCode: 0, + action: noop + }, pattern); + }); + }; + var matchesEvent = function (pattern, evt) { + return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey; + }; + var match$1 = function (patterns, evt) { + return bind(defaultPatterns(patterns), function (pattern) { + return matchesEvent(pattern, evt) ? [pattern] : []; + }); + }; + var action = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return f.apply(null, args); + }; + }; + var execute = function (patterns, evt) { + return find(match$1(patterns, evt), function (pattern) { + return pattern.action(); + }); + }; + var MatchKeys = { + match: match$1, + action: action, + execute: execute + }; + + var executeKeydownOverride = function (editor, caret, evt) { + var os = detect$3().os; + MatchKeys.execute([ + { + keyCode: VK.RIGHT, + action: moveH(editor, true) + }, + { + keyCode: VK.LEFT, + action: moveH(editor, false) + }, + { + keyCode: VK.UP, + action: moveV(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV(editor, true) + }, + { + keyCode: VK.RIGHT, + action: moveH$1(editor, true) + }, + { + keyCode: VK.LEFT, + action: moveH$1(editor, false) + }, + { + keyCode: VK.UP, + action: moveV$1(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV$1(editor, true) + }, + { + keyCode: VK.RIGHT, + action: BoundarySelection.move(editor, caret, true) + }, + { + keyCode: VK.LEFT, + action: BoundarySelection.move(editor, caret, false) + }, + { + keyCode: VK.RIGHT, + ctrlKey: !os.isOSX(), + altKey: os.isOSX(), + action: BoundarySelection.moveNextWord(editor, caret) + }, + { + keyCode: VK.LEFT, + ctrlKey: !os.isOSX(), + altKey: os.isOSX(), + action: BoundarySelection.movePrevWord(editor, caret) + }, + { + keyCode: VK.UP, + action: moveV$2(editor, false) + }, + { + keyCode: VK.DOWN, + action: moveV$2(editor, true) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$9 = function (editor, caret) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride(editor, caret, evt); + } + }); + }; + var ArrowKeys = { setup: setup$9 }; + + var isBeforeRoot = function (rootNode) { + return function (elm) { + return eq(rootNode, Element.fromDom(elm.dom().parentNode)); + }; + }; + var getParentBlock$1 = function (rootNode, elm) { + return contains$2(rootNode, elm) ? closest(elm, function (element) { + return isTextBlock(element) || isListItem(element); + }, isBeforeRoot(rootNode)) : Option.none(); + }; + var placeCaretInEmptyBody = function (editor) { + var body = editor.getBody(); + var node = body.firstChild && editor.dom.isBlock(body.firstChild) ? body.firstChild : body; + editor.selection.setCursorLocation(node, 0); + }; + var paddEmptyBody = function (editor) { + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + placeCaretInEmptyBody(editor); + } + }; + var willDeleteLastPositionInElement = function (forward, fromPos, elm) { + return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) { + var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos); + var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos); + var normalizedFromPos = InlineUtils.normalizePosition(false, fromPos); + if (forward) { + return CaretFinder.nextPosition(elm, normalizedFromPos).map(function (nextPos) { + return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos); + }).getOr(false); + } else { + return CaretFinder.prevPosition(elm, normalizedFromPos).map(function (prevPos) { + return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos); + }).getOr(false); + } + }).getOr(true); + }; + var DeleteUtils = { + getParentBlock: getParentBlock$1, + paddEmptyBody: paddEmptyBody, + willDeleteLastPositionInElement: willDeleteLastPositionInElement + }; + + var blockPosition = function (block, position) { + return { + block: constant(block), + position: constant(position) + }; + }; + var blockBoundary = function (from, to) { + return { + from: constant(from), + to: constant(to) + }; + }; + var getBlockPosition = function (rootNode, pos) { + var rootElm = Element.fromDom(rootNode); + var containerElm = Element.fromDom(pos.container()); + return DeleteUtils.getParentBlock(rootElm, containerElm).map(function (block) { + return blockPosition(block, pos); + }); + }; + var isDifferentBlocks = function (blockBoundary) { + return eq(blockBoundary.from().block(), blockBoundary.to().block()) === false; + }; + var hasSameParent = function (blockBoundary) { + return parent(blockBoundary.from().block()).bind(function (parent1) { + return parent(blockBoundary.to().block()).filter(function (parent2) { + return eq(parent1, parent2); + }); + }).isSome(); + }; + var isEditable = function (blockBoundary) { + return NodeType.isContentEditableFalse(blockBoundary.from().block().dom()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block().dom()) === false; + }; + var skipLastBr = function (rootNode, forward, blockPosition) { + if (NodeType.isBr(blockPosition.position().getNode()) && Empty.isEmpty(blockPosition.block()) === false) { + return CaretFinder.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) { + if (lastPositionInBlock.isEqual(blockPosition.position())) { + return CaretFinder.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) { + return getBlockPosition(rootNode, to); + }); + } else { + return Option.some(blockPosition); + } + }).getOr(blockPosition); + } else { + return blockPosition; + } + }; + var readFromRange = function (rootNode, forward, rng) { + var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng)); + var toBlockPos = fromBlockPos.bind(function (blockPos) { + return CaretFinder.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) { + return getBlockPosition(rootNode, to).map(function (blockPos) { + return skipLastBr(rootNode, forward, blockPos); + }); + }); + }); + return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(function (blockBoundary) { + return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary); + }); + }; + var read$3 = function (rootNode, forward, rng) { + return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none(); + }; + var BlockMergeBoundary = { read: read$3 }; + + var getChildrenUntilBlockBoundary = function (block) { + var children$1 = children(block); + return findIndex(children$1, isBlock).fold(function () { + return children$1; + }, function (index) { + return children$1.slice(0, index); + }); + }; + var extractChildren = function (block) { + var children = getChildrenUntilBlockBoundary(block); + each(children, remove); + return children; + }; + var removeEmptyRoot = function (rootNode, block) { + var parents = Parents.parentsAndSelf(block, rootNode); + return find(parents.reverse(), function (element) { + return Empty.isEmpty(element); + }).each(remove); + }; + var isEmptyBefore = function (el) { + return filter(prevSiblings(el), function (el) { + return !Empty.isEmpty(el); + }).length === 0; + }; + var nestedBlockMerge = function (rootNode, fromBlock, toBlock, insertionPoint) { + if (Empty.isEmpty(toBlock)) { + PaddingBr.fillWithPaddingBr(toBlock); + return CaretFinder.firstPositionIn(toBlock.dom()); + } + if (isEmptyBefore(insertionPoint) && Empty.isEmpty(fromBlock)) { + before(insertionPoint, Element.fromTag('br')); + } + var position = CaretFinder.prevPosition(toBlock.dom(), CaretPosition$1.before(insertionPoint.dom())); + each(extractChildren(fromBlock), function (child) { + before(insertionPoint, child); + }); + removeEmptyRoot(rootNode, fromBlock); + return position; + }; + var sidelongBlockMerge = function (rootNode, fromBlock, toBlock) { + if (Empty.isEmpty(toBlock)) { + remove(toBlock); + if (Empty.isEmpty(fromBlock)) { + PaddingBr.fillWithPaddingBr(fromBlock); + } + return CaretFinder.firstPositionIn(fromBlock.dom()); + } + var position = CaretFinder.lastPositionIn(toBlock.dom()); + each(extractChildren(fromBlock), function (child) { + append(toBlock, child); + }); + removeEmptyRoot(rootNode, fromBlock); + return position; + }; + var findInsertionPoint = function (toBlock, block) { + var parentsAndSelf = Parents.parentsAndSelf(block, toBlock); + return Option.from(parentsAndSelf[parentsAndSelf.length - 1]); + }; + var getInsertionPoint = function (fromBlock, toBlock) { + return contains$2(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Option.none(); + }; + var trimBr = function (first, block) { + CaretFinder.positionIn(first, block.dom()).map(function (position) { + return position.getNode(); + }).map(Element.fromDom).filter(isBr$1).each(remove); + }; + var mergeBlockInto = function (rootNode, fromBlock, toBlock) { + trimBr(true, fromBlock); + trimBr(false, toBlock); + return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock), curry(nestedBlockMerge, rootNode, fromBlock, toBlock)); + }; + var mergeBlocks = function (rootNode, forward, block1, block2) { + return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2); + }; + var MergeBlocks = { mergeBlocks: mergeBlocks }; + + var backspaceDelete = function (editor, forward) { + var rootNode = Element.fromDom(editor.getBody()); + var position = BlockMergeBoundary.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) { + return MergeBlocks.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block()); + }); + position.each(function (pos) { + editor.selection.setRng(pos.toRange()); + }); + return position.isSome(); + }; + var BlockBoundaryDelete = { backspaceDelete: backspaceDelete }; + + var deleteRangeMergeBlocks = function (rootNode, selection) { + var rng = selection.getRng(); + return lift2(DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)), DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer)), function (block1, block2) { + if (eq(block1, block2) === false) { + rng.deleteContents(); + MergeBlocks.mergeBlocks(rootNode, true, block1, block2).each(function (pos) { + selection.setRng(pos.toRange()); + }); + return true; + } else { + return false; + } + }).getOr(false); + }; + var isRawNodeInTable = function (root, rawNode) { + var node = Element.fromDom(rawNode); + var isRoot = curry(eq, root); + return ancestor(node, isTableCell, isRoot).isSome(); + }; + var isSelectionInTable = function (root, rng) { + return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer); + }; + var isEverythingSelected = function (root, rng) { + var noPrevious = CaretFinder.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone(); + var noNext = CaretFinder.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone(); + return !isSelectionInTable(root, rng) && noPrevious && noNext; + }; + var emptyEditor = function (editor) { + editor.setContent(''); + editor.selection.setCursorLocation(); + return true; + }; + var deleteRange = function (editor) { + var rootNode = Element.fromDom(editor.getBody()); + var rng = editor.selection.getRng(); + return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection); + }; + var backspaceDelete$1 = function (editor, forward) { + return editor.selection.isCollapsed() ? false : deleteRange(editor); + }; + var BlockRangeDelete = { backspaceDelete: backspaceDelete$1 }; + + var isBr$5 = function (pos) { + return getElementFromPosition(pos).exists(isBr$1); + }; + var findBr = function (forward, root, pos) { + var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + var scope = head(parentBlocks).getOr(root); + return CaretFinder.fromPosition(forward, scope.dom(), pos).filter(isBr$5); + }; + var isBeforeBr = function (root, pos) { + return getElementFromPosition(pos).exists(isBr$1) || findBr(true, root, pos).isSome(); + }; + var isAfterBr = function (root, pos) { + return getElementFromPrevPosition(pos).exists(isBr$1) || findBr(false, root, pos).isSome(); + }; + var findPreviousBr = curry(findBr, false); + var findNextBr = curry(findBr, true); + + var isCompoundElement = function (node) { + return isTableCell(Element.fromDom(node)) || isListItem(Element.fromDom(node)); + }; + var DeleteAction = Adt.generate([ + { remove: ['element'] }, + { moveToElement: ['element'] }, + { moveToPosition: ['position'] } + ]); + var isAtContentEditableBlockCaret = function (forward, from) { + var elm = from.getNode(forward === false); + var caretLocation = forward ? 'after' : 'before'; + return NodeType.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation; + }; + var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) { + var inSameBlock = function (elm) { + return isInline(Element.fromDom(elm)) && !isInSameBlock(from, to, root); + }; + return getRelativeCefElm(!forward, from).fold(function () { + return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock); + }, inSameBlock); + }; + var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) { + var toCefElm = to.getNode(forward === false); + return DeleteUtils.getParentBlock(Element.fromDom(root), Element.fromDom(from.getNode())).map(function (blockElm) { + return Empty.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm); + }).orThunk(function () { + return Option.some(DeleteAction.moveToElement(toCefElm)); + }); + }; + var findCefPosition = function (root, forward, from) { + return CaretFinder.fromPosition(forward, root, from).bind(function (to) { + if (isCompoundElement(to.getNode())) { + return Option.none(); + } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) { + return Option.none(); + } else if (forward && NodeType.isContentEditableFalse(to.getNode())) { + return deleteEmptyBlockOrMoveToCef(root, forward, from, to); + } else if (forward === false && NodeType.isContentEditableFalse(to.getNode(true))) { + return deleteEmptyBlockOrMoveToCef(root, forward, from, to); + } else if (forward && isAfterContentEditableFalse(from)) { + return Option.some(DeleteAction.moveToPosition(to)); + } else if (forward === false && isBeforeContentEditableFalse(from)) { + return Option.some(DeleteAction.moveToPosition(to)); + } else { + return Option.none(); + } + }); + }; + var getContentEditableBlockAction = function (forward, elm) { + if (forward && NodeType.isContentEditableFalse(elm.nextSibling)) { + return Option.some(DeleteAction.moveToElement(elm.nextSibling)); + } else if (forward === false && NodeType.isContentEditableFalse(elm.previousSibling)) { + return Option.some(DeleteAction.moveToElement(elm.previousSibling)); + } else { + return Option.none(); + } + }; + var skipMoveToActionFromInlineCefToContent = function (root, from, deleteAction) { + return deleteAction.fold(function (elm) { + return Option.some(DeleteAction.remove(elm)); + }, function (elm) { + return Option.some(DeleteAction.moveToElement(elm)); + }, function (to) { + if (isInSameBlock(from, to, root)) { + return Option.none(); + } else { + return Option.some(DeleteAction.moveToPosition(to)); + } + }); + }; + var getContentEditableAction = function (root, forward, from) { + if (isAtContentEditableBlockCaret(forward, from)) { + return getContentEditableBlockAction(forward, from.getNode(forward === false)).fold(function () { + return findCefPosition(root, forward, from); + }, Option.some); + } else { + return findCefPosition(root, forward, from).bind(function (deleteAction) { + return skipMoveToActionFromInlineCefToContent(root, from, deleteAction); + }); + } + }; + var read$4 = function (root, forward, rng) { + var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng); + var from = CaretPosition$1.fromRangeStart(normalizedRange); + var rootElement = Element.fromDom(root); + if (forward === false && isAfterContentEditableFalse(from)) { + return Option.some(DeleteAction.remove(from.getNode(true))); + } else if (forward && isBeforeContentEditableFalse(from)) { + return Option.some(DeleteAction.remove(from.getNode())); + } else if (forward === false && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from)) { + return findPreviousBr(rootElement, from).map(function (br) { + return DeleteAction.remove(br.getNode()); + }); + } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr(rootElement, from)) { + return findNextBr(rootElement, from).map(function (br) { + return DeleteAction.remove(br.getNode()); + }); + } else { + return getContentEditableAction(root, forward, from); + } + }; + + var deleteElement$1 = function (editor, forward) { + return function (element) { + editor._selectionOverrides.hideFakeCaret(); + DeleteElement.deleteElement(editor, forward, Element.fromDom(element)); + return true; + }; + }; + var moveToElement = function (editor, forward) { + return function (element) { + var pos = forward ? CaretPosition$1.before(element) : CaretPosition$1.after(element); + editor.selection.setRng(pos.toRange()); + return true; + }; + }; + var moveToPosition = function (editor) { + return function (pos) { + editor.selection.setRng(pos.toRange()); + return true; + }; + }; + var getAncestorCe = function (editor, node) { + return Option.from(getContentEditableRoot$1(editor.getBody(), node)); + }; + var backspaceDeleteCaret = function (editor, forward) { + var selectedNode = editor.selection.getNode(); + return getAncestorCe(editor, selectedNode).filter(NodeType.isContentEditableFalse).fold(function () { + var result = read$4(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) { + return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor)); + }); + return result.getOr(false); + }, function () { + return true; + }); + }; + var deleteOffscreenSelection = function (rootElement) { + each(descendants$1(rootElement, '.mce-offscreen-selection'), remove); + }; + var backspaceDeleteRange = function (editor, forward) { + var selectedNode = editor.selection.getNode(); + if (NodeType.isContentEditableFalse(selectedNode)) { + var hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(NodeType.isContentEditableFalse); + return hasCefAncestor.fold(function () { + deleteOffscreenSelection(Element.fromDom(editor.getBody())); + DeleteElement.deleteElement(editor, forward, Element.fromDom(editor.selection.getNode())); + DeleteUtils.paddEmptyBody(editor); + return true; + }, function () { + return true; + }); + } + return false; + }; + var getContentEditableRoot$1 = function (root, node) { + while (node && node !== root) { + if (NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var paddEmptyElement = function (editor) { + var br; + var ceRoot = getContentEditableRoot$1(editor.getBody(), editor.selection.getNode()); + if (NodeType.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) { + br = editor.dom.create('br', { 'data-mce-bogus': '1' }); + editor.dom.setHTML(ceRoot, ''); + ceRoot.appendChild(br); + editor.selection.setRng(CaretPosition$1.before(br).toRange()); + } + return true; + }; + var backspaceDelete$2 = function (editor, forward) { + if (editor.selection.isCollapsed()) { + return backspaceDeleteCaret(editor, forward); + } else { + return backspaceDeleteRange(editor, forward); + } + }; + var CefDelete = { + backspaceDelete: backspaceDelete$2, + paddEmptyElement: paddEmptyElement + }; + + var trimEmptyTextNode$1 = function (dom, node) { + if (NodeType.isText(node) && node.data.length === 0) { + dom.remove(node); + } + }; + var deleteContentAndShowCaret = function (editor, range, node, direction, forward, peekCaretPosition) { + var caretRange = showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true); + if (range.collapsed) { + var deleteRange = range.cloneRange(); + if (forward) { + deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset); + } else { + deleteRange.setStart(caretRange.endContainer, caretRange.endOffset); + } + deleteRange.deleteContents(); + } else { + range.deleteContents(); + } + editor.selection.setRng(caretRange); + trimEmptyTextNode$1(editor.dom, node); + return true; + }; + var deleteCefBoundaryText = function (editor, forward) { + var range = editor.selection.getRng(); + if (!NodeType.isText(range.commonAncestorContainer)) { + return false; + } + var direction = forward ? HDirection.Forwards : HDirection.Backwards; + var caretWalker = CaretWalker(editor.getBody()); + var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next); + var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev); + var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition; + var isBeforeContentEditableFalseFn = forward ? isBeforeContentEditableFalse : isAfterContentEditableFalse; + var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range); + var nextCaretPosition = InlineUtils.normalizePosition(forward, getNextPosFn(caretPosition)); + if (!nextCaretPosition || !isMoveInsideSameBlock(caretPosition, nextCaretPosition)) { + return false; + } else if (isBeforeContentEditableFalseFn(nextCaretPosition)) { + return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, nextCaretPosition); + } + var peekCaretPosition = getNextPosFn(nextCaretPosition); + if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) { + if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) { + return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition); + } + } + return false; + }; + var backspaceDelete$3 = function (editor, forward) { + return deleteCefBoundaryText(editor, forward); + }; + var CefBoundaryDelete = { backspaceDelete: backspaceDelete$3 }; + + var isFeatureEnabled$1 = function (editor) { + return editor.settings.inline_boundaries !== false; + }; + var rangeFromPositions = function (from, to) { + var range = domGlobals.document.createRange(); + range.setStart(from.container(), from.offset()); + range.setEnd(to.container(), to.offset()); + return range; + }; + var hasOnlyTwoOrLessPositionsLeft = function (elm) { + return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) { + var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos); + var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos); + return CaretFinder.nextPosition(elm, normalizedFirstPos).map(function (pos) { + return pos.isEqual(normalizedLastPos); + }).getOr(true); + }).getOr(true); + }; + var setCaretLocation = function (editor, caret) { + return function (location) { + return BoundaryCaret.renderCaret(caret, location).map(function (pos) { + BoundarySelection.setCaretPosition(editor, pos); + return true; + }).getOr(false); + }; + }; + var deleteFromTo = function (editor, caret, from, to) { + var rootNode = editor.getBody(); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + editor.undoManager.ignore(function () { + editor.selection.setRng(rangeFromPositions(from, to)); + editor.execCommand('Delete'); + BoundaryLocation.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map(BoundaryLocation.inside).map(setCaretLocation(editor, caret)); + }); + editor.nodeChanged(); + }; + var rescope$1 = function (rootNode, node) { + var parentBlock = getParentBlock(node, rootNode); + return parentBlock ? parentBlock : rootNode; + }; + var backspaceDeleteCollapsed = function (editor, caret, forward, from) { + var rootNode = rescope$1(editor.getBody(), from.container()); + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var fromLocation = BoundaryLocation.readLocation(isInlineTarget, rootNode, from); + return fromLocation.bind(function (location) { + if (forward) { + return location.fold(constant(Option.some(BoundaryLocation.inside(location))), Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none); + } else { + return location.fold(Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none, constant(Option.some(BoundaryLocation.inside(location)))); + } + }).map(setCaretLocation(editor, caret)).getOrThunk(function () { + var toPosition = CaretFinder.navigate(forward, rootNode, from); + var toLocation = toPosition.bind(function (pos) { + return BoundaryLocation.readLocation(isInlineTarget, rootNode, pos); + }); + if (fromLocation.isSome() && toLocation.isSome()) { + return InlineUtils.findRootInline(isInlineTarget, rootNode, from).map(function (elm) { + if (hasOnlyTwoOrLessPositionsLeft(elm)) { + DeleteElement.deleteElement(editor, forward, Element.fromDom(elm)); + return true; + } else { + return false; + } + }).getOr(false); + } else { + return toLocation.bind(function (_) { + return toPosition.map(function (to) { + if (forward) { + deleteFromTo(editor, caret, from, to); + } else { + deleteFromTo(editor, caret, to, from); + } + return true; + }); + }).getOr(false); + } + }); + }; + var backspaceDelete$4 = function (editor, caret, forward) { + if (editor.selection.isCollapsed() && isFeatureEnabled$1(editor)) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return backspaceDeleteCollapsed(editor, caret, forward, from); + } + return false; + }; + var BoundaryDelete = { backspaceDelete: backspaceDelete$4 }; + + var getParentInlines = function (rootElm, startElm) { + var parents = Parents.parentsAndSelf(startElm, rootElm); + return findIndex(parents, isBlock).fold(constant(parents), function (index) { + return parents.slice(0, index); + }); + }; + var hasOnlyOneChild = function (elm) { + return children(elm).length === 1; + }; + var deleteLastPosition = function (forward, editor, target, parentInlines) { + var isFormatElement$1 = curry(isFormatElement, editor); + var formatNodes = map(filter(parentInlines, isFormatElement$1), function (elm) { + return elm.dom(); + }); + if (formatNodes.length === 0) { + DeleteElement.deleteElement(editor, forward, target); + } else { + var pos = replaceWithCaretFormat(target.dom(), formatNodes); + editor.selection.setRng(pos.toRange()); + } + }; + var deleteCaret = function (editor, forward) { + var rootElm = Element.fromDom(editor.getBody()); + var startElm = Element.fromDom(editor.selection.getStart()); + var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild); + return last(parentInlines).map(function (target) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + if (DeleteUtils.willDeleteLastPositionInElement(forward, fromPos, target.dom()) && !isEmptyCaretFormatElement(target)) { + deleteLastPosition(forward, editor, target, parentInlines); + return true; + } else { + return false; + } + }).getOr(false); + }; + var backspaceDelete$5 = function (editor, forward) { + return editor.selection.isCollapsed() ? deleteCaret(editor, forward) : false; + }; + var InlineFormatDelete = { backspaceDelete: backspaceDelete$5 }; + + var tableCellRng = function (start, end) { + return { + start: constant(start), + end: constant(end) + }; + }; + var tableSelection = function (rng, table, cells) { + return { + rng: constant(rng), + table: constant(table), + cells: constant(cells) + }; + }; + var deleteAction = Adt.generate([ + { removeTable: ['element'] }, + { emptyCells: ['cells'] } + ]); + var isRootFromElement = function (root) { + return function (cur) { + return eq(root, cur); + }; + }; + var getClosestCell$1 = function (container, isRoot) { + return closest$1(Element.fromDom(container), 'td,th', isRoot); + }; + var getClosestTable = function (cell, isRoot) { + return ancestor$1(cell, 'table', isRoot); + }; + var isExpandedCellRng = function (cellRng) { + return eq(cellRng.start(), cellRng.end()) === false; + }; + var getTableFromCellRng = function (cellRng, isRoot) { + return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) { + return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) { + return someIf(eq(startParentTable, endParentTable), startParentTable); + }); + }); + }; + var getTableCells = function (table) { + return descendants$1(table, 'td,th'); + }; + var getCellRangeFromStartTable = function (cellRng, isRoot) { + return getClosestTable(cellRng.start(), isRoot).bind(function (table) { + return last(getTableCells(table)).map(function (endCell) { + return tableCellRng(cellRng.start(), endCell); + }); + }); + }; + var partialSelection = function (isRoot, rng) { + var startCell = getClosestCell$1(rng.startContainer, isRoot); + var endCell = getClosestCell$1(rng.endContainer, isRoot); + return rng.collapsed ? Option.none() : lift2(startCell, endCell, tableCellRng).fold(function () { + return startCell.fold(function () { + return endCell.bind(function (endCell) { + return getClosestTable(endCell, isRoot).bind(function (table) { + return head(getTableCells(table)).map(function (startCell) { + return tableCellRng(startCell, endCell); + }); + }); + }); + }, function (startCell) { + return getClosestTable(startCell, isRoot).bind(function (table) { + return last(getTableCells(table)).map(function (endCell) { + return tableCellRng(startCell, endCell); + }); + }); + }); + }, function (cellRng) { + return isWithinSameTable(isRoot, cellRng) ? Option.none() : getCellRangeFromStartTable(cellRng, isRoot); + }); + }; + var isWithinSameTable = function (isRoot, cellRng) { + return getTableFromCellRng(cellRng, isRoot).isSome(); + }; + var getCellRng = function (rng, isRoot) { + var startCell = getClosestCell$1(rng.startContainer, isRoot); + var endCell = getClosestCell$1(rng.endContainer, isRoot); + return lift2(startCell, endCell, tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) { + return isWithinSameTable(isRoot, cellRng); + }).orThunk(function () { + return partialSelection(isRoot, rng); + }); + }; + var getTableSelectionFromCellRng = function (cellRng, isRoot) { + return getTableFromCellRng(cellRng, isRoot).map(function (table) { + return tableSelection(cellRng, table, getTableCells(table)); + }); + }; + var getTableSelectionFromRng = function (root, rng) { + var isRoot = isRootFromElement(root); + return getCellRng(rng, isRoot).bind(function (cellRng) { + return getTableSelectionFromCellRng(cellRng, isRoot); + }); + }; + var getCellIndex = function (cells, cell) { + return findIndex(cells, function (x) { + return eq(x, cell); + }); + }; + var getSelectedCells = function (tableSelection) { + return lift2(getCellIndex(tableSelection.cells(), tableSelection.rng().start()), getCellIndex(tableSelection.cells(), tableSelection.rng().end()), function (startIndex, endIndex) { + return tableSelection.cells().slice(startIndex, endIndex + 1); + }); + }; + var getAction = function (tableSelection) { + return getSelectedCells(tableSelection).map(function (selected) { + var cells = tableSelection.cells(); + return selected.length === cells.length ? deleteAction.removeTable(tableSelection.table()) : deleteAction.emptyCells(selected); + }); + }; + var getActionFromRange = function (root, rng) { + return getTableSelectionFromRng(root, rng).bind(getAction); + }; + + var emptyCells = function (editor, cells) { + each(cells, PaddingBr.fillWithPaddingBr); + editor.selection.setCursorLocation(cells[0].dom(), 0); + return true; + }; + var deleteTableElement = function (editor, table) { + DeleteElement.deleteElement(editor, false, table); + return true; + }; + var deleteCellRange = function (editor, rootElm, rng) { + return getActionFromRange(rootElm, rng).map(function (action) { + return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor)); + }); + }; + var deleteCaptionRange = function (editor, caption) { + return emptyElement(editor, caption); + }; + var deleteTableRange = function (editor, rootElm, rng, startElm) { + return getParentCaption(rootElm, startElm).fold(function () { + return deleteCellRange(editor, rootElm, rng); + }, function (caption) { + return deleteCaptionRange(editor, caption); + }).getOr(false); + }; + var deleteRange$1 = function (editor, startElm) { + var rootNode = Element.fromDom(editor.getBody()); + var rng = editor.selection.getRng(); + var selectedCells = TableCellSelection.getCellsFromEditor(editor); + return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm); + }; + var getParentCell = function (rootElm, elm) { + return find(Parents.parentsAndSelf(elm, rootElm), isTableCell); + }; + var getParentCaption = function (rootElm, elm) { + return find(Parents.parentsAndSelf(elm, rootElm), function (elm) { + return name(elm) === 'caption'; + }); + }; + var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) { + return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) { + return getParentCell(rootElm, Element.fromDom(to.getNode())).map(function (toCell) { + return eq(toCell, fromCell) === false; + }); + }); + }; + var emptyElement = function (editor, elm) { + PaddingBr.fillWithPaddingBr(elm); + editor.selection.setCursorLocation(elm.dom(), 0); + return Option.some(true); + }; + var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) { + return CaretFinder.firstPositionIn(fromCaption.dom()).bind(function (first) { + return CaretFinder.lastPositionIn(fromCaption.dom()).map(function (last) { + return forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first); + }); + }).getOr(true); + }; + var emptyCaretCaption = function (editor, elm) { + return emptyElement(editor, elm); + }; + var validateCaretCaption = function (rootElm, fromCaption, to) { + return getParentCaption(rootElm, Element.fromDom(to.getNode())).map(function (toCaption) { + return eq(toCaption, fromCaption) === false; + }); + }; + var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) { + return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) { + return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to); + }).or(Option.some(true)); + }; + var deleteCaretCells = function (editor, forward, rootElm, startElm) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return getParentCell(rootElm, startElm).bind(function (fromCell) { + return Empty.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from); + }).getOr(false); + }; + var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) { + var from = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return Empty.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from); + }; + var isNearTable = function (forward, pos) { + return forward ? isBeforeTable(pos) : isAfterTable(pos); + }; + var isBeforeOrAfterTable = function (editor, forward) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return isNearTable(forward, fromPos) || CaretFinder.fromPosition(forward, editor.getBody(), fromPos).map(function (pos) { + return isNearTable(forward, pos); + }).getOr(false); + }; + var deleteCaret$1 = function (editor, forward, startElm) { + var rootElm = Element.fromDom(editor.getBody()); + return getParentCaption(rootElm, startElm).fold(function () { + return deleteCaretCells(editor, forward, rootElm, startElm) || isBeforeOrAfterTable(editor, forward); + }, function (fromCaption) { + return deleteCaretCaption(editor, forward, rootElm, fromCaption).getOr(false); + }); + }; + var backspaceDelete$6 = function (editor, forward) { + var startElm = Element.fromDom(editor.selection.getStart(true)); + var cells = TableCellSelection.getCellsFromEditor(editor); + return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$1(editor, forward, startElm) : deleteRange$1(editor, startElm); + }; + var TableDelete = { backspaceDelete: backspaceDelete$6 }; + + var deleteCaret$2 = function (editor, forward) { + var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return CaretFinder.fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) { + return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos); + }).bind(function (pos) { + return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, pos)); + }).map(function (elm) { + editor.selection.select(elm); + return true; + }).getOr(false); + }; + var backspaceDelete$7 = function (editor, forward) { + return editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : false; + }; + var PageBreakDelete = { backspaceDelete: backspaceDelete$7 }; + + var isEditable$1 = function (target) { + return closest(target, function (elm) { + return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom()); + }).exists(function (elm) { + return NodeType.isContentEditableTrue(elm.dom()); + }); + }; + var parseIndentValue = function (value) { + var number = parseInt(value, 10); + return isNaN(number) ? 0 : number; + }; + var getIndentStyleName = function (useMargin, element) { + var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding'; + var suffix = get$4(element, 'direction') === 'rtl' ? '-right' : '-left'; + return indentStyleName + suffix; + }; + var indentElement = function (dom, command, useMargin, value, unit, element) { + var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element)); + if (command === 'outdent') { + var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value); + dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : ''); + } else { + var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit; + dom.setStyle(element, indentStyleName, styleValue); + } + }; + var validateBlocks = function (editor, blocks) { + return forall(blocks, function (block) { + var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block); + var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0); + var contentEditable = editor.dom.getContentEditable(block.dom()); + return contentEditable !== 'false' && intentValue > 0; + }); + }; + var canOutdent = function (editor) { + var blocks = getBlocksToIndent(editor); + return !editor.mode.isReadOnly() && (blocks.length > 1 || validateBlocks(editor, blocks)); + }; + var isListComponent = function (el) { + return isList(el) || isListItem(el); + }; + var parentIsListComponent = function (el) { + return parent(el).map(isListComponent).getOr(false); + }; + var getBlocksToIndent = function (editor) { + return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) { + return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el); + }); + }; + var handle = function (editor, command) { + var dom = editor.dom, selection = editor.selection, formatter = editor.formatter; + var indentation = Settings.getIndentation(editor); + var indentUnit = /[a-z%]+$/i.exec(indentation)[0]; + var indentValue = parseInt(indentation, 10); + var useMargin = Settings.shouldIndentUseMargin(editor); + var forcedRootBlock = Settings.getForcedRootBlock(editor); + if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) { + if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) { + formatter.apply('div'); + } + } + each(getBlocksToIndent(editor), function (block) { + indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom()); + }); + }; + + var navigateIgnoreEmptyTextNodes = function (forward, root, from) { + return CaretFinder.navigateIgnore(forward, root, from, isEmptyText); + }; + var getClosestBlock = function (root, pos) { + return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + }; + var isAtBeforeAfterBlockBoundary = function (forward, root, pos) { + return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) { + return getClosestBlock(root, pos).fold(function () { + return isInSameBlock(newPos, pos, root.dom()) === false; + }, function (fromBlock) { + return isInSameBlock(newPos, pos, root.dom()) === false && contains$2(fromBlock, Element.fromDom(newPos.container())); + }); + }); + }; + var isAtBlockBoundary = function (forward, root, pos) { + return getClosestBlock(root, pos).fold(function () { + return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) { + return isInSameBlock(newPos, pos, root.dom()) === false; + }); + }, function (parent) { + return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone(); + }); + }; + var isAtStartOfBlock = curry(isAtBlockBoundary, false); + var isAtEndOfBlock = curry(isAtBlockBoundary, true); + var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false); + var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true); + + var backspaceDelete$8 = function (editor, _caret, _forward) { + if (editor.selection.isCollapsed() && canOutdent(editor)) { + var dom = editor.dom; + var rng = editor.selection.getRng(); + var pos = CaretPosition$1.fromRangeStart(rng); + var block = dom.getParent(rng.startContainer, dom.isBlock); + if (block !== null && isAtStartOfBlock(Element.fromDom(block), pos)) { + handle(editor, 'outdent'); + return true; + } + } + return false; + }; + var Outdent = { backspaceDelete: backspaceDelete$8 }; + + var executeKeydownOverride$1 = function (editor, caret, evt) { + MatchKeys.execute([ + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(Outdent.backspaceDelete, editor, false) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(TableDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(TableDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, true) + }, + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, false) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, true) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var executeKeyupOverride = function (editor, evt) { + MatchKeys.execute([ + { + keyCode: VK.BACKSPACE, + action: MatchKeys.action(CefDelete.paddEmptyElement, editor) + }, + { + keyCode: VK.DELETE, + action: MatchKeys.action(CefDelete.paddEmptyElement, editor) + } + ], evt); + }; + var setup$a = function (editor, caret) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$1(editor, caret, evt); + } + }); + editor.on('keyup', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeyupOverride(editor, evt); + } + }); + }; + var DeleteBackspaceKeys = { setup: setup$a }; + + var firstNonWhiteSpaceNodeSibling = function (node) { + while (node) { + if (node.nodeType === 1 || node.nodeType === 3 && node.data && /[\r\n\s]/.test(node.data)) { + return node; + } + node = node.nextSibling; + } + }; + var moveToCaretPosition = function (editor, root) { + var node, rng, lastNode = root; + var dom = editor.dom; + var moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements(); + if (!root) { + return; + } + if (/^(LI|DT|DD)$/.test(root.nodeName)) { + var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild); + if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) { + root.insertBefore(dom.doc.createTextNode(nbsp), root.firstChild); + } + } + rng = dom.createRng(); + root.normalize(); + if (root.hasChildNodes()) { + var walker = new TreeWalker(root, root); + while (node = walker.current()) { + if (NodeType.isText(node)) { + rng.setStart(node, 0); + rng.setEnd(node, 0); + break; + } + if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) { + rng.setStartBefore(node); + rng.setEndBefore(node); + break; + } + lastNode = node; + node = walker.next(); + } + if (!node) { + rng.setStart(lastNode, 0); + rng.setEnd(lastNode, 0); + } + } else { + if (NodeType.isBr(root)) { + if (root.nextSibling && dom.isBlock(root.nextSibling)) { + rng.setStartBefore(root); + rng.setEndBefore(root); + } else { + rng.setStartAfter(root); + rng.setEndAfter(root); + } + } else { + rng.setStart(root, 0); + rng.setEnd(root, 0); + } + } + editor.selection.setRng(rng); + ScrollIntoView.scrollRangeIntoView(editor, rng); + }; + var getEditableRoot = function (dom, node) { + var root = dom.getRoot(); + var parent, editableRoot; + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== 'false') { + if (dom.getContentEditable(parent) === 'true') { + editableRoot = parent; + } + parent = parent.parentNode; + } + return parent !== root ? editableRoot : root; + }; + var getParentBlock$2 = function (editor) { + return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock)); + }; + var getParentBlockName = function (editor) { + return getParentBlock$2(editor).fold(constant(''), function (parentBlock) { + return parentBlock.nodeName.toUpperCase(); + }); + }; + var isListItemParentBlock = function (editor) { + return getParentBlock$2(editor).filter(function (elm) { + return isListItem(Element.fromDom(elm)); + }).isSome(); + }; + var NewLineUtils = { + moveToCaretPosition: moveToCaretPosition, + getEditableRoot: getEditableRoot, + getParentBlock: getParentBlock$2, + getParentBlockName: getParentBlockName, + isListItemParentBlock: isListItemParentBlock + }; + + var hasFirstChild = function (elm, name) { + return elm.firstChild && elm.firstChild.nodeName === name; + }; + var hasParent$1 = function (elm, parentName) { + return elm && elm.parentNode && elm.parentNode.nodeName === parentName; + }; + var isListBlock = function (elm) { + return elm && /^(OL|UL|LI)$/.test(elm.nodeName); + }; + var isNestedList = function (elm) { + return isListBlock(elm) && isListBlock(elm.parentNode); + }; + var getContainerBlock = function (containerBlock) { + var containerBlockParent = containerBlock.parentNode; + if (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) { + return containerBlockParent; + } + return containerBlock; + }; + var isFirstOrLastLi = function (containerBlock, parentBlock, first) { + var node = containerBlock[first ? 'firstChild' : 'lastChild']; + while (node) { + if (NodeType.isElement(node)) { + break; + } + node = node[first ? 'nextSibling' : 'previousSibling']; + } + return node === parentBlock; + }; + var insert = function (editor, createNewBlock, containerBlock, parentBlock, newBlockName) { + var dom = editor.dom; + var rng = editor.selection.getRng(); + if (containerBlock === editor.getBody()) { + return; + } + if (isNestedList(containerBlock)) { + newBlockName = 'LI'; + } + var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR'); + if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) { + if (hasParent$1(containerBlock, 'LI')) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + } else { + dom.replace(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) { + if (hasParent$1(containerBlock, 'LI')) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + newBlock.appendChild(dom.doc.createTextNode(' ')); + newBlock.appendChild(containerBlock); + } else { + containerBlock.parentNode.insertBefore(newBlock, containerBlock); + } + } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) { + dom.insertAfter(newBlock, getContainerBlock(containerBlock)); + } else { + containerBlock = getContainerBlock(containerBlock); + var tmpRng = rng.cloneRange(); + tmpRng.setStartAfter(parentBlock); + tmpRng.setEndAfter(containerBlock); + var fragment = tmpRng.extractContents(); + if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) { + newBlock = fragment.firstChild; + dom.insertAfter(fragment, containerBlock); + } else { + dom.insertAfter(fragment, containerBlock); + dom.insertAfter(newBlock, containerBlock); + } + } + dom.remove(parentBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + }; + var InsertLi = { insert: insert }; + + var trimZwsp = function (fragment) { + each(descendants(Element.fromDom(fragment), isText), function (text) { + var rawNode = text.dom(); + rawNode.nodeValue = Zwsp.trim(rawNode.nodeValue); + }); + }; + var isEmptyAnchor = function (dom, elm) { + return elm && elm.nodeName === 'A' && dom.isEmpty(elm); + }; + var isTableCell$4 = function (node) { + return node && /^(TD|TH|CAPTION)$/.test(node.nodeName); + }; + var emptyBlock = function (elm) { + elm.innerHTML = '
    '; + }; + var containerAndSiblingName = function (container, nodeName) { + return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName; + }; + var canSplitBlock = function (dom, node) { + return node && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true'; + }; + var trimInlineElementsOnLeftSideOfBlock = function (dom, nonEmptyElementsMap, block) { + var node = block; + var firstChilds = []; + var i; + if (!node) { + return; + } + while (node = node.firstChild) { + if (dom.isBlock(node)) { + return; + } + if (NodeType.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) { + firstChilds.push(node); + } + } + i = firstChilds.length; + while (i--) { + node = firstChilds[i]; + if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') { + dom.remove(node); + } else { + if (isEmptyAnchor(dom, node)) { + dom.remove(node); + } + } + } + }; + var normalizeZwspOffset = function (start, container, offset) { + if (NodeType.isText(container) === false) { + return offset; + } else if (start) { + return offset === 1 && container.data.charAt(offset - 1) === Zwsp.ZWSP ? 0 : offset; + } else { + return offset === container.data.length - 1 && container.data.charAt(offset) === Zwsp.ZWSP ? container.data.length : offset; + } + }; + var includeZwspInRange = function (rng) { + var newRng = rng.cloneRange(); + newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset)); + newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset)); + return newRng; + }; + var trimLeadingLineBreaks = function (node) { + do { + if (NodeType.isText(node)) { + node.nodeValue = node.nodeValue.replace(/^[\r\n]+/, ''); + } + node = node.firstChild; + } while (node); + }; + var getEditableRoot$1 = function (dom, node) { + var root = dom.getRoot(); + var parent, editableRoot; + parent = node; + while (parent !== root && dom.getContentEditable(parent) !== 'false') { + if (dom.getContentEditable(parent) === 'true') { + editableRoot = parent; + } + parent = parent.parentNode; + } + return parent !== root ? editableRoot : root; + }; + var applyAttributes = function (editor, node, forcedRootBlockAttrs) { + Option.from(forcedRootBlockAttrs.style).map(editor.dom.parseStyle).each(function (attrStyles) { + var currentStyles = getAllRaw(Element.fromDom(node)); + var newStyles = __assign(__assign({}, currentStyles), attrStyles); + editor.dom.setStyles(node, newStyles); + }); + var attrClassesOpt = Option.from(forcedRootBlockAttrs.class).map(function (attrClasses) { + return attrClasses.split(/\s+/); + }); + var currentClassesOpt = Option.from(node.className).map(function (currentClasses) { + return filter(currentClasses.split(/\s+/), function (clazz) { + return clazz !== ''; + }); + }); + lift2(attrClassesOpt, currentClassesOpt, function (attrClasses, currentClasses) { + var filteredClasses = filter(currentClasses, function (clazz) { + return !contains(attrClasses, clazz); + }); + var newClasses = __spreadArrays(attrClasses, filteredClasses); + editor.dom.setAttrib(node, 'class', newClasses.join(' ')); + }); + var appliedAttrs = [ + 'style', + 'class' + ]; + var remainingAttrs = filter$1(forcedRootBlockAttrs, function (_, attrs) { + return !contains(appliedAttrs, attrs); + }); + editor.dom.setAttribs(node, remainingAttrs); + }; + var setForcedBlockAttrs = function (editor, node) { + var forcedRootBlockName = Settings.getForcedRootBlock(editor); + if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) { + var forcedRootBlockAttrs = Settings.getForcedRootBlockAttrs(editor); + applyAttributes(editor, node, forcedRootBlockAttrs); + } + }; + var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) { + var newBlock, parentBlock, startNode, node, next, rootBlockName; + var blockName = newBlockName || 'P'; + var dom = editor.dom, editableRoot = getEditableRoot$1(dom, container); + parentBlock = dom.getParent(container, dom.isBlock); + if (!parentBlock || !canSplitBlock(dom, parentBlock)) { + parentBlock = parentBlock || editableRoot; + if (parentBlock === editor.getBody() || isTableCell$4(parentBlock)) { + rootBlockName = parentBlock.nodeName.toLowerCase(); + } else { + rootBlockName = parentBlock.parentNode.nodeName.toLowerCase(); + } + if (!parentBlock.hasChildNodes()) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(editor, newBlock); + parentBlock.appendChild(newBlock); + rng.setStart(newBlock, 0); + rng.setEnd(newBlock, 0); + return newBlock; + } + node = container; + while (node.parentNode !== parentBlock) { + node = node.parentNode; + } + while (node && !dom.isBlock(node)) { + startNode = node; + node = node.previousSibling; + } + if (startNode && editor.schema.isValidChild(rootBlockName, blockName.toLowerCase())) { + newBlock = dom.create(blockName); + setForcedBlockAttrs(editor, newBlock); + startNode.parentNode.insertBefore(newBlock, startNode); + node = startNode; + while (node && !dom.isBlock(node)) { + next = node.nextSibling; + newBlock.appendChild(node); + node = next; + } + rng.setStart(container, offset); + rng.setEnd(container, offset); + } + } + return container; + }; + var addBrToBlockIfNeeded = function (dom, block) { + var lastChild; + block.normalize(); + lastChild = block.lastChild; + if (!lastChild || /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) { + dom.add(block, 'br'); + } + }; + var insert$1 = function (editor, evt) { + var tmpRng, editableRoot, container, offset, parentBlock, shiftKey; + var newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer; + var dom = editor.dom; + var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(); + var rng = editor.selection.getRng(); + var createNewBlock = function (name) { + var node = container, block, clonedNode, caretNode; + var textInlineElements = schema.getTextInlineElements(); + if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') { + block = dom.create(name || newBlockName); + } else { + block = parentBlock.cloneNode(false); + } + caretNode = block; + if (Settings.shouldKeepStyles(editor) === false) { + dom.setAttrib(block, 'style', null); + dom.setAttrib(block, 'class', null); + } else { + do { + if (textInlineElements[node.nodeName]) { + if (isCaretNode(node) || Bookmarks.isBookmarkNode(node)) { + continue; + } + clonedNode = node.cloneNode(false); + dom.setAttrib(clonedNode, 'id', ''); + if (block.hasChildNodes()) { + clonedNode.appendChild(block.firstChild); + block.appendChild(clonedNode); + } else { + caretNode = clonedNode; + block.appendChild(clonedNode); + } + } + } while ((node = node.parentNode) && node !== editableRoot); + } + setForcedBlockAttrs(editor, block); + emptyBlock(caretNode); + return block; + }; + var isCaretAtStartOrEndOfBlock = function (start) { + var node, name; + var normalizedOffset = normalizeZwspOffset(start, container, offset); + if (NodeType.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) { + return false; + } + if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) { + return true; + } + if (start && NodeType.isElement(container) && container === parentBlock.firstChild) { + return true; + } + if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) { + return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start; + } + var walker = new TreeWalker(container, parentBlock); + if (NodeType.isText(container)) { + if (start && normalizedOffset === 0) { + walker.prev(); + } else if (!start && normalizedOffset === container.nodeValue.length) { + walker.next(); + } + } + while (node = walker.current()) { + if (NodeType.isElement(node)) { + if (!node.getAttribute('data-mce-bogus')) { + name = node.nodeName.toLowerCase(); + if (nonEmptyElementsMap[name] && name !== 'br') { + return false; + } + } + } else if (NodeType.isText(node) && !/^[ \t\r\n]*$/.test(node.nodeValue)) { + return false; + } + if (start) { + walker.prev(); + } else { + walker.next(); + } + } + return true; + }; + var insertNewBlockAfter = function () { + if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') { + newBlock = createNewBlock(newBlockName); + } else { + newBlock = createNewBlock(); + } + if (Settings.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) { + newBlock = dom.split(containerBlock, parentBlock); + } else { + dom.insertAfter(newBlock, parentBlock); + } + NewLineUtils.moveToCaretPosition(editor, newBlock); + }; + NormalizeRange.normalize(dom, rng).each(function (normRng) { + rng.setStart(normRng.startContainer, normRng.startOffset); + rng.setEnd(normRng.endContainer, normRng.endOffset); + }); + container = rng.startContainer; + offset = rng.startOffset; + newBlockName = Settings.getForcedRootBlock(editor); + shiftKey = !!(evt && evt.shiftKey); + var ctrlKey = !!(evt && evt.ctrlKey); + if (NodeType.isElement(container) && container.hasChildNodes()) { + isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && NodeType.isText(container)) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + editableRoot = getEditableRoot$1(dom, container); + if (!editableRoot) { + return; + } + if (newBlockName && !shiftKey || !newBlockName && shiftKey) { + container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset); + } + parentBlock = dom.getParent(container, dom.isBlock); + containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; + containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; + if (containerBlockName === 'LI' && !ctrlKey) { + parentBlock = containerBlock; + containerBlock = containerBlock.parentNode; + parentBlockName = containerBlockName; + } + if (/^(LI|DT|DD)$/.test(parentBlockName)) { + if (dom.isEmpty(parentBlock)) { + InsertLi.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName); + return; + } + } + if (newBlockName && parentBlock === editor.getBody()) { + return; + } + newBlockName = newBlockName || 'P'; + if (isCaretContainerBlock(parentBlock)) { + newBlock = showCaretContainerBlock(parentBlock); + if (dom.isEmpty(parentBlock)) { + emptyBlock(parentBlock); + } + setForcedBlockAttrs(editor, newBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + } else if (isCaretAtStartOrEndOfBlock()) { + insertNewBlockAfter(); + } else if (isCaretAtStartOrEndOfBlock(true)) { + newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock); + NewLineUtils.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock); + } else { + tmpRng = includeZwspInRange(rng).cloneRange(); + tmpRng.setEndAfter(parentBlock); + fragment = tmpRng.extractContents(); + trimZwsp(fragment); + trimLeadingLineBreaks(fragment); + newBlock = fragment.firstChild; + dom.insertAfter(fragment, parentBlock); + trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock); + addBrToBlockIfNeeded(dom, parentBlock); + if (dom.isEmpty(parentBlock)) { + emptyBlock(parentBlock); + } + newBlock.normalize(); + if (dom.isEmpty(newBlock)) { + dom.remove(newBlock); + insertNewBlockAfter(); + } else { + setForcedBlockAttrs(editor, newBlock); + NewLineUtils.moveToCaretPosition(editor, newBlock); + } + } + dom.setAttrib(newBlock, 'id', ''); + editor.fire('NewBlock', { newBlock: newBlock }); + }; + var InsertBlock = { insert: insert$1 }; + + var hasRightSideContent = function (schema, container, parentBlock) { + var walker = new TreeWalker(container, parentBlock); + var node; + var nonEmptyElementsMap = schema.getNonEmptyElements(); + while (node = walker.next()) { + if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) { + return true; + } + } + }; + var scrollToBr = function (dom, selection, brElm) { + var marker = dom.create('span', {}, ' '); + brElm.parentNode.insertBefore(marker, brElm); + selection.scrollIntoView(marker); + dom.remove(marker); + }; + var moveSelectionToBr = function (dom, selection, brElm, extraBr) { + var rng = dom.createRng(); + if (!extraBr) { + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + } else { + rng.setStartBefore(brElm); + rng.setEndBefore(brElm); + } + selection.setRng(rng); + }; + var insertBrAtCaret = function (editor, evt) { + var selection = editor.selection; + var dom = editor.dom; + var rng = selection.getRng(); + var brElm; + var extraBr; + NormalizeRange.normalize(dom, rng).each(function (normRng) { + rng.setStart(normRng.startContainer, normRng.startOffset); + rng.setEnd(normRng.endContainer, normRng.endOffset); + }); + var offset = rng.startOffset; + var container = rng.startContainer; + if (container.nodeType === 1 && container.hasChildNodes()) { + var isAfterLastNodeInContainer = offset > container.childNodes.length - 1; + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + if (isAfterLastNodeInContainer && container.nodeType === 3) { + offset = container.nodeValue.length; + } else { + offset = 0; + } + } + var parentBlock = dom.getParent(container, dom.isBlock); + var containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null; + var containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; + var isControlKey = !!(evt && evt.ctrlKey); + if (containerBlockName === 'LI' && !isControlKey) { + parentBlock = containerBlock; + } + if (container && container.nodeType === 3 && offset >= container.nodeValue.length) { + if (!hasRightSideContent(editor.schema, container, parentBlock)) { + brElm = dom.create('br'); + rng.insertNode(brElm); + rng.setStartAfter(brElm); + rng.setEndAfter(brElm); + extraBr = true; + } + } + brElm = dom.create('br'); + rangeInsertNode(dom, rng, brElm); + scrollToBr(dom, selection, brElm); + moveSelectionToBr(dom, selection, brElm, extraBr); + editor.undoManager.add(); + }; + var insertBrBefore = function (editor, inline) { + var br = Element.fromTag('br'); + before(Element.fromDom(inline), br); + editor.undoManager.add(); + }; + var insertBrAfter = function (editor, inline) { + if (!hasBrAfter(editor.getBody(), inline)) { + after(Element.fromDom(inline), Element.fromTag('br')); + } + var br = Element.fromTag('br'); + after(Element.fromDom(inline), br); + scrollToBr(editor.dom, editor.selection, br.dom()); + moveSelectionToBr(editor.dom, editor.selection, br.dom(), false); + editor.undoManager.add(); + }; + var isBeforeBr$1 = function (pos) { + return NodeType.isBr(pos.getNode()); + }; + var hasBrAfter = function (rootNode, startNode) { + if (isBeforeBr$1(CaretPosition$1.after(startNode))) { + return true; + } else { + return CaretFinder.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) { + return NodeType.isBr(pos.getNode()); + }).getOr(false); + } + }; + var isAnchorLink = function (elm) { + return elm && elm.nodeName === 'A' && 'href' in elm; + }; + var isInsideAnchor = function (location) { + return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false)); + }; + var readInlineAnchorLocation = function (editor) { + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var position = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor); + }; + var insertBrOutsideAnchor = function (editor, location) { + location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop); + }; + var insert$2 = function (editor, evt) { + var anchorLocation = readInlineAnchorLocation(editor); + if (anchorLocation.isSome()) { + anchorLocation.each(curry(insertBrOutsideAnchor, editor)); + } else { + insertBrAtCaret(editor, evt); + } + }; + var InsertBr = { insert: insert$2 }; + + var matchesSelector = function (editor, selector) { + return NewLineUtils.getParentBlock(editor).filter(function (parentBlock) { + return selector.length > 0 && is(Element.fromDom(parentBlock), selector); + }).isSome(); + }; + var shouldInsertBr = function (editor) { + return matchesSelector(editor, Settings.getBrNewLineSelector(editor)); + }; + var shouldBlockNewLine = function (editor) { + return matchesSelector(editor, Settings.getNoNewLineSelector(editor)); + }; + var ContextSelectors = { + shouldInsertBr: shouldInsertBr, + shouldBlockNewLine: shouldBlockNewLine + }; + + var newLineAction = Adt.generate([ + { br: [] }, + { block: [] }, + { none: [] } + ]); + var shouldBlockNewLine$1 = function (editor, shiftKey) { + return ContextSelectors.shouldBlockNewLine(editor); + }; + var isBrMode = function (requiredState) { + return function (editor, shiftKey) { + var brMode = Settings.getForcedRootBlock(editor) === ''; + return brMode === requiredState; + }; + }; + var inListBlock = function (requiredState) { + return function (editor, shiftKey) { + return NewLineUtils.isListItemParentBlock(editor) === requiredState; + }; + }; + var inBlock = function (blockName, requiredState) { + return function (editor, shiftKey) { + var state = NewLineUtils.getParentBlockName(editor) === blockName.toUpperCase(); + return state === requiredState; + }; + }; + var inPreBlock = function (requiredState) { + return inBlock('pre', requiredState); + }; + var inSummaryBlock = function () { + return inBlock('summary', true); + }; + var shouldPutBrInPre$1 = function (requiredState) { + return function (editor, shiftKey) { + return Settings.shouldPutBrInPre(editor) === requiredState; + }; + }; + var inBrContext = function (editor, shiftKey) { + return ContextSelectors.shouldInsertBr(editor); + }; + var hasShiftKey = function (editor, shiftKey) { + return shiftKey; + }; + var canInsertIntoEditableRoot = function (editor) { + var forcedRootBlock = Settings.getForcedRootBlock(editor); + var rootEditable = NewLineUtils.getEditableRoot(editor.dom, editor.selection.getStart()); + return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P'); + }; + var match$2 = function (predicates, action) { + return function (editor, shiftKey) { + var isMatch = foldl(predicates, function (res, p) { + return res && p(editor, shiftKey); + }, true); + return isMatch ? Option.some(action) : Option.none(); + }; + }; + var getAction$1 = function (editor, evt) { + return LazyEvaluator.evaluateUntil([ + match$2([shouldBlockNewLine$1], newLineAction.none()), + match$2([inSummaryBlock()], newLineAction.br()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(false), + hasShiftKey + ], newLineAction.br()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(false) + ], newLineAction.block()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(true), + hasShiftKey + ], newLineAction.block()), + match$2([ + inPreBlock(true), + shouldPutBrInPre$1(true) + ], newLineAction.br()), + match$2([ + inListBlock(true), + hasShiftKey + ], newLineAction.br()), + match$2([inListBlock(true)], newLineAction.block()), + match$2([ + isBrMode(true), + hasShiftKey, + canInsertIntoEditableRoot + ], newLineAction.block()), + match$2([isBrMode(true)], newLineAction.br()), + match$2([inBrContext], newLineAction.br()), + match$2([ + isBrMode(false), + hasShiftKey + ], newLineAction.br()), + match$2([canInsertIntoEditableRoot], newLineAction.block()) + ], [ + editor, + !!(evt && evt.shiftKey) + ]).getOr(newLineAction.none()); + }; + var NewLineAction = { getAction: getAction$1 }; + + var insert$3 = function (editor, evt) { + NewLineAction.getAction(editor, evt).fold(function () { + InsertBr.insert(editor, evt); + }, function () { + InsertBlock.insert(editor, evt); + }, noop); + }; + var InsertNewLine = { insert: insert$3 }; + + var handleEnterKeyEvent = function (editor, event) { + if (event.isDefaultPrevented()) { + return; + } + event.preventDefault(); + endTypingLevelIgnoreLocks(editor.undoManager); + editor.undoManager.transact(function () { + if (editor.selection.isCollapsed() === false) { + editor.execCommand('Delete'); + } + InsertNewLine.insert(editor, event); + }); + }; + var setup$b = function (editor) { + editor.on('keydown', function (event) { + if (event.keyCode === VK.ENTER) { + handleEnterKeyEvent(editor, event); + } + }); + }; + var EnterKey = { setup: setup$b }; + + var insertTextAtPosition = function (text, pos) { + var container = pos.container(); + var offset = pos.offset(); + if (NodeType.isText(container)) { + container.insertData(offset, text); + return Option.some(CaretPosition(container, offset + text.length)); + } else { + return getElementFromPosition(pos).map(function (elm) { + var textNode = Element.fromText(text); + if (pos.isAtEnd()) { + after(elm, textNode); + } else { + before(elm, textNode); + } + return CaretPosition(textNode.dom(), text.length); + }); + } + }; + var insertNbspAtPosition = curry(insertTextAtPosition, nbsp); + var insertSpaceAtPosition = curry(insertTextAtPosition, ' '); + + var isInMiddleOfText = function (pos) { + return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd(); + }; + var getClosestBlock$1 = function (root, pos) { + var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock); + return head(parentBlocks).getOr(root); + }; + var hasSpaceBefore = function (root, pos) { + if (isInMiddleOfText(pos)) { + return isAfterSpace(pos); + } else { + return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isAfterSpace); + } + }; + var hasSpaceAfter = function (root, pos) { + if (isInMiddleOfText(pos)) { + return isBeforeSpace(pos); + } else { + return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isBeforeSpace); + } + }; + var isPreValue = function (value) { + return contains([ + 'pre', + 'pre-wrap' + ], value); + }; + var isInPre = function (pos) { + return getElementFromPosition(pos).bind(function (elm) { + return closest(elm, isElement); + }).exists(function (elm) { + return isPreValue(get$4(elm, 'white-space')); + }); + }; + var isAtBeginningOfBody = function (root, pos) { + return CaretFinder.prevPosition(root.dom(), pos).isNone(); + }; + var isAtEndOfBody = function (root, pos) { + return CaretFinder.nextPosition(root.dom(), pos).isNone(); + }; + var isAtLineBoundary = function (root, pos) { + return isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos) || isAtEndOfBlock(root, pos) || isAfterBr(root, pos) || isBeforeBr(root, pos); + }; + var needsToHaveNbsp = function (root, pos) { + if (isInPre(pos)) { + return false; + } else { + return isAtLineBoundary(root, pos) || hasSpaceBefore(root, pos) || hasSpaceAfter(root, pos); + } + }; + var needsToBeNbspLeft = function (root, pos) { + if (isInPre(pos)) { + return false; + } else { + return isAtStartOfBlock(root, pos) || isBeforeBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos); + } + }; + var leanRight = function (pos) { + var container = pos.container(); + var offset = pos.offset(); + if (NodeType.isText(container) && offset < container.data.length) { + return CaretPosition(container, offset + 1); + } else { + return pos; + } + }; + var needsToBeNbspRight = function (root, pos) { + var afterPos = leanRight(pos); + if (isInPre(afterPos)) { + return false; + } else { + return isAtEndOfBlock(root, afterPos) || isAfterBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos); + } + }; + var needsToBeNbsp = function (root, pos) { + return needsToBeNbspLeft(root, pos) || needsToBeNbspRight(root, pos); + }; + var isNbspAt = function (text, offset) { + return isNbsp(text.charAt(offset)); + }; + var hasNbsp = function (pos) { + var container = pos.container(); + return NodeType.isText(container) && contains$1(container.data, nbsp); + }; + var normalizeNbspMiddle = function (text) { + var chars = text.split(''); + return map(chars, function (chr, i) { + if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) { + return ' '; + } else { + return chr; + } + }).join(''); + }; + var normalizeNbspAtStart = function (root, node) { + var text = node.data; + var firstPos = CaretPosition(node, 0); + if (isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos)) { + node.data = ' ' + text.slice(1); + return true; + } else { + return false; + } + }; + var normalizeNbspInMiddleOfTextNode = function (node) { + var text = node.data; + var newText = normalizeNbspMiddle(text); + if (newText !== text) { + node.data = newText; + return true; + } else { + return false; + } + }; + var normalizeNbspAtEnd = function (root, node) { + var text = node.data; + var lastPos = CaretPosition(node, text.length - 1); + if (isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos)) { + node.data = text.slice(0, -1) + ' '; + return true; + } else { + return false; + } + }; + var normalizeNbsps = function (root, pos) { + return Option.some(pos).filter(hasNbsp).bind(function (pos) { + var container = pos.container(); + var normalized = normalizeNbspAtStart(root, container) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container); + return normalized ? Option.some(pos) : Option.none(); + }); + }; + var normalizeNbspsInEditor = function (editor) { + var root = Element.fromDom(editor.getBody()); + if (editor.selection.isCollapsed()) { + normalizeNbsps(root, CaretPosition.fromRangeStart(editor.selection.getRng())).each(function (pos) { + editor.selection.setRng(pos.toRange()); + }); + } + }; + + var locationToCaretPosition = function (root) { + return function (location) { + return location.fold(function (element) { + return CaretFinder.prevPosition(root.dom(), CaretPosition$1.before(element)); + }, function (element) { + return CaretFinder.firstPositionIn(element); + }, function (element) { + return CaretFinder.lastPositionIn(element); + }, function (element) { + return CaretFinder.nextPosition(root.dom(), CaretPosition$1.after(element)); + }); + }; + }; + var insertInlineBoundarySpaceOrNbsp = function (root, pos) { + return function (checkPos) { + return needsToHaveNbsp(root, checkPos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos); + }; + }; + var setSelection$1 = function (editor) { + return function (pos) { + editor.selection.setRng(pos.toRange()); + editor.nodeChanged(); + return true; + }; + }; + var insertSpaceOrNbspAtSelection = function (editor) { + var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + var root = Element.fromDom(editor.getBody()); + if (editor.selection.isCollapsed()) { + var isInlineTarget = curry(InlineUtils.isInlineTarget, editor); + var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng()); + return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor)); + } else { + return false; + } + }; + + var executeKeydownOverride$2 = function (editor, evt) { + MatchKeys.execute([{ + keyCode: VK.SPACEBAR, + action: MatchKeys.action(insertSpaceOrNbspAtSelection, editor) + }], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$c = function (editor) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$2(editor, evt); + } + }); + }; + var SpaceKey = { setup: setup$c }; + + var findBlockCaretContainer = function (editor) { + return descendant(Element.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) { + return elm.dom(); + }); + }; + var removeIeControlRect = function (editor) { + editor.selection.setRng(editor.selection.getRng()); + }; + var showBlockCaretContainer = function (editor, blockCaretContainer) { + if (blockCaretContainer.hasAttribute('data-mce-caret')) { + showCaretContainerBlock(blockCaretContainer); + removeIeControlRect(editor); + editor.selection.scrollIntoView(blockCaretContainer); + } + }; + var handleBlockContainer = function (editor, e) { + var blockCaretContainer = findBlockCaretContainer(editor); + if (!blockCaretContainer) { + return; + } + if (e.type === 'compositionstart') { + e.preventDefault(); + e.stopPropagation(); + showBlockCaretContainer(editor, blockCaretContainer); + return; + } + if (hasContent(blockCaretContainer)) { + showBlockCaretContainer(editor, blockCaretContainer); + editor.undoManager.add(); + } + }; + var setup$d = function (editor) { + editor.on('keyup compositionstart', curry(handleBlockContainer, editor)); + }; + var CaretContainerInput = { setup: setup$d }; + + var browser$5 = detect$3().browser; + var setupIeInput = function (editor) { + var keypressThrotter = first(function () { + if (!editor.composing) { + normalizeNbspsInEditor(editor); + } + }, 0); + if (browser$5.isIE()) { + editor.on('keypress', function (e) { + keypressThrotter.throttle(); + }); + editor.on('remove', function (e) { + keypressThrotter.cancel(); + }); + } + }; + var setup$e = function (editor) { + setupIeInput(editor); + editor.on('input', function (e) { + if (e.isComposing === false) { + normalizeNbspsInEditor(editor); + } + }); + }; + + var executeKeydownOverride$3 = function (editor, evt) { + MatchKeys.execute([ + { + keyCode: VK.END, + action: moveToLineEndPoint(editor, true) + }, + { + keyCode: VK.HOME, + action: moveToLineEndPoint(editor, false) + } + ], evt).each(function (_) { + evt.preventDefault(); + }); + }; + var setup$f = function (editor) { + editor.on('keydown', function (evt) { + if (evt.isDefaultPrevented() === false) { + executeKeydownOverride$3(editor, evt); + } + }); + }; + var HomeEndKeys = { setup: setup$f }; + + var setup$g = function (editor) { + var caret = BoundarySelection.setupSelectedState(editor); + CaretContainerInput.setup(editor); + ArrowKeys.setup(editor, caret); + DeleteBackspaceKeys.setup(editor, caret); + EnterKey.setup(editor); + SpaceKey.setup(editor); + setup$e(editor); + HomeEndKeys.setup(editor); + }; + var KeyboardOverrides = { setup: setup$g }; + + var NodeChange = function () { + function NodeChange(editor) { + this.lastPath = []; + this.editor = editor; + var lastRng; + var self = this; + if (!('onselectionchange' in editor.getDoc())) { + editor.on('NodeChange click mouseup keyup focus', function (e) { + var nativeRng, fakeRng; + nativeRng = editor.selection.getRng(); + fakeRng = { + startContainer: nativeRng.startContainer, + startOffset: nativeRng.startOffset, + endContainer: nativeRng.endContainer, + endOffset: nativeRng.endOffset + }; + if (e.type === 'nodechange' || !RangeCompare.isEq(fakeRng, lastRng)) { + editor.fire('SelectionChange'); + } + lastRng = fakeRng; + }); + } + editor.on('contextmenu', function () { + editor.fire('SelectionChange'); + }); + editor.on('SelectionChange', function () { + var startElm = editor.selection.getStart(true); + if (!startElm || !Env.range && editor.selection.isCollapsed()) { + return; + } + if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) { + editor.nodeChanged({ selectionChange: true }); + } + }); + editor.on('mouseup', function (e) { + if (!e.isDefaultPrevented() && hasAnyRanges(editor)) { + if (editor.selection.getNode().nodeName === 'IMG') { + Delay.setEditorTimeout(editor, function () { + editor.nodeChanged(); + }); + } else { + editor.nodeChanged(); + } + } + }); + } + NodeChange.prototype.nodeChanged = function (args) { + var selection = this.editor.selection; + var node, parents, root; + if (this.editor.initialized && selection && !this.editor.settings.disable_nodechange && !this.editor.mode.isReadOnly()) { + root = this.editor.getBody(); + node = selection.getStart(true) || root; + if (node.ownerDocument !== this.editor.getDoc() || !this.editor.dom.isChildOf(node, root)) { + node = root; + } + parents = []; + this.editor.dom.getParent(node, function (node) { + if (node === root) { + return true; + } + parents.push(node); + }); + args = args || {}; + args.element = node; + args.parents = parents; + this.editor.fire('NodeChange', args); + } + }; + NodeChange.prototype.isSameElementPath = function (startElm) { + var i, currentPath; + currentPath = this.editor.$(startElm).parentsUntil(this.editor.getBody()).add(startElm); + if (currentPath.length === this.lastPath.length) { + for (i = currentPath.length; i >= 0; i--) { + if (currentPath[i] !== this.lastPath[i]) { + break; + } + } + if (i === -1) { + this.lastPath = currentPath; + return true; + } + } + this.lastPath = currentPath; + return false; + }; + return NodeChange; + }(); + + var preventSummaryToggle = function (editor) { + editor.on('click', function (e) { + if (editor.dom.getParent(e.target, 'details')) { + e.preventDefault(); + } + }); + }; + var filterDetails = function (editor) { + editor.parser.addNodeFilter('details', function (elms) { + each(elms, function (details) { + details.attr('data-mce-open', details.attr('open')); + details.attr('open', 'open'); + }); + }); + editor.serializer.addNodeFilter('details', function (elms) { + each(elms, function (details) { + var open = details.attr('data-mce-open'); + details.attr('open', isString(open) ? open : null); + details.attr('data-mce-open', null); + }); + }); + }; + var setup$h = function (editor) { + preventSummaryToggle(editor); + filterDetails(editor); + }; + + var isTextBlockNode = function (node) { + return NodeType.isElement(node) && isTextBlock(Element.fromDom(node)); + }; + var normalizeSelection$1 = function (editor) { + var rng = editor.selection.getRng(); + var startPos = CaretPosition.fromRangeStart(rng); + var endPos = CaretPosition.fromRangeEnd(rng); + if (CaretPosition.isElementPosition(startPos)) { + var container = startPos.container(); + if (isTextBlockNode(container)) { + CaretFinder.firstPositionIn(container).each(function (pos) { + return rng.setStart(pos.container(), pos.offset()); + }); + } + } + if (CaretPosition.isElementPosition(endPos)) { + var container = startPos.container(); + if (isTextBlockNode(container)) { + CaretFinder.lastPositionIn(container).each(function (pos) { + return rng.setEnd(pos.container(), pos.offset()); + }); + } + } + editor.selection.setRng(RangeNormalizer.normalize(rng)); + }; + var setup$i = function (editor) { + editor.on('click', function (e) { + if (e.detail >= 3) { + normalizeSelection$1(editor); + } + }); + }; + + var getAbsolutePosition = function (elm) { + var doc, docElem, win, clientRect; + clientRect = elm.getBoundingClientRect(); + doc = elm.ownerDocument; + docElem = doc.documentElement; + win = doc.defaultView; + return { + top: clientRect.top + win.pageYOffset - docElem.clientTop, + left: clientRect.left + win.pageXOffset - docElem.clientLeft + }; + }; + var getBodyPosition = function (editor) { + return editor.inline ? getAbsolutePosition(editor.getBody()) : { + left: 0, + top: 0 + }; + }; + var getScrollPosition = function (editor) { + var body = editor.getBody(); + return editor.inline ? { + left: body.scrollLeft, + top: body.scrollTop + } : { + left: 0, + top: 0 + }; + }; + var getBodyScroll = function (editor) { + var body = editor.getBody(), docElm = editor.getDoc().documentElement; + var inlineScroll = { + left: body.scrollLeft, + top: body.scrollTop + }; + var iframeScroll = { + left: body.scrollLeft || docElm.scrollLeft, + top: body.scrollTop || docElm.scrollTop + }; + return editor.inline ? inlineScroll : iframeScroll; + }; + var getMousePosition = function (editor, event) { + if (event.target.ownerDocument !== editor.getDoc()) { + var iframePosition = getAbsolutePosition(editor.getContentAreaContainer()); + var scrollPosition = getBodyScroll(editor); + return { + left: event.pageX - iframePosition.left + scrollPosition.left, + top: event.pageY - iframePosition.top + scrollPosition.top + }; + } + return { + left: event.pageX, + top: event.pageY + }; + }; + var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) { + return { + pageX: mousePosition.left - bodyPosition.left + scrollPosition.left, + pageY: mousePosition.top - bodyPosition.top + scrollPosition.top + }; + }; + var calc = function (editor, event) { + return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event)); + }; + var MousePosition = { calc: calc }; + + var isContentEditableFalse$a = NodeType.isContentEditableFalse, isContentEditableTrue$4 = NodeType.isContentEditableTrue; + var isDraggable = function (rootElm, elm) { + return isContentEditableFalse$a(elm) && elm !== rootElm; + }; + var isValidDropTarget = function (editor, targetElement, dragElement) { + if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) { + return false; + } + return !isContentEditableFalse$a(targetElement); + }; + var cloneElement = function (elm) { + var cloneElm = elm.cloneNode(true); + cloneElm.removeAttribute('data-mce-selected'); + return cloneElm; + }; + var createGhost = function (editor, elm, width, height) { + var clonedElm = elm.cloneNode(true); + editor.dom.setStyles(clonedElm, { + width: width, + height: height + }); + editor.dom.setAttrib(clonedElm, 'data-mce-selected', null); + var ghostElm = editor.dom.create('div', { + 'class': 'mce-drag-container', + 'data-mce-bogus': 'all', + 'unselectable': 'on', + 'contenteditable': 'false' + }); + editor.dom.setStyles(ghostElm, { + position: 'absolute', + opacity: 0.5, + overflow: 'hidden', + border: 0, + padding: 0, + margin: 0, + width: width, + height: height + }); + editor.dom.setStyles(clonedElm, { + margin: 0, + boxSizing: 'border-box' + }); + ghostElm.appendChild(clonedElm); + return ghostElm; + }; + var appendGhostToBody = function (ghostElm, bodyElm) { + if (ghostElm.parentNode !== bodyElm) { + bodyElm.appendChild(ghostElm); + } + }; + var moveGhost = function (ghostElm, position, width, height, maxX, maxY) { + var overflowX = 0, overflowY = 0; + ghostElm.style.left = position.pageX + 'px'; + ghostElm.style.top = position.pageY + 'px'; + if (position.pageX + width > maxX) { + overflowX = position.pageX + width - maxX; + } + if (position.pageY + height > maxY) { + overflowY = position.pageY + height - maxY; + } + ghostElm.style.width = width - overflowX + 'px'; + ghostElm.style.height = height - overflowY + 'px'; + }; + var removeElement = function (elm) { + if (elm && elm.parentNode) { + elm.parentNode.removeChild(elm); + } + }; + var isLeftMouseButtonPressed = function (e) { + return e.button === 0; + }; + var hasDraggableElement = function (state) { + return state.element; + }; + var applyRelPos = function (state, position) { + return { + pageX: position.pageX - state.relX, + pageY: position.pageY + 5 + }; + }; + var start$1 = function (state, editor) { + return function (e) { + if (isLeftMouseButtonPressed(e)) { + var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$a, isContentEditableTrue$4)).getOr(null); + if (isDraggable(editor.getBody(), ceElm)) { + var elmPos = editor.dom.getPos(ceElm); + var bodyElm = editor.getBody(); + var docElm = editor.getDoc().documentElement; + state.element = ceElm; + state.screenX = e.screenX; + state.screenY = e.screenY; + state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2; + state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2; + state.relX = e.pageX - elmPos.x; + state.relY = e.pageY - elmPos.y; + state.width = ceElm.offsetWidth; + state.height = ceElm.offsetHeight; + state.ghost = createGhost(editor, ceElm, state.width, state.height); + } + } + }; + }; + var move$1 = function (state, editor) { + var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) { + editor._selectionOverrides.hideFakeCaret(); + editor.selection.placeCaretAt(clientX, clientY); + }, 0); + return function (e) { + var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY)); + if (hasDraggableElement(state) && !state.dragging && movement > 10) { + var args = editor.fire('dragstart', { target: state.element }); + if (args.isDefaultPrevented()) { + return; + } + state.dragging = true; + editor.focus(); + } + if (state.dragging) { + var targetPos = applyRelPos(state, MousePosition.calc(editor, e)); + appendGhostToBody(state.ghost, editor.getBody()); + moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY); + throttledPlaceCaretAt(e.clientX, e.clientY); + } + }; + }; + var getRawTarget = function (selection) { + var rng = selection.getSel().getRangeAt(0); + var startContainer = rng.startContainer; + return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer; + }; + var drop = function (state, editor) { + return function (e) { + if (state.dragging) { + if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) { + var targetClone_1 = cloneElement(state.element); + var args = editor.fire('drop', { + targetClone: targetClone_1, + clientX: e.clientX, + clientY: e.clientY + }); + if (!args.isDefaultPrevented()) { + targetClone_1 = args.targetClone; + editor.undoManager.transact(function () { + removeElement(state.element); + editor.insertContent(editor.dom.getOuterHTML(targetClone_1)); + editor._selectionOverrides.hideFakeCaret(); + }); + } + } + } + removeDragState(state); + }; + }; + var stop = function (state, editor) { + return function () { + if (state.dragging) { + editor.fire('dragend'); + } + removeDragState(state); + }; + }; + var removeDragState = function (state) { + state.dragging = false; + state.element = null; + removeElement(state.ghost); + }; + var bindFakeDragEvents = function (editor) { + var state = {}; + var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument; + pageDom = DOMUtils$1.DOM; + rootDocument = domGlobals.document; + dragStartHandler = start$1(state, editor); + dragHandler = move$1(state, editor); + dropHandler = drop(state, editor); + dragEndHandler = stop(state, editor); + editor.on('mousedown', dragStartHandler); + editor.on('mousemove', dragHandler); + editor.on('mouseup', dropHandler); + pageDom.bind(rootDocument, 'mousemove', dragHandler); + pageDom.bind(rootDocument, 'mouseup', dragEndHandler); + editor.on('remove', function () { + pageDom.unbind(rootDocument, 'mousemove', dragHandler); + pageDom.unbind(rootDocument, 'mouseup', dragEndHandler); + }); + }; + var blockIeDrop = function (editor) { + editor.on('drop', function (e) { + var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null; + if (isContentEditableFalse$a(realTarget) || isContentEditableFalse$a(editor.dom.getContentEditableParent(realTarget))) { + e.preventDefault(); + } + }); + }; + var init = function (editor) { + bindFakeDragEvents(editor); + blockIeDrop(editor); + }; + var DragDropOverrides = { init: init }; + + var setup$j = function (editor) { + var renderFocusCaret = first(function () { + if (!editor.removed && editor.getBody().contains(domGlobals.document.activeElement)) { + var rng = editor.selection.getRng(); + if (rng.collapsed) { + var caretRange = renderRangeCaret(editor, editor.selection.getRng(), false); + editor.selection.setRng(caretRange); + } + } + }, 0); + editor.on('focus', function () { + renderFocusCaret.throttle(); + }); + editor.on('blur', function () { + renderFocusCaret.cancel(); + }); + }; + var CefFocus = { setup: setup$j }; + + var isContentEditableTrue$5 = NodeType.isContentEditableTrue; + var isContentEditableFalse$b = NodeType.isContentEditableFalse; + var getContentEditableRoot$2 = function (editor, node) { + var root = editor.getBody(); + while (node && node !== root) { + if (isContentEditableTrue$5(node) || isContentEditableFalse$b(node)) { + return node; + } + node = node.parentNode; + } + return null; + }; + var SelectionOverrides = function (editor) { + var isBlock = function (node) { + return editor.dom.isBlock(node); + }; + var rootNode = editor.getBody(); + var fakeCaret = FakeCaret(editor, rootNode, isBlock, function () { + return EditorFocus.hasFocus(editor); + }); + var realSelectionId = 'sel-' + editor.dom.uniqueId(); + var selectedContentEditableNode; + var isFakeSelectionElement = function (elm) { + return editor.dom.hasClass(elm, 'mce-offscreen-selection'); + }; + var getRealSelectionElement = function () { + var container = editor.dom.get(realSelectionId); + return container ? container.getElementsByTagName('*')[0] : container; + }; + var setRange = function (range) { + if (range) { + editor.selection.setRng(range); + } + }; + var getRange = function () { + return editor.selection.getRng(); + }; + var showCaret = function (direction, node, before, scrollIntoView) { + if (scrollIntoView === void 0) { + scrollIntoView = true; + } + var e; + e = editor.fire('ShowCaret', { + target: node, + direction: direction, + before: before + }); + if (e.isDefaultPrevented()) { + return null; + } + if (scrollIntoView) { + editor.selection.scrollIntoView(node, direction === -1); + } + return fakeCaret.show(before, node); + }; + var showBlockCaretContainer = function (blockCaretContainer) { + if (blockCaretContainer.hasAttribute('data-mce-caret')) { + showCaretContainerBlock(blockCaretContainer); + setRange(getRange()); + editor.selection.scrollIntoView(blockCaretContainer); + } + }; + var registerEvents = function () { + editor.on('mouseup', function (e) { + var range = getRange(); + if (range.collapsed && EditorView.isXYInContentArea(editor, e.clientX, e.clientY)) { + setRange(renderCaretAtRange(editor, range, false)); + } + }); + editor.on('click', function (e) { + var contentEditableRoot; + contentEditableRoot = getContentEditableRoot$2(editor, e.target); + if (contentEditableRoot) { + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + editor.focus(); + } + if (isContentEditableTrue$5(contentEditableRoot)) { + if (editor.dom.isChildOf(contentEditableRoot, editor.selection.getNode())) { + removeContentEditableSelection(); + } + } + } + }); + editor.on('blur NewBlock', function () { + removeContentEditableSelection(); + }); + editor.on('ResizeWindow FullscreenStateChanged', function () { + return fakeCaret.reposition(); + }); + var handleTouchSelect = function (editor) { + editor.on('tap', function (e) { + var contentEditableRoot = getContentEditableRoot$2(editor, e.target); + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + setContentEditableSelection(selectNode(editor, contentEditableRoot)); + } + }, true); + }; + var hasNormalCaretPosition = function (elm) { + var caretWalker = CaretWalker(elm); + if (!elm.firstChild) { + return false; + } + var startPos = CaretPosition$1.before(elm.firstChild); + var newPos = caretWalker.next(startPos); + return newPos && !isBeforeContentEditableFalse(newPos) && !isAfterContentEditableFalse(newPos); + }; + var isInSameBlock = function (node1, node2) { + var block1 = editor.dom.getParent(node1, editor.dom.isBlock); + var block2 = editor.dom.getParent(node2, editor.dom.isBlock); + return block1 === block2; + }; + var hasBetterMouseTarget = function (targetNode, caretNode) { + var targetBlock = editor.dom.getParent(targetNode, editor.dom.isBlock); + var caretBlock = editor.dom.getParent(caretNode, editor.dom.isBlock); + if (targetBlock && editor.dom.isChildOf(targetBlock, caretBlock) && isContentEditableFalse$b(getContentEditableRoot$2(editor, targetBlock)) === false) { + return true; + } + return targetBlock && !isInSameBlock(targetBlock, caretBlock) && hasNormalCaretPosition(targetBlock); + }; + handleTouchSelect(editor); + editor.on('mousedown', function (e) { + var contentEditableRoot; + var targetElm = e.target; + if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) { + return; + } + if (EditorView.isXYInContentArea(editor, e.clientX, e.clientY) === false) { + return; + } + contentEditableRoot = getContentEditableRoot$2(editor, targetElm); + if (contentEditableRoot) { + if (isContentEditableFalse$b(contentEditableRoot)) { + e.preventDefault(); + setContentEditableSelection(selectNode(editor, contentEditableRoot)); + } else { + removeContentEditableSelection(); + if (!(isContentEditableTrue$5(contentEditableRoot) && e.shiftKey) && !RangePoint.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) { + hideFakeCaret(); + editor.selection.placeCaretAt(e.clientX, e.clientY); + } + } + } else if (isFakeCaretTarget(targetElm) === false) { + removeContentEditableSelection(); + hideFakeCaret(); + var caretInfo = closestCaret(rootNode, e.clientX, e.clientY); + if (caretInfo) { + if (!hasBetterMouseTarget(e.target, caretInfo.node)) { + e.preventDefault(); + var range = showCaret(1, caretInfo.node, caretInfo.before, false); + editor.getBody().focus(); + setRange(range); + } + } + } + }); + editor.on('keypress', function (e) { + if (VK.modifierPressed(e)) { + return; + } + switch (e.keyCode) { + default: + if (isContentEditableFalse$b(editor.selection.getNode())) { + e.preventDefault(); + } + break; + } + }); + editor.on('GetSelectionRange', function (e) { + var rng = e.range; + if (selectedContentEditableNode) { + if (!selectedContentEditableNode.parentNode) { + selectedContentEditableNode = null; + return; + } + rng = rng.cloneRange(); + rng.selectNode(selectedContentEditableNode); + e.range = rng; + } + }); + editor.on('SetSelectionRange', function (e) { + e.range = normalizeShortEndedElementSelection(e.range); + var rng = setContentEditableSelection(e.range, e.forward); + if (rng) { + e.range = rng; + } + }); + var isPasteBin = function (node) { + return node.id === 'mcepastebin'; + }; + editor.on('AfterSetSelectionRange', function (e) { + var rng = e.range; + if (!isRangeInCaretContainer(rng) && !isPasteBin(rng.startContainer.parentNode)) { + hideFakeCaret(); + } + if (!isFakeSelectionElement(rng.startContainer.parentNode)) { + removeContentEditableSelection(); + } + }); + editor.on('copy', function (e) { + var clipboardData = e.clipboardData; + if (!e.isDefaultPrevented() && e.clipboardData && !Env.ie) { + var realSelectionElement = getRealSelectionElement(); + if (realSelectionElement) { + e.preventDefault(); + clipboardData.clearData(); + clipboardData.setData('text/html', realSelectionElement.outerHTML); + clipboardData.setData('text/plain', realSelectionElement.outerText); + } + } + }); + DragDropOverrides.init(editor); + CefFocus.setup(editor); + }; + var isWithinCaretContainer = function (node) { + return isCaretContainer(node) || startsWithCaretContainer(node) || endsWithCaretContainer(node); + }; + var isRangeInCaretContainer = function (rng) { + return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer); + }; + var normalizeShortEndedElementSelection = function (rng) { + var shortEndedElements = editor.schema.getShortEndedElements(); + var newRng = editor.dom.createRng(); + var startContainer = rng.startContainer; + var startOffset = rng.startOffset; + var endContainer = rng.endContainer; + var endOffset = rng.endOffset; + if (has(shortEndedElements, startContainer.nodeName.toLowerCase())) { + if (startOffset === 0) { + newRng.setStartBefore(startContainer); + } else { + newRng.setStartAfter(startContainer); + } + } else { + newRng.setStart(startContainer, startOffset); + } + if (has(shortEndedElements, endContainer.nodeName.toLowerCase())) { + if (endOffset === 0) { + newRng.setEndBefore(endContainer); + } else { + newRng.setEndAfter(endContainer); + } + } else { + newRng.setEnd(endContainer, endOffset); + } + return newRng; + }; + var setContentEditableSelection = function (range, forward) { + var node; + var $ = editor.$; + var dom = editor.dom; + var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone; + if (!range) { + return null; + } + if (range.collapsed) { + if (!isRangeInCaretContainer(range)) { + if (forward === false) { + caretPosition = getNormalizedRangeEndPoint(-1, rootNode, range); + if (isFakeCaretTarget(caretPosition.getNode(true))) { + return showCaret(-1, caretPosition.getNode(true), false, false); + } + if (isFakeCaretTarget(caretPosition.getNode())) { + return showCaret(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false); + } + } else { + caretPosition = getNormalizedRangeEndPoint(1, rootNode, range); + if (isFakeCaretTarget(caretPosition.getNode())) { + return showCaret(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false); + } + if (isFakeCaretTarget(caretPosition.getNode(true))) { + return showCaret(1, caretPosition.getNode(true), false, false); + } + } + } + return null; + } + startContainer = range.startContainer; + startOffset = range.startOffset; + endOffset = range.endOffset; + if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$b(startContainer.parentNode)) { + startContainer = startContainer.parentNode; + startOffset = dom.nodeIndex(startContainer); + startContainer = startContainer.parentNode; + } + if (startContainer.nodeType !== 1) { + return null; + } + if (endOffset === startOffset + 1 && startContainer === range.endContainer) { + node = startContainer.childNodes[startOffset]; + } + if (!isContentEditableFalse$b(node)) { + return null; + } + targetClone = origTargetClone = node.cloneNode(true); + e = editor.fire('ObjectSelected', { + target: node, + targetClone: targetClone + }); + if (e.isDefaultPrevented()) { + return null; + } + $realSelectionContainer = descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () { + return $([]); + }, function (elm) { + return $([elm.dom()]); + }); + targetClone = e.targetClone; + if ($realSelectionContainer.length === 0) { + $realSelectionContainer = $('
    ').attr('id', realSelectionId); + $realSelectionContainer.appendTo(editor.getBody()); + } + range = editor.dom.createRng(); + if (targetClone === origTargetClone && Env.ie) { + $realSelectionContainer.empty().append('

    \xA0

    ').append(targetClone); + range.setStartAfter($realSelectionContainer[0].firstChild.firstChild); + range.setEndAfter(targetClone); + } else { + $realSelectionContainer.empty().append(nbsp).append(targetClone).append(nbsp); + range.setStart($realSelectionContainer[0].firstChild, 1); + range.setEnd($realSelectionContainer[0].lastChild, 0); + } + $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y }); + $realSelectionContainer[0].focus(); + sel = editor.selection.getSel(); + sel.removeAllRanges(); + sel.addRange(range); + var nodeElm = Element.fromDom(node); + each(descendants$1(Element.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) { + if (!eq(nodeElm, elm)) { + remove$1(elm, 'data-mce-selected'); + } + }); + if (!editor.dom.getAttrib(node, 'data-mce-selected')) { + node.setAttribute('data-mce-selected', '1'); + } + selectedContentEditableNode = node; + hideFakeCaret(); + return range; + }; + var removeContentEditableSelection = function () { + if (selectedContentEditableNode) { + selectedContentEditableNode.removeAttribute('data-mce-selected'); + descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove); + selectedContentEditableNode = null; + } + descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove); + selectedContentEditableNode = null; + }; + var destroy = function () { + fakeCaret.destroy(); + selectedContentEditableNode = null; + }; + var hideFakeCaret = function () { + fakeCaret.hide(); + }; + if (Env.ceFalse) { + registerEvents(); + } + return { + showCaret: showCaret, + showBlockCaretContainer: showBlockCaretContainer, + hideFakeCaret: hideFakeCaret, + destroy: destroy + }; + }; + + var Quirks = function (editor) { + var each = Tools.each; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + var mceInternalUrlPrefix = 'data:text/mce-internal,'; + var mceInternalDataType = isIE ? 'Text' : 'URL'; + var setEditorCommandState = function (cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + } + }; + var isDefaultPrevented = function (e) { + return e.isDefaultPrevented(); + }; + var setMceInternalContent = function (e) { + var selectionHtml, internalContent; + if (e.dataTransfer) { + if (editor.selection.isCollapsed() && e.target.tagName === 'IMG') { + selection.select(e.target); + } + selectionHtml = editor.selection.getContent(); + if (selectionHtml.length > 0) { + internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml); + e.dataTransfer.setData(mceInternalDataType, internalContent); + } + } + }; + var getMceInternalContent = function (e) { + var internalContent; + if (e.dataTransfer) { + internalContent = e.dataTransfer.getData(mceInternalDataType); + if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) { + internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(','); + return { + id: unescape(internalContent[0]), + html: unescape(internalContent[1]) + }; + } + } + return null; + }; + var insertClipboardContents = function (content, internal) { + if (editor.queryCommandSupported('mceInsertClipboardContent')) { + editor.execCommand('mceInsertClipboardContent', false, { + content: content, + internal: internal + }); + } else { + editor.execCommand('mceInsertContent', false, content); + } + }; + var emptyEditorWhenDeleting = function () { + var serializeRng = function (rng) { + var body = dom.create('body'); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, { format: 'html' }); + }; + var allContentsSelected = function (rng) { + var selection = serializeRng(rng); + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); + var allSelection = serializeRng(allRng); + return selection === allSelection; + }; + editor.on('keydown', function (e) { + var keyCode = e.keyCode; + var isCollapsed, body; + if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); + if (isCollapsed && !dom.isEmpty(body)) { + return; + } + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } + e.preventDefault(); + editor.setContent(''); + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + editor.nodeChanged(); + } + }); + }; + var selectAll = function () { + editor.shortcuts.add('meta+a', null, 'SelectAll'); + }; + var inputMethodFocus = function () { + if (!editor.inline) { + dom.bind(editor.getDoc(), 'mousedown mouseup', function (e) { + var rng; + if (e.target === editor.getDoc().documentElement) { + rng = selection.getRng(); + editor.getBody().focus(); + if (e.type === 'mousedown') { + if (isCaretContainer(rng.startContainer)) { + return; + } + selection.placeCaretAt(e.clientX, e.clientY); + } else { + selection.setRng(rng); + } + } + }); + } + }; + var removeHrOnBackspace = function () { + editor.on('keydown', function (e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (!editor.getBody().getElementsByTagName('hr').length) { + return; + } + if (selection.isCollapsed() && selection.getRng().startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; + if (node.nodeName === 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + }; + var focusBody = function () { + if (!domGlobals.Range.prototype.getClientRects) { + editor.on('mousedown', function (e) { + if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') { + var body_1 = editor.getBody(); + body_1.blur(); + Delay.setEditorTimeout(editor, function () { + body_1.focus(); + }); + } + }); + } + }; + var selectControlElements = function () { + editor.on('click', function (e) { + var target = e.target; + if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') { + e.preventDefault(); + editor.selection.select(target); + editor.nodeChanged(); + } + if (target.nodeName === 'A' && dom.hasClass(target, 'mce-item-anchor')) { + e.preventDefault(); + selection.select(target); + } + }); + }; + var removeStylesWhenDeletingAcrossBlockElements = function () { + var getAttributeApplyFunction = function () { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); + return function () { + var target = selection.getStart(); + if (target !== editor.getBody()) { + dom.setAttrib(target, 'style', null); + each(template, function (attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + }; + var isSelectionAcrossElements = function () { + return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock); + }; + editor.on('keypress', function (e) { + var applyAttributes; + if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); + dom.bind(editor.getDoc(), 'cut', function (e) { + var applyAttributes; + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + Delay.setEditorTimeout(editor, function () { + applyAttributes(); + }); + } + }); + }; + var disableBackspaceIntoATable = function () { + editor.on('keydown', function (e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng().startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') { + e.preventDefault(); + return false; + } + } + } + }); + }; + var removeBlockQuoteOnBackSpace = function () { + editor.on('keydown', function (e) { + var rng, container, offset, root, parent; + if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) { + return; + } + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; + if (!rng.collapsed || offset !== 0) { + return; + } + while (parent && parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) { + parent = parent.parentNode; + } + if (parent.tagName === 'BLOCKQUOTE') { + editor.formatter.toggle('blockquote', null, parent); + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + }; + var setGeckoEditingOptions = function () { + var setOpts = function () { + setEditorCommandState('StyleWithCSS', false); + setEditorCommandState('enableInlineTableEditing', false); + if (!settings.object_resizing) { + setEditorCommandState('enableObjectResizing', false); + } + }; + if (!settings.readonly) { + editor.on('BeforeExecCommand mousedown', setOpts); + } + }; + var addBrAfterLastLinks = function () { + var fixLinks = function () { + each(dom.select('a'), function (node) { + var parentNode = node.parentNode; + var root = dom.getRoot(); + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } + parentNode = parentNode.parentNode; + } + dom.add(parentNode, 'br', { 'data-mce-bogus': 1 }); + } + }); + }; + editor.on('SetContent ExecCommand', function (e) { + if (e.type === 'setcontent' || e.command === 'mceInsertLink') { + fixLinks(); + } + }); + }; + var setDefaultBlockType = function () { + if (settings.forced_root_block) { + editor.on('init', function () { + setEditorCommandState('DefaultParagraphSeparator', Settings.getForcedRootBlock(editor)); + }); + } + }; + var normalizeSelection = function () { + editor.on('keyup focusin mouseup', function (e) { + if (!VK.modifierPressed(e)) { + selection.normalize(); + } + }, true); + }; + var showBrokenImageIcon = function () { + editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}'); + }; + var restoreFocusOnKeyDown = function () { + if (!editor.inline) { + editor.on('keydown', function () { + if (domGlobals.document.activeElement === domGlobals.document.body) { + editor.getWin().focus(); + } + }); + } + }; + var bodyHeight = function () { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function (e) { + var rng; + if (e.target.nodeName === 'HTML') { + if (Env.ie > 11) { + editor.getBody().focus(); + return; + } + rng = editor.selection.getRng(); + editor.getBody().focus(); + editor.selection.setRng(rng); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + }; + var blockCmdArrowNavigation = function () { + if (Env.mac) { + editor.on('keydown', function (e) { + if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) { + e.preventDefault(); + var selection_1 = editor.selection.getSel(); + selection_1.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary'); + } + }); + } + }; + var disableAutoUrlDetect = function () { + setEditorCommandState('AutoUrlDetect', false); + }; + var tapLinksAndImages = function () { + editor.on('click', function (e) { + var elm = e.target; + do { + if (elm.tagName === 'A') { + e.preventDefault(); + return; + } + } while (elm = elm.parentNode); + }); + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + }; + var blockFormSubmitInsideEditor = function () { + editor.on('init', function () { + editor.dom.bind(editor.getBody(), 'submit', function (e) { + e.preventDefault(); + }); + }); + }; + var removeAppleInterchangeBrs = function () { + parser.addNodeFilter('br', function (nodes) { + var i = nodes.length; + while (i--) { + if (nodes[i].attr('class') === 'Apple-interchange-newline') { + nodes[i].remove(); + } + } + }); + }; + var ieInternalDragAndDrop = function () { + editor.on('dragstart', function (e) { + setMceInternalContent(e); + }); + editor.on('drop', function (e) { + if (!isDefaultPrevented(e)) { + var internalContent = getMceInternalContent(e); + if (internalContent && internalContent.id !== editor.id) { + e.preventDefault(); + var rng = CaretRangeFromPoint.fromPoint(e.x, e.y, editor.getDoc()); + selection.setRng(rng); + insertClipboardContents(internalContent.html, true); + } + } + }); + }; + var refreshContentEditable = function () { + }; + var isHidden = function () { + var sel; + if (!isGecko || editor.removed) { + return false; + } + sel = editor.selection.getSel(); + return !sel || !sel.rangeCount || sel.rangeCount === 0; + }; + removeBlockQuoteOnBackSpace(); + emptyEditorWhenDeleting(); + if (!Env.windowsPhone) { + normalizeSelection(); + } + if (isWebKit) { + inputMethodFocus(); + selectControlElements(); + setDefaultBlockType(); + blockFormSubmitInsideEditor(); + disableBackspaceIntoATable(); + removeAppleInterchangeBrs(); + if (Env.iOS) { + restoreFocusOnKeyDown(); + bodyHeight(); + tapLinksAndImages(); + } else { + selectAll(); + } + } + if (Env.ie >= 11) { + bodyHeight(); + disableBackspaceIntoATable(); + } + if (Env.ie) { + selectAll(); + disableAutoUrlDetect(); + ieInternalDragAndDrop(); + } + if (isGecko) { + removeHrOnBackspace(); + focusBody(); + removeStylesWhenDeletingAcrossBlockElements(); + setGeckoEditingOptions(); + addBrAfterLastLinks(); + showBrokenImageIcon(); + blockCmdArrowNavigation(); + disableBackspaceIntoATable(); + } + return { + refreshContentEditable: refreshContentEditable, + isHidden: isHidden + }; + }; + + var DOM$4 = DOMUtils$1.DOM; + var appendStyle = function (editor, text) { + var head = Element.fromDom(editor.getDoc().head); + var tag = Element.fromTag('style'); + set(tag, 'type', 'text/css'); + append(tag, Element.fromText(text)); + append(head, tag); + }; + var createParser = function (editor) { + var parser = DomParser(editor.settings, editor.schema); + parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name) { + var i = nodes.length, node, value; + var dom = editor.dom; + var internalName = 'data-mce-' + name; + while (i--) { + node = nodes[i]; + value = node.attr(name); + if (value && !node.attr(internalName)) { + if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) { + continue; + } + if (name === 'style') { + value = dom.serializeStyle(dom.parseStyle(value), node.name); + if (!value.length) { + value = null; + } + node.attr(internalName, value); + node.attr(name, value); + } else if (name === 'tabindex') { + node.attr(internalName, value); + node.attr(name, null); + } else { + node.attr(internalName, editor.convertURL(value, name, node.name)); + } + } + } + }); + parser.addNodeFilter('script', function (nodes) { + var i = nodes.length, node, type; + while (i--) { + node = nodes[i]; + type = node.attr('type') || 'no/type'; + if (type.indexOf('mce-') !== 0) { + node.attr('type', 'mce-' + type); + } + } + }); + if (editor.settings.preserve_cdata) { + parser.addNodeFilter('#cdata', function (nodes) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + node.type = 8; + node.name = '#comment'; + node.value = '[CDATA[' + editor.dom.encode(node.value) + ']]'; + } + }); + } + parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function (nodes) { + var i = nodes.length, node; + var nonEmptyElements = editor.schema.getNonEmptyElements(); + while (i--) { + node = nodes[i]; + if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) { + node.append(new Node$1('br', 1)).shortEnded = true; + } + } + }); + return parser; + }; + var autoFocus = function (editor) { + if (editor.settings.auto_focus) { + Delay.setEditorTimeout(editor, function () { + var focusEditor; + if (editor.settings.auto_focus === true) { + focusEditor = editor; + } else { + focusEditor = editor.editorManager.get(editor.settings.auto_focus); + } + if (!focusEditor.destroyed) { + focusEditor.focus(); + } + }, 100); + } + }; + var moveSelectionToFirstCaretPosition = function (editor) { + var root = editor.dom.getRoot(); + if (!editor.inline && (!hasAnyRanges(editor) || editor.selection.getStart(true) === root)) { + CaretFinder.firstPositionIn(root).each(function (pos) { + var node = pos.getNode(); + var caretPos = NodeType.isTable(node) ? CaretFinder.firstPositionIn(node).getOr(pos) : pos; + if (Env.browser.isIE()) { + SelectionBookmark.storeNative(editor, caretPos.toRange()); + } else { + editor.selection.setRng(caretPos.toRange()); + } + }); + } + }; + var initEditor = function (editor) { + editor.bindPendingEventDelegates(); + editor.initialized = true; + fireInit(editor); + editor.focus(true); + moveSelectionToFirstCaretPosition(editor); + editor.nodeChanged({ initial: true }); + editor.execCallback('init_instance_callback', editor); + autoFocus(editor); + }; + var getStyleSheetLoader = function (editor) { + return editor.inline ? DOM$4.styleSheetLoader : editor.dom.styleSheetLoader; + }; + var initContentBody = function (editor, skipWrite) { + var settings = editor.settings; + var targetElm = editor.getElement(); + var doc = editor.getDoc(), body, contentCssText; + if (!settings.inline) { + editor.getElement().style.visibility = editor.orgVisibility; + } + if (!skipWrite && !editor.inline) { + doc.open(); + doc.write(editor.iframeHTML); + doc.close(); + } + if (editor.inline) { + editor.on('remove', function () { + var bodyEl = this.getBody(); + DOM$4.removeClass(bodyEl, 'mce-content-body'); + DOM$4.removeClass(bodyEl, 'mce-edit-focus'); + DOM$4.setAttrib(bodyEl, 'contentEditable', null); + }); + DOM$4.addClass(targetElm, 'mce-content-body'); + editor.contentDocument = doc = domGlobals.document; + editor.contentWindow = domGlobals.window; + editor.bodyElement = targetElm; + editor.contentAreaContainer = targetElm; + settings.root_name = targetElm.nodeName.toLowerCase(); + } + body = editor.getBody(); + body.disabled = true; + editor.readonly = !!settings.readonly; + if (!editor.readonly) { + if (editor.inline && DOM$4.getStyle(body, 'position', true) === 'static') { + body.style.position = 'relative'; + } + body.contentEditable = editor.getParam('content_editable_state', true); + } + body.disabled = false; + editor.editorUpload = EditorUpload(editor); + editor.schema = Schema(settings); + editor.dom = DOMUtils$1(doc, { + keep_values: true, + url_converter: editor.convertURL, + url_converter_scope: editor, + hex_colors: settings.force_hex_style_colors, + update_styles: true, + root_element: editor.inline ? editor.getBody() : null, + collect: function () { + return editor.inline; + }, + schema: editor.schema, + contentCssCors: Settings.shouldUseContentCssCors(editor), + referrerPolicy: Settings.getReferrerPolicy(editor), + onSetAttrib: function (e) { + editor.fire('SetAttrib', e); + } + }); + editor.parser = createParser(editor); + editor.serializer = Serializer$1(settings, editor); + editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor); + editor.annotator = Annotator(editor); + editor.formatter = Formatter(editor); + editor.undoManager = UndoManager(editor); + editor._nodeChangeDispatcher = new NodeChange(editor); + editor._selectionOverrides = SelectionOverrides(editor); + TouchEvents.setup(editor); + setup$h(editor); + setup$i(editor); + KeyboardOverrides.setup(editor); + ForceBlocks.setup(editor); + setup$6(editor); + firePreInit(editor); + if (!settings.browser_spellcheck && !settings.gecko_spellcheck) { + doc.body.spellcheck = false; + DOM$4.setAttrib(body, 'spellcheck', 'false'); + } + editor.quirks = Quirks(editor); + firePostRender(editor); + var directionality = Settings.getDirectionality(editor); + if (directionality !== undefined) { + body.dir = directionality; + } + if (settings.protect) { + editor.on('BeforeSetContent', function (e) { + Tools.each(settings.protect, function (pattern) { + e.content = e.content.replace(pattern, function (str) { + return ''; + }); + }); + }); + } + editor.on('SetContent', function () { + editor.addVisual(editor.getBody()); + }); + editor.load({ + initial: true, + format: 'html' + }); + editor.startContent = editor.getContent({ format: 'raw' }); + editor.on('compositionstart compositionend', function (e) { + editor.composing = e.type === 'compositionstart'; + }); + if (editor.contentStyles.length > 0) { + contentCssText = ''; + Tools.each(editor.contentStyles, function (style) { + contentCssText += style + '\r\n'; + }); + editor.dom.addStyle(contentCssText); + } + getStyleSheetLoader(editor).loadAll(editor.contentCSS, function (_) { + initEditor(editor); + }, function (urls) { + initEditor(editor); + }); + if (settings.content_style) { + appendStyle(editor, settings.content_style); + } + }; + var InitContentBody = { initContentBody: initContentBody }; + + var DOM$5 = DOMUtils$1.DOM; + var relaxDomain = function (editor, ifr) { + if (domGlobals.document.domain !== domGlobals.window.location.hostname && Env.browser.isIE()) { + var bodyUuid = Uuid.uuid('mce'); + editor[bodyUuid] = function () { + InitContentBody.initContentBody(editor); + }; + var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain="' + domGlobals.document.domain + '";' + 'var ed = window.parent.tinymce.get("' + editor.id + '");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()'; + DOM$5.setAttrib(ifr, 'src', domainRelaxUrl); + return true; + } + return false; + }; + var createIframeElement = function (id, title, height, customAttrs) { + var iframe = Element.fromTag('iframe'); + setAll(iframe, customAttrs); + setAll(iframe, { + id: id + '_ifr', + frameBorder: '0', + allowTransparency: 'true', + title: title + }); + add$3(iframe, 'tox-edit-area__iframe'); + return iframe; + }; + var getIframeHtml = function (editor) { + var bodyId, bodyClass, iframeHTML; + iframeHTML = Settings.getDocType(editor) + ''; + if (Settings.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) { + iframeHTML += ''; + } + iframeHTML += ''; + bodyId = Settings.getBodyId(editor); + bodyClass = Settings.getBodyClass(editor); + if (Settings.getContentSecurityPolicy(editor)) { + iframeHTML += ''; + } + iframeHTML += '
    '; + return iframeHTML; + }; + var createIframe = function (editor, o) { + var title = editor.editorManager.translate('Rich Text Area. Press ALT-0 for help.'); + var ifr = createIframeElement(editor.id, title, o.height, Settings.getIframeAttrs(editor)).dom(); + ifr.onload = function () { + ifr.onload = null; + editor.fire('load'); + }; + var isDomainRelaxed = relaxDomain(editor, ifr); + editor.contentAreaContainer = o.iframeContainer; + editor.iframeElement = ifr; + editor.iframeHTML = getIframeHtml(editor); + DOM$5.add(o.iframeContainer, ifr); + return isDomainRelaxed; + }; + var init$1 = function (editor, boxInfo) { + var isDomainRelaxed = createIframe(editor, boxInfo); + if (boxInfo.editorContainer) { + DOM$5.get(boxInfo.editorContainer).style.display = editor.orgDisplay; + editor.hidden = DOM$5.isHidden(boxInfo.editorContainer); + } + editor.getElement().style.display = 'none'; + DOM$5.setAttrib(editor.id, 'aria-hidden', 'true'); + if (!isDomainRelaxed) { + InitContentBody.initContentBody(editor); + } + }; + var InitIframe = { init: init$1 }; + + var DOM$6 = DOMUtils$1.DOM; + var initPlugin = function (editor, initializedPlugins, plugin) { + var Plugin = PluginManager.get(plugin); + var pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\/$/, ''); + plugin = Tools.trim(plugin); + if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) { + Tools.each(PluginManager.dependencies(plugin), function (dep) { + initPlugin(editor, initializedPlugins, dep); + }); + if (editor.plugins[plugin]) { + return; + } + try { + var pluginInstance = new Plugin(editor, pluginUrl, editor.$); + editor.plugins[plugin] = pluginInstance; + if (pluginInstance.init) { + pluginInstance.init(editor, pluginUrl); + initializedPlugins.push(plugin); + } + } catch (e) { + ErrorReporter.pluginInitError(editor, plugin, e); + } + } + }; + var trimLegacyPrefix = function (name) { + return name.replace(/^\-/, ''); + }; + var initPlugins = function (editor) { + var initializedPlugins = []; + Tools.each(editor.settings.plugins.split(/[ ,]/), function (name) { + initPlugin(editor, initializedPlugins, trimLegacyPrefix(name)); + }); + }; + var initIcons = function (editor) { + var iconPackName = Tools.trim(editor.settings.icons); + var currentIcons = editor.ui.registry.getAll().icons; + var defaultIcons = getAll(); + var loadIcons = __assign(__assign({}, defaultIcons), IconManager.get(iconPackName).icons); + each$1(loadIcons, function (svgData, icon) { + if (!has(currentIcons, icon)) { + editor.ui.registry.addIcon(icon, svgData); + } + }); + }; + var initTheme = function (editor) { + var theme = editor.settings.theme; + if (isString(theme)) { + editor.settings.theme = trimLegacyPrefix(theme); + var Theme = ThemeManager.get(theme); + editor.theme = new Theme(editor, ThemeManager.urls[theme]); + if (editor.theme.init) { + editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\/$/, ''), editor.$); + } + } else { + editor.theme = {}; + } + }; + var renderFromLoadedTheme = function (editor) { + return editor.theme.renderUI(); + }; + var renderFromThemeFunc = function (editor) { + var elm = editor.getElement(); + var theme = editor.settings.theme; + var info = theme(editor, elm); + if (info.editorContainer.nodeType) { + info.editorContainer.id = info.editorContainer.id || editor.id + '_parent'; + } + if (info.iframeContainer && info.iframeContainer.nodeType) { + info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer'; + } + info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight; + return info; + }; + var createThemeFalseResult = function (element) { + return { + editorContainer: element, + iframeContainer: element + }; + }; + var renderThemeFalseIframe = function (targetElement) { + var iframeContainer = DOM$6.create('div'); + DOM$6.insertAfter(iframeContainer, targetElement); + return createThemeFalseResult(iframeContainer); + }; + var renderThemeFalse = function (editor) { + var targetElement = editor.getElement(); + return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement); + }; + var renderThemeUi = function (editor) { + var elm = editor.getElement(); + editor.orgDisplay = elm.style.display; + if (isString(editor.settings.theme)) { + return renderFromLoadedTheme(editor); + } else if (isFunction(editor.settings.theme)) { + return renderFromThemeFunc(editor); + } else { + return renderThemeFalse(editor); + } + }; + var init$2 = function (editor) { + editor.fire('ScriptsLoaded'); + initIcons(editor); + initTheme(editor); + initPlugins(editor); + var boxInfo = renderThemeUi(editor); + editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null; + appendContentCssFromSettings(editor); + if (editor.inline) { + return InitContentBody.initContentBody(editor); + } else { + return InitIframe.init(editor, boxInfo); + } + }; + var Init = { init: init$2 }; + + var DOM$7 = DOMUtils$1.DOM; + var hasSkipLoadPrefix = function (name) { + return name.charAt(0) === '-'; + }; + var loadLanguage = function (scriptLoader, editor) { + var languageCode = Settings.getLanguageCode(editor); + var languageUrl = Settings.getLanguageUrl(editor); + if (I18n.hasCode(languageCode) === false && languageCode !== 'en') { + var url_1 = languageUrl !== '' ? languageUrl : editor.editorManager.baseURL + '/langs/' + languageCode + '.js'; + scriptLoader.add(url_1, noop, undefined, function () { + ErrorReporter.languageLoadError(editor, url_1, languageCode); + }); + } + }; + var loadTheme = function (scriptLoader, editor, suffix, callback) { + var settings = editor.settings, theme = settings.theme; + if (isString(theme)) { + if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) { + var themeUrl = settings.theme_url; + if (themeUrl) { + ThemeManager.load(theme, editor.documentBaseURI.toAbsolute(themeUrl)); + } else { + ThemeManager.load(theme, 'themes/' + theme + '/theme' + suffix + '.js'); + } + } + scriptLoader.loadQueue(function () { + ThemeManager.waitFor(theme, callback); + }); + } else { + callback(); + } + }; + var getIconsUrlMetaFromUrl = function (editor) { + return Option.from(Settings.getIconsUrl(editor)).filter(function (url) { + return url.length > 0; + }).map(function (url) { + return { + url: url, + name: Option.none() + }; + }); + }; + var getIconsUrlMetaFromName = function (editor) { + return Option.from(Settings.getIconPackName(editor)).filter(function (name) { + return name.length > 0 && !IconManager.has(name); + }).map(function (name) { + return { + url: editor.editorManager.baseURL + '/icons/' + name + '/icons.js', + name: Option.some(name) + }; + }); + }; + var loadIcons = function (scriptLoader, editor) { + getIconsUrlMetaFromUrl(editor).orThunk(function () { + return getIconsUrlMetaFromName(editor); + }).each(function (urlMeta) { + scriptLoader.add(urlMeta.url, noop, undefined, function () { + ErrorReporter.iconsLoadError(editor, urlMeta.url, urlMeta.name.getOrUndefined()); + }); + }); + }; + var loadPlugins = function (editor, settings, suffix) { + if (isArray(settings.plugins)) { + settings.plugins = settings.plugins.join(' '); + } + Tools.each(settings.external_plugins, function (url, name) { + PluginManager.load(name, url, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, url, name); + }); + settings.plugins += ' ' + name; + }); + Tools.each(settings.plugins.split(/[ ,]/), function (plugin) { + plugin = Tools.trim(plugin); + if (plugin && !PluginManager.urls[plugin]) { + if (hasSkipLoadPrefix(plugin)) { + plugin = plugin.substr(1, plugin.length); + var dependencies = PluginManager.dependencies(plugin); + Tools.each(dependencies, function (depPlugin) { + var defaultSettings = { + prefix: 'plugins/', + resource: depPlugin, + suffix: '/plugin' + suffix + '.js' + }; + var dep = PluginManager.createUrl(defaultSettings, depPlugin); + PluginManager.load(dep.resource, dep, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, dep.prefix + dep.resource + dep.suffix, dep.resource); + }); + }); + } else { + var url_2 = { + prefix: 'plugins/', + resource: plugin, + suffix: '/plugin' + suffix + '.js' + }; + PluginManager.load(plugin, url_2, noop, undefined, function () { + ErrorReporter.pluginLoadError(editor, url_2.prefix + url_2.resource + url_2.suffix, plugin); + }); + } + } + }); + }; + var loadScripts = function (editor, suffix) { + var scriptLoader = ScriptLoader.ScriptLoader; + loadTheme(scriptLoader, editor, suffix, function () { + loadLanguage(scriptLoader, editor); + loadIcons(scriptLoader, editor); + loadPlugins(editor, editor.settings, suffix); + scriptLoader.loadQueue(function () { + if (!editor.removed) { + Init.init(editor); + } + }, editor, function () { + if (!editor.removed) { + Init.init(editor); + } + }); + }); + }; + var render = function (editor) { + var settings = editor.settings, id = editor.id; + I18n.setCode(Settings.getLanguageCode(editor)); + var readyHandler = function () { + DOM$7.unbind(domGlobals.window, 'ready', readyHandler); + editor.render(); + }; + if (!EventUtils.Event.domLoaded) { + DOM$7.bind(domGlobals.window, 'ready', readyHandler); + return; + } + if (!editor.getElement()) { + return; + } + if (!Env.contentEditable) { + return; + } + if (!settings.inline) { + editor.orgVisibility = editor.getElement().style.visibility; + editor.getElement().style.visibility = 'hidden'; + } else { + editor.inline = true; + } + var form = editor.getElement().form || DOM$7.getParent(id, 'form'); + if (form) { + editor.formElement = form; + if (settings.hidden_input && !NodeType.isTextareaOrInput(editor.getElement())) { + DOM$7.insertAfter(DOM$7.create('input', { + type: 'hidden', + name: id + }), id); + editor.hasHiddenInput = true; + } + editor.formEventDelegate = function (e) { + editor.fire(e.type, e); + }; + DOM$7.bind(form, 'submit reset', editor.formEventDelegate); + editor.on('reset', function () { + editor.resetContent(); + }); + if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) { + form._mceOldSubmit = form.submit; + form.submit = function () { + editor.editorManager.triggerSave(); + editor.setDirty(false); + return form._mceOldSubmit(form); + }; + } + } + editor.windowManager = WindowManager(editor); + editor.notificationManager = NotificationManager(editor); + if (settings.encoding === 'xml') { + editor.on('GetContent', function (e) { + if (e.save) { + e.content = DOM$7.encode(e.content); + } + }); + } + if (settings.add_form_submit_trigger) { + editor.on('submit', function () { + if (editor.initialized) { + editor.save(); + } + }); + } + if (settings.add_unload_trigger) { + editor._beforeUnload = function () { + if (editor.initialized && !editor.destroyed && !editor.isHidden()) { + editor.save({ + format: 'raw', + no_events: true, + set_dirty: false + }); + } + }; + editor.editorManager.on('BeforeUnload', editor._beforeUnload); + } + editor.editorManager.add(editor); + loadScripts(editor, editor.suffix); + }; + var Render = { render: render }; + + var hasOnlyOneChild$1 = function (node) { + return node.firstChild && node.firstChild === node.lastChild; + }; + var isPaddingNode = function (node) { + return node.name === 'br' || node.value === nbsp; + }; + var isPaddedEmptyBlock = function (schema, node) { + var blockElements = schema.getBlockElements(); + return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild); + }; + var isEmptyFragmentElement = function (schema, node) { + var nonEmptyElements = schema.getNonEmptyElements(); + return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node)); + }; + var isListFragment = function (schema, fragment) { + var firstChild = fragment.firstChild; + var lastChild = fragment.lastChild; + if (firstChild && firstChild.name === 'meta') { + firstChild = firstChild.next; + } + if (lastChild && lastChild.attr('id') === 'mce_marker') { + lastChild = lastChild.prev; + } + if (isEmptyFragmentElement(schema, lastChild)) { + lastChild = lastChild.prev; + } + if (!firstChild || firstChild !== lastChild) { + return false; + } + return firstChild.name === 'ul' || firstChild.name === 'ol'; + }; + var cleanupDomFragment = function (domFragment) { + var firstChild = domFragment.firstChild; + var lastChild = domFragment.lastChild; + if (firstChild && firstChild.nodeName === 'META') { + firstChild.parentNode.removeChild(firstChild); + } + if (lastChild && lastChild.id === 'mce_marker') { + lastChild.parentNode.removeChild(lastChild); + } + return domFragment; + }; + var toDomFragment = function (dom, serializer, fragment) { + var html = serializer.serialize(fragment); + var domFragment = dom.createFragment(html); + return cleanupDomFragment(domFragment); + }; + var listItems$1 = function (elm) { + return Tools.grep(elm.childNodes, function (child) { + return child.nodeName === 'LI'; + }); + }; + var isPadding = function (node) { + return node.data === nbsp || NodeType.isBr(node); + }; + var isListItemPadded = function (node) { + return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild); + }; + var isEmptyOrPadded = function (elm) { + return !elm.firstChild || isListItemPadded(elm); + }; + var trimListItems = function (elms) { + return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms; + }; + var getParentLi = function (dom, node) { + var parentBlock = dom.getParent(node, dom.isBlock); + return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null; + }; + var isParentBlockLi = function (dom, node) { + return !!getParentLi(dom, node); + }; + var getSplit = function (parentNode, rng) { + var beforeRng = rng.cloneRange(); + var afterRng = rng.cloneRange(); + beforeRng.setStartBefore(parentNode); + afterRng.setEndAfter(parentNode); + return [ + beforeRng.cloneContents(), + afterRng.cloneContents() + ]; + }; + var findFirstIn = function (node, rootNode) { + var caretPos = CaretPosition$1.before(node); + var caretWalker = CaretWalker(rootNode); + var newCaretPos = caretWalker.next(caretPos); + return newCaretPos ? newCaretPos.toRange() : null; + }; + var findLastOf = function (node, rootNode) { + var caretPos = CaretPosition$1.after(node); + var caretWalker = CaretWalker(rootNode); + var newCaretPos = caretWalker.prev(caretPos); + return newCaretPos ? newCaretPos.toRange() : null; + }; + var insertMiddle = function (target, elms, rootNode, rng) { + var parts = getSplit(target, rng); + var parentElm = target.parentNode; + parentElm.insertBefore(parts[0], target); + Tools.each(elms, function (li) { + parentElm.insertBefore(li, target); + }); + parentElm.insertBefore(parts[1], target); + parentElm.removeChild(target); + return findLastOf(elms[elms.length - 1], rootNode); + }; + var insertBefore$1 = function (target, elms, rootNode) { + var parentElm = target.parentNode; + Tools.each(elms, function (elm) { + parentElm.insertBefore(elm, target); + }); + return findFirstIn(target, rootNode); + }; + var insertAfter$1 = function (target, elms, rootNode, dom) { + dom.insertAfter(elms.reverse(), target); + return findLastOf(elms[0], rootNode); + }; + var insertAtCaret = function (serializer, dom, rng, fragment) { + var domFragment = toDomFragment(dom, serializer, fragment); + var liTarget = getParentLi(dom, rng.startContainer); + var liElms = trimListItems(listItems$1(domFragment.firstChild)); + var BEGINNING = 1, END = 2; + var rootNode = dom.getRoot(); + var isAt = function (location) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + var caretWalker = CaretWalker(dom.getRoot()); + var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos); + return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true; + }; + if (isAt(BEGINNING)) { + return insertBefore$1(liTarget, liElms, rootNode); + } else if (isAt(END)) { + return insertAfter$1(liTarget, liElms, rootNode, dom); + } + return insertMiddle(liTarget, liElms, rootNode, rng); + }; + var InsertList = { + isListFragment: isListFragment, + insertAtCaret: insertAtCaret, + isParentBlockLi: isParentBlockLi, + trimListItems: trimListItems, + listItems: listItems$1 + }; + + var isAfterNbsp = function (container, offset) { + return NodeType.isText(container) && container.nodeValue[offset - 1] === nbsp; + }; + var trimOrPadLeftRight = function (rng, html) { + var container, offset; + container = rng.startContainer; + offset = rng.startOffset; + var hasSiblingText = function (siblingName) { + return container[siblingName] && container[siblingName].nodeType === 3; + }; + if (container.nodeType === 3) { + if (offset > 0) { + html = html.replace(/^ /, ' '); + } else if (!hasSiblingText('previousSibling')) { + html = html.replace(/^ /, ' '); + } + if (offset < container.length) { + html = html.replace(/ (
    |)$/, ' '); + } else if (!hasSiblingText('nextSibling')) { + html = html.replace(/( | )(
    |)$/, ' '); + } + } + return html; + }; + var trimNbspAfterDeleteAndPadValue = function (rng, value) { + var container, offset; + container = rng.startContainer; + offset = rng.startOffset; + if (container.nodeType === 3 && rng.collapsed) { + if (container.data[offset] === nbsp) { + container.deleteData(offset, 1); + if (!/[\u00a0| ]$/.test(value)) { + value += ' '; + } + } else if (container.data[offset - 1] === nbsp) { + container.deleteData(offset - 1, 1); + if (!/[\u00a0| ]$/.test(value)) { + value = ' ' + value; + } + } + } + return value; + }; + + var isTableCell$5 = NodeType.matchNodeNames([ + 'td', + 'th' + ]); + var selectionSetContent = function (editor, content) { + var rng = editor.selection.getRng(); + var container = rng.startContainer; + var offset = rng.startOffset; + if (rng.collapsed && isAfterNbsp(container, offset) && NodeType.isText(container)) { + container.insertData(offset - 1, ' '); + container.deleteData(offset, 1); + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + editor.selection.setContent(content); + }; + var validInsertion = function (editor, value, parentNode) { + if (parentNode.getAttribute('data-mce-bogus') === 'all') { + parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode); + } else { + var node = parentNode.firstChild; + var node2 = parentNode.lastChild; + if (!node || node === node2 && node.nodeName === 'BR') { + editor.dom.setHTML(parentNode, value); + } else { + selectionSetContent(editor, value); + } + } + }; + var trimBrsFromTableCell = function (dom, elm) { + Option.from(dom.getParent(elm, 'td,th')).map(Element.fromDom).each(PaddingBr.trimBlockTrailingBr); + }; + var reduceInlineTextElements = function (editor, merge) { + var textInlineElements = editor.schema.getTextInlineElements(); + var dom = editor.dom; + if (merge) { + var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom); + Tools.each(dom.select('*[data-mce-fragment]'), function (node) { + for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) { + if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) { + dom.remove(node, true); + } + } + }); + } + }; + var markFragmentElements = function (fragment) { + var node = fragment; + while (node = node.walk()) { + if (node.type === 1) { + node.attr('data-mce-fragment', '1'); + } + } + }; + var umarkFragmentElements = function (elm) { + Tools.each(elm.getElementsByTagName('*'), function (elm) { + elm.removeAttribute('data-mce-fragment'); + }); + }; + var isPartOfFragment = function (node) { + return !!node.getAttribute('data-mce-fragment'); + }; + var canHaveChildren = function (editor, node) { + return node && !editor.schema.getShortEndedElements()[node.nodeName]; + }; + var moveSelectionToMarker = function (editor, marker) { + var parentEditableFalseElm, parentBlock, nextRng; + var dom = editor.dom, selection = editor.selection; + var node, node2; + var getContentEditableFalseParent = function (node) { + var root = editor.getBody(); + for (; node && node !== root; node = node.parentNode) { + if (editor.dom.getContentEditable(node) === 'false') { + return node; + } + } + return null; + }; + if (!marker) { + return; + } + editor.selection.scrollIntoView(marker); + parentEditableFalseElm = getContentEditableFalseParent(marker); + if (parentEditableFalseElm) { + dom.remove(marker); + selection.select(parentEditableFalseElm); + return; + } + var rng = dom.createRng(); + node = marker.previousSibling; + if (node && node.nodeType === 3) { + rng.setStart(node, node.nodeValue.length); + if (!Env.ie) { + node2 = marker.nextSibling; + if (node2 && node2.nodeType === 3) { + node.appendData(node2.data); + node2.parentNode.removeChild(node2); + } + } + } else { + rng.setStartBefore(marker); + rng.setEndBefore(marker); + } + var findNextCaretRng = function (rng) { + var caretPos = CaretPosition$1.fromRangeStart(rng); + var caretWalker = CaretWalker(editor.getBody()); + caretPos = caretWalker.next(caretPos); + if (caretPos) { + return caretPos.toRange(); + } + }; + parentBlock = dom.getParent(marker, dom.isBlock); + dom.remove(marker); + if (parentBlock && dom.isEmpty(parentBlock)) { + editor.$(parentBlock).empty(); + rng.setStart(parentBlock, 0); + rng.setEnd(parentBlock, 0); + if (!isTableCell$5(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) { + rng = nextRng; + dom.remove(parentBlock); + } else { + dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' })); + } + } + selection.setRng(rng); + }; + var insertHtmlAtCaret = function (editor, value, details) { + var parser, serializer, parentNode, rootNode, fragment, args; + var marker, rng, node, bookmarkHtml, merge; + var selection = editor.selection, dom = editor.dom; + if (/^ | $/.test(value)) { + value = trimOrPadLeftRight(selection.getRng(), value); + } + parser = editor.parser; + merge = details.merge; + serializer = Serializer({ validate: editor.settings.validate }, editor.schema); + bookmarkHtml = '​'; + args = { + content: value, + format: 'html', + selection: true, + paste: details.paste + }; + args = editor.fire('BeforeSetContent', args); + if (args.isDefaultPrevented()) { + editor.fire('SetContent', { + content: args.content, + format: 'html', + selection: true, + paste: details.paste + }); + return; + } + value = args.content; + if (value.indexOf('{$caret}') === -1) { + value += '{$caret}'; + } + value = value.replace(/\{\$caret\}/, bookmarkHtml); + rng = selection.getRng(); + var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null); + var body = editor.getBody(); + if (caretElement === body && selection.isCollapsed()) { + if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) { + rng = dom.createRng(); + rng.setStart(body.firstChild, 0); + rng.setEnd(body.firstChild, 0); + selection.setRng(rng); + } + } + if (!selection.isCollapsed()) { + editor.selection.setRng(RangeNormalizer.normalize(editor.selection.getRng())); + editor.getDoc().execCommand('Delete', false, null); + value = trimNbspAfterDeleteAndPadValue(editor.selection.getRng(), value); + } + parentNode = selection.getNode(); + var parserArgs = { + context: parentNode.nodeName.toLowerCase(), + data: details.data, + insert: true + }; + fragment = parser.parse(value, parserArgs); + if (details.paste === true && InsertList.isListFragment(editor.schema, fragment) && InsertList.isParentBlockLi(dom, parentNode)) { + rng = InsertList.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment); + editor.selection.setRng(rng); + editor.fire('SetContent', args); + return; + } + markFragmentElements(fragment); + node = fragment.lastChild; + if (node.attr('id') === 'mce_marker') { + marker = node; + for (node = node.prev; node; node = node.walk(true)) { + if (node.type === 3 || !dom.isBlock(node.name)) { + if (editor.schema.isValidChild(node.parent.name, 'span')) { + node.parent.insert(marker, node, node.name === 'br'); + } + break; + } + } + } + editor._selectionOverrides.showBlockCaretContainer(parentNode); + if (!parserArgs.invalid) { + value = serializer.serialize(fragment); + validInsertion(editor, value, parentNode); + } else { + selectionSetContent(editor, bookmarkHtml); + parentNode = selection.getNode(); + rootNode = editor.getBody(); + if (parentNode.nodeType === 9) { + parentNode = node = rootNode; + } else { + node = parentNode; + } + while (node !== rootNode) { + parentNode = node; + node = node.parentNode; + } + value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode); + value = serializer.serialize(parser.parse(value.replace(//i, function () { + return serializer.serialize(fragment); + }))); + if (parentNode === rootNode) { + dom.setHTML(rootNode, value); + } else { + dom.setOuterHTML(parentNode, value); + } + } + reduceInlineTextElements(editor, merge); + moveSelectionToMarker(editor, dom.get('mce_marker')); + umarkFragmentElements(editor.getBody()); + trimBrsFromTableCell(editor.dom, editor.selection.getStart()); + editor.fire('SetContent', args); + editor.addVisual(); + }; + var processValue = function (value) { + var details; + if (typeof value !== 'string') { + details = Tools.extend({ + paste: value.paste, + data: { paste: value.paste } + }, value); + return { + content: value.content, + details: details + }; + } + return { + content: value, + details: {} + }; + }; + var insertAtCaret$1 = function (editor, value) { + var result = processValue(value); + insertHtmlAtCaret(editor, result.content, result.details); + }; + var InsertContent = { insertAtCaret: insertAtCaret$1 }; + + var nativeCommand = function (editor, command) { + editor.getDoc().execCommand(command, false, null); + }; + var deleteCommand = function (editor) { + if (Outdent.backspaceDelete(editor, false)) { + return; + } else if (CefDelete.backspaceDelete(editor, false)) { + return; + } else if (CefBoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (BoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (BlockBoundaryDelete.backspaceDelete(editor, false)) { + return; + } else if (TableDelete.backspaceDelete(editor)) { + return; + } else if (BlockRangeDelete.backspaceDelete(editor, false)) { + return; + } else if (InlineFormatDelete.backspaceDelete(editor, false)) { + return; + } else { + nativeCommand(editor, 'Delete'); + DeleteUtils.paddEmptyBody(editor); + } + }; + var forwardDeleteCommand = function (editor) { + if (CefDelete.backspaceDelete(editor, true)) { + return; + } else if (CefBoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (BoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (BlockBoundaryDelete.backspaceDelete(editor, true)) { + return; + } else if (TableDelete.backspaceDelete(editor)) { + return; + } else if (BlockRangeDelete.backspaceDelete(editor, true)) { + return; + } else if (InlineFormatDelete.backspaceDelete(editor, true)) { + return; + } else { + nativeCommand(editor, 'ForwardDelete'); + } + }; + var DeleteCommands = { + deleteCommand: deleteCommand, + forwardDeleteCommand: forwardDeleteCommand + }; + + var ancestor$3 = function (scope, transform, isRoot) { + var element = scope.dom(); + var stop = isFunction(isRoot) ? isRoot : constant(false); + while (element.parentNode) { + element = element.parentNode; + var el = Element.fromDom(element); + var transformed = transform(el); + if (transformed.isSome()) { + return transformed; + } else if (stop(el)) { + break; + } + } + return Option.none(); + }; + var closest$2 = function (scope, transform, isRoot) { + var current = transform(scope); + return current.orThunk(function () { + return isRoot(scope) ? Option.none() : ancestor$3(scope, transform, isRoot); + }); + }; + + var legacyPropNames = { + 'font-size': 'size', + 'font-family': 'face' + }; + var getSpecifiedFontProp = function (propName, rootElm, elm) { + var getProperty = function (elm) { + return getRaw(elm, propName).orThunk(function () { + if (name(elm) === 'font') { + return get(legacyPropNames, propName).bind(function (legacyPropName) { + return getOpt(elm, legacyPropName); + }); + } else { + return Option.none(); + } + }); + }; + var isRoot = function (elm) { + return eq(Element.fromDom(rootElm), elm); + }; + return closest$2(Element.fromDom(elm), function (elm) { + return getProperty(elm); + }, isRoot); + }; + var round$1 = function (number, precision) { + var factor = Math.pow(10, precision); + return Math.round(number * factor) / factor; + }; + var toPt = function (fontSize, precision) { + if (/[0-9.]+px$/.test(fontSize)) { + return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt'; + } + return fontSize; + }; + var normalizeFontFamily = function (fontFamily) { + return fontFamily.replace(/[\'\"\\]/g, '').replace(/,\s+/g, ','); + }; + var getComputedFontProp = function (propName, elm) { + return Option.from(DOMUtils$1.DOM.getStyle(elm, propName, true)); + }; + var getFontProp = function (propName) { + return function (rootElm, elm) { + return Option.from(elm).map(Element.fromDom).filter(isElement).bind(function (element) { + return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom())); + }).getOr(''); + }; + }; + var FontInfo = { + getFontSize: getFontProp('font-size'), + getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')), + toPt: toPt + }; + + var findFirstCaretElement = function (editor) { + return CaretFinder.firstPositionIn(editor.getBody()).map(function (caret) { + var container = caret.container(); + return NodeType.isText(container) ? container.parentNode : container; + }); + }; + var isRangeAtStartOfNode = function (rng, root) { + return rng.startContainer === root && rng.startOffset === 0; + }; + var getCaretElement = function (editor) { + return Option.from(editor.selection.getRng()).bind(function (rng) { + var root = editor.getBody(); + return isRangeAtStartOfNode(rng, root) ? Option.none() : Option.from(editor.selection.getStart(true)); + }); + }; + var fromFontSizeNumber = function (editor, value) { + if (/^[0-9\.]+$/.test(value)) { + var fontSizeNumber = parseInt(value, 10); + if (fontSizeNumber >= 1 && fontSizeNumber <= 7) { + var fontSizes = Settings.getFontStyleValues(editor); + var fontClasses = Settings.getFontSizeClasses(editor); + if (fontClasses) { + return fontClasses[fontSizeNumber - 1] || value; + } else { + return fontSizes[fontSizeNumber - 1] || value; + } + } else { + return value; + } + } else { + return value; + } + }; + var normalizeFontNames = function (font) { + var fonts = font.split(/\s*,\s*/); + return map(fonts, function (font) { + if (font.indexOf(' ') !== -1 && !(startsWith(font, '"') || startsWith(font, '\''))) { + return '\'' + font + '\''; + } else { + return font; + } + }).join(','); + }; + var fontNameAction = function (editor, value) { + var font = fromFontSizeNumber(editor, value); + editor.formatter.toggle('fontname', { value: normalizeFontNames(font) }); + editor.nodeChanged(); + }; + var fontNameQuery = function (editor) { + return getCaretElement(editor).fold(function () { + return findFirstCaretElement(editor).map(function (caretElement) { + return FontInfo.getFontFamily(editor.getBody(), caretElement); + }).getOr(''); + }, function (caretElement) { + return FontInfo.getFontFamily(editor.getBody(), caretElement); + }); + }; + var fontSizeAction = function (editor, value) { + editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) }); + editor.nodeChanged(); + }; + var fontSizeQuery = function (editor) { + return getCaretElement(editor).fold(function () { + return findFirstCaretElement(editor).map(function (caretElement) { + return FontInfo.getFontSize(editor.getBody(), caretElement); + }).getOr(''); + }, function (caretElement) { + return FontInfo.getFontSize(editor.getBody(), caretElement); + }); + }; + + var each$f = Tools.each; + var map$3 = Tools.map, inArray$2 = Tools.inArray; + var EditorCommands = function () { + function EditorCommands(editor) { + this.commands = { + state: {}, + exec: {}, + value: {} + }; + this.editor = editor; + this.setupCommands(editor); + } + EditorCommands.prototype.execCommand = function (command, ui, value, args) { + var func, customCommand, state = false; + var self = this; + if (self.editor.removed) { + return; + } + if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) { + self.editor.focus(); + } else { + SelectionBookmark.restore(self.editor); + } + args = self.editor.fire('BeforeExecCommand', { + command: command, + ui: ui, + value: value + }); + if (args.isDefaultPrevented()) { + return false; + } + customCommand = command.toLowerCase(); + if (func = self.commands.exec[customCommand]) { + func(customCommand, ui, value); + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + each$f(this.editor.plugins, function (p) { + if (p.execCommand && p.execCommand(command, ui, value)) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + state = true; + return false; + } + }); + if (state) { + return state; + } + if (self.editor.theme && self.editor.theme.execCommand && self.editor.theme.execCommand(command, ui, value)) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + try { + state = self.editor.getDoc().execCommand(command, ui, value); + } catch (ex) { + } + if (state) { + self.editor.fire('ExecCommand', { + command: command, + ui: ui, + value: value + }); + return true; + } + return false; + }; + EditorCommands.prototype.queryCommandState = function (command) { + var func; + if (this.editor.quirks.isHidden() || this.editor.removed) { + return; + } + command = command.toLowerCase(); + if (func = this.commands.state[command]) { + return func(command); + } + try { + return this.editor.getDoc().queryCommandState(command); + } catch (ex) { + } + return false; + }; + EditorCommands.prototype.queryCommandValue = function (command) { + var func; + if (this.editor.quirks.isHidden() || this.editor.removed) { + return; + } + command = command.toLowerCase(); + if (func = this.commands.value[command]) { + return func(command); + } + try { + return this.editor.getDoc().queryCommandValue(command); + } catch (ex) { + } + }; + EditorCommands.prototype.addCommands = function (commandList, type) { + var self = this; + type = type || 'exec'; + each$f(commandList, function (callback, command) { + each$f(command.toLowerCase().split(','), function (command) { + self.commands[type][command] = callback; + }); + }); + }; + EditorCommands.prototype.addCommand = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.exec[command] = function (command, ui, value, args) { + return callback.call(scope || _this.editor, ui, value, args); + }; + }; + EditorCommands.prototype.queryCommandSupported = function (command) { + command = command.toLowerCase(); + if (this.commands.exec[command]) { + return true; + } + try { + return this.editor.getDoc().queryCommandSupported(command); + } catch (ex) { + } + return false; + }; + EditorCommands.prototype.addQueryStateHandler = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.state[command] = function () { + return callback.call(scope || _this.editor); + }; + }; + EditorCommands.prototype.addQueryValueHandler = function (command, callback, scope) { + var _this = this; + command = command.toLowerCase(); + this.commands.value[command] = function () { + return callback.call(scope || _this.editor); + }; + }; + EditorCommands.prototype.hasCustomCommand = function (command) { + command = command.toLowerCase(); + return !!this.commands.exec[command]; + }; + EditorCommands.prototype.execNativeCommand = function (command, ui, value) { + if (ui === undefined) { + ui = false; + } + if (value === undefined) { + value = null; + } + return this.editor.getDoc().execCommand(command, ui, value); + }; + EditorCommands.prototype.isFormatMatch = function (name) { + return this.editor.formatter.match(name); + }; + EditorCommands.prototype.toggleFormat = function (name, value) { + this.editor.formatter.toggle(name, value ? { value: value } : undefined); + this.editor.nodeChanged(); + }; + EditorCommands.prototype.storeSelection = function (type) { + this.selectionBookmark = this.editor.selection.getBookmark(type); + }; + EditorCommands.prototype.restoreSelection = function () { + this.editor.selection.moveToBookmark(this.selectionBookmark); + }; + EditorCommands.prototype.setupCommands = function (editor) { + var self = this; + this.addCommands({ + 'mceResetDesignMode,mceBeginUndoLevel': function () { + }, + 'mceEndUndoLevel,mceAddUndoLevel': function () { + editor.undoManager.add(); + }, + 'Cut,Copy,Paste': function (command) { + var doc = editor.getDoc(); + var failed; + try { + self.execNativeCommand(command); + } catch (ex) { + failed = true; + } + if (command === 'paste' && !doc.queryCommandEnabled(command)) { + failed = true; + } + if (failed || !doc.queryCommandSupported(command)) { + var msg = editor.translate('Your browser doesn\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.'); + if (Env.mac) { + msg = msg.replace(/Ctrl\+/g, '\u2318+'); + } + editor.notificationManager.open({ + text: msg, + type: 'error' + }); + } + }, + 'unlink': function () { + if (editor.selection.isCollapsed()) { + var elm = editor.dom.getParent(editor.selection.getStart(), 'a'); + if (elm) { + editor.dom.remove(elm, true); + } + return; + } + editor.formatter.remove('link'); + }, + 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function (command) { + var align = command.substring(7); + if (align === 'full') { + align = 'justify'; + } + each$f('left,center,right,justify'.split(','), function (name) { + if (align !== name) { + editor.formatter.remove('align' + name); + } + }); + if (align !== 'none') { + self.toggleFormat('align' + align); + } + }, + 'InsertUnorderedList,InsertOrderedList': function (command) { + var listElm, listParent; + self.execNativeCommand(command); + listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul'); + if (listElm) { + listParent = listElm.parentNode; + if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) { + self.storeSelection(); + editor.dom.split(listParent, listElm); + self.restoreSelection(); + } + } + }, + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) { + self.toggleFormat(command); + }, + 'ForeColor,HiliteColor': function (command, ui, value) { + self.toggleFormat(command, value); + }, + 'FontName': function (command, ui, value) { + fontNameAction(editor, value); + }, + 'FontSize': function (command, ui, value) { + fontSizeAction(editor, value); + }, + 'RemoveFormat': function (command) { + editor.formatter.remove(command); + }, + 'mceBlockQuote': function () { + self.toggleFormat('blockquote'); + }, + 'FormatBlock': function (command, ui, value) { + return self.toggleFormat(value || 'p'); + }, + 'mceCleanup': function () { + var bookmark = editor.selection.getBookmark(); + editor.setContent(editor.getContent()); + editor.selection.moveToBookmark(bookmark); + }, + 'mceRemoveNode': function (command, ui, value) { + var node = value || editor.selection.getNode(); + if (node !== editor.getBody()) { + self.storeSelection(); + editor.dom.remove(node, true); + self.restoreSelection(); + } + }, + 'mceSelectNodeDepth': function (command, ui, value) { + var counter = 0; + editor.dom.getParent(editor.selection.getNode(), function (node) { + if (node.nodeType === 1 && counter++ === value) { + editor.selection.select(node); + return false; + } + }, editor.getBody()); + }, + 'mceSelectNode': function (command, ui, value) { + editor.selection.select(value); + }, + 'mceInsertContent': function (command, ui, value) { + InsertContent.insertAtCaret(editor, value); + }, + 'mceInsertRawHTML': function (command, ui, value) { + editor.selection.setContent('tiny_mce_marker'); + var content = editor.getContent(); + editor.setContent(content.replace(/tiny_mce_marker/g, function () { + return value; + })); + }, + 'mceInsertNewLine': function (command, ui, value) { + InsertNewLine.insert(editor, value); + }, + 'mceToggleFormat': function (command, ui, value) { + self.toggleFormat(value); + }, + 'mceSetContent': function (command, ui, value) { + editor.setContent(value); + }, + 'Indent,Outdent': function (command) { + handle(editor, command); + }, + 'mceRepaint': function () { + }, + 'InsertHorizontalRule': function () { + editor.execCommand('mceInsertContent', false, '
    '); + }, + 'mceToggleVisualAid': function () { + editor.hasVisual = !editor.hasVisual; + editor.addVisual(); + }, + 'mceReplaceContent': function (command, ui, value) { + editor.execCommand('mceInsertContent', false, value.replace(/\{\$selection\}/g, editor.selection.getContent({ format: 'text' }))); + }, + 'mceInsertLink': function (command, ui, value) { + var anchor; + if (typeof value === 'string') { + value = { href: value }; + } + anchor = editor.dom.getParent(editor.selection.getNode(), 'a'); + value.href = value.href.replace(/ /g, '%20'); + if (!anchor || !value.href) { + editor.formatter.remove('link'); + } + if (value.href) { + editor.formatter.apply('link', value, anchor); + } + }, + 'selectAll': function () { + var editingHost = editor.dom.getParent(editor.selection.getStart(), NodeType.isContentEditableTrue); + if (editingHost) { + var rng = editor.dom.createRng(); + rng.selectNodeContents(editingHost); + editor.selection.setRng(rng); + } + }, + 'delete': function () { + DeleteCommands.deleteCommand(editor); + }, + 'forwardDelete': function () { + DeleteCommands.forwardDeleteCommand(editor); + }, + 'mceNewDocument': function () { + editor.setContent(''); + }, + 'InsertLineBreak': function (command, ui, value) { + InsertBr.insert(editor, value); + return true; + } + }); + var alignStates = function (name) { + return function () { + var nodes = editor.selection.isCollapsed() ? [editor.dom.getParent(editor.selection.getNode(), editor.dom.isBlock)] : editor.selection.getSelectedBlocks(); + var matches = map$3(nodes, function (node) { + return !!editor.formatter.matchNode(node, name); + }); + return inArray$2(matches, true) !== -1; + }; + }; + self.addCommands({ + 'JustifyLeft': alignStates('alignleft'), + 'JustifyCenter': alignStates('aligncenter'), + 'JustifyRight': alignStates('alignright'), + 'JustifyFull': alignStates('alignjustify'), + 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) { + return self.isFormatMatch(command); + }, + 'mceBlockQuote': function () { + return self.isFormatMatch('blockquote'); + }, + 'Outdent': function () { + return canOutdent(editor); + }, + 'InsertUnorderedList,InsertOrderedList': function (command) { + var list = editor.dom.getParent(editor.selection.getNode(), 'ul,ol'); + return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL'); + } + }, 'state'); + self.addCommands({ + Undo: function () { + editor.undoManager.undo(); + }, + Redo: function () { + editor.undoManager.redo(); + } + }); + self.addQueryValueHandler('FontName', function () { + return fontNameQuery(editor); + }, this); + self.addQueryValueHandler('FontSize', function () { + return fontSizeQuery(editor); + }, this); + }; + return EditorCommands; + }(); + + var nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' '); + var EventDispatcher = function () { + function EventDispatcher(settings) { + this.bindings = {}; + this.settings = settings || {}; + this.scope = this.settings.scope || this; + this.toggleEvent = this.settings.toggleEvent || never; + } + EventDispatcher.isNative = function (name) { + return !!nativeEvents[name.toLowerCase()]; + }; + EventDispatcher.prototype.fire = function (name, args) { + var handlers, i, l, callback; + name = name.toLowerCase(); + args = args || {}; + args.type = name; + if (!args.target) { + args.target = this.scope; + } + if (!args.preventDefault) { + args.preventDefault = function () { + args.isDefaultPrevented = always; + }; + args.stopPropagation = function () { + args.isPropagationStopped = always; + }; + args.stopImmediatePropagation = function () { + args.isImmediatePropagationStopped = always; + }; + args.isDefaultPrevented = never; + args.isPropagationStopped = never; + args.isImmediatePropagationStopped = never; + } + if (this.settings.beforeFire) { + this.settings.beforeFire(args); + } + handlers = this.bindings[name]; + if (handlers) { + for (i = 0, l = handlers.length; i < l; i++) { + callback = handlers[i]; + if (callback.once) { + this.off(name, callback.func); + } + if (args.isImmediatePropagationStopped()) { + args.stopPropagation(); + return args; + } + if (callback.func.call(this.scope, args) === false) { + args.preventDefault(); + return args; + } + } + } + return args; + }; + EventDispatcher.prototype.on = function (name, callback, prepend, extra) { + var handlers, names, i; + if (callback === false) { + callback = never; + } + if (callback) { + var wrappedCallback = { func: callback }; + if (extra) { + Tools.extend(wrappedCallback, extra); + } + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = this.bindings[name]; + if (!handlers) { + handlers = this.bindings[name] = []; + this.toggleEvent(name, true); + } + if (prepend) { + handlers.unshift(wrappedCallback); + } else { + handlers.push(wrappedCallback); + } + } + } + return this; + }; + EventDispatcher.prototype.off = function (name, callback) { + var i, handlers, bindingName, names, hi; + if (name) { + names = name.toLowerCase().split(' '); + i = names.length; + while (i--) { + name = names[i]; + handlers = this.bindings[name]; + if (!name) { + for (bindingName in this.bindings) { + this.toggleEvent(bindingName, false); + delete this.bindings[bindingName]; + } + return this; + } + if (handlers) { + if (!callback) { + handlers.length = 0; + } else { + hi = handlers.length; + while (hi--) { + if (handlers[hi].func === callback) { + handlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1)); + this.bindings[name] = handlers; + } + } + } + if (!handlers.length) { + this.toggleEvent(name, false); + delete this.bindings[name]; + } + } + } + } else { + for (name in this.bindings) { + this.toggleEvent(name, false); + } + this.bindings = {}; + } + return this; + }; + EventDispatcher.prototype.once = function (name, callback, prepend) { + return this.on(name, callback, prepend, { once: true }); + }; + EventDispatcher.prototype.has = function (name) { + name = name.toLowerCase(); + return !(!this.bindings[name] || this.bindings[name].length === 0); + }; + return EventDispatcher; + }(); + + var getEventDispatcher = function (obj) { + if (!obj._eventDispatcher) { + obj._eventDispatcher = new EventDispatcher({ + scope: obj, + toggleEvent: function (name, state) { + if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) { + obj.toggleNativeEvent(name, state); + } + } + }); + } + return obj._eventDispatcher; + }; + var Observable = { + fire: function (name, args, bubble) { + var self = this; + if (self.removed && name !== 'remove' && name !== 'detach') { + return args; + } + var dispatcherArgs = getEventDispatcher(self).fire(name, args); + if (bubble !== false && self.parent) { + var parent_1 = self.parent(); + while (parent_1 && !dispatcherArgs.isPropagationStopped()) { + parent_1.fire(name, dispatcherArgs, false); + parent_1 = parent_1.parent(); + } + } + return dispatcherArgs; + }, + on: function (name, callback, prepend) { + return getEventDispatcher(this).on(name, callback, prepend); + }, + off: function (name, callback) { + return getEventDispatcher(this).off(name, callback); + }, + once: function (name, callback) { + return getEventDispatcher(this).once(name, callback); + }, + hasEventListeners: function (name) { + return getEventDispatcher(this).has(name); + } + }; + + var internalContentEditableAttr = 'data-mce-contenteditable'; + var toggleClass = function (elm, cls, state) { + if (has$2(elm, cls) && state === false) { + remove$4(elm, cls); + } else if (state) { + add$3(elm, cls); + } + }; + var setEditorCommandState = function (editor, cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + } + }; + var setContentEditable = function (elm, state) { + elm.dom().contentEditable = state ? 'true' : 'false'; + }; + var switchOffContentEditableTrue = function (elm) { + each(descendants$1(elm, '*[contenteditable="true"]'), function (elm) { + set(elm, internalContentEditableAttr, 'true'); + setContentEditable(elm, false); + }); + }; + var switchOnContentEditableTrue = function (elm) { + each(descendants$1(elm, '*[' + internalContentEditableAttr + '="true"]'), function (elm) { + remove$1(elm, internalContentEditableAttr); + setContentEditable(elm, true); + }); + }; + var removeFakeSelection = function (editor) { + Option.from(editor.selection.getNode()).each(function (elm) { + elm.removeAttribute('data-mce-selected'); + }); + }; + var restoreFakeSelection = function (editor) { + editor.selection.setRng(editor.selection.getRng()); + }; + var toggleReadOnly = function (editor, state) { + var body = Element.fromDom(editor.getBody()); + toggleClass(body, 'mce-content-readonly', state); + if (state) { + editor.selection.controlSelection.hideResizeRect(); + editor._selectionOverrides.hideFakeCaret(); + removeFakeSelection(editor); + editor.readonly = true; + setContentEditable(body, false); + switchOffContentEditableTrue(body); + } else { + editor.readonly = false; + setContentEditable(body, true); + switchOnContentEditableTrue(body); + setEditorCommandState(editor, 'StyleWithCSS', false); + setEditorCommandState(editor, 'enableInlineTableEditing', false); + setEditorCommandState(editor, 'enableObjectResizing', false); + if (EditorFocus.hasEditorOrUiFocus(editor)) { + editor.focus(); + } + restoreFakeSelection(editor); + editor.nodeChanged(); + } + }; + var isReadOnly = function (editor) { + return editor.readonly; + }; + var registerFilters = function (editor) { + editor.parser.addAttributeFilter('contenteditable', function (nodes) { + if (isReadOnly(editor)) { + each(nodes, function (node) { + node.attr(internalContentEditableAttr, node.attr('contenteditable')); + node.attr('contenteditable', 'false'); + }); + } + }); + editor.serializer.addAttributeFilter(internalContentEditableAttr, function (nodes) { + if (isReadOnly(editor)) { + each(nodes, function (node) { + node.attr('contenteditable', node.attr(internalContentEditableAttr)); + }); + } + }); + editor.serializer.addTempAttr(internalContentEditableAttr); + }; + var registerReadOnlyContentFilters = function (editor) { + if (editor.serializer) { + registerFilters(editor); + } else { + editor.on('PreInit', function () { + registerFilters(editor); + }); + } + }; + var isClickEvent = function (e) { + return e.type === 'click'; + }; + var isInAnchor = function (editor, target) { + return editor.dom.getParent(target, 'a') !== null; + }; + var preventReadOnlyEvents = function (editor, e) { + var target = e.target; + if (isClickEvent(e) && !VK.metaKeyPressed(e) && isInAnchor(editor, target)) { + e.preventDefault(); + } + }; + var registerReadOnlySelectionBlockers = function (editor) { + editor.on('ShowCaret', function (e) { + if (isReadOnly(editor)) { + e.preventDefault(); + } + }); + editor.on('ObjectSelected', function (e) { + if (isReadOnly(editor)) { + e.preventDefault(); + } + }); + }; + + var DOM$8 = DOMUtils$1.DOM; + var customEventRootDelegates; + var getEventTarget = function (editor, eventName) { + if (eventName === 'selectionchange') { + return editor.getDoc(); + } + if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) { + return editor.getDoc().documentElement; + } + if (editor.settings.event_root) { + if (!editor.eventRoot) { + editor.eventRoot = DOM$8.select(editor.settings.event_root)[0]; + } + return editor.eventRoot; + } + return editor.getBody(); + }; + var isListening = function (editor) { + return !editor.hidden && !isReadOnly(editor); + }; + var fireEvent = function (editor, eventName, e) { + if (isListening(editor)) { + editor.fire(eventName, e); + } else if (isReadOnly(editor)) { + preventReadOnlyEvents(editor, e); + } + }; + var bindEventDelegate = function (editor, eventName) { + var eventRootElm, delegate; + if (!editor.delegates) { + editor.delegates = {}; + } + if (editor.delegates[eventName] || editor.removed) { + return; + } + eventRootElm = getEventTarget(editor, eventName); + if (editor.settings.event_root) { + if (!customEventRootDelegates) { + customEventRootDelegates = {}; + editor.editorManager.on('removeEditor', function () { + var name; + if (!editor.editorManager.activeEditor) { + if (customEventRootDelegates) { + for (name in customEventRootDelegates) { + editor.dom.unbind(getEventTarget(editor, name)); + } + customEventRootDelegates = null; + } + } + }); + } + if (customEventRootDelegates[eventName]) { + return; + } + delegate = function (e) { + var target = e.target; + var editors = editor.editorManager.get(); + var i = editors.length; + while (i--) { + var body = editors[i].getBody(); + if (body === target || DOM$8.isChildOf(target, body)) { + fireEvent(editors[i], eventName, e); + } + } + }; + customEventRootDelegates[eventName] = delegate; + DOM$8.bind(eventRootElm, eventName, delegate); + } else { + delegate = function (e) { + fireEvent(editor, eventName, e); + }; + DOM$8.bind(eventRootElm, eventName, delegate); + editor.delegates[eventName] = delegate; + } + }; + var EditorObservable = __assign(__assign({}, Observable), { + bindPendingEventDelegates: function () { + var self = this; + Tools.each(self._pendingNativeEvents, function (name) { + bindEventDelegate(self, name); + }); + }, + toggleNativeEvent: function (name, state) { + var self = this; + if (name === 'focus' || name === 'blur') { + return; + } + if (state) { + if (self.initialized) { + bindEventDelegate(self, name); + } else { + if (!self._pendingNativeEvents) { + self._pendingNativeEvents = [name]; + } else { + self._pendingNativeEvents.push(name); + } + } + } else if (self.initialized) { + self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]); + delete self.delegates[name]; + } + }, + unbindAllNativeEvents: function () { + var self = this; + var body = self.getBody(); + var dom = self.dom; + var name; + if (self.delegates) { + for (name in self.delegates) { + self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]); + } + delete self.delegates; + } + if (!self.inline && body && dom) { + body.onload = null; + dom.unbind(self.getWin()); + dom.unbind(self.getDoc()); + } + if (dom) { + dom.unbind(body); + dom.unbind(self.getContainer()); + } + } + }); + + var defaultModes = [ + 'design', + 'readonly' + ]; + var switchToMode = function (editor, activeMode, availableModes, mode) { + var oldMode = availableModes[activeMode.get()]; + var newMode = availableModes[mode]; + try { + newMode.activate(); + } catch (e) { + domGlobals.console.error('problem while activating editor mode ' + mode + ':', e); + return; + } + oldMode.deactivate(); + if (oldMode.editorReadOnly !== newMode.editorReadOnly) { + toggleReadOnly(editor, newMode.editorReadOnly); + } + activeMode.set(mode); + fireSwitchMode(editor, mode); + }; + var setMode = function (editor, availableModes, activeMode, mode) { + if (mode === activeMode.get()) { + return; + } else if (!has(availableModes, mode)) { + throw new Error('Editor mode \'' + mode + '\' is invalid'); + } + if (editor.initialized) { + switchToMode(editor, activeMode, availableModes, mode); + } else { + editor.on('init', function () { + return switchToMode(editor, activeMode, availableModes, mode); + }); + } + }; + var registerMode = function (availableModes, mode, api) { + var _a; + if (contains(defaultModes, mode)) { + throw new Error('Cannot override default mode ' + mode); + } + return __assign(__assign({}, availableModes), (_a = {}, _a[mode] = __assign(__assign({}, api), { + deactivate: function () { + try { + api.deactivate(); + } catch (e) { + domGlobals.console.error('problem while deactivating editor mode ' + mode + ':', e); + } + } + }), _a)); + }; + + var create$4 = function (editor) { + var activeMode = Cell('design'); + var availableModes = Cell({ + design: { + activate: noop, + deactivate: noop, + editorReadOnly: false + }, + readonly: { + activate: noop, + deactivate: noop, + editorReadOnly: true + } + }); + registerReadOnlyContentFilters(editor); + registerReadOnlySelectionBlockers(editor); + return { + isReadOnly: function () { + return isReadOnly(editor); + }, + set: function (mode) { + return setMode(editor, availableModes.get(), activeMode, mode); + }, + get: function () { + return activeMode.get(); + }, + register: function (mode, api) { + availableModes.set(registerMode(availableModes.get(), mode, api)); + } + }; + }; + + var each$g = Tools.each, explode$3 = Tools.explode; + var keyCodeLookup = { + f1: 112, + f2: 113, + f3: 114, + f4: 115, + f5: 116, + f6: 117, + f7: 118, + f8: 119, + f9: 120, + f10: 121, + f11: 122, + f12: 123 + }; + var modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access'); + var Shortcuts = function () { + function Shortcuts(editor) { + this.shortcuts = {}; + this.pendingPatterns = []; + this.editor = editor; + var self = this; + editor.on('keyup keypress keydown', function (e) { + if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) { + each$g(self.shortcuts, function (shortcut) { + if (self.matchShortcut(e, shortcut)) { + self.pendingPatterns = shortcut.subpatterns.slice(0); + if (e.type === 'keydown') { + self.executeShortcutAction(shortcut); + } + return true; + } + }); + if (self.matchShortcut(e, self.pendingPatterns[0])) { + if (self.pendingPatterns.length === 1) { + if (e.type === 'keydown') { + self.executeShortcutAction(self.pendingPatterns[0]); + } + } + self.pendingPatterns.shift(); + } + } + }); + } + Shortcuts.prototype.add = function (pattern, desc, cmdFunc, scope) { + var self = this; + var cmd; + cmd = cmdFunc; + if (typeof cmdFunc === 'string') { + cmdFunc = function () { + self.editor.execCommand(cmd, false, null); + }; + } else if (Tools.isArray(cmd)) { + cmdFunc = function () { + self.editor.execCommand(cmd[0], cmd[1], cmd[2]); + }; + } + each$g(explode$3(Tools.trim(pattern)), function (pattern) { + var shortcut = self.createShortcut(pattern, desc, cmdFunc, scope); + self.shortcuts[shortcut.id] = shortcut; + }); + return true; + }; + Shortcuts.prototype.remove = function (pattern) { + var shortcut = this.createShortcut(pattern); + if (this.shortcuts[shortcut.id]) { + delete this.shortcuts[shortcut.id]; + return true; + } + return false; + }; + Shortcuts.prototype.parseShortcut = function (pattern) { + var id, key; + var shortcut = {}; + each$g(explode$3(pattern.toLowerCase(), '+'), function (value) { + if (value in modifierNames) { + shortcut[value] = true; + } else { + if (/^[0-9]{2,}$/.test(value)) { + shortcut.keyCode = parseInt(value, 10); + } else { + shortcut.charCode = value.charCodeAt(0); + shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0); + } + } + }); + id = [shortcut.keyCode]; + for (key in modifierNames) { + if (shortcut[key]) { + id.push(key); + } else { + shortcut[key] = false; + } + } + shortcut.id = id.join(','); + if (shortcut.access) { + shortcut.alt = true; + if (Env.mac) { + shortcut.ctrl = true; + } else { + shortcut.shift = true; + } + } + if (shortcut.meta) { + if (Env.mac) { + shortcut.meta = true; + } else { + shortcut.ctrl = true; + shortcut.meta = false; + } + } + return shortcut; + }; + Shortcuts.prototype.createShortcut = function (pattern, desc, cmdFunc, scope) { + var shortcuts; + shortcuts = Tools.map(explode$3(pattern, '>'), this.parseShortcut); + shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], { + func: cmdFunc, + scope: scope || this.editor + }); + return Tools.extend(shortcuts[0], { + desc: this.editor.translate(desc), + subpatterns: shortcuts.slice(1) + }); + }; + Shortcuts.prototype.hasModifier = function (e) { + return e.altKey || e.ctrlKey || e.metaKey; + }; + Shortcuts.prototype.isFunctionKey = function (e) { + return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123; + }; + Shortcuts.prototype.matchShortcut = function (e, shortcut) { + if (!shortcut) { + return false; + } + if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) { + return false; + } + if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) { + return false; + } + if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) { + e.preventDefault(); + return true; + } + return false; + }; + Shortcuts.prototype.executeShortcutAction = function (shortcut) { + return shortcut.func ? shortcut.func.call(shortcut.scope) : null; + }; + return Shortcuts; + }(); + + var create$5 = function () { + var buttons = {}; + var menuItems = {}; + var popups = {}; + var icons = {}; + var contextMenus = {}; + var contextToolbars = {}; + var sidebars = {}; + var add = function (collection, type) { + return function (name, spec) { + return collection[name.toLowerCase()] = __assign(__assign({}, spec), { type: type }); + }; + }; + var addIcon = function (name, svgData) { + return icons[name.toLowerCase()] = svgData; + }; + return { + addButton: add(buttons, 'button'), + addGroupToolbarButton: add(buttons, 'grouptoolbarbutton'), + addToggleButton: add(buttons, 'togglebutton'), + addMenuButton: add(buttons, 'menubutton'), + addSplitButton: add(buttons, 'splitbutton'), + addMenuItem: add(menuItems, 'menuitem'), + addNestedMenuItem: add(menuItems, 'nestedmenuitem'), + addToggleMenuItem: add(menuItems, 'togglemenuitem'), + addAutocompleter: add(popups, 'autocompleter'), + addContextMenu: add(contextMenus, 'contextmenu'), + addContextToolbar: add(contextToolbars, 'contexttoolbar'), + addContextForm: add(contextToolbars, 'contextform'), + addSidebar: add(sidebars, 'sidebar'), + addIcon: addIcon, + getAll: function () { + return { + buttons: buttons, + menuItems: menuItems, + icons: icons, + popups: popups, + contextMenus: contextMenus, + contextToolbars: contextToolbars, + sidebars: sidebars + }; + } + }; + }; + + var registry = function () { + var bridge = create$5(); + return { + addAutocompleter: bridge.addAutocompleter, + addButton: bridge.addButton, + addContextForm: bridge.addContextForm, + addContextMenu: bridge.addContextMenu, + addContextToolbar: bridge.addContextToolbar, + addIcon: bridge.addIcon, + addMenuButton: bridge.addMenuButton, + addMenuItem: bridge.addMenuItem, + addNestedMenuItem: bridge.addNestedMenuItem, + addSidebar: bridge.addSidebar, + addSplitButton: bridge.addSplitButton, + addToggleButton: bridge.addToggleButton, + addGroupToolbarButton: bridge.addGroupToolbarButton, + addToggleMenuItem: bridge.addToggleMenuItem, + getAll: bridge.getAll + }; + }; + + var each$h = Tools.each, trim$4 = Tools.trim; + var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' '); + var DEFAULT_PORTS = { + ftp: 21, + http: 80, + https: 443, + mailto: 25 + }; + var URI = function () { + function URI(url, settings) { + url = trim$4(url); + this.settings = settings || {}; + var baseUri = this.settings.base_uri; + var self = this; + if (/^([\w\-]+):([^\/]{2})/i.test(url) || /^\s*#/.test(url)) { + self.source = url; + return; + } + var isProtocolRelative = url.indexOf('//') === 0; + if (url.indexOf('/') === 0 && !isProtocolRelative) { + url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url; + } + if (!/^[\w\-]*:?\/\//.test(url)) { + var baseUrl = this.settings.base_uri ? this.settings.base_uri.path : new URI(domGlobals.document.location.href).directory; + if (this.settings.base_uri && this.settings.base_uri.protocol == '') { + url = '//mce_host' + self.toAbsPath(baseUrl, url); + } else { + var match = /([^#?]*)([#?]?.*)/.exec(url); + url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2]; + } + } + url = url.replace(/@@/g, '(mce_at)'); + var urlMatch = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url); + each$h(queryParts, function (v, i) { + var part = urlMatch[i]; + if (part) { + part = part.replace(/\(mce_at\)/g, '@@'); + } + self[v] = part; + }); + if (baseUri) { + if (!self.protocol) { + self.protocol = baseUri.protocol; + } + if (!self.userInfo) { + self.userInfo = baseUri.userInfo; + } + if (!self.port && self.host === 'mce_host') { + self.port = baseUri.port; + } + if (!self.host || self.host === 'mce_host') { + self.host = baseUri.host; + } + self.source = ''; + } + if (isProtocolRelative) { + self.protocol = ''; + } + } + URI.parseDataUri = function (uri) { + var type; + var uriComponents = decodeURIComponent(uri).split(','); + var matches = /data:([^;]+)/.exec(uriComponents[0]); + if (matches) { + type = matches[1]; + } + return { + type: type, + data: uriComponents[1] + }; + }; + URI.getDocumentBaseUrl = function (loc) { + var baseUrl; + if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') { + baseUrl = loc.href; + } else { + baseUrl = loc.protocol + '//' + loc.host + loc.pathname; + } + if (/^[^:]+:\/\/\/?[^\/]+\//.test(baseUrl)) { + baseUrl = baseUrl.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(baseUrl)) { + baseUrl += '/'; + } + } + return baseUrl; + }; + URI.prototype.setPath = function (path) { + var pathMatch = /^(.*?)\/?(\w+)?$/.exec(path); + this.path = pathMatch[0]; + this.directory = pathMatch[1]; + this.file = pathMatch[2]; + this.source = ''; + this.getURI(); + }; + URI.prototype.toRelative = function (uri) { + var output; + if (uri === './') { + return uri; + } + var relativeUri = new URI(uri, { base_uri: this }); + if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') { + return relativeUri.getURI(); + } + var tu = this.getURI(), uu = relativeUri.getURI(); + if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) { + return tu; + } + output = this.toRelPath(this.path, relativeUri.path); + if (relativeUri.query) { + output += '?' + relativeUri.query; + } + if (relativeUri.anchor) { + output += '#' + relativeUri.anchor; + } + return output; + }; + URI.prototype.toAbsolute = function (uri, noHost) { + var absoluteUri = new URI(uri, { base_uri: this }); + return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri)); + }; + URI.prototype.isSameOrigin = function (uri) { + if (this.host == uri.host && this.protocol == uri.protocol) { + if (this.port == uri.port) { + return true; + } + var defaultPort = DEFAULT_PORTS[this.protocol]; + if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) { + return true; + } + } + return false; + }; + URI.prototype.toRelPath = function (base, path) { + var items, breakPoint = 0, out = '', i, l; + var normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/'); + items = path.split('/'); + if (normalizedBase.length >= items.length) { + for (i = 0, l = normalizedBase.length; i < l; i++) { + if (i >= items.length || normalizedBase[i] !== items[i]) { + breakPoint = i + 1; + break; + } + } + } + if (normalizedBase.length < items.length) { + for (i = 0, l = items.length; i < l; i++) { + if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) { + breakPoint = i + 1; + break; + } + } + } + if (breakPoint === 1) { + return path; + } + for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) { + out += '../'; + } + for (i = breakPoint - 1, l = items.length; i < l; i++) { + if (i !== breakPoint - 1) { + out += '/' + items[i]; + } else { + out += items[i]; + } + } + return out; + }; + URI.prototype.toAbsPath = function (base, path) { + var i, nb = 0, o = [], tr, outPath; + tr = /\/$/.test(path) ? '/' : ''; + var normalizedBase = base.split('/'); + var normalizedPath = path.split('/'); + each$h(normalizedBase, function (k) { + if (k) { + o.push(k); + } + }); + normalizedBase = o; + for (i = normalizedPath.length - 1, o = []; i >= 0; i--) { + if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') { + continue; + } + if (normalizedPath[i] === '..') { + nb++; + continue; + } + if (nb > 0) { + nb--; + continue; + } + o.push(normalizedPath[i]); + } + i = normalizedBase.length - nb; + if (i <= 0) { + outPath = reverse(o).join('/'); + } else { + outPath = normalizedBase.slice(0, i).join('/') + '/' + reverse(o).join('/'); + } + if (outPath.indexOf('/') !== 0) { + outPath = '/' + outPath; + } + if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) { + outPath += tr; + } + return outPath; + }; + URI.prototype.getURI = function (noProtoHost) { + if (noProtoHost === void 0) { + noProtoHost = false; + } + var s; + if (!this.source || noProtoHost) { + s = ''; + if (!noProtoHost) { + if (this.protocol) { + s += this.protocol + '://'; + } else { + s += '//'; + } + if (this.userInfo) { + s += this.userInfo + '@'; + } + if (this.host) { + s += this.host; + } + if (this.port) { + s += ':' + this.port; + } + } + if (this.path) { + s += this.path; + } + if (this.query) { + s += '?' + this.query; + } + if (this.anchor) { + s += '#' + this.anchor; + } + this.source = s; + } + return this.source; + }; + return URI; + }(); + + var DOM$9 = DOMUtils$1.DOM; + var extend$3 = Tools.extend, each$i = Tools.each; + var resolve$3 = Tools.resolve; + var ie$1 = Env.ie; + var Editor = function () { + function Editor(id, settings, editorManager) { + var _this = this; + this.plugins = {}; + this.contentCSS = []; + this.contentStyles = []; + this.loadedCSS = {}; + this.isNotDirty = false; + this.editorManager = editorManager; + this.documentBaseUrl = editorManager.documentBaseURL; + extend$3(this, EditorObservable); + this.settings = getEditorSettings(this, id, this.documentBaseUrl, editorManager.defaultSettings, settings); + if (this.settings.suffix) { + editorManager.suffix = this.settings.suffix; + } + this.suffix = editorManager.suffix; + if (this.settings.base_url) { + editorManager._setBaseUrl(this.settings.base_url); + } + this.baseUri = editorManager.baseURI; + if (this.settings.referrer_policy) { + ScriptLoader.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy); + DOMUtils$1.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy); + } + AddOnManager$1.languageLoad = this.settings.language_load; + AddOnManager$1.baseURL = editorManager.baseURL; + this.id = id; + this.setDirty(false); + this.documentBaseURI = new URI(this.settings.document_base_url, { base_uri: this.baseUri }); + this.baseURI = this.baseUri; + this.inline = !!this.settings.inline; + this.shortcuts = new Shortcuts(this); + this.editorCommands = new EditorCommands(this); + if (this.settings.cache_suffix) { + Env.cacheSuffix = this.settings.cache_suffix.replace(/^[\?\&]+/, ''); + } + this.ui = { registry: registry() }; + var self = this; + var modeInstance = create$4(self); + this.mode = modeInstance; + this.setMode = modeInstance.set; + editorManager.fire('SetupEditor', { editor: this }); + this.execCallback('setup', this); + this.$ = DomQuery.overrideDefaults(function () { + return { + context: _this.inline ? _this.getBody() : _this.getDoc(), + element: _this.getBody() + }; + }); + } + Editor.prototype.render = function () { + Render.render(this); + }; + Editor.prototype.focus = function (skipFocus) { + EditorFocus.focus(this, skipFocus); + }; + Editor.prototype.hasFocus = function () { + return EditorFocus.hasFocus(this); + }; + Editor.prototype.execCallback = function (name) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var self = this; + var callback = self.settings[name], scope; + if (!callback) { + return; + } + if (self.callbackLookup && (scope = self.callbackLookup[name])) { + callback = scope.func; + scope = scope.scope; + } + if (typeof callback === 'string') { + scope = callback.replace(/\.\w+$/, ''); + scope = scope ? resolve$3(scope) : 0; + callback = resolve$3(callback); + self.callbackLookup = self.callbackLookup || {}; + self.callbackLookup[name] = { + func: callback, + scope: scope + }; + } + return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1)); + }; + Editor.prototype.translate = function (text) { + return I18n.translate(text); + }; + Editor.prototype.getParam = function (name, defaultVal, type) { + return getParam(this, name, defaultVal, type); + }; + Editor.prototype.nodeChanged = function (args) { + this._nodeChangeDispatcher.nodeChanged(args); + }; + Editor.prototype.addCommand = function (name, callback, scope) { + this.editorCommands.addCommand(name, callback, scope); + }; + Editor.prototype.addQueryStateHandler = function (name, callback, scope) { + this.editorCommands.addQueryStateHandler(name, callback, scope); + }; + Editor.prototype.addQueryValueHandler = function (name, callback, scope) { + this.editorCommands.addQueryValueHandler(name, callback, scope); + }; + Editor.prototype.addShortcut = function (pattern, desc, cmdFunc, scope) { + this.shortcuts.add(pattern, desc, cmdFunc, scope); + }; + Editor.prototype.execCommand = function (cmd, ui, value, args) { + return this.editorCommands.execCommand(cmd, ui, value, args); + }; + Editor.prototype.queryCommandState = function (cmd) { + return this.editorCommands.queryCommandState(cmd); + }; + Editor.prototype.queryCommandValue = function (cmd) { + return this.editorCommands.queryCommandValue(cmd); + }; + Editor.prototype.queryCommandSupported = function (cmd) { + return this.editorCommands.queryCommandSupported(cmd); + }; + Editor.prototype.show = function () { + var self = this; + if (self.hidden) { + self.hidden = false; + if (self.inline) { + self.getBody().contentEditable = 'true'; + } else { + DOM$9.show(self.getContainer()); + DOM$9.hide(self.id); + } + self.load(); + self.fire('show'); + } + }; + Editor.prototype.hide = function () { + var self = this, doc = self.getDoc(); + if (!self.hidden) { + if (ie$1 && doc && !self.inline) { + doc.execCommand('SelectAll'); + } + self.save(); + if (self.inline) { + self.getBody().contentEditable = 'false'; + if (self === self.editorManager.focusedEditor) { + self.editorManager.focusedEditor = null; + } + } else { + DOM$9.hide(self.getContainer()); + DOM$9.setStyle(self.id, 'display', self.orgDisplay); + } + self.hidden = true; + self.fire('hide'); + } + }; + Editor.prototype.isHidden = function () { + return !!this.hidden; + }; + Editor.prototype.setProgressState = function (state, time) { + this.fire('ProgressState', { + state: state, + time: time + }); + }; + Editor.prototype.load = function (args) { + var self = this; + var elm = self.getElement(), html; + if (self.removed) { + return ''; + } + if (elm) { + args = args || {}; + args.load = true; + var value = NodeType.isTextareaOrInput(elm) ? elm.value : elm.innerHTML; + html = self.setContent(value, args); + args.element = elm; + if (!args.no_events) { + self.fire('LoadContent', args); + } + args.element = elm = null; + return html; + } + }; + Editor.prototype.save = function (args) { + var self = this; + var elm = self.getElement(), html, form; + if (!elm || !self.initialized || self.removed) { + return; + } + args = args || {}; + args.save = true; + args.element = elm; + html = args.content = self.getContent(args); + if (!args.no_events) { + self.fire('SaveContent', args); + } + if (args.format === 'raw') { + self.fire('RawSaveContent', args); + } + html = args.content; + if (!NodeType.isTextareaOrInput(elm)) { + if (args.is_removing || !self.inline) { + elm.innerHTML = html; + } + if (form = DOM$9.getParent(self.id, 'form')) { + each$i(form.elements, function (elm) { + if (elm.name === self.id) { + elm.value = html; + return false; + } + }); + } + } else { + elm.value = html; + } + args.element = elm = null; + if (args.set_dirty !== false) { + self.setDirty(false); + } + return html; + }; + Editor.prototype.setContent = function (content, args) { + return setContent(this, content, args); + }; + Editor.prototype.getContent = function (args) { + return getContent(this, args); + }; + Editor.prototype.insertContent = function (content, args) { + if (args) { + content = extend$3({ content: content }, args); + } + this.execCommand('mceInsertContent', false, content); + }; + Editor.prototype.resetContent = function (initialContent) { + if (initialContent === undefined) { + setContent(this, this.startContent, { format: 'raw' }); + } else { + setContent(this, initialContent); + } + this.undoManager.reset(); + this.setDirty(false); + this.nodeChanged(); + }; + Editor.prototype.isDirty = function () { + return !this.isNotDirty; + }; + Editor.prototype.setDirty = function (state) { + var oldState = !this.isNotDirty; + this.isNotDirty = !state; + if (state && state !== oldState) { + this.fire('dirty'); + } + }; + Editor.prototype.getContainer = function () { + var self = this; + if (!self.container) { + self.container = DOM$9.get(self.editorContainer || self.id + '_parent'); + } + return self.container; + }; + Editor.prototype.getContentAreaContainer = function () { + return this.contentAreaContainer; + }; + Editor.prototype.getElement = function () { + if (!this.targetElm) { + this.targetElm = DOM$9.get(this.id); + } + return this.targetElm; + }; + Editor.prototype.getWin = function () { + var self = this; + var elm; + if (!self.contentWindow) { + elm = self.iframeElement; + if (elm) { + self.contentWindow = elm.contentWindow; + } + } + return self.contentWindow; + }; + Editor.prototype.getDoc = function () { + var self = this; + var win; + if (!self.contentDocument) { + win = self.getWin(); + if (win) { + self.contentDocument = win.document; + } + } + return self.contentDocument; + }; + Editor.prototype.getBody = function () { + var doc = this.getDoc(); + return this.bodyElement || (doc ? doc.body : null); + }; + Editor.prototype.convertURL = function (url, name, elm) { + var self = this, settings = self.settings; + if (settings.urlconverter_callback) { + return self.execCallback('urlconverter_callback', url, elm, true, name); + } + if (!settings.convert_urls || elm && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) { + return url; + } + if (settings.relative_urls) { + return self.documentBaseURI.toRelative(url); + } + url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host); + return url; + }; + Editor.prototype.addVisual = function (elm) { + var self = this; + var settings = self.settings; + var dom = self.dom; + var cls; + elm = elm || self.getBody(); + if (self.hasVisual === undefined) { + self.hasVisual = settings.visual; + } + each$i(dom.select('table,a', elm), function (elm) { + var value; + switch (elm.nodeName) { + case 'TABLE': + cls = settings.visual_table_class || 'mce-item-table'; + value = dom.getAttrib(elm, 'border'); + if ((!value || value === '0') && self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + return; + case 'A': + if (!dom.getAttrib(elm, 'href')) { + value = dom.getAttrib(elm, 'name') || elm.id; + cls = settings.visual_anchor_class || 'mce-item-anchor'; + if (value && self.hasVisual) { + dom.addClass(elm, cls); + } else { + dom.removeClass(elm, cls); + } + } + return; + } + }); + self.fire('VisualAid', { + element: elm, + hasVisual: self.hasVisual + }); + }; + Editor.prototype.remove = function () { + remove$6(this); + }; + Editor.prototype.destroy = function (automatic) { + destroy(this, automatic); + }; + Editor.prototype.uploadImages = function (callback) { + return this.editorUpload.uploadImages(callback); + }; + Editor.prototype._scanForImages = function () { + return this.editorUpload.scanForImages(); + }; + Editor.prototype.addButton = function () { + throw new Error('editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead'); + }; + Editor.prototype.addSidebar = function () { + throw new Error('editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead'); + }; + Editor.prototype.addMenuItem = function () { + throw new Error('editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead'); + }; + Editor.prototype.addContextToolbar = function () { + throw new Error('editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead'); + }; + return Editor; + }(); + + var DOM$a = DOMUtils$1.DOM; + var explode$4 = Tools.explode, each$j = Tools.each, extend$4 = Tools.extend; + var instanceCounter = 0, boundGlobalEvents = false; + var beforeUnloadDelegate; + var legacyEditors = []; + var editors = []; + var isValidLegacyKey = function (id) { + return id !== 'length'; + }; + var globalEventDelegate = function (e) { + var type = e.type; + each$j(EditorManager.get(), function (editor) { + switch (type) { + case 'scroll': + editor.fire('ScrollWindow', e); + break; + case 'resize': + editor.fire('ResizeWindow', e); + break; + } + }); + }; + var toggleGlobalEvents = function (state) { + if (state !== boundGlobalEvents) { + if (state) { + DomQuery(window).on('resize scroll', globalEventDelegate); + } else { + DomQuery(window).off('resize scroll', globalEventDelegate); + } + boundGlobalEvents = state; + } + }; + var removeEditorFromList = function (targetEditor) { + var oldEditors = editors; + delete legacyEditors[targetEditor.id]; + for (var i = 0; i < legacyEditors.length; i++) { + if (legacyEditors[i] === targetEditor) { + legacyEditors.splice(i, 1); + break; + } + } + editors = filter(editors, function (editor) { + return targetEditor !== editor; + }); + if (EditorManager.activeEditor === targetEditor) { + EditorManager.activeEditor = editors.length > 0 ? editors[0] : null; + } + if (EditorManager.focusedEditor === targetEditor) { + EditorManager.focusedEditor = null; + } + return oldEditors.length !== editors.length; + }; + var purgeDestroyedEditor = function (editor) { + if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) { + removeEditorFromList(editor); + editor.unbindAllNativeEvents(); + editor.destroy(true); + editor.removed = true; + editor = null; + } + return editor; + }; + var isQuirksMode = domGlobals.document.compatMode !== 'CSS1Compat'; + var EditorManager = __assign(__assign({}, Observable), { + baseURI: null, + baseURL: null, + defaultSettings: {}, + documentBaseURL: null, + suffix: null, + $: DomQuery, + majorVersion: '5', + minorVersion: '2.1', + releaseDate: '2020-03-25', + editors: legacyEditors, + i18n: I18n, + activeEditor: null, + focusedEditor: null, + settings: {}, + setup: function () { + var self = this; + var baseURL, documentBaseURL, suffix = ''; + documentBaseURL = URI.getDocumentBaseUrl(domGlobals.document.location); + if (/^[^:]+:\/\/\/?[^\/]+\//.test(documentBaseURL)) { + documentBaseURL = documentBaseURL.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, ''); + if (!/[\/\\]$/.test(documentBaseURL)) { + documentBaseURL += '/'; + } + } + var preInit = window.tinymce || window.tinyMCEPreInit; + if (preInit) { + baseURL = preInit.base || preInit.baseURL; + suffix = preInit.suffix; + } else { + var scripts = domGlobals.document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src || ''; + if (src === '') { + continue; + } + var srcScript = src.substring(src.lastIndexOf('/')); + if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) { + if (srcScript.indexOf('.min') !== -1) { + suffix = '.min'; + } + baseURL = src.substring(0, src.lastIndexOf('/')); + break; + } + } + if (!baseURL && domGlobals.document.currentScript) { + var src = domGlobals.document.currentScript.src; + if (src.indexOf('.min') !== -1) { + suffix = '.min'; + } + baseURL = src.substring(0, src.lastIndexOf('/')); + } + } + self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL); + self.documentBaseURL = documentBaseURL; + self.baseURI = new URI(self.baseURL); + self.suffix = suffix; + FocusController.setup(self); + }, + overrideDefaults: function (defaultSettings) { + var baseUrl, suffix; + baseUrl = defaultSettings.base_url; + if (baseUrl) { + this._setBaseUrl(baseUrl); + } + suffix = defaultSettings.suffix; + if (defaultSettings.suffix) { + this.suffix = suffix; + } + this.defaultSettings = defaultSettings; + var pluginBaseUrls = defaultSettings.plugin_base_urls; + for (var name_1 in pluginBaseUrls) { + AddOnManager$1.PluginManager.urls[name_1] = pluginBaseUrls[name_1]; + } + }, + init: function (settings) { + var self = this; + var result, invalidInlineTargets; + invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' '); + var isInvalidInlineTarget = function (settings, elm) { + return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets; + }; + var createId = function (elm) { + var id = elm.id; + if (!id) { + id = elm.name; + if (id && !DOM$a.get(id)) { + id = elm.name; + } else { + id = DOM$a.uniqueId(); + } + elm.setAttribute('id', id); + } + return id; + }; + var execCallback = function (name) { + var callback = settings[name]; + if (!callback) { + return; + } + return callback.apply(self, Array.prototype.slice.call(arguments, 2)); + }; + var hasClass = function (elm, className) { + return className.constructor === RegExp ? className.test(elm.className) : DOM$a.hasClass(elm, className); + }; + var findTargets = function (settings) { + var l, targets = []; + if (Env.browser.isIE() && Env.browser.version.major < 11) { + ErrorReporter.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/'); + return []; + } else if (isQuirksMode) { + ErrorReporter.initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.'); + return []; + } + if (settings.types) { + each$j(settings.types, function (type) { + targets = targets.concat(DOM$a.select(type.selector)); + }); + return targets; + } else if (settings.selector) { + return DOM$a.select(settings.selector); + } else if (settings.target) { + return [settings.target]; + } + switch (settings.mode) { + case 'exact': + l = settings.elements || ''; + if (l.length > 0) { + each$j(explode$4(l), function (id) { + var elm; + if (elm = DOM$a.get(id)) { + targets.push(elm); + } else { + each$j(domGlobals.document.forms, function (f) { + each$j(f.elements, function (e) { + if (e.name === id) { + id = 'mce_editor_' + instanceCounter++; + DOM$a.setAttrib(e, 'id', id); + targets.push(e); + } + }); + }); + } + }); + } + break; + case 'textareas': + case 'specific_textareas': + each$j(DOM$a.select('textarea'), function (elm) { + if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) { + return; + } + if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) { + targets.push(elm); + } + }); + break; + } + return targets; + }; + var provideResults = function (editors) { + result = editors; + }; + var initEditors = function () { + var initCount = 0; + var editors = []; + var targets; + var createEditor = function (id, settings, targetElm) { + var editor = new Editor(id, settings, self); + editors.push(editor); + editor.on('init', function () { + if (++initCount === targets.length) { + provideResults(editors); + } + }); + editor.targetElm = editor.targetElm || targetElm; + editor.render(); + }; + DOM$a.unbind(window, 'ready', initEditors); + execCallback('onpageload'); + targets = DomQuery.unique(findTargets(settings)); + if (settings.types) { + each$j(settings.types, function (type) { + Tools.each(targets, function (elm) { + if (DOM$a.is(elm, type.selector)) { + createEditor(createId(elm), extend$4({}, settings, type), elm); + return false; + } + return true; + }); + }); + return; + } + Tools.each(targets, function (elm) { + purgeDestroyedEditor(self.get(elm.id)); + }); + targets = Tools.grep(targets, function (elm) { + return !self.get(elm.id); + }); + if (targets.length === 0) { + provideResults([]); + } else { + each$j(targets, function (elm) { + if (isInvalidInlineTarget(settings, elm)) { + ErrorReporter.initError('Could not initialize inline editor on invalid inline target element', elm); + } else { + createEditor(createId(elm), settings, elm); + } + }); + } + }; + self.settings = settings; + DOM$a.bind(window, 'ready', initEditors); + return new promiseObj(function (resolve) { + if (result) { + resolve(result); + } else { + provideResults = function (editors) { + resolve(editors); + }; + } + }); + }, + get: function (id) { + if (arguments.length === 0) { + return editors.slice(0); + } else if (isString(id)) { + return find(editors, function (editor) { + return editor.id === id; + }).getOr(null); + } else if (isNumber(id)) { + return editors[id] ? editors[id] : null; + } else { + return null; + } + }, + add: function (editor) { + var self = this; + var existingEditor; + existingEditor = legacyEditors[editor.id]; + if (existingEditor === editor) { + return editor; + } + if (self.get(editor.id) === null) { + if (isValidLegacyKey(editor.id)) { + legacyEditors[editor.id] = editor; + } + legacyEditors.push(editor); + editors.push(editor); + } + toggleGlobalEvents(true); + self.activeEditor = editor; + self.fire('AddEditor', { editor: editor }); + if (!beforeUnloadDelegate) { + beforeUnloadDelegate = function (e) { + var event = self.fire('BeforeUnload'); + if (event.returnValue) { + e.preventDefault(); + e.returnValue = event.returnValue; + return event.returnValue; + } + }; + window.addEventListener('beforeunload', beforeUnloadDelegate); + } + return editor; + }, + createEditor: function (id, settings) { + return this.add(new Editor(id, settings, this)); + }, + remove: function (selector) { + var self = this; + var i, editor; + if (!selector) { + for (i = editors.length - 1; i >= 0; i--) { + self.remove(editors[i]); + } + return; + } + if (isString(selector)) { + each$j(DOM$a.select(selector), function (elm) { + editor = self.get(elm.id); + if (editor) { + self.remove(editor); + } + }); + return; + } + editor = selector; + if (isNull(self.get(editor.id))) { + return null; + } + if (removeEditorFromList(editor)) { + self.fire('RemoveEditor', { editor: editor }); + } + if (editors.length === 0) { + window.removeEventListener('beforeunload', beforeUnloadDelegate); + } + editor.remove(); + toggleGlobalEvents(editors.length > 0); + return editor; + }, + execCommand: function (cmd, ui, value) { + var self = this, editor = self.get(value); + switch (cmd) { + case 'mceAddEditor': + if (!self.get(value)) { + new Editor(value, self.settings, self).render(); + } + return true; + case 'mceRemoveEditor': + if (editor) { + editor.remove(); + } + return true; + case 'mceToggleEditor': + if (!editor) { + self.execCommand('mceAddEditor', 0, value); + return true; + } + if (editor.isHidden()) { + editor.show(); + } else { + editor.hide(); + } + return true; + } + if (self.activeEditor) { + return self.activeEditor.execCommand(cmd, ui, value); + } + return false; + }, + triggerSave: function () { + each$j(editors, function (editor) { + editor.save(); + }); + }, + addI18n: function (code, items) { + I18n.add(code, items); + }, + translate: function (text) { + return I18n.translate(text); + }, + setActive: function (editor) { + var activeEditor = this.activeEditor; + if (this.activeEditor !== editor) { + if (activeEditor) { + activeEditor.fire('deactivate', { relatedTarget: editor }); + } + editor.fire('activate', { relatedTarget: activeEditor }); + } + this.activeEditor = editor; + }, + _setBaseUrl: function (baseUrl) { + this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\/+$/, '')); + this.baseURI = new URI(this.baseURL); + } + }); + EditorManager.setup(); + + function RangeUtils(dom) { + var walk = function (rng, callback) { + return RangeWalk.walk(dom, rng, callback); + }; + var split = split$1; + var normalize = function (rng) { + return NormalizeRange.normalize(dom, rng).fold(constant(false), function (normalizedRng) { + rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset); + rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset); + return true; + }); + }; + return { + walk: walk, + split: split, + normalize: normalize + }; + } + (function (RangeUtils) { + RangeUtils.compareRanges = RangeCompare.isEq; + RangeUtils.getCaretRangeFromPoint = CaretRangeFromPoint.fromPoint; + RangeUtils.getSelectedNode = getSelectedNode; + RangeUtils.getNode = getNode; + }(RangeUtils || (RangeUtils = {}))); + var RangeUtils$1 = RangeUtils; + + var awaiter = function (resolveCb, rejectCb, timeout) { + if (timeout === void 0) { + timeout = 1000; + } + var done = false; + var timer = null; + var complete = function (completer) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (!done) { + done = true; + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + completer.apply(null, args); + } + }; + }; + var resolve = complete(resolveCb); + var reject = complete(rejectCb); + var start = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (!done && timer === null) { + timer = domGlobals.setTimeout(function () { + return reject.apply(null, args); + }, timeout); + } + }; + return { + start: start, + resolve: resolve, + reject: reject + }; + }; + var create$6 = function () { + var tasks = {}; + var resultFns = {}; + var load = function (id, url) { + var loadErrMsg = 'Script at URL "' + url + '" failed to load'; + var runErrMsg = 'Script at URL "' + url + '" did not call `tinymce.Resource.add(\'' + id + '\', data)` within 1 second'; + if (tasks[id] !== undefined) { + return tasks[id]; + } else { + var task = new promiseObj(function (resolve, reject) { + var waiter = awaiter(resolve, reject); + resultFns[id] = waiter.resolve; + ScriptLoader.ScriptLoader.loadScript(url, function () { + return waiter.start(runErrMsg); + }, function () { + return waiter.reject(loadErrMsg); + }); + }); + tasks[id] = task; + return task; + } + }; + var add = function (id, data) { + if (resultFns[id] !== undefined) { + resultFns[id](data); + delete resultFns[id]; + } + tasks[id] = promiseObj.resolve(data); + }; + return { + load: load, + add: add + }; + }; + var Resource = create$6(); + + var min = Math.min, max = Math.max, round$2 = Math.round; + var relativePosition = function (rect, targetRect, rel) { + var x, y, w, h, targetW, targetH; + x = targetRect.x; + y = targetRect.y; + w = rect.w; + h = rect.h; + targetW = targetRect.w; + targetH = targetRect.h; + rel = (rel || '').split(''); + if (rel[0] === 'b') { + y += targetH; + } + if (rel[1] === 'r') { + x += targetW; + } + if (rel[0] === 'c') { + y += round$2(targetH / 2); + } + if (rel[1] === 'c') { + x += round$2(targetW / 2); + } + if (rel[3] === 'b') { + y -= h; + } + if (rel[4] === 'r') { + x -= w; + } + if (rel[3] === 'c') { + y -= round$2(h / 2); + } + if (rel[4] === 'c') { + x -= round$2(w / 2); + } + return create$7(x, y, w, h); + }; + var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) { + var pos, i; + for (i = 0; i < rels.length; i++) { + pos = relativePosition(rect, targetRect, rels[i]); + if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) { + return rels[i]; + } + } + return null; + }; + var inflate = function (rect, w, h) { + return create$7(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2); + }; + var intersect = function (rect, cropRect) { + var x1, y1, x2, y2; + x1 = max(rect.x, cropRect.x); + y1 = max(rect.y, cropRect.y); + x2 = min(rect.x + rect.w, cropRect.x + cropRect.w); + y2 = min(rect.y + rect.h, cropRect.y + cropRect.h); + if (x2 - x1 < 0 || y2 - y1 < 0) { + return null; + } + return create$7(x1, y1, x2 - x1, y2 - y1); + }; + var clamp$1 = function (rect, clampRect, fixedSize) { + var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2; + x1 = rect.x; + y1 = rect.y; + x2 = rect.x + rect.w; + y2 = rect.y + rect.h; + cx2 = clampRect.x + clampRect.w; + cy2 = clampRect.y + clampRect.h; + underflowX1 = max(0, clampRect.x - x1); + underflowY1 = max(0, clampRect.y - y1); + overflowX2 = max(0, x2 - cx2); + overflowY2 = max(0, y2 - cy2); + x1 += underflowX1; + y1 += underflowY1; + if (fixedSize) { + x2 += underflowX1; + y2 += underflowY1; + x1 -= overflowX2; + y1 -= overflowY2; + } + x2 -= overflowX2; + y2 -= overflowY2; + return create$7(x1, y1, x2 - x1, y2 - y1); + }; + var create$7 = function (x, y, w, h) { + return { + x: x, + y: y, + w: w, + h: h + }; + }; + var fromClientRect = function (clientRect) { + return create$7(clientRect.left, clientRect.top, clientRect.width, clientRect.height); + }; + var Rect = { + inflate: inflate, + relativePosition: relativePosition, + findBestRelativePosition: findBestRelativePosition, + intersect: intersect, + clamp: clamp$1, + create: create$7, + fromClientRect: fromClientRect + }; + + var each$k = Tools.each, extend$5 = Tools.extend; + var extendClass, initializing; + var Class = function () { + }; + Class.extend = extendClass = function (prop) { + var self = this; + var _super = self.prototype; + var prototype, name, member; + var Class = function () { + var i, mixins, mixin; + var self = this; + if (!initializing) { + if (self.init) { + self.init.apply(self, arguments); + } + mixins = self.Mixins; + if (mixins) { + i = mixins.length; + while (i--) { + mixin = mixins[i]; + if (mixin.init) { + mixin.init.apply(self, arguments); + } + } + } + } + }; + var dummy = function () { + return this; + }; + var createMethod = function (name, fn) { + return function () { + var self = this; + var tmp = self._super; + var ret; + self._super = _super[name]; + ret = fn.apply(self, arguments); + self._super = tmp; + return ret; + }; + }; + initializing = true; + prototype = new self(); + initializing = false; + if (prop.Mixins) { + each$k(prop.Mixins, function (mixin) { + for (var name_1 in mixin) { + if (name_1 !== 'init') { + prop[name_1] = mixin[name_1]; + } + } + }); + if (_super.Mixins) { + prop.Mixins = _super.Mixins.concat(prop.Mixins); + } + } + if (prop.Methods) { + each$k(prop.Methods.split(','), function (name) { + prop[name] = dummy; + }); + } + if (prop.Properties) { + each$k(prop.Properties.split(','), function (name) { + var fieldName = '_' + name; + prop[name] = function (value) { + var self = this; + if (value !== undefined) { + self[fieldName] = value; + return self; + } + return self[fieldName]; + }; + }); + } + if (prop.Statics) { + each$k(prop.Statics, function (func, name) { + Class[name] = func; + }); + } + if (prop.Defaults && _super.Defaults) { + prop.Defaults = extend$5({}, _super.Defaults, prop.Defaults); + } + for (name in prop) { + member = prop[name]; + if (typeof member === 'function' && _super[name]) { + prototype[name] = createMethod(name, member); + } else { + prototype[name] = member; + } + } + Class.prototype = prototype; + Class.constructor = Class; + Class.extend = extendClass; + return Class; + }; + + var min$1 = Math.min, max$1 = Math.max, round$3 = Math.round; + var Color = function (value) { + var self = {}; + var r = 0, g = 0, b = 0; + var rgb2hsv = function (r, g, b) { + var h, s, v, d, minRGB, maxRGB; + h = 0; + s = 0; + v = 0; + r = r / 255; + g = g / 255; + b = b / 255; + minRGB = min$1(r, min$1(g, b)); + maxRGB = max$1(r, max$1(g, b)); + if (minRGB === maxRGB) { + v = minRGB; + return { + h: 0, + s: 0, + v: v * 100 + }; + } + d = r === minRGB ? g - b : b === minRGB ? r - g : b - r; + h = r === minRGB ? 3 : b === minRGB ? 1 : 5; + h = 60 * (h - d / (maxRGB - minRGB)); + s = (maxRGB - minRGB) / maxRGB; + v = maxRGB; + return { + h: round$3(h), + s: round$3(s * 100), + v: round$3(v * 100) + }; + }; + var hsvToRgb = function (hue, saturation, brightness) { + var side, chroma, x, match; + hue = (parseInt(hue, 10) || 0) % 360; + saturation = parseInt(saturation, 10) / 100; + brightness = parseInt(brightness, 10) / 100; + saturation = max$1(0, min$1(saturation, 1)); + brightness = max$1(0, min$1(brightness, 1)); + if (saturation === 0) { + r = g = b = round$3(255 * brightness); + return; + } + side = hue / 60; + chroma = brightness * saturation; + x = chroma * (1 - Math.abs(side % 2 - 1)); + match = brightness - chroma; + switch (Math.floor(side)) { + case 0: + r = chroma; + g = x; + b = 0; + break; + case 1: + r = x; + g = chroma; + b = 0; + break; + case 2: + r = 0; + g = chroma; + b = x; + break; + case 3: + r = 0; + g = x; + b = chroma; + break; + case 4: + r = x; + g = 0; + b = chroma; + break; + case 5: + r = chroma; + g = 0; + b = x; + break; + default: + r = g = b = 0; + } + r = round$3(255 * (r + match)); + g = round$3(255 * (g + match)); + b = round$3(255 * (b + match)); + }; + var toHex = function () { + var hex = function (val) { + val = parseInt(val, 10).toString(16); + return val.length > 1 ? val : '0' + val; + }; + return '#' + hex(r) + hex(g) + hex(b); + }; + var toRgb = function () { + return { + r: r, + g: g, + b: b + }; + }; + var toHsv = function () { + return rgb2hsv(r, g, b); + }; + var parse = function (value) { + var matches; + if (typeof value === 'object') { + if ('r' in value) { + r = value.r; + g = value.g; + b = value.b; + } else if ('v' in value) { + hsvToRgb(value.h, value.s, value.v); + } + } else { + if (matches = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(value)) { + r = parseInt(matches[1], 10); + g = parseInt(matches[2], 10); + b = parseInt(matches[3], 10); + } else if (matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value)) { + r = parseInt(matches[1], 16); + g = parseInt(matches[2], 16); + b = parseInt(matches[3], 16); + } else if (matches = /#([0-F])([0-F])([0-F])/gi.exec(value)) { + r = parseInt(matches[1] + matches[1], 16); + g = parseInt(matches[2] + matches[2], 16); + b = parseInt(matches[3] + matches[3], 16); + } + } + r = r < 0 ? 0 : r > 255 ? 255 : r; + g = g < 0 ? 0 : g > 255 ? 255 : g; + b = b < 0 ? 0 : b > 255 ? 255 : b; + return self; + }; + if (value) { + parse(value); + } + self.toRgb = toRgb; + self.toHsv = toHsv; + self.toHex = toHex; + self.parse = parse; + return self; + }; + + var serialize = function (obj) { + var data = JSON.stringify(obj); + if (!isString(data)) { + return data; + } + return data.replace(/[\u0080-\uFFFF]/g, function (match) { + var hexCode = match.charCodeAt(0).toString(16); + return '\\u' + '0000'.substring(hexCode.length) + hexCode; + }); + }; + var JSONUtils = { + serialize: serialize, + parse: function (text) { + try { + return JSON.parse(text); + } catch (ex) { + } + } + }; + + var JSONP = { + callbacks: {}, + count: 0, + send: function (settings) { + var self = this, dom = DOMUtils$1.DOM, count = settings.count !== undefined ? settings.count : self.count; + var id = 'tinymce_jsonp_' + count; + self.callbacks[count] = function (json) { + dom.remove(id); + delete self.callbacks[count]; + settings.callback(json); + }; + dom.add(dom.doc.body, 'script', { + id: id, + src: settings.url, + type: 'text/javascript' + }); + self.count++; + } + }; + + var XHR = __assign(__assign({}, Observable), { + send: function (settings) { + var xhr, count = 0; + var ready = function () { + if (!settings.async || xhr.readyState === 4 || count++ > 10000) { + if (settings.success && count < 10000 && xhr.status === 200) { + settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings); + } else if (settings.error) { + settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings); + } + xhr = null; + } else { + Delay.setTimeout(ready, 10); + } + }; + settings.scope = settings.scope || this; + settings.success_scope = settings.success_scope || settings.scope; + settings.error_scope = settings.error_scope || settings.scope; + settings.async = settings.async !== false; + settings.data = settings.data || ''; + XHR.fire('beforeInitialize', { settings: settings }); + xhr = new domGlobals.XMLHttpRequest(); + if (xhr) { + if (xhr.overrideMimeType) { + xhr.overrideMimeType(settings.content_type); + } + xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async); + if (settings.crossDomain) { + xhr.withCredentials = true; + } + if (settings.content_type) { + xhr.setRequestHeader('Content-Type', settings.content_type); + } + if (settings.requestheaders) { + Tools.each(settings.requestheaders, function (header) { + xhr.setRequestHeader(header.key, header.value); + }); + } + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + xhr = XHR.fire('beforeSend', { + xhr: xhr, + settings: settings + }).xhr; + xhr.send(settings.data); + if (!settings.async) { + return ready(); + } + Delay.setTimeout(ready, 10); + } + } + }); + + var extend$6 = Tools.extend; + var JSONRequest = function () { + function JSONRequest(settings) { + this.settings = extend$6({}, settings); + this.count = 0; + } + JSONRequest.sendRPC = function (o) { + return new JSONRequest().send(o); + }; + JSONRequest.prototype.send = function (args) { + var ecb = args.error, scb = args.success; + var xhrArgs = extend$6(this.settings, args); + xhrArgs.success = function (c, x) { + c = JSONUtils.parse(c); + if (typeof c === 'undefined') { + c = { error: 'JSON Parse error.' }; + } + if (c.error) { + ecb.call(xhrArgs.error_scope || xhrArgs.scope, c.error, x); + } else { + scb.call(xhrArgs.success_scope || xhrArgs.scope, c.result); + } + }; + xhrArgs.error = function (ty, x) { + if (ecb) { + ecb.call(xhrArgs.error_scope || xhrArgs.scope, ty, x); + } + }; + xhrArgs.data = JSONUtils.serialize({ + id: args.id || 'c' + this.count++, + method: args.method, + params: args.params + }); + xhrArgs.content_type = 'application/json'; + XHR.send(xhrArgs); + }; + return JSONRequest; + }(); + + var create$8 = function () { + return function () { + var data = {}; + var keys = []; + var storage = { + getItem: function (key) { + var item = data[key]; + return item ? item : null; + }, + setItem: function (key, value) { + keys.push(key); + data[key] = String(value); + }, + key: function (index) { + return keys[index]; + }, + removeItem: function (key) { + keys = keys.filter(function (k) { + return k === key; + }); + delete data[key]; + }, + clear: function () { + keys = []; + data = {}; + }, + length: 0 + }; + Object.defineProperty(storage, 'length', { + get: function () { + return keys.length; + }, + configurable: false, + enumerable: false + }); + return storage; + }(); + }; + + var localStorage; + try { + localStorage = domGlobals.window.localStorage; + } catch (e) { + localStorage = create$8(); + } + var LocalStorage = localStorage; + + var publicApi = { + geom: { Rect: Rect }, + util: { + Promise: promiseObj, + Delay: Delay, + Tools: Tools, + VK: VK, + URI: URI, + Class: Class, + EventDispatcher: EventDispatcher, + Observable: Observable, + I18n: I18n, + XHR: XHR, + JSON: JSONUtils, + JSONRequest: JSONRequest, + JSONP: JSONP, + LocalStorage: LocalStorage, + Color: Color + }, + dom: { + EventUtils: EventUtils, + Sizzle: Sizzle, + DomQuery: DomQuery, + TreeWalker: TreeWalker, + TextSeeker: TextSeeker, + DOMUtils: DOMUtils$1, + ScriptLoader: ScriptLoader, + RangeUtils: RangeUtils$1, + Serializer: Serializer$1, + ControlSelection: ControlSelection, + BookmarkManager: BookmarkManager$1, + Selection: Selection$1, + Event: EventUtils.Event + }, + html: { + Styles: Styles, + Entities: Entities, + Node: Node$1, + Schema: Schema, + SaxParser: SaxParser$1, + DomParser: DomParser, + Writer: Writer, + Serializer: Serializer + }, + Env: Env, + AddOnManager: AddOnManager$1, + Annotator: Annotator, + Formatter: Formatter, + UndoManager: UndoManager, + EditorCommands: EditorCommands, + WindowManager: WindowManager, + NotificationManager: NotificationManager, + EditorObservable: EditorObservable, + Shortcuts: Shortcuts, + Editor: Editor, + FocusManager: FocusManager, + EditorManager: EditorManager, + DOM: DOMUtils$1.DOM, + ScriptLoader: ScriptLoader.ScriptLoader, + PluginManager: AddOnManager$1.PluginManager, + ThemeManager: AddOnManager$1.ThemeManager, + IconManager: IconManager, + Resource: Resource, + trim: Tools.trim, + isArray: Tools.isArray, + is: Tools.is, + toArray: Tools.toArray, + makeMap: Tools.makeMap, + each: Tools.each, + map: Tools.map, + grep: Tools.grep, + inArray: Tools.inArray, + extend: Tools.extend, + create: Tools.create, + walk: Tools.walk, + createNS: Tools.createNS, + resolve: Tools.resolve, + explode: Tools.explode, + _addCacheSuffix: Tools._addCacheSuffix, + isOpera: Env.opera, + isWebKit: Env.webkit, + isIE: Env.ie, + isGecko: Env.gecko, + isMac: Env.mac + }; + var tinymce = Tools.extend(EditorManager, publicApi); + + var exportToModuleLoaders = function (tinymce) { + if (typeof module === 'object') { + try { + module.exports = tinymce; + } catch (_) { + } + } + }; + var exportToWindowGlobal = function (tinymce) { + window.tinymce = tinymce; + window.tinyMCE = tinymce; + }; + exportToWindowGlobal(tinymce); + exportToModuleLoaders(tinymce); + +}(window)); + + + diff --git a/public/assets/tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js.gz b/public/assets/tinymce-826210dc43f710f03d0e76dac1d14b67001af54312558105f4ae25b683f967f6.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..9a5b71837cda1e9d6afe931fda01b16737881509 GIT binary patch literal 218281 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
    &$>6Bm()OsjpsK&X@Jur})|( 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

    vzUt+tw?_<=RuNmYumFf=Ui>+9xONi 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 ylqI!6OhBJgL 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

    Z6ATrN|u? z5@8DYdYNx$=x+9O%-AjA#A}(CJ~sC_MtMxxLs|MkQF>PLEsQ91U{K{}CoiB1o-t>@ zt8$<5-E^omh^Syen7FD^ub{{KU0fqQ={50kzkDhPLUUw1+;qgzTZ z^w^A9V%O>H)+dFzP@}`pUAA$NX87)EH(VSN+q~YKQ9cFFk)COZ8S|>Gi8qBwz4Bu7 zinZ6mg??AGQbEG%pxl60@}+=CfrUK3x^N*KBcLE^b|?(FB;}MC<&ih!ApXL54+A-% zW$}cxL4EQELJFF2DAy0-I*B9jhA>0q-lFGZkIXTRoWwy3vxH)9Bo5gXz`v&hVLvZ+ zX?~68TMJJk()6MGnoBmZE^6w09k20yLTm5(`|?rW3tIKE92(&n4h8#xvCtUq%zTNe zMpSqEl}zQk5vKm&D*^P0;|{%8?-1=i4}Kot*QMnkBuJ8Ie?#<|%oCm0yr>FhT7x$~Q7V3Tcko2B#Bf4oZF4}Ev| zzunhge(}}3x6O(zl`K1u?cZkGs)N68@+tb>S^)8fZ z1q>eAhdTVR$A6xs%k(ze^sdt)`}@zA&X>;FS6H<8O7wH4HL|<8nZIvpgTG!_$NK#| zN4TBIR-q%&81&ei6ouB$9MvgV)sKAs<{M|b*<}|xxEJZVQ}xtsS{%oj-#8uHf^xZk z`#0w^?ntdu_96j@5W?Z_l;8S1FUravoh&ahTWexsGV#uL1pcSJ?dsumvC4PbOhFfF zNup>Sh0^spTTZK4eZN^PBwifECNTy%_~*|nfLHJE=Oo>BYKSVEJJ&Z&+1+=m)!Rk7 zc`LA^!x9R7scn}EJkW`(HgYDr&E~Enp9#g~L)WQVtH=|E?Rv3lZb1L8wqfjl`nOX7 z&X`Iy0pmk&UdT5;tfq*+RpPMyO zljXj5y;;302sTfjbZD1xgT*%8Y=6ADDY7kXY<>%vEZ(_5yY<3|e<^Iwjb6Tdt&R+5 zp5+VY8*2l-$!wlaaUqIVwb8u3&cn zXTY(dbFPx54ZPCpmn}?qh_GfX73Pu{D4$2xMOJ$&@<&wqOO=*h@QXc^eDeK^krNE$^UqKJHpUl2`GWfR?jckPeEIIh!|z5;S>o?M!MCL9;W0c$ z@^Sp*GZ;`%4rsBO&Tr<~=BG_oz}6Y5#MlCBK*QPmX8Z5i9TEcAbK6Z`KBT$)0Pq50 zmTgmb7A-?_jq+{aMb`m_UxCHD88Rsye2LSgzn>wc zfwGNkgg(d)w+M^W1PLx-r5?-jU{Lq5!vpz-{`A)A2HN~VDQWEY?~= zfv16@JO;atjo+NE78PFr4^S$d%;43F)haJ~_@J?fLJ|2SUv$-nzs*(!K%Cp8y6rfS!84LhM2p9Qe}nG;n!n|%Ygpxyt5X|GuaOyh269mkeq!z2aw^}@1Ggy7 z7_GzaR@1xAc?}-VC$OgZFFbtZ%~+d>24jV!0$#lvIj(Dg4=4mR8>HMK2Q%@JE!A~J$U?J!a(4k~!*X5c>}Gzu+W@Jy^BR`dD(Ur^sEO&@~nn~l^4KIW>EXgSfSQ(`ms_AzN!*c+{JgyFob!CK*?I9eyGeKX7FYyq3)l$b zV5&93zd8bPM`n&a67hKXg-;{=)UZ!zAV|y) zjiNfgRvSaP^5gY?!fR>;UYQCOUXrRR><^NOa2p|GHUIIs^~Bc%C-un3=5X(=ZmIzx zD?*_*mN;3pHD%0f&)o%pbXCB0r}O<;Q%6EvdANnPuTk}IHchvwyO?CI2ye_={)~ou z)_x`=h<#H((b~0C?%<9%BYQWS)#CALLCe@Jp;k>L$a(lR;d&OjvWy^nngv)G=QRt;o=%p;Av_$+0G929E zUk$eDmH!%*Ys3Uqm6*GcwO-b11!b*qy(|9vwG+Yii(sG8v!!wIqbjH~Rg!Ws30Al^ zqDks@W4iHlar=`3_ELfMncQDG0;x*`gZb?0-+P7t);V%W7%d!YK%16YS05LC1)i_N z3wG{&>y%F~&rLl*2}|M$I}G{1G83!G{?+PmNm21DOHs>AThwkbrjHibATckp?epy& z@Sh#yOz4;r0_b!h9-mI_$(Y#bS+OZmKAt@W=j)vwcevCh-G zk#k1Z?q^5g-=jbp;}_2^OJee+bLRZpcD~4p3kOx`HcC+^Y+u9tfmE1SBUrLum`sT- z^qr*wrc;+o&nWn~E?B~-I!s4_3UiZH~eeH}g%V@P}MT99CUJA)@If&UM*H>A=x1x*8blY&j*2;BGa3MrW?| zmJJSzx!&z_D1)c1*31$_)h?9CcUk>Rv%JEu8hhoy@giD~v(ZmD>j_!5&7AS4H*P;6FBEM@ z3H{C)5gORtOmG?s@eV(eTB~#Y0N5?BL1ynL`YWIri`A~+%r;#MGkkIjJES~1;u&I) zrWgB6u>GQy`bHN$sg>Fc_GlxA$E&j`ocX8DlU&$Jsl-HGrrGKpcY}8<8je(jOo}nJ zQwvQqd0so@1zKuV&S<~El(Ee1!7}RkAa*5gy+<=tB1}7WF-o7FMk`n;@T4wMuUEyK z^~+pDXe{}G&j?r|T!n>t(tFvRmswmoK(fMn9sMx3tnfXAL$ zcU#}`#6=(f_ytYch2RLIO}sl=gUoC}E4{N0$nqMLub zNpG7K3<91c{i`a03tI_IA7Cx<3zRr?IH~NhwSnZD6RIpeWBKML0!5Gs#!W3~vWJ$UdH5SooQAI(?LnO&O#bI0` znL@jJtQA=RuFaPqp_|xr92(4K*p#xRuScyB6^n#f7#g}9;%F)W-G^s9-pXM<>{GZ$ zqt8$0AWvxMl+k}Q7eiqX1sei;ucNFH?v?re%!Yqw6WpU{XIrV^-5IrYR!1{)%Z+%; znFEyaXHEHH5l3qjuRQT8ma2n;Q~5A#i%!gonoL+$w@Yw>sjf;ji%|8UoC?;n`BXsE zHfR&94M43Gv#gXzYFR5P{j@~P9VAt?GR&MqbCcbsSZzjfc(`by`3p%``WMa`CJ$`o zsIRZ~N6Qk>O%z}CdR~1QN~oSji1j5YcTd@h+&a_MyX9H;FeilP{c8Pmv4G8#dok6AWIxM9F}4YLfW54X1l-DA>T#>1T&BJ#!L#WSqvBppvcx_lnF8 zxyo0LZ(;-;Gbb`FmUhQdv+o}O#mB?W*0E^t{Qb(Sd=v` zmSsCdKs4l@MoFjTIb6ZxX0>7cnKNJNMmTz3pG;Q|QdLDO(nM2_lHHGowU4_sK%!}_ zYWJzMDQVwK*ceS)F=6+I%*v0OC%^9K`b|+o0!Q0**!Hciht#e3qsIR-Tjpgl` zW(N#44G=GG+in8oceUCi##Y8g)!{%kr^4W6T0rE=eP zbRISrROg2W01fu+s2I&%+s=&xL$F?CG#ul9X<~}2o%`&$W{Nt9k>8)~#^gWbr2NaAd>+HUh~`uDnM!TUp&=rry=qK%~&>jJOm zmbd1_Owpy&$gS7!ND+33P!l3A4mZM^Ry_OykXpTSrf5v@{Vvb>>INwFR?;MZRO4Lj zJ-*HEc56pW2q&H`r-#lM^IA{0MCw^7u>qvU5w?XEGKkJ~zS|&zXw0I$ys(%DB-=Ta zOG3B7lD_L`+;lYt8?HC;dYW_16o|)Wb=S!H==Y$O8=1-nOWDgcXJ_U9a-=?V8*B+i z#&frU10NaBRXG#wN3}Oy#ng*{Fp@v)AreXeJ%;mYStvF`XfsdxC*7N@sQCd1Vlp#b zQ-D+XVYj%>Hk}!BF0RT&8~99R%ZBfBc>&5ohUNi{5Bp>yKvV#cwl29$D9i-3^+i~% zRZSHoaC@C@itPJ*m4ZxJ6vRXK4_NYVE*hrz<8GUYDQGTqx3`<@7Vy=MK~)w9n~VA? zpXQyah)OyEHOks|br9@H8D)T=EPhchy~6=gEdVPk_2o-Vg&J=b-- z{<+mZ>WB0PXMxSRghs9f&X07~I+anK!r!I&+rOK3rTaNw@SvsIM4$N0hGpQYP;Woa z-gU5`0Rbx7!_AFatYVwO#(MQy(`Vk)%+W|itG5s0Bpft1=QYnBEXU*5#w^swHPn1{ z^I8T>!ODkXBVdT67c2W7t-3N$!ZvD?yo;e&Mm@DG4nkHNL~S{;(p?HZF&+|Svp75h z2L8CFp)G+!?VwAZct%&PPFcST^()q5!6>rqL)NKK>&+V=huhVgHzPVqD;j|i9?`$m zJL-NUM_lf|vU@l&re6eyXTmfBUDHi}ILpfD-s5CoBn~xC+gIiOLz2%ZTA^hH6s`P9 z1aYA`BF|GpNy(GoMulxg?W=qAy6dFoHqB{jWs_-rv(^1suE{hKj!CFYKRf3&ua;}H ze-uUFSLeKbHSBl zdbHqY_8yMNX@;?$9%scQqgVpR(H=Rs>LUq%C{h76OV4Wi32igkObz&z74B6MmMk%) zfV8CB)Zp}~rmUfvd+LpziP{DrmHJj|PU~B?N;WvV5uOmR&f`$Fnl-68qB!8$ogois4e=R$MZ3A#@ zV%LA|)CWl>xb^W>1z&OH*C!9PUez}0e&c`*(vs4-t~6SogX?(4J)vbr*pS_eSy!bT z0(m3QH9erkD1+{^aX-^2cr&vjyj6==(|pP?VRh5yL=MSoRuL+g34*S97!Xesqr57*M( zo;dd=mau|DGeWYfzz91n&mwNU`xm?SZC7==po-NSF{P0*x0)iUB#Uqep-_iFI-Qsb zLvao|0P*d~u zS6KMl>h_9r1b3>@^vW?{$@5ysN{I>`{M>Ey++#(F@Jmt~vPcx7$7TrD*a2l2^_U7= z1#j(E>w0JJ=G&RACwX55jLq^E*t&dvyL_>F0Zo*hqdqs=>@&PvvRrVz0oL%1Eks$m zUgvkel>Hv+OX1|;lYR8hD+Z&m^9N|X42?6C>~kRo08mErQ^@kgNYv_S^1Gr|DBBt- zzfElh64wSUOy^?i&@#h=RV>*H^6{)#f8OS@{7r|ZT^6-Yzbt%!<J3o~+YRAMr$7nJRKlds-&u%mNbyCw#$60O=Eg25YsC(mg{YP89+Sra8s zK|@(r;F=(^9Xq~T!=8vfN@8_$0L@!L?&x$hYNe2y+VoVNi9$IJV2tI2s3u=ulv-dl z8I{yrE5r9%Z&Qs#Y82GkE1#i`J02B(W3V zL8YNKltw|mgItaj#7mBc8$T#P+_C4U;E-Hpl)xQ`F_;l8jPCA?ZcNw!53%B#@>c3?@R%6IG*`i(yPve7!hl*uAu9^#9e!(o(bQj2voI;kOdnYL zbW~2D7VG@)*0IxZG658uy{d8E$37m}P2hsZ!lrEhq?RsX8L8GHkZI89xR~NSV ze7`ZX1hkzFsYtK>s5u#}A7m{^!AqAnq>}FFY^_$TLa5zxDz1(Bx2lnTM`P2}T&uMp zq+c6t^o$^JbHQL5qpvPz!y}`x%+ETKG7h>~PaV^t;gle$@05E&gc@uIkmfP`F7OZ|I&m;p=5^djW2ty4 z;-d7d84oP0KdJ#hqOWY`V8_i1+Bp7$g4}_zo4aRZAW!4CkD`Dsvnm3-xOvbQWn`{W zS1bLq3V@LgkJ{zUEG-_9lOtM?9Iy=*D0VpPc@=W}NQ8CO3|PB1Sx$eFSK_A27213L zz|L120PF;0iPPex|6mw7bA&|E#D7T)be!iS_78fRostTp=^|X97KTzOg$(_UTs+}T z0qFuejX4uGB(Gr|R51u?4VCE}$yYliKa-u{?T-)%HG5=?ucvAM^-*CDHGqLw$7xXn zx|1Tmu0EcSii{(^Z&wdDoAi#f8)ia@S{3@+EAR$aF}UhF*XlS^B{F)4ek{`Wos=#{ z-D*M7DvphWqjD*HZEfV*Y~=c2BT~}{U$5&HrR=bW6B3t1-|C_3M1wF8F7~SbTK4v( zQ@+_E_4~^4FB*Mms#Q6HKC-Y(&Qf%9C_PK$OUEC{!NF%$N-88E(D{Xdxhp4SreM(+K#7OLWD%Il0eQ z^s%(#EeEYts`tiRg&MF<9sJ0cN>?v4s$gS$5u+a&&oyk7u?0lpL5%@3g>CCC7$DZF z`O3@4ghygRF|lDGwn9c~r7du=T4eP*F04G#&4rJlmTF5}Ow=TP#p?C>0V81xE^@Gh z&aFM@zMpT3?IU3! zbzFmSQx@m%ro}$K)UEbukQSJ6Q6(v*;t99T4>!N+Vv4y4W}QtLoLo+BL~7f2{uK36C%R!_b2FeG(=hfPGKWPZf1v$BsF z3tdFzyovlBJxWMNi!PQgHd*!yy--wzx;esX`DC%)-bqgLS-KWMdqnVeitnSBsph2x zaFU^$$Zz?D3f;K?95uTC6vuDUQ7ZW2yE{y@%+XkS3DzqRs;+gvecaSkB?uTnP-3n z;u^j&TiZWEgezR*^3;2Erq_|J(H)S!MdwTibQmj8rbIZyU_57vpP~r(^sceyB+GNH2EO>I ziVd&SdXMGr&U7!x=WHyj1i7DfowwPYVSFHbeoNn8G_DNFvYMN(-Nn}f1XEmlwQGw! zU+v6D`xqv`c~3?}Ti`~wQ&72kaMWzEYUzrMQjUmN>Eyp^578h55yw(e}vgi>cz>T$W= z;}G6o;NPzu%kHek0QHHyM#VY*k~4wvp>C&5zP=b)GU z1KTHZz*o%5`}UhuaY}RK`WnQnKAZqWK)SytZ7NEo0Dr!w;$l$nLPuu{4%BhE+9urS zd-UPLLS?J(%}qk?Prr5~o>UWQkU~@mR;9Qd#)VV-X3Vx!QCBscc)#7GlkLw8!y3Q~ z=&%4HnZaL^YNJ&vSF5%}oAoH}XhGmmy!*6;pdE&qLu?FJAww#{OTijN9Darb%)_0l ze!&S9{N+MP!Avvit#`$&Q_@Y@eq|lX6}(Q>O;I>ld{YsuIv5Ujqp=@Yi4- z-b==cGVak3?$lRCdg~0!b32P#%HVZx}XP$mi$cjlR0aVlJ1 zg{Y)c9WfmAn-RYn9GxDo7LCx<30%qPR9B_tDWi`=0}OrpuI?i7BE9XLZSi)dI^0>4 z{)N{mD~Unq1v=_5x>XNWNQq(=i4-7+ka@8J7}$5N^`b`IkzM^bXxe*pzf%!&O-+;8 z;@xbg8x?;fp(e&yXgze^l zB21|H44r^jxrGJ$Bu(TUpkW|qK>XS64OX0X zK^D;K0O79E`Z-4{G_-Eok#M9nrF%p7X`U^r#3>G^#slfl0;^Vm z^Tj&PUZ_H;>`m;LQMGmCT@9_`i2sy!fhE94%5U4fjYR@41#E*=lqD;Ur3&Vv54WB9d82SsvDegyjiHx{UeZ_SjJ^Gqoh%v=?Bg$^O}Y9O0P9($*#YCw#&D3K$z3kQ1n`^xl*PQLA+W&)QL1% zlx>xbjH;jA>YE1SQSFT^S)0PB{>p~4L`~67!!q%PRRo%hD!XbjJ#$d9X4jb)v;!Yi zXRwY!W%pL6M)mlTcjMYglJOZdwS~yv&a5HwPZ`CJn?`6f$bPbeM}l9mG-?l~L)+I< zN#KDxlX=UnoIWMYver>UYQGxZCmmj-F zqw|ZXLJM)Vxy#Scgv5Be%Fhm8%VMb9J4p|4$iHlm$=wvT5!){X?=|dveufG?`=w-c z5vg3f9gI7d&l?yX%bJwyVDLM+C}ib$UTK<_nuG__Iqx1U!og!?7w1aZ*DAAAza6%$ z-#b{VFMMsK$Ty9+eSn=I&c36ior;iPIYPItwlh{uh@i9(@ZDlqSLHhRh`u-6eLbYy z!k~SsIb7$J7}{&P^Woq1kWX{8=5EB%$!f7!Egvo?v(=_@{nxCz<^|S%y3H01r7g(A zNYYTgCyrNc_$Y1`_4KY*w6b=lqm^i^34M-Pr|^KAU|^c967+x#a7Edy*s4Rms9CsU_rf}?r(1E^XRX-FUl@Bvoe;10$<%IMJSCs1(!_6G zjI$J@gm%;%Qv0 zuBjyITCOsLU_pG964za8>7o`#uDNvml|8l`bqu>o(>a)Gh!O$Hq1TSTT9r!c(9zrP zRuk=(lc?F5aaA#Xs%Jef^o>v(1nESqjlFJA$uPh1Vzyhp?PweFyjht*PAvzKszE3f zst$!8Ko2B(iN0FW%L1c!Yh$6SRNEG>b&2>__m>6AYiM4ZhiVfP>*7rBkc1_L(AvRr zTrxB_t!1-`Jvy?kM}1;7Xvm^J161g|{fz)Ll3+4)4`@;=$locFr)K_Y5h^J-j*0yn z-NKThP0g2jY#mHHTTe7*$vt~QCfO?O>uR5EFz6JeahPVy3um=XC-dzchC)A6Bfs0u z0^=qDAO&Nl&~;=Y2Xo+<5eUP2_6;Q^B$TvVC_t^6;o+HGIf6m;npX)}_|0um^M`9N zF`^~vI@`rsYlgORBTVg-zF5_qOS2t~KS1tZEGCxLOs(DF&zC6B$h~ z-Q@#g7xWPKJ4Y2A<)#vWxkomv(89?{VyXs0BDiYqG=^VHO}lFe^R$_#`TRq+seX32 zVX@X$MG}wE4BBl)5eno4Z%A6-ujW(Ts*^uCzkM`EOpxZp8EQZsdVRCnEYfm0#1rtw zXEVUwGp%T$=#9*FOvf;`Yy4X|zcUR4)l{s3jkQ}a!`-Z*y^238v8qDmk7lQG(lYw< znMGRA$*d%;jk27C@zW&>OnT%Z7Of;H&}oCd*t+{^eYBe_vzyHubGDjJs=%>P26Pz~ z$9)GS&$BZ$x-c7Vu_yQ`8i(BG5|Gx|U5z590?$FU&%yZ;I>(Ov)+1c|bf z+<=yK^o+H~mh_2oa_^-W9uOFkV}SrN1L(09_ix{>>Q_~D^~`{hlihp1oD&P2>FKVn zuCA`GC*M5ufGq1L|B#}^@_ZkUi@T}(V_vzS>$~tTwiS^E1a`d&%mJkpM(neZ9;ciMG<* z_ZmLiyLYbz07%&QT&CHPJz`lQ2}9^2X`ZjBND#~YvX>-bjH1MJRwq$-L5&Kc6rfg9 z%XJR2vQU&Z4&eRzKRtTz^7XS9&olo0%5aZtKsJU|>)L;g(F6q31^dxYZg?CsFSFr%mjC4))o zQWg(j2Ry=J4(3b%|9?0a`VbhG zTf0!QK&s+-ZhP>h(&GFT#&U{oW1O0E3=@+BSUR#9LsIYD3nK6#ff}=v{h7Aa2C*>+qjOeFq~gBS@2e+(V;#5w)y<^F7R#tK8Q~m`1~v3eCQ9;k&V_V9 zKpXY?5BlT;>ELM2S3I5{kiSO-YGQzD3Cin+3_|`f8(VAK-gvY6arM5a9!(8z8y;V8 zEfOB$*qwIyi^@#1PRWNm?Wg4H5yj@N&$<^J3 zmyWarV~OL@{A7Uo5qUb}_+buc(T?XxFT!Qh1sn~0cwrxZ;FgC{zEEbPANFWJms!*Gtujl5q=atSBANqUnT+0` z98vf%k>2jeNT^hQ(X6wuMH^!OV+_S29=I|Bhc7ae1qpx4b2QKnw6cH5CXMTL)#XB( z%6PjSos;`=#_!(UH%^8 z_nK%m5>1BRHV8r6LJFbT2vmC<6hkqmSR*ooJwgwX@8MW9H!~xM5nKI+6mAk8I!yb- z9T9h&IRhKA9(4wKc+mBH^&{vxl?7E(Lo*yU{}{LwYIZu2)Gg^oQbyAE%@T@!?(r7l z{30qRgx-1D;{rT(9^3kp)V;Mjhf5+aaBZKC%Vk|u8~6qi*6PI>tq&MVki28?8ee4s~YphP`b z;QWk7WWssame|sOAzemSi}{akS77o+x>1PpWq4yf@NhEAxUnSstQ4c4Zx||_>5}fe zD@IL$<7Ki(nsK)42iC)lL}!@?Bkvg%=j=S;@E>zR{o1pxTNCF^7t7i@e>&A8ugT4h zIByAOD&l9Q&7s-N(Dfz#4c&AC3dFS8QHanjS10JiS1WFbihJN;gXdUh2SMSDcG$ri zEg!kx!3mcTPaMk?`2c!CZ`?=0tu;7-)8!lPP%N}3$~29Ya!a)2Q`cqbh_%EW<1piz zR}xkE1vb_PNE%eGLeTGqP7R~Md6mo>7ZG5IsPvLHtZk%!r)xdvD*m?1WjUpa?x=y z-2QSX?klca7k|m4PVeLg4gL*L7V~Op;q8^Zr_ZsX2f(W>AV8@ED=AlPTm@NH zfG5r;+=Y~nW?Wmu-h_0GtHh;U`YAUQ_vVhrS+3Zr{&#Ch?*gM#8lr^de8*Y6ui}bL z;a2iA2H+ebc#%*O?U8u{qgK%sHJ; zF`=oH10-O^oj2+wCD_zd*6Ap`OWjIxm0fE^^PkYXG7*MO!7WCjjBa)=Vi?|Mr+K7t z1v`;FPnrKnvwb$}eSxTfxE7ZUG)2zxR$tN}f#{j9&{eF?B;$9<)Gl2jG?9ugI$R$p z;h~{plI7Q?@K>Fm{7|}^C%iDnLKH^W(ao3^cL61QQtRA3wq27%=3ToD6!XL`TlnoG zF<8-Zh8dUB%zdD02x-p_QaOfPmvAKeRy_2n(Q)*NQf0|W3EWlG*%pV)jXH%Szb&crB2m{zr0hwX~PVLsBS^R2{w23ap`; z6T;OWO&5#P>Flj_BP5A*;&UHujtU$1SQJVloq$(S{1c>_7w?z8r02l*G)$5Q7VkYM zB*hBp>BxV2%u>mo>M@C@Nc;YCJ>e@_fyuC0slVs&)l2^D+Y*WrCVS|< ze{=yVn7P|znTip#C1^ESuKH~SMC|*kg>FIeiqH=@i~qcYOZ_BCwx|mL4>i{u(xH-=NOPi)XO^3kxiOv;AD!4Rq_YXgR`dC)(}=+lg3pa@3w)wJh#c zqo=KQ1mst$u`#=3$*~&0wBl}9DiscD|2kcib0tw6opXbRlt-Y%8s-X4u}`H7YH`gcY-AW6q&in0 z8jv(&Dx3xzn}brj&b=>}KzBabj4pbfu2yd^rtKa4o+eAuY z8a6yhl$1%5O1V&6K%0?GCSZ$a8mNTP$8A&SxrxO!fZL9oxedfj&&2dnAzH&hA4&c7 z$~@^i%O(p;mL&$YlljD=k~H0+zWey;zPz{ zb!$JPaTnXe;9Jig74k0e?+x<6bU;>#cL=;~b!MAk(*EVVI5TqDyl)fZ*vHWOPQ#*M z!18do4EG_G6?sgnhii`F~p>F3$q+h@5xXv0|QxztH~=vu~ivL z<3#VfDJIf>uGx!NnITcrSFP|Iaw3b;L3cVAdS*Qk+=OZ+;yJRV1dpA35cFMo^%aL^ zhoxSgi^bNiZM`6-&&2$aS-6>DY_xp=HvD9Y>4E4)ZI@MV+~i>KXWvM5M)9s6sv$X% z?2&=r$;tG|Tj2#l?_p?3r1!5>v7b8^5Cey=AG~^f^7_RI{_r+-I)XdtVW7sIo;-gH z{g{6mdQmE>gEn8gK<1r8*!=GaW{XQf`%_w6bu-F|tBE|Nt;3ylGgD4%FHIKj#M!b( zRT+t@p{d|KN|zx7Ca1Wtj;i3~#-@$BjzXc4Hf*ILfa}HyHiK?w`cF_ zuYIqa{V1u^hAz5P`RW#I;(w@SM@N?LHkOwk$onMjt$I&f2wP#n5Cr zCp5A%jxn9Fonw?5eA#)!9z{TgA2bNjQX@6u&U^~Iwo^spHIlA^!)DEJ+}nsLcAVPt zjh~qbtzRW4%b10#Dz4xzi)xZ=6$Ud9Kb+RZgXR3m2h>i0$na$OZd@wtmSL%PD{&gn zcp56lPph|~GlnXk5|=|UequSHf!3&?-AvD8y3S`m{iUzjOEk1}S@}_KH@YI5jtF4Z zYbISpBb!6RGZ2|syC(0rh6z~?e#f)&{Vo=loxD03L&K=%-;Art<19&lgG`&py08i%qMea_WOP4I zJoLVWGVvxzVk-_vnEoiTg9HrnaSn=D)`tMB$-lIPl&Ir4!`^o^MH$brr$y{{Rem+m z6p{<6y^z!|wepNB?YI2ME^EV7%Mg$4WG>xr8!FMvt+fCNu@cUk}O15Y0jE# z2Bl=xGpOMdz(OnKQ90@vVn1KLUcFweHJg+cm+4I1No1z%P6cPZn9gjn+6TfshM4^i zLsas!5ipP0c~})`j`d&Jr+5Vmz3rUv^1%Y-5?nd z-2Nx!cYD$rW^X&A>of_!MofZa z2Kq_*D7MzicZ?Kyl*SOV@4dErLjQ;@xDjz8{vHVi?tQo7b7I(=&_8I4r(O^bKiLeP zqwARa!C<#<&XqT2U48AakuYaX+`p_nK0i;N<8GORU+moz@SySrX*oKPiYJ<^JxbHt zken=|+`%}J4@O;_nzOGs)SSOhlxJi##;Ygd@7RuV;0gOnP@&{D6a6vSp_U~~{13?( z1OqV4;URwlmnO?NhBUV_uX0^tY90&=>K`zCp zowBQ;$K_{deqV+BleQ^7>L)GF48`+?@FZB4yuBL(CTxS_ZLg9AL7?DAi`TO2V!_Lf`oVz#PKgh7(%L$?20n~Q3-J-MYKS z&Bh!=vW6-S3(f=hgV#m$p8$h@S5%u5*aG#*W_1EH;wgO;rl~PX=dEvKXKQA613P;(R*$c=8VNL)K~e1eMGb(o)j5otO0n&dlxzVmK(Vw8M!c-5x=`+FRD8_eY#* z*eJgS5GNE^mfOw@g~95HV%3jk-5f`~QxMX8qGMTq2;D}imsN3AR23>Y!X#mY6D;a` z^4`c;C#R@gw^^4k$r>dO+Q+~B8z1v1Y=GnBEXMvrW-o~J>p2y0|I{$4-u`ent}l#y zVC2#yw`O7-ZtL>*Sk7_O`^NN&R0U_$X}vyZs4iu&V1>-*reV8#JcLp%7awhvP?wYT z_pXYh*Q1bxZVrlj6b@coD)hEXeJf=s?GcWPsZ^%R)*jaT>%b7aFluTP&y^ z%V0Pvd1amt0-?zI%lH+T?aaU9K>7+S_*^Rg128=4_Xw0+o5Jv~S&`cxv}Twux74kl z*7AEEaU5BV<@bIxT<0OE!7}yE*tW|O#vr#lZCRdhSb>u7wCWEv$=vZIo_}fGe7xW^ zA&0I#-tFJ&8DnLblT9@(A=8FoJ&en)RrvtvcO0^aJ9mVouVoq&hMlpiGQ|8j&y0vaD6wu!uk3x-TbO@t-pnKt$Hh4+h5dT% z3+)lz??GZ*S4iGAb(HUuMgY;f7cn7eVlD=hh7rwgX%u$Kb4;PB*qZ%{z+QkfoJ+Af z5$wPD;3Ee!P**KWxOEtnj2=JUAEASdqOyR+K!t;eoR09hN;a2^p(FqBeg| zXx|hsPMVErV%lsRtQ$Lz84+nm2MDKlQ};y1ZIf#qBD)7(U+wD2p?l&+hMTEe;+cVM zV;GIYnvlatKd}wTn#`JLIAefld{F0wlnv@jk=cgImgA$3bs)5jM_~^f*g9Y3ZzI6D z&|a@V?T;guRVcjx9ArOHZw3i3K;`eie=|I|juTLFqm6e~etTjw+jHO?S1NDa+DY097XElenD)b^(TXH?I9Hvte{#B*E;UJnd|~hnnT6xx z4aCdgaHoQEq7Z{X4P@IsDVHZOh53o~+|jQW$u2DCBlxO$Bj&bZ?ehkbMDwE{xXYvC zH(4OA4%j1DM*gCRA?@OI&rhr;l?h4OgjGfuJ`5eWu2hLF$QxGuGzj?2l-7!1kuefR z?Gf!-ccU{sGhWbOmLJTZXT9VSr&%X>2#m?I9Rk0-@xb4E; zQnYtwmP55vUbsxLTI}S@McL2F=JrD56n^S?tP5}M=3fdi!3?GQ`YuYLs_(-(-@?D} z1_oyDr7(06INw*(^tanIEU0s|+cSWt!0^NByt+YH)!3%utwk zbQIuI?+_j+t-RpXZZJk|r3UGq9VrFyw}m+%DVP2#QiXoSB2;tJkWH`O<+{Z`3bX0X zTYQ$d(2r7tO`+;kVRQ9WMzHgogv|e-6LX{5=F92Z!mQVgZ-au>JsF|B_r||R#jE*q z)N>X^R8BJ+BfJ95EPDeFqK^Hsx7uY)YL+btv!GLKn?vf|%FqmpaSU4TL;R5zaq_C= zXtMp4xdTo)cjn29EqXAsn$Nw@zjiMJi{~x;yolKkE7K$m;^|_j)Bo=G%4PiSzS4NY zc289AuU4BAXAoB&8VLHJEbbq$YE&PdE$t2l(b7m3iTxwF4KGVB9feepBRK87mfWT7 zve5#Y;&ScE3i<%55j7QPn);j_X?X}|1eA=8PeEbukSnh0bulZa3-TbywTVt$>(t;O z>=1MLsz#gn$Q;EREYiHWD5mDmGsqx~U(xgG+9ro|zU^$a?JaU<2uq^d@r%osiRx?AQ#at`>S}wPZZbu15s7)?N z!%E_?>D( z*U1Gm#hr4v}D>sg|Wsf;)ajlONqnLW{CW_HLNBJ(4-1-|38W}}P?$F)!Q`W(h zzXuupZQ>ATLAO~NmDP~cEfwE&R0{6r`i5d&;EpA0AA7D1QgCG3Ar&>+30xmXcaCkv z(t*?+Nu#3x>sD`HwL;Rvo}-wD|IG06C& zzqXxXuQ2{>477p(NA1!)iXM3O&8$5|;b#b085)menypnlP`O-QMg^@aCoYA^y8Taa|2J29r zB>UOPj9RN^R5**72bLH7&<>r&sCOCD4VhP8sm4rt8Y$uYLJ6yCuf%z+DLt)QvTX*w zJN&36+BWsYu<5jJ(wFHcSo6`j%x%)&a1M+dqlDr4P-Z)HpIy}25gtudh1-SoQcT9s zM@Tt^cA!Xs&(QC@d}lofwf6Xyp7;OUMB6r5mQ+3YFxeR1aD=KeY zPkpMz+C^M6cy>Bnr**d+^+4lG?od|b4O17DE8uOpq!)aSnuS#`(mVW7qTNCZxoIe| z3eR$-X*4{hqp0$yT6_!&*9uKU;wP8Wv^pHg@4a*+r%I7F4j+NmXRTo%qAzMWjuZ`H z4vUR=%u-}#NEM;&SwPw{iZW{vCsnIfSEA6ZZfp>=VKx}5DLTqqLxRrRFO*7=dm1v6 zub?Kj?J%DWKH^`AioY5*r4-Qu9g-^3TRA)mv8c*1AfD_u?ofZ0d!iS$a%>L?!!={t z86|w!w4bT?g4n$mb+0yAa8W}_);3Pl@;K=_z&iKvb_r-%$W89c_=jhmb-ALFoc?dv3 z&U4CcE*Ghvb!b~z(Zq=9<`9LlwC10)g*{0}J$?ivUe)|nndpG&zP4WS&z4aE`LZg^ z`0t9j>n=@!!JoKH7^wep=C&rn4#!m{D{H_pw*=B#g#TLeWb+@d`<*?8#CfXv3&}$C z%JpW1_VN*`rjc~4s=C~mhnK}>Ix}^)eB_Z|g;}f)WAhytgg3EB<23934dXpXrj1wwf}w*1zowgRSh04nSv03VByZMSBpa#0q_kkBm2~A6M^->d_Rm@fio#oLoE$CT5@QAP8H9D`c zXrKU-?qS~5E`SFEKV}$2;kZejx=>EM2=$v<*z_a+gxOqWd`KEP53h7RK7ml#Vpmzt z3I=b?y*yiN=Y=Bamdo{aqwrTHym__VtWojD%lcYhAjeLX?g+o#b9OtFGl+84vOXw;b^cI(MkA4RZBMT#S-1gwp!HWTA92{KQweS z$J~q4h53DXX$zK$9<)XymOIB@q)uiac9GBdixE!-e|BQ1qJ|^@KA2*n)5(Cif|<`A z*{_JkfOhOaAjPH>9<-!h1yQ8y{~o{Yk9yydG$I=*UC`m+r5w!&+SB)PNP21=Xif!9 zH&dOnJJ`b6p1IiNh-E>AJcyDr(x4{ zb%{-}Qc}3)tC@|UX-0*M+)Q_fdl%6pob-z_mF(VsDX-~ftB2HS|gP=iCbJ;U9< zGLT*=Cap*tT`crWFT+1i!=wBV&okzG{{3-78k5iqsJmfBHCuj*Mc?;voJ(?{-)fV) zZ3efEIu707A0WazukH8v;0t7$P*c|AC@9C3I?@oz6-6!&M^s#Nah2>Kqrm1!b>aEh zwd&&A!?UtyZ^4VkYi47vMMx4Jkys7gG4!9sf_I>oYYCD&6=)$(=FT8koB+Fu)5;xdK)(1*MHj$ z+cf3>f5Yy&VY`Th|77_}%_E?}l}R2409`jX-cqZy9Ap?`$HkmHLuuVD=lx+$lnJ3v z4QXvMf>q;vuCt?iD~D-xc+Zj4vMEX_Z^h|KduskZ4C#=GlAT2kxBBNSzM4LBm$ZP( zE|;KX3oT^aw?jIB)DeqN7dQM;&mdc^Qo8+&dizv4;_|fE^z_lu5?lk!l~mMuqe)<- zYC$uP;YQ-lN*v#5*!@8C+a7k{QikUeYFy>Yb2EQ7ATs8t;?j#ko`9H_yao>`R~Sgp z4s)N%7X{y=(DELb>4;jsH4D-nZJ;@gE2P~eWT=aGz9s0ogEzog*^u-&NEm0OrW^`P zxIQ{7k28^Q0T@h}V`M?_{oUV5&mVooN0_5|L9^xLlLlK<9hJvE6SPyjR_FDwn^jH@ zoOe>s0^wFm@jchQGRA_uqP9u*sjF30S?DRzMzySW%Zl%?=ABl({m{WBICE=o7FIv{ z?fWG-gEcr?zz>ZSdg42P-qS_EmP#DE*7NlV>m94=T;a{0Bop`Vh*p#k{`?c=87n^} z{r@N0LpDN;q?zzPlLBS5OY(PY7bEH>V=Q&&|hq2uCBi&J7j&_VGn*08u!^2Rq`IT5>-gn=oOK- z2lpp`|MaFF0wXY2&dXbG-rpSD-+Oa7ynU{yB$Z5d|D?s>p6MC(sE6GB2FFM6$Jc94 z++#H-Pz_`6l#61z+^#jFnz;~>7`_*4tcwd}eFws}G#nQn%=uiCY~$o*vNzpnzxQA7 z>$SNK!aoC9Zb@!Fh3^pXGN}}F%}hq4(@;O+>RR+dQwJ|s&YASHv%`0!jEv zxjZp9+)Zg9fa-bPq3m5#V#pmZL8A-5h)7{Q^!c%$#6~I1$WbA;g4`Z_w|DE-o1;gM zAH06>=IGO#<2T2*Zhdb#&zmJ>Q-43gsI;#?xqojs?nGL=slOgzhr{~=^ZU*1H@AoP z&5!T);s|!Y`fKyz_M5NyOZdio^=Ux9ymjkSXow#|i=p|~fpPo16kq@p?h}~K_wJhk z%jJHIF=8;V&5fM#7!1zT8Pea-!eQ)MwL50T9u|ZokBfA5Ab! z^hS26IKn4EBT{C!hd?mu^nv*P0)+2iS6bmqM4Fei^9K0(ZUs?c2TY_AK=s8EQ9DI0oIg-E$MRfN64k{C&SQ`_ixf z0`PH1=wKTV`IZR!Wcg8zA#N1g_;#Kj**`V(h)(Hc5)HA?mhjjkaim2tb z%(n;m0|bQnKbzamm%}7;Xv(>eLuN)S zZV;q1qIX+f@tu(lI;!voDy!lvOke@00cno)?TdMAReV@am-Cfq2bhj+40kR67x^3c z*u`owFRJTq#BN&ugcYo3V{U_~G?WKR$L}&=oShK#-o^aKNq^v8;g0=LvC|f%qQ2c>JGze`yH0Wosje z+YsnxPHe!yny4;5!RBIshX%4$wF&W7E{CO>`iZ6*^`Pwq(A0A`46EJZ6}Brr)9mJU z)xB^Q*T3f<*zaZK0|Nkf966E;WOi~gt?Tl9IS4zlsP`+vWAmdKJg_=n77V`9 zet1rpS7~A7gv-?ztL>@+dyAnZt1B#u2-2T{ry1|DYR~20=dv4oT4w zE8$G8xojp8V`R}E3=ur7R+mZ24#OVury7usX^o0xyz(QOOn1+gP+ih-{Sy9w^TTWw z;5O#{3qxS|$ntz?h{kTLtO!7$huq(4?|JFu<$?PbRpO7GR(uFs7Qvd(VwLbD71Ge~ z^@E**zSFd%eKBRk$lj#RZE^U3IZXl@ zb6F-zo&w$65rgt~-(x}+vf7VxB21_w!US>o;g7UhkN}B)8?BZ!l9YZ3mb2B|l^4mqf}%%QkhGtc zOTxRt$;J`;$tfbGuRP9HWYW6e#hE-&hw4|M5>}p`)qNRUa`GND4DG&y31wd_`pvoRV_cg3^n*#?}gT~5s*)wgQnE0rZVBE?F#j)7#vqVYN}Ve#JFi6c%d zdrHNT)K3Xp4U9j>?2{9hxD(rZ&88~QtPpygI40Dc@f@VST{u=Jhd1humQ!6ed&o7) zeeu&ke3ST-bqt>FH4PH2-~lHzr}Q$dF{fV8c-f|e?&!Fi9eS=^4a_b*6A^oYrAs~z z$fHqD6}5-V&CfSx(5d##(18ky^cW;-l5-wZofr9c@;#?BdfSMb@y7lR2hUs_SZrIT z-?q{>>u=mb?Y!|01fP7^h2{llO*R}ak(Mt|FCk=)cFLc|;tmt|eNIQ?ZnE7#Yn#XCsLS^Q!oA9*LU zPa*2&NmZ??hP1G@<)Hs)x?HX{J?EU*1KqR%2sG4&$@c)*aqpEGbZdnB-eq}yvFSm3 z^up<_Kw)cyjOh%HwDNROj5AjGP4zLkLVviZTrdpL>HWt~KmM@UtX~!X*h2UpyBM1f z#;bL)9Q6P4dbO;J*Vf?H2kiHgu9l0{bl!j?XO6!p&7Eg6-E6IN zare$0&Cv+g#Wwb%cQay$HET3vq*Ex|I*VRp!x~ba(530kAWp#C9X@Dup+eJO13)R` zv60FRi3{Q`g&+^+4i}`ru7akeVe9AyZw?#_D=CdV@EyDydaUkW7~h2hDHR8WnV8lTJ6Q(}3ME%ta+FNm+J_hz$=2 z7#tmQo4kxlyduf!J=6HPTyFl|s{RasKAuff^`J#1sw!Vc!n`~xA#)3KHM^Krj|>Gq z*bGWFGOTebrmJI6Z&?BfSV9UT8ZKoQZQIWW=Z+lR6M(Z#G_M3lI_%uRzO=IOtV^Wg zhAtWHs$F`r4Vie!Bmtn;D~(sco6jcws+i6Tuhrxn=_jgj*Xi0(-rAGnsCAIXy4ze4Z`ORtX_I zni@uI_}At6sFxLbke;S>@yBm5&=-5+*1z*{UClb|meUAF7#%bGegyXD`Vn?E|BX&3 zLXd#zPH;Nxx$k2Ve&y=Bq{0KCm~kME0PA>jVI-y8?n--Lg@vx8~bt>|$Eq35Za4@t>JaU5#wNC7p=H3w3<{%@eDZz}HC2CzJ&1+l~WTIvz zBeA7<^HCUwHwU@(|4Kg_{qy!E2!uhGKt=tT*)LDQ98A`J25;sM6_WRs7uH~G;ThPi zX8%ZCZ*sdxTO@sX8Wx85`pCWWxjW~x3AO{V{#JaXkrY)zyc#x{(;h4q&j2W4Xk1*T zmhc7W-@$}+V;>rjbZ7O$kFTfaSeB-5<_4~IlTgaZjTbt{;SOh0u(b`gYdE?O@p?9j zcon7&q|KLBjNl4jTlR4|H`9<47=b~2UK(jO^|8Vk^W$JoZQYBVKu$?Rahs{R&xl(q zNjea4X^qkp!-!S7eg;*kW!jK1`m-Q0Clx=QEZ>>^y(k{6%S?HxB*lxY;0;}0OzWWg zAU<-ZtMhH$AN~eCQ%AUK_rC|Yfh-$-OAD%Ag@hlyJvo z{WJbq%%Lar0SRP-tK50)tng0lcAdJ`r+y_&4ePk6E~o2(CErFG1(5lMJaWW(oPl?j zJAg}_q4zI2J3^a^a6A-ab=C{*eDG;iF3|L#ex8?W&>-^NE6gtFX@nBDsR@8Yae=7mLF1TR{c3?HB<-ayZb4&9)Mw zqDEuD4$f88ZB$Qt>R^S`)$s+$bY-#c9v^(A?U&@`Rch#qs|P9j2Yx5#jdlK@oP-n8 zE4IGkC$wW`@^lWCaqeJZ?%n2T_HoG6RriPS$m@elF;q2hIsKLn=b?1g-PRqr% z0yB5DIyXd^MD~2Rs77dwe$1{=J8IFR4*lheLr|jA90j7?`*L&f$eb16oM3vT{tC1B zn15qee7suvX>h4Zibl50pcvcJuXno#HO4m6Mepn0{+&CzeuZnka|#=W&_N%Cr=A52 zpPF&z+XCzx)82pl@T&J3MSxYcvHNk{dxTDwS~j8p5=Gc>Vfi50&%{pz0~!C}Rh}4DA2&@WpfIc*P7TkOV9dBJmpo ztUDgzPqTnC^uG4xYSbe#u8GV41;a-0v!k|6!tJ7g=M^zt4K80Vrx1?Bpd9MU>9?1n zKXh*f!?d+eDc=Xdx*t_hcoO@2AU=Qw;MT(`mInKb?@zC@yIfhe+E%}JH)+X>9!JOR z#e^>`Cp)yr&M-8lu2$?OpwnDT(012&j~7)F3|U(brF7Xe7@t}~%fOf%-#IAz{oR2? zfte*1w|f--X@TCY#!Gu7CeVXox0i}MBrHK3rbq587JJZ02dQ40{B{yfZV+`!mhWcu zymmp{s*QSZG(BH!%Cpk#QvxKrF+pw#ho%ABZ=mW@{D^nk6?VTxFyg6vkhEH@8(2TH z*h;%vD05X8bj~OHjW%f?mvx5ZoT44o(0XRuEon#76 zvcTa|oUX8CG#Tw~o-js&i3!G)RTuB_m4c@;g&nDPi0fd=dUHNS!KQgH?207EMH9~1 zhNh0+2}G$9%kMlPoH=J@PU-;Jd z?ujdvI*L1-er`W@N$$i1KaAWfL(oS|YmjSc1A_dxtx{Y(kaZER zZa#%WGxM<(JPdiQ>DSGeZr6Y|vaohNh6M_gk-NhrKxz;$AY4wPG}8Y>$UbzN`s+zv z@S#&~TFC3Hprr@G}R9S^GmKAd9NafFA+0V`#&!>uRJJi zBe-jjY3vv=={&h<2(2vyDOe?Mn7K>DmpPCcE?VkI! zZw^kN-X?g+4XX{H+?b&TpnWrNXb>^4$*4_u$n21=5crwXZZbFVC{(vi-(8E_0CYf$ zzlc>RhwDwX`k1}xH8GNW6ipvzu!mgOapY*L?oeB9J-xI2t&_8&K z*a!VSEldz!2X2f zE|;d|*S&A={`uQK|M5?E|NMvHc(Xc0UFhJOKj!p$@145wF_>hB7{*XulKZ+FuwP@c z;?;ZBr+HL?Z@2t6^)B6(ogDd`AKy)nx0^T3Z$OvQ=g+p!U$OIv9fJB4KJ>=D22{`7 z`y&>^d1)~4diCT3&$Iwfo4zlDEv7f{3{!gd7zHEZ_c>U~i?nt~<?8n?IwD#9sCbTGPu#!FPL6gOMxF;>Bsq-~ z;8nAmI}G-hjcDlqynJgmkt_G!lUW$Av<2Ddj;hHO(qKwt6Gvr&y*R*{?|IL- zVKa=_-Y^vJ*JrL+kP^UUxT$-qGxJShjp@B@@fMCIX&bvZvL8GyMOPqP8YB=K(a*1bbY6g#cERo2 z4a<7miryglqD4ZV&gZQ<3?wykc*N_fSx1>@4Y{q=7$|OsR~hM@jm-<;csHS)d`5F# zqW~~UsFbuadW7-$2Ny65UJCN401GgQU9)myR|T9wmX-0l1Uz*1#qP}C-6qs=VAMibq( z%usqkw`j0Z*(WdCTh20Z|FQ^LEYrfId=&246Qq+#_(e;!II^9@pHdQcACo^i%i%;C ze1b93iWOT6ygntOV-O<;!&CtV+Ov|l1g9;6x`nEDL|4@!=F;Pm=yXxOEB>;bRvczu zJV;{%jqYh!InSjI@tJfoj*otf)GDiP392sEj}fFd=X){T2=^J?a&M!7d4$;gzR#}J zyWcZ^K}PI4!Xgk;WO*gkRXfc9)^Pca;XQ;l# zzcRh-XY4N_0~wvlL0hgYWqHtb>gQ^qFObbb@-swXyY}GA|1&3}h%&b1u@@-*bMJSU zO567bV&3oi^cC;lzNdV&br71yH8)z?re)afh%{e6TmHP9n~S^I&kUWNu!skh;~HDj z%}>*%S(yrBdFau#DBcx|l;7avm;cg;NmJT6+H^*41*z@VuOvEUvO8h%!5qo%3ye}&0ApqD zjE2U?<8hzeE^OR!zclg(Q(SBeGhS^?m$&vuiVx<)X(b)3h8hHW>r85WsN$b8zL^bWlV$!5cRRcvd>-hs(dgCKH0IVlHZ zPQ!NOoMABEgEwuuuRDfY_G%+sK3!EV z5X;3OMA1+SDydWb8#SJXaGAtJoefKou_a>}^qewFX4o#ge|Dp-wqb61xP`rqgY;a? zUwP9VOwTr_Q*#83MsO!BrS;TYd>uxydHft<>th?eaiDnY#GbvS>)-w@-R#I%oLMAL zknSqPxSZ!~WE9Q+j24ZHEi;~8J*(_9K&`N5oc+Qo0DWe)q?b0gB1I49_@j-qbb&%? zERi=TCwPEd=r;-rcbdF_&FbD=BWzI>bxeF7wp|4|Ha&Vlj7W2TJ z>_7fi4d$?6y17P5PJ7Lt?9-(=S6V=`#^c-(PXn1rJt>wi;rp@>T9raaJ1DR!ys zL2K41*h*o&4xBH6f58*CG%l$3ZvZlEw8A(%t(JqnIldoRI%lPfzLd}kiTY$LG zH5D%>b9gmil(z{E7QbY+lex z3UunB=!v50Rz)qbc zPe>+Vx=kni&+FJA4f=od)xWA@DRM!xv_)tzi&d$)RnTlJmth?;8KL8!f9;Gft_8D& zxZdoYKo<4zA5cwb7{&ccOP2{xcRxhps%HhVOrf@9-sUp-u(G*W>zUck)8(eNS(`>! zWsMn6Z3Tjuu!tiVJ0I7J(#SQp_VLp2u)49&l7QLaykQF+48os@8RWD=KY5r=J~Nep zW&v4jUm6;1nQwu03kz~1bn)CcTe?b^^uGVyslA%Uj7Rr=xBt8ELs?Op<*;_+J5Ju7 zB&)0;_}#v`57c_&PxcQ$%JQ^c_a+X31ma}G!e@tX9nX7&xaD#wrV_Y^bZz$48h{U> z=1Uj)3M6bP1J{&Tu%=2icPO}bSe`=9q(S!6m$7+j3oC1c)WU>8FNjStu6>A&)Gkx0 z7_0Zi9u7JdpClNhbQ+h4Z`n!mWE5(r32L9Dk9=D}Artw4RtpqsI?)~`EVitl{No0c zON1YBhAy}A&&y}ai=rww#r!FXDTn9;A$$>vxvz}DeOz&C<7ZGl4a>7QX=mf4eO4ID zsm5G$x^9>q*cbA08G>WWe4=39Bb4$g?R289%w7-ROfVv>t6joBsoj)wiOdqUL8dIE zrjNK17=MYW&6;Y(*)nA21Cf{qYIv|>jVQaAhXaORTM_V{Ew8D0!>|YwUhk3jZ9(-I z%hpOHDZI19q)aj6N6g*Gv^t|>n;q^sohSP8?jaOdl_iH!k)J*hy4rgf>dR`&PU_Xm zEV1#V(RNcZYBZE?JD+Ai6*^ zRX5|yoO-6wb3}YyUY3h#rR|Eh#mAAY9M81&zJKiM$oIrV#xmtf=E{WNY1@W180e6y z$-EI3xnX=JJ9tOW^8VJ`)y@nVNKX)CkY=(F(c5rCatc?`}N+Pa4KSq+~>@=kTyzsh!yaA#RWkjpdvY;bFS zZSf{HH!~jfK8$)ZBZStxu!gUON6Rg9DaIGlPUNEiD*@<>>9``1{kJ^fOnN{7ubqp^FC5*4D$dZYF}7<9RY0aqVVvJV<=Co38*`Ut*q z6z+OB`fxmKN;KM@Ui7MiZ9UlwSM7z!5zV?-Nk}}cm05456{*1)g-GQPq!MhKgp?C5 zgOjzd^)yI}!L$z1QM?Ir%M5=A@A>%g6Y$f`%DNK5@L3kj77@4m4I)X6O_sUVL?ndG z-6nZ#Hwf)cQU?x@I@_D~v$w_kr|FtSJkuV#p;ob(GPuMG4?T>vZvd@H}>tR6grb7i$1UeG&=w9 z!^!f!Jz->J@tWvR;@SHlY8n#q3tt3z(|_U;s-Tu)5cZ=kBIHcFJr1 z$xxnW6zuPNcc2IQ=sPiaR0QB9M==QW`c;}|s0JhBzA!iRTSqcZ3)cUle_`8}Ywg|Z~+d_FZL zc)un+X|uj+oElvPoERmoJN&_S&1=?igItGlu0c0fZIu)`VkhG7(N_v$C-jflf-9i7DxgtyHVaGn=wezutMOC#3SMDVN6@zPt-*^=fwZFP zLhq;+4|V&oKHEl@bOkged9q!2@HKEC-$W~DJ}aimhjsx0&MAi6`;mq+ zj*~cGyb<7>d~deOub5eQX&q*e)cv5mEUdbQ|y*gUL`3!ZjXN`p}Mce4*{`@MzE^ zWjQkxs6x^ug;z6JA$`q~Q;5%+=C;Xq_hSB=tCX$aW)!D4I`k@3#fT00+PhUb=XVnF zUN!v%UK+T-Ab5t;K@$#$?J3-ueb}V3;?% ziUwP?mu6lFIJvq%Yo`b}GJDqphw6xtk(K z|2}(s#)8)JBag195aV89w1%J2v!yzUL7RhWxmwa}X$r!gn`QYz$Xdp(+7KnkI{my0 zp2!CRM<{s+B+>3WBM8FO8Co7rXK&w6t9kv@Tw8iR0?!Oe+ zJEA6!@rKjs`nU;%xf@nmSf)ENtJfFX<=f`DH}Db`2zAx5zt*jnPOc#qCPzy+3E<#~ar4=glIBvkz4Rfsbs8%)NpCfRKZo`;B>_O=iP2Fuu94iXb9 zQNe(xk-VunTxx4;o{uJVmJQE z_vb`xSE_^lufH9>#0$oMy|33}_{&_8AG~_<`sCSTeBM7X;?2nnrq(B1=o0enB_ihP zy*XVT8{5e)P=s>+0j)$aBLqu|1$r$Btm=zbz zh8WZ1aQ5kweTk_y@ObwABj5M-RSO%d=g=~^=mDqVf;_ktm%91yDs^tJHG?z5 zu(xHjXqq$2V;e`T+)=NKSfJ!}l$dg3X<=pUw#lUuk-^PXz`%jE4G*yKfojc4cf6`y z&&mt)-SR)gbc8hE1`EY-9Luz&3t5X#G^W>>*VFSs-v}?u$kPqCg2bTwGwOHPFX#OU z;SkZ=P#V-Hz5ae*dyNI!%v&3!a?7%o#7PmOcG!Hv)k#9f<^)S&H|Q|uB*ed0bKd|r z1m#TwvUxAh6Xvra6fLP-`&~dR zpF@ampUE-xC;_%1`N(f5>B#^u?}KIaHc}WlP%I{lt))AbougxRXvU)(eQb4iDmweD z++(YeLWvv}YX+JgaYa0J@}`ze#forNQsQ3`y313tJVY={T@sOmYei{Mgd_n=7Y7|Q z@PTuia7C5h-RkWRb4Q^JYf^z=u@ou@PYk2r0MIxceRx2s(<3Cp2uUkw79}Jvv6Pgi zOzFi0P~#+XQ{p!1zSm$%)PWFMmX!px4g3GvW=%Yl+<6?ffFR}c5~l@m4qM%zh-?@) z-5?%ynKWT3cN9pr`PO#~mg?BI!fz6hZdn)ArXvrRN2@)f)59%YU7cCQ@8d-o4ncca z-Vc{$cKUVPVzF;xhV@?hHXmKXbh7+8?pv9hE!noDJ3(F)a@tBsukpDPP{UGid|Y^| zm+IC}j)bh-l@Lt?T3+?YbnLfwHk!}zQj)g<`FmXd}!-IkE~`=?b+ z`gU{yx!rsXp^H>nOJK7e%2U}?OSbZ z)c7oojST%r()>bal`X!alXGvE8^%zLy;@asxJtY#&atfG?W4cHso!kx+?n3N|IXiR z@7}p{`eu7poShxtmKPM}^mm8+^&LXyul?pZ8_4?ZV+(hWaVCag=cXvYF=l!iea;y| zgR?rdh?s?*trm;vx-O*quqCMCgSiyXfs#T62_Woz(u$-9mlJ>qYrV7s+-w7yUWb1W z=Yl8EDon@EH-C)ToFtqsKYdbelSHK@D@zNaCc3&v$A-ZG8Ed);i(H{j7lg|PQN7mf zirFKfiL}{Evg=9f%q2Nx@3a{t!?Gp> z6i9dyFX~Vb%`H}QJ8EU}sh(>$_TF|#xC_BderMxd>6s8U$5OfM#@M^39wTa)zra|M z2T0fZM#)2R{07x`m$avzY;q#31AuP3Q^OP9Hfy}8Tj=#B@3Ycqs_|}!K~C8u*=ZjL z0Dp_K2t9f5Br4!6y3VYc{=le|yv4(fSj zrE<+%1Hp1+-r;gG2t0nR1AwS zV*0zz_iduy+wJ~4FKeh%(?PBFw)prcO_11dl)`B_{}^8cdggvjD)HN*LlTFWeb&K& zhta=-+(#dL`$wB-C!iYQ!7LA&55%i@DH-D(^M}_z{g|;jG(wu&#xVQLB}mPMOy}{< zpXAKG`SU*!AnroCUEladAqi5IBG%NoTy5)Oy9Utb=9Zo>2c!~Sbnh5@a%=Dxa_S_| zKj)-G8Ujd^AT5@}1`c|lX~h(tA9>d5-#A?3YZ|T!rd`qIAQP)e$W1R^ zqC2TI1EX8=G5|$?V6#vL0kfj6e=s6Qjk!oiu2#y8Z_S?%s_N%Wxu~6Y=?E*+-1swn z15b#a44rjouiSM3g`^Afm@n{!8(uG*|A{)1CW*c#$#pbtbD8^=WtftD3s1^-HMJb+{roL>rfqIp%z=$Tv`%lc(iIO|0% zF0AH_kMXr+xs}#9RAnIm%yFrP<1b1ZW?7y335& ztIPjyTT~wh_`(Z5MBJeb_J>YUk8bVX!~gr?5p+PjoYI==%n4~NG{*`CL?wycP7y%5`1 z{_hx&0kBQYlwPk^2`6#P5$Qu#w20trE=us=zJ!}a;v}_iZ|rw9pSJy&gTyDKz8fCx zRtDO6;@M0ZP0n|LNrslcUdckaH>Lwt2%z>p6eMk)d7)JRbg7u(b(qO`v-)xMzNj8e z>tdkP;Dc{sq3V;q-DRk@UV7ZvRPufQjMufkFzuR6i9VSCp&z(u))FZZ=99q?R}D3sh8zDx%I z!H+kkj)`mBRKTP;9YwAX2LS9A238Np`P_c3XHa%xS529e34-rt5PY{Ig1gnOzG}_% zB0M8FRSm=jg@S+L(cR&2_j2-b7}zsdK{S;95L;;9mwMd;@QSemWx3Y0#o4dn8Stjg^%^&=eTMiZes506raFt~v@}j*idz0mY87wC$QTih@Y~*fpe|}n z==UbQKJ{DcA8Q5%@wv4$_;1}`>>8kC7@Mh?xM32Ip5od312a~q?&-Ivb<8G@N1%cQ zmv0yQ?A9%9t5D=0Lcbb3{}7b62wpg;%(X69OpaBp${& zfP<nTlJJ(+NKoAl7Aoy&Jz`~Za%Af&l z&2py_hajs2axr_Z7vZMwp0@f9xpwN5K;h*?^=zFu8`hbfqFu6<)QKDyvS|i4JWFGQ z5&$wggqX$Zf#X#Z8bRxy^7^(n_9H%hr#ufQ1kBQ#mR$twYvgA^%Ux6jUI1gSY}CZ0 zVDoikyK~pcTyN^yQe%u(GEwL#x)e?P=8F_f{N^_=n%IG0rsB^d!`QN)&4b5hsC@7{WIVqL7E=B>ue zViRRj_AWB8H<5F5LJUL{_K@N%a^ zDZ=4(3N*%F-wfCbB}=L9rPCD5lkj=fcP`eLjHM4pUg`E+se=f0D1Tbb z%d@hWcd6L9N5q(cUO975KePEc-L*(JsuFN*m!e#wL$O7M)rDd88v4( zsMnjhYBHkw(86ykl91bdaM0E+!~iEBTxIAimWJ&}YfioWV#^9}c^b@-+W&Jj#+Pje z8uPXgJ1s0q+t2In73xq78MfD~YTYjgWRvKphl*QpY-P*s4Q{`wZ{B8d#B5RLPyO45 zq~6?m^Zuq&T|(pB;U9pxdC!3if82)>K%j*)xVYIf-*-Grl|wh6!t|>H!2}1o&%4lmHRqPRu%J*X_vECio#-B=l(8 zsMqaSMIO33_=*uQt3*p9IHE?J+|5smsJAZ559VS6nk}lUB$O<$Pt9&9n4tiwZq01Uk_>X~M$X#4 z$bPjgIZ+1Wv872`UhQh{vow3-PpMLyFk7o$XgG*M9d|wKDDZZ&8SWfYz7u1>ZP2(4 zrg~!b5O^(!i)>Dbl15kPL5j9U?kaN}&$RFxe&+fR>+k?E)^dI)@&Y{_h<>T@G@u6q zs>RuPp!$fG^($Os>W|XstmnXM^ko@}!r+NX%Bq3Qd4G>e0zOGzc#d*_3ijH%`8Gm| zo*J+b%$CBVZQ;&6PCg?NKMc_gYKyXmw=^QKAn{00bPn0dAyz?~LDCpv|0chct5y}MlkZ{w9U zxsO%M$Vrkb1!pMFE+&#gxMbN|U)?qOPet<{ein>!{o?~sWjp1D1Jj`(7(0ad?`|VB z*MNs%(C25nq3OL-=N~`5AKO}vMadb@OKItyN&3h)%T|5wp76}4Y>moPw(9oNSIcwM zSo2~7Jfb_e)9?cINi2TwYrb49AGkEjk3dqgP4uM(>hB0lq^Bb+0EA z>M`d;t6_*=CXn=cJQH5y*U8OTj13nm+MULA!3*@&C+-N!yCI%k9C9z6c^@Wtc*{Pgt2i`SoC zg(b;+$Jd5A01x=eL%9v|pmE^@31+?nWav9upStQlY%OL@j6#hw0DrK`<^XmHwZZ>x zkS9(!d|p(dL85g}ZVdzJSZLw3gM0bhX4D-ilx1`0`m=77zE4u*hWfaP-8});p1^uJ zRLyj-(~8g)kn6L{iZI#<=c!)~w$7is7|t`NeKkPb_-)oA)iiZmjD!PG4;8sNauaMO zwyx8Y1}?!1C}5mM+Q8DVeqEqkjt_evM;9xRQ5Vg%*eYbGeGvUsbA%Vac(R=PLL+%P z#VSqUwLOOH;m)T6yO2&%weDGE-?7Fy_o;^1leXBDaf9z(Zo4gq*YF1tf2X}RB0p{3 zfcj+Dko%}pBK60xjpO(uIc?oVfIOLwQ@-{|l0idSBn*2$_j z$H9Zh-pcxr5AN2yn5`y?BQp<_xO$#*?+L)AQ zfWBnnj@{J9(If$R^EpJ5q(4l`J*rse~+>;kLtZ#ZYHp6aX(q- zRboFF^f&XP=w#<|B^-}77s}KAP*Gx%_A5gQ&r*os`7Dac&2rf;- zajk@LOgj@@h0%o|v0~|2oY>OAc=ip?dO7Mf0!-W$=Xel3x`5+lK4_}QC^B`X;0n9Z zRT49dr_d}P2W*d%7JE;J@S?qTQxHoU6rU!!g7jkXU`%tPYAIH{`4QjnJQXBj&f^I= zMjg7bMSOglUVPzx9g%*IC0myo+?phDalexQQ_V?9E&OxUW__Zg<=3EA%DjgW>zuat zszcs&tTyTI)6ZS?ED^R9D`KjPV)(%2TBw|@-#N>20uin>@d+k7p=T}(gHnx%S;Xh} z6asRkI{QNHO-%_)o5)-F)<%={i5k5xSPq5X=V2k$L5GU@D^ecT1|^+Gs*Gf1v$H@F zba}W$ghnD3cOUth4JL$B0}Asf2)$>oC)7+pYp%loA}3-YK{jW1=a8TTszlyV6Qsar z?UWu8%hNPhRz}CcNV>Ho5YlA>bInECtC_T(Hcit-jz$)($&Rk-Rgm~PUoE5~5CR6q z!2sJJ*BQe>X5QUA5~WUiP-P<=##fS5&e@TAI%#O8!+7QA$6V1*iqv9#4f+Cnkna#=kGX3RS@ zH?4>>i7XBt!I|hmkLgV-_6bAJ;mZfl`$_DHs1}%*NSkeySD6j|v%erd03E?XL^~@m z`x095nt7njCe~@pT)k!5gM4vEKAJW1b-A^t8E~cAUBSz-!>43{#Wstn4yl?7AL2CC@#!pPauDQSP=SW z4mybLj-1=Q6eIL`NMR#1&W~=`g092u>EU*LZPd7nDssPid)g<2!(XlYzX5u}ON=BW zR76-R(II32!<g4Z~OzB<5j@Xn|Vwh+P zTRO9g(VVHmCI`qOXtpS(6)y3i-9T9!WyuS>I6+QvV#z%5z439@_jnQyv!-89maENR zI>d$jx-SBxW|T5~FJbAMg!)eMZWv|vu;NDXs^4$4M0KjFjcbm1v!ml=b3lhi#B6@f z(^u3jOQNi2v{1XYE0qP9rOq3uN#sjlTj}vs2ic^7*&v4y-QcoeSQt^+Z%7NDf`^(o zsmX6i{49Wp(S1XT^RQ4aL*1C%I;CFjqVlC$31!SG-No8x@_N?+Q<}X%V80=D&9cAu zW~wKy!UUt8NHn}$EQ7x(>MMtYG#)Ec46}Xi2U;W_cUf-PpQ0W%+Vw<^o_aRw)vHmj zF#i@SEjhG7(q9&FCkB279n@Qfm+@-1?_dt{E64}pbjcn3E@`6trx3?kVefvh zfpf_5osJw(!|^4!%EW`Dc>lz{kSUAG`q}c(5TK3d@yPJ~#Gak=o8CBdPui<`R7PB( zgK-GQz}kKOsmvWqjBSt zRF-l*hIe7e?16M8JwE2x`A$-4E{RJnXF!9N+fOc)=~>R9zfKo=stzqL3&{gxzRQZ# ztQ(QGWfX=Tc8g3UsN6B1OGC1ZYv7Z>(JkM@ZW$lkImMDZkcPV{V5AXB90Z z1Gx}ztW>j2uOM1n-5DrFdiP{n1)4if%U0Q*Purut;}ysb*$)R(AJU~KQU3AV0wn-p zTDx6tVyeSTGEMzpkb_80$MbU?h!`=8XDRe{%4?AZ=U{gSSz1t|b8OlzFxJMS0w6wI z7qjxLoF!pf#rwb6e5}08OiX(49QPzz2NsuY;k>=@Nz_L~cNUtrl7C_I(vc*Jz8mIB zB38nENSbJ#fK{spAl^8(6(-QrI%O)ZF+o@wL~AvHfCkw!6gI=He=z{A1uz2HI*!{F%mQGSbpgK{Vxb%^1ms zZIvv#MTWRheVS|UZ{<`3X|>pEO|Kg$I|L+?!@{OJ#bmC@RIH;9-gR8g9}z_rla$6y zF$x?kllIjSn`sZ_)+~Y)Zq;ylB&`S&R;%59SwuIU_)=uxQb#IjXr#QSFn-gUM%C?e z%B4rU`m*Fii6NePyU`1dG1#NWt$uC&hCOBuXWZ}{U(YV46%>Sguo>L34DFA9xcjF+ zH{5QOW!OuzW9!kJdwg9wtz68<6J!NFOsb`D0Pi?MX3CxsAh+>H-n=d6ZYHL*oqU~y z+?Z2YbH&*?3&6GV0JNbcoe{gTC^s+{Mv+eGN_X_N#wzq1sN@~ZcNtfD)It90DywCk zSRUxX$~)WxQnX&546Y73x`_=NE@+)m7_zWDG8}s&#b6My!ply=@XWOoR78lSqmLc8 zdx4u0ob5uN*Q^NC_l$w>=FOJFMK^8CB#N$b_{w>2S0eu!TLJyT;4lYY?u4+?ZVYv@}-ZW zTTO&vM5{?DG)3&fGPG0-)12v?&a<`=iNfwa4us7sZX|IJK)Z>SwU|8y1WoT@> z7IoXI;vC4LDqJSiACXA#zGz*(L`_wzCa`VM{is+h2EWpT+L``4v6jAuoR$(r)A|DKbkHU;QL(%=d@z%V){k`&`|?i=gfCUaYk$!T6IiByRQVm zlCS;zvEh!I!$|EsM&1@5>jCdTfay$laUFhTc0#`+q4a@=6Yz3tKa(X0d!Bi^Vt&Bxp?YI??*=wgnU?nlCSh|*j+D0+wuzsl z(!wEf;(v4~nR2CBIvg<`*^!PxDq~Y_y!bGB?$|}U?VUKs7WL1|XUmJCDmQ+dLnlQu z$KmW9e-}&t)llTzoR&)?#l-Dux8*DGLS+dffgHzvyfbmAdCflsW_)rot?Tl98GitU z$CVn663~WP+`k4Y&&DlSVI#oO3GlRZJSt(R$p)!4mVlDt#k3yCQPp+Ct+>-J3_H+y z!)o{Z2~P2=U3OmMuDfcFqn55aS%*|TxAfI;oJLqr=ksuEb`>JdJi0xe8gtNFZvSjk zT-NBJ)p%yp^TP98m+Zek>JOV;l8DxZ4C*9Mt0}yU!E`zl-T1R~9aJwPjJv&?E{ue*S*;E4`c=7NuME@c zZ|0-Tg-G`nQ@y<_s!eHteE>Z{>(!d)c)L0tiSaJW`Fv4)xgl+TZKIy9Hk;MummAgg zmmd`eT@+_V7&szLvZJ4s=i90nmzPtxF^d|NPIsr~?Q<^D6DS31hP(x1$_}`qSxfMT z>3E9w6B~wn>uhRB|6>n-*ASCTXF2LVpV4}Bu|K-FJG%I0bn)%z;t!*XKaLR5qfIrM zm+wZ~#b~t{Ey^t7Ay(fb9p}aYfV_k#;j73A(^B41ou2920JHln%ggf-S{rs+vN*Z3 z#R|klePX+;N%$>EaApL}qS}cFzwn}22(GtmnVEn2h5TaM&&~E-Dv@pCAmIE2qI2bi+R)D zj5(Ay)oLjjw7n?crdxC*k*1`~Wc3Z)e=8iD0vLtd+M)l`uCQwKQEm){%sL^axcp}# z1+Ad4y%50Nu~L2xRzgY(mVC1J6C+R-x{|}5e6|+KT>-5mIu$=^@rF@?zArg2YgP2C; z=DNU(3|{}jX~0GYOM2HiY*y#zz!j2ngY%B3cqZiLwJU%%=3w}u03KqOUk85Ax}1iH5Vh<}#o1hj$a~ zT}i$OSqVL{NxuEJo$BZaPjzX=xqpW@UZ0 zRM{4H$%$`}ei}()=Ua$!B-3qvBr8R^L=^HdG6Q~7KF*+|fas7ffRxXe^w)yqF@8WLn;+x*Zx4nx$^e+C`Gxs1cm{bsQWo|(D_k7cv&wD`9 zeP^7z{ieRn9f(9i5NB&Rg6Gnn>UcSNwzacr&HU-oDc}%^1?#cB*byfwFpf-|g~Z!T z0_d&=6dGizj|0s+?kwYPbzX?5DS-suvqp*>7DYW4wS;Lr1TH;6Ff=F&uZI5}*M++B0QbRN$S zs%rXikPY4m>6uc)YU-*)rsSv4oEk;ojMS=*MV!ve!9Q2S6It_~%<9q>o|uk{+jfV6 zUHfF@Bp>eXpxAvbVWHWG{a7RofE}y>VBc%6zg#WT#1L2c6b*E^uA^O+9|}D)3~5A9 z;Y{0hY&kWo%kHahH!@~uE*?a_ee?Ekw_=leaUI;44c-y1MZP>% zmdgfC!;cGeK!~2Q!^E+|zoZcg=t7ru5%7l(xl~V$+<+{e3Z%CGN%%#zMDcC>Eqnn) zw!R{htM5NFXrAu^7ZP6&EN7C`hezU2WEuebuxtU_Gj3o+3s!6b z)g0K2-}aq3=jd2o(cyMZ1Bl$$B)_!G=7iH-@&qY7m}of{sS?m#-ex{>=mAjoIC9LROdh1(gk##F{?!(o)5&ViQB!O z0noSW1PI*z9E(QWUrhF3z7vmBGWK3+9yRct-Sg$r%08kOhQ>W~TZin=;rodkmZYm} zayHE*lw)fQDw=1@grVT#My}!$#>-Xqd5!JAk37WwL5fy%Y;_rMA@7YFAqFJh0c`ol zY@YN}msczF6uvP`3rK+!dSHOqP-#xobgs7Np+*M&qg4FnK$+!h`k*IqMXn-ypZgSGW+D4gX9yI ztfpYOZusyz*f=9CLpTA6@NTqp3K6dr4lW~-yO0No-iAVLJS7XNePvV8a6HvYX|n(s z%P15(v4KqOX;a+FMiw;i{3LQ7Np67$hezXpe>Da@kRjnK3fp$axk}50f){a;dbz53 zQGF}6q-6Sx>xRwZXh1<*skBtmwN&c(@U6Em?5;o#W^hTG{yRl^e9=K z{=!sBs%#@Ao48hXOw-Aj6x*;gZG?tPj&UzfTB+h|cK33inXeIVK4r)4!TrhL==X2N z$DbyX`@_M}oA+;S9p4;&8oW6&fBpTUVqZ{Aaz(TX?ex1$ozq$A3cd*jGGk*^6-&P`~FPmV$ zJla17=r51%9(POJob0=_AcGyii_4C5&5a9rhq%3(mIsX+m)~KM)Ptlnveg;++lzmc z(;m9Zv(w!XHokt+Hkj&-Udb%n#S^`%~PfunAw=Og#Qe_Asa;qDsfTcUEy(>y~_}6}8Ho zfK0c?yUFbZ38wCcW`Dg$*Dm)Ivq+0Ne7%0}rYp|3siw;suy4Ifh?~YO_h41c3;)lp zYC12sb#JxZV5$)8qQ02USMQT4#@I4Qzs^?u9ZzBJuwn( zjb>G%L9d^LfS-pLsG*uRy<54To-FJ@_zqp{zFR<&7QJbCox;{V7B|Coy3@}90oIab z^0o<8k_vZlCZL&@N=&uA)ke~IsjBatH0=M_*rCNPG)ymb`o9(=NBNKJQ|;sRc$k_u`~+B z&SltQc?7>b2U=xYrL+PolR>$$ULW^LPy7%d-l?v{XG87$MLr+wE@db>Ld)w;P|&pU z6HHf~Hg24O<9|kk9`s*2s1n-MY?=R+jd8p6$3Ohx zn?K}$IETDN^N)ieyOL7s52rIb!ecIYSEogE$E#+tY)45)x7QzT+#Vas^I94IZrHnT zxAwE8d^PIr-vLGO9YGe1BeUyC-ogdPqo)xzsgyiL+NNL|!!u7F*l0YxjmNqL{!?{+ zIyGYL8*>L49^VA%_|BW5o4Q71DpV<|RoG$%zRl`~;)Cm7Xxb6(-=E?C`nweVxXR$b zS4{r(I&j><|9ufSVmv?!%kARw)Bm{9fOe`?jC87{!0eI?9tG&_VvQPtT>hr)SOq zNjcelw^Ff)GxwgJo}Rv1gnkB2AD&WuZKfpVV-SD){(Xbr+evB(>?L&g8+o1#JGuDS z-V9pEQd)dfXg1;I@0rRAL-q`BH@M$=u=u#s*7yM4!j5wfgb(JwxB&Ajw#-mQ8}zS4 z9$oBFjaWIJE6yYJ%tlk)!V_p!n|ACx@|vqO)mR926C>Ir-Pr*0oi@$|8Pap$Tf3J1 zvw!xnu*=zWSoz&QrRc->)$_gtfa{&d}e zoE@YbjEFc~L@75S8XH>79RviXNd3&eM2l$6O%8SY#GOps6`$_L#_wb4e8p7zc7C!u zob)&Hvu@Ku2$HaE@g?SmX5r$C%a$&_R{YlE#ARTkUw!HjN)sMo($d@4^#o0+=v^wX zBL4E#0;wkTo&7vkw?C9l?f2d3l-1jX7_NHNm)3!R)O8tHW#!Ruwo75)e=Aj4L>FJ5 zeUz&ts6_gS;ym9;{1S%E2PpYrZ|^lmP2PX`cJIvr(8gZt>E83bgFW;217e~yIXPhm z1l||Dmi1c|d3KSnhjOpjzlZhW&j<9Ve0Vy)ggltD>avAu2HrVl?Z$`w|#;d_3a z+w8J7y=~7-et4<~x|kvdst@oVO0+95@rF+5>(6vIu>VyoqFE-<3rNjvJyg=UZQIFh zyF9oL>@V|QbZC(;6bz<<1`IFk-)~{Xg`UJi#dqL>_yC82pZd0uEr3pJynQTy1;+1N zwpY@w0s~4@ic`?qxsok6uQUq=+{IW)CMWp2FJY>pOY=UhS{(@GZRcbr^LPCFfyTp! zdS-6E9{dfcc{n+;bF_$g`1hlfx5te@4clR2+6gBojo|2d7T=E&Csjx&Xn)3ospeEOE0w;cd+vcV-#YG{gE`hWxQC~H_k7aphL zNe&?fVyTRr)!3oo7&#gq`rGa$XWivz_vC_PyhK`o6SE{K5&-xZNrQ!l`9TRnY$hnf zy?fPcT+qX<{Qz39Nt^TTp8M; z(F}OH2K(W2GsKJ!zPfK> zWBDGc+JEmEt|_^TAk1`_Q)+hb9-|f8902dF=FwW4;&LYjtlLKhUHwn96y>&ZrLbUH zvC);Hw6$Y0prxeqW2`U60js}{@q)VNP|tjM&nvn^`jMQ*Px7MvNYCY`^3w0!`uyDWd;mLJ?Fbt9xoMZO54sy@pJ?B+ zNF$giMhCBRwGqq>i`)^bYlg^vqB(?)FpPNZN3i&9S9{N5_rsQ7yNcXUX3;Y?*-DTz zgWSCBR(dE>q{b%62%Dqzca%N;6n<`k+2_$2MYo0mRH6Hdk7=k{yr&x+4s4+vnh28`K4j(Q+C zYvgJNg1d#c^}zmDiy->yVqGmY6Mb&krDThSI?A&bd@ts<(}Ne!g{WBc1Y(3-H+!@7 zWId@?hW7*S`ZvQ%sM&Yv0$8dwz4IsY^U^fi-`?5U0*R^b74!yMTi+!HF2clu>=GK{ zK6Cc5!g=@1fKD(00gl}LT-TXwVN*eDRyz$gItuZIav6&EG}k;JqIVdzsSNCdiv zJ_8IdaQ+Xuj^9-#u8;O#Y0ZRR!Ey&~Js7bMv{@*FVE~$zlsdnp9U#e;T_CzU(|v5T zedM=k=lY}JwISbPh!qqQ@|GqHordGP5AxTCKhYSJ9ZX+Omh*GSPQ$RF+hf;J(WusS zX-#OOcUK|t&m|-SVN>+SWTha7&rjj2!1J@|wEZLkHg+t;0kb-?-{>+6-B7<4>6b+H zPh?gR#KZBxZG^w}?UD!hPjc~J%*ONQ)rV^8uLiF_dbO~LvB04|OTo?M9_zc5x+#g?LP0tKz*h3HZS~YJx{eDI*@IgAS#^GpF&d#6p zP}qlao>*!H6qbFNrjW0I61*J7y4xB%0A~gB7Z5e;Bef3^u4lt(jE1nBU}{5TztS`0 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 I%m$kf0QWzby8r+H literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js b/public/assets/tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js new file mode 100644 index 00000000..ee772b7a --- /dev/null +++ b/public/assets/tinymce/plugins/advlist/plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";function n(){}function o(n){return function(){return n}}function t(){return d}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(n,t,e){var r="UL"===t?"InsertUnorderedList":"InsertOrderedList";n.execCommand(r,!1,!1===e?null:{"list-style-type":e})},i=function(e){e.addCommand("ApplyUnorderedListStyle",function(n,t){l(e,"UL",t["list-style-type"])}),e.addCommand("ApplyOrderedListStyle",function(n,t){l(e,"OL",t["list-style-type"])})},c=function(n){var t=n.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");return t?t.split(/[ ,]/):[]},s=function(n){var t=n.getParam("advlist_bullet_styles","default,circle,square");return t?t.split(/[ ,]/):[]},f=o(!1),a=o(!0),d=(e={fold:function(n,t){return n()},is:f,isSome:f,isNone:a,getOr:m,getOrThunk:p,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:m,orThunk:p,map:t,each:n,bind:t,exists:f,forall:a,filter:t,equals:g,equals_:g,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(e),e);function g(n){return n.isNone()}function p(n){return n()}function m(n){return n}function y(n,t,e){var r=function(n,t){for(var e=0;eT1BPGjH?QY$^3@q|u$B<1@-&cja7B z#^dqh<74FTQc(R?^IEu&5o-Zn$`EwZG z(F%_)ot2rRll?mJlDeB2ruoi-tE?tH)pkYKhn?=QoY$Mw5)d}=4z4qZDkoJmH%65a zM%kzhFuIq$SJhJLpHiJJ!BQ@&FVZ^5P(>x3Z(2A3eCHjo3B8@sBuU(qzQg!gcdL!X z*Mxi~OGo2&^}4q<(Gh%v>@dHs2twa9v*Yr^Id z9WBAVPi?wpG|e|&@q@0`4`4q8{gMir!y>Je6Usb-9i^&RrR{iW0e)}C)}XVZDvEAT zGY;#NPuhfWQx}zml8%ks8S36bl4&>?D-`Z zssFv;B2O43yM@2oYJ>8B?OeiW1aev+kly`1>cMDr2FbA#;4=Ofl9{_tky7NKe(HRQNl z?Z;dg?~CaiS*JyeHIinlSc?a#b3gltf%KO_9Kz%94hyLqSTDlxsWM)+gAX`z=9RVS zHa-FbA4q3z5K{CKeW2c9#=Xba4<7lV1?I+|aCSDBV#Q#|9uR2R!yFwoQN?I?@}e*A z3)X$XVR<_Qh2eAJg;_wWPUfJy43{E&-qR+m}B}5?m2I*Lfs5Tmo;-yfqA7} zDP|n&e{}ggN$j*+jY<#O>_S)`AGVsLim*TmCdCzc+a=}2x28S%?9AL<+(+8vaFwpX zL(kzV*UeRg6;c?!J7`T0@FV<|b_3$1MC@GR>)Ne{j~k!(uPf)m{dW!l)JdNYGDFtz zP=N=^DQ&@Oq#B^C^k6|0o+~k70;u3*BjJ&X%&2Ou%lK=t0Eg+-&vebI2s4iv(O+$D zzw>w$(`;ohV$#8yicP92Txv_%JEfMJ!6Nm6 zhqAw+J?A$E-aAe!2x+zF!*tJwiwu&6K8LjzXrM% zcx?zg-s2(9xjoOhJn|ji{wpb;n&cZl1ps4YuYZInNpCuu96cN^jSmKv!~nH)7#l8TW4pVx%^iV7PCvGE?MXTUz>c(xQ9XJnhLr( z*)Zm2-8PNLz^K|_rvKE!RbPc@gc>C(WDWrbh0su==|DDNGWTtBN7<|JV)Mb7o}WDx zHF!d=Leq@RTRT7g-e|h>%(ns}D0>EL1g}F|J5(Khz%-u=rB|*e-IpDC@CoPhd2DfT9#1}zRJp}J6eh<6`|RwBB?`RFgt9hg?~jh$FqbC U&fydJzsa+|098~JNt+J<0Fb&jQUCw| literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/advlist/plugin.js b/public/assets/tinymce/plugins/advlist/plugin.js index a4a71735..0d738345 120000 --- a/public/assets/tinymce/plugins/advlist/plugin.js +++ b/public/assets/tinymce/plugins/advlist/plugin.js @@ -1 +1 @@ -plugin-ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa.js \ No newline at end of file +plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/advlist/plugin.js.gz b/public/assets/tinymce/plugins/advlist/plugin.js.gz index a2b2e203..8aaf8376 120000 --- a/public/assets/tinymce/plugins/advlist/plugin.js.gz +++ b/public/assets/tinymce/plugins/advlist/plugin.js.gz @@ -1 +1 @@ -plugin-ef397712609916ade784f8fc3c28a07a9cafc3b57ecacc141113695f60a9dffa.js.gz \ No newline at end of file +plugin-42acf5e1817426b24030173c7f0eeba2dfd712642b6d238077b6ec45e6eb6f0b.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js b/public/assets/tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js new file mode 100644 index 00000000..4968e7c6 --- /dev/null +++ b/public/assets/tinymce/plugins/anchor/plugin-5813d5d177e78e9541dad6097f211b74900d1773d16a75e189a16bebd34bdf67.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";function e(o){return function(t){for(var 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 AZ2$lO literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/autolink/plugin.js b/public/assets/tinymce/plugins/autolink/plugin.js index e24b9e6c..dc494e37 120000 --- a/public/assets/tinymce/plugins/autolink/plugin.js +++ b/public/assets/tinymce/plugins/autolink/plugin.js @@ -1 +1 @@ -plugin-fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef.js \ No newline at end of file +plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/autolink/plugin.js.gz b/public/assets/tinymce/plugins/autolink/plugin.js.gz index dd34290e..62357cc0 120000 --- a/public/assets/tinymce/plugins/autolink/plugin.js.gz +++ b/public/assets/tinymce/plugins/autolink/plugin.js.gz @@ -1 +1 @@ -plugin-fdeb5aa4fa0c4386819034884d9cd9ab319c359b2121a5ab3541fc3f25d15eef.js.gz \ No newline at end of file +plugin-e1929492b229de8b11169a48818bc77785d6e348ab85c722e3be4c0492a4584b.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js b/public/assets/tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js new file mode 100644 index 00000000..fed611be --- /dev/null +++ b/public/assets/tinymce/plugins/autoresize/plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";function d(e,t){var n=e.getBody();n&&(n.style.overflowY=t?"":"hidden",t||(n.scrollTop=0))}function h(e,t,n,i){var o=parseInt(e.getStyle(t,n,i),10);return isNaN(o)?0:o}var i=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),v=tinymce.util.Tools.resolve("tinymce.Env"),r=tinymce.util.Tools.resolve("tinymce.util.Delay"),p=function(e){return e.fire("ResizeEditor")},y=function(e){return e.getParam("min_height",e.getElement().offsetHeight,"number")},z=function(e){return e.getParam("max_height",0,"number")},n=function(e){return e.getParam("autoresize_overflow_padding",1,"number")},b=function(e){return e.getParam("autoresize_bottom_margin",50,"number")},o=function(e){return e.getParam("autoresize_on_init",!0,"boolean")},u=function(e,t,n,i,o){r.setEditorTimeout(e,function(){C(e,t),n--?u(e,t,n,i,o):o&&o()},i)},C=function(e,t){var n,i,o,r=e.dom,u=e.getDoc();if(u)if(function(e){return e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()}(e))d(e,!0);else{var s=u.documentElement,a=b(e);i=y(e);var f=h(r,s,"margin-top",!0),c=h(r,s,"margin-bottom",!0);(o=s.offsetHeight+f+c+a)<0&&(o=0);var g=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;o+g>y(e)&&(i=o+g);var l=z(e);if(l&&l?ZQ`H(4#LgZJ8}(alXjPCEs5GNKa;zOkA}cO|Y;L(fNJ(*{GC zZIb}H*}{8FsW;JWAAXOqLHMy}4nKEIQK4m6J`LlYvOKy?5scRB2L4eYb!x1__JzZxmF3ouS;6CD!d-6tYA&)eIu$!%s2A z{T6eyYpH)`DH@DBrf~O2w7Xgqh1Bzeo$Nx*egkS|yf@WdB`o$SVP|_Wncs;?-$^Yo zs{@3XVXr{wfYIz=bVO$cu{f5mYsIasz%)pAwnMjRoHwS2!}DgxZfphvlOn3b|LGob zKb%1gnFG8q75a|BzBV~dsw~rn;>UMWsv}PwFB_$BPyukRzjw=}d%HbgAP7RkZaBcn z1mz$G;j#wZ=S|>BPZ=h%8R|}CwhmuGtIQUuWsW6X?T6mfp?H+#&jekIqHL0y%dCEy|@vjurkH?mb?;q$APNL{vU}AnpE4pn^wHWE%fh)m>}y;pSu%n zfiHx6i%oL@4bY>4NR!?k7qa;zVU_NR(94x60Q1ABRxtY_{a~O&FFO8)J?XLyI%w*r zW$GC+&vX2hbQ80~`w%~5s6!_{P_+G6b-O}t;ll>75i6FMYXa|EIB-8{gb~?hh zYxM2?89RZOG(_04ZjX$oEzZjRU<1eerugy;UEl`I;R4rA7ucS!_&VTaS9{t{4)&hG z2(!Dhc8no1H1yWv!!mb)4Ifte+L{`yU#CfLLGdZy(durq!1e>+QY)lz*F>Mm6sJ*i Zd(833fu0n&Hp1WJ#s3Ix!Ksu9006WeK7IfI literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/autoresize/plugin.js b/public/assets/tinymce/plugins/autoresize/plugin.js index 8826b2f2..644469da 120000 --- a/public/assets/tinymce/plugins/autoresize/plugin.js +++ b/public/assets/tinymce/plugins/autoresize/plugin.js @@ -1 +1 @@ -plugin-c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626.js \ No newline at end of file +plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/autoresize/plugin.js.gz b/public/assets/tinymce/plugins/autoresize/plugin.js.gz index ff65d0c9..ce938ed2 120000 --- a/public/assets/tinymce/plugins/autoresize/plugin.js.gz +++ b/public/assets/tinymce/plugins/autoresize/plugin.js.gz @@ -1 +1 @@ -plugin-c1f0773e27d6ea0be494bdf48c2cad414f7234a19e7e93827e652645ef2eb626.js.gz \ No newline at end of file +plugin-68dfcd9bced9f367c16ed046f2b37e5929ed4eb7e111a233084f3f6c90e9ace6.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js b/public/assets/tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js new file mode 100644 index 00000000..a5cdfcff --- /dev/null +++ b/public/assets/tinymce/plugins/autosave/plugin-82beeb6b5121d1139b20b074fada63b769a06c2f4acf926db87f66ff359c57e1.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(n){"use strict";function r(t,e){var n=t||e,r=/^(\d+)([ms]?)$/.exec(""+n);return(r[2]?{s:1e3,m:6e4}[r[2]]:1)*parseInt(n,10)}function o(t){var e=t.getParam("autosave_prefix","tinymce-autosave-{path}{query}{hash}-{id}-");return e=(e=(e=(e=e.replace(/\{path\}/g,n.document.location.pathname)).replace(/\{query\}/g,n.document.location.search)).replace(/\{hash\}/g,n.document.location.hash)).replace(/\{id\}/g,t.id)}function a(t,e){var n=t.settings.forced_root_block;return""===(e=d.trim(void 0===e?t.getBody().innerHTML:e))||new RegExp("^<"+n+"[^>]*>((\xa0| |[ \t]|]*>)+?|)|
    $","i").test(e)}function i(t){var e=parseInt(v.getItem(o(t)+"time"),10)||0;return!((new Date).getTime()-e>function(t){return r(t.settings.autosave_retention,"20m")}(t))||(g(t,!1),!1)}function u(t){var e=o(t);!a(t)&&t.isDirty()&&(v.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),v.setItem(e+"time",(new Date).getTime().toString()),function(t){t.fire("StoreDraft")}(t))}function s(t){var e=o(t);i(t)&&(t.setContent(v.getItem(e+"draft"),{format:"raw"}),function(t){t.fire("RestoreDraft")}(t))}function c(t,e){var n=function(t){return r(t.settings.autosave_interval,"30s")}(t);e.get()||(m.setInterval(function(){t.removed||u(t)},n),e.set(!0))}function f(t){t.undoManager.transact(function(){s(t),g(t)}),t.focus()}var l=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return l(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),m=tinymce.util.Tools.resolve("tinymce.util.Delay"),v=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),d=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=function(t,e){var n=o(t);v.removeItem(n+"draft"),v.removeItem(n+"time"),!1!==e&&function(t){t.fire("RemoveDraft")}(t)};function y(r){for(var o=[],t=1;toc*p+v`73fxKB#P?MZC0xhK$?^xgmED zE~QFTEWr5WlMDm$E=fqKWrzj?dIeG7(6=H4X&@rGj6f5+1akZPms_GV;UrXP3OW=# zAxWiIVtzwmsbl~e1A%?CM99)Wrq$mNTB4P*WP!>x80Gktax0YF8+z`;ly;ZaW@gmy zuh;9qVp2hvs66T;%pt#nHfUu;-Ub)JkkE_4#h^EM)4O=fP~3mjS>!TweyC(yFGt_T zY7ts*+z5!K)(5s-aZTjJ?snkoN&g4EkGhObQ!~3}uloT!LP$NYE7@3s&9$U@dNI4+ zn$Zy6`040Z_@$V-quFT4&NHqJe3F(*e>h;p-j$-Zas(3_#9+U0%~R^}+$zIYFwZnB z#G~hXF3~iEUL)ykGj5l~_TL=zrr0jISr)ymh>D)q1cWwe^MgP`mhcd0|Gq@t7ya0m zL8QVw1!;psg;n*PQ1TQQYePymKgAf}I$RzjTtq(wIN`Cnh)QJ}h^SQ_e$)x{W3djg z36LxyL~}=@`2$-0r%u`PCKH!#6ktzNx>6z{13ZH3vbyh8w4p2zQiA^D?(^*kv)t_@ ztjSl1KR#yE`*DdK?RwK6SF`ggO79=}V0R`TOg7$4$-SNJE+2FyWZml>yX=?hSMK=g zHMU83EU;iKg;o~g(BwT2RxX}T7Erte)0QjZmgKnFC&x^{-l{T;&04`I5P#vQCaJ3GUcm>Z!j zR_^Q!<2H5N(DfqC7uNI3+I~>d`J&tEB9A=H*Pbuc99DR2Mx8;yn12K>bM{Z=7+CcU zJ1Ap{n0B@{SO^W&`(~Afo6>!i)FBP?Bn?q!QI)3&@=*PK7R*12yg2RmEB5xMp2Id< zU)&>sA?X!QeDBS`R5r)p;-jupX<4vZh3<{Ih%}@MhxKmf8dvy|`QVgkXV4C6QH75~ zTz%$}$Dr|UaA|mG+vZ%={MZ>{*v|#tSVLLiQb~?d+1te~HF?RRzMwU4w;22ge2it( zhN42@ z9iYX|;;_{=R5M3$>RhYIbcU54j_oDaaXFn$kbsQsa%{U@rlz(xoK5z!shu@jrPaH} znswG-G8n^iYk=156xz06Hm=hTLM3q}xGFSvB;Z+=Y^cnW1Swq{h@9c>Jlv(@?2&3W z!tjR#BH9tS+1dCMQBNrr4T%FZ)|xA%ebq_3u-HETIe`(sSiIN(65W;H=0!yM7zs4A z=lZyFl$#BB6dj%n-qGBu=3qi`(2q}64%)WM61)d&EBq-F#iJ9(#!&z~T+*9rL_L|3 zS$QoF)6K1qr)R;TEQs&GlNEDfaGrb`ar4jop^SB&*TLfCE2?Slo>S$ROK`DJ?=O{; zC4%rR>#z|Cmt4m9p5z+H28AZC|5jlxqZ^WNxF~z=G$A z%fL-y7v^`K(.*?)<\/a>/gi,"[url=$1]$2[/url]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),o(/(.*?)<\/font>/gi,"$1"),o(//gi,"[img]$1[/img]"),o(/(.*?)<\/span>/gi,"[code]$1[/code]"),o(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),o(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),o(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),o(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),o(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),o(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),o(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),o(/<\/(strong|b)>/gi,"[/b]"),o(/<(strong|b)>/gi,"[b]"),o(/<\/(em|i)>/gi,"[/i]"),o(/<(em|i)>/gi,"[i]"),o(/<\/u>/gi,"[/u]"),o(/(.*?)<\/span>/gi,"[u]$1[/u]"),o(//gi,"[u]"),o(/]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/
    /gi,"\n"),o(//gi,"\n"),o(/
    /gi,"\n"),o(/

    /gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),t},i=function(t){t=e.trim(t);function o(o,e){t=t.replace(o,e)}return o(/\n/gi,"
    "),o(/\[b\]/gi,""),o(/\[\/b\]/gi,""),o(/\[i\]/gi,""),o(/\[\/i\]/gi,""),o(/\[u\]/gi,""),o(/\[\/u\]/gi,""),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'
    $2'),o(/\[url\](.*?)\[\/url\]/gi,'$1'),o(/\[img\](.*?)\[\/img\]/gi,''),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),o(/\[code\](.*?)\[\/code\]/gi,'$1 '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),t};!function n(){o.add("bbcode",function(o){o.on("BeforeSetContent",function(o){o.content=i(o.content)}),o.on("PostProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=t(o.content))})})}()}(); diff --git a/public/assets/tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js.gz b/public/assets/tinymce/plugins/bbcode/plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..5d239e3a396a1c4c55b01dcb5ef09192aa032bea GIT binary patch literal 996 zcmVr-Mvx=c@qRr zPfxzWLHRW0#Wp~iX8r|2qRI{V;LrUTap%+d^m_XKdj7#fIJo%bp~$JO<9gqn0!vFJ z7*)>VF&2ccv|vWTFBD7td(KnoIbDv${V#T)+;tRh}RZ=!mx%1abBsjhb0ejjw=<_&7d&jhI}-Fi_oc+ zbyhuySCT(^9m8|+mQ2TyW?W15AKaYsq!TJF-EKP?C_b8%ILmejN7?iwDU3wXGg6%PQFLuI8XX&9;M)0n zNxYJP(^i77prl2E?1j}7R#Vzx)}&W%(816~Qt(Y(Z-H`Q?n2z;=Jril4sUF#YCP3s z)ZsFaq@4a^hPwH>j>etIs9iNlmAy_vB1pB{!n}?RgnEI4?bl@vUHmdn(P9P-vd_-_YBIcO~J#pMKL`~!6wm1v*zF|Rr&Vfu!M$Zq7_r0^u*@X9?j|BXl$WF z)?LeOozKm=VLh9@VV71VWEQi&G8!=x8d7V{kRdsBT+|13;+N~I_S*+ literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/bbcode/plugin.js b/public/assets/tinymce/plugins/bbcode/plugin.js index 494858f4..9fdf7510 120000 --- a/public/assets/tinymce/plugins/bbcode/plugin.js +++ b/public/assets/tinymce/plugins/bbcode/plugin.js @@ -1 +1 @@ -plugin-0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3.js \ No newline at end of file +plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/bbcode/plugin.js.gz b/public/assets/tinymce/plugins/bbcode/plugin.js.gz index 10a149ee..f639ea44 120000 --- a/public/assets/tinymce/plugins/bbcode/plugin.js.gz +++ b/public/assets/tinymce/plugins/bbcode/plugin.js.gz @@ -1 +1 @@ -plugin-0544dd7c8664dd856f771724a1816c426b2bf4ccd010f7f0f5da7070946773f3.js.gz \ No newline at end of file +plugin-fdf51bdb42a0d91628dfb1cc321e05262c69310dac0cd2ffe46ffc03f0203bd9.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js b/public/assets/tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js new file mode 100644 index 00000000..01ae8be8 --- /dev/null +++ b/public/assets/tinymce/plugins/charmap/plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(c){"use strict";function n(){}function i(n){return function(){return n}}function e(){return m}var r,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(n,e){return n.fire("insertCustomChar",{chr:e})},u=function(n,e){var r=a(n,e).chr;n.execCommand("mceInsertContent",!1,r)},o=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(n){return n.settings.charmap},l=function(n){return n.settings.charmap_append},f=i(!1),g=i(!0),m=(r={fold:function(n,e){return n()},is:f,isSome:f,isNone:g,getOr:p,getOrThunk:d,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:p,orThunk:d,map:e,each:n,bind:e,exists:f,forall:g,filter:e,equals:h,equals_:h,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(r),r);function h(n){return n.isNone()}function d(n){return n()}function p(n){return n}function y(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function w(n,e){for(var r=n.length,t=new Array(r),a=0;a|Kh@lT4Q@Y4-ax;d#O5UYXCi^wf%b@BjAc zy(gr{yhNlq@gVMd!Js$j9rccn1}7oV zuYY>6DD#B)z$VXr3EqX0X`=k|3gP8J_`IvX(jX6?C0C`)y?Sm9$#>02-hkJ;2PQok zsVPagPIz3ZG>dP9$ch+d7TE(2{0jFeE0<~hf#qz;r5{FYS~JQc-tdYSsl>DtrjY8g zER8JbvNKhSF=hHA#;Ef==8rtNgl$lpEWn;&jW@d}`*Q>T#WowB&v(&cng%cWVYHmMIQ&L_)g$mMkkKEBoVL_@%^!l1N zJ0L&9+4Ci2@JZkxB#EzQ6qNBoa{i6KeA)U8WC(X?Vq?`>F=JI&yT;F5yo=blhz9%= z@crn@4}#K#w&!#@%|nCs>DxaiALmo`wBcgm<>wYBv>N_&3Y7wFlNjko2^t5%KUKf4 zK{ovUJ&zNSBNdd167uCsU(fJ~nTv>Xw&vj*pK0u*&BWOD-{NAX{E$sy&1b`7OIUSNJpKK^n1eXU(k| z^0QV%x$97IH}Log;;a_r-ZkP;{{@jjQ1eH) z0}pkLxNLGE%+{(wRtDx)7&p44p`efz^)mlKMx;14DREy%N!snIRJp8D<-(>)<)%v2 zq)O#vI@Qf_iV|C1C$?NCwgbE`15yK`>6GUV(CT$kAg@v&uTtQlI)aIB*krx?gH$Np zT)2n!3m78MJ{kJED#;!!S!togtkUm~$~M*|SRC>%tV@)K@TuK-z1q>m^qC}>Tt<|m zNm(h@2l?A{h`fS-byaz@p1`i48C_4G0-LMC=#f5ZuMMNG({5HQsLzT%@4+`^v5Ib{ z!K2NiBoD%(`G^E8p+CduYU+PML*czO!uZj*R<$>o<4}`Q0DX?67$C7cQv#e^Mbrtf z1S?%k9>~&n;kj}7j0PjgC^MT)Z4~q9;5rdGnCNO3)^@h>{3c+xy}P(!G;NYa2NPEC z2e1tx_@o)iYve)E6|HfTvGT}j=wFsn@;rI+-SM}#$ET4$7g+|?igcO#chPPCbP)My zgH;U~9iI*(pO;cNgN`GABj5@S=p^!=kZBtLW+j%dL+oT=h#eimfoy_(L+-+ej4Z$L z)DZw+uv^glmA8;APh1qV%2LT(&{^cKQ*1#T&?xeA))_X2TG*W^7kJu>d|7U=C2(N< z$ltcaB(qWNDOUU|clnU1<|1FZAjp27Zd?dNR^?Kr_bw1Z&#_pmbxRz`js6{dwTHG9 zo2}w$JrkKl8U%F5st=}wbh!1)rvI==?9S#=WgRV~{>mmk&aleb8zQJ43%HGo->~lQD(k;vF z3{n6rUbkm?$Rki!p_%9Y9SVev&>Q}!I?>su)lBN$bsbn_e94!nRb28W0!PCUmJcgB z=N+>QhCOl%=}`zYX6Tb;)@kAf_UM>E^Ermig)*}TShyK#0Jq=ApoV6P>mgpo!BAR0 z1Dc(e3VZ0+-hx*%hM-z-WUe{EQv@w9OpZ9y2;FrwGJwhkc34WbSv89`AR@32;s!)` zQ5=0k-giv+k5VYTw=X(|gaEK)fhr8OGQLnp8}xes8_vjl(yOOv`~Tl_ z`V>?|-m8Z$OS1Ud*r7jywq`944;T&lr;4SJT)Txi!nIHq3_`h!9J zQDZr=JsKaTG@u-(Y5Zu=sTK%}rdF(3Ys#7^s0<6$MvO+ip*umKoKyFMd}GlkotfPc zgFe(lgwI*AvH+?)>l)CfJhf(Ue;XxKX~YAUSxTY#qYBoiTs@QG9<*mn8W4?8L%N6(5*daaxgtWu0U(?7?vLRtQ-v6X@TKO^3Q%DVUmN*2-AL{D?{TM`>2r zz>kMC60K>fo-Bm&3CY6sxugM-hZQN(GIg8AZ_lXQVh<|CV+x8qdusdj8Lc+U)}m0| zkmyla+=G%Q&fz|!YfVJQ0wo@*L<3vtSoJ1uu!O7=JjXqR2K%}$FRtScjUp#9!xNdj}3$+D6IxE zG>|4q81RV!H@RVaY9Q_OG(Iy>sq5KH7(Rm&JGjY;{qcx8y(L4c;@-uTfx&E-#2if_ zHV>wCg7aOuLJ!FCu3Vu96j@h$LJz3ty6TEJpf2aCCCh+T^s8SktIx!jRk~28@TD#7$Uq!v#|F}omimV;UD@;|=S$mOlmLHoDe6A| zx9-#vn)+L3DnK`Xzy9^3`GPfAOW47Qfi%KWC&~^8duG6mX$K<%X`6O1Hqfru+v$#I zl&ov}GBfNLnkF5ur={U7p(zpYme5oR_`cA`CkEW{dJA=BfzoN4$C-gRJVpl6|RMCbjjVB>^RO(UO2NyV#e2a=B;|J2jBDOv4dD9iP_>T#p|+ zDC`3N33CX865XRYow2Hr3propbk?49pj0|)(H3Q6ZAe?}r1}jx zHrAe}S`cl|rZM@f&yx1`&nHyN8TOOTVbfS|(^L2OX-KIbd$P=<&deQ4{l66uF|ZQi zzC915{*$NRrX(v0Z)3ou7JA?%>_FWmXu7gqNGZ1aqEh!nJ74PH3cBGDTTShRny7NK z4<6cG@IK~*cD37lA5rbn&F;CuoRa$^8_AR{(dL_DevLReb)~X(16ApoTd+C#lysAyCS_(e=A$t=E}c@fx^*1~+8hZ_GrIaT z&~bGh(gL4Vw!==aB5+n8oz%c_uV;^cx+g_5xaYk&;lZGRo%u(jPWAb!_(rFtHr4=` zWf@C%2Zj*S%pcma^@n&6=KD8IMx{IZVZMtKY~v2EpDVY7IccgVRqM}_Y{2X zKy+uXR%zaX4JngK;ce5oTG2a&qu-%mbuvhex`S?^Y-k)Qab#@T94z&!vo1pFMKHKK zx}vcc9sOT;b;(j)cU)xcUH$Aw7dFk9UAS{@StfiJeQd6e>RYzwC0Fzo=7W3BSkwDP zx2=(VH-k~F%e0cNl*8R_7kz2nR2_QPBX{<${k&m2;SmC*eLqJRs!67=QTK%T5`duQ z_x9jD*zH}UraV^Sz1VVj$qEcV-@Auz-~I1h!b`gB=lTMkp7ZPi*Q70zzi??{tQGUc zi~H(91KseE)h@-HE}+|zVaE6G!F|9FfcK!W&yC}cy zLv_rP`o@v2FvDmY$O9hotoWmv=m`%jEBWN0s300fDSYS0=p8+pdN=hq^cn#*A^POp z$47^~;PyFVGoGO+BYcyUAJHZ0#Mh4%{75_cI}}3$O+=R2(-MP19WKgD75>h7D4@Vh zh0npix4!1)lh&B7LV3W*nATG+VttF{;?#kjq4j+y3MY_Dq(p73p>F> z*cTA)<;x(6QDd0AL5&fmf{KxujFqIPCQ4|u*cVZEW%`6VTipln% zZ&?1uLyQ;O-wi>Eqgknx$kFXpzOPrY@_XdNf`bo5u77DhHWF>5e44!I?d~EvlZAR@ zipjIJ#KiZb%Ddj0G~v^mHIZLvAv;el>foZsQd&g#O9?OIvCb1=l*d{Q%D^CU!)7oh zig||)qqRl$%J~*UKGJKfD2*%cqRfQJ2WRpsjNZL`*`BdO#B9?X-JpHx8Kd{f0};jx zk(5R74n%+NRD?Wc^SS$2^Ycnm`gZhk^KOtB1M^r2Px^0-W6 zbCD^ZNP@rUg$?|q;{2?$s(p!i)Lh9%3hY$6X?)ee?XQ`We7dhvT}8>eqCKHL@VtBn z|NB#7X{XzhDURd+r&zo5x_)}UVxl6+9EtYB{hNN~V(9;_S1tMgP%~0RjOcWHD98|id3AskBRA7S{|>`xlIr>S=Z!`y0-5C4NOFY=Rf@~`t^h- HwJrbvL*EBU literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/charmap/plugin.js b/public/assets/tinymce/plugins/charmap/plugin.js index 41a5cc4b..5c22379a 120000 --- a/public/assets/tinymce/plugins/charmap/plugin.js +++ b/public/assets/tinymce/plugins/charmap/plugin.js @@ -1 +1 @@ -plugin-ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed.js \ No newline at end of file +plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/charmap/plugin.js.gz b/public/assets/tinymce/plugins/charmap/plugin.js.gz index aa46d714..16298a7a 120000 --- a/public/assets/tinymce/plugins/charmap/plugin.js.gz +++ b/public/assets/tinymce/plugins/charmap/plugin.js.gz @@ -1 +1 @@ -plugin-ee26f2d7ff72a1d2967d9e57692728b1f31b6c882fdd9245e6288ede97ab7aed.js.gz \ No newline at end of file +plugin-6bfd9085d12b20d580c15b0b238479e9943f1182617bfefa6e36e3d99d81dbfa.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js b/public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js new file mode 100644 index 00000000..f3d9af60 --- /dev/null +++ b/public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e,n){e.focus(),e.undoManager.transact(function(){e.setContent(n)}),e.selection.setCursorLocation(),e.nodeChanged()},o=function(e){return e.getContent({source_view:!0})},n=function(n){var e=o(n);n.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:e},onSubmit:function(e){t(n,e.getData().code),e.close()}})},c=function(e){e.addCommand("mceCodeEditor",function(){n(e)})},i=function(e){e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:function(){return n(e)}}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:function(){return n(e)}})};!function u(){e.add("code",function(e){return c(e),i(e),{}})}()}(); diff --git a/public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js.gz b/public/assets/tinymce/plugins/code/plugin-ba25e82bbc252b9bf4cc8e037de0c9d15fd538ecf4d1352e1576e7803f28402f.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4f084bcb084080e466f99a8de20fdd4f3817c53e GIT binary patch literal 647 zcmV;20(ku&iwFR|^@&~r1C>)?tds&AKrdgrKW?&biXj@#Ny-Ok9YCZFkO8YZ9r>#LD1KtU#~P*0wU> zb8(AWikrF?5#@yg4{igc4D6-RfF4TGVF^yq8pQI;{Zd#bl+dh4r z1dtwRVUYkS#cUrq9%_jF*z26PZfUg|7~Dr&!eXtkf-=qaxjh-5^$w_WC_q-Py1loZ z)9`&`U|XC|_e{c95}$auyXEB^<<{_-w}(U97BKC}Pz^=$5Op|MB_z2wKY6QGuHxd! zmb;>-UCUdoLa3A65H!B{Hf|EUkaD1s996@$4jTK%eg4!DS$qX*g*wnj*jNR6kt~L4 zpO0AIJvD|7Sg$s4Kt9BE>rA8EF5LMsH)x2%^ih#2`Y^r#HV+@7MseyPzeFAl4A?Z2 z0UV6ypm|`+gMs=t*FmbXTyS6&mTAHv2^M`S4Oy4uC(j+gfoH<|;T439W$5hs&Odwh{$*WyjoEKVkld5D8!y55Ys1MF`3rT#T+aP>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c["boolean"]},{}],2:[function(e,n,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},{}],3:[function(e,t,n){(function(e){var n=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,E={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof O?new O(e.type,E.util.encode(e.content),e.alias):Array.isArray(e)?e.map(E.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(w instanceof O)){if(g&&b!=n.length-1){if(c.lastIndex=y,!(F=c.exec(e)))break;for(var v=F.index+(d&&F[1]?F[1].length:0),k=F.index+F[0].length,x=b,_=y,A=n.length;x"+t.content+""},!u.document)return u.addEventListener&&(E.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,r=n.code,a=n.immediateClose;u.postMessage(E.highlight(r,E.languages[t],t)),a&&u.close()},!1)),E;var e=E.util.currentScript();if(e&&(E.filename=e.src,e.hasAttribute("data-manual")&&(E.manual=!0)),!E.manual){var t=function(){E.manual||E.highlightAll()},r=document.readyState;"loading"===r||"interactive"===r&&e&&e.defer?document.addEventListener("DOMContentLoaded",t):window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,16)}return E}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});void 0!==t&&t.exports&&(t.exports=n),void 0!==e&&(e.Prism=n)}).call(this,void 0!==w?w:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,n,t){Prism.languages.cpp=Prism.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,"boolean":/\b(?:true|false)\b/}),Prism.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}})},{}],5:[function(e,n,t){Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i,operator:/>>=?|<<=?|[-=]>|([-+&|?])\1|~|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),Prism.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{"function":/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},{}],6:[function(e,n,t){!function(e){var n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+n.source+"|[^\n\r()]*)\\)","i"),inside:{"function":/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+n.source+")*?(?=\\s*\\{)"),string:{pattern:n,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var t=e.languages.markup;t&&(t.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:t.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},t.tag))}(Prism)},{}],7:[function(e,n,t){var r,a,i;r=Prism,a=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,i=/\b[A-Z](?:\w*[a-z]\w*)?\b/,r.languages.java=r.languages.extend("clike",{"class-name":[i,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:a,"function":[r.languages.clike["function"],{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),r.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),r.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})},{}],8:[function(e,n,t){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,"function":/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript},{}],9:[function(e,n,t){function b(e,n){return"___"+e.toUpperCase()+n+"___"}var y;y=Prism,Object.defineProperties(y.languages["markup-templating"]={},{buildPlaceholders:{value:function(r,a,e,i){if(r.language===a){var s=r.tokenStack=[];r.code=r.code.replace(e,function(e){if("function"==typeof i&&!i(e))return e;for(var n,t=s.length;-1!==r.code.indexOf(n=b(a,t));)++t;return s[t]=e,n}),r.grammar=y.languages.markup}}},tokenizePlaceholders:{value:function(d,g){if(d.language===g&&d.tokenStack){d.grammar=y.languages[g];var m=0,f=Object.keys(d.tokenStack);!function h(e){for(var n=0;n=f.length);n++){var t=e[n];if("string"==typeof t||t.content&&"string"==typeof t.content){var r=f[m],a=d.tokenStack[r],i="string"==typeof t?t:t.content,s=b(g,r),o=i.indexOf(s);if(-1/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,n){var t={};t["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[n]},t.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:t}};r["language-"+n]={pattern:/[\s\S]+/,inside:Prism.languages[n]};var a={};a[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",a)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup},{}],11:[function(e,n,t){!function(n){n.languages.php=n.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,"boolean":{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),n.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),n.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),n.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var e={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:n.languages.php};n.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:e}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:e}}}),delete n.languages.php.string,n.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){n.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}}),n.hooks.add("after-tokenize",function(e){n.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism)},{}],12:[function(e,n,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,"boolean":/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},{}],13:[function(e,n,t){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby["function"],e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[.+?]|\\.|[^/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{"function":/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:n}}],e.languages.rb=e.languages.ruby}(Prism)},{}],14:[function(e,n,t){var r=e("prismjs/components/prism-core");e("prismjs/components/prism-clike"),e("prismjs/components/prism-markup-templating"),e("prismjs/components/prism-c"),e("prismjs/components/prism-cpp"),e("prismjs/components/prism-csharp"),e("prismjs/components/prism-css"),e("prismjs/components/prism-java"),e("prismjs/components/prism-javascript"),e("prismjs/components/prism-markup"),e("prismjs/components/prism-php"),e("prismjs/components/prism-python"),e("prismjs/components/prism-ruby"),n.exports={boltExport:r}},{"prismjs/components/prism-c":1,"prismjs/components/prism-clike":2,"prismjs/components/prism-core":3,"prismjs/components/prism-cpp":4,"prismjs/components/prism-csharp":5,"prismjs/components/prism-css":6,"prismjs/components/prism-java":7,"prismjs/components/prism-javascript":8,"prismjs/components/prism-markup":10,"prismjs/components/prism-markup-templating":9,"prismjs/components/prism-php":11,"prismjs/components/prism-python":12,"prismjs/components/prism-ruby":13}]},{},[14])(14)});var a=window.Prism;window.Prism=e}(undefined,b,y,undefined);function v(e){var n=e.selection?e.selection.getNode():null;return f.isCodeSample(n)?g.some(n):g.none()}var k,x=y.exports.boltExport,_=function(e){return e.getParam("codesample_languages")},A=function(e){return e.getParam("codesample_global_prismjs",!1,"boolean")},F=function(e){return h.Prism&&A(e)?h.Prism:x},P=v,S=function(n,t,r){n.undoManager.transact(function(){var e=v(n);return r=m.DOM.encode(r),e.fold(function(){n.insertContent('

    '+r+"
    "),n.selection.select(n.$("#__new").removeAttr("id")[0])},function(e){n.dom.setAttrib(e,"class","language-"+t),e.innerHTML=r,F(n).highlightElement(e),n.selection.select(e)})})},j=function(e){return v(e).fold(function(){return""},function(e){return e.textContent})},$=function(e){var n=_(e);return n||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}]},C=function(e,t){return P(e).fold(function(){return t},function(e){var n=e.className.match(/language-(\w+)/);return n?n[1]:t})},E=(k="function",function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===k}),O=Array.prototype.slice,z=(E(Array.from)&&Array.from,function(t){var e=$(t),n=function(e){return 0===e.length?g.none():g.some(e[0])}(e).fold(function(){return""},function(e){return e.value}),r=C(t,n),a=j(t);t.windowManager.open({title:"Insert/Edit Code Sample",size:"large",body:{type:"panel",items:[{type:"selectbox",name:"language",label:"Language",items:e},{type:"textarea",name:"code",label:"Code view"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{language:r,code:a},onSubmit:function(e){var n=e.getData();S(t,n.language,n.code),e.close()}})}),N=function(n){n.addCommand("codesample",function(){var e=n.selection.getNode();n.selection.isCollapsed()||f.isCodeSample(e)?z(n):n.formatter.toggle("code")})},T=function(t){var a=t.$;t.on("PreProcess",function(e){a("pre[contenteditable=false]",e.node).filter(f.trimArg(f.isCodeSample)).each(function(e,n){var t=a(n),r=n.textContent;t.attr("class",a.trim(t.attr("class"))),t.removeAttr("contentEditable"),t.empty().append(a("").each(function(){this.textContent=r}))})}),t.on("SetContent",function(){var e=a("pre").filter(f.trimArg(f.isCodeSample)).filter(function(e,n){return"false"!==n.contentEditable});e.length&&t.undoManager.transact(function(){e.each(function(e,n){a(n).find("br").each(function(e,n){n.parentNode.replaceChild(t.getDoc().createTextNode("\n"),n)}),n.contentEditable="false",n.innerHTML=t.dom.encode(n.textContent),F(t).highlightElement(n),n.className=a.trim(n.className)})})})},B=function(t){t.ui.registry.addToggleButton("codesample",{icon:"code-sample",tooltip:"Insert/edit code sample",onAction:function(){return z(t)},onSetup:function(e){function n(){e.setActive(function(e){var n=e.selection.getStart();return e.dom.is(n,'pre[class*="language-"]')}(t))}return t.on("NodeChange",n),function(){return t.off("NodeChange",n)}}}),t.ui.registry.addMenuItem("codesample",{text:"Code sample...",icon:"code-sample",onAction:function(){return z(t)}})};!function M(){a.add("codesample",function(n){T(n),B(n),N(n),n.on("dblclick",function(e){f.isCodeSample(e.target)&&z(n)})})}()}(window); diff --git a/public/assets/tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js.gz b/public/assets/tinymce/plugins/codesample/plugin-fad78c1789a6a4bf85426f7a72cd18cae203ad95200edafe5d7f1aede3881a07.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..9d918d4a808d58101bbcda2c05ad77d1058db3ae GIT binary patch literal 11891 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 Qc{JO_e`9iRA0`3-0Q29r761SM literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/colorpicker/plugin.js b/public/assets/tinymce/plugins/colorpicker/plugin.js index b92d46a8..26cf2273 120000 --- a/public/assets/tinymce/plugins/colorpicker/plugin.js +++ b/public/assets/tinymce/plugins/colorpicker/plugin.js @@ -1 +1 @@ -plugin-c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852.js \ No newline at end of file +plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/colorpicker/plugin.js.gz b/public/assets/tinymce/plugins/colorpicker/plugin.js.gz index 4c181890..4e28b13b 120000 --- a/public/assets/tinymce/plugins/colorpicker/plugin.js.gz +++ b/public/assets/tinymce/plugins/colorpicker/plugin.js.gz @@ -1 +1 @@ -plugin-c093efc4d9494340323e91ae6eb1a471df1f447ce45eb4a7d97f5cad8909c852.js.gz \ No newline at end of file +plugin-557ef000efe53de7d8f70f20e55fa040317fc836b731b2983957cf70fa20e2d9.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js b/public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js new file mode 100644 index 00000000..9d2f87ac --- /dev/null +++ b/public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(n){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager");!function e(){o.add("contextmenu",function(){n.console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); diff --git a/public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js.gz b/public/assets/tinymce/plugins/contextmenu/plugin-dced209824953fe99c63b9bde1a0eef2cbd6456d85e1deac7b66b9d44e7b0440.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..18966108f52e11dc91d281a8904b2a6906461f88 GIT binary patch literal 370 zcmV-&0ge72iwFR|^@&~r17(mwYvV8wh41+lQ=hDm%4te34SQG$yDX&8L+D+VCyo|* zCXA%GA@sj@?6kQQd@=8P-`KC2&u1`)CqA4cbo&goH?R$Kf-U+zapW#wTEIW@7JkPF z6O}+Pp&YTbV|x=kQoN|Uhr3>`z$aN@{Szn!iwK=nOZCh8KDdT(YkxI3=9yMpOny3)%;DqYx>B7MX!eKH) zNI*QmTM6;99Z&Ol76fcVW?3kTPQPBT=c5j&dkXh(;v!#&;DtmJlO9FI^=$w5T~d}T$9A{wC8l^kN#1jKnafwNUO2CuzFe$SHcPcbW7i2Yv2sF) zQz3IX%b;M+t%$kP%X7zS6^?=e)DtA!Sl?wahyoI)6bUFtr{LVZzrS;&av~>|^Es$E zi*hHg^sLPd3awHBP&?rIn|3l`9W0dm17htcDYY|2<()Cg@oOIGOp3;cxjHhrYdfd-c=R&p*BW#YOSui;HO~ViSjE z?wXVsyU;3&HR;v@M^JaYZN5q>+_eH-D&aJ?&5YRYHT8Zv+CD|f0j7MD;XDRj>MZA> zlzG8%n`Qn4l+?2Oyqsm?VKuEPtS$T>;{FCYi2z-OQ* z_5+f4xs3lTsN0o12QkxWr$fP4My025UmmIaa`lywB(r&Oh~kt=wvUA?Hp=&r0->qk z3p*If1lY@0U(n1aFJJ4|FUi-J%xaGD=&9>&HVQMUgNP~ugA3o+*V+?hp1WI@2`?U*EDqo5dhhF&wU8n&ldl5&cz0dEw1> zg9jXG*;6W7c}I}>@^y>C37)%{VGhJ3OkI=l=+Te^pDKXAq0>3|q~J1e_ZXeGP$_t| ztGL^ZeAt$^1w~u1pPsc~Q-OxM2%n5Eaq)6#Di;f8Q6gq0dX<}eY~3rl0Hs&IMR^HS z8ypgXMXWZP_7NJl+VA1;dgr?Z6mK`x-DRcGzB!pr$DEykMW>^=TnbPF8JBak<&QE! z@{>YGnJ6&$*7#T6k^(NJ_GZj|-3|okPYWK5Kigrvf*EnIt-!O8++yyiqTFr00~}qDVFP`_gv*Y(7uBZI z=X%?%rQU#z*vdb%pvHr2lXtsdz_nf!0v*hueh1{*C|i^tEgnnB_r^X-uZ%E08gW$pJsVtvcfxm zvw8C?@VJ@TbpX3nWQJL=;{XoTT8tkjk=TTp)uhoAU>{iEDd$l2bLOhHNNsI^HJX>j zd4q;tN5-n^+TsZn=1f|#b}^dEd0_@s76PF41qYIJuHGvB0JF}7YUKu#U8%YaCGrxJUe zPzzy>J-L=f4-t1?k4NYh3q;r=(5j5JRGkj77KY9b1YAUOBnA>$sdpHpVuBxvQkk3$ zQ&eJ4oBIxx0_^CX{O5})%$tGrefqFlr#UOP)7gKpjGN=-y)Yc#zWWpg55v(QsAv0w zUf6q>1pV-KG(41yK7I^_;lbQs)ciWoR-{-d+(3zg1g{oE)0IJCS2C@>2C6V zJn9FN$?fp{!|iYqjz1kIi+*my&ky6^CKw09esD_Io*ItA-rfn>Gu1_1OLa?hT@SpQ zx*kbQy=hi-iHjZ7$nXDK1vgY)^+kphLX5OK+z}q`(mzT5C!G|gIXi5i9_ViRs9~!* zrgKv4N<4y>)a2Qdqs;IvHp5#}t;{52TVW1)*4@BI$L<;4yM}CvU*?> zmSH(pJr9$jXMK7n-jp1^L45XEgA63a1XUMac=)RMZf2(6YGpRI{}{m3a!j$#%Fv>H%I%K*8|F8+Q_cwO$w5l|>`{ExX%i0Lr5C8yR CY-N}L literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/directionality/plugin.js b/public/assets/tinymce/plugins/directionality/plugin.js index f7f93914..25cabc76 120000 --- a/public/assets/tinymce/plugins/directionality/plugin.js +++ b/public/assets/tinymce/plugins/directionality/plugin.js @@ -1 +1 @@ -plugin-791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171.js \ No newline at end of file +plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/directionality/plugin.js.gz b/public/assets/tinymce/plugins/directionality/plugin.js.gz index 578edcd7..3b5d7edc 120000 --- a/public/assets/tinymce/plugins/directionality/plugin.js.gz +++ b/public/assets/tinymce/plugins/directionality/plugin.js.gz @@ -1 +1 @@ -plugin-791be004aae5744b1dee31e7d6e85d1267991bcf4691e81911f88a8e3405a171.js.gz \ No newline at end of file +plugin-94e0469405b6476baf0a102f8cbab03a7150327ec44c006262948a2c07ebce08.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js b/public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js new file mode 100644 index 00000000..b843bfcf --- /dev/null +++ b/public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(l){"use strict";function n(){}function i(n){return function(){return n}}function t(){return a}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=i(!1),u=i(!0),a=(e={fold:function(n,t){return n()},is:c,isSome:c,isNone:u,getOr:f,getOrThunk:s,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:f,orThunk:s,map:t,each:n,bind:t,exists:c,forall:u,filter:t,equals:o,equals_:o,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(e),e);function o(n){return n.isNone()}function s(n){return n()}function f(n){return n}function m(n,t){return-1!==n.indexOf(t)}function g(n,t){return m(n.title.toLowerCase(),t)||function(n,t){for(var e=0,r=n.length;eCould not load emoticons

    "}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),a.focus(U),a.unblock()}))},B=function(n,t){function e(){return R(n,t)}n.ui.registry.addButton("emoticons",{tooltip:"Emoticons",icon:"emoji",onAction:e}),n.ui.registry.addMenuItem("emoticons",{text:"Emoticons...",icon:"emoji",onAction:e})};!function G(){r.add("emoticons",function(n,t){var e=F(n,t),r=q(n),o=h(n,e,r);B(n,o),function(r,o){r.ui.registry.addAutocompleter("emoticons",{ch:":",columns:"auto",minChars:2,fetch:function(t,e){return o.waitForLoad().then(function(){var n=o.listAll();return d(n,t,A.some(e))})},onAction:function(n,t,e){r.selection.setRng(t),r.insertContent(e),n.hide()}})}(n,o)})}()}(window); diff --git a/public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js.gz b/public/assets/tinymce/plugins/emoticons/plugin-a77d24481b6159e0f908cbf3623ace87ed6c6f9fedfbb7bcb6d1ae790c4bb0f7.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b7c3f898bf0574f6aa4301b199474f3a58a25bab GIT binary patch literal 2869 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 Te^nL;$G`j^bHh1j*c$)")},_=f,b=function(t,e){var n,i,l=f(e),r={};function o(t,e){return t.attr(e)||""}return r.fontface=a(t),r.fontsize=c(t),7===(n=l.firstChild).type&&(r.xml_pi=!0,(i=/encoding="([^"]+)"/.exec(n.value))&&(r.docencoding=i[1])),(n=l.getAll("#doctype")[0])&&(r.doctype=""),(n=l.getAll("title")[0])&&n.firstChild&&(r.title=n.firstChild.value),p.each(l.getAll("meta"),function(t){var e,n=t.attr("name"),i=t.attr("http-equiv");n?r[n.toLowerCase()]=t.attr("content"):"Content-Type"===i&&(e=/charset\s*=\s*(.*)\s*/gi.exec(t.attr("content")))&&(r.docencoding=e[1])}),(n=l.getAll("html")[0])&&(r.langcode=o(n,"lang")||o(n,"xml:lang")),r.stylesheets=[],p.each(l.getAll("link"),function(t){"stylesheet"===t.attr("rel")&&r.stylesheets.push(t.attr("href"))}),(n=l.getAll("body")[0])&&(r.langdir=o(n,"dir"),r.style=o(n,"style"),r.visited_color=o(n,"vlink"),r.link_color=o(n,"link"),r.active_color=o(n,"alink")),r},x=function(t,r,e){var o,n,i,a,l,c=t.dom;function s(t,e,n){t.attr(e,n||undefined)}function u(t){n.firstChild?n.insert(t,n.firstChild):n.append(t)}o=f(e),(n=o.getAll("head")[0])||(a=o.getAll("html")[0],n=new y("head",1),a.firstChild?a.insert(n,a.firstChild,!0):a.append(n)),a=o.firstChild,r.xml_pi?(l='version="1.0"',r.docencoding&&(l+=' encoding="'+r.docencoding+'"'),7!==a.type&&(a=new y("xml",7),o.insert(a,o.firstChild,!0)),a.value=l):a&&7===a.type&&a.remove(),a=o.getAll("#doctype")[0],r.doctype?(a||(a=new y("#doctype",10),r.xml_pi?o.insert(a,o.firstChild):u(a)),a.value=r.doctype.substring(9,r.doctype.length-1)):a&&a.remove(),a=null,p.each(o.getAll("meta"),function(t){"Content-Type"===t.attr("http-equiv")&&(a=t)}),r.docencoding?(a||((a=new y("meta",1)).attr("http-equiv","Content-Type"),a.shortEnded=!0,u(a)),a.attr("content","text/html; charset="+r.docencoding)):a&&a.remove(),a=o.getAll("title")[0],r.title?(a?a.empty():u(a=new y("title",1)),a.append(new y("#text",3)).value=r.title):a&&a.remove(),p.each("keywords,description,author,copyright,robots".split(","),function(t){var e,n,i=o.getAll("meta"),l=r[t];for(e=0;e"))},l=function(i,l){var r=b(i,l.get()),t=e(e({},{title:"",keywords:"",description:"",robots:"",author:"",docencoding:""}),r);i.windowManager.open({title:"Metadata and Document Properties",size:"normal",body:{type:"panel",items:[{name:"title",type:"input",label:"Title"},{name:"keywords",type:"input",label:"Keywords"},{name:"description",type:"input",label:"Description"},{name:"robots",type:"input",label:"Robots"},{name:"author",type:"input",label:"Author"},{name:"docencoding",type:"input",label:"Encoding"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:t,onSubmit:function(t){var e=t.getData(),n=x(i,p.extend(r,e),l.get());l.set(n),t.close()}})},k=function(t,e){t.addCommand("mceFullPageProperties",function(){l(t,e)})},C=function(t,e){return p.each(t,function(t){e=e.replace(t,function(t){return"\x3c!--mce:protected "+escape(t)+"--\x3e"})}),e},A=function(t){return t.replace(//g,function(t,e){return unescape(e)})},w=p.each,P=function(t){var e,n="",i="";if(r(t)){var l=o(t);n+='\n'}return n+=d(t),n+="\n\n\n",(e=u(t))&&(n+=""+e+"\n"),(e=o(t))&&(n+='\n'),(e=a(t))&&(i+="font-family: "+e+";"),(e=c(t))&&(i+="font-size: "+e+";"),(e=s(t))&&(i+="color: "+e+";"),n+="\n\n"},T=function(e,n,i){e.on("BeforeSetContent",function(t){!function(t,e,n,i){var l,r,o,a,c="",s=t.dom;if(!(i.selection||(o=C(t.settings.protect,i.content),"raw"===i.format&&e.get()||i.source_view&&v(t)))){0!==o.length||i.source_view||(o=p.trim(e.get())+"\n"+p.trim(o)+"\n"+p.trim(n.get())),-1!==(l=(o=o.replace(/<(\/?)BODY/gi,"<$1body")).indexOf("",l),e.set(g(o.substring(0,l+1))),-1===(r=o.indexOf("\n")),a=_(e.get()),w(a.getAll("style"),function(t){t.firstChild&&(c+=t.firstChild.value)});var u=a.getAll("body")[0];u&&s.setAttribs(t.getBody(),{style:u.attr("style")||"",dir:u.attr("dir")||"",vLink:u.attr("vlink")||"",link:u.attr("link")||"",aLink:u.attr("alink")||""}),s.remove("fullpage_styles");var d=t.getDoc().getElementsByTagName("head")[0];if(c)s.add(d,"style",{id:"fullpage_styles"}).appendChild(m.document.createTextNode(c));var f={};p.each(d.getElementsByTagName("link"),function(t){"stylesheet"===t.rel&&t.getAttribute("data-mce-fullpage")&&(f[t.href]=t)}),p.each(a.getAll("link"),function(t){var e=t.attr("href");if(!e)return!0;f[e]||"stylesheet"!==t.attr("rel")||s.add(d,"link",{rel:"stylesheet",text:"text/css",href:e,"data-mce-fullpage":"1"}),delete f[e]}),p.each(f,function(t){t.parentNode.removeChild(t)})}}(e,n,i,t)}),e.on("GetContent",function(t){!function(t,e,n,i){i.selection||i.source_view&&v(t)||(i.content=A(p.trim(e)+"\n"+p.trim(i.content)+"\n"+p.trim(n)))}(e,n.get(),i.get(),t)})},O=function(t){t.ui.registry.addButton("fullpage",{tooltip:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}}),t.ui.registry.addMenuItem("fullpage",{text:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}})};!function D(){t.add("fullpage",function(t){var e=i(""),n=i("");k(t,e),O(t),T(t,e,n)})}()}(window); diff --git a/public/assets/tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js.gz b/public/assets/tinymce/plugins/fullpage/plugin-625105761801bd73c48cd0815e29a330cc77fbd7b12eb18b2cd94240da12550d.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b13b96e926e02a38809340e16bc17f6dfdb3346f GIT binary patch literal 3049 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');return{name:"plugins",title:"Plugins",items:[{type:"htmlpanel",presets:"document",html:[(n=e,null==n?"":'
    '+function(t){var e=function(e){var t=F(e.plugins);return e.settings.forced_plugins===undefined?t:function(e,t){for(var n=[],o=0,a=e.length;o"+r(t,e)+""}),o=n.length,a=n.join("");return"

    "+U.translate(["Plugins installed ({0}):",o])+"

      "+a+"
    "}(n)+"
    "),(t=y(["Accessibility Checker","Advanced Code Editor","Advanced Tables","Case Change","Checklist","Tiny Comments","Tiny Drive","Enhanced Media Embed","Format Painter","Link Checker","Mentions","MoxieManager","Page Embed","Permanent Pen","PowerPaste","Spell Checker Pro"],function(e){return"
  • "+U.translate(e)+"
  • "}).join(""),'

    '+U.translate("Premium plugins:")+"

    ")].join("")}]}},N=tinymce.util.Tools.resolve("tinymce.EditorManager"),L=function(){var e,t,n='TinyMCE '+(e=N.majorVersion,t=N.minorVersion,0===e.indexOf("@")?"X.X.X":e+"."+t)+"";return{name:"versions",title:"Version",items:[{type:"htmlpanel",html:"

    "+U.translate(["You are using {0}",n])+"

    ",presets:"document"}]}},B=function(){return{name:"keyboardnav",title:"Keyboard Navigation",items:[{type:"htmlpanel",presets:"document",html:"

    Editor UI keyboard navigation

    \n\n

    Activating keyboard navigation

    \n\n

    The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

    \n
      \n
    • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
    • \n
    • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
    • \n
    • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
    • \n
    \n\n

    Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

    \n\n

    Moving between UI sections

    \n\n

    When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

    \n
      \n
    • the menubar
    • \n
    • each group of the toolbar
    • \n
    • the sidebar
    • \n
    • the element path in the footer
    • \n
    • the wordcount toggle button in the footer
    • \n
    • the branding link in the footer
    • \n
    \n\n

    Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

    \n\n

    Moving within UI sections

    \n\n

    Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

    \n
      \n
    • moving between menus in the menubar
    • \n
    • moving between buttons in a toolbar group
    • \n
    • moving between items in the element path
    • \n
    \n\n

    In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

    \n\n

    Executing buttons

    \n\n

    To execute a button, navigate the selection to the desired button and hit space or enter.

    \n\n

    Opening, navigating and closing menus

    \n\n

    When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

    \n\n

    To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

    \n\n

    Context toolbars and menus

    \n\n

    To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

    \n\n

    Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

    \n\n

    Dialog navigation

    \n\n

    There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

    \n\n

    When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

    \n\n

    When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

    "}]}};!function z(){t.add("help",function(e){var t=a({}),n=function(n){return{addTab:function(e){var t=n.get();t[e.name]=e,n.set(t)}}}(t),o=A(e,t);return s(e,o),i(e,o),e.shortcuts.add("Alt+0","Open help dialog","mceHelp"),n})}()}(); diff --git a/public/assets/tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js.gz b/public/assets/tinymce/plugins/help/plugin-f93ffd2af645fab6e52f2854c44c3a69f6b928602d702539510f5d5bd34937e3.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..327891b2463ed5ed50285bbb164d06eb97868e3a GIT binary patch literal 5126 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 oa{DKE*")})},t=function(n){n.ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}}),n.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}})};!function e(){n.add("hr",function(n){o(n),t(n)})}()}(); diff --git a/public/assets/tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js.gz b/public/assets/tinymce/plugins/hr/plugin-295ff876114acb13a99e76b0464ab8bb2f2dfe3c14be7d0c67aecf98758b57ab.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce2217889b6f582c943cbec5254e6e1734858261 GIT binary patch literal 435 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 Y=>yfvm%33i`agd4U&`-KcaReR06#S&xc~qF literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/importcss/plugin.js b/public/assets/tinymce/plugins/importcss/plugin.js index f66e94db..80d938ff 120000 --- a/public/assets/tinymce/plugins/importcss/plugin.js +++ b/public/assets/tinymce/plugins/importcss/plugin.js @@ -1 +1 @@ -plugin-a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5.js \ No newline at end of file +plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/importcss/plugin.js.gz b/public/assets/tinymce/plugins/importcss/plugin.js.gz index 5008b4e0..bf6011d3 120000 --- a/public/assets/tinymce/plugins/importcss/plugin.js.gz +++ b/public/assets/tinymce/plugins/importcss/plugin.js.gz @@ -1 +1 @@ -plugin-a38df489238119f87c879f0e1bdd66bd01b937e216cc6d89d1d383855eb6c3e5.js.gz \ No newline at end of file +plugin-4142fe3e134d63eee1f3c9ccec6711c7b7d2e8e9aaddcf873b3bd735d9412fb8.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js b/public/assets/tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js new file mode 100644 index 00000000..462ce572 --- /dev/null +++ b/public/assets/tinymce/plugins/insertdatetime/plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";function n(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))}function r(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])}function a(e,t){if((e=""+e).length'+n+"")}else e.insertContent(i(e,t))},g=i,y=function(e){e.addCommand("mceInsertDate",function(){p(e,t(e))}),e.addCommand("mceInsertTime",function(){p(e,o(e))})},M=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return S(t())}}},v=function(n){var t=u(n),r=S(c(n));n.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:function(e){return e===r.get()},fetch:function(e){e(M.map(t,function(e){return{type:"choiceitem",text:g(n,e),value:e}}))},onAction:function(){for(var e=[],t=0;t^7Z`(Ey{@!1~5->v5iu^M4i)<}O8)QjQcL8i{2#jE0 zq>HUVq6CU^YNYz_yQ3^yioGob1c~B3_waacmWwTKkp8s{Z`5&{Cw``~y9 zsFhhyjf2c$BQ;aOaH6K>9Co6K>h~Q)4-r0T3_MWAMCq!%?J7_|ekgcmS7@?p0`W7C z@igR#49Q7XWPUp6MT6cwda5PSueR9{-lLHB6?yQwOp<$$S~wlV_JBAcO}Q(D70xnc z*23wJ+;JBY?IE;B;k=gL*adcwo2=BuF=p1r%wkmG5{~i(p~s4P6E6FLuL)I zm2RXqSm&IAiAwUKZJw)KU0c==g&J(eS-AVsq=Bz0L{5yC+f}}05qNc?e4>m6A!%1N zg@zP8B<%memU@J^_rtCr%#uXr1qezoG)lS}&j7#S|BO{n`#PJF9jq}Z;Aef^KjXii z^;Mrw2Q>F97Aqup%)ZvGosQ|d3SxKLDFEZf<3W{Sz z)}Pc_SeL!h$!eX-oxQ1p9AubE^NywaV-mx;KOw6+tD4jF1tabox4?H>6#p6p)GjZZ7(%<83>jS*wBX)GnIN(Qco_9AwpP;V3uql!+X%083*U76t-Uzg?aF5C25BH9oG SwhekF@BRT)ii&`Y3;+Pl@}3L; literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/insertdatetime/plugin.js b/public/assets/tinymce/plugins/insertdatetime/plugin.js index 8d0f7473..897a8d4a 120000 --- a/public/assets/tinymce/plugins/insertdatetime/plugin.js +++ b/public/assets/tinymce/plugins/insertdatetime/plugin.js @@ -1 +1 @@ -plugin-d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6.js \ No newline at end of file +plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz b/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz index dee45f82..fd63db70 120000 --- a/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz +++ b/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz @@ -1 +1 @@ -plugin-d5ee2b364765beb61681de3cb2928f5ab2e61bc04dc7a7955f5331400f40fef6.js.gz \ No newline at end of file +plugin-269b0f1750fa2da3839983c7f94b2ab5b3e2ee12c429c50377c305e532eaef71.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js b/public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js new file mode 100644 index 00000000..d8b07d4f --- /dev/null +++ b/public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=function(e){return e.getParam("font_formats")},i=function(e){return e.getParam("fontsize_formats")},n=function(e,t){e.settings.fontsize_formats=t},l=function(e,t){e.settings.font_formats=t},s=function(e){return e.getParam("font_size_style_values","xx-small,x-small,small,medium,large,x-large,xx-large")},r=function(e,t){e.settings.inline_styles=t},o=function(e){!function(e){r(e,!1),i(e)||n(e,"8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7"),t(e)||l(e,"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats")}(e),e.on("PreInit",function(){return function(e){var t="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table",i=a.explode(s(e)),n=e.schema;e.formatter.register({alignleft:{selector:t,attributes:{align:"left"}},aligncenter:{selector:t,attributes:{align:"center"}},alignright:{selector:t,attributes:{align:"right"}},alignjustify:{selector:t,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",toggle:!1,attributes:{face:"%value"}},fontsize:{inline:"font",toggle:!1,attributes:{size:function(e){return String(a.inArray(i,e.value)+1)}}},forecolor:{inline:"font",attributes:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0}}),a.each("b,i,u,strike".split(","),function(e){n.addValidElements(e+"[*]")}),n.getElementRule("font")||n.addValidElements("font[face|size|color|style]"),a.each(t.split(","),function(e){var t=n.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})}(e)})};!function c(){e.add("legacyoutput",function(e){o(e)})}()}(); diff --git a/public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js.gz b/public/assets/tinymce/plugins/legacyoutput/plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a4ccde2ff58db2edb7d93736407ed13c6f5b966 GIT binary patch literal 1263 zcmVz6)oow(aqk4Yzm>yx#9&F8Z-VZ)cqbpT)H&_;-vxC z7)2l{z+G^|tBB6Da-Z6mp!}MN=K!qu0)3F`ftZVzkXUeNPhpd<#Z$Lt^84a_QTr_W z1A%o537_U%Hee~EcXxZX;!?8B*uE>sMN=`!O#!&ojorliVxBfmC@EA&6s*$^tlN2D zDx!A=F%!60t-LP!OYPDD864m+B!eLihh*>?hu37__m0TWuilWuH#q$4PcML_2Oq1P zOCaZ3>6Ewg3g^tfY|S$m9~->EDfe$y0$vFxGR`blb`P^n%vu5RR`Tqo6(dtW?~A)(Mkh2Uw?j$iZrv2iH9cdd1`$97twDwm2d^fxXS)l|#WhG9J6rLHiS!oa>0 zunCw-C=9CWCf;72^@BbU6;=y$kGw}^3KP_?(M2phxMpG9`7kjsZL$)a51HF8Fk%HL zm_MM#>XKvLr}K7vMB)mjxxba^Z8sTT;k)~^nXxato)JHtwyBC2ia~-`lwKG(Rl-r$ zt5aQm_3yE-RxYJAD+jC`vht9XuUUD-$~VmA%#|z`bJj?vC6j_VK9xYRi0}mNYN>OG zENY3dLSP=DyA>Zp(&je?6^mCPEKZ^&m!eP-W^S~!AhC99Gja^2jF>hK?5LF(Q7=Q+ zYZjJRtr7hrNGr7kg(mbPOc2^aJ~!5h+2Ti_PRzsbqUEFOWm_^vbV`|lO3!hMRfw+H zb_d&nR>jlXHCL3iC1(Ik-!uU9Pz6` zybe4Dy^(nBz9Q~j7~CV`tzSt(@Rbu%9ghHK#-C)z}I ziVdT{II8^Q|I)4Thb94@l@XmX!J6*qX<}XDD>a?Sc*|1y{lN!?hCM-ZTKjE?z=jqmaH=YnLB|0zMABCLf4&lb9I Zb<;28XrgXmk$=W7{sD}_z+0#b000{-Y!Uzf literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/legacyoutput/plugin.js b/public/assets/tinymce/plugins/legacyoutput/plugin.js index 5c726126..32ff9970 120000 --- a/public/assets/tinymce/plugins/legacyoutput/plugin.js +++ b/public/assets/tinymce/plugins/legacyoutput/plugin.js @@ -1 +1 @@ -plugin-0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f.js \ No newline at end of file +plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz b/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz index 337142ab..a3314c61 120000 --- a/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz +++ b/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz @@ -1 +1 @@ -plugin-0d4fbb538389190e226cd9a15f1ec105231d70215225cd418f38a601b0b0823f.js.gz \ No newline at end of file +plugin-8d203fe1a6762be0188edabe45332b8e3afa988533121e2b9345697db81d7942.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js b/public/assets/tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js new file mode 100644 index 00000000..9c47b6d5 --- /dev/null +++ b/public/assets/tinymce/plugins/link/plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(c){"use strict";function n(t){return function(n){return function(n){if(null===n)return"null";var t=typeof n;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===t}}function u(){}function i(n){return function(){return n}}function t(){return C}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.util.VK"),a=n("string"),f=n("array"),l=n("boolean"),s=n("function"),d=function(n){var t=n.getParam("link_assume_external_targets",!1);return l(t)&&t?1:!a(t)||"http"!==t&&"https"!==t?0:t},m=function(n){return n.getParam("link_context_toolbar",!1,"boolean")},h=function(n){return n.getParam("link_list")},p=function(n){return n.getParam("default_link_target")},g=function(n){return n.getParam("target_list",!0)},v=function(n){return n.getParam("rel_list",[],"array")},y=function(n){return n.getParam("link_class_list",[],"array")},w=function(n){return n.getParam("link_title",!0,"boolean")},k=function(n){return n.getParam("allow_unsafe_link_target",!1,"boolean")},x=function(n){return n.getParam("link_quicklink",!1,"boolean")},b=function(n){return n.getParam("link_default_protocol","http","string")},_=function(n){var t=c.document.createElement("a");t.target="_blank",t.href=n,t.rel="noreferrer noopener";var e=c.document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,c.window,0,0,0,0,0,!1,!1,!1,!1,0,null),function(n,t){c.document.body.appendChild(n),n.dispatchEvent(t),c.document.body.removeChild(n)}(t,e)},T=function(){return(T=Object.assign||function(n){for(var t,e=1,r=arguments.length;e]+>[^<]+<\/a>$/.test(n)||-1===n.indexOf("href=")))},sn=M,dn=function(n,t){return function(n){return n.replace(/\uFEFF/g,"")}(t?t.innerText||t.textContent:n.getContent({format:"text"}))},mn=U,hn=R,pn={sanitize:function(n){return V(B)(n)},sanitizeWith:V,createUi:function(t,e){return function(n){return{name:t,type:"selectbox",label:e,items:n}}},getValue:B},gn=function(n){function t(){return e}var e=n;return{get:t,set:function(n){e=n},clone:function(){return gn(t())}}},vn=function(n,r){function e(n,t){var e=function(n,t){return"link"===t?n.catalogs.link:"anchor"===t?n.catalogs.anchor:Q.none()}(r,t.name).getOr([]);return W(o.get(),t.name,e,n)}var o=gn(n.text);return{onChange:function(n,t){return"url"===t.name?function(n){if(o.get().length<=0){var t=n.url.meta.text!==undefined?n.url.meta.text:n.url.value,e=n.url.meta.title!==undefined?n.url.meta.title:"";return Q.some({text:t,title:e})}return Q.none()}(n()):I(["anchor","link"],t.name)?e(n(),t):("text"===t.name&&o.set(n().text),Q.none())}}},yn={},wn={exports:yn};H=undefined,$=yn,G=wn,J=undefined,function(n){"object"==typeof $&&void 0!==G?G.exports=n():"function"==typeof H&&H.amd?H([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).EphoxContactWrapper=n()}(function(){return function l(i,u,c){function a(t,n){if(!u[t]){if(!i[t]){var e="function"==typeof J&&J;if(!n&&e)return e(t,!0);if(f)return f(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var o=u[t]={exports:{}};i[t][0].call(o.exports,function(n){return a(i[t][1][n]||n)},o,o.exports,l,i,u,c)}return u[t].exports}for(var f="function"==typeof J&&J,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 UJyi|r!|~t#3!%@=#5P#~0Mr~S4gdfE literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/link/plugin.js b/public/assets/tinymce/plugins/link/plugin.js index 89b6f9c5..32436d18 120000 --- a/public/assets/tinymce/plugins/link/plugin.js +++ b/public/assets/tinymce/plugins/link/plugin.js @@ -1 +1 @@ -plugin-07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1.js \ No newline at end of file +plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/link/plugin.js.gz b/public/assets/tinymce/plugins/link/plugin.js.gz index dc69945d..6559ed54 120000 --- a/public/assets/tinymce/plugins/link/plugin.js.gz +++ b/public/assets/tinymce/plugins/link/plugin.js.gz @@ -1 +1 @@ -plugin-07dd2f058e9628d6203b3d72e064908934b3a2de0cc0b681cf5a6e356565e7b1.js.gz \ No newline at end of file +plugin-51ee54b2835d09e73e9b99159b1c6558f1c743b6dc964de404a1f83b147f02f0.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js b/public/assets/tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js new file mode 100644 index 00000000..0ddf5d0d --- /dev/null +++ b/public/assets/tinymce/plugins/lists/plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(r){"use strict";function e(){}function l(e){return function(){return e}}function t(t){return function(){for(var e=[],n=0;ne.length?ne(t,e,n):ee(t,e,n)},[]);return S(n).map(function(e){return e.list})}(e.contentDocument,n).toArray()}function de(e){var n=g(Zn.getSelectedListItems(e),Ln.fromDom);return A(N(n,t(re)),N(function(e){var n=Xe.call(e,0);return n.reverse(),n}(n),t(re)),function(e,n){return{start:e,end:n}})}function le(t,e,r){var n=function(e,n){var t=Ge(!1);return g(e,function(e){return{sourceList:e,entries:ot(0,n,t,e)}})}(e,de(t));p(n,function(e){!function(e,n){p(v(e,ie),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(n,e)})}(e.entries,r);var n=function(n,e){return y(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i=e.childNodes.length?t.data.length:0}:t.previousSibling&&Un(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&Un(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}}function ve(e,n){var t=g(Zn.getSelectedListRoots(e),Ln.fromDom),r=g(Zn.getSelectedDlItems(e),Ln.fromDom),o=!1;if(t.length||r.length){var i=e.selection.getBookmark();le(e,t,n),ge(e,n,r),e.selection.moveToBookmark(i),e.selection.setRng(st(e.selection.getRng())),e.nodeChanged(),o=!0}return o}function he(e){return ve(e,"Indent")}function Ne(e){return ve(e,"Outdent")}function ye(e){return ve(e,"Flatten")}function Se(e){return/\btox\-/.test(e.className)}function Oe(e){switch(e){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}}function Ce(t,e){Mn.each(e,function(e,n){t.setAttribute(n,e)})}function be(e,n,t){!function(e,n,t){var r=t["list-style-type"]?t["list-style-type"]:null;e.setStyle(n,"list-style-type",r)}(e,n,t),function(e,n,t){Ce(n,t["list-attributes"]),Mn.each(e.select("li",n),function(e){Ce(e,t["list-item-attributes"])})}(e,n,t)}function Le(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&Wn(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(Kn(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o}function Te(r,o,i){void 0===i&&(i={});var e,n=r.selection.getRng(!0),u="LI",t=Zn.getClosestListRootElm(r,r.selection.getStart(!0)),a=r.dom;"false"!==a.getContentEditable(r.selection.getNode())&&("DL"===(o=o.toUpperCase())&&(u="DT"),e=dt(n),Mn.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Le(t,e,!0,r),a=Le(t,e,!1,r),s=[],c=n;c&&(s.push(c),c!==a);c=c.nextSibling);return Mn.each(s,function(e){if(Kn(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||Wn(e))return Wn(e)&&u.remove(e),void(o=null);var n=e.nextSibling;ct.isBookmarkNode(e)&&(Kn(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(r,n,t),function(e){var n,t;(t=e.previousSibling)&&Fn(t)&&t.nodeName===o&&function(e,n,t){var r=e.getStyle(n,"list-style-type"),o=t?t["list-style-type"]:"";return r===(o=null===o?"":o)}(a,t,i)?(n=t,e=a.rename(e,u),t.appendChild(e)):(n=a.create(o),e.parentNode.insertBefore(n,e),n.appendChild(e),e=a.rename(e,u)),function(t,r,e){Mn.each(e,function(e){var n;return t.setStyle(r,((n={})[e]="",n))})}(a,e,["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"]),be(a,n,i),mt(r.dom,n)}),r.selection.setRng(lt(e)))}function De(e,n,t){return function(e,n){return e&&n&&Fn(e)&&e.nodeName===n.nodeName}(n,t)&&function(e,n,t){return e.getStyle(n,"list-style-type",!0)===e.getStyle(t,"list-style-type",!0)}(e,n,t)&&function(e,n){return e.className===n.className}(n,t)}function Ee(n,e,t,r,o){if(e.nodeName!==r||gt(o)){var i=dt(n.selection.getRng(!0));Mn.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.dom.rename(n,t);be(e.dom,o,r),j(e,Oe(t),o)}else be(e.dom,n,r),j(e,Oe(t),n)}(n,e,r,o)}),n.selection.setRng(lt(i))}else ye(n)}function we(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),Qn(e,r)&&vt.remove(r)):vt.setStyle(r,"listStyleType","none")),Fn(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)}function ke(e,n,t,r){var o=n.startContainer,i=n.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 literal 0 HcmV?d00001 diff --git a/public/assets/tinymce/plugins/lists/plugin.js b/public/assets/tinymce/plugins/lists/plugin.js index d0fee555..d4679745 120000 --- a/public/assets/tinymce/plugins/lists/plugin.js +++ b/public/assets/tinymce/plugins/lists/plugin.js @@ -1 +1 @@ -plugin-1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d.js \ No newline at end of file +plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js \ No newline at end of file diff --git a/public/assets/tinymce/plugins/lists/plugin.js.gz b/public/assets/tinymce/plugins/lists/plugin.js.gz index 9abd7793..844f63ce 120000 --- a/public/assets/tinymce/plugins/lists/plugin.js.gz +++ b/public/assets/tinymce/plugins/lists/plugin.js.gz @@ -1 +1 @@ -plugin-1e29c2287a98cd2affa06445e57daaa35bb2784ff7aa0c5361e86b9a79a5a53d.js.gz \ No newline at end of file +plugin-441e413ead1e4c6a11b18d009d3e8e8cacddb6fad2453c337ebabdb7bfe6d019.js.gz \ No newline at end of file diff --git a/public/assets/tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js b/public/assets/tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js new file mode 100644 index 00000000..34f1defd --- /dev/null +++ b/public/assets/tinymce/plugins/media/plugin-cc085535e6cc71154bfa4c6a2d5fb436594d2b82ad4dd66226011254840152b5.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.2.1 (2020-03-25) + */ +!function(){"use strict";function e(){}function o(e){return function(){return e}}function t(){return u}var r,n=tinymce.util.Tools.resolve("tinymce.PluginManager"),m=function(){return(m=Object.assign||function(e){for(var t,r=1,n=arguments.length;r"}(n):"application/x-shockwave-flash"===n.sourcemime?function(e){var t='';return e.poster&&(t+=''),t+=""}(n):-1!==n.sourcemime.indexOf("audio")?function(e,t){return t?t(e):'"}(n,o):"script"===n.type?function(e){return'