From 195d08f45428284e67ff5313bfa67288e3295b6c Mon Sep 17 00:00:00 2001
From: liujiangnan <695541723@qq.com>
Date: Tue, 3 Sep 2019 21:08:59 +0800
Subject: [PATCH] =?UTF-8?q?=E8=84=9A=E6=89=8B=E6=9E=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .editorconfig                                 |    13 +
 .gitignore                                    |    46 +
 angular.json                                  |   136 +
 browserslist                                  |    12 +
 e2e/protractor.conf.js                        |    32 +
 e2e/src/app.e2e-spec.ts                       |    23 +
 e2e/src/app.po.ts                             |    11 +
 e2e/tsconfig.json                             |    13 +
 karma.conf.js                                 |    32 +
 package-lock.json                             | 15007 +++++
 package.json                                  |    77 +
 src/app/app.component.html                    |     3 +
 src/app/app.component.scss                    |     0
 src/app/app.component.ts                      |    29 +
 src/app/app.module.ts                         |    45 +
 .../audio-recorder.component.html             |    62 +
 .../audio-recorder.component.scss             |   104 +
 .../audio-recorder.component.ts               |   229 +
 .../lesson-title-config.component.html        |   112 +
 .../lesson-title-config.component.scss        |   319 +
 .../lesson-title-config.component.ts          |   280 +
 .../player-content-wrapper.component.html     |     8 +
 .../player-content-wrapper.component.scss     |    54 +
 .../player-content-wrapper.component.ts       |    55 +
 src/app/form/form.component.html              |    14 +
 src/app/form/form.component.scss              |    20 +
 src/app/form/form.component.ts                |    46 +
 src/app/play/play.component.html              |    50 +
 src/app/play/play.component.scss              |   116 +
 src/app/play/play.component.ts                |   154 +
 src/app/style/colors.scss                     |    16 +
 src/app/style/common_mixin.scss               |    21 +
 src/assets/.gitkeep                           |     0
 src/assets/20-9.png                           |   Bin 0 -> 12954 bytes
 src/assets/all-letters/bg.png                 |   Bin 0 -> 370592 bytes
 src/assets/all-letters/bg2.png                |   Bin 0 -> 377538 bytes
 src/assets/all-letters/letter-audios/a.mp3    |   Bin 0 -> 14834 bytes
 src/assets/all-letters/letter-audios/b.mp3    |   Bin 0 -> 15990 bytes
 src/assets/all-letters/letter-audios/c.mp3    |   Bin 0 -> 13299 bytes
 src/assets/all-letters/letter-audios/d.mp3    |   Bin 0 -> 14835 bytes
 src/assets/all-letters/letter-audios/e.mp3    |   Bin 0 -> 13299 bytes
 src/assets/all-letters/letter-audios/f.mp3    |   Bin 0 -> 13299 bytes
 src/assets/all-letters/letter-audios/g.mp3    |   Bin 0 -> 13299 bytes
 src/assets/all-letters/letter-audios/h.mp3    |   Bin 0 -> 12147 bytes
 src/assets/all-letters/letter-audios/i.mp3    |   Bin 0 -> 13299 bytes
 src/assets/all-letters/letter-audios/j.mp3    |   Bin 0 -> 15220 bytes
 src/assets/all-letters/letter-audios/k.mp3    |   Bin 0 -> 12915 bytes
 src/assets/all-letters/letter-audios/l.mp3    |   Bin 0 -> 17142 bytes
 src/assets/all-letters/letter-audios/m.mp3    |   Bin 0 -> 18678 bytes
 src/assets/all-letters/letter-audios/n.mp3    |   Bin 0 -> 16759 bytes
 src/assets/all-letters/letter-audios/o.mp3    |   Bin 0 -> 15221 bytes
 src/assets/all-letters/letter-audios/p.mp3    |   Bin 0 -> 12916 bytes
 src/assets/all-letters/letter-audios/q.mp3    |   Bin 0 -> 14836 bytes
 src/assets/all-letters/letter-audios/r.mp3    |   Bin 0 -> 15991 bytes
 src/assets/all-letters/letter-audios/s.mp3    |   Bin 0 -> 15991 bytes
 src/assets/all-letters/letter-audios/t.mp3    |   Bin 0 -> 12148 bytes
 src/assets/all-letters/letter-audios/u.mp3    |   Bin 0 -> 13300 bytes
 src/assets/all-letters/letter-audios/v.mp3    |   Bin 0 -> 16759 bytes
 src/assets/all-letters/letter-audios/w.mp3    |   Bin 0 -> 15991 bytes
 src/assets/all-letters/letter-audios/x.mp3    |   Bin 0 -> 14068 bytes
 src/assets/all-letters/letter-audios/y.mp3    |   Bin 0 -> 15221 bytes
 src/assets/all-letters/letter-audios/z.mp3    |   Bin 0 -> 15221 bytes
 src/assets/all-letters/letter-detail/100.png  |   Bin 0 -> 14331 bytes
 src/assets/all-letters/letter-detail/101.png  |   Bin 0 -> 17176 bytes
 src/assets/all-letters/letter-detail/102.png  |   Bin 0 -> 14179 bytes
 src/assets/all-letters/letter-detail/103.png  |   Bin 0 -> 16478 bytes
 src/assets/all-letters/letter-detail/104.png  |   Bin 0 -> 15057 bytes
 src/assets/all-letters/letter-detail/105.png  |   Bin 0 -> 12911 bytes
 src/assets/all-letters/letter-detail/106.png  |   Bin 0 -> 15671 bytes
 src/assets/all-letters/letter-detail/107.png  |   Bin 0 -> 14864 bytes
 src/assets/all-letters/letter-detail/108.png  |   Bin 0 -> 12223 bytes
 src/assets/all-letters/letter-detail/109.png  |   Bin 0 -> 17312 bytes
 src/assets/all-letters/letter-detail/110.png  |   Bin 0 -> 16010 bytes
 src/assets/all-letters/letter-detail/111.png  |   Bin 0 -> 16242 bytes
 src/assets/all-letters/letter-detail/112.png  |   Bin 0 -> 14481 bytes
 src/assets/all-letters/letter-detail/113.png  |   Bin 0 -> 13571 bytes
 src/assets/all-letters/letter-detail/114.png  |   Bin 0 -> 12753 bytes
 src/assets/all-letters/letter-detail/115.png  |   Bin 0 -> 16777 bytes
 src/assets/all-letters/letter-detail/116.png  |   Bin 0 -> 13239 bytes
 src/assets/all-letters/letter-detail/117.png  |   Bin 0 -> 14170 bytes
 src/assets/all-letters/letter-detail/118.png  |   Bin 0 -> 13543 bytes
 src/assets/all-letters/letter-detail/119.png  |   Bin 0 -> 15821 bytes
 src/assets/all-letters/letter-detail/120.png  |   Bin 0 -> 14171 bytes
 src/assets/all-letters/letter-detail/121.png  |   Bin 0 -> 14163 bytes
 src/assets/all-letters/letter-detail/122.png  |   Bin 0 -> 11837 bytes
 src/assets/all-letters/letter-detail/65.png   |   Bin 0 -> 14791 bytes
 src/assets/all-letters/letter-detail/66.png   |   Bin 0 -> 17127 bytes
 src/assets/all-letters/letter-detail/67.png   |   Bin 0 -> 16533 bytes
 src/assets/all-letters/letter-detail/68.png   |   Bin 0 -> 15651 bytes
 src/assets/all-letters/letter-detail/69.png   |   Bin 0 -> 11688 bytes
 src/assets/all-letters/letter-detail/70.png   |   Bin 0 -> 12238 bytes
 src/assets/all-letters/letter-detail/71.png   |   Bin 0 -> 17556 bytes
 src/assets/all-letters/letter-detail/72.png   |   Bin 0 -> 14331 bytes
 src/assets/all-letters/letter-detail/73.png   |   Bin 0 -> 11176 bytes
 src/assets/all-letters/letter-detail/74.png   |   Bin 0 -> 11590 bytes
 src/assets/all-letters/letter-detail/75.png   |   Bin 0 -> 18576 bytes
 src/assets/all-letters/letter-detail/76.png   |   Bin 0 -> 12192 bytes
 src/assets/all-letters/letter-detail/77.png   |   Bin 0 -> 20634 bytes
 src/assets/all-letters/letter-detail/78.png   |   Bin 0 -> 17929 bytes
 src/assets/all-letters/letter-detail/79.png   |   Bin 0 -> 18273 bytes
 src/assets/all-letters/letter-detail/80.png   |   Bin 0 -> 15315 bytes
 src/assets/all-letters/letter-detail/81.png   |   Bin 0 -> 18100 bytes
 src/assets/all-letters/letter-detail/82.png   |   Bin 0 -> 16898 bytes
 src/assets/all-letters/letter-detail/83.png   |   Bin 0 -> 18630 bytes
 src/assets/all-letters/letter-detail/84.png   |   Bin 0 -> 12128 bytes
 src/assets/all-letters/letter-detail/85.png   |   Bin 0 -> 17095 bytes
 src/assets/all-letters/letter-detail/86.png   |   Bin 0 -> 16492 bytes
 src/assets/all-letters/letter-detail/87.png   |   Bin 0 -> 18597 bytes
 src/assets/all-letters/letter-detail/88.png   |   Bin 0 -> 17235 bytes
 src/assets/all-letters/letter-detail/89.png   |   Bin 0 -> 15065 bytes
 src/assets/all-letters/letter-detail/90.png   |   Bin 0 -> 13852 bytes
 src/assets/all-letters/letter-detail/97.png   |   Bin 0 -> 18849 bytes
 src/assets/all-letters/letter-detail/98.png   |   Bin 0 -> 15108 bytes
 src/assets/all-letters/letter-detail/99.png   |   Bin 0 -> 16171 bytes
 src/assets/all-letters/letter-imgs/100.png    |   Bin 0 -> 10512 bytes
 src/assets/all-letters/letter-imgs/101.png    |   Bin 0 -> 7977 bytes
 src/assets/all-letters/letter-imgs/102.png    |   Bin 0 -> 8214 bytes
 src/assets/all-letters/letter-imgs/103.png    |   Bin 0 -> 8385 bytes
 src/assets/all-letters/letter-imgs/104.png    |   Bin 0 -> 8021 bytes
 src/assets/all-letters/letter-imgs/105.png    |   Bin 0 -> 8679 bytes
 src/assets/all-letters/letter-imgs/106.png    |   Bin 0 -> 10485 bytes
 src/assets/all-letters/letter-imgs/107.png    |   Bin 0 -> 8343 bytes
 src/assets/all-letters/letter-imgs/108.png    |   Bin 0 -> 7827 bytes
 src/assets/all-letters/letter-imgs/109.png    |   Bin 0 -> 9001 bytes
 src/assets/all-letters/letter-imgs/110.png    |   Bin 0 -> 7932 bytes
 src/assets/all-letters/letter-imgs/111.png    |   Bin 0 -> 9017 bytes
 src/assets/all-letters/letter-imgs/112.png    |   Bin 0 -> 8187 bytes
 src/assets/all-letters/letter-imgs/113.png    |   Bin 0 -> 8221 bytes
 src/assets/all-letters/letter-imgs/114.png    |   Bin 0 -> 10219 bytes
 src/assets/all-letters/letter-imgs/115.png    |   Bin 0 -> 10482 bytes
 src/assets/all-letters/letter-imgs/116.png    |   Bin 0 -> 7977 bytes
 src/assets/all-letters/letter-imgs/117.png    |   Bin 0 -> 8642 bytes
 src/assets/all-letters/letter-imgs/118.png    |   Bin 0 -> 10249 bytes
 src/assets/all-letters/letter-imgs/119.png    |   Bin 0 -> 9442 bytes
 src/assets/all-letters/letter-imgs/120.png    |   Bin 0 -> 10409 bytes
 src/assets/all-letters/letter-imgs/121.png    |   Bin 0 -> 8128 bytes
 src/assets/all-letters/letter-imgs/122.png    |   Bin 0 -> 7930 bytes
 src/assets/all-letters/letter-imgs/65.png     |   Bin 0 -> 8155 bytes
 src/assets/all-letters/letter-imgs/66.png     |   Bin 0 -> 8068 bytes
 src/assets/all-letters/letter-imgs/67.png     |   Bin 0 -> 8448 bytes
 src/assets/all-letters/letter-imgs/68.png     |   Bin 0 -> 9453 bytes
 src/assets/all-letters/letter-imgs/69.png     |   Bin 0 -> 8788 bytes
 src/assets/all-letters/letter-imgs/70.png     |   Bin 0 -> 9108 bytes
 src/assets/all-letters/letter-imgs/71.png     |   Bin 0 -> 9375 bytes
 src/assets/all-letters/letter-imgs/72.png     |   Bin 0 -> 9268 bytes
 src/assets/all-letters/letter-imgs/73.png     |   Bin 0 -> 9305 bytes
 src/assets/all-letters/letter-imgs/74.png     |   Bin 0 -> 9374 bytes
 src/assets/all-letters/letter-imgs/75.png     |   Bin 0 -> 8251 bytes
 src/assets/all-letters/letter-imgs/76.png     |   Bin 0 -> 8531 bytes
 src/assets/all-letters/letter-imgs/77.png     |   Bin 0 -> 8476 bytes
 src/assets/all-letters/letter-imgs/78.png     |   Bin 0 -> 10530 bytes
 src/assets/all-letters/letter-imgs/79.png     |   Bin 0 -> 9086 bytes
 src/assets/all-letters/letter-imgs/80.png     |   Bin 0 -> 8203 bytes
 src/assets/all-letters/letter-imgs/81.png     |   Bin 0 -> 9635 bytes
 src/assets/all-letters/letter-imgs/82.png     |   Bin 0 -> 8431 bytes
 src/assets/all-letters/letter-imgs/83.png     |   Bin 0 -> 8497 bytes
 src/assets/all-letters/letter-imgs/84.png     |   Bin 0 -> 8011 bytes
 src/assets/all-letters/letter-imgs/85.png     |   Bin 0 -> 8928 bytes
 src/assets/all-letters/letter-imgs/86.png     |   Bin 0 -> 9329 bytes
 src/assets/all-letters/letter-imgs/87.png     |   Bin 0 -> 9012 bytes
 src/assets/all-letters/letter-imgs/88.png     |   Bin 0 -> 9632 bytes
 src/assets/all-letters/letter-imgs/89.png     |   Bin 0 -> 10479 bytes
 src/assets/all-letters/letter-imgs/90.png     |   Bin 0 -> 9281 bytes
 src/assets/all-letters/letter-imgs/97.png     |   Bin 0 -> 7948 bytes
 src/assets/all-letters/letter-imgs/98.png     |   Bin 0 -> 8104 bytes
 src/assets/all-letters/letter-imgs/99.png     |   Bin 0 -> 7875 bytes
 src/assets/libs/audio-recorder/lame.min.js    |   308 +
 src/assets/libs/audio-recorder/recorder.js    |   141 +
 src/assets/libs/audio-recorder/worker.js      |   108 +
 .../libs/service-worker/cache-service.js      |   535 +
 src/assets/libs/video-js-7.0.0/video-js.css   |  1699 +
 .../libs/video-js-7.0.0/video-js.min.css      |     1 +
 src/assets/libs/video-js-7.0.0/video.js       | 47623 ++++++++++++++++
 src/assets/libs/video-js-7.0.0/video.min.js   |    12 +
 src/environments/environment.prod.ts          |     3 +
 src/environments/environment.ts               |    16 +
 src/favicon.ico                               |   Bin 0 -> 5430 bytes
 src/index.html                                |    21 +
 src/main.ts                                   |    12 +
 src/polyfills.ts                              |    63 +
 src/styles.scss                               |     1 +
 src/test.ts                                   |    20 +
 tsconfig.app.json                             |    18 +
 tsconfig.json                                 |    27 +
 tsconfig.spec.json                            |    18 +
 tslint.json                                   |    92 +
 186 files changed, 67857 insertions(+)
 create mode 100644 .editorconfig
 create mode 100644 .gitignore
 create mode 100644 angular.json
 create mode 100644 browserslist
 create mode 100644 e2e/protractor.conf.js
 create mode 100644 e2e/src/app.e2e-spec.ts
 create mode 100644 e2e/src/app.po.ts
 create mode 100644 e2e/tsconfig.json
 create mode 100644 karma.conf.js
 create mode 100644 package-lock.json
 create mode 100644 package.json
 create mode 100644 src/app/app.component.html
 create mode 100644 src/app/app.component.scss
 create mode 100644 src/app/app.component.ts
 create mode 100644 src/app/app.module.ts
 create mode 100644 src/app/common/audio-recorder/audio-recorder.component.html
 create mode 100644 src/app/common/audio-recorder/audio-recorder.component.scss
 create mode 100644 src/app/common/audio-recorder/audio-recorder.component.ts
 create mode 100644 src/app/common/lesson-title-config/lesson-title-config.component.html
 create mode 100644 src/app/common/lesson-title-config/lesson-title-config.component.scss
 create mode 100644 src/app/common/lesson-title-config/lesson-title-config.component.ts
 create mode 100644 src/app/common/player-content-wrapper/player-content-wrapper.component.html
 create mode 100644 src/app/common/player-content-wrapper/player-content-wrapper.component.scss
 create mode 100644 src/app/common/player-content-wrapper/player-content-wrapper.component.ts
 create mode 100644 src/app/form/form.component.html
 create mode 100644 src/app/form/form.component.scss
 create mode 100644 src/app/form/form.component.ts
 create mode 100644 src/app/play/play.component.html
 create mode 100644 src/app/play/play.component.scss
 create mode 100644 src/app/play/play.component.ts
 create mode 100644 src/app/style/colors.scss
 create mode 100644 src/app/style/common_mixin.scss
 create mode 100644 src/assets/.gitkeep
 create mode 100644 src/assets/20-9.png
 create mode 100644 src/assets/all-letters/bg.png
 create mode 100755 src/assets/all-letters/bg2.png
 create mode 100755 src/assets/all-letters/letter-audios/a.mp3
 create mode 100755 src/assets/all-letters/letter-audios/b.mp3
 create mode 100755 src/assets/all-letters/letter-audios/c.mp3
 create mode 100755 src/assets/all-letters/letter-audios/d.mp3
 create mode 100755 src/assets/all-letters/letter-audios/e.mp3
 create mode 100755 src/assets/all-letters/letter-audios/f.mp3
 create mode 100755 src/assets/all-letters/letter-audios/g.mp3
 create mode 100755 src/assets/all-letters/letter-audios/h.mp3
 create mode 100755 src/assets/all-letters/letter-audios/i.mp3
 create mode 100755 src/assets/all-letters/letter-audios/j.mp3
 create mode 100755 src/assets/all-letters/letter-audios/k.mp3
 create mode 100755 src/assets/all-letters/letter-audios/l.mp3
 create mode 100755 src/assets/all-letters/letter-audios/m.mp3
 create mode 100755 src/assets/all-letters/letter-audios/n.mp3
 create mode 100755 src/assets/all-letters/letter-audios/o.mp3
 create mode 100755 src/assets/all-letters/letter-audios/p.mp3
 create mode 100755 src/assets/all-letters/letter-audios/q.mp3
 create mode 100755 src/assets/all-letters/letter-audios/r.mp3
 create mode 100755 src/assets/all-letters/letter-audios/s.mp3
 create mode 100755 src/assets/all-letters/letter-audios/t.mp3
 create mode 100755 src/assets/all-letters/letter-audios/u.mp3
 create mode 100755 src/assets/all-letters/letter-audios/v.mp3
 create mode 100755 src/assets/all-letters/letter-audios/w.mp3
 create mode 100755 src/assets/all-letters/letter-audios/x.mp3
 create mode 100755 src/assets/all-letters/letter-audios/y.mp3
 create mode 100755 src/assets/all-letters/letter-audios/z.mp3
 create mode 100644 src/assets/all-letters/letter-detail/100.png
 create mode 100644 src/assets/all-letters/letter-detail/101.png
 create mode 100644 src/assets/all-letters/letter-detail/102.png
 create mode 100644 src/assets/all-letters/letter-detail/103.png
 create mode 100644 src/assets/all-letters/letter-detail/104.png
 create mode 100644 src/assets/all-letters/letter-detail/105.png
 create mode 100644 src/assets/all-letters/letter-detail/106.png
 create mode 100644 src/assets/all-letters/letter-detail/107.png
 create mode 100644 src/assets/all-letters/letter-detail/108.png
 create mode 100644 src/assets/all-letters/letter-detail/109.png
 create mode 100644 src/assets/all-letters/letter-detail/110.png
 create mode 100644 src/assets/all-letters/letter-detail/111.png
 create mode 100644 src/assets/all-letters/letter-detail/112.png
 create mode 100644 src/assets/all-letters/letter-detail/113.png
 create mode 100644 src/assets/all-letters/letter-detail/114.png
 create mode 100644 src/assets/all-letters/letter-detail/115.png
 create mode 100644 src/assets/all-letters/letter-detail/116.png
 create mode 100644 src/assets/all-letters/letter-detail/117.png
 create mode 100644 src/assets/all-letters/letter-detail/118.png
 create mode 100644 src/assets/all-letters/letter-detail/119.png
 create mode 100644 src/assets/all-letters/letter-detail/120.png
 create mode 100644 src/assets/all-letters/letter-detail/121.png
 create mode 100644 src/assets/all-letters/letter-detail/122.png
 create mode 100644 src/assets/all-letters/letter-detail/65.png
 create mode 100644 src/assets/all-letters/letter-detail/66.png
 create mode 100644 src/assets/all-letters/letter-detail/67.png
 create mode 100644 src/assets/all-letters/letter-detail/68.png
 create mode 100644 src/assets/all-letters/letter-detail/69.png
 create mode 100644 src/assets/all-letters/letter-detail/70.png
 create mode 100644 src/assets/all-letters/letter-detail/71.png
 create mode 100644 src/assets/all-letters/letter-detail/72.png
 create mode 100644 src/assets/all-letters/letter-detail/73.png
 create mode 100644 src/assets/all-letters/letter-detail/74.png
 create mode 100644 src/assets/all-letters/letter-detail/75.png
 create mode 100644 src/assets/all-letters/letter-detail/76.png
 create mode 100644 src/assets/all-letters/letter-detail/77.png
 create mode 100644 src/assets/all-letters/letter-detail/78.png
 create mode 100644 src/assets/all-letters/letter-detail/79.png
 create mode 100644 src/assets/all-letters/letter-detail/80.png
 create mode 100644 src/assets/all-letters/letter-detail/81.png
 create mode 100644 src/assets/all-letters/letter-detail/82.png
 create mode 100644 src/assets/all-letters/letter-detail/83.png
 create mode 100644 src/assets/all-letters/letter-detail/84.png
 create mode 100644 src/assets/all-letters/letter-detail/85.png
 create mode 100644 src/assets/all-letters/letter-detail/86.png
 create mode 100644 src/assets/all-letters/letter-detail/87.png
 create mode 100644 src/assets/all-letters/letter-detail/88.png
 create mode 100644 src/assets/all-letters/letter-detail/89.png
 create mode 100644 src/assets/all-letters/letter-detail/90.png
 create mode 100644 src/assets/all-letters/letter-detail/97.png
 create mode 100644 src/assets/all-letters/letter-detail/98.png
 create mode 100644 src/assets/all-letters/letter-detail/99.png
 create mode 100644 src/assets/all-letters/letter-imgs/100.png
 create mode 100644 src/assets/all-letters/letter-imgs/101.png
 create mode 100644 src/assets/all-letters/letter-imgs/102.png
 create mode 100644 src/assets/all-letters/letter-imgs/103.png
 create mode 100644 src/assets/all-letters/letter-imgs/104.png
 create mode 100644 src/assets/all-letters/letter-imgs/105.png
 create mode 100644 src/assets/all-letters/letter-imgs/106.png
 create mode 100644 src/assets/all-letters/letter-imgs/107.png
 create mode 100644 src/assets/all-letters/letter-imgs/108.png
 create mode 100644 src/assets/all-letters/letter-imgs/109.png
 create mode 100644 src/assets/all-letters/letter-imgs/110.png
 create mode 100644 src/assets/all-letters/letter-imgs/111.png
 create mode 100644 src/assets/all-letters/letter-imgs/112.png
 create mode 100644 src/assets/all-letters/letter-imgs/113.png
 create mode 100644 src/assets/all-letters/letter-imgs/114.png
 create mode 100644 src/assets/all-letters/letter-imgs/115.png
 create mode 100644 src/assets/all-letters/letter-imgs/116.png
 create mode 100644 src/assets/all-letters/letter-imgs/117.png
 create mode 100644 src/assets/all-letters/letter-imgs/118.png
 create mode 100644 src/assets/all-letters/letter-imgs/119.png
 create mode 100644 src/assets/all-letters/letter-imgs/120.png
 create mode 100644 src/assets/all-letters/letter-imgs/121.png
 create mode 100644 src/assets/all-letters/letter-imgs/122.png
 create mode 100644 src/assets/all-letters/letter-imgs/65.png
 create mode 100644 src/assets/all-letters/letter-imgs/66.png
 create mode 100644 src/assets/all-letters/letter-imgs/67.png
 create mode 100644 src/assets/all-letters/letter-imgs/68.png
 create mode 100644 src/assets/all-letters/letter-imgs/69.png
 create mode 100644 src/assets/all-letters/letter-imgs/70.png
 create mode 100644 src/assets/all-letters/letter-imgs/71.png
 create mode 100644 src/assets/all-letters/letter-imgs/72.png
 create mode 100644 src/assets/all-letters/letter-imgs/73.png
 create mode 100644 src/assets/all-letters/letter-imgs/74.png
 create mode 100644 src/assets/all-letters/letter-imgs/75.png
 create mode 100644 src/assets/all-letters/letter-imgs/76.png
 create mode 100644 src/assets/all-letters/letter-imgs/77.png
 create mode 100644 src/assets/all-letters/letter-imgs/78.png
 create mode 100644 src/assets/all-letters/letter-imgs/79.png
 create mode 100644 src/assets/all-letters/letter-imgs/80.png
 create mode 100644 src/assets/all-letters/letter-imgs/81.png
 create mode 100644 src/assets/all-letters/letter-imgs/82.png
 create mode 100644 src/assets/all-letters/letter-imgs/83.png
 create mode 100644 src/assets/all-letters/letter-imgs/84.png
 create mode 100644 src/assets/all-letters/letter-imgs/85.png
 create mode 100644 src/assets/all-letters/letter-imgs/86.png
 create mode 100644 src/assets/all-letters/letter-imgs/87.png
 create mode 100644 src/assets/all-letters/letter-imgs/88.png
 create mode 100644 src/assets/all-letters/letter-imgs/89.png
 create mode 100644 src/assets/all-letters/letter-imgs/90.png
 create mode 100644 src/assets/all-letters/letter-imgs/97.png
 create mode 100644 src/assets/all-letters/letter-imgs/98.png
 create mode 100644 src/assets/all-letters/letter-imgs/99.png
 create mode 100755 src/assets/libs/audio-recorder/lame.min.js
 create mode 100755 src/assets/libs/audio-recorder/recorder.js
 create mode 100755 src/assets/libs/audio-recorder/worker.js
 create mode 100644 src/assets/libs/service-worker/cache-service.js
 create mode 100644 src/assets/libs/video-js-7.0.0/video-js.css
 create mode 100644 src/assets/libs/video-js-7.0.0/video-js.min.css
 create mode 100644 src/assets/libs/video-js-7.0.0/video.js
 create mode 100644 src/assets/libs/video-js-7.0.0/video.min.js
 create mode 100644 src/environments/environment.prod.ts
 create mode 100644 src/environments/environment.ts
 create mode 100644 src/favicon.ico
 create mode 100644 src/index.html
 create mode 100644 src/main.ts
 create mode 100644 src/polyfills.ts
 create mode 100644 src/styles.scss
 create mode 100644 src/test.ts
 create mode 100644 tsconfig.app.json
 create mode 100644 tsconfig.json
 create mode 100644 tsconfig.spec.json
 create mode 100644 tslint.json

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e89330a
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..86d943a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,46 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+# Only exists if Bazel was run
+/bazel-out
+
+# dependencies
+/node_modules
+
+# profiling files
+chrome-profiler-events*.json
+speed-measure-plugin*.json
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history/*
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+yarn-error.log
+testem.log
+/typings
+
+# System Files
+.DS_Store
+Thumbs.db
diff --git a/angular.json b/angular.json
new file mode 100644
index 0000000..2633fea
--- /dev/null
+++ b/angular.json
@@ -0,0 +1,136 @@
+{
+  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+  "version": 1,
+  "newProjectRoot": "projects",
+  "projects": {
+    "ng-one": {
+      "projectType": "application",
+      "schematics": {
+        "@schematics/angular:component": {
+          "style": "scss"
+        }
+      },
+      "root": "",
+      "sourceRoot": "src",
+      "prefix": "app",
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:browser",
+          "options": {
+            "outputPath": "dist/ng-one",
+            "index": "src/index.html",
+            "main": "src/main.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "tsconfig.app.json",
+            "aot": false,
+            "assets": [
+              "src/favicon.ico",
+              "src/assets",
+              { "glob": "**/*", "input": "src/assets/libs/service-worker/", "output": "/" },
+              {
+                "glob": "**/*",
+                "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/",
+                "output": "/assets/"
+              },
+              {
+                "glob": "**/*",
+                "input": "./dist/game/",
+                "output": "/assets/cocos/"
+              }
+            ],
+            "styles": [
+              "src/styles.scss",
+              "./node_modules/ng-zorro-antd/ng-zorro-antd.min.css",
+              "./node_modules/font-awesome/css/font-awesome.css",
+              "./node_modules/bootstrap/dist/css/bootstrap.min.css",
+              "./node_modules/animate.css/animate.min.css"
+            ],
+            "scripts": [
+              "src/assets/libs/audio-recorder/lame.min.js",
+              "src/assets/libs/audio-recorder/worker.js",
+              "src/assets/libs/audio-recorder/recorder.js"
+            ]
+          },
+          "configurations": {
+            "production": {
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "optimization": true,
+              "outputHashing": "all",
+              "sourceMap": false,
+              "extractCss": true,
+              "namedChunks": false,
+              "aot": true,
+              "extractLicenses": true,
+              "vendorChunk": false,
+              "buildOptimizer": true
+            }
+          }
+        },
+        "serve": {
+          "builder": "@angular-devkit/build-angular:dev-server",
+          "options": {
+            "browserTarget": "ng-one:build"
+          },
+          "configurations": {
+            "production": {
+              "browserTarget": "ng-one:build:production"
+            }
+          }
+        },
+        "extract-i18n": {
+          "builder": "@angular-devkit/build-angular:extract-i18n",
+          "options": {
+            "browserTarget": "ng-one:build"
+          }
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "src/test.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "tsconfig.spec.json",
+            "karmaConfig": "karma.conf.js",
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ],
+            "styles": [
+              "src/styles.scss"
+            ],
+            "scripts": []
+          }
+        },
+        "lint": {
+          "builder": "@angular-devkit/build-angular:tslint",
+          "options": {
+            "tsConfig": [
+              "tsconfig.app.json",
+              "tsconfig.spec.json",
+              "e2e/tsconfig.json"
+            ],
+            "exclude": [
+              "**/node_modules/**"
+            ]
+          }
+        },
+        "e2e": {
+          "builder": "@angular-devkit/build-angular:protractor",
+          "options": {
+            "protractorConfig": "e2e/protractor.conf.js",
+            "devServerTarget": "ng-one:serve"
+          },
+          "configurations": {
+            "production": {
+              "devServerTarget": "ng-one:serve:production"
+            }
+          }
+        }
+      }
+    }},
+  "defaultProject": "ng-one"
+}
\ No newline at end of file
diff --git a/browserslist b/browserslist
new file mode 100644
index 0000000..8084853
--- /dev/null
+++ b/browserslist
@@ -0,0 +1,12 @@
+# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+
+# You can see what browsers were selected by your queries by running:
+#   npx browserslist
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11 # For IE 9-11 support, remove 'not'.
\ No newline at end of file
diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js
new file mode 100644
index 0000000..73e4e68
--- /dev/null
+++ b/e2e/protractor.conf.js
@@ -0,0 +1,32 @@
+// @ts-check
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+/**
+ * @type { import("protractor").Config }
+ */
+exports.config = {
+  allScriptsTimeout: 11000,
+  specs: [
+    './src/**/*.e2e-spec.ts'
+  ],
+  capabilities: {
+    'browserName': 'chrome'
+  },
+  directConnect: true,
+  baseUrl: 'http://localhost:4200/',
+  framework: 'jasmine',
+  jasmineNodeOpts: {
+    showColors: true,
+    defaultTimeoutInterval: 30000,
+    print: function() {}
+  },
+  onPrepare() {
+    require('ts-node').register({
+      project: require('path').join(__dirname, './tsconfig.json')
+    });
+    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+  }
+};
\ No newline at end of file
diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts
new file mode 100644
index 0000000..8879545
--- /dev/null
+++ b/e2e/src/app.e2e-spec.ts
@@ -0,0 +1,23 @@
+import { AppPage } from './app.po';
+import { browser, logging } from 'protractor';
+
+describe('workspace-project App', () => {
+  let page: AppPage;
+
+  beforeEach(() => {
+    page = new AppPage();
+  });
+
+  it('should display welcome message', () => {
+    page.navigateTo();
+    expect(page.getTitleText()).toEqual('Welcome to ng-one!');
+  });
+
+  afterEach(async () => {
+    // Assert that there are no errors emitted from the browser
+    const logs = await browser.manage().logs().get(logging.Type.BROWSER);
+    expect(logs).not.toContain(jasmine.objectContaining({
+      level: logging.Level.SEVERE,
+    } as logging.Entry));
+  });
+});
diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts
new file mode 100644
index 0000000..5776aa9
--- /dev/null
+++ b/e2e/src/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+  navigateTo() {
+    return browser.get(browser.baseUrl) as Promise<any>;
+  }
+
+  getTitleText() {
+    return element(by.css('app-root h1')).getText() as Promise<string>;
+  }
+}
diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json
new file mode 100644
index 0000000..39b800f
--- /dev/null
+++ b/e2e/tsconfig.json
@@ -0,0 +1,13 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/e2e",
+    "module": "commonjs",
+    "target": "es5",
+    "types": [
+      "jasmine",
+      "jasminewd2",
+      "node"
+    ]
+  }
+}
diff --git a/karma.conf.js b/karma.conf.js
new file mode 100644
index 0000000..4a9333c
--- /dev/null
+++ b/karma.conf.js
@@ -0,0 +1,32 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage-istanbul-reporter'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
+    client: {
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
+    },
+    coverageIstanbulReporter: {
+      dir: require('path').join(__dirname, './coverage/ng-one'),
+      reports: ['html', 'lcovonly', 'text-summary'],
+      fixWebpackSourcePaths: true
+    },
+    reporters: ['progress', 'kjhtml'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false,
+    restartOnFileChange: true
+  });
+};
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..3a19fdb
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,15007 @@
+{
+  "name": "ng-template-generator",
+  "version": "0.0.1",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@angular-devkit/architect": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.11.4.tgz",
+      "integrity": "sha512-2zi6S9tPlk52vyqN67IvFoeNgd0uxtrPlwl3TdvJ3wrH7sYGJnkQ+EzAE7cKUGWAV989BbNtx2YxhRDHnN21Fg==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.1.4",
+        "rxjs": "6.3.3"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        }
+      }
+    },
+    "@angular-devkit/build-angular": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.11.4.tgz",
+      "integrity": "sha512-5WQAQB4heDqAotqjU3Tl8Ons0S/e16dKwVkQFdqfKPyBgmu4CyUH35eTV+i6i7un1Elg65U5GnA4MiUtApqVyw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.11.4",
+        "@angular-devkit/build-optimizer": "0.11.4",
+        "@angular-devkit/build-webpack": "0.11.4",
+        "@angular-devkit/core": "7.1.4",
+        "@ngtools/webpack": "7.1.4",
+        "ajv": "6.5.3",
+        "autoprefixer": "9.3.1",
+        "circular-dependency-plugin": "5.0.2",
+        "clean-css": "4.2.1",
+        "copy-webpack-plugin": "4.5.4",
+        "file-loader": "2.0.0",
+        "glob": "7.1.3",
+        "istanbul": "0.4.5",
+        "istanbul-instrumenter-loader": "3.0.1",
+        "karma-source-map-support": "1.3.0",
+        "less": "3.8.1",
+        "less-loader": "4.1.0",
+        "license-webpack-plugin": "2.0.2",
+        "loader-utils": "1.1.0",
+        "mini-css-extract-plugin": "0.4.4",
+        "minimatch": "3.0.4",
+        "node-sass": "4.10.0",
+        "opn": "5.3.0",
+        "parse5": "4.0.0",
+        "portfinder": "1.0.17",
+        "postcss": "7.0.5",
+        "postcss-import": "12.0.0",
+        "postcss-loader": "3.0.0",
+        "raw-loader": "0.5.1",
+        "rxjs": "6.3.3",
+        "sass-loader": "7.1.0",
+        "semver": "5.5.1",
+        "source-map-loader": "0.2.4",
+        "source-map-support": "0.5.9",
+        "speed-measure-webpack-plugin": "1.2.3",
+        "stats-webpack-plugin": "0.7.0",
+        "style-loader": "0.23.1",
+        "stylus": "0.54.5",
+        "stylus-loader": "3.0.2",
+        "terser-webpack-plugin": "1.1.0",
+        "tree-kill": "1.2.0",
+        "webpack": "4.23.1",
+        "webpack-dev-middleware": "3.4.0",
+        "webpack-dev-server": "3.1.10",
+        "webpack-merge": "4.1.4",
+        "webpack-sources": "1.3.0",
+        "webpack-subresource-integrity": "1.1.0-rc.6"
+      },
+      "dependencies": {
+        "@webassemblyjs/ast": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz",
+          "integrity": "sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/helper-module-context": "1.7.10",
+            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
+            "@webassemblyjs/wast-parser": "1.7.10"
+          }
+        },
+        "@webassemblyjs/floating-point-hex-parser": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz",
+          "integrity": "sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-api-error": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz",
+          "integrity": "sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-buffer": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz",
+          "integrity": "sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-code-frame": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz",
+          "integrity": "sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/wast-printer": "1.7.10"
+          }
+        },
+        "@webassemblyjs/helper-fsm": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz",
+          "integrity": "sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-module-context": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz",
+          "integrity": "sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-wasm-bytecode": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz",
+          "integrity": "sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg==",
+          "dev": true
+        },
+        "@webassemblyjs/helper-wasm-section": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz",
+          "integrity": "sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-buffer": "1.7.10",
+            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
+            "@webassemblyjs/wasm-gen": "1.7.10"
+          }
+        },
+        "@webassemblyjs/ieee754": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz",
+          "integrity": "sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ==",
+          "dev": true,
+          "requires": {
+            "@xtuc/ieee754": "^1.2.0"
+          }
+        },
+        "@webassemblyjs/leb128": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz",
+          "integrity": "sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw==",
+          "dev": true,
+          "requires": {
+            "@xtuc/long": "4.2.1"
+          }
+        },
+        "@webassemblyjs/utf8": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz",
+          "integrity": "sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ==",
+          "dev": true
+        },
+        "@webassemblyjs/wasm-edit": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz",
+          "integrity": "sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-buffer": "1.7.10",
+            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
+            "@webassemblyjs/helper-wasm-section": "1.7.10",
+            "@webassemblyjs/wasm-gen": "1.7.10",
+            "@webassemblyjs/wasm-opt": "1.7.10",
+            "@webassemblyjs/wasm-parser": "1.7.10",
+            "@webassemblyjs/wast-printer": "1.7.10"
+          }
+        },
+        "@webassemblyjs/wasm-gen": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz",
+          "integrity": "sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
+            "@webassemblyjs/ieee754": "1.7.10",
+            "@webassemblyjs/leb128": "1.7.10",
+            "@webassemblyjs/utf8": "1.7.10"
+          }
+        },
+        "@webassemblyjs/wasm-opt": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz",
+          "integrity": "sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-buffer": "1.7.10",
+            "@webassemblyjs/wasm-gen": "1.7.10",
+            "@webassemblyjs/wasm-parser": "1.7.10"
+          }
+        },
+        "@webassemblyjs/wasm-parser": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz",
+          "integrity": "sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-api-error": "1.7.10",
+            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
+            "@webassemblyjs/ieee754": "1.7.10",
+            "@webassemblyjs/leb128": "1.7.10",
+            "@webassemblyjs/utf8": "1.7.10"
+          }
+        },
+        "@webassemblyjs/wast-parser": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz",
+          "integrity": "sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/floating-point-hex-parser": "1.7.10",
+            "@webassemblyjs/helper-api-error": "1.7.10",
+            "@webassemblyjs/helper-code-frame": "1.7.10",
+            "@webassemblyjs/helper-fsm": "1.7.10",
+            "@xtuc/long": "4.2.1"
+          }
+        },
+        "@webassemblyjs/wast-printer": {
+          "version": "1.7.10",
+          "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz",
+          "integrity": "sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/wast-parser": "1.7.10",
+            "@xtuc/long": "4.2.1"
+          }
+        },
+        "@xtuc/long": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
+          "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+          "dev": true
+        },
+        "acorn": {
+          "version": "5.7.3",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+          "dev": true
+        },
+        "ajv": {
+          "version": "6.5.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+          "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+          "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+          "dev": true
+        },
+        "cacache": {
+          "version": "11.3.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          },
+          "dependencies": {
+            "glob": {
+              "version": "7.1.4",
+              "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+              "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+              "dev": true,
+              "requires": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+              }
+            }
+          }
+        },
+        "glob": {
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+          "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "parse5": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+          "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+          "dev": true
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "semver": {
+          "version": "5.5.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+          "dev": true
+        },
+        "source-map-support": {
+          "version": "0.5.9",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+          "dev": true,
+          "requires": {
+            "buffer-from": "^1.0.0",
+            "source-map": "^0.6.0"
+          }
+        },
+        "terser": {
+          "version": "3.17.0",
+          "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
+          "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+          "dev": true,
+          "requires": {
+            "commander": "^2.19.0",
+            "source-map": "~0.6.1",
+            "source-map-support": "~0.5.10"
+          },
+          "dependencies": {
+            "source-map-support": {
+              "version": "0.5.13",
+              "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+              "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+              "dev": true,
+              "requires": {
+                "buffer-from": "^1.0.0",
+                "source-map": "^0.6.0"
+              }
+            }
+          }
+        },
+        "terser-webpack-plugin": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz",
+          "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==",
+          "dev": true,
+          "requires": {
+            "cacache": "^11.0.2",
+            "find-cache-dir": "^2.0.0",
+            "schema-utils": "^1.0.0",
+            "serialize-javascript": "^1.4.0",
+            "source-map": "^0.6.1",
+            "terser": "^3.8.1",
+            "webpack-sources": "^1.1.0",
+            "worker-farm": "^1.5.2"
+          }
+        },
+        "webpack": {
+          "version": "4.23.1",
+          "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz",
+          "integrity": "sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg==",
+          "dev": true,
+          "requires": {
+            "@webassemblyjs/ast": "1.7.10",
+            "@webassemblyjs/helper-module-context": "1.7.10",
+            "@webassemblyjs/wasm-edit": "1.7.10",
+            "@webassemblyjs/wasm-parser": "1.7.10",
+            "acorn": "^5.6.2",
+            "acorn-dynamic-import": "^3.0.0",
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0",
+            "chrome-trace-event": "^1.0.0",
+            "enhanced-resolve": "^4.1.0",
+            "eslint-scope": "^4.0.0",
+            "json-parse-better-errors": "^1.0.2",
+            "loader-runner": "^2.3.0",
+            "loader-utils": "^1.1.0",
+            "memory-fs": "~0.4.1",
+            "micromatch": "^3.1.8",
+            "mkdirp": "~0.5.0",
+            "neo-async": "^2.5.0",
+            "node-libs-browser": "^2.0.0",
+            "schema-utils": "^0.4.4",
+            "tapable": "^1.1.0",
+            "uglifyjs-webpack-plugin": "^1.2.4",
+            "watchpack": "^1.5.0",
+            "webpack-sources": "^1.3.0"
+          },
+          "dependencies": {
+            "schema-utils": {
+              "version": "0.4.7",
+              "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+              "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+              "dev": true,
+              "requires": {
+                "ajv": "^6.1.0",
+                "ajv-keywords": "^3.1.0"
+              }
+            }
+          }
+        },
+        "webpack-sources": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
+          "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
+          "dev": true,
+          "requires": {
+            "source-list-map": "^2.0.0",
+            "source-map": "~0.6.1"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "@angular-devkit/build-optimizer": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.11.4.tgz",
+      "integrity": "sha512-tAAWWFCcl918Q1JivlLvLFer8Qm4/THWbEneMwk5fQvG6/NgJLoa3itP/MCUq4qL6YHmp2DWkdWnWfRQCgHeFA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "1.1.0",
+        "source-map": "0.5.6",
+        "typescript": "3.1.6",
+        "webpack-sources": "1.2.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+          "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+          "dev": true
+        },
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+          "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0"
+          }
+        },
+        "source-map": {
+          "version": "0.5.6",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+          "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+          "dev": true
+        },
+        "typescript": {
+          "version": "3.1.6",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
+          "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
+          "dev": true
+        },
+        "webpack-sources": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
+          "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
+          "dev": true,
+          "requires": {
+            "source-list-map": "^2.0.0",
+            "source-map": "~0.6.1"
+          },
+          "dependencies": {
+            "source-map": {
+              "version": "0.6.1",
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "@angular-devkit/build-webpack": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.11.4.tgz",
+      "integrity": "sha512-4nEDXSbv3oDu27Rw5s2DMKmcOZYVAt76bryVF2SycSkDq3eAIiqmgw3G3CJJ4LTulXzDpaIpk02MvgbYkX+hvw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.11.4",
+        "@angular-devkit/core": "7.1.4",
+        "rxjs": "6.3.3"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        }
+      }
+    },
+    "@angular-devkit/core": {
+      "version": "7.1.4",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.1.4.tgz",
+      "integrity": "sha512-3cBVHjSQjMyE/mIyOX82ekdybNRQlN+kUfmdZS6oVW9aV48vdxcVbEGdl8t1H4enMf89u8kXiAAET9jFaqWopg==",
+      "dev": true,
+      "requires": {
+        "ajv": "6.5.3",
+        "chokidar": "2.0.4",
+        "fast-json-stable-stringify": "2.0.0",
+        "rxjs": "6.3.3",
+        "source-map": "0.7.3"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.5.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+          "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "chokidar": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.0",
+            "braces": "^2.3.0",
+            "fsevents": "^1.2.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "lodash.debounce": "^4.0.8",
+            "normalize-path": "^2.1.1",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0",
+            "upath": "^1.0.5"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
+      }
+    },
+    "@angular-devkit/schematics": {
+      "version": "7.3.9",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.9.tgz",
+      "integrity": "sha512-xzROGCYp7aQbeJ3V6YC0MND7wKEAdWqmm/GaCufEk0dDS8ZGe0sQhcM2oBRa2nQqGQNeThFIH51kx+FayrJP0w==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.9",
+        "rxjs": "6.3.3"
+      },
+      "dependencies": {
+        "@angular-devkit/core": {
+          "version": "7.3.9",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz",
+          "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "chokidar": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.0",
+            "braces": "^2.3.0",
+            "fsevents": "^1.2.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "lodash.debounce": "^4.0.8",
+            "normalize-path": "^2.1.1",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0",
+            "upath": "^1.0.5"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
+      }
+    },
+    "@angular/animations": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.15.tgz",
+      "integrity": "sha512-8oBt3HLgd2+kyJHUgsd7OzKCCss67t2sch15XNoIWlOLfxclqU+EfFE6t/vCzpT8/+lpZS6LU9ZrTnb+UBj5jg==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/cdk": {
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.3.7.tgz",
+      "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==",
+      "requires": {
+        "parse5": "^5.0.0",
+        "tslib": "^1.7.1"
+      }
+    },
+    "@angular/cli": {
+      "version": "7.3.9",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.9.tgz",
+      "integrity": "sha512-7oJj7CKDlFUbQav1x1CV4xKKcbt0pnxY4unKcm7Q1tVXhu8bU2bc3cDA0aJnbofcYb6TJcd/C2qHgCt78q7edA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.13.9",
+        "@angular-devkit/core": "7.3.9",
+        "@angular-devkit/schematics": "7.3.9",
+        "@schematics/angular": "7.3.9",
+        "@schematics/update": "0.13.9",
+        "@yarnpkg/lockfile": "1.1.0",
+        "ini": "1.3.5",
+        "inquirer": "6.2.1",
+        "npm-package-arg": "6.1.0",
+        "open": "6.0.0",
+        "pacote": "9.4.0",
+        "semver": "5.6.0",
+        "symbol-observable": "1.2.0"
+      },
+      "dependencies": {
+        "@angular-devkit/architect": {
+          "version": "0.13.9",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.9.tgz",
+          "integrity": "sha512-EAFtCs9dsGhpMRC45PoYsrkiExpWz9Ax15qXfzwdDRacz5DmdOVt+QpkLW1beUOwiyj/bhFyj23eaONK2RTn/w==",
+          "dev": true,
+          "requires": {
+            "@angular-devkit/core": "7.3.9",
+            "rxjs": "6.3.3"
+          }
+        },
+        "@angular-devkit/core": {
+          "version": "7.3.9",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz",
+          "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "chokidar": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.0",
+            "braces": "^2.3.0",
+            "fsevents": "^1.2.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "lodash.debounce": "^4.0.8",
+            "normalize-path": "^2.1.1",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0",
+            "upath": "^1.0.5"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "semver": {
+          "version": "5.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
+      }
+    },
+    "@angular/common": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.15.tgz",
+      "integrity": "sha512-2b5JY2HWVHCf3D1GZjmde7jdAXSTXkYtmjLtA9tQkjOOTr80eHpNSujQqnzb97dk9VT9OjfjqTQd7K3pxZz8jw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.15.tgz",
+      "integrity": "sha512-5yb4NcLk8GuXkYf7Dcor4XkGueYp4dgihzDmMjYDUrV0NPhubKlr+SwGtLOtzgRBWJ1I2bO0S3zwa0q0OgIPOw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler-cli": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.15.tgz",
+      "integrity": "sha512-+AsfyKawmj/sa+m4Pz8VSRFbCfx/3IOjAuuEjhopbyr154YpPDSu8NTbcwzq3yfbVcPwK4/4exmbQzpsndaCTg==",
+      "dev": true,
+      "requires": {
+        "canonical-path": "1.0.0",
+        "chokidar": "^2.1.1",
+        "convert-source-map": "^1.5.1",
+        "dependency-graph": "^0.7.2",
+        "magic-string": "^0.25.0",
+        "minimist": "^1.2.0",
+        "reflect-metadata": "^0.1.2",
+        "shelljs": "^0.8.1",
+        "source-map": "^0.6.1",
+        "tslib": "^1.9.0",
+        "yargs": "9.0.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "execa": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^2.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "load-json-file": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "strip-bom": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^2.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "mem": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+          "dev": true,
+          "requires": {
+            "execa": "^0.7.0",
+            "lcid": "^1.0.0",
+            "mem": "^1.1.0"
+          }
+        },
+        "p-limit": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+          "dev": true,
+          "requires": {
+            "p-try": "^1.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^1.1.0"
+          }
+        },
+        "p-try": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+          "dev": true
+        },
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+          "dev": true,
+          "requires": {
+            "pify": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^2.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^2.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.0.0",
+            "read-pkg": "^2.0.0"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true
+        },
+        "yargs": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
+          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^2.0.0",
+            "read-pkg-up": "^2.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^7.0.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "@angular/core": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.15.tgz",
+      "integrity": "sha512-XsuYm0jEU/mOqwDOk2utThv8J9kESkAerfuCHClE9rB2TtHUOGCfekF7lJWqjjypu6/J9ygoPFo7hdAE058ZGg==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/flex-layout": {
+      "version": "7.0.0-beta.24",
+      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-7.0.0-beta.24.tgz",
+      "integrity": "sha512-ll6sK0nLGxqI/f5+z4jbd+pve1QITzgehv2AuGvfSDgIjPMeqUDB5YZqQmIGM/dQRk/vIio5KCW5LQPJWzMMYQ==",
+      "requires": {
+        "tslib": "^1.7.1"
+      }
+    },
+    "@angular/forms": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.15.tgz",
+      "integrity": "sha512-p0kcIQLtBBC1qeTA6M3nOuXf/k91E80FKquVM9zEsO2kDjI0oZJVfFYL2UMov5samlJOPN+t6lRHEIUa7ApPsw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/http": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz",
+      "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/language-service": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.15.tgz",
+      "integrity": "sha512-Ig5Jr7mnDelaZvSbUd9YhI5am3q1ku9xelAuwvtyDKvQJeKQj3BtTagcOgWrnQBfrJ/FsA/M5Zo48ncSsV0tqQ==",
+      "dev": true
+    },
+    "@angular/material": {
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.3.7.tgz",
+      "integrity": "sha512-Eq+7frkeNGkLOfEtmkmJgR+AgoWajOipXZWWfCSamNfpCcPof82DwvGOpAmgGni9FuN2XFQdqP5MoaffQzIvUA==",
+      "requires": {
+        "tslib": "^1.7.1"
+      }
+    },
+    "@angular/platform-browser": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz",
+      "integrity": "sha512-aYgmPsbC9Tvp9vmKWD8voeAp4crwCay7/D6lM3ClEe2EeK934LuEXq3/uczMrFVbnIX7BBIo8fh03Tl7wbiGPw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/platform-browser-dynamic": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.15.tgz",
+      "integrity": "sha512-UL2PqhzXMD769NQ6Lh6pxlBDKvN9Qol3XLRFil80lwJ1GRW16ITeYbCamcafIH2GOyd88IhmYcbMfUQ/6q4MMQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/platform-server": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-7.2.15.tgz",
+      "integrity": "sha512-a7XhYlbmQ7pN6liFq8WqdX4GNoxCIXhlZqotZkfwJDsDy2E2yyvVx6BYCEOnSRvO9xXwfyBXiLfZ4Y2A7xeCoQ==",
+      "requires": {
+        "domino": "^2.1.0",
+        "tslib": "^1.9.0",
+        "xhr2": "^0.1.4"
+      }
+    },
+    "@angular/router": {
+      "version": "7.2.15",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.15.tgz",
+      "integrity": "sha512-qAubRJRQanguUqJQ76J9GSZ4JFtoyhJKRmX5P23ANZJXpB6YLzF2fJmOGi+E6cV8F0tKBMEq1pjxFTisx0MXwQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@ant-design/colors": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.1.tgz",
+      "integrity": "sha512-ibJybOcR1+h2IEr0Yxx4y/Wcz8obEtKvl2EYvxh8ugMkYniGSItpLKGzKNyyqzOaum5jb6fVCyH1aR9VkdpFRA==",
+      "requires": {
+        "tinycolor2": "^1.4.1"
+      }
+    },
+    "@ant-design/icons-angular": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/@ant-design/icons-angular/-/icons-angular-2.1.0.tgz",
+      "integrity": "sha512-FDOtuxPKm2CaxWBWFqP2a5abtrrlVz8HzBdLEJJD68bW9ombWQKH71ZMp1Iw53Koqn1KTUCy0jPqSuSwx5wcrA==",
+      "requires": {
+        "@ant-design/colors": "^3.1.0",
+        "tslib": "^1.9.0"
+      }
+    },
+    "@babel/code-frame": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+      "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+      "requires": {
+        "@babel/highlight": "^7.0.0"
+      }
+    },
+    "@babel/generator": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
+      "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.5.5",
+        "jsesc": "^2.5.1",
+        "lodash": "^4.17.13",
+        "source-map": "^0.5.0",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "2.5.2",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+      "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.0.0",
+        "@babel/template": "^7.1.0",
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+      "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
+      "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.4.4"
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+      "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+      "requires": {
+        "chalk": "^2.0.0",
+        "esutils": "^2.0.2",
+        "js-tokens": "^4.0.0"
+      }
+    },
+    "@babel/parser": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
+      "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
+      "dev": true
+    },
+    "@babel/template": {
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
+      "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/parser": "^7.4.4",
+        "@babel/types": "^7.4.4"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
+      "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.5.5",
+        "@babel/generator": "^7.5.5",
+        "@babel/helper-function-name": "^7.1.0",
+        "@babel/helper-split-export-declaration": "^7.4.4",
+        "@babel/parser": "^7.5.5",
+        "@babel/types": "^7.5.5",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0",
+        "lodash": "^4.17.13"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "globals": {
+          "version": "11.12.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/types": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+      "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+      "dev": true,
+      "requires": {
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.13",
+        "to-fast-properties": "^2.0.0"
+      },
+      "dependencies": {
+        "to-fast-properties": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+          "dev": true
+        }
+      }
+    },
+    "@ngtools/webpack": {
+      "version": "7.1.4",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.1.4.tgz",
+      "integrity": "sha512-8A15TPJzg3g7yI70QvBzJ253P32WAgCVre9nMaDdd22UmlbvN8Ke4RuQY7vYVTECLL+bWpFJEFXL+ThzCRUgeA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.1.4",
+        "enhanced-resolve": "4.1.0",
+        "rxjs": "6.3.3",
+        "tree-kill": "1.2.0",
+        "webpack-sources": "1.2.0"
+      },
+      "dependencies": {
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "webpack-sources": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
+          "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
+          "dev": true,
+          "requires": {
+            "source-list-map": "^2.0.0",
+            "source-map": "~0.6.1"
+          }
+        }
+      }
+    },
+    "@schematics/angular": {
+      "version": "7.3.9",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.9.tgz",
+      "integrity": "sha512-B3lytFtFeYNLfWdlrIzvy3ulFRccD2/zkoL0734J+DAGfUz7vbysJ50RwYL46sQUcKdZdvb48ktfu1S8yooP6Q==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.9",
+        "@angular-devkit/schematics": "7.3.9",
+        "typescript": "3.2.4"
+      },
+      "dependencies": {
+        "@angular-devkit/core": {
+          "version": "7.3.9",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz",
+          "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "chokidar": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.0",
+            "braces": "^2.3.0",
+            "fsevents": "^1.2.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "lodash.debounce": "^4.0.8",
+            "normalize-path": "^2.1.1",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0",
+            "upath": "^1.0.5"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        },
+        "typescript": {
+          "version": "3.2.4",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
+          "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
+          "dev": true
+        }
+      }
+    },
+    "@schematics/update": {
+      "version": "0.13.9",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.9.tgz",
+      "integrity": "sha512-4MQcaKFxhMzZyE//+DknDh3h3duy3avg2oxSHxdwXlCZ8Q92+4lpegjJcSRiqlEwO4qeJ5XnrjrvzfIiaIZOmA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.9",
+        "@angular-devkit/schematics": "7.3.9",
+        "@yarnpkg/lockfile": "1.1.0",
+        "ini": "1.3.5",
+        "pacote": "9.4.0",
+        "rxjs": "6.3.3",
+        "semver": "5.6.0",
+        "semver-intersect": "1.4.0"
+      },
+      "dependencies": {
+        "@angular-devkit/core": {
+          "version": "7.3.9",
+          "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.9.tgz",
+          "integrity": "sha512-SaxD+nKFW3iCBKsxNR7+66J30EexW/y7tm8m5AvUH+GwSAgIj0ZYmRUzFEPggcaLVA4WnE/YWqIXZMJW5dT7gw==",
+          "dev": true,
+          "requires": {
+            "ajv": "6.9.1",
+            "chokidar": "2.0.4",
+            "fast-json-stable-stringify": "2.0.0",
+            "rxjs": "6.3.3",
+            "source-map": "0.7.3"
+          }
+        },
+        "ajv": {
+          "version": "6.9.1",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "chokidar": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.0",
+            "braces": "^2.3.0",
+            "fsevents": "^1.2.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "lodash.debounce": "^4.0.8",
+            "normalize-path": "^2.1.1",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0",
+            "upath": "^1.0.5"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "rxjs": {
+          "version": "6.3.3",
+          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+          "dev": true,
+          "requires": {
+            "tslib": "^1.9.0"
+          }
+        },
+        "semver": {
+          "version": "5.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "dev": true
+        }
+      }
+    },
+    "@tweenjs/tween.js": {
+      "version": "17.4.0",
+      "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-17.4.0.tgz",
+      "integrity": "sha512-J3fzl1F6wvh8KXVVcIuHN12xi1ZDcPA/0Vix+ZcJYwZWVHUwfIqfvzYXXEw7ybeev6477KCTt9fKydU+ajUqcg=="
+    },
+    "@types/jasmine": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.4.0.tgz",
+      "integrity": "sha512-6pUnBg6DuSB55xnxJ5+gW9JOkFrPsXkYAuqqEE8oyrpgDiPQ+TZ+1Zt4S+CHcRJcxyNYXeIXG4vHSzdF6y9Uvw==",
+      "dev": true
+    },
+    "@types/jasminewd2": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.6.tgz",
+      "integrity": "sha512-2ZOKrxb8bKRmP/po5ObYnRDgFE4i+lQiEB27bAMmtMWLgJSqlIDqlLx6S0IRorpOmOPRQ6O80NujTmQAtBkeNw==",
+      "dev": true,
+      "requires": {
+        "@types/jasmine": "*"
+      }
+    },
+    "@types/node": {
+      "version": "10.14.17",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.17.tgz",
+      "integrity": "sha512-p/sGgiPaathCfOtqu2fx5Mu1bcjuP8ALFg4xpGgNkcin7LwRyzUKniEHBKdcE1RPsenq5JVPIpMTJSygLboygQ==",
+      "dev": true
+    },
+    "@types/q": {
+      "version": "0.0.32",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
+      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+      "dev": true
+    },
+    "@types/selenium-webdriver": {
+      "version": "3.0.16",
+      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz",
+      "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==",
+      "dev": true
+    },
+    "@webassemblyjs/ast": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
+      "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+      "requires": {
+        "@webassemblyjs/helper-module-context": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/wast-parser": "1.8.5"
+      }
+    },
+    "@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
+      "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ=="
+    },
+    "@webassemblyjs/helper-api-error": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
+      "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA=="
+    },
+    "@webassemblyjs/helper-buffer": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
+      "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q=="
+    },
+    "@webassemblyjs/helper-code-frame": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
+      "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
+      "requires": {
+        "@webassemblyjs/wast-printer": "1.8.5"
+      }
+    },
+    "@webassemblyjs/helper-fsm": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
+      "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow=="
+    },
+    "@webassemblyjs/helper-module-context": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
+      "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "mamacro": "^0.0.3"
+      }
+    },
+    "@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
+      "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ=="
+    },
+    "@webassemblyjs/helper-wasm-section": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
+      "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5"
+      }
+    },
+    "@webassemblyjs/ieee754": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+      "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+      "requires": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "@webassemblyjs/leb128": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
+      "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+      "requires": {
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/utf8": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+      "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw=="
+    },
+    "@webassemblyjs/wasm-edit": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
+      "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/helper-wasm-section": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5",
+        "@webassemblyjs/wasm-opt": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5",
+        "@webassemblyjs/wast-printer": "1.8.5"
+      }
+    },
+    "@webassemblyjs/wasm-gen": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
+      "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/ieee754": "1.8.5",
+        "@webassemblyjs/leb128": "1.8.5",
+        "@webassemblyjs/utf8": "1.8.5"
+      }
+    },
+    "@webassemblyjs/wasm-opt": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
+      "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-buffer": "1.8.5",
+        "@webassemblyjs/wasm-gen": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5"
+      }
+    },
+    "@webassemblyjs/wasm-parser": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
+      "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-api-error": "1.8.5",
+        "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+        "@webassemblyjs/ieee754": "1.8.5",
+        "@webassemblyjs/leb128": "1.8.5",
+        "@webassemblyjs/utf8": "1.8.5"
+      }
+    },
+    "@webassemblyjs/wast-parser": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
+      "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+        "@webassemblyjs/helper-api-error": "1.8.5",
+        "@webassemblyjs/helper-code-frame": "1.8.5",
+        "@webassemblyjs/helper-fsm": "1.8.5",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/wast-printer": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
+      "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/wast-parser": "1.8.5",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
+    },
+    "@xtuc/long": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
+    },
+    "@yarnpkg/lockfile": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+      "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+      "dev": true
+    },
+    "JSONStream": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+      "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+      "dev": true,
+      "requires": {
+        "jsonparse": "^1.2.0",
+        "through": ">=2.2.7 <3"
+      }
+    },
+    "abbrev": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+      "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+      "dev": true
+    },
+    "accepts": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+      "dev": true,
+      "requires": {
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      }
+    },
+    "acorn": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
+      "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA=="
+    },
+    "acorn-dynamic-import": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+      "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
+      "dev": true,
+      "requires": {
+        "acorn": "^5.0.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "5.7.3",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+          "dev": true
+        }
+      }
+    },
+    "address": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
+      "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA=="
+    },
+    "adm-zip": {
+      "version": "0.4.13",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
+      "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==",
+      "dev": true
+    },
+    "after": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+      "dev": true
+    },
+    "agent-base": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+      "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+      "requires": {
+        "es6-promisify": "^5.0.0"
+      }
+    },
+    "agentkeepalive": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
+      "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
+      "requires": {
+        "humanize-ms": "^1.2.1"
+      }
+    },
+    "ajv": {
+      "version": "6.10.2",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+      "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+      "requires": {
+        "fast-deep-equal": "^2.0.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "ajv-errors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
+    },
+    "ajv-keywords": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+      "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
+    },
+    "ali-oss": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/ali-oss/-/ali-oss-6.1.1.tgz",
+      "integrity": "sha512-+BKZlX/+aPjFF8al0fS5j93ynWlKy779p/i1nVxElUjyQA457ccbhoQTUKL6cbr8EMetIAUHnhS9XTI4RgW1PA==",
+      "requires": {
+        "address": "^1.0.0",
+        "agentkeepalive": "^3.4.1",
+        "any-promise": "^1.3.0",
+        "bowser": "^1.6.0",
+        "co-defer": "^1.0.0",
+        "copy-to": "^2.0.1",
+        "dateformat": "^2.0.0",
+        "debug": "^2.2.0",
+        "destroy": "^1.0.4",
+        "end-or-error": "^1.0.1",
+        "get-ready": "^1.0.0",
+        "humanize-ms": "^1.2.0",
+        "is-type-of": "^1.0.0",
+        "jstoxml": "^0.2.3",
+        "merge-descriptors": "^1.0.1",
+        "mime": "^1.3.4",
+        "mz-modules": "^2.1.0",
+        "platform": "^1.3.1",
+        "sdk-base": "^2.0.1",
+        "stream-http": "2.8.2",
+        "stream-wormhole": "^1.0.4",
+        "urllib": "^2.33.1",
+        "utility": "^1.8.0",
+        "xml2js": "^0.4.16"
+      }
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "angular-cropperjs": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/angular-cropperjs/-/angular-cropperjs-1.0.1.tgz",
+      "integrity": "sha512-ojDuXzpMo10aKgDn5lPAiWxHmrOdnLVxCL1SbSkIWy73BafhVzOm8xJiP+Ijg8Bt4WuZOhEHoJ9AEo4+2yxaJQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "angular2-draggable": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/angular2-draggable/-/angular2-draggable-2.3.2.tgz",
+      "integrity": "sha512-rw2O/icgVang8uSVIU7nmm59f1DceSAUQkOuSGYnKbv/h8EbhJ9099sCjh/I5LymZBza1XPKeFZofIvhekdE+A==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "angular2-fontawesome": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/angular2-fontawesome/-/angular2-fontawesome-5.2.1.tgz",
+      "integrity": "sha512-aS6Y8dBLFdSx4yqyqIQDujIKAHJjqvdaD/y3/qDPE/pHYd/HBZZMLBlHcVuocraA5TuPBWBxF1w9NxT+3J54nQ=="
+    },
+    "angularx-qrcode": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/angularx-qrcode/-/angularx-qrcode-1.6.4.tgz",
+      "integrity": "sha512-B0w/2+0V6G1yTOfknq7NQJ2iVQBN81aZkQ5nNYjjukVxDRshPQkah0hijxmgMyweXrlqr29qxNPcyRiKvLFebg==",
+      "requires": {
+        "qrcodejs2": "0.0.2"
+      }
+    },
+    "animate.css": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-3.7.2.tgz",
+      "integrity": "sha512-0bE8zYo7C0KvgOYrSVfrzkbYk6IOTVPNqkiHg2cbyF4Pq/PXzilz4BRWA3hwEUBoMp5VBgrC29lQIZyhRWdBTw=="
+    },
+    "ansi-colors": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+      "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+      "dev": true
+    },
+    "ansi-escapes": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+      "dev": true
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+      "dev": true
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "any-promise": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+      "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
+    },
+    "anymatch": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+      "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+      "requires": {
+        "micromatch": "^3.1.4",
+        "normalize-path": "^2.1.1"
+      },
+      "dependencies": {
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        }
+      }
+    },
+    "app-root-path": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
+      "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
+      "dev": true
+    },
+    "append-transform": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
+      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
+      "dev": true,
+      "requires": {
+        "default-require-extensions": "^2.0.0"
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+    },
+    "are-we-there-yet": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^2.0.6"
+      }
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+    },
+    "array-find-index": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+      "dev": true,
+      "optional": true
+    },
+    "array-flatten": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+      "dev": true
+    },
+    "array-slice": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+      "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+      "dev": true
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+    },
+    "arraybuffer.slice": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
+      "dev": true
+    },
+    "arrify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+      "dev": true
+    },
+    "asap": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+      "dev": true,
+      "optional": true
+    },
+    "asn1": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+      "dev": true,
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "4.10.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "assert": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+      "requires": {
+        "object-assign": "^4.1.1",
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+      "dev": true
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+    },
+    "ast-types": {
+      "version": "0.13.2",
+      "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz",
+      "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA=="
+    },
+    "async": {
+      "version": "0.2.10",
+      "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+      "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
+    },
+    "async-each": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
+    },
+    "async-foreach": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+      "dev": true,
+      "optional": true
+    },
+    "async-limiter": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+      "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+      "dev": true
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+      "dev": true
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+    },
+    "autoprefixer": {
+      "version": "9.3.1",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.3.1.tgz",
+      "integrity": "sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.3.3",
+        "caniuse-lite": "^1.0.30000898",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^7.0.5",
+        "postcss-value-parser": "^3.3.1"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+      "dev": true
+    },
+    "aws4": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+      "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+      "dev": true
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "esutils": "^2.0.2",
+        "js-tokens": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "js-tokens": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+          "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "babel-generator": {
+      "version": "6.26.1",
+      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+      "dev": true,
+      "requires": {
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "detect-indent": "^4.0.0",
+        "jsesc": "^1.3.0",
+        "lodash": "^4.17.4",
+        "source-map": "^0.5.7",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "dev": true,
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "babel-template": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-traverse": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "debug": "^2.6.8",
+        "globals": "^9.18.0",
+        "invariant": "^2.2.2",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.4",
+        "to-fast-properties": "^1.0.3"
+      }
+    },
+    "babylon": {
+      "version": "6.18.0",
+      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+      "dev": true
+    },
+    "backo2": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "base64-arraybuffer": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
+      "dev": true
+    },
+    "base64-js": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+    },
+    "base64id": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "dev": true,
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "better-assert": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+      "dev": true,
+      "requires": {
+        "callsite": "1.0.0"
+      }
+    },
+    "big.js": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+    },
+    "binary-extensions": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+    },
+    "binary-search-tree": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
+      "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=",
+      "requires": {
+        "underscore": "~1.4.4"
+      }
+    },
+    "blob": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+      "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
+      "dev": true
+    },
+    "block-stream": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "inherits": "~2.0.0"
+      }
+    },
+    "blocking-proxy": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
+      "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
+    },
+    "bluebird": {
+      "version": "3.5.5",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
+      "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w=="
+    },
+    "bn.js": {
+      "version": "4.11.8",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+    },
+    "body-parser": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "on-finished": "~2.3.0",
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      },
+      "dependencies": {
+        "http-errors": {
+          "version": "1.7.2",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+          "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.1",
+            "statuses": ">= 1.5.0 < 2",
+            "toidentifier": "1.0.0"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        },
+        "raw-body": {
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+          "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+          "dev": true,
+          "requires": {
+            "bytes": "3.1.0",
+            "http-errors": "1.7.2",
+            "iconv-lite": "0.4.24",
+            "unpipe": "1.0.0"
+          }
+        }
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "dev": true,
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      }
+    },
+    "bootstrap": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
+      "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag=="
+    },
+    "bowser": {
+      "version": "1.9.4",
+      "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz",
+      "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ=="
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+    },
+    "browser-image-compression": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/browser-image-compression/-/browser-image-compression-1.0.6.tgz",
+      "integrity": "sha512-gb++v1g26BgV/I9qrdXNzirFLDGcOiPmobVxuTJymNTFHbbxJnZ74o1GRoYHjDTgOt1Iypqh4Wk1K03C8tjXHQ=="
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+      "requires": {
+        "bn.js": "^4.1.0",
+        "randombytes": "^2.0.1"
+      }
+    },
+    "browserify-sign": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+      "requires": {
+        "bn.js": "^4.1.1",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.2",
+        "elliptic": "^6.0.0",
+        "inherits": "^2.0.1",
+        "parse-asn1": "^5.0.0"
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz",
+      "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30000989",
+        "electron-to-chromium": "^1.3.247",
+        "node-releases": "^1.1.29"
+      }
+    },
+    "browserstack": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
+      "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "buffer": {
+      "version": "4.9.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-alloc": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc-unsafe": "^1.1.0",
+        "buffer-fill": "^1.0.0"
+      }
+    },
+    "buffer-alloc-unsafe": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+      "dev": true
+    },
+    "buffer-fill": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+      "dev": true
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+      "dev": true
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+    },
+    "builtin-modules": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
+    },
+    "builtins": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+      "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+    },
+    "cacache": {
+      "version": "12.0.3",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
+      "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+      "requires": {
+        "bluebird": "^3.5.5",
+        "chownr": "^1.1.1",
+        "figgy-pudding": "^3.5.1",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.1.15",
+        "infer-owner": "^1.0.3",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.3",
+        "ssri": "^6.0.1",
+        "unique-filename": "^1.1.1",
+        "y18n": "^4.0.0"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
+        }
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "caller-callsite": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+      "dev": true,
+      "requires": {
+        "callsites": "^2.0.0"
+      }
+    },
+    "caller-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+      "dev": true,
+      "requires": {
+        "caller-callsite": "^2.0.0"
+      }
+    },
+    "callsite": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
+      "dev": true
+    },
+    "callsites": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+      "dev": true
+    },
+    "camelcase": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+      "dev": true,
+      "optional": true
+    },
+    "camelcase-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^2.0.0",
+        "map-obj": "^1.0.0"
+      }
+    },
+    "caniuse-lite": {
+      "version": "1.0.30000989",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
+      "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
+      "dev": true
+    },
+    "canonical-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz",
+      "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
+      "dev": true
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+      "dev": true
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "chardet": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+      "dev": true
+    },
+    "chokidar": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+      "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+      "requires": {
+        "anymatch": "^2.0.0",
+        "async-each": "^1.0.1",
+        "braces": "^2.3.2",
+        "fsevents": "^1.2.7",
+        "glob-parent": "^3.1.0",
+        "inherits": "^2.0.3",
+        "is-binary-path": "^1.0.0",
+        "is-glob": "^4.0.0",
+        "normalize-path": "^3.0.0",
+        "path-is-absolute": "^1.0.0",
+        "readdirp": "^2.2.1",
+        "upath": "^1.1.1"
+      }
+    },
+    "chownr": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
+      "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A=="
+    },
+    "chrome-trace-event": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+      "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "circular-dependency-plugin": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz",
+      "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==",
+      "dev": true
+    },
+    "circular-json": {
+      "version": "0.5.9",
+      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
+      "dev": true
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+      "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      }
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-width": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+      "dev": true
+    },
+    "cliui": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wrap-ansi": "^2.0.0"
+      }
+    },
+    "clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+      "dev": true
+    },
+    "clone-deep": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+      "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+      "dev": true,
+      "requires": {
+        "for-own": "^1.0.0",
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.0",
+        "shallow-clone": "^1.0.0"
+      }
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+    },
+    "co-defer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/co-defer/-/co-defer-1.0.0.tgz",
+      "integrity": "sha1-Pkp4eo7tawoh7ih8CU9+jeDTyBg="
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+      "dev": true
+    },
+    "codelyzer": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
+      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
+      "dev": true,
+      "requires": {
+        "app-root-path": "^2.1.0",
+        "css-selector-tokenizer": "^0.7.0",
+        "cssauron": "^1.4.0",
+        "semver-dsl": "^1.0.1",
+        "source-map": "^0.5.7",
+        "sprintf-js": "^1.1.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "sprintf-js": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+          "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+          "dev": true
+        }
+      }
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+    },
+    "colors": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+      "dev": true
+    },
+    "combine-lists": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
+      "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.5.0"
+      }
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "dev": true,
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.20.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+    },
+    "compare-versions": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz",
+      "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==",
+      "dev": true
+    },
+    "component-bind": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+    },
+    "component-inherit": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+      "dev": true
+    },
+    "compressible": {
+      "version": "2.0.17",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+      "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+      "dev": true,
+      "requires": {
+        "mime-db": ">= 1.40.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+      "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+          "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+          "dev": true
+        }
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+      "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "finalhandler": "1.1.2",
+        "parseurl": "~1.3.3",
+        "utils-merge": "1.0.1"
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+      "dev": true
+    },
+    "console-browserify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+      "requires": {
+        "date-now": "^0.1.4"
+      }
+    },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+      "dev": true,
+      "optional": true
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
+    },
+    "content-disposition": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.2"
+      }
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+    },
+    "convert-source-map": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+      "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+      "dev": true
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+    },
+    "copy-to": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
+      "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
+    },
+    "copy-webpack-plugin": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz",
+      "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.0",
+        "loader-utils": "^1.1.0",
+        "minimatch": "^3.0.4",
+        "p-limit": "^1.0.0",
+        "serialize-javascript": "^1.4.0"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "10.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+          "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.1",
+            "chownr": "^1.0.1",
+            "glob": "^7.1.2",
+            "graceful-fs": "^4.1.11",
+            "lru-cache": "^4.1.1",
+            "mississippi": "^2.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^5.2.4",
+            "unique-filename": "^1.1.0",
+            "y18n": "^4.0.0"
+          }
+        },
+        "find-cache-dir": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+          "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^1.0.0",
+            "pkg-dir": "^2.0.0"
+          }
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^2.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^2.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "make-dir": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+          "dev": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "mississippi": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+          "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^2.0.1",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+          "dev": true,
+          "requires": {
+            "p-try": "^1.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^1.1.0"
+          }
+        },
+        "p-try": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+          "dev": true
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+          "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.1.0"
+          }
+        },
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "ssri": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+          "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "^5.1.1"
+          }
+        }
+      }
+    },
+    "core-js": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+      "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+    },
+    "cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+      "dev": true,
+      "requires": {
+        "import-fresh": "^2.0.0",
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.13.1",
+        "parse-json": "^4.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
+          }
+        }
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.0.0"
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cropperjs": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.4.1.tgz",
+      "integrity": "sha512-PzKN8nVbFCxw5vp4nLMtsMcBcRtBJzliPZMr9HpbJ75vZuTK3mSbimKEfmxXmJwiF+ngp/JVd1wh5F7z3h4lUg=="
+    },
+    "cross-spawn": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lru-cache": "^4.0.1",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-element-queries": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/css-element-queries/-/css-element-queries-1.2.1.tgz",
+      "integrity": "sha512-hiI1tSzf+U/gE13qhfwnCvN90Ay0THnE+mT3pjN/c/mvFmEUHZVNrvMJrrkw2ppOzkl69FdgH2ZGZENYQUaN2A=="
+    },
+    "css-parse": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
+      "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
+      "dev": true
+    },
+    "css-selector-tokenizer": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+      "dev": true,
+      "requires": {
+        "cssesc": "^0.1.0",
+        "fastparse": "^1.1.1",
+        "regexpu-core": "^1.0.0"
+      }
+    },
+    "cssauron": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz",
+      "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=",
+      "dev": true,
+      "requires": {
+        "through": "X.X.X"
+      }
+    },
+    "cssesc": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+      "dev": true
+    },
+    "currently-unhandled": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "array-find-index": "^1.0.1"
+      }
+    },
+    "custom-event": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+      "dev": true
+    },
+    "cyclist": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+      "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA="
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "data-uri-to-buffer": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz",
+      "integrity": "sha512-OkVVLrerfAKZlW2ZZ3Ve2y65jgiWqBKsTfUIAFbn8nVbPcCZg6l6gikKlEYv0kXcmzqGm6mFq/Jf2vriuEkv8A==",
+      "requires": {
+        "@types/node": "^8.0.7"
+      },
+      "dependencies": {
+        "@types/node": {
+          "version": "8.10.53",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.53.tgz",
+          "integrity": "sha512-aOmXdv1a1/vYUn1OT1CED8ftbkmmYbKhKGSyMDeJiidLvKRKvZUQOdXwG/wcNY7T1Qb0XTlVdiYjIq00U7pLrQ=="
+        }
+      }
+    },
+    "date-fns": {
+      "version": "1.30.1",
+      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
+      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw=="
+    },
+    "date-format": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
+      "dev": true
+    },
+    "date-now": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
+    },
+    "dateformat": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
+      "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI="
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "requires": {
+        "ms": "2.0.0"
+      },
+      "dependencies": {
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+        }
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
+    },
+    "decimal.js": {
+      "version": "10.2.0",
+      "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz",
+      "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw=="
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+    },
+    "deep-equal": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz",
+      "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==",
+      "dev": true,
+      "requires": {
+        "is-arguments": "^1.0.4",
+        "is-date-object": "^1.0.1",
+        "is-regex": "^1.0.4",
+        "object-is": "^1.0.1",
+        "object-keys": "^1.1.1",
+        "regexp.prototype.flags": "^1.2.0"
+      }
+    },
+    "deep-is": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+    },
+    "default-gateway": {
+      "version": "2.7.2",
+      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
+      "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+      "dev": true,
+      "requires": {
+        "execa": "^0.10.0",
+        "ip-regex": "^2.1.0"
+      }
+    },
+    "default-require-extensions": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
+      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
+      "dev": true,
+      "requires": {
+        "strip-bom": "^3.0.0"
+      },
+      "dependencies": {
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        }
+      }
+    },
+    "default-user-agent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz",
+      "integrity": "sha1-FsRu/cq6PtxF8k8r1IaLAbfCrcY=",
+      "requires": {
+        "os-name": "~1.0.3"
+      }
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+      "dev": true,
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "degenerator": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
+      "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
+      "requires": {
+        "ast-types": "0.x.x",
+        "escodegen": "1.x.x",
+        "esprima": "3.x.x"
+      }
+    },
+    "del": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+      "dev": true,
+      "requires": {
+        "globby": "^6.1.0",
+        "is-path-cwd": "^1.0.0",
+        "is-path-in-cwd": "^1.0.0",
+        "p-map": "^1.1.1",
+        "pify": "^3.0.0",
+        "rimraf": "^2.2.8"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+              "dev": true
+            }
+          }
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+      "dev": true
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+      "dev": true,
+      "optional": true
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+    },
+    "dependency-graph": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz",
+      "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==",
+      "dev": true
+    },
+    "des.js": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+    },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "detect-node": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+      "dev": true
+    },
+    "di": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+      "dev": true
+    },
+    "diff": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      }
+    },
+    "digest-header": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/digest-header/-/digest-header-0.0.1.tgz",
+      "integrity": "sha1-Ecz23uxXZqw3l0TZAcEsuklRS+Y=",
+      "requires": {
+        "utility": "0.1.11"
+      },
+      "dependencies": {
+        "utility": {
+          "version": "0.1.11",
+          "resolved": "https://registry.npmjs.org/utility/-/utility-0.1.11.tgz",
+          "integrity": "sha1-/eYM+bTkdRlHoM9dEEzik2ciZxU=",
+          "requires": {
+            "address": ">=0.0.1"
+          }
+        }
+      }
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "dev": true
+    },
+    "dns-packet": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+      "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "dev": true,
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "dom-serialize": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+      "dev": true,
+      "requires": {
+        "custom-event": "~1.0.0",
+        "ent": "~2.2.0",
+        "extend": "^3.0.0",
+        "void-elements": "^2.0.0"
+      }
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
+    },
+    "domino": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.3.tgz",
+      "integrity": "sha512-EwjTbUv1Q/RLQOdn9k7ClHutrQcWGsfXaRQNOnM/KgK4xDBoLFEcIRFuBSxAx13Vfa63X029gXYrNFrSy+DOSg=="
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+      "dev": true,
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+    },
+    "electron-to-chromium": {
+      "version": "1.3.251",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.251.tgz",
+      "integrity": "sha512-C5oOBdqJTYago4PBeew9duLqWZ3SlDnTRM+PMIgZd/ILFrT5AfaAGd3jRNEfuPklFHFqOjfwbCvXpyzEYb5sXg==",
+      "dev": true
+    },
+    "elliptic": {
+      "version": "6.5.0",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
+      "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
+      "requires": {
+        "bn.js": "^4.4.0",
+        "brorand": "^1.0.1",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.0"
+      }
+    },
+    "emojis-list": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
+    },
+    "encoding": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+      "dev": true,
+      "requires": {
+        "iconv-lite": "~0.4.13"
+      }
+    },
+    "end-of-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "end-or-error": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/end-or-error/-/end-or-error-1.0.1.tgz",
+      "integrity": "sha1-3HpiEP5403L+4kqLSJnb0VVBTcs="
+    },
+    "engine.io": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
+      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "base64id": "1.0.0",
+        "cookie": "0.3.1",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.0",
+        "ws": "~3.3.1"
+      },
+      "dependencies": {
+        "cookie": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+          "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "engine.io-client": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
+      "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "component-inherit": "0.0.3",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.1",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "ws": "~3.3.1",
+        "xmlhttprequest-ssl": "~1.5.4",
+        "yeast": "0.1.2"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "engine.io-parser": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
+      "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+      "dev": true,
+      "requires": {
+        "after": "0.8.2",
+        "arraybuffer.slice": "~0.0.7",
+        "base64-arraybuffer": "0.1.5",
+        "blob": "0.0.5",
+        "has-binary2": "~1.0.2"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+      "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.4.0",
+        "tapable": "^1.0.0"
+      }
+    },
+    "ent": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+      "dev": true
+    },
+    "err-code": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
+      "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+    },
+    "es6-promisify": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+      "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+      "requires": {
+        "es6-promise": "^4.0.3"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+    },
+    "escodegen": {
+      "version": "1.12.0",
+      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
+      "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
+      "requires": {
+        "esprima": "^3.1.3",
+        "estraverse": "^4.2.0",
+        "esutils": "^2.0.2",
+        "optionator": "^0.8.1",
+        "source-map": "~0.6.1"
+      }
+    },
+    "eslint-scope": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+      "requires": {
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      }
+    },
+    "esprima": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+      "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+    },
+    "esrecurse": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+      "requires": {
+        "estraverse": "^4.1.0"
+      }
+    },
+    "estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+    },
+    "esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
+    },
+    "eventemitter3": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+      "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+      "dev": true
+    },
+    "events": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+      "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="
+    },
+    "eventsource": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+      "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+      "dev": true,
+      "requires": {
+        "original": "^1.0.0"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+      "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^6.0.0",
+        "get-stream": "^3.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        }
+      }
+    },
+    "exit": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+      "dev": true
+    },
+    "expand-braces": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+      "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
+      "dev": true,
+      "requires": {
+        "array-slice": "^0.2.3",
+        "array-unique": "^0.2.1",
+        "braces": "^0.1.2"
+      },
+      "dependencies": {
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+          "dev": true
+        },
+        "braces": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+          "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
+          "dev": true,
+          "requires": {
+            "expand-range": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-range": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+      "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
+      "dev": true,
+      "requires": {
+        "is-number": "^0.1.1",
+        "repeat-string": "^0.2.2"
+      },
+      "dependencies": {
+        "is-number": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
+          "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
+          "dev": true
+        },
+        "repeat-string": {
+          "version": "0.2.2",
+          "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
+          "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
+          "dev": true
+        }
+      }
+    },
+    "express": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.7",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.19.0",
+        "content-disposition": "0.5.3",
+        "content-type": "~1.0.4",
+        "cookie": "0.4.0",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.1.2",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.5",
+        "qs": "6.7.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.1.2",
+        "send": "0.17.1",
+        "serve-static": "1.14.1",
+        "setprototypeof": "1.1.1",
+        "statuses": "~1.5.0",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+      "requires": {
+        "is-extendable": "^0.1.0"
+      }
+    },
+    "external-editor": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+      "dev": true,
+      "requires": {
+        "chardet": "^0.7.0",
+        "iconv-lite": "^0.4.24",
+        "tmp": "^0.0.33"
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
+    "fast-deep-equal": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+    },
+    "fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+    },
+    "fastparse": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+      "dev": true,
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "figgy-pudding": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="
+    },
+    "figures": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5"
+      }
+    },
+    "file-loader": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
+      "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+    },
+    "fileset": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.3",
+        "minimatch": "^3.0.3"
+      }
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      }
+    },
+    "find-cache-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+      "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^2.0.0",
+        "pkg-dir": "^3.0.0"
+      }
+    },
+    "find-up": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+      "requires": {
+        "locate-path": "^3.0.0"
+      }
+    },
+    "flatted": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+      "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
+      "dev": true
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz",
+      "integrity": "sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "font-awesome": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+      "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+    },
+    "for-own": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.1"
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+      "dev": true
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "dev": true,
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "formstream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/formstream/-/formstream-1.1.0.tgz",
+      "integrity": "sha1-UfOXDyYTbrCtRDBN5M67UCB7RHk=",
+      "requires": {
+        "destroy": "^1.0.4",
+        "mime": "^1.3.4",
+        "pause-stream": "~0.0.11"
+      }
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+      "dev": true
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-access": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+      "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+      "dev": true,
+      "requires": {
+        "null-check": "^1.0.0"
+      }
+    },
+    "fs-minipass": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
+      "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
+      "dev": true,
+      "requires": {
+        "minipass": "^2.2.1"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "fsevents": {
+      "version": "1.2.9",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+      "optional": true,
+      "requires": {
+        "nan": "^2.12.1",
+        "node-pre-gyp": "^0.12.0"
+      },
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "aproba": {
+          "version": "1.2.0",
+          "bundled": true,
+          "optional": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "delegates": "^1.0.0",
+            "readable-stream": "^2.0.6"
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "balanced-match": "^1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "chownr": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "bundled": true,
+          "optional": true
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": true,
+          "optional": true
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "debug": {
+          "version": "4.1.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "deep-extend": {
+          "version": "0.6.0",
+          "bundled": true,
+          "optional": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "detect-libc": {
+          "version": "1.0.3",
+          "bundled": true,
+          "optional": true
+        },
+        "fs-minipass": {
+          "version": "1.2.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "aproba": "^1.0.3",
+            "console-control-strings": "^1.0.0",
+            "has-unicode": "^2.0.0",
+            "object-assign": "^4.1.0",
+            "signal-exit": "^3.0.0",
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wide-align": "^1.1.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minimatch": "^3.0.4"
+          }
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "once": "^1.3.0",
+            "wrappy": "1"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "bundled": true,
+          "optional": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true,
+          "optional": true
+        },
+        "minipass": {
+          "version": "2.3.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          }
+        },
+        "minizlib": {
+          "version": "1.2.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "needle": {
+          "version": "2.3.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "debug": "^4.1.0",
+            "iconv-lite": "^0.4.4",
+            "sax": "^1.2.4"
+          }
+        },
+        "node-pre-gyp": {
+          "version": "0.12.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "detect-libc": "^1.0.2",
+            "mkdirp": "^0.5.1",
+            "needle": "^2.2.1",
+            "nopt": "^4.0.1",
+            "npm-packlist": "^1.1.6",
+            "npmlog": "^4.0.2",
+            "rc": "^1.2.7",
+            "rimraf": "^2.6.1",
+            "semver": "^5.3.0",
+            "tar": "^4"
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.6",
+          "bundled": true,
+          "optional": true
+        },
+        "npm-packlist": {
+          "version": "1.4.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ignore-walk": "^3.0.1",
+            "npm-bundled": "^1.0.1"
+          }
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "are-we-there-yet": "~1.1.2",
+            "console-control-strings": "~1.1.0",
+            "gauge": "~2.7.3",
+            "set-blocking": "~2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "wrappy": "1"
+          }
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "os-homedir": "^1.0.0",
+            "os-tmpdir": "^1.0.0"
+          }
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "rc": {
+          "version": "1.2.8",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "deep-extend": "^0.6.0",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "bundled": true,
+              "optional": true
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "rimraf": {
+          "version": "2.6.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "bundled": true,
+          "optional": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "bundled": true,
+          "optional": true
+        },
+        "sax": {
+          "version": "1.2.4",
+          "bundled": true,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.7.0",
+          "bundled": true,
+          "optional": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "tar": {
+          "version": "4.4.8",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.2"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "wide-align": {
+          "version": "1.1.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "string-width": "^1.0.2 || 2"
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "bundled": true,
+          "optional": true
+        }
+      }
+    },
+    "fstream": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+      "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "inherits": "~2.0.0",
+        "mkdirp": ">=0.5 0",
+        "rimraf": "2"
+      }
+    },
+    "ftp": {
+      "version": "0.3.10",
+      "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
+      "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
+      "requires": {
+        "readable-stream": "1.1.x",
+        "xregexp": "2.0.0"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+        },
+        "readable-stream": {
+          "version": "1.1.14",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+          "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.1",
+            "isarray": "0.0.1",
+            "string_decoder": "~0.10.x"
+          }
+        },
+        "string_decoder": {
+          "version": "0.10.31",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        }
+      }
+    },
+    "function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
+    },
+    "gauge": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "aproba": "^1.0.3",
+        "console-control-strings": "^1.0.0",
+        "has-unicode": "^2.0.0",
+        "object-assign": "^4.1.0",
+        "signal-exit": "^3.0.0",
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wide-align": "^1.1.0"
+      }
+    },
+    "gaze": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "globule": "^1.0.0"
+      }
+    },
+    "genfun": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
+      "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
+      "dev": true
+    },
+    "get-caller-file": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+      "dev": true
+    },
+    "get-ready": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz",
+      "integrity": "sha1-+RgX8emt7P6hOlYq38jeiDqzR4I="
+    },
+    "get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+      "dev": true,
+      "optional": true
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+      "dev": true
+    },
+    "get-uri": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.3.tgz",
+      "integrity": "sha512-x5j6Ks7FOgLD/GlvjKwgu7wdmMR55iuRHhn8hj/+gA+eSbxQvZ+AEomq+3MgVEZj1vpi738QahGbCCSIDtXtkw==",
+      "requires": {
+        "data-uri-to-buffer": "2",
+        "debug": "4",
+        "extend": "~3.0.2",
+        "file-uri-to-path": "1",
+        "ftp": "~0.3.10",
+        "readable-stream": "3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "readable-stream": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+          "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.4",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+      "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-parent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "requires": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      },
+      "dependencies": {
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        }
+      }
+    },
+    "globals": {
+      "version": "9.18.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+      "dev": true
+    },
+    "globby": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+      "dev": true,
+      "requires": {
+        "array-union": "^1.0.1",
+        "dir-glob": "^2.0.0",
+        "glob": "^7.1.2",
+        "ignore": "^3.3.5",
+        "pify": "^3.0.0",
+        "slash": "^1.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "globule": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "~7.1.1",
+        "lodash": "~4.17.10",
+        "minimatch": "~3.0.2"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+      "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+    },
+    "hammerjs": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
+      "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
+    },
+    "handle-thing": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+      "dev": true
+    },
+    "handlebars": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
+      "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
+      "dev": true,
+      "requires": {
+        "neo-async": "^2.6.0",
+        "optimist": "^0.6.1",
+        "source-map": "^0.6.1",
+        "uglify-js": "^3.1.4"
+      }
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+      "dev": true
+    },
+    "har-validator": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.5.5",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.1"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "has-binary2": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+      "dev": true,
+      "requires": {
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        }
+      }
+    },
+    "has-cors": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+      "dev": true
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+      "dev": true,
+      "optional": true
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "hosted-git-info": {
+      "version": "2.8.4",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
+      "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
+      "dev": true
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "html-entities": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+      "dev": true
+    },
+    "http-cache-semantics": {
+      "version": "3.8.1",
+      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+      "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+      "dev": true
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "dev": true
+    },
+    "http-errors": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+      "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.4",
+        "setprototypeof": "1.1.1",
+        "statuses": ">= 1.5.0 < 2",
+        "toidentifier": "1.0.0"
+      }
+    },
+    "http-parser-js": {
+      "version": "0.4.10",
+      "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+      "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
+      "dev": true
+    },
+    "http-proxy": {
+      "version": "1.17.0",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
+      "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^3.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-agent": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
+      "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
+      "requires": {
+        "agent-base": "4",
+        "debug": "3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+        }
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.18.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+      "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+      "dev": true,
+      "requires": {
+        "http-proxy": "^1.16.2",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.5",
+        "micromatch": "^3.1.9"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
+    },
+    "https-proxy-agent": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
+      "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
+      "requires": {
+        "agent-base": "^4.3.0",
+        "debug": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "humanize-ms": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+      "requires": {
+        "ms": "^2.0.0"
+      }
+    },
+    "iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "ieee754": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
+    },
+    "ignore": {
+      "version": "3.3.10",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+      "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+      "dev": true
+    },
+    "ignore-walk": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+      "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+      "dev": true,
+      "requires": {
+        "minimatch": "^3.0.4"
+      }
+    },
+    "image-size": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "dev": true,
+      "optional": true
+    },
+    "immediate": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+      "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+      "dev": true,
+      "requires": {
+        "caller-path": "^2.0.0",
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-local": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+      "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+      "dev": true,
+      "requires": {
+        "pkg-dir": "^3.0.0",
+        "resolve-cwd": "^2.0.0"
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+    },
+    "in-publish": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+      "dev": true,
+      "optional": true
+    },
+    "indent-string": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "indexof": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+      "dev": true
+    },
+    "infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+      "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+      "dev": true
+    },
+    "inquirer": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
+      "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^3.0.0",
+        "chalk": "^2.0.0",
+        "cli-cursor": "^2.1.0",
+        "cli-width": "^2.0.0",
+        "external-editor": "^3.0.0",
+        "figures": "^2.0.0",
+        "lodash": "^4.17.10",
+        "mute-stream": "0.0.7",
+        "run-async": "^2.2.0",
+        "rxjs": "^6.1.0",
+        "string-width": "^2.1.0",
+        "strip-ansi": "^5.0.0",
+        "through": "^2.3.6"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+              "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "install": {
+      "version": "0.12.2",
+      "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz",
+      "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg=="
+    },
+    "internal-ip": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
+      "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+      "dev": true,
+      "requires": {
+        "default-gateway": "^2.6.0",
+        "ipaddr.js": "^1.5.2"
+      }
+    },
+    "interpret": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+      "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+      "dev": true
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+      "dev": true
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+    },
+    "ip-regex": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+      "dev": true
+    },
+    "ipaddr.js": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-arguments": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+      "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+      "dev": true
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "dev": true
+    },
+    "is-binary-path": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+      "requires": {
+        "binary-extensions": "^1.0.0"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+    },
+    "is-class-hotfix": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz",
+      "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ=="
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-date-object": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+      "dev": true
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+    },
+    "is-finite": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-glob": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-path-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "^1.0.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.1"
+      }
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "is-regex": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.1"
+      }
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-type-of": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-1.2.1.tgz",
+      "integrity": "sha512-uK0kyX9LZYhSDS7H2sVJQJop1UnWPWmo5RvR3q2kFH6AUHYs7sOrVg0b4nyBHw29kRRNFofYN/JbHZDlHiItTA==",
+      "requires": {
+        "core-util-is": "^1.0.2",
+        "is-class-hotfix": "~0.0.6",
+        "isstream": "~0.1.2"
+      }
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+      "dev": true
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+      "dev": true,
+      "optional": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+    },
+    "isbinaryfile": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+      "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc": "^1.2.0"
+      }
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+    },
+    "istanbul": {
+      "version": "0.4.5",
+      "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
+      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1.0.x",
+        "async": "1.x",
+        "escodegen": "1.8.x",
+        "esprima": "2.7.x",
+        "glob": "^5.0.15",
+        "handlebars": "^4.0.1",
+        "js-yaml": "3.x",
+        "mkdirp": "0.5.x",
+        "nopt": "3.x",
+        "once": "1.x",
+        "resolve": "1.1.x",
+        "supports-color": "^3.1.0",
+        "which": "^1.1.1",
+        "wordwrap": "^1.0.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "1.5.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+          "dev": true
+        },
+        "escodegen": {
+          "version": "1.8.1",
+          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+          "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+          "dev": true,
+          "requires": {
+            "esprima": "^2.7.1",
+            "estraverse": "^1.9.1",
+            "esutils": "^2.0.2",
+            "optionator": "^0.8.1",
+            "source-map": "~0.2.0"
+          }
+        },
+        "esprima": {
+          "version": "2.7.3",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+          "dev": true
+        },
+        "estraverse": {
+          "version": "1.9.3",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+          "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
+          "dev": true
+        },
+        "glob": {
+          "version": "5.0.15",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+          "dev": true,
+          "requires": {
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "2 || 3",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "resolve": {
+          "version": "1.1.7",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-api": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.6.tgz",
+      "integrity": "sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA==",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.2",
+        "compare-versions": "^3.4.0",
+        "fileset": "^2.0.3",
+        "istanbul-lib-coverage": "^2.0.5",
+        "istanbul-lib-hook": "^2.0.7",
+        "istanbul-lib-instrument": "^3.3.0",
+        "istanbul-lib-report": "^2.0.8",
+        "istanbul-lib-source-maps": "^3.0.6",
+        "istanbul-reports": "^2.2.4",
+        "js-yaml": "^3.13.1",
+        "make-dir": "^2.1.0",
+        "minimatch": "^3.0.4",
+        "once": "^1.4.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+          "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+          "dev": true,
+          "requires": {
+            "lodash": "^4.17.14"
+          }
+        },
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        },
+        "istanbul-lib-instrument": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+          "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+          "dev": true,
+          "requires": {
+            "@babel/generator": "^7.4.0",
+            "@babel/parser": "^7.4.3",
+            "@babel/template": "^7.4.0",
+            "@babel/traverse": "^7.4.3",
+            "@babel/types": "^7.4.0",
+            "istanbul-lib-coverage": "^2.0.5",
+            "semver": "^6.0.0"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-instrumenter-loader": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
+      "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+      "dev": true,
+      "requires": {
+        "convert-source-map": "^1.5.0",
+        "istanbul-lib-instrument": "^1.7.3",
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^0.3.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "5.5.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+          "dev": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+          "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+          "dev": true,
+          "requires": {
+            "ajv": "^5.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-lib-coverage": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+      "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
+      "dev": true
+    },
+    "istanbul-lib-hook": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
+      "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
+      "dev": true,
+      "requires": {
+        "append-transform": "^1.0.0"
+      }
+    },
+    "istanbul-lib-instrument": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
+      "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
+      "dev": true,
+      "requires": {
+        "babel-generator": "^6.18.0",
+        "babel-template": "^6.16.0",
+        "babel-traverse": "^6.18.0",
+        "babel-types": "^6.18.0",
+        "babylon": "^6.18.0",
+        "istanbul-lib-coverage": "^1.2.1",
+        "semver": "^5.3.0"
+      }
+    },
+    "istanbul-lib-report": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
+      "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
+      "dev": true,
+      "requires": {
+        "istanbul-lib-coverage": "^2.0.5",
+        "make-dir": "^2.1.0",
+        "supports-color": "^6.1.0"
+      },
+      "dependencies": {
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-lib-source-maps": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
+      "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.1",
+        "istanbul-lib-coverage": "^2.0.5",
+        "make-dir": "^2.1.0",
+        "rimraf": "^2.6.3",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-reports": {
+      "version": "2.2.6",
+      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz",
+      "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==",
+      "dev": true,
+      "requires": {
+        "handlebars": "^4.1.2"
+      }
+    },
+    "jasmine": {
+      "version": "2.8.0",
+      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
+      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
+      "dev": true,
+      "requires": {
+        "exit": "^0.1.2",
+        "glob": "^7.0.6",
+        "jasmine-core": "~2.8.0"
+      },
+      "dependencies": {
+        "jasmine-core": {
+          "version": "2.8.0",
+          "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
+          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
+          "dev": true
+        }
+      }
+    },
+    "jasmine-core": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz",
+      "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==",
+      "dev": true
+    },
+    "jasmine-spec-reporter": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
+      "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
+      "dev": true,
+      "requires": {
+        "colors": "1.1.2"
+      }
+    },
+    "jasminewd2": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
+      "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
+      "dev": true
+    },
+    "js-base64": {
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
+      "dev": true,
+      "optional": true
+    },
+    "js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+    },
+    "js-yaml": {
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      },
+      "dependencies": {
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+        }
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "dev": true
+    },
+    "jsesc": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+      "dev": true
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+      "dev": true
+    },
+    "json3": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+      "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+      "dev": true
+    },
+    "json5": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+      "requires": {
+        "minimist": "^1.2.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+        }
+      }
+    },
+    "jsonparse": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+      "dev": true
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "jstoxml": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/jstoxml/-/jstoxml-0.2.4.tgz",
+      "integrity": "sha1-/z+2eFaIOgMpU8fOjOdIYhD0hEc="
+    },
+    "jszip": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
+      "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
+      "dev": true,
+      "requires": {
+        "lie": "~3.3.0",
+        "pako": "~1.0.2",
+        "readable-stream": "~2.3.6",
+        "set-immediate-shim": "~1.0.1"
+      },
+      "dependencies": {
+        "lie": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+          "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+          "dev": true,
+          "requires": {
+            "immediate": "~3.0.5"
+          }
+        }
+      }
+    },
+    "karma": {
+      "version": "3.1.4",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-3.1.4.tgz",
+      "integrity": "sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.3.0",
+        "body-parser": "^1.16.1",
+        "chokidar": "^2.0.3",
+        "colors": "^1.1.0",
+        "combine-lists": "^1.0.0",
+        "connect": "^3.6.0",
+        "core-js": "^2.2.0",
+        "di": "^0.0.1",
+        "dom-serialize": "^2.2.0",
+        "expand-braces": "^0.1.1",
+        "flatted": "^2.0.0",
+        "glob": "^7.1.1",
+        "graceful-fs": "^4.1.2",
+        "http-proxy": "^1.13.0",
+        "isbinaryfile": "^3.0.0",
+        "lodash": "^4.17.5",
+        "log4js": "^3.0.0",
+        "mime": "^2.3.1",
+        "minimatch": "^3.0.2",
+        "optimist": "^0.6.1",
+        "qjobs": "^1.1.4",
+        "range-parser": "^1.2.0",
+        "rimraf": "^2.6.0",
+        "safe-buffer": "^5.0.1",
+        "socket.io": "2.1.1",
+        "source-map": "^0.6.1",
+        "tmp": "0.0.33",
+        "useragent": "2.3.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "dev": true
+        }
+      }
+    },
+    "karma-chrome-launcher": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
+      "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
+      "dev": true,
+      "requires": {
+        "fs-access": "^1.0.0",
+        "which": "^1.2.1"
+      }
+    },
+    "karma-cli": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz",
+      "integrity": "sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw==",
+      "requires": {
+        "resolve": "^1.3.3"
+      }
+    },
+    "karma-coverage-istanbul-reporter": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz",
+      "integrity": "sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg==",
+      "dev": true,
+      "requires": {
+        "istanbul-api": "^2.1.6",
+        "minimatch": "^3.0.4"
+      }
+    },
+    "karma-jasmine": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz",
+      "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==",
+      "dev": true,
+      "requires": {
+        "jasmine-core": "^3.3"
+      }
+    },
+    "karma-jasmine-html-reporter": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.4.2.tgz",
+      "integrity": "sha512-7g0gPj8+9JepCNJR9WjDyQ2RkZ375jpdurYQyAYv8PorUCadepl8vrD6LmMqOGcM17cnrynBawQYZHaumgDjBw==",
+      "dev": true
+    },
+    "karma-source-map-support": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz",
+      "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==",
+      "dev": true,
+      "requires": {
+        "source-map-support": "^0.5.5"
+      }
+    },
+    "killable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+      "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+      "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+    },
+    "ko-sleep": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/ko-sleep/-/ko-sleep-1.0.3.tgz",
+      "integrity": "sha1-KKKgoUhei39BX/SI3uF9JHiKsII=",
+      "requires": {
+        "ms": "^2.0.0"
+      }
+    },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "dev": true,
+      "requires": {
+        "invert-kv": "^1.0.0"
+      }
+    },
+    "less": {
+      "version": "3.8.1",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
+      "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.2",
+        "errno": "^0.1.1",
+        "graceful-fs": "^4.1.2",
+        "image-size": "~0.5.0",
+        "mime": "^1.4.1",
+        "mkdirp": "^0.5.0",
+        "promise": "^7.1.1",
+        "request": "^2.83.0",
+        "source-map": "~0.6.0"
+      }
+    },
+    "less-loader": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
+      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.1",
+        "loader-utils": "^1.1.0",
+        "pify": "^3.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "levn": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+      "requires": {
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2"
+      }
+    },
+    "license-webpack-plugin": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz",
+      "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==",
+      "dev": true,
+      "requires": {
+        "webpack-sources": "^1.2.0"
+      }
+    },
+    "lie": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
+      "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
+      "requires": {
+        "immediate": "~3.0.5"
+      }
+    },
+    "load-json-file": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^2.2.0",
+        "pify": "^2.0.0",
+        "pinkie-promise": "^2.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
+    },
+    "loader-utils": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+      "requires": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^2.0.0",
+        "json5": "^1.0.1"
+      }
+    },
+    "localforage": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz",
+      "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==",
+      "requires": {
+        "lie": "3.1.1"
+      }
+    },
+    "locate-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+      "requires": {
+        "p-locate": "^3.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.15",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+    },
+    "lodash.assign": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.clonedeep": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+      "dev": true
+    },
+    "lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+      "dev": true
+    },
+    "lodash.mergewith": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+      "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.tail": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+      "dev": true
+    },
+    "log4js": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
+      "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==",
+      "dev": true,
+      "requires": {
+        "circular-json": "^0.5.5",
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "rfdc": "^1.1.2",
+        "streamroller": "0.7.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "loglevel": {
+      "version": "1.6.3",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz",
+      "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "lottie-web": {
+      "version": "5.5.8",
+      "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.5.8.tgz",
+      "integrity": "sha512-FBQG08X6ifTn6gt8c1m/d7eZC50nyFwmEUVlt/d/seZIAuy8StB1fRqdaUk3xMCDMr+RtPzsBtOXQ6iDhHT+XA=="
+    },
+    "loud-rejection": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.0"
+      }
+    },
+    "lru-cache": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+      "requires": {
+        "pseudomap": "^1.0.2",
+        "yallist": "^2.1.2"
+      }
+    },
+    "magic-string": {
+      "version": "0.25.3",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz",
+      "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==",
+      "dev": true,
+      "requires": {
+        "sourcemap-codec": "^1.4.4"
+      }
+    },
+    "make-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+      "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+      "requires": {
+        "pify": "^4.0.1",
+        "semver": "^5.6.0"
+      }
+    },
+    "make-error": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
+      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
+      "dev": true
+    },
+    "make-fetch-happen": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz",
+      "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==",
+      "dev": true,
+      "requires": {
+        "agentkeepalive": "^3.4.1",
+        "cacache": "^11.3.3",
+        "http-cache-semantics": "^3.8.1",
+        "http-proxy-agent": "^2.1.0",
+        "https-proxy-agent": "^2.2.1",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
+        "node-fetch-npm": "^2.0.2",
+        "promise-retry": "^1.1.1",
+        "socks-proxy-agent": "^4.0.0",
+        "ssri": "^6.0.0"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "mamacro": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+      "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA=="
+    },
+    "map-age-cleaner": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+      "dev": true,
+      "requires": {
+        "p-defer": "^1.0.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+    },
+    "map-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+      "dev": true,
+      "optional": true
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
+    },
+    "mem": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+      "dev": true,
+      "requires": {
+        "map-age-cleaner": "^0.1.1",
+        "mimic-fn": "^2.0.0",
+        "p-is-promise": "^2.0.0"
+      }
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+          "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+          "requires": {
+            "assign-symbols": "^1.0.0",
+            "is-extendable": "^1.0.1"
+          }
+        },
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      }
+    },
+    "mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+    },
+    "mime-db": {
+      "version": "1.40.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+      "dev": true
+    },
+    "mime-types": {
+      "version": "2.1.24",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+      "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+      "dev": true,
+      "requires": {
+        "mime-db": "1.40.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+      "dev": true
+    },
+    "mini-css-extract-plugin": {
+      "version": "0.4.4",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz",
+      "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "webpack-sources": "^1.1.0"
+      }
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+    },
+    "minipass": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.5.0.tgz",
+      "integrity": "sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.2",
+        "yallist": "^3.0.0"
+      },
+      "dependencies": {
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "minizlib": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+      "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+      "dev": true,
+      "requires": {
+        "minipass": "^2.2.1"
+      }
+    },
+    "mississippi": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+      "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^3.0.0",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mixin-object": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+      "dev": true,
+      "requires": {
+        "for-in": "^0.1.3",
+        "is-extendable": "^0.1.1"
+      },
+      "dependencies": {
+        "for-in": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
+          "dev": true
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+      "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+      "dev": true,
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+      "dev": true
+    },
+    "mute-stream": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+      "dev": true
+    },
+    "mz": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+      "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+      "requires": {
+        "any-promise": "^1.0.0",
+        "object-assign": "^4.0.1",
+        "thenify-all": "^1.0.0"
+      }
+    },
+    "mz-modules": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mz-modules/-/mz-modules-2.1.0.tgz",
+      "integrity": "sha512-sjk8lcRW3vrVYnZ+W+67L/2rL+jbO5K/N6PFGIcLWTiYytNr22Ah9FDXFs+AQntTM1boZcoHi5qS+CV1seuPog==",
+      "requires": {
+        "glob": "^7.1.2",
+        "ko-sleep": "^1.0.3",
+        "mkdirp": "^0.5.1",
+        "pump": "^3.0.0",
+        "rimraf": "^2.6.1"
+      }
+    },
+    "nan": {
+      "version": "2.14.0",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+      "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+      "optional": true
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+          "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+          "requires": {
+            "assign-symbols": "^1.0.0",
+            "is-extendable": "^1.0.1"
+          }
+        },
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "nedb": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz",
+      "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=",
+      "requires": {
+        "async": "0.2.10",
+        "binary-search-tree": "0.2.5",
+        "localforage": "^1.3.0",
+        "mkdirp": "~0.5.1",
+        "underscore": "~1.4.4"
+      }
+    },
+    "negotiator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+      "dev": true
+    },
+    "neo-async": {
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+      "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
+    },
+    "netmask": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
+      "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU="
+    },
+    "ng-lottie": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/ng-lottie/-/ng-lottie-0.3.2.tgz",
+      "integrity": "sha512-mALF+5PIp9r2/2N7XQTHK1VWckWLboBZNfe/31a4hmF6sKabTAXlG/VBU+ghWZwZ/pljzVzb5S4WRWXX6guyUA==",
+      "requires": {
+        "lottie-web": "^5.1.3"
+      }
+    },
+    "ng-zorro-antd": {
+      "version": "7.5.1",
+      "resolved": "https://registry.npmjs.org/ng-zorro-antd/-/ng-zorro-antd-7.5.1.tgz",
+      "integrity": "sha512-0V/LoARoluFjiPUX4Q7x+G7hVA+k+x4g4OyYaLLUAoPpK3o1kriR3VzjdKsuKl73gBoRHHq4SNDRSiqzfOWDeA==",
+      "requires": {
+        "@angular/cdk": "^7.0.0",
+        "@ant-design/icons-angular": "^2.1.0",
+        "date-fns": "^1.29.0",
+        "tslib": "^1.9.0"
+      }
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
+    "node-fetch-npm": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
+      "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
+      "dev": true,
+      "requires": {
+        "encoding": "^0.1.11",
+        "json-parse-better-errors": "^1.0.0",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "node-forge": {
+      "version": "0.7.5",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+      "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
+      "dev": true
+    },
+    "node-gyp": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "fstream": "^1.0.0",
+        "glob": "^7.0.3",
+        "graceful-fs": "^4.1.2",
+        "mkdirp": "^0.5.0",
+        "nopt": "2 || 3",
+        "npmlog": "0 || 1 || 2 || 3 || 4",
+        "osenv": "0",
+        "request": "^2.87.0",
+        "rimraf": "2",
+        "semver": "~5.3.0",
+        "tar": "^2.0.0",
+        "which": "1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "node-libs-browser": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+      "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.1",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "^1.0.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+        }
+      }
+    },
+    "node-releases": {
+      "version": "1.1.29",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.29.tgz",
+      "integrity": "sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==",
+      "dev": true,
+      "requires": {
+        "semver": "^5.3.0"
+      }
+    },
+    "node-sass": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz",
+      "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "async-foreach": "^0.1.3",
+        "chalk": "^1.1.1",
+        "cross-spawn": "^3.0.0",
+        "gaze": "^1.0.0",
+        "get-stdin": "^4.0.1",
+        "glob": "^7.0.3",
+        "in-publish": "^2.0.0",
+        "lodash.assign": "^4.2.0",
+        "lodash.clonedeep": "^4.3.2",
+        "lodash.mergewith": "^4.6.0",
+        "meow": "^3.7.0",
+        "mkdirp": "^0.5.1",
+        "nan": "^2.10.0",
+        "node-gyp": "^3.8.0",
+        "npmlog": "^4.0.0",
+        "request": "^2.88.0",
+        "sass-graph": "^2.2.4",
+        "stdout-stream": "^1.4.0",
+        "true-case-path": "^1.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true,
+          "optional": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "nopt": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "npm": {
+      "version": "6.11.2",
+      "resolved": "https://registry.npmjs.org/npm/-/npm-6.11.2.tgz",
+      "integrity": "sha512-OAkXqI4bm5MUvqVvqe6rxCXmJqrln8VDlkdftpOoayHKazz8IOCJAiCuKmz0TchL224EAKeG86umuD6RYNpuEg==",
+      "requires": {
+        "JSONStream": "^1.3.5",
+        "abbrev": "~1.1.1",
+        "ansicolors": "~0.3.2",
+        "ansistyles": "~0.1.3",
+        "aproba": "^2.0.0",
+        "archy": "~1.0.0",
+        "bin-links": "^1.1.3",
+        "bluebird": "^3.5.5",
+        "byte-size": "^5.0.1",
+        "cacache": "^12.0.3",
+        "call-limit": "^1.1.1",
+        "chownr": "^1.1.2",
+        "ci-info": "^2.0.0",
+        "cli-columns": "^3.1.2",
+        "cli-table3": "^0.5.1",
+        "cmd-shim": "^3.0.3",
+        "columnify": "~1.5.4",
+        "config-chain": "^1.1.12",
+        "debuglog": "*",
+        "detect-indent": "~5.0.0",
+        "detect-newline": "^2.1.0",
+        "dezalgo": "~1.0.3",
+        "editor": "~1.0.0",
+        "figgy-pudding": "^3.5.1",
+        "find-npm-prefix": "^1.0.2",
+        "fs-vacuum": "~1.2.10",
+        "fs-write-stream-atomic": "~1.0.10",
+        "gentle-fs": "^2.2.1",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.2.2",
+        "has-unicode": "~2.0.1",
+        "hosted-git-info": "^2.8.2",
+        "iferr": "^1.0.2",
+        "imurmurhash": "*",
+        "infer-owner": "^1.0.4",
+        "inflight": "~1.0.6",
+        "inherits": "^2.0.4",
+        "ini": "^1.3.5",
+        "init-package-json": "^1.10.3",
+        "is-cidr": "^3.0.0",
+        "json-parse-better-errors": "^1.0.2",
+        "lazy-property": "~1.0.0",
+        "libcipm": "^4.0.3",
+        "libnpm": "^3.0.1",
+        "libnpmaccess": "^3.0.2",
+        "libnpmhook": "^5.0.3",
+        "libnpmorg": "^1.0.1",
+        "libnpmsearch": "^2.0.2",
+        "libnpmteam": "^1.0.2",
+        "libnpx": "^10.2.0",
+        "lock-verify": "^2.1.0",
+        "lockfile": "^1.0.4",
+        "lodash._baseindexof": "*",
+        "lodash._baseuniq": "~4.6.0",
+        "lodash._bindcallback": "*",
+        "lodash._cacheindexof": "*",
+        "lodash._createcache": "*",
+        "lodash._getnative": "*",
+        "lodash.clonedeep": "~4.5.0",
+        "lodash.restparam": "*",
+        "lodash.union": "~4.6.0",
+        "lodash.uniq": "~4.5.0",
+        "lodash.without": "~4.4.0",
+        "lru-cache": "^5.1.1",
+        "meant": "~1.0.1",
+        "mississippi": "^3.0.0",
+        "mkdirp": "~0.5.1",
+        "move-concurrently": "^1.0.1",
+        "node-gyp": "^5.0.3",
+        "nopt": "~4.0.1",
+        "normalize-package-data": "^2.5.0",
+        "npm-audit-report": "^1.3.2",
+        "npm-cache-filename": "~1.0.2",
+        "npm-install-checks": "~3.0.0",
+        "npm-lifecycle": "^3.1.3",
+        "npm-package-arg": "^6.1.1",
+        "npm-packlist": "^1.4.4",
+        "npm-pick-manifest": "^3.0.0",
+        "npm-profile": "^4.0.2",
+        "npm-registry-fetch": "^4.0.0",
+        "npm-user-validate": "~1.0.0",
+        "npmlog": "~4.1.2",
+        "once": "~1.4.0",
+        "opener": "^1.5.1",
+        "osenv": "^0.1.5",
+        "pacote": "^9.5.8",
+        "path-is-inside": "~1.0.2",
+        "promise-inflight": "~1.0.1",
+        "qrcode-terminal": "^0.12.0",
+        "query-string": "^6.8.2",
+        "qw": "~1.0.1",
+        "read": "~1.0.7",
+        "read-cmd-shim": "^1.0.3",
+        "read-installed": "~4.0.3",
+        "read-package-json": "^2.1.0",
+        "read-package-tree": "^5.3.1",
+        "readable-stream": "^3.4.0",
+        "readdir-scoped-modules": "^1.1.0",
+        "request": "^2.88.0",
+        "retry": "^0.12.0",
+        "rimraf": "^2.6.3",
+        "safe-buffer": "^5.1.2",
+        "semver": "^5.7.1",
+        "sha": "^3.0.0",
+        "slide": "~1.1.6",
+        "sorted-object": "~2.0.1",
+        "sorted-union-stream": "~2.1.3",
+        "ssri": "^6.0.1",
+        "stringify-package": "^1.0.0",
+        "tar": "^4.4.10",
+        "text-table": "~0.2.0",
+        "tiny-relative-date": "^1.3.0",
+        "uid-number": "0.0.6",
+        "umask": "~1.1.0",
+        "unique-filename": "^1.1.1",
+        "unpipe": "~1.0.0",
+        "update-notifier": "^2.5.0",
+        "uuid": "^3.3.2",
+        "validate-npm-package-license": "^3.0.4",
+        "validate-npm-package-name": "~3.0.0",
+        "which": "^1.3.1",
+        "worker-farm": "^1.7.0",
+        "write-file-atomic": "^2.4.3"
+      },
+      "dependencies": {
+        "JSONStream": {
+          "version": "1.3.5",
+          "bundled": true,
+          "requires": {
+            "jsonparse": "^1.2.0",
+            "through": ">=2.2.7 <3"
+          }
+        },
+        "abbrev": {
+          "version": "1.1.1",
+          "bundled": true
+        },
+        "agent-base": {
+          "version": "4.3.0",
+          "bundled": true,
+          "requires": {
+            "es6-promisify": "^5.0.0"
+          }
+        },
+        "agentkeepalive": {
+          "version": "3.5.2",
+          "bundled": true,
+          "requires": {
+            "humanize-ms": "^1.2.1"
+          }
+        },
+        "ajv": {
+          "version": "5.5.2",
+          "bundled": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        },
+        "ansi-align": {
+          "version": "2.0.0",
+          "bundled": true,
+          "requires": {
+            "string-width": "^2.0.0"
+          }
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "bundled": true
+        },
+        "ansi-styles": {
+          "version": "3.2.1",
+          "bundled": true,
+          "requires": {
+            "color-convert": "^1.9.0"
+          }
+        },
+        "ansicolors": {
+          "version": "0.3.2",
+          "bundled": true
+        },
+        "ansistyles": {
+          "version": "0.1.3",
+          "bundled": true
+        },
+        "aproba": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "archy": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.4",
+          "bundled": true,
+          "requires": {
+            "delegates": "^1.0.0",
+            "readable-stream": "^2.0.6"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "asap": {
+          "version": "2.0.6",
+          "bundled": true
+        },
+        "asn1": {
+          "version": "0.2.4",
+          "bundled": true,
+          "requires": {
+            "safer-buffer": "~2.1.0"
+          }
+        },
+        "assert-plus": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "asynckit": {
+          "version": "0.4.0",
+          "bundled": true
+        },
+        "aws-sign2": {
+          "version": "0.7.0",
+          "bundled": true
+        },
+        "aws4": {
+          "version": "1.8.0",
+          "bundled": true
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "bcrypt-pbkdf": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "tweetnacl": "^0.14.3"
+          }
+        },
+        "bin-links": {
+          "version": "1.1.3",
+          "bundled": true,
+          "requires": {
+            "bluebird": "^3.5.3",
+            "cmd-shim": "^3.0.0",
+            "gentle-fs": "^2.0.1",
+            "graceful-fs": "^4.1.15",
+            "write-file-atomic": "^2.3.0"
+          }
+        },
+        "bluebird": {
+          "version": "3.5.5",
+          "bundled": true
+        },
+        "boxen": {
+          "version": "1.3.0",
+          "bundled": true,
+          "requires": {
+            "ansi-align": "^2.0.0",
+            "camelcase": "^4.0.0",
+            "chalk": "^2.0.1",
+            "cli-boxes": "^1.0.0",
+            "string-width": "^2.0.0",
+            "term-size": "^1.2.0",
+            "widest-line": "^2.0.0"
+          }
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": true,
+          "requires": {
+            "balanced-match": "^1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "buffer-from": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "builtins": {
+          "version": "1.0.3",
+          "bundled": true
+        },
+        "byline": {
+          "version": "5.0.0",
+          "bundled": true
+        },
+        "byte-size": {
+          "version": "5.0.1",
+          "bundled": true
+        },
+        "cacache": {
+          "version": "12.0.3",
+          "bundled": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "infer-owner": "^1.0.3",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "call-limit": {
+          "version": "1.1.1",
+          "bundled": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "bundled": true
+        },
+        "capture-stack-trace": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "caseless": {
+          "version": "0.12.0",
+          "bundled": true
+        },
+        "chalk": {
+          "version": "2.4.1",
+          "bundled": true,
+          "requires": {
+            "ansi-styles": "^3.2.1",
+            "escape-string-regexp": "^1.0.5",
+            "supports-color": "^5.3.0"
+          }
+        },
+        "chownr": {
+          "version": "1.1.2",
+          "bundled": true
+        },
+        "ci-info": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "cidr-regex": {
+          "version": "2.0.10",
+          "bundled": true,
+          "requires": {
+            "ip-regex": "^2.1.0"
+          }
+        },
+        "cli-boxes": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "cli-columns": {
+          "version": "3.1.2",
+          "bundled": true,
+          "requires": {
+            "string-width": "^2.0.0",
+            "strip-ansi": "^3.0.1"
+          }
+        },
+        "cli-table3": {
+          "version": "0.5.1",
+          "bundled": true,
+          "requires": {
+            "colors": "^1.1.2",
+            "object-assign": "^4.1.0",
+            "string-width": "^2.1.1"
+          }
+        },
+        "cliui": {
+          "version": "4.1.0",
+          "bundled": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "3.0.0",
+              "bundled": true
+            },
+            "strip-ansi": {
+              "version": "4.0.0",
+              "bundled": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "clone": {
+          "version": "1.0.4",
+          "bundled": true
+        },
+        "cmd-shim": {
+          "version": "3.0.3",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "mkdirp": "~0.5.0"
+          }
+        },
+        "co": {
+          "version": "4.6.0",
+          "bundled": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "color-convert": {
+          "version": "1.9.1",
+          "bundled": true,
+          "requires": {
+            "color-name": "^1.1.1"
+          }
+        },
+        "color-name": {
+          "version": "1.1.3",
+          "bundled": true
+        },
+        "colors": {
+          "version": "1.3.3",
+          "bundled": true,
+          "optional": true
+        },
+        "columnify": {
+          "version": "1.5.4",
+          "bundled": true,
+          "requires": {
+            "strip-ansi": "^3.0.0",
+            "wcwidth": "^1.0.0"
+          }
+        },
+        "combined-stream": {
+          "version": "1.0.6",
+          "bundled": true,
+          "requires": {
+            "delayed-stream": "~1.0.0"
+          }
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true
+        },
+        "concat-stream": {
+          "version": "1.6.2",
+          "bundled": true,
+          "requires": {
+            "buffer-from": "^1.0.0",
+            "inherits": "^2.0.3",
+            "readable-stream": "^2.2.2",
+            "typedarray": "^0.0.6"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "config-chain": {
+          "version": "1.1.12",
+          "bundled": true,
+          "requires": {
+            "ini": "^1.3.4",
+            "proto-list": "~1.2.1"
+          }
+        },
+        "configstore": {
+          "version": "3.1.2",
+          "bundled": true,
+          "requires": {
+            "dot-prop": "^4.1.0",
+            "graceful-fs": "^4.1.2",
+            "make-dir": "^1.0.0",
+            "unique-string": "^1.0.0",
+            "write-file-atomic": "^2.0.0",
+            "xdg-basedir": "^3.0.0"
+          }
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "copy-concurrently": {
+          "version": "1.0.5",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.1.1",
+            "fs-write-stream-atomic": "^1.0.8",
+            "iferr": "^0.1.5",
+            "mkdirp": "^0.5.1",
+            "rimraf": "^2.5.4",
+            "run-queue": "^1.0.0"
+          },
+          "dependencies": {
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true
+            },
+            "iferr": {
+              "version": "0.1.5",
+              "bundled": true
+            }
+          }
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "create-error-class": {
+          "version": "3.0.2",
+          "bundled": true,
+          "requires": {
+            "capture-stack-trace": "^1.0.0"
+          }
+        },
+        "cross-spawn": {
+          "version": "5.1.0",
+          "bundled": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          },
+          "dependencies": {
+            "lru-cache": {
+              "version": "4.1.5",
+              "bundled": true,
+              "requires": {
+                "pseudomap": "^1.0.2",
+                "yallist": "^2.1.2"
+              }
+            },
+            "yallist": {
+              "version": "2.1.2",
+              "bundled": true
+            }
+          }
+        },
+        "crypto-random-string": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "cyclist": {
+          "version": "0.2.2",
+          "bundled": true
+        },
+        "dashdash": {
+          "version": "1.14.1",
+          "bundled": true,
+          "requires": {
+            "assert-plus": "^1.0.0"
+          }
+        },
+        "debug": {
+          "version": "3.1.0",
+          "bundled": true,
+          "requires": {
+            "ms": "2.0.0"
+          },
+          "dependencies": {
+            "ms": {
+              "version": "2.0.0",
+              "bundled": true
+            }
+          }
+        },
+        "debuglog": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "decamelize": {
+          "version": "1.2.0",
+          "bundled": true
+        },
+        "decode-uri-component": {
+          "version": "0.2.0",
+          "bundled": true
+        },
+        "deep-extend": {
+          "version": "0.5.1",
+          "bundled": true
+        },
+        "defaults": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "clone": "^1.0.2"
+          }
+        },
+        "define-properties": {
+          "version": "1.1.3",
+          "bundled": true,
+          "requires": {
+            "object-keys": "^1.0.12"
+          }
+        },
+        "delayed-stream": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "detect-indent": {
+          "version": "5.0.0",
+          "bundled": true
+        },
+        "detect-newline": {
+          "version": "2.1.0",
+          "bundled": true
+        },
+        "dezalgo": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "asap": "^2.0.0",
+            "wrappy": "1"
+          }
+        },
+        "dot-prop": {
+          "version": "4.2.0",
+          "bundled": true,
+          "requires": {
+            "is-obj": "^1.0.0"
+          }
+        },
+        "dotenv": {
+          "version": "5.0.1",
+          "bundled": true
+        },
+        "duplexer3": {
+          "version": "0.1.4",
+          "bundled": true
+        },
+        "duplexify": {
+          "version": "3.6.0",
+          "bundled": true,
+          "requires": {
+            "end-of-stream": "^1.0.0",
+            "inherits": "^2.0.1",
+            "readable-stream": "^2.0.0",
+            "stream-shift": "^1.0.0"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "ecc-jsbn": {
+          "version": "0.1.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "jsbn": "~0.1.0",
+            "safer-buffer": "^2.1.0"
+          }
+        },
+        "editor": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "encoding": {
+          "version": "0.1.12",
+          "bundled": true,
+          "requires": {
+            "iconv-lite": "~0.4.13"
+          }
+        },
+        "end-of-stream": {
+          "version": "1.4.1",
+          "bundled": true,
+          "requires": {
+            "once": "^1.4.0"
+          }
+        },
+        "env-paths": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "err-code": {
+          "version": "1.1.2",
+          "bundled": true
+        },
+        "errno": {
+          "version": "0.1.7",
+          "bundled": true,
+          "requires": {
+            "prr": "~1.0.1"
+          }
+        },
+        "es-abstract": {
+          "version": "1.12.0",
+          "bundled": true,
+          "requires": {
+            "es-to-primitive": "^1.1.1",
+            "function-bind": "^1.1.1",
+            "has": "^1.0.1",
+            "is-callable": "^1.1.3",
+            "is-regex": "^1.0.4"
+          }
+        },
+        "es-to-primitive": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "is-callable": "^1.1.4",
+            "is-date-object": "^1.0.1",
+            "is-symbol": "^1.0.2"
+          }
+        },
+        "es6-promise": {
+          "version": "4.2.8",
+          "bundled": true
+        },
+        "es6-promisify": {
+          "version": "5.0.0",
+          "bundled": true,
+          "requires": {
+            "es6-promise": "^4.0.3"
+          }
+        },
+        "escape-string-regexp": {
+          "version": "1.0.5",
+          "bundled": true
+        },
+        "execa": {
+          "version": "0.7.0",
+          "bundled": true,
+          "requires": {
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          },
+          "dependencies": {
+            "get-stream": {
+              "version": "3.0.0",
+              "bundled": true
+            }
+          }
+        },
+        "extend": {
+          "version": "3.0.2",
+          "bundled": true
+        },
+        "extsprintf": {
+          "version": "1.3.0",
+          "bundled": true
+        },
+        "fast-deep-equal": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "fast-json-stable-stringify": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "figgy-pudding": {
+          "version": "3.5.1",
+          "bundled": true
+        },
+        "find-npm-prefix": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "locate-path": "^2.0.0"
+          }
+        },
+        "flush-write-stream": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "inherits": "^2.0.1",
+            "readable-stream": "^2.0.4"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "forever-agent": {
+          "version": "0.6.1",
+          "bundled": true
+        },
+        "form-data": {
+          "version": "2.3.2",
+          "bundled": true,
+          "requires": {
+            "asynckit": "^0.4.0",
+            "combined-stream": "1.0.6",
+            "mime-types": "^2.1.12"
+          }
+        },
+        "from2": {
+          "version": "2.3.0",
+          "bundled": true,
+          "requires": {
+            "inherits": "^2.0.1",
+            "readable-stream": "^2.0.0"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "fs-minipass": {
+          "version": "1.2.6",
+          "bundled": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "fs-vacuum": {
+          "version": "1.2.10",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "path-is-inside": "^1.0.1",
+            "rimraf": "^2.5.2"
+          }
+        },
+        "fs-write-stream-atomic": {
+          "version": "1.0.10",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "iferr": "^0.1.5",
+            "imurmurhash": "^0.1.4",
+            "readable-stream": "1 || 2"
+          },
+          "dependencies": {
+            "iferr": {
+              "version": "0.1.5",
+              "bundled": true
+            },
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "function-bind": {
+          "version": "1.1.1",
+          "bundled": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.0.3",
+            "console-control-strings": "^1.0.0",
+            "has-unicode": "^2.0.0",
+            "object-assign": "^4.1.0",
+            "signal-exit": "^3.0.0",
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wide-align": "^1.1.0"
+          },
+          "dependencies": {
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true
+            },
+            "string-width": {
+              "version": "1.0.2",
+              "bundled": true,
+              "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+              }
+            }
+          }
+        },
+        "genfun": {
+          "version": "5.0.0",
+          "bundled": true
+        },
+        "gentle-fs": {
+          "version": "2.2.1",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.1.2",
+            "chownr": "^1.1.2",
+            "fs-vacuum": "^1.2.10",
+            "graceful-fs": "^4.1.11",
+            "iferr": "^0.1.5",
+            "infer-owner": "^1.0.4",
+            "mkdirp": "^0.5.1",
+            "path-is-inside": "^1.0.2",
+            "read-cmd-shim": "^1.0.1",
+            "slide": "^1.1.6"
+          },
+          "dependencies": {
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true
+            },
+            "iferr": {
+              "version": "0.1.5",
+              "bundled": true
+            }
+          }
+        },
+        "get-caller-file": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "bundled": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "getpass": {
+          "version": "0.1.7",
+          "bundled": true,
+          "requires": {
+            "assert-plus": "^1.0.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.4",
+          "bundled": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "global-dirs": {
+          "version": "0.1.1",
+          "bundled": true,
+          "requires": {
+            "ini": "^1.3.4"
+          }
+        },
+        "got": {
+          "version": "6.7.1",
+          "bundled": true,
+          "requires": {
+            "create-error-class": "^3.0.0",
+            "duplexer3": "^0.1.4",
+            "get-stream": "^3.0.0",
+            "is-redirect": "^1.0.0",
+            "is-retry-allowed": "^1.0.0",
+            "is-stream": "^1.0.0",
+            "lowercase-keys": "^1.0.0",
+            "safe-buffer": "^5.0.1",
+            "timed-out": "^4.0.0",
+            "unzip-response": "^2.0.1",
+            "url-parse-lax": "^1.0.0"
+          },
+          "dependencies": {
+            "get-stream": {
+              "version": "3.0.0",
+              "bundled": true
+            }
+          }
+        },
+        "graceful-fs": {
+          "version": "4.2.2",
+          "bundled": true
+        },
+        "har-schema": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "har-validator": {
+          "version": "5.1.0",
+          "bundled": true,
+          "requires": {
+            "ajv": "^5.3.0",
+            "har-schema": "^2.0.0"
+          }
+        },
+        "has": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "function-bind": "^1.1.1"
+          }
+        },
+        "has-flag": {
+          "version": "3.0.0",
+          "bundled": true
+        },
+        "has-symbols": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "bundled": true
+        },
+        "hosted-git-info": {
+          "version": "2.8.2",
+          "bundled": true,
+          "requires": {
+            "lru-cache": "^5.1.1"
+          }
+        },
+        "http-cache-semantics": {
+          "version": "3.8.1",
+          "bundled": true
+        },
+        "http-proxy-agent": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "agent-base": "4",
+            "debug": "3.1.0"
+          }
+        },
+        "http-signature": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "assert-plus": "^1.0.0",
+            "jsprim": "^1.2.2",
+            "sshpk": "^1.7.0"
+          }
+        },
+        "https-proxy-agent": {
+          "version": "2.2.2",
+          "bundled": true,
+          "requires": {
+            "agent-base": "^4.3.0",
+            "debug": "^3.1.0"
+          }
+        },
+        "humanize-ms": {
+          "version": "1.2.1",
+          "bundled": true,
+          "requires": {
+            "ms": "^2.0.0"
+          }
+        },
+        "iconv-lite": {
+          "version": "0.4.23",
+          "bundled": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "iferr": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "bundled": true,
+          "requires": {
+            "minimatch": "^3.0.4"
+          }
+        },
+        "import-lazy": {
+          "version": "2.1.0",
+          "bundled": true
+        },
+        "imurmurhash": {
+          "version": "0.1.4",
+          "bundled": true
+        },
+        "infer-owner": {
+          "version": "1.0.4",
+          "bundled": true
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "bundled": true,
+          "requires": {
+            "once": "^1.3.0",
+            "wrappy": "1"
+          }
+        },
+        "inherits": {
+          "version": "2.0.4",
+          "bundled": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true
+        },
+        "init-package-json": {
+          "version": "1.10.3",
+          "bundled": true,
+          "requires": {
+            "glob": "^7.1.1",
+            "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
+            "promzard": "^0.3.0",
+            "read": "~1.0.1",
+            "read-package-json": "1 || 2",
+            "semver": "2.x || 3.x || 4 || 5",
+            "validate-npm-package-license": "^3.0.1",
+            "validate-npm-package-name": "^3.0.0"
+          }
+        },
+        "invert-kv": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "ip": {
+          "version": "1.1.5",
+          "bundled": true
+        },
+        "ip-regex": {
+          "version": "2.1.0",
+          "bundled": true
+        },
+        "is-callable": {
+          "version": "1.1.4",
+          "bundled": true
+        },
+        "is-ci": {
+          "version": "1.1.0",
+          "bundled": true,
+          "requires": {
+            "ci-info": "^1.0.0"
+          },
+          "dependencies": {
+            "ci-info": {
+              "version": "1.6.0",
+              "bundled": true
+            }
+          }
+        },
+        "is-cidr": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "cidr-regex": "^2.0.10"
+          }
+        },
+        "is-date-object": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "is-installed-globally": {
+          "version": "0.1.0",
+          "bundled": true,
+          "requires": {
+            "global-dirs": "^0.1.0",
+            "is-path-inside": "^1.0.0"
+          }
+        },
+        "is-npm": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "is-obj": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "is-path-inside": {
+          "version": "1.0.1",
+          "bundled": true,
+          "requires": {
+            "path-is-inside": "^1.0.1"
+          }
+        },
+        "is-redirect": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "is-regex": {
+          "version": "1.0.4",
+          "bundled": true,
+          "requires": {
+            "has": "^1.0.1"
+          }
+        },
+        "is-retry-allowed": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "is-stream": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "is-symbol": {
+          "version": "1.0.2",
+          "bundled": true,
+          "requires": {
+            "has-symbols": "^1.0.0"
+          }
+        },
+        "is-typedarray": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "isexe": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "isstream": {
+          "version": "0.1.2",
+          "bundled": true
+        },
+        "jsbn": {
+          "version": "0.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "json-parse-better-errors": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "json-schema": {
+          "version": "0.2.3",
+          "bundled": true
+        },
+        "json-schema-traverse": {
+          "version": "0.3.1",
+          "bundled": true
+        },
+        "json-stringify-safe": {
+          "version": "5.0.1",
+          "bundled": true
+        },
+        "jsonparse": {
+          "version": "1.3.1",
+          "bundled": true
+        },
+        "jsprim": {
+          "version": "1.4.1",
+          "bundled": true,
+          "requires": {
+            "assert-plus": "1.0.0",
+            "extsprintf": "1.3.0",
+            "json-schema": "0.2.3",
+            "verror": "1.10.0"
+          }
+        },
+        "latest-version": {
+          "version": "3.1.0",
+          "bundled": true,
+          "requires": {
+            "package-json": "^4.0.0"
+          }
+        },
+        "lazy-property": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "lcid": {
+          "version": "1.0.0",
+          "bundled": true,
+          "requires": {
+            "invert-kv": "^1.0.0"
+          }
+        },
+        "libcipm": {
+          "version": "4.0.3",
+          "bundled": true,
+          "requires": {
+            "bin-links": "^1.1.2",
+            "bluebird": "^3.5.1",
+            "figgy-pudding": "^3.5.1",
+            "find-npm-prefix": "^1.0.2",
+            "graceful-fs": "^4.1.11",
+            "ini": "^1.3.5",
+            "lock-verify": "^2.0.2",
+            "mkdirp": "^0.5.1",
+            "npm-lifecycle": "^3.0.0",
+            "npm-logical-tree": "^1.2.1",
+            "npm-package-arg": "^6.1.0",
+            "pacote": "^9.1.0",
+            "read-package-json": "^2.0.13",
+            "rimraf": "^2.6.2",
+            "worker-farm": "^1.6.0"
+          }
+        },
+        "libnpm": {
+          "version": "3.0.1",
+          "bundled": true,
+          "requires": {
+            "bin-links": "^1.1.2",
+            "bluebird": "^3.5.3",
+            "find-npm-prefix": "^1.0.2",
+            "libnpmaccess": "^3.0.2",
+            "libnpmconfig": "^1.2.1",
+            "libnpmhook": "^5.0.3",
+            "libnpmorg": "^1.0.1",
+            "libnpmpublish": "^1.1.2",
+            "libnpmsearch": "^2.0.2",
+            "libnpmteam": "^1.0.2",
+            "lock-verify": "^2.0.2",
+            "npm-lifecycle": "^3.0.0",
+            "npm-logical-tree": "^1.2.1",
+            "npm-package-arg": "^6.1.0",
+            "npm-profile": "^4.0.2",
+            "npm-registry-fetch": "^4.0.0",
+            "npmlog": "^4.1.2",
+            "pacote": "^9.5.3",
+            "read-package-json": "^2.0.13",
+            "stringify-package": "^1.0.0"
+          }
+        },
+        "libnpmaccess": {
+          "version": "3.0.2",
+          "bundled": true,
+          "requires": {
+            "aproba": "^2.0.0",
+            "get-stream": "^4.0.0",
+            "npm-package-arg": "^6.1.0",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "libnpmconfig": {
+          "version": "1.2.1",
+          "bundled": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1",
+            "find-up": "^3.0.0",
+            "ini": "^1.3.5"
+          },
+          "dependencies": {
+            "find-up": {
+              "version": "3.0.0",
+              "bundled": true,
+              "requires": {
+                "locate-path": "^3.0.0"
+              }
+            },
+            "locate-path": {
+              "version": "3.0.0",
+              "bundled": true,
+              "requires": {
+                "p-locate": "^3.0.0",
+                "path-exists": "^3.0.0"
+              }
+            },
+            "p-limit": {
+              "version": "2.2.0",
+              "bundled": true,
+              "requires": {
+                "p-try": "^2.0.0"
+              }
+            },
+            "p-locate": {
+              "version": "3.0.0",
+              "bundled": true,
+              "requires": {
+                "p-limit": "^2.0.0"
+              }
+            },
+            "p-try": {
+              "version": "2.2.0",
+              "bundled": true
+            }
+          }
+        },
+        "libnpmhook": {
+          "version": "5.0.3",
+          "bundled": true,
+          "requires": {
+            "aproba": "^2.0.0",
+            "figgy-pudding": "^3.4.1",
+            "get-stream": "^4.0.0",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "libnpmorg": {
+          "version": "1.0.1",
+          "bundled": true,
+          "requires": {
+            "aproba": "^2.0.0",
+            "figgy-pudding": "^3.4.1",
+            "get-stream": "^4.0.0",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "libnpmpublish": {
+          "version": "1.1.2",
+          "bundled": true,
+          "requires": {
+            "aproba": "^2.0.0",
+            "figgy-pudding": "^3.5.1",
+            "get-stream": "^4.0.0",
+            "lodash.clonedeep": "^4.5.0",
+            "normalize-package-data": "^2.4.0",
+            "npm-package-arg": "^6.1.0",
+            "npm-registry-fetch": "^4.0.0",
+            "semver": "^5.5.1",
+            "ssri": "^6.0.1"
+          }
+        },
+        "libnpmsearch": {
+          "version": "2.0.2",
+          "bundled": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1",
+            "get-stream": "^4.0.0",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "libnpmteam": {
+          "version": "1.0.2",
+          "bundled": true,
+          "requires": {
+            "aproba": "^2.0.0",
+            "figgy-pudding": "^3.4.1",
+            "get-stream": "^4.0.0",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "libnpx": {
+          "version": "10.2.0",
+          "bundled": true,
+          "requires": {
+            "dotenv": "^5.0.1",
+            "npm-package-arg": "^6.0.0",
+            "rimraf": "^2.6.2",
+            "safe-buffer": "^5.1.0",
+            "update-notifier": "^2.3.0",
+            "which": "^1.3.0",
+            "y18n": "^4.0.0",
+            "yargs": "^11.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "2.0.0",
+          "bundled": true,
+          "requires": {
+            "p-locate": "^2.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "lock-verify": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "npm-package-arg": "^6.1.0",
+            "semver": "^5.4.1"
+          }
+        },
+        "lockfile": {
+          "version": "1.0.4",
+          "bundled": true,
+          "requires": {
+            "signal-exit": "^3.0.2"
+          }
+        },
+        "lodash._baseindexof": {
+          "version": "3.1.0",
+          "bundled": true
+        },
+        "lodash._baseuniq": {
+          "version": "4.6.0",
+          "bundled": true,
+          "requires": {
+            "lodash._createset": "~4.0.0",
+            "lodash._root": "~3.0.0"
+          }
+        },
+        "lodash._bindcallback": {
+          "version": "3.0.1",
+          "bundled": true
+        },
+        "lodash._cacheindexof": {
+          "version": "3.0.2",
+          "bundled": true
+        },
+        "lodash._createcache": {
+          "version": "3.1.2",
+          "bundled": true,
+          "requires": {
+            "lodash._getnative": "^3.0.0"
+          }
+        },
+        "lodash._createset": {
+          "version": "4.0.3",
+          "bundled": true
+        },
+        "lodash._getnative": {
+          "version": "3.9.1",
+          "bundled": true
+        },
+        "lodash._root": {
+          "version": "3.0.1",
+          "bundled": true
+        },
+        "lodash.clonedeep": {
+          "version": "4.5.0",
+          "bundled": true
+        },
+        "lodash.restparam": {
+          "version": "3.6.1",
+          "bundled": true
+        },
+        "lodash.union": {
+          "version": "4.6.0",
+          "bundled": true
+        },
+        "lodash.uniq": {
+          "version": "4.5.0",
+          "bundled": true
+        },
+        "lodash.without": {
+          "version": "4.4.0",
+          "bundled": true
+        },
+        "lowercase-keys": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "bundled": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "make-dir": {
+          "version": "1.3.0",
+          "bundled": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "make-fetch-happen": {
+          "version": "5.0.0",
+          "bundled": true,
+          "requires": {
+            "agentkeepalive": "^3.4.1",
+            "cacache": "^12.0.0",
+            "http-cache-semantics": "^3.8.1",
+            "http-proxy-agent": "^2.1.0",
+            "https-proxy-agent": "^2.2.1",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "node-fetch-npm": "^2.0.2",
+            "promise-retry": "^1.1.1",
+            "socks-proxy-agent": "^4.0.0",
+            "ssri": "^6.0.0"
+          }
+        },
+        "meant": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "mem": {
+          "version": "1.1.0",
+          "bundled": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "mime-db": {
+          "version": "1.35.0",
+          "bundled": true
+        },
+        "mime-types": {
+          "version": "2.1.19",
+          "bundled": true,
+          "requires": {
+            "mime-db": "~1.35.0"
+          }
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "bundled": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true
+        },
+        "minipass": {
+          "version": "2.3.3",
+          "bundled": true,
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          },
+          "dependencies": {
+            "yallist": {
+              "version": "3.0.2",
+              "bundled": true
+            }
+          }
+        },
+        "minizlib": {
+          "version": "1.2.1",
+          "bundled": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "mississippi": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^3.0.0",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "bundled": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "move-concurrently": {
+          "version": "1.0.1",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.1.1",
+            "copy-concurrently": "^1.0.0",
+            "fs-write-stream-atomic": "^1.0.8",
+            "mkdirp": "^0.5.1",
+            "rimraf": "^2.5.4",
+            "run-queue": "^1.0.3"
+          },
+          "dependencies": {
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true
+            }
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "bundled": true
+        },
+        "mute-stream": {
+          "version": "0.0.7",
+          "bundled": true
+        },
+        "node-fetch-npm": {
+          "version": "2.0.2",
+          "bundled": true,
+          "requires": {
+            "encoding": "^0.1.11",
+            "json-parse-better-errors": "^1.0.0",
+            "safe-buffer": "^5.1.1"
+          }
+        },
+        "node-gyp": {
+          "version": "5.0.3",
+          "bundled": true,
+          "requires": {
+            "env-paths": "^1.0.0",
+            "glob": "^7.0.3",
+            "graceful-fs": "^4.1.2",
+            "mkdirp": "^0.5.0",
+            "nopt": "2 || 3",
+            "npmlog": "0 || 1 || 2 || 3 || 4",
+            "request": "^2.87.0",
+            "rimraf": "2",
+            "semver": "~5.3.0",
+            "tar": "^4.4.8",
+            "which": "1"
+          },
+          "dependencies": {
+            "nopt": {
+              "version": "3.0.6",
+              "bundled": true,
+              "requires": {
+                "abbrev": "1"
+              }
+            },
+            "semver": {
+              "version": "5.3.0",
+              "bundled": true
+            }
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "bundled": true,
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "normalize-package-data": {
+          "version": "2.5.0",
+          "bundled": true,
+          "requires": {
+            "hosted-git-info": "^2.1.4",
+            "resolve": "^1.10.0",
+            "semver": "2 || 3 || 4 || 5",
+            "validate-npm-package-license": "^3.0.1"
+          },
+          "dependencies": {
+            "resolve": {
+              "version": "1.10.0",
+              "bundled": true,
+              "requires": {
+                "path-parse": "^1.0.6"
+              }
+            }
+          }
+        },
+        "npm-audit-report": {
+          "version": "1.3.2",
+          "bundled": true,
+          "requires": {
+            "cli-table3": "^0.5.0",
+            "console-control-strings": "^1.1.0"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.6",
+          "bundled": true
+        },
+        "npm-cache-filename": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "npm-install-checks": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "semver": "^2.3.0 || 3.x || 4 || 5"
+          }
+        },
+        "npm-lifecycle": {
+          "version": "3.1.3",
+          "bundled": true,
+          "requires": {
+            "byline": "^5.0.0",
+            "graceful-fs": "^4.1.15",
+            "node-gyp": "^5.0.2",
+            "resolve-from": "^4.0.0",
+            "slide": "^1.1.6",
+            "uid-number": "0.0.6",
+            "umask": "^1.1.0",
+            "which": "^1.3.1"
+          }
+        },
+        "npm-logical-tree": {
+          "version": "1.2.1",
+          "bundled": true
+        },
+        "npm-package-arg": {
+          "version": "6.1.1",
+          "bundled": true,
+          "requires": {
+            "hosted-git-info": "^2.7.1",
+            "osenv": "^0.1.5",
+            "semver": "^5.6.0",
+            "validate-npm-package-name": "^3.0.0"
+          }
+        },
+        "npm-packlist": {
+          "version": "1.4.4",
+          "bundled": true,
+          "requires": {
+            "ignore-walk": "^3.0.1",
+            "npm-bundled": "^1.0.1"
+          }
+        },
+        "npm-pick-manifest": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1",
+            "npm-package-arg": "^6.0.0",
+            "semver": "^5.4.1"
+          }
+        },
+        "npm-profile": {
+          "version": "4.0.2",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.1.2 || 2",
+            "figgy-pudding": "^3.4.1",
+            "npm-registry-fetch": "^4.0.0"
+          }
+        },
+        "npm-registry-fetch": {
+          "version": "4.0.0",
+          "bundled": true,
+          "requires": {
+            "JSONStream": "^1.3.4",
+            "bluebird": "^3.5.1",
+            "figgy-pudding": "^3.4.1",
+            "lru-cache": "^5.1.1",
+            "make-fetch-happen": "^5.0.0",
+            "npm-package-arg": "^6.1.0"
+          }
+        },
+        "npm-run-path": {
+          "version": "2.0.2",
+          "bundled": true,
+          "requires": {
+            "path-key": "^2.0.0"
+          }
+        },
+        "npm-user-validate": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "bundled": true,
+          "requires": {
+            "are-we-there-yet": "~1.1.2",
+            "console-control-strings": "~1.1.0",
+            "gauge": "~2.7.3",
+            "set-blocking": "~2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "oauth-sign": {
+          "version": "0.9.0",
+          "bundled": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true
+        },
+        "object-keys": {
+          "version": "1.0.12",
+          "bundled": true
+        },
+        "object.getownpropertydescriptors": {
+          "version": "2.0.3",
+          "bundled": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "es-abstract": "^1.5.1"
+          }
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": true,
+          "requires": {
+            "wrappy": "1"
+          }
+        },
+        "opener": {
+          "version": "1.5.1",
+          "bundled": true
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "execa": "^0.7.0",
+            "lcid": "^1.0.0",
+            "mem": "^1.1.0"
+          }
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "bundled": true,
+          "requires": {
+            "os-homedir": "^1.0.0",
+            "os-tmpdir": "^1.0.0"
+          }
+        },
+        "p-finally": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "p-limit": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "p-try": "^1.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "2.0.0",
+          "bundled": true,
+          "requires": {
+            "p-limit": "^1.1.0"
+          }
+        },
+        "p-try": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "package-json": {
+          "version": "4.0.1",
+          "bundled": true,
+          "requires": {
+            "got": "^6.7.1",
+            "registry-auth-token": "^3.0.1",
+            "registry-url": "^3.0.3",
+            "semver": "^5.1.0"
+          }
+        },
+        "pacote": {
+          "version": "9.5.8",
+          "bundled": true,
+          "requires": {
+            "bluebird": "^3.5.3",
+            "cacache": "^12.0.2",
+            "chownr": "^1.1.2",
+            "figgy-pudding": "^3.5.1",
+            "get-stream": "^4.1.0",
+            "glob": "^7.1.3",
+            "infer-owner": "^1.0.4",
+            "lru-cache": "^5.1.1",
+            "make-fetch-happen": "^5.0.0",
+            "minimatch": "^3.0.4",
+            "minipass": "^2.3.5",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "normalize-package-data": "^2.4.0",
+            "npm-package-arg": "^6.1.0",
+            "npm-packlist": "^1.1.12",
+            "npm-pick-manifest": "^3.0.0",
+            "npm-registry-fetch": "^4.0.0",
+            "osenv": "^0.1.5",
+            "promise-inflight": "^1.0.1",
+            "promise-retry": "^1.1.1",
+            "protoduck": "^5.0.1",
+            "rimraf": "^2.6.2",
+            "safe-buffer": "^5.1.2",
+            "semver": "^5.6.0",
+            "ssri": "^6.0.1",
+            "tar": "^4.4.10",
+            "unique-filename": "^1.1.1",
+            "which": "^1.3.1"
+          },
+          "dependencies": {
+            "minipass": {
+              "version": "2.3.5",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "^5.1.2",
+                "yallist": "^3.0.0"
+              }
+            }
+          }
+        },
+        "parallel-transform": {
+          "version": "1.1.0",
+          "bundled": true,
+          "requires": {
+            "cyclist": "~0.2.2",
+            "inherits": "^2.0.3",
+            "readable-stream": "^2.1.5"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "path-exists": {
+          "version": "3.0.0",
+          "bundled": true
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "path-is-inside": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "path-key": {
+          "version": "2.0.1",
+          "bundled": true
+        },
+        "path-parse": {
+          "version": "1.0.6",
+          "bundled": true
+        },
+        "performance-now": {
+          "version": "2.1.0",
+          "bundled": true
+        },
+        "pify": {
+          "version": "3.0.0",
+          "bundled": true
+        },
+        "prepend-http": {
+          "version": "1.0.4",
+          "bundled": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "promise-inflight": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "promise-retry": {
+          "version": "1.1.1",
+          "bundled": true,
+          "requires": {
+            "err-code": "^1.0.0",
+            "retry": "^0.10.0"
+          },
+          "dependencies": {
+            "retry": {
+              "version": "0.10.1",
+              "bundled": true
+            }
+          }
+        },
+        "promzard": {
+          "version": "0.3.0",
+          "bundled": true,
+          "requires": {
+            "read": "1"
+          }
+        },
+        "proto-list": {
+          "version": "1.2.4",
+          "bundled": true
+        },
+        "protoduck": {
+          "version": "5.0.1",
+          "bundled": true,
+          "requires": {
+            "genfun": "^5.0.0"
+          }
+        },
+        "prr": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "pseudomap": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "psl": {
+          "version": "1.1.29",
+          "bundled": true
+        },
+        "pump": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "pumpify": {
+          "version": "1.5.1",
+          "bundled": true,
+          "requires": {
+            "duplexify": "^3.6.0",
+            "inherits": "^2.0.3",
+            "pump": "^2.0.0"
+          },
+          "dependencies": {
+            "pump": {
+              "version": "2.0.1",
+              "bundled": true,
+              "requires": {
+                "end-of-stream": "^1.1.0",
+                "once": "^1.3.1"
+              }
+            }
+          }
+        },
+        "punycode": {
+          "version": "1.4.1",
+          "bundled": true
+        },
+        "qrcode-terminal": {
+          "version": "0.12.0",
+          "bundled": true
+        },
+        "qs": {
+          "version": "6.5.2",
+          "bundled": true
+        },
+        "query-string": {
+          "version": "6.8.2",
+          "bundled": true,
+          "requires": {
+            "decode-uri-component": "^0.2.0",
+            "split-on-first": "^1.0.0",
+            "strict-uri-encode": "^2.0.0"
+          }
+        },
+        "qw": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "rc": {
+          "version": "1.2.7",
+          "bundled": true,
+          "requires": {
+            "deep-extend": "^0.5.1",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "bundled": true
+            }
+          }
+        },
+        "read": {
+          "version": "1.0.7",
+          "bundled": true,
+          "requires": {
+            "mute-stream": "~0.0.4"
+          }
+        },
+        "read-cmd-shim": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.2"
+          }
+        },
+        "read-installed": {
+          "version": "4.0.3",
+          "bundled": true,
+          "requires": {
+            "debuglog": "^1.0.1",
+            "graceful-fs": "^4.1.2",
+            "read-package-json": "^2.0.0",
+            "readdir-scoped-modules": "^1.0.0",
+            "semver": "2 || 3 || 4 || 5",
+            "slide": "~1.1.3",
+            "util-extend": "^1.0.1"
+          }
+        },
+        "read-package-json": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "glob": "^7.1.1",
+            "graceful-fs": "^4.1.2",
+            "json-parse-better-errors": "^1.0.1",
+            "normalize-package-data": "^2.0.0",
+            "slash": "^1.0.0"
+          }
+        },
+        "read-package-tree": {
+          "version": "5.3.1",
+          "bundled": true,
+          "requires": {
+            "read-package-json": "^2.0.0",
+            "readdir-scoped-modules": "^1.0.0",
+            "util-promisify": "^2.1.0"
+          }
+        },
+        "readable-stream": {
+          "version": "3.4.0",
+          "bundled": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "readdir-scoped-modules": {
+          "version": "1.1.0",
+          "bundled": true,
+          "requires": {
+            "debuglog": "^1.0.1",
+            "dezalgo": "^1.0.0",
+            "graceful-fs": "^4.1.2",
+            "once": "^1.3.0"
+          }
+        },
+        "registry-auth-token": {
+          "version": "3.3.2",
+          "bundled": true,
+          "requires": {
+            "rc": "^1.1.6",
+            "safe-buffer": "^5.0.1"
+          }
+        },
+        "registry-url": {
+          "version": "3.1.0",
+          "bundled": true,
+          "requires": {
+            "rc": "^1.0.1"
+          }
+        },
+        "request": {
+          "version": "2.88.0",
+          "bundled": true,
+          "requires": {
+            "aws-sign2": "~0.7.0",
+            "aws4": "^1.8.0",
+            "caseless": "~0.12.0",
+            "combined-stream": "~1.0.6",
+            "extend": "~3.0.2",
+            "forever-agent": "~0.6.1",
+            "form-data": "~2.3.2",
+            "har-validator": "~5.1.0",
+            "http-signature": "~1.2.0",
+            "is-typedarray": "~1.0.0",
+            "isstream": "~0.1.2",
+            "json-stringify-safe": "~5.0.1",
+            "mime-types": "~2.1.19",
+            "oauth-sign": "~0.9.0",
+            "performance-now": "^2.1.0",
+            "qs": "~6.5.2",
+            "safe-buffer": "^5.1.2",
+            "tough-cookie": "~2.4.3",
+            "tunnel-agent": "^0.6.0",
+            "uuid": "^3.3.2"
+          }
+        },
+        "require-directory": {
+          "version": "2.1.1",
+          "bundled": true
+        },
+        "require-main-filename": {
+          "version": "1.0.1",
+          "bundled": true
+        },
+        "resolve-from": {
+          "version": "4.0.0",
+          "bundled": true
+        },
+        "retry": {
+          "version": "0.12.0",
+          "bundled": true
+        },
+        "rimraf": {
+          "version": "2.6.3",
+          "bundled": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "run-queue": {
+          "version": "1.0.3",
+          "bundled": true,
+          "requires": {
+            "aproba": "^1.1.1"
+          },
+          "dependencies": {
+            "aproba": {
+              "version": "1.2.0",
+              "bundled": true
+            }
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "bundled": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "bundled": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "bundled": true
+        },
+        "semver-diff": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "semver": "^5.0.3"
+          }
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "sha": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.2"
+          }
+        },
+        "shebang-command": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "shebang-regex": "^1.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "bundled": true
+        },
+        "slash": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "slide": {
+          "version": "1.1.6",
+          "bundled": true
+        },
+        "smart-buffer": {
+          "version": "4.0.2",
+          "bundled": true
+        },
+        "socks": {
+          "version": "2.3.2",
+          "bundled": true,
+          "requires": {
+            "ip": "^1.1.5",
+            "smart-buffer": "4.0.2"
+          }
+        },
+        "socks-proxy-agent": {
+          "version": "4.0.2",
+          "bundled": true,
+          "requires": {
+            "agent-base": "~4.2.1",
+            "socks": "~2.3.2"
+          },
+          "dependencies": {
+            "agent-base": {
+              "version": "4.2.1",
+              "bundled": true,
+              "requires": {
+                "es6-promisify": "^5.0.0"
+              }
+            }
+          }
+        },
+        "sorted-object": {
+          "version": "2.0.1",
+          "bundled": true
+        },
+        "sorted-union-stream": {
+          "version": "2.1.3",
+          "bundled": true,
+          "requires": {
+            "from2": "^1.3.0",
+            "stream-iterate": "^1.1.0"
+          },
+          "dependencies": {
+            "from2": {
+              "version": "1.3.0",
+              "bundled": true,
+              "requires": {
+                "inherits": "~2.0.1",
+                "readable-stream": "~1.1.10"
+              }
+            },
+            "isarray": {
+              "version": "0.0.1",
+              "bundled": true
+            },
+            "readable-stream": {
+              "version": "1.1.14",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.1",
+                "isarray": "0.0.1",
+                "string_decoder": "~0.10.x"
+              }
+            },
+            "string_decoder": {
+              "version": "0.10.31",
+              "bundled": true
+            }
+          }
+        },
+        "spdx-correct": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "spdx-expression-parse": "^3.0.0",
+            "spdx-license-ids": "^3.0.0"
+          }
+        },
+        "spdx-exceptions": {
+          "version": "2.1.0",
+          "bundled": true
+        },
+        "spdx-expression-parse": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "spdx-exceptions": "^2.1.0",
+            "spdx-license-ids": "^3.0.0"
+          }
+        },
+        "spdx-license-ids": {
+          "version": "3.0.3",
+          "bundled": true
+        },
+        "split-on-first": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "sshpk": {
+          "version": "1.14.2",
+          "bundled": true,
+          "requires": {
+            "asn1": "~0.2.3",
+            "assert-plus": "^1.0.0",
+            "bcrypt-pbkdf": "^1.0.0",
+            "dashdash": "^1.12.0",
+            "ecc-jsbn": "~0.1.1",
+            "getpass": "^0.1.1",
+            "jsbn": "~0.1.0",
+            "safer-buffer": "^2.0.2",
+            "tweetnacl": "~0.14.0"
+          }
+        },
+        "ssri": {
+          "version": "6.0.1",
+          "bundled": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1"
+          }
+        },
+        "stream-each": {
+          "version": "1.2.2",
+          "bundled": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "stream-shift": "^1.0.0"
+          }
+        },
+        "stream-iterate": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "readable-stream": "^2.1.5",
+            "stream-shift": "^1.0.0"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "stream-shift": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "strict-uri-encode": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "bundled": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "3.0.0",
+              "bundled": true
+            },
+            "is-fullwidth-code-point": {
+              "version": "2.0.0",
+              "bundled": true
+            },
+            "strip-ansi": {
+              "version": "4.0.0",
+              "bundled": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "string_decoder": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        },
+        "stringify-package": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "bundled": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "strip-eof": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "bundled": true
+        },
+        "supports-color": {
+          "version": "5.4.0",
+          "bundled": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        },
+        "tar": {
+          "version": "4.4.10",
+          "bundled": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.5",
+            "minizlib": "^1.2.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.3"
+          },
+          "dependencies": {
+            "minipass": {
+              "version": "2.3.5",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "^5.1.2",
+                "yallist": "^3.0.0"
+              }
+            },
+            "yallist": {
+              "version": "3.0.3",
+              "bundled": true
+            }
+          }
+        },
+        "term-size": {
+          "version": "1.2.0",
+          "bundled": true,
+          "requires": {
+            "execa": "^0.7.0"
+          }
+        },
+        "text-table": {
+          "version": "0.2.0",
+          "bundled": true
+        },
+        "through": {
+          "version": "2.3.8",
+          "bundled": true
+        },
+        "through2": {
+          "version": "2.0.3",
+          "bundled": true,
+          "requires": {
+            "readable-stream": "^2.1.5",
+            "xtend": "~4.0.1"
+          },
+          "dependencies": {
+            "readable-stream": {
+              "version": "2.3.6",
+              "bundled": true,
+              "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+              }
+            },
+            "string_decoder": {
+              "version": "1.1.1",
+              "bundled": true,
+              "requires": {
+                "safe-buffer": "~5.1.0"
+              }
+            }
+          }
+        },
+        "timed-out": {
+          "version": "4.0.1",
+          "bundled": true
+        },
+        "tiny-relative-date": {
+          "version": "1.3.0",
+          "bundled": true
+        },
+        "tough-cookie": {
+          "version": "2.4.3",
+          "bundled": true,
+          "requires": {
+            "psl": "^1.1.24",
+            "punycode": "^1.4.1"
+          }
+        },
+        "tunnel-agent": {
+          "version": "0.6.0",
+          "bundled": true,
+          "requires": {
+            "safe-buffer": "^5.0.1"
+          }
+        },
+        "tweetnacl": {
+          "version": "0.14.5",
+          "bundled": true,
+          "optional": true
+        },
+        "typedarray": {
+          "version": "0.0.6",
+          "bundled": true
+        },
+        "uid-number": {
+          "version": "0.0.6",
+          "bundled": true
+        },
+        "umask": {
+          "version": "1.1.0",
+          "bundled": true
+        },
+        "unique-filename": {
+          "version": "1.1.1",
+          "bundled": true,
+          "requires": {
+            "unique-slug": "^2.0.0"
+          }
+        },
+        "unique-slug": {
+          "version": "2.0.0",
+          "bundled": true,
+          "requires": {
+            "imurmurhash": "^0.1.4"
+          }
+        },
+        "unique-string": {
+          "version": "1.0.0",
+          "bundled": true,
+          "requires": {
+            "crypto-random-string": "^1.0.0"
+          }
+        },
+        "unpipe": {
+          "version": "1.0.0",
+          "bundled": true
+        },
+        "unzip-response": {
+          "version": "2.0.1",
+          "bundled": true
+        },
+        "update-notifier": {
+          "version": "2.5.0",
+          "bundled": true,
+          "requires": {
+            "boxen": "^1.2.1",
+            "chalk": "^2.0.1",
+            "configstore": "^3.0.0",
+            "import-lazy": "^2.1.0",
+            "is-ci": "^1.0.10",
+            "is-installed-globally": "^0.1.0",
+            "is-npm": "^1.0.0",
+            "latest-version": "^3.0.0",
+            "semver-diff": "^2.0.0",
+            "xdg-basedir": "^3.0.0"
+          }
+        },
+        "url-parse-lax": {
+          "version": "1.0.0",
+          "bundled": true,
+          "requires": {
+            "prepend-http": "^1.0.1"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "util-extend": {
+          "version": "1.0.3",
+          "bundled": true
+        },
+        "util-promisify": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "object.getownpropertydescriptors": "^2.0.3"
+          }
+        },
+        "uuid": {
+          "version": "3.3.2",
+          "bundled": true
+        },
+        "validate-npm-package-license": {
+          "version": "3.0.4",
+          "bundled": true,
+          "requires": {
+            "spdx-correct": "^3.0.0",
+            "spdx-expression-parse": "^3.0.0"
+          }
+        },
+        "validate-npm-package-name": {
+          "version": "3.0.0",
+          "bundled": true,
+          "requires": {
+            "builtins": "^1.0.3"
+          }
+        },
+        "verror": {
+          "version": "1.10.0",
+          "bundled": true,
+          "requires": {
+            "assert-plus": "^1.0.0",
+            "core-util-is": "1.0.2",
+            "extsprintf": "^1.2.0"
+          }
+        },
+        "wcwidth": {
+          "version": "1.0.1",
+          "bundled": true,
+          "requires": {
+            "defaults": "^1.0.3"
+          }
+        },
+        "which": {
+          "version": "1.3.1",
+          "bundled": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "bundled": true
+        },
+        "wide-align": {
+          "version": "1.1.2",
+          "bundled": true,
+          "requires": {
+            "string-width": "^1.0.2"
+          },
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2",
+              "bundled": true,
+              "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+              }
+            }
+          }
+        },
+        "widest-line": {
+          "version": "2.0.0",
+          "bundled": true,
+          "requires": {
+            "string-width": "^2.1.1"
+          }
+        },
+        "worker-farm": {
+          "version": "1.7.0",
+          "bundled": true,
+          "requires": {
+            "errno": "~0.1.7"
+          }
+        },
+        "wrap-ansi": {
+          "version": "2.1.0",
+          "bundled": true,
+          "requires": {
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1"
+          },
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2",
+              "bundled": true,
+              "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+              }
+            }
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "bundled": true
+        },
+        "write-file-atomic": {
+          "version": "2.4.3",
+          "bundled": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "imurmurhash": "^0.1.4",
+            "signal-exit": "^3.0.2"
+          }
+        },
+        "xdg-basedir": {
+          "version": "3.0.0",
+          "bundled": true
+        },
+        "xtend": {
+          "version": "4.0.1",
+          "bundled": true
+        },
+        "y18n": {
+          "version": "4.0.0",
+          "bundled": true
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "bundled": true
+        },
+        "yargs": {
+          "version": "11.0.0",
+          "bundled": true,
+          "requires": {
+            "cliui": "^4.0.0",
+            "decamelize": "^1.1.1",
+            "find-up": "^2.1.0",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^2.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^9.0.2"
+          },
+          "dependencies": {
+            "y18n": {
+              "version": "3.2.1",
+              "bundled": true
+            }
+          }
+        },
+        "yargs-parser": {
+          "version": "9.0.2",
+          "bundled": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "npm-bundled": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+      "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
+      "dev": true
+    },
+    "npm-package-arg": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz",
+      "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.6.0",
+        "osenv": "^0.1.5",
+        "semver": "^5.5.0",
+        "validate-npm-package-name": "^3.0.0"
+      }
+    },
+    "npm-packlist": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.4.tgz",
+      "integrity": "sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==",
+      "dev": true,
+      "requires": {
+        "ignore-walk": "^3.0.1",
+        "npm-bundled": "^1.0.1"
+      }
+    },
+    "npm-pick-manifest": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz",
+      "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==",
+      "dev": true,
+      "requires": {
+        "figgy-pudding": "^3.5.1",
+        "npm-package-arg": "^6.0.0",
+        "semver": "^5.4.1"
+      }
+    },
+    "npm-registry-fetch": {
+      "version": "3.9.1",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz",
+      "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==",
+      "dev": true,
+      "requires": {
+        "JSONStream": "^1.3.4",
+        "bluebird": "^3.5.1",
+        "figgy-pudding": "^3.4.1",
+        "lru-cache": "^5.1.1",
+        "make-fetch-happen": "^4.0.2",
+        "npm-package-arg": "^6.1.0"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "npmlog": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "are-we-there-yet": "~1.1.2",
+        "console-control-strings": "~1.1.0",
+        "gauge": "~2.7.3",
+        "set-blocking": "~2.0.0"
+      }
+    },
+    "null-check": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+      "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+      "dev": true
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+      "dev": true
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+      "dev": true
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+    },
+    "object-component": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-is": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
+      "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+      "dev": true
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+      "dev": true
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "on-headers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+      "dev": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      },
+      "dependencies": {
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        }
+      }
+    },
+    "open": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz",
+      "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "opn": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
+      "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "optimist": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+      "requires": {
+        "minimist": "~0.0.1",
+        "wordwrap": "~0.0.2"
+      },
+      "dependencies": {
+        "wordwrap": {
+          "version": "0.0.3",
+          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+          "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+        }
+      }
+    },
+    "optionator": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+      "requires": {
+        "deep-is": "~0.1.3",
+        "fast-levenshtein": "~2.0.4",
+        "levn": "~0.3.0",
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2",
+        "wordwrap": "~1.0.0"
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+      "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+      "dev": true,
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "os-locale": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lcid": "^1.0.0"
+      }
+    },
+    "os-name": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
+      "integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=",
+      "requires": {
+        "osx-release": "^1.0.0",
+        "win-release": "^1.0.0"
+      }
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
+      }
+    },
+    "osx-release": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
+      "integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=",
+      "requires": {
+        "minimist": "^1.1.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+        }
+      }
+    },
+    "p-defer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+      "dev": true
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+      "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+      "requires": {
+        "p-try": "^2.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+      "requires": {
+        "p-limit": "^2.0.0"
+      }
+    },
+    "p-map": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+      "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+      "dev": true
+    },
+    "p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+    },
+    "pac-proxy-agent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz",
+      "integrity": "sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q==",
+      "requires": {
+        "agent-base": "^4.2.0",
+        "debug": "^3.1.0",
+        "get-uri": "^2.0.0",
+        "http-proxy-agent": "^2.1.0",
+        "https-proxy-agent": "^2.2.1",
+        "pac-resolver": "^3.0.0",
+        "raw-body": "^2.2.0",
+        "socks-proxy-agent": "^4.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "pac-resolver": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz",
+      "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==",
+      "requires": {
+        "co": "^4.6.0",
+        "degenerator": "^1.0.4",
+        "ip": "^1.1.5",
+        "netmask": "^1.0.6",
+        "thunkify": "^2.1.2"
+      }
+    },
+    "pacote": {
+      "version": "9.4.0",
+      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz",
+      "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.3",
+        "cacache": "^11.3.2",
+        "figgy-pudding": "^3.5.1",
+        "get-stream": "^4.1.0",
+        "glob": "^7.1.3",
+        "lru-cache": "^5.1.1",
+        "make-fetch-happen": "^4.0.1",
+        "minimatch": "^3.0.4",
+        "minipass": "^2.3.5",
+        "mississippi": "^3.0.0",
+        "mkdirp": "^0.5.1",
+        "normalize-package-data": "^2.4.0",
+        "npm-package-arg": "^6.1.0",
+        "npm-packlist": "^1.1.12",
+        "npm-pick-manifest": "^2.2.3",
+        "npm-registry-fetch": "^3.8.0",
+        "osenv": "^0.1.5",
+        "promise-inflight": "^1.0.1",
+        "promise-retry": "^1.1.1",
+        "protoduck": "^5.0.1",
+        "rimraf": "^2.6.2",
+        "safe-buffer": "^5.1.2",
+        "semver": "^5.6.0",
+        "ssri": "^6.0.1",
+        "tar": "^4.4.8",
+        "unique-filename": "^1.1.1",
+        "which": "^1.3.1"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "tar": {
+          "version": "4.4.10",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
+          "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.5",
+            "minizlib": "^1.2.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.3"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "pako": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="
+    },
+    "parallel-transform": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+      "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+      "requires": {
+        "cyclist": "~0.2.2",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+      "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-json": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+      "dev": true,
+      "requires": {
+        "error-ex": "^1.2.0"
+      }
+    },
+    "parse5": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
+      "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
+      "optional": true
+    },
+    "parseqs": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseuri": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+    },
+    "path-browserify": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+      "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "pause-stream": {
+      "version": "0.0.11",
+      "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+      "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+      "requires": {
+        "through": "~2.3"
+      }
+    },
+    "pbkdf2": {
+      "version": "3.0.17",
+      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+      "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+      "dev": true
+    },
+    "pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+      "dev": true
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "dev": true,
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+      "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+      "requires": {
+        "find-up": "^3.0.0"
+      }
+    },
+    "platform": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz",
+      "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q=="
+    },
+    "portfinder": {
+      "version": "1.0.17",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
+      "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
+      "dev": true,
+      "requires": {
+        "async": "^1.5.2",
+        "debug": "^2.2.0",
+        "mkdirp": "0.5.x"
+      },
+      "dependencies": {
+        "async": {
+          "version": "1.5.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+          "dev": true
+        }
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+    },
+    "postcss": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz",
+      "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "source-map": "^0.6.1",
+        "supports-color": "^5.5.0"
+      }
+    },
+    "postcss-import": {
+      "version": "12.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz",
+      "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.1",
+        "postcss-value-parser": "^3.2.3",
+        "read-cache": "^1.0.0",
+        "resolve": "^1.1.7"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+      "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+      "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^7.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "postcss-value-parser": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+      "dev": true
+    },
+    "prelude-ls": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+    },
+    "promise": {
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "asap": "~2.0.3"
+      }
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
+    },
+    "promise-retry": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
+      "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
+      "dev": true,
+      "requires": {
+        "err-code": "^1.0.0",
+        "retry": "^0.10.0"
+      }
+    },
+    "protoduck": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz",
+      "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==",
+      "dev": true,
+      "requires": {
+        "genfun": "^5.0.0"
+      }
+    },
+    "protractor": {
+      "version": "5.4.2",
+      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz",
+      "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==",
+      "dev": true,
+      "requires": {
+        "@types/q": "^0.0.32",
+        "@types/selenium-webdriver": "^3.0.0",
+        "blocking-proxy": "^1.0.0",
+        "browserstack": "^1.5.1",
+        "chalk": "^1.1.3",
+        "glob": "^7.0.3",
+        "jasmine": "2.8.0",
+        "jasminewd2": "^2.1.0",
+        "optimist": "~0.6.0",
+        "q": "1.4.1",
+        "saucelabs": "^1.5.0",
+        "selenium-webdriver": "3.6.0",
+        "source-map-support": "~0.4.0",
+        "webdriver-js-extender": "2.1.0",
+        "webdriver-manager": "^12.0.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "del": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+          "dev": true,
+          "requires": {
+            "globby": "^5.0.0",
+            "is-path-cwd": "^1.0.0",
+            "is-path-in-cwd": "^1.0.0",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0",
+            "rimraf": "^2.2.8"
+          }
+        },
+        "globby": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "arrify": "^1.0.0",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "source-map-support": {
+          "version": "0.4.18",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+          "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+          "dev": true,
+          "requires": {
+            "source-map": "^0.5.6"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        },
+        "webdriver-manager": {
+          "version": "12.1.6",
+          "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.6.tgz",
+          "integrity": "sha512-B1mOycNCrbk7xODw7Jgq/mdD3qzPxMaTsnKIQDy2nXlQoyjTrJTTD0vRpEZI9b8RibPEyQvh9zIZ0M1mpOxS3w==",
+          "dev": true,
+          "requires": {
+            "adm-zip": "^0.4.9",
+            "chalk": "^1.1.1",
+            "del": "^2.2.0",
+            "glob": "^7.0.3",
+            "ini": "^1.3.4",
+            "minimist": "^1.2.0",
+            "q": "^1.4.1",
+            "request": "^2.87.0",
+            "rimraf": "^2.5.2",
+            "semver": "^5.3.0",
+            "xml2js": "^0.4.17"
+          }
+        }
+      }
+    },
+    "proxy-addr": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+      "dev": true,
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.9.0"
+      }
+    },
+    "proxy-agent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.0.tgz",
+      "integrity": "sha512-IkbZL4ClW3wwBL/ABFD2zJ8iP84CY0uKMvBPk/OceQe/cEjrxzN1pMHsLwhbzUoRhG9QbSxYC+Z7LBkTiBNvrA==",
+      "requires": {
+        "agent-base": "^4.2.0",
+        "debug": "^3.1.0",
+        "http-proxy-agent": "^2.1.0",
+        "https-proxy-agent": "^2.2.1",
+        "lru-cache": "^4.1.2",
+        "pac-proxy-agent": "^3.0.0",
+        "proxy-from-env": "^1.0.0",
+        "socks-proxy-agent": "^4.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "proxy-from-env": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+      "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+    },
+    "psl": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.1.tgz",
+      "integrity": "sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA==",
+      "dev": true
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "pump": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      },
+      "dependencies": {
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        }
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+    },
+    "q": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+      "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+      "dev": true
+    },
+    "qjobs": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+      "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+      "dev": true
+    },
+    "qrcodejs2": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+      "integrity": "sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE="
+    },
+    "qs": {
+      "version": "6.8.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz",
+      "integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w=="
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+    },
+    "querystringify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+      "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+      "dev": true
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "dev": true
+    },
+    "raw-body": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
+      "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
+      "requires": {
+        "bytes": "3.1.0",
+        "http-errors": "1.7.3",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      }
+    },
+    "raw-loader": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
+      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
+      "dev": true
+    },
+    "read-cache": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+      "dev": true,
+      "requires": {
+        "pify": "^2.3.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "load-json-file": "^1.0.0",
+        "normalize-package-data": "^2.3.2",
+        "path-type": "^1.0.0"
+      },
+      "dependencies": {
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "find-up": "^1.0.0",
+        "read-pkg": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        }
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+      "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "micromatch": "^3.1.10",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "redent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "indent-string": "^2.1.0",
+        "strip-indent": "^1.0.1"
+      }
+    },
+    "reflect-metadata": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+      "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+      "dev": true
+    },
+    "regenerate": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+      "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+      "dev": true
+    },
+    "regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+      "dev": true
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+          "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+          "requires": {
+            "assign-symbols": "^1.0.0",
+            "is-extendable": "^1.0.1"
+          }
+        },
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "regexp.prototype.flags": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
+      "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2"
+      }
+    },
+    "regexpu-core": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.2.1",
+        "regjsgen": "^0.2.0",
+        "regjsparser": "^0.1.4"
+      }
+    },
+    "regjsgen": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "request": {
+      "version": "2.88.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.0",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.4.3",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      },
+      "dependencies": {
+        "qs": {
+          "version": "6.5.2",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+          "dev": true
+        }
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+      "dev": true
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+      "dev": true
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+      "dev": true
+    },
+    "resolve": {
+      "version": "1.12.0",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+      "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+      "requires": {
+        "path-parse": "^1.0.6"
+      }
+    },
+    "resolve-cwd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+    },
+    "retry": {
+      "version": "0.10.1",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
+      "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+      "dev": true
+    },
+    "rfdc": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
+      "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==",
+      "dev": true
+    },
+    "rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-async": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+      "dev": true,
+      "requires": {
+        "is-promise": "^2.1.0"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "rxjs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
+      "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "rxjs-compat": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.5.2.tgz",
+      "integrity": "sha512-TRMkTp4FgSxE2HtGvxmgRukh3JqdFM7ejAj1Ti/VdodbPGfWvZR5+KdLKRV9jVDFyu2SknM8RD+PR54KGnoLjg=="
+    },
+    "rxjs-tslint": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/rxjs-tslint/-/rxjs-tslint-0.1.7.tgz",
+      "integrity": "sha512-NnOfqutNfdT7VQnQm32JLYh2gDZjc0gdWZFtrxf/czNGkLKJ1nOO6jbKAFI09W0f9lCtv6P2ozxjbQH8TSPPFQ==",
+      "requires": {
+        "chalk": "^2.4.0",
+        "optimist": "^0.6.1",
+        "tslint": "^5.9.1",
+        "tsutils": "^2.25.0",
+        "typescript": ">=2.8.3"
+      },
+      "dependencies": {
+        "typescript": {
+          "version": "3.6.2",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.2.tgz",
+          "integrity": "sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw=="
+        }
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "sass-graph": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "lodash": "^4.0.0",
+        "scss-tokenizer": "^0.2.3",
+        "yargs": "^7.0.0"
+      }
+    },
+    "sass-loader": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+      "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^2.0.1",
+        "loader-utils": "^1.0.1",
+        "lodash.tail": "^4.1.1",
+        "neo-async": "^2.5.0",
+        "pify": "^3.0.0",
+        "semver": "^5.5.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "saucelabs": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
+      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+    },
+    "schema-utils": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+      "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+      "requires": {
+        "ajv": "^6.1.0",
+        "ajv-errors": "^1.0.0",
+        "ajv-keywords": "^3.1.0"
+      }
+    },
+    "scss-tokenizer": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "js-base64": "^2.1.8",
+        "source-map": "^0.4.2"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "sdk-base": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz",
+      "integrity": "sha1-ukAonovfJy7RHdnql+r5jgNtJMY=",
+      "requires": {
+        "get-ready": "~1.0.0"
+      }
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "dev": true
+    },
+    "selenium-webdriver": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
+      "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
+      "dev": true,
+      "requires": {
+        "jszip": "^3.1.3",
+        "rimraf": "^2.5.4",
+        "tmp": "0.0.30",
+        "xml2js": "^0.4.17"
+      },
+      "dependencies": {
+        "tmp": {
+          "version": "0.0.30",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
+          "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
+          "dev": true,
+          "requires": {
+            "os-tmpdir": "~1.0.1"
+          }
+        }
+      }
+    },
+    "selfsigned": {
+      "version": "1.10.4",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz",
+      "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==",
+      "dev": true,
+      "requires": {
+        "node-forge": "0.7.5"
+      }
+    },
+    "semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+    },
+    "semver-dsl": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz",
+      "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=",
+      "dev": true,
+      "requires": {
+        "semver": "^5.3.0"
+      }
+    },
+    "semver-intersect": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz",
+      "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==",
+      "dev": true,
+      "requires": {
+        "semver": "^5.0.0"
+      }
+    },
+    "send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.7.2",
+        "mime": "1.6.0",
+        "ms": "2.1.1",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.1",
+        "statuses": "~1.5.0"
+      },
+      "dependencies": {
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.0.tgz",
+      "integrity": "sha512-UkGlcYMtw4d9w7YfCtJFgdRTps8N4L0A48R+SmcGL57ki1+yHwJXnalk5bjgrw+ljv6SfzjzPjhohod2qllg/Q=="
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      },
+      "dependencies": {
+        "http-errors": {
+          "version": "1.6.3",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+          "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.0",
+            "statuses": ">= 1.4.0 < 2"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        },
+        "setprototypeof": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+          "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+          "dev": true
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+      "dev": true,
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.17.1"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "dev": true
+    },
+    "set-immediate-shim": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+      "dev": true
+    },
+    "set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+    },
+    "setprototypeof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shallow-clone": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+      "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+      "dev": true,
+      "requires": {
+        "is-extendable": "^0.1.1",
+        "kind-of": "^5.0.0",
+        "mixin-object": "^2.0.1"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+      "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "interpret": "^1.0.0",
+        "rechoir": "^0.6.2"
+      }
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+      "dev": true
+    },
+    "slash": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+      "dev": true
+    },
+    "smart-buffer": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz",
+      "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw=="
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "socket.io": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
+      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+      "dev": true,
+      "requires": {
+        "debug": "~3.1.0",
+        "engine.io": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "socket.io-adapter": "~1.1.0",
+        "socket.io-client": "2.1.1",
+        "socket.io-parser": "~3.2.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "socket.io-adapter": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
+      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
+      "dev": true
+    },
+    "socket.io-client": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
+      "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
+      "dev": true,
+      "requires": {
+        "backo2": "1.0.2",
+        "base64-arraybuffer": "0.1.5",
+        "component-bind": "1.0.0",
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "engine.io-client": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "object-component": "0.0.3",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "socket.io-parser": "~3.2.0",
+        "to-array": "0.1.4"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "socket.io-parser": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
+      "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "sockjs": {
+      "version": "0.3.19",
+      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+      "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+      "dev": true,
+      "requires": {
+        "faye-websocket": "^0.10.0",
+        "uuid": "^3.0.1"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
+      "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.5",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "~0.11.1",
+        "inherits": "^2.0.3",
+        "json3": "^3.3.2",
+        "url-parse": "^1.4.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "faye-websocket": {
+          "version": "0.11.3",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+          "dev": true,
+          "requires": {
+            "websocket-driver": ">=0.5.1"
+          }
+        }
+      }
+    },
+    "socks": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz",
+      "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==",
+      "requires": {
+        "ip": "^1.1.5",
+        "smart-buffer": "4.0.2"
+      }
+    },
+    "socks-proxy-agent": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz",
+      "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==",
+      "requires": {
+        "agent-base": "~4.2.1",
+        "socks": "~2.3.2"
+      },
+      "dependencies": {
+        "agent-base": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
+          "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
+          "requires": {
+            "es6-promisify": "^5.0.0"
+          }
+        }
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+    },
+    "source-map-loader": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz",
+      "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==",
+      "dev": true,
+      "requires": {
+        "async": "^2.5.0",
+        "loader-utils": "^1.1.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+          "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+          "dev": true,
+          "requires": {
+            "lodash": "^4.17.14"
+          }
+        }
+      }
+    },
+    "source-map-resolve": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+      "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+      "requires": {
+        "atob": "^2.1.1",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.5.13",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+      "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+    },
+    "sourcemap-codec": {
+      "version": "1.4.6",
+      "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
+      "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
+      "dev": true
+    },
+    "spark-md5": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.0.tgz",
+      "integrity": "sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8="
+    },
+    "spdx-correct": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+      "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+      "dev": true,
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+      "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+      "dev": true
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+      "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+      "dev": true,
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+      "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+      "dev": true
+    },
+    "spdy": {
+      "version": "3.4.7",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.6.8",
+        "handle-thing": "^1.2.5",
+        "http-deceiver": "^1.2.7",
+        "safe-buffer": "^5.0.1",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^2.0.18"
+      }
+    },
+    "spdy-transport": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz",
+      "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==",
+      "dev": true,
+      "requires": {
+        "debug": "^2.6.8",
+        "detect-node": "^2.0.3",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.1",
+        "readable-stream": "^2.2.9",
+        "safe-buffer": "^5.0.1",
+        "wbuf": "^1.7.2"
+      }
+    },
+    "speed-measure-webpack-plugin": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz",
+      "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+          "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+          "requires": {
+            "assign-symbols": "^1.0.0",
+            "is-extendable": "^1.0.1"
+          }
+        },
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+    },
+    "sshpk": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+      "dev": true,
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "ssri": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+      "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+      "requires": {
+        "figgy-pudding": "^3.5.1"
+      }
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "stats-webpack-plugin": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz",
+      "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.4"
+      }
+    },
+    "statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+    },
+    "stdout-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+      "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.2",
+      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz",
+      "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==",
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
+    },
+    "stream-wormhole": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz",
+      "integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew=="
+    },
+    "streamroller": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
+      "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+      "dev": true,
+      "requires": {
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "mkdirp": "^0.5.1",
+        "readable-stream": "^2.3.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "dev": true,
+      "requires": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "is-utf8": "^0.2.0"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "get-stdin": "^4.0.1"
+      }
+    },
+    "style-loader": {
+      "version": "0.23.1",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+      "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "stylus": {
+      "version": "0.54.5",
+      "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
+      "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
+      "dev": true,
+      "requires": {
+        "css-parse": "1.7.x",
+        "debug": "*",
+        "glob": "7.0.x",
+        "mkdirp": "0.5.x",
+        "sax": "0.5.x",
+        "source-map": "0.1.x"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.0.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+          "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.2",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "sax": {
+          "version": "0.5.8",
+          "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+          "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "stylus-loader": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",
+      "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "lodash.clonedeep": "^4.5.0",
+        "when": "~3.6.x"
+      }
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "symbol-observable": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+      "dev": true
+    },
+    "tapable": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+      "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
+    },
+    "tar": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "block-stream": "*",
+        "fstream": "^1.0.12",
+        "inherits": "2"
+      }
+    },
+    "terser": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-4.2.1.tgz",
+      "integrity": "sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A==",
+      "requires": {
+        "commander": "^2.20.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.12"
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
+      "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
+      "requires": {
+        "cacache": "^12.0.2",
+        "find-cache-dir": "^2.1.0",
+        "is-wsl": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.7.0",
+        "source-map": "^0.6.1",
+        "terser": "^4.1.2",
+        "webpack-sources": "^1.4.0",
+        "worker-farm": "^1.7.0"
+      }
+    },
+    "thenify": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
+      "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
+      "requires": {
+        "any-promise": "^1.0.0"
+      }
+    },
+    "thenify-all": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+      "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+      "requires": {
+        "thenify": ">= 3.1.0 < 4"
+      }
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunkify": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz",
+      "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0="
+    },
+    "thunky": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
+      "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
+      "dev": true
+    },
+    "timers-browserify": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+      "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "tinycolor2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz",
+      "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g="
+    },
+    "tmp": {
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+      "dev": true,
+      "requires": {
+        "os-tmpdir": "~1.0.2"
+      }
+    },
+    "to-array": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+      "dev": true
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+    },
+    "to-fast-properties": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+          "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+          "requires": {
+            "assign-symbols": "^1.0.0",
+            "is-extendable": "^1.0.1"
+          }
+        },
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "toidentifier": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+    },
+    "tough-cookie": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+      "dev": true,
+      "requires": {
+        "psl": "^1.1.24",
+        "punycode": "^1.4.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "tree-kill": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
+      "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
+      "dev": true
+    },
+    "trim-newlines": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+      "dev": true,
+      "optional": true
+    },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
+    "true-case-path": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.1.2"
+      }
+    },
+    "ts-node": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz",
+      "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==",
+      "dev": true,
+      "requires": {
+        "arrify": "^1.0.0",
+        "chalk": "^2.3.0",
+        "diff": "^3.1.0",
+        "make-error": "^1.1.1",
+        "minimist": "^1.2.0",
+        "mkdirp": "^0.5.1",
+        "source-map-support": "^0.5.3",
+        "yn": "^2.0.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
+    },
+    "tslib": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+      "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+    },
+    "tslint": {
+      "version": "5.19.0",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.19.0.tgz",
+      "integrity": "sha512-1LwwtBxfRJZnUvoS9c0uj8XQtAnyhWr9KlNvDIdB+oXyT+VpsOAaEhEgKi1HrZ8rq0ki/AAnbGSv4KM6/AfVZw==",
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "builtin-modules": "^1.1.1",
+        "chalk": "^2.3.0",
+        "commander": "^2.12.1",
+        "diff": "^3.2.0",
+        "glob": "^7.1.1",
+        "js-yaml": "^3.13.1",
+        "minimatch": "^3.0.4",
+        "mkdirp": "^0.5.1",
+        "resolve": "^1.3.2",
+        "semver": "^5.3.0",
+        "tslib": "^1.8.0",
+        "tsutils": "^2.29.0"
+      }
+    },
+    "tsutils": {
+      "version": "2.29.0",
+      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+      "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+      "requires": {
+        "tslib": "^1.8.1"
+      }
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "dev": true
+    },
+    "type-check": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+      "requires": {
+        "prelude-ls": "~1.1.2"
+      }
+    },
+    "type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+    },
+    "typescript": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.1.tgz",
+      "integrity": "sha512-Veu0w4dTc/9wlWNf2jeRInNodKlcdLgemvPsrNpfu5Pq39sgfFjvIIgTsvUHCoLBnMhPoUA+tFxsXjU6VexVRQ==",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
+      "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "commander": "~2.20.0",
+        "source-map": "~0.6.1"
+      }
+    },
+    "uglifyjs-webpack-plugin": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
+      "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "schema-utils": "^0.4.5",
+        "serialize-javascript": "^1.4.0",
+        "source-map": "^0.6.1",
+        "uglify-es": "^3.3.4",
+        "webpack-sources": "^1.1.0",
+        "worker-farm": "^1.5.2"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "10.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+          "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.1",
+            "chownr": "^1.0.1",
+            "glob": "^7.1.2",
+            "graceful-fs": "^4.1.11",
+            "lru-cache": "^4.1.1",
+            "mississippi": "^2.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^5.2.4",
+            "unique-filename": "^1.1.0",
+            "y18n": "^4.0.0"
+          }
+        },
+        "commander": {
+          "version": "2.13.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+          "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+          "dev": true
+        },
+        "find-cache-dir": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+          "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^1.0.0",
+            "pkg-dir": "^2.0.0"
+          }
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+          "dev": true,
+          "requires": {
+            "locate-path": "^2.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+          "dev": true,
+          "requires": {
+            "p-locate": "^2.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "make-dir": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+          "dev": true,
+          "requires": {
+            "pify": "^3.0.0"
+          }
+        },
+        "mississippi": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+          "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^2.0.1",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+          "dev": true,
+          "requires": {
+            "p-try": "^1.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+          "dev": true,
+          "requires": {
+            "p-limit": "^1.1.0"
+          }
+        },
+        "p-try": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+          "dev": true
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+          "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.1.0"
+          }
+        },
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "ssri": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+          "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "^5.1.1"
+          }
+        },
+        "uglify-es": {
+          "version": "3.3.9",
+          "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+          "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+          "dev": true,
+          "requires": {
+            "commander": "~2.13.0",
+            "source-map": "~0.6.1"
+          }
+        }
+      }
+    },
+    "ultron": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+      "dev": true
+    },
+    "underscore": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
+      "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
+    },
+    "unescape": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz",
+      "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
+      "requires": {
+        "extend-shallow": "^2.0.1"
+      }
+    },
+    "union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^2.0.1"
+      }
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+      "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+        }
+      }
+    },
+    "upath": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+      "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+    },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+        }
+      }
+    },
+    "url-parse": {
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+      "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+      "dev": true,
+      "requires": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "urllib": {
+      "version": "2.34.1",
+      "resolved": "https://registry.npmjs.org/urllib/-/urllib-2.34.1.tgz",
+      "integrity": "sha512-oprAn7mvU10+cId+x6aI/EmpQnn7izTM9QEqTb88l8o7EIW+thYJN4RvpU5wBQh702epQmXveMiUDn+4TDwm9Q==",
+      "requires": {
+        "any-promise": "^1.3.0",
+        "content-type": "^1.0.2",
+        "debug": "^2.6.9",
+        "default-user-agent": "^1.0.0",
+        "digest-header": "^0.0.1",
+        "ee-first": "~1.1.1",
+        "formstream": "^1.1.0",
+        "humanize-ms": "^1.2.0",
+        "iconv-lite": "^0.4.15",
+        "ip": "^1.1.5",
+        "proxy-agent": "^3.1.0",
+        "pump": "^3.0.0",
+        "qs": "^6.4.0",
+        "statuses": "^1.3.1",
+        "utility": "^1.16.1"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+    },
+    "useragent": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
+      "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
+      "dev": true,
+      "requires": {
+        "lru-cache": "4.1.x",
+        "tmp": "0.0.x"
+      }
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+      "requires": {
+        "inherits": "2.0.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+        }
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+    },
+    "utility": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/utility/-/utility-1.16.1.tgz",
+      "integrity": "sha512-atm+llzKSZpKnsV8LgnsOMdTQNoee9D7gH8yIN86MzahugAstSZFSUdsjCk1KSvK7n7bigM9XFSOQYYuVjvcaw==",
+      "requires": {
+        "copy-to": "^2.0.1",
+        "escape-html": "^1.0.3",
+        "mkdirp": "^0.5.1",
+        "mz": "^2.7.0",
+        "unescape": "^1.0.1"
+      }
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+      "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
+      "dev": true
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "validate-npm-package-name": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+      "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
+      "dev": true,
+      "requires": {
+        "builtins": "^1.0.3"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vm-browserify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
+      "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw=="
+    },
+    "void-elements": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "dev": true
+    },
+    "watchpack": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+      "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+      "requires": {
+        "chokidar": "^2.0.2",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0"
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+      "dev": true,
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "webdriver-js-extender": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
+      "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
+      "dev": true,
+      "requires": {
+        "@types/selenium-webdriver": "^3.0.0",
+        "selenium-webdriver": "^3.0.1"
+      }
+    },
+    "webpack": {
+      "version": "4.39.3",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.3.tgz",
+      "integrity": "sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==",
+      "requires": {
+        "@webassemblyjs/ast": "1.8.5",
+        "@webassemblyjs/helper-module-context": "1.8.5",
+        "@webassemblyjs/wasm-edit": "1.8.5",
+        "@webassemblyjs/wasm-parser": "1.8.5",
+        "acorn": "^6.2.1",
+        "ajv": "^6.10.2",
+        "ajv-keywords": "^3.4.1",
+        "chrome-trace-event": "^1.0.2",
+        "enhanced-resolve": "^4.1.0",
+        "eslint-scope": "^4.0.3",
+        "json-parse-better-errors": "^1.0.2",
+        "loader-runner": "^2.4.0",
+        "loader-utils": "^1.2.3",
+        "memory-fs": "^0.4.1",
+        "micromatch": "^3.1.10",
+        "mkdirp": "^0.5.1",
+        "neo-async": "^2.6.1",
+        "node-libs-browser": "^2.2.1",
+        "schema-utils": "^1.0.0",
+        "tapable": "^1.1.3",
+        "terser-webpack-plugin": "^1.4.1",
+        "watchpack": "^1.6.0",
+        "webpack-sources": "^1.4.1"
+      }
+    },
+    "webpack-core": {
+      "version": "0.6.9",
+      "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
+      "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
+      "dev": true,
+      "requires": {
+        "source-list-map": "~0.1.7",
+        "source-map": "~0.4.1"
+      },
+      "dependencies": {
+        "source-list-map": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+          "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
+      "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
+      "dev": true,
+      "requires": {
+        "memory-fs": "~0.4.1",
+        "mime": "^2.3.1",
+        "range-parser": "^1.0.3",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz",
+      "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.0.0",
+        "compression": "^1.5.2",
+        "connect-history-api-fallback": "^1.3.0",
+        "debug": "^3.1.0",
+        "del": "^3.0.0",
+        "express": "^4.16.2",
+        "html-entities": "^1.2.0",
+        "http-proxy-middleware": "~0.18.0",
+        "import-local": "^2.0.0",
+        "internal-ip": "^3.0.1",
+        "ip": "^1.1.5",
+        "killable": "^1.0.0",
+        "loglevel": "^1.4.1",
+        "opn": "^5.1.0",
+        "portfinder": "^1.0.9",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.9.1",
+        "serve-index": "^1.7.2",
+        "sockjs": "0.3.19",
+        "sockjs-client": "1.3.0",
+        "spdy": "^3.4.1",
+        "strip-ansi": "^3.0.0",
+        "supports-color": "^5.1.0",
+        "webpack-dev-middleware": "3.4.0",
+        "webpack-log": "^2.0.0",
+        "yargs": "12.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "cliui": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+          "dev": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "decamelize": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+          "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
+          "dev": true,
+          "requires": {
+            "xregexp": "4.0.0"
+          }
+        },
+        "execa": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^4.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "invert-kv": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "lcid": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+          "dev": true,
+          "requires": {
+            "invert-kv": "^2.0.0"
+          }
+        },
+        "os-locale": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+          "dev": true,
+          "requires": {
+            "execa": "^1.0.0",
+            "lcid": "^2.0.0",
+            "mem": "^4.0.0"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "xregexp": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
+          "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
+          "dev": true
+        },
+        "yargs": {
+          "version": "12.0.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
+          "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
+          "dev": true,
+          "requires": {
+            "cliui": "^4.0.0",
+            "decamelize": "^2.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^3.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1 || ^4.0.0",
+            "yargs-parser": "^10.1.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "10.1.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+          "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "webpack-log": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+      "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+      "dev": true,
+      "requires": {
+        "ansi-colors": "^3.0.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "webpack-merge": {
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
+      "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.5"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+      "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      }
+    },
+    "webpack-subresource-integrity": {
+      "version": "1.1.0-rc.6",
+      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz",
+      "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==",
+      "dev": true,
+      "requires": {
+        "webpack-core": "^0.6.8"
+      }
+    },
+    "websocket-driver": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+      "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
+      "dev": true,
+      "requires": {
+        "http-parser-js": ">=0.4.0 <0.4.11",
+        "safe-buffer": ">=5.1.0",
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+      "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+      "dev": true
+    },
+    "when": {
+      "version": "3.6.4",
+      "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
+      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+      "dev": true,
+      "optional": true
+    },
+    "wide-align": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "string-width": "^1.0.2 || 2"
+      }
+    },
+    "win-release": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+      "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
+      "requires": {
+        "semver": "^5.0.1"
+      }
+    },
+    "wordwrap": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+    },
+    "worker-farm": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+      "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    },
+    "ws": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0",
+        "safe-buffer": "~5.1.0",
+        "ultron": "~1.1.0"
+      }
+    },
+    "xhr2": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz",
+      "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
+    },
+    "xml2js": {
+      "version": "0.4.21",
+      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.21.tgz",
+      "integrity": "sha512-gHRSAYBSA1JNVbLV2l8mTpQ/zTLcNtyG4YZmNlA3pjMWTgv9swW9muK55cr3fUmSOezLTR24iPQ+FqxilTvppw==",
+      "requires": {
+        "sax": ">=0.6.0",
+        "xmlbuilder": "~13.0.0"
+      }
+    },
+    "xmlbuilder": {
+      "version": "13.0.2",
+      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz",
+      "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ=="
+    },
+    "xmlhttprequest-ssl": {
+      "version": "1.5.5",
+      "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+      "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
+      "dev": true
+    },
+    "xregexp": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
+      "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM="
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+    },
+    "y18n": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+    },
+    "yargs": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0",
+        "cliui": "^3.2.0",
+        "decamelize": "^1.1.1",
+        "get-caller-file": "^1.0.1",
+        "os-locale": "^1.4.0",
+        "read-pkg-up": "^1.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^1.0.1",
+        "set-blocking": "^2.0.0",
+        "string-width": "^1.0.2",
+        "which-module": "^1.0.0",
+        "y18n": "^3.2.1",
+        "yargs-parser": "^5.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yeast": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+      "dev": true
+    },
+    "yn": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+      "dev": true
+    },
+    "zone.js": {
+      "version": "0.8.29",
+      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz",
+      "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ=="
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..69174ff
--- /dev/null
+++ b/package.json
@@ -0,0 +1,77 @@
+{
+  "name": "ng-template-generator",
+  "version": "0.0.1",
+  "scripts": {
+    "ng": "ng",
+    "start": "ng serve",
+    "build": "ng build --prod --build--optimizer --base-href /ng-one/",
+    "test": "ng test",
+    "lint": "ng lint",
+    "e2e": "ng e2e"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/animations": "^7.2.10",
+    "@angular/cdk": "^7.2.2",
+    "@angular/common": "^7.2.10",
+    "@angular/compiler": "^7.2.10",
+    "@angular/core": "^7.2.10",
+    "@angular/flex-layout": "^7.0.0-beta.24",
+    "@angular/forms": "^7.2.10",
+    "@angular/http": "^7.2.10",
+    "@angular/material": "^7.2.2",
+    "@angular/platform-browser": "^7.2.10",
+    "@angular/platform-browser-dynamic": "^7.2.10",
+    "@angular/platform-server": "^7.2.10",
+    "@angular/router": "^7.2.10",
+    "@tweenjs/tween.js": "^17.3.0",
+    "ali-oss": "^6.0.0",
+    "angular-cropperjs": "^1.0.1",
+    "angular2-draggable": "^2.1.9",
+    "angular2-fontawesome": "^5.2.1",
+    "angularx-qrcode": "^1.5.3",
+    "animate.css": "^3.7.0",
+    "bootstrap": "^4.1.1",
+    "browser-image-compression": "^1.0.5",
+    "core-js": "^2.6.1",
+    "cropperjs": "1.4.1",
+    "css-element-queries": "^1.0.2",
+    "decimal.js": "^10.0.1",
+    "font-awesome": "^4.7.0",
+    "hammerjs": "^2.0.8",
+    "install": "^0.12.2",
+    "karma-cli": "^2.0.0",
+    "lodash": "^4.17.10",
+    "nedb": "^1.8.0",
+    "ng-lottie": "^0.3.1",
+    "ng-zorro-antd": "^7.2.0",
+    "npm": "^6.5.0",
+    "rxjs": "^6.3.3",
+    "rxjs-compat": "^6.3.3",
+    "rxjs-tslint": "^0.1.6",
+    "spark-md5": "^3.0.0",
+    "webpack": "^4.28.2",
+    "zone.js": "^0.8.26"
+  },
+  "devDependencies": {
+    "@angular-devkit/build-angular": "^0.11.4",
+    "@angular/cli": "^7.2.10",
+    "@angular/compiler-cli": "^7.2.10",
+    "@angular/language-service": "^7.2.10",
+    "@types/jasmine": "^3.3.5",
+    "@types/jasminewd2": "~2.0.3",
+    "@types/node": "^10.12.18",
+    "codelyzer": "^4.5.0",
+    "jasmine-core": "^3.3.0",
+    "jasmine-spec-reporter": "^4.2.1",
+    "karma": "^3.1.4",
+    "karma-chrome-launcher": "^2.2.0",
+    "karma-coverage-istanbul-reporter": "~2.0.0",
+    "karma-jasmine": "^2.0.1",
+    "karma-jasmine-html-reporter": "^1.4.0",
+    "protractor": "^5.4.2",
+    "ts-node": "~5.0.1",
+    "tslint": "^5.12.0",
+    "typescript": "3.1.1"
+  }
+}
diff --git a/src/app/app.component.html b/src/app/app.component.html
new file mode 100644
index 0000000..44b4b71
--- /dev/null
+++ b/src/app/app.component.html
@@ -0,0 +1,3 @@
+<app-form *ngIf="type==='form'"></app-form>
+
+<app-play *ngIf="type==='play'"></app-play>
\ No newline at end of file
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
new file mode 100644
index 0000000..9ffb6bc
--- /dev/null
+++ b/src/app/app.component.ts
@@ -0,0 +1,29 @@
+import { Component ,OnInit} from '@angular/core';
+
+@Component({
+  selector: 'app-root',
+  templateUrl: './app.component.html',
+  styleUrls: ['./app.component.scss']
+})
+export class AppComponent implements OnInit{
+  type = 'play';  
+
+  constructor() { 
+    let tp = this.getQueryString("type");
+    if(tp){
+      this.type = tp;
+    }
+  }
+
+  ngOnInit() {
+
+  }
+  getQueryString(name) {
+    const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
+    const r = window.location.search.substr(1).match(reg);
+    if (r != null) {
+      return unescape(r[2]);
+    }
+    return null;
+  }
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
new file mode 100644
index 0000000..ebea714
--- /dev/null
+++ b/src/app/app.module.ts
@@ -0,0 +1,45 @@
+
+import { BrowserModule } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { HttpClientModule } from '@angular/common/http'; 
+import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd';
+import {Angular2FontawesomeModule} from 'angular2-fontawesome/angular2-fontawesome';
+
+import { AppComponent } from './app.component';
+import { FormComponent } from './form/form.component';
+import { PlayComponent } from './play/play.component';
+import { LessonTitleConfigComponent } from './common/lesson-title-config/lesson-title-config.component'; 
+import { AudioRecorderComponent } from './common/audio-recorder/audio-recorder.component'; 
+import { PlayerContentWrapperComponent } from './common/player-content-wrapper/player-content-wrapper.component'; 
+
+/** 配置 angular i18n **/
+import { registerLocaleData } from '@angular/common';
+import zh from '@angular/common/locales/zh';
+registerLocaleData(zh);
+
+@NgModule({
+  declarations: [
+    AppComponent,
+    FormComponent,
+    PlayComponent,
+    LessonTitleConfigComponent,
+    AudioRecorderComponent,
+    PlayerContentWrapperComponent
+  ],
+  imports: [ 
+    FormsModule,
+    HttpClientModule,
+    BrowserAnimationsModule,
+    BrowserModule,
+    Angular2FontawesomeModule,
+    NgZorroAntdModule
+  ],
+  /** 配置 ng-zorro-antd 国际化(文案 及 日期) **/
+  providers   : [
+    { provide: NZ_I18N, useValue: zh_CN }
+  ],
+  bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/src/app/common/audio-recorder/audio-recorder.component.html b/src/app/common/audio-recorder/audio-recorder.component.html
new file mode 100644
index 0000000..7bde1bc
--- /dev/null
+++ b/src/app/common/audio-recorder/audio-recorder.component.html
@@ -0,0 +1,62 @@
+<div class="d-flex">
+  <div class="p-btn-record d-flex">
+    <div class="btn-clear" (click)="onBtnClearAudio()" *ngIf="withRmBtn && (audioUrl || audioBlob)">
+      <fa name="close"></fa>
+    </div>
+    <div class="btn-record" *ngIf="type===Type.RECORD && !isUploading"
+         [class.p-recording]="isRecording"
+         (click)="onBtnRecord()">
+      <fa name="microphone"></fa>
+      Record Audio
+    </div>
+    <nz-upload
+        [nzAccept] = "'.mp3'"
+        [nzShowUploadList]="false"
+        [nzBeforeUpload]="beforeUpload">
+      <!--nzAction="/user/resource"-->
+
+      <!--(nzChange)="handleChange($event)"-->
+
+      <div class="btn-upload" [ngClass]="{'has-clear': withRmBtn && (audioUrl || audioBlob)}" *ngIf="type===Type.UPLOAD && !isUploading">
+        <fa name="upload"></fa>
+        Upload Audio
+      </div>
+    </nz-upload>
+    <div class="p-upload-progress-bg" *ngIf="isUploading">
+      <div class="i-bg" [style.width]="progress+'%'"></div>
+      <div class="i-text">
+        <fa name="cloud-upload"></fa>
+        Uploading...
+      </div>
+    </div>
+
+
+    <div *ngIf="audioUrl && needRemove; then truthyTemplate else falsyTemplate"></div>
+
+    <ng-template #truthyTemplate >
+
+      <div class="btn-delete" (click)="onBtnDeleteAudio()">
+        <fa name="close"></fa>
+      </div>
+
+    </ng-template>
+
+    <ng-template #falsyTemplate>
+      <div class="btn-switch" (click)="onBtnSwitchType()">
+        <fa name="cog"></fa>
+      </div>
+    </ng-template>
+
+
+
+
+  </div>
+
+  <div class="p-progress ml-2" (click)="onBtnPlay()" *ngIf="audioUrl || audioBlob">
+    <nz-progress [nzPercent]="percent" [nzWidth]="30" [nzFormat]="progressText"
+                 nzType="circle"></nz-progress>
+    <div class="p-btn-play" [style.left]="isPlaying?'8px':''">
+      <fa [name]="playIcon"></fa>
+    </div>
+  </div>
+</div>
diff --git a/src/app/common/audio-recorder/audio-recorder.component.scss b/src/app/common/audio-recorder/audio-recorder.component.scss
new file mode 100644
index 0000000..9b6197d
--- /dev/null
+++ b/src/app/common/audio-recorder/audio-recorder.component.scss
@@ -0,0 +1,104 @@
+.p-btn-record {
+  font-size: 0.9rem;
+  color: #555;
+  font-family: "Monospaced Number", "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
+
+  .btn-record, .btn-upload {
+    cursor: pointer;
+    text-align: center;
+    width: 130px;
+    height: 33px;
+    line-height: 33px;
+    border-radius: 0.5rem 0 0 0.5rem;
+    border: 1px solid #ddd;
+    border-right: 0.5px;
+    &:hover {
+      color: rgb(64, 169, 255);
+    }
+  }
+  .btn-record.has-clear, .btn-upload.has-clear{
+    border-radius:0;
+    border-left: 0;
+  }
+  .btn-clear{
+    text-align: center;
+    color: #aaa;
+    padding: 0 0.5rem;
+    border: 1px solid #ddd;
+    border-radius: 0.5rem 0 0 0.5rem;
+    height: 33px;
+    line-height: 33px;
+  }
+  .btn-switch {
+    text-align: center;
+    color: #aaa;
+    padding: 0 0.5rem;
+    border: 1px solid #ddd;
+    border-radius: 0 0.5rem 0.5rem 0;
+    height: 33px;
+    line-height: 33px;
+    &:hover {
+      color: rgb(64, 169, 255);
+    }
+  }
+  .btn-delete {
+    text-align: center;
+    color: #aaa;
+    padding: 0 0.5rem;
+    border: 1px solid #ddd;
+    border-radius: 0 0.5rem 0.5rem 0;
+    height: 33px;
+    line-height: 33px;
+    &:hover {
+      color: #ec5b56;
+    }
+  }
+}
+
+.p-recording {
+  background: orangered;
+  color: white !important;
+}
+
+.p-upload-progress-bg {
+  position: relative;
+  width: 130px;
+  height: 33px;
+  line-height: 33px;
+  & .i-text {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    text-align: center;
+    border-radius: 0.5rem 0 0 0.5rem;
+    border: 1px solid #ddd;
+    border-right: 0.5px;
+    color: white;
+    text-shadow: 0 0 2px rgba(0, 0, 0, .85);
+  }
+  & .i-bg {
+    position: absolute;
+    left: 0;
+    top: 0;
+    height: 100%;
+    background-color: #27b43f;
+    border-radius: 0.5rem 0 0 0.5rem;
+  }
+}
+
+.p-progress {
+  margin-top: 2px;
+  position: relative;
+  line-height: 26px;
+  .p-btn-play {
+    position: absolute;
+    left: 10px;
+    top: 3px;
+    color: #555;
+  }
+}
+
+:host ::ng-deep nz-upload {
+  line-height: 33px;
+}
+
diff --git a/src/app/common/audio-recorder/audio-recorder.component.ts b/src/app/common/audio-recorder/audio-recorder.component.ts
new file mode 100644
index 0000000..784d405
--- /dev/null
+++ b/src/app/common/audio-recorder/audio-recorder.component.ts
@@ -0,0 +1,229 @@
+import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, NgZone, OnChanges} from '@angular/core';  
+import {NzMessageService, NzNotificationService, UploadFile} from 'ng-zorro-antd';
+import {HttpClient, HttpEvent, HttpEventType, HttpRequest} from '@angular/common/http';
+import {environment} from '../../../environments/environment';   
+
+declare var Recorder;
+
+@Component({
+  selector: 'app-audio-recorder',
+  templateUrl: './audio-recorder.component.html',
+  styleUrls: ['./audio-recorder.component.scss']
+}) 
+export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
+  _audioUrl: string;
+  audio = new Audio();
+  playIcon = 'play';
+  isPlaying = false;
+  isRecording = false;
+  isUploading = false;
+  type = Type.UPLOAD; // record | upload
+  Type = Type;
+  withRmBtn = false;
+
+  @Input()
+  needRemove = false;
+
+  @Input()
+  audioItem: any = null;
+
+  @Input()
+  set audioUrl(url) {
+    this._audioUrl = url
+    if (url) {
+      this.audio.src = this._audioUrl;
+      this.audio.load();
+    }
+    this.init();
+  }
+
+  get audioUrl() {
+    return this._audioUrl;
+  }
+
+  @Output() audioUploaded = new EventEmitter();
+  @Output() audioUploadFailure = new EventEmitter();
+  @Output() audioRemoved = new EventEmitter();
+  percent = 0;
+  progress = 0;
+  recorder: any;
+  audioBlob: any;
+
+  
+  constructor( private nzMessageService: NzMessageService ) { 
+
+  }
+
+  init() {
+    this.playIcon = 'play';
+    this.isPlaying = false;
+    this.isRecording = false;
+    this.isUploading = false;
+    this.percent = 0;
+    this.progress = 0;
+    this.audioBlob = null;
+  }
+  ngOnChanges() {
+    // if (!this.audioItem || !this.audioItem.type) {
+    //   return;
+    // }
+    // this.beforeUpload(this.audioItem);
+  }
+  ngOnInit() {
+    this.audio.onplay = () => {
+      this.onPlay();
+    };
+    this.audio.onpause = () => {
+      this.onPause();
+    };
+    this.audio.ontimeupdate = (event) => {
+      this.onTimeUpdate(event);
+    };
+    this.audio.onended = (event) => {
+      this.onEnded();
+    };
+  }
+
+  ngOnDestroy() {
+    this.audio.pause();
+    this.isPlaying = false;
+    this.audio.remove();
+    // if (this.recorder.worker) {
+    //   this.recorder.worker.terminate();
+    // }
+  }
+
+  progressText(percent) {
+    return ``;
+  }
+
+  onPlay() {
+    console.log('play');
+    this.playIcon = 'pause';
+    this.isPlaying = true;
+  }
+
+  onPause() {
+    console.log('pause');
+    this.playIcon = 'play';
+    this.isPlaying = false;
+  }
+
+  onEnded() {
+    console.log('on end');
+    this.playIcon = 'play';
+    this.percent = 0;
+    this.isPlaying = false;
+  }
+
+  onTimeUpdate(event) {
+    this.percent = Math.floor((this.audio.currentTime / this.audio.duration) * 100);
+  }
+
+  onBtnPlay() {
+    if (this.isRecording) {
+      this.nzMessageService.warning('In Recording');
+      return;
+    }
+    if (this.isPlaying) {
+      this.audio.pause();
+    } else {
+      this.audio.play();
+    }
+  }
+
+  // 开始录音
+  onBtnRecord = () => { 
+  }
+
+  // 切换模式
+  onBtnSwitchType() { 
+  }
+  onBtnClearAudio() {
+    this.audioRemoved.emit();
+  }
+
+  onBtnDeleteAudio() {
+    this.audioUrl = null;
+    this.audioRemoved.emit();
+  }
+
+  handleChange(info: { type: string, file: UploadFile, event: any }): void {
+    switch (info.type) {
+      case 'start':
+        this.isUploading = true;
+        this.progress = 0;
+        break;
+      case 'success':
+        this.isUploading = false;
+        this.audioUploaded.emit(info.file.response);
+        break;
+      case 'progress':
+        this.progress = parseInt(info.event.percent, 10);
+        break;
+    }
+  }
+  checkSelectFile(file: any) {
+    if (!file) {
+      return;
+    }
+    const isAudio = ['audio/mp3', 'audio/wav', 'audio/ogg'].includes(file.type);
+    if (!isAudio) {
+      this.nzMessageService.error('You can only upload Audio file ( mp3 | wav |ogg)');
+      return;
+    }
+    const delta =  25;
+    const isOverSize = (file.size / 1024 / 1024) < delta;
+    if (!isOverSize) {
+      this.nzMessageService.error(`audio file  must smaller than ${delta}MB!`);
+      return false;
+    }
+    return true;
+  }
+  beforeUpload = (file: File) => { 
+
+    this.audioUrl = null;
+    if (!this.checkSelectFile(file)) {
+      return;
+    }
+    this.isUploading = true;
+    this.progress = 0;
+    let path = '/imman/audios/';
+    if (!environment.production) {
+      path = '/dev' + path;
+    }
+    window['net'].doUpload(file as any,  1, path,
+      this.doProgress , this.uploadSuccess , this.uploadFailure );
+    return false;
+
+  }
+  uploadSuccess = (id, name, hash, url, file?: File, inOss = false) => { 
+    this.nzMessageService.info('Upload Success'); 
+    this.isUploading = false; 
+    this.audioUrl = url;  
+  }
+  uploadFailure = (err, file) => {
+    this.isUploading = false;
+    if (err.name && err.name === 'cancel') {
+      return;
+    }
+    console.log(err);
+    this.nzMessageService.error('Upload Error ' + err.message);
+    this.audioUploadFailure.emit(file);
+  }
+  doProgress = (p) => {
+    if (p > 1) {
+      p = 1;
+    }
+    if (p < 0) {
+      p = 0;
+    }
+    // console.log(Math.floor(p * 100));
+    this.progress =  Math.floor(p * 100);
+  }
+
+}
+
+enum Type {
+  RECORD = 1, UPLOAD
+}
diff --git a/src/app/common/lesson-title-config/lesson-title-config.component.html b/src/app/common/lesson-title-config/lesson-title-config.component.html
new file mode 100644
index 0000000..fa183b8
--- /dev/null
+++ b/src/app/common/lesson-title-config/lesson-title-config.component.html
@@ -0,0 +1,112 @@
+<div class="title-config">
+
+  <div class="title-wrap">
+    <div class="row"> 
+      <div class="p-content" style="width:100%">
+        <div class="p-tool-box d-flex" style="background: #fff;"> 
+          <nz-select class="ml-1" style="width: 120px;" [(ngModel)]="__fontFamily"
+                     (ngModelChange)="onChangeFontFamily($event)"
+                     nzPlaceHolder="Font Family"
+                     [nzDropdownMatchSelectWidth]="false"
+          >
+            <nz-option [nzValue]="font" [nzLabel]="font" *ngFor="let font of fontFamilyList"></nz-option>
+          </nz-select> 
+          <nz-select class="ml-1" style="width: 110px;" [(ngModel)]="__fontSize"
+                     (ngModelChange)="onChangeFontSize()"
+                     nzPlaceHolder="Font Size">
+            <nz-option [nzValue]="i" [nzLabel]="'Size - ' + i" *ngFor="let i of fontSizeRange"></nz-option>
+          </nz-select> 
+          <div class="p-divider"></div> 
+          <div class="i-tool-font-btn d-flex mr-2">
+            <div class="position-relative fa-icon" (click)="onChangeBold()">
+              <div class="fa fa-bold"></div>
+            </div>
+          </div>
+          <div class="i-tool-font-btn d-flex mr-2">
+            <div class="position-relative fa-icon" (click)="onChangeItalic()">
+              <div class="fa fa-italic"></div>
+            </div>
+          </div>
+          <div class="i-tool-font-btn d-flex mr-2">
+            <div class="position-relative fa-icon" (click)="onChangeUnderline()">
+              <div class="fa fa-underline"></div>
+            </div>
+          </div>
+          <div class="i-tool-font-btn d-flex">
+            <div class="position-relative fa-icon" (click)="onChangeStrikethrough()">
+              <div class="fa fa-strikethrough"></div>
+            </div>
+          </div> 
+          <div class="p-divider"></div>
+          <div class="i-tool-font-color d-flex">
+            <div class="position-relative i-left flex-fill" (click)="onChangeFontColor($event)">
+              <div class="fa fa-font"></div>
+              <div class="i-color" [style.background-color]="__fontColor"></div>
+            </div>
+            <div class="i-dropdown-menu" nzPlacement="bottom"
+                 nz-popover [(nzVisible)]="isShowFontColorPane" nzTrigger="click"
+                 [nzContent]="colorPane"> 
+              <i nz-icon type="down" theme="outline"></i>
+            </div>
+          </div>
+          <div class="p-divider"></div>
+          <div style="background: #fff;display: block;">
+            <div class="position-relative" (click)="onChangeStrikethrough()">
+              <app-audio-recorder [audioUrl]="titleObj && titleObj.audio_url" (audioUploaded)="titleAudioUploaded($event)"></app-audio-recorder>
+            </div>
+          </div> 
+        </div>
+
+        <div class="width-100 d-flex"> 
+          <iframe #titleEl  frameborder="0" style="overflow: hidden;width: 100%; height:48px; margin: 0; padding: 0;"></iframe>
+        </div>
+      </div>
+
+      <ng-template #colorPane>
+        <div class="p-color-pane" nz-row nzGutter="16" nzType="flex">
+          <div nz-col class="p-color-item" *ngFor="let color of colorList"
+               [style.background-color]="color"
+               (click)="onSelectColor(color)"
+          >
+          </div>
+        </div>
+      </ng-template>
+
+    </div>
+
+
+
+    <ng-container *ngIf="withIcon">
+      <div class="row type-row">
+        课程类型:
+        <nz-radio-group [(ngModel)]="titleObj && titleObj.type" (ngModelChange)="typeChange($event)">
+          <label nz-radio nzValue="a">单数课</label>
+          <label nz-radio nzValue="b">双数课</label>
+          <label nz-radio nzValue="c">复习课</label>
+        </nz-radio-group>
+      </div>
+    </ng-container>
+
+
+  </div>
+
+
+  <ng-container *ngIf="withIcon">
+
+  <div class="title-icons">
+    <div class="icons-list">
+      <nz-checkbox-wrapper style="width: 100%;clear:both" (nzOnChange)="iconsChanges($event)">
+      <div [class]="'icon-item icon-'+i" *ngFor="let i of groupIconsCount[titleObj.type];">
+        <div class="img-box">
+          <nz-badge class="icon-badge"  [nzCount]="titleObj && titleObj.icons && titleObj.icons.indexOf(i) + 1">
+            <img [src]="'assets/title-icons/'+titleObj.type+'/icon-'+i+'.png'" alt="">
+          </nz-badge>
+        </div>
+        <label nz-checkbox [nzValue]="i" [ngModel]="titleObj && titleObj.icons && titleObj.icons.indexOf(i) > -1"></label>
+      </div>
+      </nz-checkbox-wrapper>
+    </div>
+  </div>
+  </ng-container>
+
+</div>
diff --git a/src/app/common/lesson-title-config/lesson-title-config.component.scss b/src/app/common/lesson-title-config/lesson-title-config.component.scss
new file mode 100644
index 0000000..72ecb26
--- /dev/null
+++ b/src/app/common/lesson-title-config/lesson-title-config.component.scss
@@ -0,0 +1,319 @@
+@import '../../style/common_mixin'; 
+
+.title-config {
+  .letter-wrap{
+    width: 3rem;
+    flex: 0 0 3rem;
+  }
+  .str-wrap{
+    margin-left: 1rem;flex: 1 1;
+  }
+  .type-row{
+    margin: 0;padding-top: 1rem;
+  }
+  .icon-item{
+    margin-right: 16px;
+    float: left;
+    width: 45px;
+    height: 75px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: relative;
+    .icon-badge{
+      position: absolute;
+      top: 0;
+      right: 0;
+    }
+    .img-box{
+      top: 0;
+      position: absolute;
+      width: 45px;
+      height:   50px;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      img{
+        max-width: 100%;
+      }
+    }
+    label{
+      position: absolute;
+      bottom: 0;
+    }
+  }
+} 
+
+@mixin tool-btn {
+  border: 1px solid #ddd;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  outline: none;
+  border-radius: 6px;
+  color: #555;
+}
+
+.p-title-box {
+  .p-title {
+    font-size: 20px;
+  }
+  input {
+    width: 300px;
+    margin-left: 10px;
+  }
+}
+
+.p-content {
+  border: 1px solid #ddd;
+  box-shadow: 0 0 8px #eee;
+  margin-top: 10px;
+}
+
+.p-divider {
+  border-left: 1px solid #ccc;
+  margin: 5px 8px;
+  height: 85%;
+}
+
+.p-tool-box {
+  background-color: #efefef;
+  padding: 2px;
+  height: 37px;
+  display: flex;
+  align-items: center;
+  border-bottom: 1px solid #ddd;
+
+  // save
+  .i-tool-save {
+    @include tool-btn();
+    color: white;
+  }
+  .i-tool-save:disabled {
+    color: #555;
+  }
+
+  // font-size
+  .i-tool-font-size {
+    @include tool-btn();
+    width: 37px;
+
+    & > span {
+      position: absolute;
+      top: -5px;
+      right: 5px;
+    }
+  }
+  .i-tool-font-size:hover {
+    color: black;
+    border-color: #bbb;
+  }
+
+  // font-color
+  .i-tool-font-color, .i-tool-font-btn {
+    border: 1px solid #ddd;
+    //padding: 3px 7px;
+    border-radius: 6px;
+    width: 45px;
+    height: 31px;
+    background-color: white;
+    color: #555;
+    ::ng-deep > span {
+      display: flex;
+      position: absolute;
+      left: 0;
+      right: 0;
+      top: 0;
+      bottom: 0;
+      padding: 3px 7px;
+    }
+    .i-left {
+      .fa-font,.fa-bold,.fa-italic,.fa-strikethrough, .fa-underline {
+        font-size: 10px;
+        position: absolute;
+        color: #555;
+        left: 8px;
+        top: 7px;
+      }
+      .i-color {
+        width: 68%;
+        height: 5px;
+        background-color: black;
+        position: absolute;
+        top: 21px;
+        left: 5px;
+      }
+    }
+    .i-dropdown-menu {
+      width: 15px;
+      font-size: 10px;
+      border-left: 1px solid #ddd;
+      display: flex;
+      align-items: center;
+      .anticon-down {
+        transform: scale(0.6);
+      }
+    }
+  }
+  .i-tool-font-btn{
+    width: 31px;
+  }
+  .fa-icon{
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    cursor: pointer;
+  }
+  // bg-color
+  .i-tool-bg-color {
+    @include tool-btn();
+    padding: 0 9px;
+    ::ng-deep > span {
+      display: flex;
+      align-items: center;
+    }
+
+    .i-color {
+      display: block;
+      width: 16px;
+      height: 16px;
+      background-color: white;
+      margin-left: 10px;
+    }
+  }
+ 
+
+  // horizontal-center
+  .i-tool-horizontal-center {
+    @include tool-btn();
+    width: 37px;
+  }
+ 
+}
+
+.p-box {
+  width: 1280px;
+  height: 720px;
+  left: 0;
+  top: 0;
+  transform-origin: top left;
+  overflow: hidden;
+}
+
+.p-sentence {
+  @include k-no-select();
+}
+
+.p-animation-index-box {
+  .i-animation-index {
+    position: absolute;
+    font-size: 34px;
+    font-family: Arial;
+    border: 1px solid #ddd;
+    border-radius: 4px;
+    min-width: 50px;
+    min-height: 50px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: darkorange;
+    color: white;
+  }
+}
+
+.p-edit {
+  background-color: white;
+  border: 1px solid black;
+  padding: 2px 15px;
+}
+
+.p-selected {
+  border: 1px solid darkorange;
+  box-shadow: 0 0 8px #ddd;
+}
+
+.p-tool-item-disable {
+  color: rgba(0, 0, 0, .25) !important;
+  background-color: transparent !important;
+  pointer-events: none;
+}
+
+// -----------
+.p-color-pane {
+  width: 80px;
+  .p-color-item {
+    width: 17px;
+    height: 17px;
+    cursor: pointer;
+    margin: 4px;
+    border: 1px solid #bbb;
+  }
+  .p-color-item-active {
+    border: 1px solid white;
+    transform: scale(1.1);
+  }
+}
+
+.p-user-guide {
+  font-size: 40px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.p-animation-box {
+  width: 400px;
+  background-color: #efefef;
+  border-left: 1px solid #ddd;
+  padding: 10px;
+  text-align: center;
+
+  .p-animation-label {
+    z-index: 1;
+    position: relative;
+  }
+
+  ::ng-deep .ant-radio-button-wrapper {
+    padding: 0 10px;
+    @include k-no-select();
+  }
+
+  .i-toolbox {
+    & > div {
+      font-size: 20px;
+      cursor: pointer;
+      color: #555;
+      padding: 0 3px;
+      margin: 0 5px;
+    }
+    & > div:hover {
+      color: #1585ff;
+      transform: scale(1.1);
+    }
+  }
+
+  .p-animation-list {
+    background-color: white;
+    border-radius: 10px;
+    height: calc(100% - 86px);
+    overflow-y: auto;
+    .p-animation-item {
+      padding: 0 20px;
+      background-color: aliceblue;
+      margin-top: 6px;
+      border-top: 1px solid #ddd;
+      border-bottom: 1px solid #ddd;
+      cursor: pointer;
+      text-align: left;
+      display: flex;
+      @include k-no-select();
+    }
+    .i-active {
+      background-color: antiquewhite;
+    }
+  }
+}
+
diff --git a/src/app/common/lesson-title-config/lesson-title-config.component.ts b/src/app/common/lesson-title-config/lesson-title-config.component.ts
new file mode 100644
index 0000000..7158480
--- /dev/null
+++ b/src/app/common/lesson-title-config/lesson-title-config.component.ts
@@ -0,0 +1,280 @@
+import {
+  Component,
+  ElementRef,
+  EventEmitter,
+  Input,
+  OnChanges,
+  OnDestroy,
+  OnInit,
+  Output,
+  ViewChild
+} from '@angular/core';
+
+@Component({
+  selector: 'app-lesson-title-config',
+  templateUrl: './lesson-title-config.component.html',
+  styleUrls: ['./lesson-title-config.component.scss']
+})
+export class LessonTitleConfigComponent implements OnInit, OnChanges, OnDestroy, OnChanges {
+
+  fontFamilyList = [
+    'Arial',
+    'ARBLI'
+  ];
+
+  colorList = [
+    '#111111',
+    '#ffffff',
+    '#595959',
+    '#0075c2',
+    '#c61c1e',
+    '#9cbc3a'
+  ];
+  MIN_FONT_SIZE = 1;
+  MAX_FONT_SIZE = 7;
+  isShowFontColorPane = false;
+  isShowBGColorPane = false;
+  fontSizeRange: number[];
+
+  editorContent = '';
+
+
+  __fontFamily = 'Arial';
+  __fontColor = '';
+  __fontSize = 3;
+
+  loopCnt = 0;
+  maxLoops = 20;
+  groupIconsCount = {
+    a: Array.from(Array(11).keys()),
+    b: Array.from(Array(8).keys()),
+    c: Array.from(Array(8).keys()),
+  };
+  prevIcons = [];
+  prevType = '';
+  @ViewChild('titleEl') titleEl: ElementRef;
+  titleEW = null;
+
+  @Input()
+  titleObj = {
+    type: 'a',
+    content: '',
+    icons: [],
+    audio_url: ''
+  };
+  @Input()
+  withIcon = true;
+
+  @Output()
+  titleUpdated = new EventEmitter();
+
+  constructor() {
+    this.fontSizeRange = [];
+    for (let i = this.MIN_FONT_SIZE; i <= this.MAX_FONT_SIZE; ++i) {
+      this.fontSizeRange.push(i);
+    }
+    this.__fontSize = 3;
+    this.__fontColor = this.colorList[0];
+
+  }
+  ngOnChanges(vars) {
+    if (!vars.titleObj.previousValue) {// 初始化,内容是空
+      return;
+    }
+    let defObj = this.titleObj;
+    if (!vars.titleObj.currentValue) {
+      defObj = {
+        type: 'a',
+        content: '',
+        icons: [],
+        audio_url: ''
+      };
+    } else {
+      defObj = vars.titleObj.currentValue;
+    }
+    this.titleObj.icons = defObj.icons || [];
+    this.titleObj.type = defObj.type || 'a';
+    this.titleObj.content = defObj.content || '';
+    this.titleObj.audio_url = defObj.audio_url || '';
+    this.titleEW.document.body.innerHTML = this.titleObj.content;
+  }
+
+  ngOnInit() {
+    if (!this.titleObj) {
+      this.titleObj = {
+        type: 'a',
+        content: '',
+        icons: [],
+        audio_url: ''
+      };
+    }
+    this.titleObj.icons = this.titleObj.icons || [];
+    this.titleObj.type = this.titleObj.type || 'a';
+    this.titleObj.content = this.titleObj.content || '';
+    this.titleObj.audio_url = this.titleObj.audio_url || '';
+
+    this.editorContent = `<html lang="en"><head><meta charset="utf-8">
+  <meta name="viewport"
+          content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
+  </head>
+  <body style="height:48px;overflow: hidden;margin: 0;padding: 0 .5rem;background: #FFF;line-height: 48px;">
+  ${this.titleObj.content}
+  </body>
+  </html>`;
+    this.titleEW = this.titleEl.nativeElement.contentWindow;
+    const tdoc = this.titleEW.document;
+    tdoc.designMode = "on";
+    tdoc.open('text/html', 'replace');
+    tdoc.write(this.editorContent);
+    tdoc.close();
+    tdoc.addEventListener("keypress", this.keyPress, true);
+    tdoc.addEventListener("blur", () => {
+      if (this.titleObj.content === this.titleEW.document.body.innerHTML.trim()) {
+        return;
+      }
+      this.shouldSave();
+    }, true);
+  }
+  htmlEncode(text) {
+    if (!text) {
+      return '';
+    }
+    return text.replace(/\&/ig, '&amp;')
+      .replace(/\</ig, '&lt;')
+      .replace(/\>/ig, '&gt;')
+      .replace(/\"/ig, '&quot;');
+  }
+
+  htmlDecode(text) {
+    if (!text) {
+      return '';
+    }
+    return text.replace(/\&amp\;/ig, '&')
+      .replace(/\&lt\;/ig, '<')
+      .replace(/\&gt\;/ig, '>')
+      .replace(/\&quot\;/ig, '"');
+  }
+
+
+  ngOnDestroy(): void {
+
+  }
+  iconsChanges(val) {
+    let a = this.titleObj.icons;
+    let b = val;
+
+    if (a.length > b.length) {
+      const diff = a.filter(x => !b.includes(x));
+      const ti = [...this.titleObj.icons];
+      for (let i = 0; i < diff.length; i++) {
+        const d = diff[i];
+        const idx = ti.indexOf(d);
+        ti.splice(idx, 1);
+      }
+      this.titleObj.icons = ti;
+    } else {
+      const diff = b.filter(x => !a.includes(x));
+      this.titleObj.icons = [...this.titleObj.icons, ...diff];
+    }
+
+    this.shouldSave();
+  }
+  typeChange(val) {
+    this.titleObj.icons = [];
+    this.shouldSave();
+  }
+  keyPress(evt) {
+    try {
+
+      if (evt.charCode === 13) {
+        evt.preventDefault();
+        evt.stopPropagation();
+        return;
+      }
+      if (evt.ctrlKey) {
+        const key = String.fromCharCode(evt.charCode).toLowerCase();
+        let cmd = '';
+        switch (key) {
+          case 'b': cmd = "bold"; break;
+          case 'i': cmd = "italic"; break;
+          case 'u': cmd = "underline"; break;
+        }
+
+
+        if (cmd) {
+          this.execEditorCommand(cmd);
+
+          // stop the event bubble
+          evt.preventDefault();
+          evt.stopPropagation();
+        }
+      }
+    } catch (e) {
+      console.log(1, e);
+      alert(e);
+    }
+  }
+  execEditorCommand(command, option?: any) {
+    try {
+      this.titleEW.focus();
+      this.titleEW.document.execCommand(command, false, option);
+      this.loopCnt = 0;
+
+      return false;
+    } catch (e) {
+      alert(e);
+      if (this.loopCnt < this.maxLoops) {
+        setTimeout(() => {
+          this.execEditorCommand(command, option);
+        }, 100);
+        this.loopCnt += 1;
+      } else {
+        alert("Error executing command.");
+      }
+    }
+  }
+
+  onSelectColor(color) {
+    this.execEditorCommand('forecolor', color);
+    this.__fontColor = color;
+  }
+  onChangeFontColor(val) {
+    this.execEditorCommand('forecolor', this.__fontColor);
+  }
+  onChangeFontFamily(font) {
+    this.execEditorCommand('fontname', font);
+  }
+  onChangeFontSize(size?: any) {
+
+    if (size) {
+      size += this.__fontSize;
+    } else {
+      size = this.__fontSize;
+    }
+    size = Math.max(this.MIN_FONT_SIZE, size);
+    size = Math.min(this.MAX_FONT_SIZE, size);
+    this.execEditorCommand('fontsize', size);
+  }
+  onChangeBold() {
+    this.execEditorCommand('bold');
+  }
+  onChangeItalic() {
+    this.execEditorCommand('italic');
+  }
+  onChangeUnderline() {
+    this.execEditorCommand('underline');
+  }
+  onChangeStrikethrough() {
+    this.execEditorCommand('strikethrough');
+  }
+  titleAudioUploaded(res) {
+    this.titleObj.audio_url = res.url;
+    this.titleUpdated.emit(this.titleObj);
+  }
+  shouldSave = () => {
+    console.log('title shouldSave');
+    this.titleObj.content = this.titleEW.document.body.innerHTML.trim();
+    this.titleUpdated.emit(this.titleObj);
+  }
+}
+
diff --git a/src/app/common/player-content-wrapper/player-content-wrapper.component.html b/src/app/common/player-content-wrapper/player-content-wrapper.component.html
new file mode 100644
index 0000000..864df8e
--- /dev/null
+++ b/src/app/common/player-content-wrapper/player-content-wrapper.component.html
@@ -0,0 +1,8 @@
+<div class="cmp-player-content-wrapper" #wrapperEl>
+  <div class="cmp-cnt-box"> 
+    <img [src]="'assets/'+ratio+'.png'" alt="">
+    <div class="cmp-cnt-main">
+      <ng-content></ng-content>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/src/app/common/player-content-wrapper/player-content-wrapper.component.scss b/src/app/common/player-content-wrapper/player-content-wrapper.component.scss
new file mode 100644
index 0000000..11ca56e
--- /dev/null
+++ b/src/app/common/player-content-wrapper/player-content-wrapper.component.scss
@@ -0,0 +1,54 @@
+@import '../../style/common_mixin'; 
+
+.cmp-player-content-wrapper{
+  max-height: 100%;
+  display: block;
+  position: relative;
+  height: 100%;
+  .cmp-cnt-box{
+    display: inline-block;
+    max-width: 100%;
+    max-height: 100%;
+    width: auto;
+    height: 100%;
+    position: relative;
+    img{
+      height: 100%;
+      width: auto;
+    }
+
+  }
+  .cmp-cnt-main{
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    display: flex;
+    flex-direction: column;
+  }
+}
+
+
+[style*="--aspect-ratio"] > :first-child {
+  width: 100%;
+}
+[style*="--aspect-ratio"] > img {
+  height: auto;
+}
+@supports (--custom:property) {
+  [style*="--aspect-ratio"] {
+    position: relative;
+  }
+  [style*="--aspect-ratio"]::before {
+    content: "";
+    display: block;
+    padding-bottom: calc(100% / (var(--aspect-ratio)));
+  }
+  [style*="--aspect-ratio"] > :first-child {
+    position: absolute;
+    top: 0;
+    left: 0;
+    height: 100%;
+  }
+}
diff --git a/src/app/common/player-content-wrapper/player-content-wrapper.component.ts b/src/app/common/player-content-wrapper/player-content-wrapper.component.ts
new file mode 100644
index 0000000..6ddafee
--- /dev/null
+++ b/src/app/common/player-content-wrapper/player-content-wrapper.component.ts
@@ -0,0 +1,55 @@
+import {
+  AfterViewInit,
+  Component,
+  ElementRef, 
+  Input,
+  OnChanges,
+  OnDestroy,
+  OnInit, 
+  ViewChild
+} from '@angular/core'; 
+
+
+@Component({
+  selector: 'app-player-content-wrapper',
+  templateUrl: './player-content-wrapper.component.html',
+  styleUrls: ['./player-content-wrapper.component.scss']
+})
+export class PlayerContentWrapperComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
+
+
+  @ViewChild('wrapperEl') wrapperEl: ElementRef;
+
+  // // aspect ratio?
+  @Input() ratio;
+  _w: string;
+  _h: string;
+ 
+  constructor() { 
+    if (window.innerHeight < window.innerWidth) {
+      this._h = '100%';
+      this._w = 'auto';
+    } else {
+      this._w = '100%';
+      this._h = 'auto';
+    } 
+  }
+  ngOnInit() {
+    if (!this.ratio) {
+      this.ratio = '20-9';
+    }
+
+
+  }
+  ngOnChanges() {
+
+  }
+  ngOnDestroy(): void {
+
+  }
+
+  ngAfterViewInit() {
+
+  }
+}
+
diff --git a/src/app/form/form.component.html b/src/app/form/form.component.html
new file mode 100644
index 0000000..b37f2f2
--- /dev/null
+++ b/src/app/form/form.component.html
@@ -0,0 +1,14 @@
+<div class="courseware-container d-flex">
+
+  <div class="gutter" style="width: 100%;">
+    <app-lesson-title-config
+      (titleUpdated)="updateTitleObjSuccess($event)"
+      [withIcon]="false"
+      [titleObj]="titleObj">
+    </app-lesson-title-config> 
+ 
+
+    <nz-divider></nz-divider>
+  </div>
+
+</div>
diff --git a/src/app/form/form.component.scss b/src/app/form/form.component.scss
new file mode 100644
index 0000000..cc66274
--- /dev/null
+++ b/src/app/form/form.component.scss
@@ -0,0 +1,20 @@
+@import '../style/common_mixin';
+
+.tw{
+  display: flex;
+  .t{
+    flex: 1 1 auto;
+    margin-right: 2rem;
+  }
+  .a{
+
+  }
+
+}
+
+.aud-w{
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  margin-top: 1.5rem;
+}
diff --git a/src/app/form/form.component.ts b/src/app/form/form.component.ts
new file mode 100644
index 0000000..551319f
--- /dev/null
+++ b/src/app/form/form.component.ts
@@ -0,0 +1,46 @@
+import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output} from '@angular/core';
+import * as _ from 'lodash'; 
+
+@Component({
+  selector: 'app-form',
+  templateUrl: './form.component.html',
+  styleUrls: ['./form.component.scss']
+})
+export class FormComponent implements OnInit, OnChanges, OnDestroy {
+
+  titleObj = {
+    audio_url: 'http://iplayabc-courseware.oss-cn-beijing.aliyuncs.com/dev/imman/audios/d108d5d06105fda0526059a3e372f926.mp3',
+    content: 'what is this?&nbsp;',
+    icons: [],
+    type: 'a'
+  }; 
+
+  constructor() { 
+
+
+  }
+
+  ngOnInit() {
+  }
+
+  ngOnChanges() {
+
+  }
+
+  ngOnDestroy() {
+
+  }
+
+  updateTitleObjSuccess(titleObj) {
+    
+  }
+
+  onTitleAudioUploadSuccess(res) {
+    
+  }
+
+  save() {
+    
+  }
+
+}
diff --git a/src/app/play/play.component.html b/src/app/play/play.component.html
new file mode 100644
index 0000000..4704b1a
--- /dev/null
+++ b/src/app/play/play.component.html
@@ -0,0 +1,50 @@
+
+
+<div class="player-preview-content" [ngStyle]="{'background-color': this.data.contentObj?.titleObj?.type === 'a' ? '#fce5e9' : '#d8eefb'}">
+  <app-player-content-wrapper>
+    <div  [innerHTML]="data.contentObj.titleObj.content" style="
+    position: absolute;z-index:99;
+    display: inline-block;
+    left: 55px;
+    top: 20px;
+    cursor: pointer" (click)="playTitleAudio()"></div>
+    <div class="content" style = 'position: relative;width: 100%;height: 100%;display: flex;
+    justify-content: center;
+    align-items: flex-end;'>
+      <div class="letter-box"> 
+        <div class="letters" >
+          <div class="letter" *ngFor="let a of letters; let i = index"
+          [ngStyle]="{top:  row(i) +'%', left: (10 + (i % 13) * 6.05) +'%'}"> 
+            <div class="l-box" (click)="clickItem($event, a)">
+              <img  [src]="'assets/all-letters/letter-imgs/'+a +'.png'" alt="">
+              <div style="display: none">
+                <audio [src]="'assets/all-letters/letter-audios/'+fromCharCode(a)+'.mp3'" preload="auto">  </audio>
+              </div>
+            </div>
+
+          </div>
+        </div>
+      </div>
+
+      <div class="show-item-content"
+           *ngIf="showDetailFlag"
+           (click)="clickBg()">
+
+        <div style="width: 50%; height: 80%; margin-top: 2rem">
+          <img [src]="curItemUrl" style="height: 100%; width: auto;"
+               (click)="clickBigItem($event)">
+        </div>
+
+
+      </div>
+
+    </div>
+  </app-player-content-wrapper>
+</div>
+
+ 
+<div style="display: none">
+  <audio *ngIf="data.contentObj?.titleObj?.audio_url" #audioElement
+         [src]="data.contentObj?.titleObj?.audio_url" preload="auto">  </audio>
+</div>
+
diff --git a/src/app/play/play.component.scss b/src/app/play/play.component.scss
new file mode 100644
index 0000000..766e91f
--- /dev/null
+++ b/src/app/play/play.component.scss
@@ -0,0 +1,116 @@
+@import '../style/common_mixin';
+
+
+.player-preview-content {
+  width: 100%;
+  height: 100%;
+  background-color: white;
+  .lesson-header{
+    width: 100%;
+    position: absolute;
+    top: 0;
+    img{
+      width: 100%;
+      height: auto;
+    }
+    .title{
+      font-family: 'BerlinSansFBDemi-Bold';
+      color: #f5d11f;
+      font-size: 4vw;
+      font-weight: 900;
+      width: 15%;
+      height: 70%;
+      position: absolute;
+      overflow: hidden;
+      top: 50%;
+      left: 50%;
+      transform: translateX(-50%) translateY(-50%);
+      line-height: 4vw;
+    }
+  }
+  .left-box{text-align: right;padding-right: 1rem}
+  .right-box{text-align: left;padding-left: 1rem}
+  .left-box, .right-box{
+    height: 100%;
+    position: relative;
+    .a, .b{
+      width: 30%;
+      height: 100%;
+      display: inline-block;
+      position: relative;
+      margin: 0 .5rem
+    }
+    .a{
+      width: 40%;
+    }
+  }
+  .letter-box {
+    //height: 100%;
+    position: relative;
+    display: inline-block;
+    width: 100%;
+    height: 100%;
+    //margin-top: 5%;
+    //margin-left: 8%;
+    //margin-right: 8%;
+    img{
+      max-width: 100%;
+      max-height: 100%;
+      //position: absolute;
+      //left: 0;
+      height: 100%;
+    }
+    .letters{
+      position: absolute;
+      width: 100%;
+      height: 100%;
+      top: 0;
+      left: 0;
+
+      .letter{
+        position: absolute;
+        font-weight: 600;
+        //width: calc(100% / 13);
+        text-align: center;
+        --cw: calc(100% / 13);
+        width: var(--cw);
+        line-height: calc( var(--cw) * 13);
+        font-family: LiQiangXingShu;
+        padding: 0 1rem;
+        height: 20%;
+        font-size: 7vmin;
+      }
+    }
+
+  }
+  .l-box{
+    cursor: pointer;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column-reverse;
+    font-weight: 900;
+    img{
+      max-width: 100%;
+      max-height: 100%;
+      width: 100%;
+      height: auto;
+    }
+  }
+
+
+  .show-item-content {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    //background-color:rgba(255,255,255,1);
+
+    display: flex;
+    align-items: center;
+    justify-content:center;
+  }
+
+
+}
+
+
diff --git a/src/app/play/play.component.ts b/src/app/play/play.component.ts
new file mode 100644
index 0000000..98a45d1
--- /dev/null
+++ b/src/app/play/play.component.ts
@@ -0,0 +1,154 @@
+ import {
+  Component,
+  Input,
+  OnDestroy,
+  OnChanges,
+  OnInit,
+  AfterViewInit, ElementRef, ViewChild,
+} from '@angular/core'; 
+
+import * as _ from 'lodash';
+
+@Component({
+  selector: 'app-play',
+  templateUrl: './play.component.html',
+  styleUrls: ['./play.component.scss']
+})
+export class PlayComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
+
+  @ViewChild('audioElement')
+  audioElement: ElementRef;
+
+  data = {
+    contentObj:{titleObj:null}
+  }; 
+
+  letters = [];
+  lettersAscii = {};
+  titleAudio = null;
+  showDetailFlag = false;
+  curItemUrl = '';
+  curEvt;
+
+  constructor() {
+
+  }
+  range(start, end) {
+    return (new Array(end - start + 1)).fill(undefined).map((_, i) => i + start);
+  }
+  ngOnInit() { 
+    if (!this.data.contentObj.titleObj) {
+      this.data.contentObj.titleObj = {
+        audio_url: 'http://iplayabc-courseware.oss-cn-beijing.aliyuncs.com/dev/imman/audios/d108d5d06105fda0526059a3e372f926.mp3',
+        content: 'what is this?&nbsp;',
+        icons: [],
+        type: 'a'
+      };
+    }
+    // const letters = _.shuffle( [...this.range(97, 122), ...this.range(65, 90)]);
+    [...this.range(97, 122), ...this.range(65, 90)].forEach(c => {
+      this.lettersAscii[c] = String.fromCharCode(c);
+    });
+    this.letters = _.shuffle(Object.keys(this.lettersAscii));
+
+  }
+
+  ngOnDestroy() {
+
+  }
+
+  ngOnChanges(data) {
+
+  }
+
+  ngAfterViewInit() {
+
+
+  }
+
+
+  clickItem(e, a) {
+
+    this.curEvt = e;
+    this.curItemUrl = 'assets/all-letters/letter-detail/' + a + '.png';
+    this.showDetailFlag = true;
+  }
+
+  clickBg() {
+
+    this.showDetailFlag = false;
+  }
+
+  clickBigItem(e) {
+
+    e.cancelBubble = true;
+    this.playLetterAudio(this.curEvt);
+  }
+
+
+
+  caseFolder(c) {
+    let folder = 'upper';
+    if (c.toLowerCase() === c) {
+      folder = 'lower';
+    }
+    return `${folder}/${c}.png`;
+  }
+  row(i) {
+    const r = Math.floor(i / 13);
+    let y = (r * 20);
+    switch (r) {
+      case 0:
+      case 1:
+        y += 13;
+        break;
+      case 2:
+      case 3:
+        y += 15;
+        break;
+    }
+    return y ;
+  }
+  lower(c) {
+    return c.toLowerCase();
+  }
+  fromCharCode(c) {
+    return String.fromCharCode(c).toLowerCase();
+  }
+  allLetters() {
+
+  }
+  playTitleAudio() {
+    this.titleAudio = this.audioElement ? this.audioElement.nativeElement : null;
+    if (!this.titleAudio) {
+      return;
+    }
+    this.titleAudio.pause();
+    this.titleAudio.currentTime = 0;
+    this.titleAudio.play();
+  }
+  playLetterAudio(evt) {
+    const audios = document.querySelectorAll('audio');
+    for (let i = 0; i < audios.length; i++) {
+      audios[i].pause();
+      audios[i].currentTime = 0;
+    }
+    const a = evt.target.parentNode.querySelector('audio');
+    // a.play();
+    const playPromise = a.play();
+
+    if (playPromise !== undefined) {
+      playPromise.then(_ => {
+        // Automatic playback started!
+        // Show playing UI.
+        console.log(1, _)
+      })
+        .catch(error => {
+          // Auto-play was prevented
+          // Show paused UI.
+          console.log(2, error)
+        });
+    }
+  }
+
+}
diff --git a/src/app/style/colors.scss b/src/app/style/colors.scss
new file mode 100644
index 0000000..13a0b00
--- /dev/null
+++ b/src/app/style/colors.scss
@@ -0,0 +1,16 @@
+$color_black: #111111;
+$color_gray: #aaaaaa;
+$color_silver: #dddddd;
+$color_navy: #001f3f;
+$color_blue: #0074d9;
+$color_aqua: #7fdbff;
+$color_teal: #39cccc;
+$color_olive: #3d9970;
+$color_green: #2ecc40;
+$color_lime: #01ff70;
+$color_yellow: #ffdc00;
+$color_orange: #ff851b;
+$color_red: #ff4136;
+$color_maroon: #85144b;
+$color_fuchsia: #f012be;
+$color_purple: #b10dc9;
diff --git a/src/app/style/common_mixin.scss b/src/app/style/common_mixin.scss
new file mode 100644
index 0000000..6293349
--- /dev/null
+++ b/src/app/style/common_mixin.scss
@@ -0,0 +1,21 @@
+@mixin hide-overflow-text {
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+@mixin k-no-select {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+@mixin k-img-bg {
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: contain;
+}
+.anticon{
+  vertical-align: .1em!important;
+}
diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/assets/20-9.png b/src/assets/20-9.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbbaa1d94af461c0908228a5b44176b3ebeb2a78
GIT binary patch
literal 12954
zcmeI(I|{;35QX8nK7s^O3LysELU08duEg7f5VL@|1{+HsShx!tEwcu}QV?+q+F00Y
z=XD$MSLeWV!+hmzvo!JCz!eeCjCC&3w6!*9IW}(HbH|37<w-2nC47qX3!{g{T)nPK
zJCW1wGwD4x+4Q(jb*Jq|C50t$2`E4T3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt
z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy{F{Pz;5Y7~_R(SednqxaR9A7i
F`U1KiI0OIy

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/bg.png b/src/assets/all-letters/bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..551411b7883d75f611dce3bc8a71c733b256d72e
GIT binary patch
literal 370592
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
BnhO8`

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/bg2.png b/src/assets/all-letters/bg2.png
new file mode 100755
index 0000000000000000000000000000000000000000..70b87ba72a9975ebd93969fa9a93e75bfe69d871
GIT binary patch
literal 377538
zcmZU*WmFy8(lyM+VdD^71Hmo0y9N#J?oM!bcXxMpcXxLP7TjGo^5))i&-4BGe)Sk@
z^pc)6YgTow)g2};D~<?{3l9bchA1f^q5uX4aRCMfSb~NA+Y)$#`}+3+a8M8z0;`_J
zKLG<10Fx9ERB{EJd%^hPH!XcGOj>Q9z5k{e9)>oA_45T{3kkterS_)iNCpJP$L>#H
zAxQv)iTwoJLGcVEu|7h$kp5J~-+ZZ{@z{S~oEbkk+ipxAe|n^6J-m80&**_3Cr7&p
zqQvGUYzs?P?nU;YkiiKdd0<^pu8DU9djou70RJ>Z3c*TH4N+P(uNWbN!$1Nqe1CbQ
z@&4a^0%3x^q^m#916-$W{@bxv-`}_YQ@dp*DXS&RE>-8GYdD}cRG`;zT^#a!OX}aA
zJGp|npN|%6P9P5?4KE$hf9GbTCMFJyEwn@=8{{|Iu2KwMFr%_XM4-q?83_=e68t-i
z)QP35^*?j@!uYL#`LRfo9>^Kb5ZL0$>Qia5eBjCIFvR@3{6sd$`ot|+veU77?>dHI
zZJSqPdFRiah(+NecTA0<cbTr`3phZG*%~^zPWZo_BFSMBlZIx0Thw3V_!DzG*vgoG
zm2uwo#(YrGmA*(2_Lw*-^7tQ6y~lpO{EQ6|Mrie#>2jPmcYTo^1C>6X=t{|2!93f5
zfSQ=>EjPLc;vIorhu=F<kpJS0{eTjy-J&MK2b*t9^T9`E!QeG}kvL!K_<1by^~`|B
zBZF>;s8M9U!eCx}!G`ea^k1vgAc8B{0Mo*DG7vS96^A{Q7FQ^AG-U>8hB!8*9qDEZ
zZ@kgG(H`63zCMlOOylOBK4YydAC=O#rnNhK1|>cP{N%@Z<}c4qKlnNKOk($<b4|?X
zPQ3H|qTopLzYG04k$|KS7-V9y%;WT}CQG)XLr~~)3&Cmdcy{(pv!Gso6j+#&{KUtJ
zL45LVX9|wXjbM415828J?+8UzOoFH_g<!&>gMQ{$3%>WoJeva5o_~;yc7z@EyR1v5
z>Y;+nf+}96kl-_2Utf9u(lmn~-hJmT9JU3tGT#n-9f`f(ZL%&r$R27!m%L;WpphI!
zR0D2B59;O7rN2d%cJGS^c`*DD)Jyy?vBpAf(@*{jkDo%IZ(@eObLZOvaWp-&;%`dH
z?ougxVA9eXB9i~P@Z6zvrzNx%o=*_eIT?!4a}HGBW24L?rrA2MquV)l@iIX04ICwI
z0sbQPp8Lm&k5FU>v9iS7*MI40*NXxMQKk8=-8=LLA~IY#7L7x_a$)p?O!SOUG5QZu
z>tPp`FYzO-Ov5MgRjJdjIzMIqKq$gZjS#ZWE#O_khs0<@{W^PSXGswpz$HA%<g8Q0
z?SD)XkQ5epbYZ9~>O_xP3=eJQXh!gsj8J*Uhs2v)M%IZ9ix!(${s<pB8|(+=ieVkP
zqgc(9nVg?lb87Q%={}?#Jtd8J9RAA^P>2Bi^1F&mf=@r+O>F`m0ynA22g5-HXI>Yx
zyh?-nCo3X@czKO&ye{*VxQ#eUMJu++Itfv;uHW_Jw(AYw?<BLw648eue!{JdPAx*n
zA3$)ZBoTAg3CpN|-6W9<GS#oy`W1Kmr1G0|O<i)32q$IfhF*W`zTTr>(`)jgtqKCS
z>ST?AAVt{<v5LfK339vHJ)W-dWiD!LfW?!|KWcCt?C&f4nBx5X{FuvXe~BnReh`D_
zv+n$?f(u(<*X!JS^9}oSocX*qZywy0h~<n)HhnYTneTnVNnUwI4p~gIlZyv75)zW9
z*o!RpvTNZV@e&7zq_zIe14f{F3~$NX$TLSiW-E2pY*l|3*nhWzGd464gKng&R4NA1
zP_18)KPgnPpe(WFG5F*}LO*r>-u5*3uLuT1_$k?5iBOq23#yg(t%j#Ln{`3`Q83-3
zu`jPO<p&0H_sn^6up(zsphw6A%RhS>>la}=L3F;d<v%MHs;~0dUJ3Mhbq~w&E=>uq
zTo$>bP<p|-N_(96kk$nK!z@Zp*xD97sf3PcQJ6Y%!BQ$?_PYx%OCFIb@*!l7tFsHR
z6~9vk(JVLX@EFQXxqKHW*yb;cF}eY&=ZX{H`SeF-W;(Wpowxst<{BW}Ydb0jj-yJ=
zD4<5;z{%8dQTTgZb?o<=Y$9{tAah2Zb~@fM*W-i#gz5ekVzFm1(|P<RV~}oHs*`??
zuahZvIs1z?$X({!+Mk;Gr{plu_&)C)v3xno>d`U%l9<QE?f;^LA8N3G&psr{&{}xd
zVG^YCZGAz=uQRr|CTp0r6AWw@GYu=Z%1xrTzcjUGLrsTue*ao(EC1!Rxi)0e6I#_3
zp?TTg3=eyn#+!oMR(H@Od0_1P;Q!P;j|7azo!Y3hRwjf`n|*Y>F{++sMgH=jDbdU3
z8^*S^e5Bz-Jjz3Rl^2@5goduBfI5Nfo_<r1B3D&Zw8^G#Z*zTy2u@`c3yZM2+eL{t
z$zl8nDB>J+Quw}qPw0X27xuq)81q7_5&Q=^Y($h=ih`u2-wNcbMlKA-x>|_&h&~LJ
z<d&NznZ3|NjzW-iEjMWRb1F9)9#H;Ka({ww$WI5%ZPH)x%e~S?_Lb3=h?gDDEsf|t
zKh$sBSLe2cwfWV0ow}DFT@U^Zuf8%{1pHs;XA_e*hq-!johuqbCRJNv39el1n8%(J
zeXcTeXeOE7wH1kRQ-{_a^Y(IMQ^_0@vEMvGE1l0XWArPOa4mg#5gO^uqFI=q#=A93
zI{z8}|K|k-_~6$o)d2u8hHIGO%}ek&XvB`ubfc#ssupu#D3zID?G=9V9b&V-&kL(d
zTLZI!q+7MYx@fo&x$v?x(Uz*1GhS#D_M=?!H9HUg!-3f>f9Y9tkV3Po<&NbCrH<f#
zqS@9c%531W;5_FtdiEcEWhlr=lUrJW2hbQegssz4>x2kK<>T85H7#N+2M(+^wK;0%
zt=YIuh6sdQh}jMfe^Cyy!r>5@@d{M!qd-~>w}0SUiys{Jv?ay*&$p`H^%-Kt9`VOb
zd-=@$FDn;Ays-Gxu;&Yg19|Rcsx|*=QKSv*u|Jx#pnBB8nl;LgXTu|5>DILqgtZNq
z_|3_2YybDJS;+nuJ~|U?7dSmVed28`cP|}68Db{3oJF5^w9*U-g`!X=Bq))nlHKmJ
zmQx<jX&d1Ah}m(aaMnA{cCdRNep<S$++!X;i(L8t4F`-?uoC9HNPuH?O5eS$-pY#i
zGg<qCP^5n4H9QJ#pm-ji%6P<+g6-8O$;h&P4_OW>>>IX7zz@pV1yN^)$H@UeStF#n
z7jE58tR_pw)_O_HAA;Ry&+L8WjYtSwIR*+r<gx-D6dTP}^MR!U?O^EN9gvob4q!mE
zFP;ru5iouM@PHU|{?eU$>brlkFFXivPE8xY-WHNjso+Cu7xZ1W5K<^`!G9T|I1Ua)
z9`$;>xso+uvt;iifO-b-2FX&fg_)mz)}#oRs&ffh2OUfheRPf;I@IlH{QjCP-H|Kj
zpA@5i2NGd9H)AnE2xa9Xs-848ACYuB!<{L319&1ZRQzKEFn|;@;iC1KRH(nXOXCIy
zomUDC2bsFwdejG*R=iN2wZ@&q$|325?G5{R@46e!+!6v2wS{$^AzXceWa0>LF@0d`
zw2cd~Tg(knfxR^x^0J%sl&>W^=j+=@TW(<|s{pSOOtTj<RZYf7$6pO){g3aKd7;+u
z{?B)zP_E%Vp(Wc)1?98$Sg<slzxXZVeWtn=EP}1^b`_>X0cxz2&zd{I%U~uO0|piR
z0erF&=GPv*0Szj;ReEpa<cGPkGyN>_doRhv7eq?$FEDo+i6u7zP*gtW1@z_LNJ9{B
zcn6rvU4R~{|E6)oy2D#!?@WMf+-IDA#oj^V6gSq`*i)f~>bESjrX{02lG+DplYV6R
zhKq$ll`$uHXV-LzULtMG8Y8V4Tj%QYJK6QwTHrH>euxt;Z-B#^PYDy^>lo0Yg?o%6
zaS%udDF*mYWW(?zs|ow(LI0}O-}KZd-;y^$8h`a8GvMw_giLzBYT21-xZxL`U_pUE
z?TbL|!Lu`m9~=+&+{UQs=dC7L=X^u5C^cdPDY5*60C4Zz+!W|)_QbjRA%`T24{!gy
zr$_nV#`|B5+UX^c*Un0O-*hvY7)mN_mPaOfBCqE(+W<)vF6<PMC^cP(CZ6I%NN>R7
zJYk(&F~A(wV0K=>7e79N>A-oo?l>nps^V8Nc9LV06xJR4ejD!A1<n~<*1Z0F)}mDx
zTHkbOFjZmbj3eHGAKH@edVKx=5?pj};#BEU1-s%HO;qt`200PGTr_emWIw%z*E}46
zAk;_4u(V^&VKVmNQi#P!ok~#G+y=yKt}lubWFClK8Fg#IbO7kAFk_8^EPqk59{dvh
zGpTAQ?}xZ@M%S?W-*n5)ND#~t%sJ6A>o<*YTXi3ad3QwRyGb#wkZQf&G<_ZPHJ^*#
zA^X4ps0;=?EOS!UKVyzdS(i!18T^fdyGyZ8+r<}S_f0m2@goN8eL}qS&}@s}XE2B+
zW+_El?X2S^KB4qYfNP~bHj?Iu1&pJEE)zx}D8(g^gi%4-BfA`Lcgv&Z>E95#f&e%t
zrez$O6uGOjwCW%2V^vo=JU<s)?R&Muqu{d_V2B*~DMna9Jt`oJGU7dqFHNevDq5>w
zLw0gt?D~D-yK5Q?ANbc9b7{V(IJ-7aF+KOsy7i}S*GMAJ9WrI;ge)PR#SQic1bBMN
z+TWzcuS*zg`gr+I+1N%>AiqF5079o(aRvsvf6pieknaZ=YILZltAgm)=F{eee^{(l
zb?1fyfU#WABG{?PVIt%zRPt+ZKF^I)|4vD3)@~LG6&24+es5?v%}4Rpjdpre&>d%I
zMm~Jk(eQl&fg(kdkJ~OQ9O_snfdy#bAz9|1x0SuzHJJt4X(^8gcxH@Ha|~%eI)4uR
z<@!JDlLtp(w5~&+@;&$p%Z6eJo*r$$rp}o%qs|decZm-%h)|GN;=6<UxSkMKKacq<
zdVaBi{f{d`ahz)r8o00C1Px*%3KCR#MPIk13R$8PewfB1CT7I*uPbOqh8y!oPS2QW
zBpNO6uTe|!7b`_3)F#{LnaDs39rFJ;^&=EOW+B;6>dH{PDm2&*rF5^UOFlTwSxsyV
zuw%ogANaY!LSPB@7KXsE+B}u4a^U&F?X;_0hH=7SzX%u4qT}-hZQhhrsN5^rS*ei#
zl>WT9wjk1O^LKxO0rao^wg_b;Z$_wt_B7fZ-1*YrN#Xq<Grn7Xy3?B}-_SV3U&p7L
zT=#yiISed70Uyx0Mi$$y<_Ra4+<e6>UR9u4Ke{ZK-h>UuOm&RZ-TN%(H>iA@|IT7e
zbkHgOFMf8Z#CmX+=&pyX;d;PVN#Ju|LO>xUJeo<QbnW+os#{dpFe7p8pUGZgLHgo(
z--%#6B<k~wQ@R+NVDyj8ZqtlMK)HT%;}en<0pNbD7u{p3|ABDTDm|#{4U4(gN<U`1
z)9#OaV2z&j8`j~RD^_i1@Oa~Ai0|ST&H(SbGPkMDn}z>b)71+lwmYOx-lZ-m2{Vu%
zRgLFD1Hv~)aH;__`<ET5Ke{Lf;4^0W-bDugBSIAMx{Z7{Xv^Y?oI9Xk%eCVR^$!0B
z>Kx-qloQ8m1Ah8ju_?H5N&ogZDk}WjY{_99@&+os2zciMsabb(G7s#c*GEaQ$Hv!8
z<xfYp0__2KIWnM>3D!=zD<8=Px~mK&{oar`4CEpVkCseRz(<5&^No5$>Yz8@uM$S=
zO*XCXF%}Hm%dMGVNbFT5Atn+eHGPAbR={^l;UtGU_x}@p4jvTP#1(4@f?8>}hX>G(
z86}wi)aFvEErg<SrMW&`82X#h8AS&>sKb99mIj&^s>C^K)53@6Dr!F$mW`IwD!z<;
zS!e=0Si52%cqGkdTeqv=&P@*>jX-X{;iPz$A&~(Ta01;Gp_3x^+rE!5M)mlP?jdF`
zF6i*VkyYP*15=fCph5Ravhn^~7uc~A7TD@$T=yC97p=qFx;>PkLtk?!#1f-|6mfH7
zPrY}}L=w`#sm#p18U7l3g_!W%%Y(AI-U+Qn-;S1`kHu=WV1t2hgLB=<ur=Oa0ta5h
ziN9JOf#X_G9`EQ{>LOkHb`}kpM+elYNiBGP4L3Ydy0jFXX4g#kLn*FA*V|X3O0ovU
zW}1gt=^JZ{Uu09*Y;;TgiQueZn&2HrdI&aY*VyHL`5wsyi~plo+w+_*5HT3ZaO)So
z^69+Jj*vu4Lk8-$b!}NE=exAbJUeSnXZqBxCL<W)Ne|deEG<IhaGJzMz}kodgDVO)
zDl89ZPwoY6g@KFBd%#>biZ1IjFS>|=t-fhFlx5hX490H&7JwpFtCPY2&k;(>7KIE&
zP!+xbEe|8zyJq!u1~P-02EjF*e`Bh?hem7a>_>$^skfDxhL(X09Q<t%YbJy(3#&gi
zYAp6Mo1(F?r_V$3tAp_$j*ZWUiKAz}z-D-7u0lAsWU1N%#~0}d(tU+K8<)UQlaak*
zG`$?1I5<1?`FDt`!AI{9&RfO=U<K*p_}NT(@;C3b`CpXgoe;r9%*XFia@uHe>&Sne
zYkK_KL8>xl{Z(hSS*O-sJbGryvVhzd)y3>b*v3sj>S#b1JtU8jB@G_=1rr2JesnLZ
z1rT@dun+g^H4KeQnbb?A+_<tg)e21EZ%l;~E8Lh~OIW6_!v<PML>a#$>`;ntIA92u
zbx;T$SJSn2mwCf$`cs(s5SNd>#&>Uf?P7o8ON9byNz!V*ZWiY_SuV1-`p{VneM>DU
zlec}TY*TEJ|91VU>2|SG0}!yqF}N7Tx}h&Z@Dny6ycyzbl#s)2(d8TIemG2eL`F~c
z0U%wbO$I<4T8NK|YeGXnYXF4z9rx=3Mm<!BjqrOc!d~uMn-ow9c~%+cK$`M>JM~-d
zafp7|XIQE`8|*L&8ZP&zFkEf~*e8S&9m&TxGMjgl-H&&6dF|L0sFqEWz64vcQrovC
z`4q3>?NM8xzwZMUuzD`9D&8Tm{ct~7`Xd_x^0eEd(jF(lrk97l^8ya>(l(Pvuv#L*
zn%{VtaYAc)b)o(!Heg)QnOcY6Vp{o|?Y%0KYo&4faTcp6B33*zN+z&(Y&>yKc8s%G
z_>_CBZ-K*&mdriX)5HL6lFace$bK~{#%H4no&}L`Q8+l$7r{Ma>7oCK+S;g(^~SzJ
zJ%R`f7RrckS4e`O|H&@$MQ7eD7_26#F5`SA2GJ!Ot0aVtyu0JL#4>*&Imhls?m2Y;
z6|Pf-oXu&nC8!mE?ud)~^Q3ww^@XUK8Mo%^x-Tz_4t5mEEX#Y%s>=sqCE%g6Cd=Ko
zeT|GSrlL*GLe7I)Ccf#$li@(J-UFmNYC6-fSJl9}kxGo%kz8qF)LTqR0v@}fB6WK1
zOSfd-X@jzijk&`W$$g2+Q7t?{Z(*qqfwWsE#(>*=#ra@|@!6PbDJdv8yaBe%Azac^
zPyq;90RT0_bKZ=g5LrubzGm1tMx65g>Ryq?i)#J(OhjXX&u5SvV=&v9m*HKS>I|Sj
zB?2=tg)P(eIjGCuNN)Q?D?F09J-4k&7kg(3-8a+mOCT|s$f7NT_*ye0!s|6Td~ISC
zjFWOSSHH?SkT924WqU05G<@RuwqYvW(ljaOI8U*G%8jGzzP<^;p23f#`>_}u=P$JF
zf+-hmd)bK(9PMDqV_!AlFEzq9%@>}pFlR>Z`*kS$H+3%Ln}zLsdX=NAzAj=u5?aFx
zg_-v;e;Es}erMh5Aj;yOj$bb6Gn;+{_2<0(nMrQCs*x_^Wp}jBvK~7M+GbCA`clu#
zwbe1I6R=6#XN4Ypg372H_`-uwJczN@;NU5{lJ0k9y7qpds3)}qW{rq`w;I6C7FZ?!
zCH**bfEG<Ql(EZGt@;^R1FzUH(-`c^7lO;n3jOX1w!aa<o?=AIW44eWNFb0k_TYN<
zt%tZ<I<~?PyByolMLZ{u<R<5E<mHa|Kn<Z^Cmp@()kA)tqcRT{I7PDO>zuGNy#^Hj
z3h7AaLCD9~j0%75@#T(oLWhO7+u6<PL{hin`POHd=#tN6>pJ=HIXU|5`~4QYvUyiy
zt~Kj!qVz~6Tdg$wRLvT|&P@lq2}L43W~{bZ5(s%(R*A5^Bt9rB9I*`6|8ffMF_$I_
z?lL7b^z<VKP*T_#Bp&E@_Lh6~g<#0eF0i2zrx@pLfbVDHDfKNY`%g^Eupr)BT#v}7
z7YW-^D3_nf+y38lf_)M$e*z~w2Q+=VdyLXrAjnd_Z$W<$!j$T{iD->dfC8KtqqaGX
z*d3BLPgjz@B$JGB02#Amn5Y@5GYa(2bh^y}P2v0*dpg(zD0<^Z@{q~*0$e7-*oBiC
zHV|=Npm27NNKDNiy<E1tj<Uls5wa(Wv?9Kjfs@r^y*i}9rEbCJ0jZ#K^V*K&Syn3=
z0!elnWCN~E{VYhhvzE^p(uzMjx9|>i71Oxh3Fqd2t;R;rSKFR+!e%&r;?c}2>1PC+
z@uYhy%K8RWBGv17g;Nrg0JzUkNxtzEA~`Q;@O3bjBNryC3uW|^vcx0O_M*M$=Q5cV
z;r|JuBT~l>WW4LC6TjFa7LRPq(l>uDHC(4sYYRZz{PcZ#ZqvY-<&nl%izGPL&s*`I
z+Dn*iWVSICl2s_OHhVHxpb020M4-}F6Zh}+%?^aPrDO^^;!g2H=K?H9ZKsOWyXktM
zfrFJ2t}52)D2r-9ysdMlXEib?-Q|}XCVr~Ty~0EqZ9rH0py&nYLD0G~`rTcQ!GpS!
zyHGSYjnUCrc{f~q#r{?gYA{U_w*zjdfT(~UmATE&-V>xod7a|5-{qrg!G=o+x7X~I
zip(g~k^Rp-u^Fc$Hyd}x!)b`RuIwCft}w#zu%<%v?~xhLqx~k~NRbG;OJ+uhv^4I|
zi9tm^;0*Wu9UL?mU5pwe#HVNICO$_dWf2LUOG!q8q&7th@J<zc0H1(c82E_<QEdF)
z8-1!sDkT4-ZzTMXN|-vN9LPT!?&F96c{gz1x(npV@V{Dukk0MpXc}Cry2%+Dm0#G(
zT%xCm`uHU89hnlsqGcwGs%6HvJV*+?xbX_Ue~2B|(q5qRyV)P<K-GNcH49HbW!H{r
z_`d0@mGv_q1pG|x{p2=)OZOVG`ZTwX8mA}qSfgV|N46W%`CGEZr!LL{*Ldu}nP?5f
zLPltI$HJIR|IL_-Tt%|OqcLrj1c2ROWV`VphfO}ojP4umsTr5pi%^{&6V2D?Ku&*k
zozQ{BqTdT5g#e$O^h4jdiXqN3Zg2wyvcV`U6AhEbM5fRIeTX#(?XCPWwL<n&vW^B@
z8n=B#_k}7^mgez^yO5H-nPtCmeqiU$PmwkAi8IkrRlXo+5bwr1E?3<566-y}6d_DI
z%%aw2FK&6tNJZo(V>XQ=DXY)gLQ+~!1!LJku;F5F1Tk9$kL%Q%&xWQlZ8iB%VK$j5
zx!I?D$4=Xi`OsgNG9PhrK_V3-IIW%$f#ac#wVY;AmF7L#rDxW94ktqKe0?^#72dG1
zS%;RpeP<j)j{BYmR|$u$!4`$lh<<_7WYT=jQH>L!({D2>nzNoAPGI?l3PO(Q!yPwW
zVkWjL%z6`gh-lQ<M7SB4K6wp#q>vv?*{L&upBpsJVohxBW2ygBzt$Z?7MSUrhH;kg
z@!R&vz=TueLPw!Y80>E9r(L}V45pD_!<1}iU^H_U-K*Q%FjNlB=X`+=U*fv}o`~nk
z+h_k{^pzfTjNwJQ3Tt#@LG7Mle;pYOuAL2gw4c(Qu4Cd6nsC|+;W)Xw6Oj?DfCLCd
zdTS={HN7<Y{lEfI&xF8LeMbq^@LbJooQ9ZXpH9}b&0t&^(u|wm3}?t5?J@*G3p!bO
zc>iX<q9(wB+w4mCx(LlrwCh%yVa0If>6T<7+FvBIkFbu(%cmu1uB2$)UH!!zwgZ6T
zpckkM`$AM%Id!>UaM(dp3YuuR*w%Na+qr;n`#s}?J=>ULlyFrdfP{{J(7^$fdz1S3
zlaa4A3?{-HOLg*=D9Y>DZriN*-ijC?DGyKXg&Y9#ra{JlAza@!*gc=m;b-0FLrD6j
zD7o1Oa0iq9F>MeT-B;XrS4s*@pG6ysW>`<;rm}hIXVHAi&>7c>^7lyFo!0Eyo<jl@
z^P%+CHgIOeFCP*cHBPzDN1eTrHX}!Z=tAP{kG%YE3STTMDH(Z<4#A`rBbg;L9?9dE
z4E36ULt?fxlMTHLy^d7rYktt~yHVhNr<rubcO(2}fr8QgYF!=1{Fub5@B4kvQ$&0h
zE!Z+6evSI(9Qg&zMo?9(h39Br<}?b*vMW`v5h&5!q%|kM=z8&*M?K^&FeZJ;f=;}U
zx0$Z`A-w(4uId=g#K(VPn63v8N8`@HrXb#<oOFca9L7oE&A~--+{k5s!!M-~*l^}<
z5XLzSO;VM{XbY)^-w%Xbwb;N?TL#z6?s`DiaJ&PKVDmFOg5m`s@dBE`ACb3%kfZCc
z%j{%D&ck2io+B=*_!zt#g?v}Oc9~;_)iICR_#~ZMGYGX784`s(>t7)PjhB>T5GE{s
zayD4LYSvaTsFj^)827Sx;tWg%(ee_8_oJ$4YyZ%)a{;*ciKEov9qEGYu07RCtS~JU
zvr1E3JUfJ0=rf}AYNQR+ZXg7tB5)@!YMLo@wdh1o>#LYGk^l0kv)(QVoME3~cLS$I
zYA|wkEH7AnQzZAF%P!4Kq85w~I0lyLd{3hPa;3A$>bG6Hk?yD2T<_1>S&`_HjDV5Y
zo7Fs6{5pp--XyD=?1}P03N~OUg@F!bKKyCpyR>Nj{(cSThkmx%NK!qIaCnK1WB4t5
z%6@`56SXENw1bW42t*R@Az1|P7tr6R>wLSKn`{Mw2=#^6e4S60`@^VRfu3z+&*H~i
zvsf4yRhYf`#J9ciA^fh2U-6Dj`dIm=FYq>)?m!x4z*eOmI;54m0cwNk`Y5Vhfj}Ro
zPMZlh^|;TDD&qqji<*h+x<oZYoh)5^u-wx(?{|D(Hu$4&TLT?ndk-BYG1^F@=!gF}
zh0CYu4?Fg30C6z3b(%dZPzNUP;i}WhZ}N^|#Ek8%r$FFQYLY2yaOfHTb4T{PrAQ5L
zO;aFnAI)6tySA`uHGVF`MHQ6JYaF!S@Ze&$b>4DJfZ#jlYjSO1x0R0<Bz!`PMHqiN
z(<@)=q;~Gwa_JHZsNg;0+;yMc96M(z1GiS2O!jb@U}qwa00#Yv-<=D8s83H!-y*0J
zsHXX?4f}W3ujD@*+t<AFU;0%1+U1EfWw~B%k&7-|IoFA<rS98mhdOfMOh<%|G11l3
zz5|79FT2eanbsuDywAGZW8sZ-!wv^^<v(~_2$Ub-)R7RN8;Gl=034&~?_Ns>ym(nC
zD0=In7b3Cerg6)4a6*mv*iT1&96@-F`k$q?Cnpd|y543Ih<F~^IrvuAjh@}+_Gfv9
zMzl-=HDh6^c8J9$AOxz~g4N40@*&LAD=ngqo5qy4WKVPA%rmLq7#x7TdzH$hrcRwx
zLle~R13Dqi`!bYez+|S)j5_a<oRxtCAN=WdUap>gyppA_>$5fwPdsogb9a!^`(6&F
zaR79;S<}LS7ktZ&q9G3PT>`C$+31Loh#LB1_%#%Oj^l)%n^V4(OurN7%V{sAC-2gV
zvt((#eS+qYSz9<t^T~ihLcpK2%;1VD8CfM>9ExAv$c^%s%a}v!SMCb<3B#-OaW-Db
zRSKNi7v|zi)9w8|o}@l`z|SQCq#@BRS2*FFT*iyyuFaA-djw=w(-i{P=&y9)8$PZf
znYu~Sth?S78Ek{fujl6jocfG&9%6G2&BSyrS4+O=j~8@2&|P+c!o5Fd;P6bm=Wyrs
zbi{Y5=lk~5@CZlx<v6YeTKVeQXy7tG6cM^MhXcO~L|ztKF|rRd-y8l(=T%Q=JFL`Y
zJ5dNRrN!gpzPDPoeLOzVv*a<jilo!71-LI9$t%-hHrRC+b%~g-MxmTEFw(|A4-gL9
zDS_@8PdC`(BU?x#THE^h59|7@Ir{l$@wz>*etWe9@t*p?O97=jssJQNmS4_qqGZGt
zx;FI|?E-<$L^1QkgN2Utb6znf6EkR;b2!W;1BqUd`2{Sg^x?O##W?LHq4bwVerOK)
zJcgWOe+jxN#K)iF@^LlZQ-LsPw?AThHC<9#59cuZ{bQpl9jyn@{nPRnYTqG)4HN8=
z#ZJ+THfPE1P=-n~MMTb*5&cUWo$n*h+yV}SCCD<ha~7?r&pcgv!x0niH*<&p4zVEI
zj5*{(yaj!`XE7N?$qbL^_Ldgm7ZXUlTDiyQ!H2tTg7@*;l-7~TpI1O0CY^<YvDGuD
zUt*^t{VyvRj5~;>Q2u1gmWSfxQWKe<#ILSG76dqgmY(Li+?B!6143#u8z-WB((|%`
zl^rJdx5PvlQUj7{X4(*R9^kU5Ub@j*zjU#*$LT1id`%)sY}C=tCofpW6}uPng=@bc
ztEjJ^G`?|Ys)_e8_MxPIduuisi+x`-*Y)x=G#4@nRasjWD=Hpv{#FGZy<1N0I=a(g
z$lqbG+J*ovJ15F}#1jyZaj2tQ=cz91@cH}onNY!igM;Vq@t1U~?P;mEq^TLC>gL2N
z{XjHk=361Es27ekZ$iq6f?1vA@+(Z@lII`pZ13qh`CFTW7@MP3a^FP2O6r@E;9r1$
z$mhM04i>VERCyX4iOwW`I_Wfu5ZlS8I-h2z&k1D^f$g?ozZ)bxZnht7G55tSMMY?0
zrmHr<ZQG=U+pGct;>;TC$n$<U!6C5&G2>KGd%D>zJ^?G*!gEtQ+A)-{0xCHM4Tebl
zfq&qNo$BEan;T{ZB?16*uN3;e`ub4?c<Ag?+X9XF9u*Rfo}ZDgcH|!EbX-`6fljop
zRObOHwM9d)3Qe3Mq2cBFiE^r^+~jWONS)t<wMAB2qfva9PA7v_2l$9U<+&$@!CAV4
zhqv5<fxT$NdWYU$yMM8tJ4^8kq@r3gx9|3S(}Sd|@EMs5zXXO);v<V8U-sC`l4a8B
zl37*t-wNv?go})Ph_zmAz=u%E5x|2V>otO!7E$MaVVcnqmZhiR7KiD~vlPlf;<v9T
zEPK}+Y!=B6*I!hXL#&Pz4v=I)&JFv`Tpc*L6G&(2;{E>SU-u-B-N`W(Rl)S)A24yl
zYa5HT&Z1e;VPt#uWmWgZgYgpS&rWcpKiKExkpOEGn5!{iGv4H&odL;{4dCp&gJta<
zf~^1SU^WkGHWYY=Poj@7(-%ZC0>ukg`O<??d)4)V;{eJn$s7O{V1uVmHgBAFV9_%f
zk;@u@aTE3HWvACghP41VjmK;>gBGyAD$>eyR6ivL5!KOEaN5vypdfs%9lwVCe&=~n
zh79{7sFZjvau(N<J>{m}F@3dsN{*W42^ed?QNybvJ8Vg^_c+fwv&-1Tpt|xwJ9t#T
zA++U+gqx`L*hoBBF;0g4yY2Y{dR234dZdQaYfV<Y;oLvDLol-QqZa{$v%Z%D)^&pj
z%WB63X$FrTJGhvnzV{+tt$p1F^?7&PBZVW25ad{Ch}%2}&Mw#;U=Icby$t$#pCP^(
zRHOZTici&l2Bl6@@`ZOV<=pv9Wk)5`r#czn-cY-5+uQ16$MXFWN!Mu8X>Dv-_q(BR
z8HeaXzi!zX?lH@m!Mz=v7>ulL-0D$v&lj*Q8e~YR40N!S69hJ-+CZH!s9UbIFEmx<
z!PYIkrtsbAce5Y@Rum3OX^=G@n^8AY2K}UY92_6B2M=saS@Yts{+bz>-yE13<sCvW
z{A#{b!q}*_$XIiipk#4#L8kq9?vXZeFCjGl12Sofm+Kz&x;?wtc`nb^1u85cCsy+&
z51kk?KOXDT(Z7+nQm-OIGRF&ZKbUcG19n)u_EeKL$_KQMOqPrb4Cwb{kB$<8W<>lU
zW!KwVCa!KZIMhEt5!c%(C(RpHT8Zf&&>0^=pyy-*@aTa9tu^$(rhgE?yd@84?a-(4
zv4wRzaFw3%44^sKAxZTvHZH%ax@UX71vC3No+^K?yD_HUw<J3Z<oOLcttL6)Ak7Z@
z;6Fe>PlNM7QKD%x(|bRT<h&k8WD|KZzMd?{)qA;PTynWqLJer3HvKtVz0**QtM}MT
zhVA>Z>6?^-d68DNuV^GLjuH52`ZDR*f9N^Jq#l$NLHR2MdZUV6R4Fwa6Wu`6K82oU
zoG;XWV*8g^m!IQ{W`%7DQ6#8F9DUFG4!GQvBHffMDs)|JtB8YnOs$qBx)XS{dAvg*
zP^%1{fBw1SpRC@PZ~O&ujKfGSd@)SvP+K&2*dFtb2312$T#QOeO>Q=3@m{ChprC-p
zN7Bxu>Hw`9`8RzLK!|O)xwu@@u=#92j?6kU1f$J%colgcb5rIUDq9^s@(FXRyUTQ!
zPHiqB><ZMf*z)}ZJmnS+0~oKFrs{5C5`kI1+ZQhj(eTtSRCT@e&lJ_X?^Y4@+rzIu
z_}8KJ=OKq^$1<LIg3dlyV;L!)dx;Yvn6vzmbgpX>a=GN{1V2J{LLvGXt!YBK=&JmR
z?@ymABhT)P>OKb7IQHH~z*S&9jVk#O)}i~P4SRaBGJxqXs&c<;pQZC*TFPO*Jr6t+
zQIx#Fw>mR!c2_jfUv6!4^?v)^Y4f{_I+(8qd!OM=0?Lz=;u=E2j@2vJTC->D(WYls
zmle|kOI#+lg-4XwaY+}MOy{)2$4%C(OOjlZsN(&&RR=Mmq6g8~{-LhGVj}SP1Doa1
z7xGvaZG#x0`%ec$QA!>@*igL&L!=liK1OjCw|5uQg2ZDpO4WJxk8UG~mx_6eS%<t_
zs>+#w_;>JnsPDe{Cd)iTFPFXBgd!00jjdleV2(K2w|+HTXM#+bDZ0~;Oj~wopFZ-&
z<FKODU`GXxMSm21Ks1yv8&Qkll07g%(h*J`h$=VCx6*{LajOb)UF1jw=S&HeoD&e!
zH@n2WZ8>1_$4PcRB~eJ=Ibf_k?CpL<ji8~lY}+-Dhp1JEe{2z%xb4!2#aLlgxaqjm
z$X}^B1Hnrt)yxTy>HQ4Q!ll&4X701gB4NHir08*b6_<N?74Co|YSkJ_ZW8RNq`!NJ
zz?H&6fmB2hPx3=xmKK(}Hx*UaRhoHp5`PaX@sJ%)I-6kdYXmWE{W_!>AZ$Uo`b<eY
zyCO{>K#>H2#+DHo3bHB0;R#{xy5J^qfN%$p>J<@xQj0>cpv!8QBz6J(MMZJ9I2x3u
z>%IQuh=C0(UhloaKFic9WMe6Ub>X3GWDv!tII|-IgSBfcf?z<JgNbE6O=^&U;Oyz*
zh8tXFf8Xd*mL|g5A6LTp%)telma-A{fZO(#j)OfbQMXMViDA88r}9{_ZI#B0gAA2h
z&Kx31K49NDTgmB_<9C}82fGoUktKp!;?wT`?x8Y>IArbFee%5tl9SMbD?ibQJQ0g&
z)&@T!8|}8?$z_4LFs>uMf1E4KNOc0^NuM;>nqHSarm~*mtS1x42+h{NN8X3!zJD)-
zlwKH__9w^cA2R)b{OPKi%0gghp}R0ZAORXzgp^ypHPmkOXhG$5z=DKY2qVXrV}TyA
zZiw}`gO9xQTP{T%`Kbc(wEtNY!rp$)ZHkYGJnGUHPCsr*b{%2?W_#nu>JRw+%b0#`
z0eTpOY0~ZHW%YYjg>G`zh~ozzJi`3GK)LgzFZrp_u)jJXQhAVLrj>5x_l>1FJ=*Q|
z=XTMGq8R7V%FckP5mvQ)(Nl_828HUK#4wki_2?t%#>@*Bkq<hZd&>dVa4w9w<ImgC
zO<n{j?#%5cp7Oz}H+K5hH@u(rzq`a6?Gz>ULh-`)UK)kEgn9O8BTtt+^zv)WnRmKh
zTgtX%j)Kd{t*2KQsTrhHi<<|wSBPqB>rx}!T5!xOKxA4(xWDs4&(mqG-w9syfdMd}
ztt^HkLa}b}``=8oG498j4kM~iN79rPoMKY<RYl$Rk5j;&+ZnndF8<ACqT{3y3lGqE
zZZ%Bfy2c|3%fk7o2A*F^xq1Bj!T3i836NR`y{|D(Q*)q6yeS#&y*A~iPj2qt-5e>|
z{9iuft_W?1cCz^Dv)PxEQ{7cjTreqb_Za2KVsCP%M%>aVz0uqQJXau^;4K)Rt14Sy
zV0@XqK5CSj`rjk1QB6n9Zx@IMVHglU2MrjMEjV?xd-Da*NNEkua<8ho?W`?BP$GV$
z$KmrpLvJ%Hgl)E7!-r<uE|!lN#^5K)CLB^r@|B_@P@)`LGq!l#t8&~W(XD$0RA4(^
zA%XgyEp1O;{v@Z5k<CJX|4_r%W)^?3iACPMkNlYKm>_4<QlgGr%tgYoNzrY&)+VO>
zsGLkn1G^E117nn64(P6R`tC@t@FteHq~&>Q>{62RF^#iyQpxjUVJPf++@1EeH=_w3
z*$bkO9QS-P>35V5+H(Zp`7G{A-Q4Ufm$Owl-K33QLp1I%Y?e5Y>JJ5Cu~)7&F!D>R
z_JS=OyKG1K-;+qU)d|8Fa4`jibD~n0SDPDOheb560;(vG_XiF8h>a;&j$;V<e|Da;
z?;Gila`hA^f!?jyDJPX=9}nv5Ni9##bgdg8YOI>JH`XXdWGwPsv|RTLp@fo0c;DSV
z5b&RFC9wy+(5|AXw=jrkOUB0XT<Euzo@+_5#~v=!DuLTq-`Vv1<B@ri!b?&-`1djP
zB41!YlOt=cwU`G}J=6N@FPzy26^ga}*ei5*R^>MCxrvxMEo(5px~!tT>6fRs`*o!`
z@3@l9brsvzyPJ(;uR)~fRBGDA*1_vY9&!4m)S@tunc~~^;kiv~%x@hBg}+d(vX!`<
ztG6Q&<u!ka=J3XDIFeaw@9G$4Et(BL>w2vD&c#x<nEe@~t<tf+SGJt$M`_~Aj50Mi
zVI&rq(6{x^x^q%umD%#MFR&7O4AeR)9<)(=Gs)zArI?41Id9UQRFC`#&N6iek!}l^
zU_1-smUOOyK^n%bor%q{?T|5}uWh-{AFmBUFuAt-iLm?HY8aNkWK`2hB<_UhS$R7V
z^8r6aHH;<-B~A~2#-Q8o^_~N$a<EEu!SjQ49#$@GqFEp+(SjdQzr9HoGO8OolMbbD
zca(wfJ&}&Ae`yuVDmcgXb9hRPJKz|INE!c=+tg217B)3nFr`Sj&WMVf2fK3>Xz4j3
z_QUByFSCVb2mOlk#B!oNLMlZ_>(N^MYtv2^M;*&dUBOKGyIB^<X)`Y$cQQ;u9=81$
zAinvAkE0brJ;DECI^?#*tRzpnICYdVi))tr!ieA5CCtK}LS_p#fndf`Z@Bx7DXtu;
zsr!8%q-NG3{ygcJj(>lK>?fO{SD?F^@v(mrA=f?1&$gwV90}=PTe!Wrj;{9JpFZR4
zIMg$4H!M$3T22izn?SGYfL0x488%d9;F?%g;71T2mMgE!5)Io@rP}IoiqJKQ<}W%Z
zBUy>;dq{lkN<_x%B9LL;mA;c!497tk4zf48H)&O01=nx}{P`U6(t|?ZQD#9J0{TzZ
zh@6_f1J8PQ#<;(3nxyrgA-(N>?}1k|vkSV0CF*&@2FW5c;<z4~Cb-c^NBpgc^_sT)
z>dUo9c%+c~IpQu@nKm`n^S(2bhx6EBqk{(j(C7{5rsz(%OJmezD)XP;_It6N=v%jC
zX=NaFo0)X`jAmVuZ)QDH01B>e7~|yAY&F{i7lUesA-%b+i2ED`O$yUcF8&~FJqB-V
ztn0j~8}8M4IBBrNd*M!ZxLG-E8*N$&Bv7F9?pd)_;jyDX!~Xp|!5Q7ewbCoZeC@j5
zM%czxlmm<VULR3tMGVcWit&A;u<?Rv4Ti#Cww`GJeP_US_4-%6dS|TmwjyYX@!~D1
z31gVZ<9T|Ji|Wf2v^I>t-~xZ?HxCsa=S`doj-YcxJ?xpm*$IYFgbtEj)hL+fgam<t
z%%NiM$|PSzo*;{KD*2xQSA+GWl6~b|^-Sh!a^%lm6vZI6rQJT+w<INbae|i=pJ`cB
zJ{qsJB*&Sz?J=K2LJZR@jZy5UruSRxCWaatj~tzE-K!aaQnFERyk57H#th@k`suz7
zL%YX3WG90Ky$E2CpX#QHv?Nqz$;Og=2z%}Dv5x7jhdC>>v>i_y%k}aLiQcap#cR!t
zSI~4Uf{+7@#t(i-A>OPhr@&LKvr!l`MsnQrNA00nWKP=P1u;U+(Uz4wWu=gbT8DX?
zD+ij@BvrZ}*c;8&+i7RNr$LVF=k6L@-?LL#?Gnq<ntdg$k2HH4e@SQ&Oepax>_%)N
zC$>PAJ5V0&!=%sT-1K(cQB;i<{rRvsr#g!P8ZI%PZ8sJ)74!`g8Z;lWdamDQ=-{UR
zE!%RieN$|KG`f7#;u7Y>*BUMPeU_+?IK5B=QM9s!ro*0)Re^_gQA68E-P9(CQyLw#
z@V&tB;f~|YES%&Ro)P7M9AE0X81q>Sz&DbUeSvfAen8#k{cbzhXfBL4SJS2Zx8(Rb
zK1Ngg&~*!APTnJ-Rzev}ioJ%Th3TQzQbX?XP#^)(6KbssLhg`hd^cs7?%NoDCU}p<
ztNOrlK2ga-jJ+Dq8!@z>iwn=tu2I>$%NejtMRskeG)H?WnDsV%e+n?a+J2#4rf0nL
ze@oTl9}r`x)aAIu25u7<DjoX^6C%Tj<M)MFrN_J(Ux!6l8(~fp9u<7|nxov(lswr&
zs{eH&3E^J6AI+4oxiPYy?j53W43ywOh87#M+2Lz{680y_v1i03%3P@mXuvw68$`9=
zE~=i)6iC)Pju4^r;<W2)sijA#X8pX4YvXa>R8O#CZdzo5!L$rs!aT|A;d#DT_;|WG
z$FclPhhZ~usV1J$%{KG-CP2-M6pm3<Uw@7fG4B${{6LUw5-qd7R==JuKQK5pwddM-
zSWhl1xzw;wB9nS^4rMs<g!j%H<4lilcc$$<brM0F_FA&7D(HkrA#c1%t5UAuV{inC
z4HezzA^vS)nq&KY`qxIYd?o3Ne(7U(khyXc&7giRkP$v}cks^HR*(<|tM4<?sq+`+
zsVA(H#*ouh)ncAB5z_G18R%xWspS-z;9-?@y)vZwOV(;lyT$HOj3e?;FHAz7ZsFIH
zC-5J4YC=YkO*QYk=p)wdo*Gjs#N}MN%ci|DE)V0%8GKEKnplMmc6ntdUWiS*Nk9D9
zOTWx~V3R*vb9W<1N=h|aeN9r9&K2>b`P5#L_Tm?Kj5h>_cG~r|;pS2iHO#8mHhDe?
z&|8&T4*U`fZPPH5I3ua8=_~3dLjeQDi75Q!@pIR9wawv(Jwr-qoTGG3cuOV5Rts-?
z{R2HsMvG#d-B7~u4+mc63+{lL+XGH~1<_aTxuBp20k<^p<`EB=z1u&gFD7+t8pwK4
z!+ft*Go(m@egoLj&<RiRt21lAg`F=Mzp+7SjEra6f?KWy94ITXnZP@v`QkttPOaMk
zd1RWAli`UU^K#w@(Q(yoXWI=5p-Fp$JOtNEP4#B|j<cF#?|!wT*VaTjqVTa*_Pfb(
zGv9JyqVu9C4QAFZkYIRgyN-IT2=+{S<<B)<$iWSyLWb>-Ntn(gKy>?z_Rzk4<?XQ}
zo$BNlcnXwd7JcpUfHCuy%Y^gF=ZKyq1PikT%-r<*e*DB?Lz~3EDu6UQRL;l~6eJ|T
z2d6!x0)G+{Ts1%{-0w8{@zzaST9u~IbikL$gWf*@w@Qp`FTtzi3#JGIse<#u0MD@D
zIt%jf{qm!2+;+%oMF@*koX*FheZPm7dF7N(muf(86YJ|sV15eb?a|$}vE2@jMRvIa
zUwGuHm&8Vud!+KD3_|0No|#tl%inJLW#$^ISHe(E?=EahE^&)q8kFh{Z+Vtj@0}CX
zUKX`GFIbixuRZoZ*1YP}e!&ToD4=Geg<7<zk~K`wGBZLAR8pg1d{H!Ik(pXkA2(W5
zw=oeml({TJmg8$zdAeBLO2D;aJ(g?CRL-eO=viU;EIUwMC@a>dFVZhtB-)lPvpSb?
z9V#_iPb)QeW}FMoE#h9uv5<TR$x9KG+-2^Ez;=EQ75?t52-o3VZms#&SVM~iwf7-x
z@>@JzZ)2&^Yh?8oRh{E*jf_5hTvo<#Xfz!eO-65RkMwPu$8LZz;x!*a5yrx$EDLl7
z-nQoZkQ?-ovK~=8k`4u@M|xESLh#G{R)*|`$UXLP$2`1=EZzvNW~CZNnR#F)K*$6(
zGi?@GXw=#mlm{3o8>UTMzLm9@gMz`$MUGAQ%#0giwBHl1N_fMhk9-o${aTl!eFvDi
z>j#{~MFl)8dO%vk7B<Guquu?Ef9GbbLBPKV@y<t<9gTtLb_#*yw<GEZtF)skJjkhd
z3xG$eE@;hkS5b=5+_q8uEzoBO++NbySmxi8sc7XaLRlTBqGRTV55}8D(_p^7n*PDO
z!7Q9I7sIfa?1QO7^wg>ndYy-&5f?3!dV9NUCufQrQ~;nJQGeLAyT<nfI>NAES6dy-
zF&3v&TT)Yo7!n~4sH&@fX(Rt4r{%YBaiv+v@4a%e&3Ew~b|L+u5ssubw|!XA>`&xf
zo;DaB;4D=Izt=#q9z%fToQ;upex;ZduRr_uN?mb%jh8n5?6GwCAV?tDOIe0$arim=
z^S6_)ZtgLQ?1=oYz07I9J8&BxY3Irh+Ec3-mnvk0#+oYtRLggT9;mm=-6kXNsX->@
z^N69_78C0Wor(SrB@Vt}Hy@g0-G*blr!8D9w$;wPR`ji{hudY)auHLSTdquLd+}+i
zUD}m5Tsbz6kTFs+j9)!tRL(49zv{>%O~xBwGn=dGg-))gqM3cewhOI>t-Vc$O;o1(
z<V}b^#R4uRDo;{zrYL<F-3(L=GACZE{#NzztJh75=|UO<g*Sg8xQ<I^6RDvy$l2$N
zYc+8UZ^!G?P+}A&wM$PJy7)wzRo|_4HzqFEa%-3VOX`R&B3_+0<44QVl9R7BrSP=d
zbqSOE<cC^Bl!LL4oW`YLy~7?^hjrI4F^Uyh3eW*a5P>Z30op+k)=dxN@(I(v4kSPG
zbb}B9mde??@$%L8Cg;_EVk_uOHv~-sQ5m!=3o(FHj#x^t39r(xs!9nd1Zd7Z_D3=x
zk=K!Fb46xxWi%bcHwxa=|DBc0B$Cx@7CAuQ$c`~E9T94*F`hX~6fST8V}N*dSfD$J
zflpGm6L6nmxu9G`HMNAsVNMLjU>_+vdwCDGo*m#~TM-`ZbqrDfc8;Mee~~UOs`uyG
z!)!dHT^p%~L&355$|XOK5~AKYUk&mCm*xt@>2*WsQ__$J-^XUY0rZHu@{p!9)dDac
zY6ph6o`nXz#qs$hzGk>_7U1Y2(J6G)D0PUPm(=|661wZrrL(jszn-c7nGehKluT5{
z^Ac##AHgk8sS#>dj{ckLS(aDKza04VHn}_JT+}wR_=UgHeD2=CTK90XH|g8n&+L_1
zrn+;7^qN1G#&OV$YnyiUn-79A$ey)hD{Hss4-q{s{i=kJDZ+!6Tj$Z)<3}paa;xq7
z+>I2_$|@;}%F6c~8~dcqtqs^=*immwrvLs6K+*VmogdU{PP|GB8%^tDZ9NpP)zefM
zwQtC{_r5S7h4t~>>a@*q`W0$=jIXKE0!b$OQ3pPXJ81F|tF+)j{l}y20d-ooL*CdF
z<(ltR`Osbkjj>7w%WPXUpXHdN&&H`NitU15kxxu;fTbh2VU2bw@WvDQNvsw}=r>x$
zDAX(03hkMt2PdwjW=vOf8{O_YfMbLg0NcnSY-F%0btA)V8$ULEHEzuyIE{>WNfQ&d
zi4;s=D#f{PX20?DRJLS9L(fRropY<D)k;>vs*T?5k<ik0ryVEtp`kGHYb-Y{fukpS
zg@4O*`aWq&bMLtk8@4qFwRaE<9kw{jzK3-E5W9f*XgZB;s31}>C=MobTKdb86ZoIh
zhE)e?2;K{|g#QOfK)1hfT&6$3nqeG9(@$v@qC?oN>*CJsM~_vwz%4n_S2MQrbWIrV
zVEn3x3b#QD7omr4Cx;pq?lZo+&kJ!x3UT*2XX3<saG$$n2dDGB%7Y(uMMfQ))%^Ay
zQa-!5ROW5Q3QRyt&#I`LN_9>1sH@`z>cL+&6R(w4`mSWhny-Lazcts}J2ji=z7z-N
zePZggCdy5!hrnMa1H=N4Pqxh9z;UKM!r?GQ;1!HXe161=QVg+jAoTa)?tRkquY+Kz
z0wN<LS~iX*PJKIuC+24VPKx(!#CT7oZ9TBZ_GR^w68!1ixq3pPL;JX)%g?|GdM)F4
zCTzj1tKr2sK2MGn@I8RTGqNx|+~LLf)R4h5WzmK!@?k%f_FGW2iiUNNzPYZiz2T1d
z_E&yeKKAI{wyoeh0MtxrAN=5A&;zb{F+I_U^NoHL3XTCVG!UL0z%7Y+($4%N+-u+R
ze9OXX=e9i3$ArlOdZa!Y8hBH#a?;ek?tY3yf>cq-gUVl?A8Uod*3?`>4NaA(OUc1&
z1L43I)5**iF%r{dy_xSn(Q?Y2_AA{-!w=_;8cd2NOnMvDjDf?-Pz?nFRmf(*LxbZD
z>VP{nf(7^^_w{YA=<i%T+p-&u*UQWXt)meGVRaiY_IddJOB60d8=V2^G}c`f_C|Q{
zbIuQ5;@ddPd;-knUokZi*65XvSlhanv%0;yw)UvRp&DRLD-X_Z#g`u17{B4PuR&V>
zLwa>ZrQNli=+*zgTo`hQ0>kc3x8ckeH}7k0AKt+W76&Zom<RX7ZhyyODgVZ1G{b3t
zQ}!_Z1`Mq;!?Xtw4@_&}y%&3<@ow$`Yv0)%kOPl1hZu1X9z%(P%fxdHy9eIN#!rg_
z6C=n8#yr*8iUr0`1|00zx}Z#752boK!28+*Sa|+4>woTsy<`anTZ0!MyPZOj8B~V-
z`0R<f7h4FjnN!fYQ`8s63d!c}SU-`3MSx9g0g1f+M0JYqeLk4U!w$C$$}NYP=i$MN
z29F`9JV#gq4|8+ShWIKBKpzM=&J}|*sV=x;HZxa+&VOR_NJC3@Y-+TG{y7k@+&zS%
z;jR!B5>@){k5s$ebiTU93UNdVag`f+iZkWY+&u0hPIl7@aknmHg2jhs_<k_Zwe4X%
zE(w9|Oj>1N{aecG*0{-UrT*9!>TX{Ff~^NTNpdX%l8yo6{)v=KYjSPxg|I2QdTeub
zLwy~No&;q9>jCtc2{so9&b$l+4GM)}$pU78=OyMkc4%{q7V)2+)-Q)42*l;-X}Uj3
z6DFTcp~~?%&;?p{5Nw%D4|II`77RbPVuonR25kR|#Jg7Gs44wQ43^_e0F|c?>pK;J
zlOGqmG37j0(IfSUd#NTf(%d0~q#}Zi{d`={_iQBu(2*&%ZG9b)U-ayJ^%vOpzO5AT
zJqx<yH=X-iX?DLuZhz?vYX=mJd<0y8{i3;{_!H*=<v!Zu>gMHq9Nc^7ZrHyp=mygZ
z2X$lQtka+AU-gM&%4WT@WVD|+24*W}R~lN&U^doGfe7eIHle~=Z-ar(Ci>8IEToK|
z)hKh;KL&?_49`i#cAq}^H4|<XoOzi?n`$j(hiTZ-2<t(v*I$mUWEh>iWi6Wk-q*+s
z7}g`D<b)24ug{L@H^P6AU*TtWNbn%wxWY+@6o!Z!Q4f)hYaw60keh{X_XwOH8C(G^
zKhIaCUZUdo;rFWV!g)Clr@58ki|EFD(be!4q&(uLj^tH`xCSB_3We&ZcG6<1Z9b8D
zAvoQ#;a-p$FR_)y^=7hb9^5o7QC&p;ar_&Yb&N&Cam1eLGVA)7<aDSo&>u|8sUepi
zcdC<&@%Wy{CQZlII~8jle>(Xijp|uCww2mjpGMuezon|nG5AV9^t7*;1Jdg6_|W5q
zY_0qKdF(I{@u#8hY&`>8cLf6`W0;3x3vaa)@Sp+Bz{)FChJVzU-t7$#Jc{q(G?ugD
zool{m`?4Kc&R-7*m-TnN?C<M*B_pISCQPd@L1hC?O-&iB6ONW|w`vaTMy+WFR>a9|
zQ@R!uczsRdu{3VNnbf}X-}u;1!90Bn2AX+UQuj}P^qXgW#<m}O3z+EdrPAq!iQ^iG
zCgSK1tf)*xu#*p0LX;n2iU-mG1%s(z1Z&qhk3ndfuY%g^DpeLht*f6$&Cm|ug^&<!
zqn^%}S#Yoe_O_#9usM+Au>dVW`-V3O&Ab88`7Yt$d|e>)U06pIDNMsX2oDE}Zh0Q7
z#e@g$FSby|fh;CG#*bmqKl(a1{14jjA_f$)^T<}il&@R`{{bO5Lz&|v70`6qbA8}G
zUCTUbx34`<w5@TP!shCQpqh(2xA}z!Lqv-6@?-aYh^+fcV&uo3<ZC99KIilY6OaDl
zbYy>cUqwdZ*+ACXs%!c-z-C;!w;jX?7*QW{kvf?JNzij(3$TQ!J%|NjgcpW9L(U-G
zBjiUTpXH;N1SUo}4SyhVz$lRgkN>gl>y!yTLpalq=?SwxAj)32OJBQ3l_ioO&U>QY
z`hW9(FA{wx%1|Jzl~+1Qodphz;dwy9yd@g8X(D91TRX65GGbS7!XkivFn)uaf|_eI
z>}!YcEF!740_Y0NIpij&!dXZeYHHyH@zzi!sG%B#cu`KlL=9e_g$Z$smHU-`{uB3>
z1b7VXBRFw@_dO%<S1k(Mf3?7IAKY|~s0XTFPSkx^oX^c)e8qExevn_Gr~I>gbp>Kh
z!QOobzpl7mz*5s8DyEC@jlOp<7SG}qzK(d>=Zgdz#?7aO@fwX8e;RGw@K5S!`ws}O
z^!Wo>8~c6yGqDol3}hAx2@rVjZJ@>r!^45$ZbTdMSs*^#HI>_jbp_zy5y|kON&I7)
zNg6xut+0AS^$>u|fevWdpQBWA#~RHSd5QCsdg$%lRH<h(w}Qd?AbL4;bKT_pRn0hP
zP91`chY98?;0n40d)k$71BuG>G{%gA*Pc~N$w%5=O?vi2{T*vR2*JS%et)zklC~l#
zp9q22#wpcW0(;}*{W6klYFZ0aw-C$k;ax}9l{Lkt_4GXnN26z`p0G*$-r%&?^kT4b
zEeuG$=3%2AyFgYqd;bA^l|@|B4APEX0GDl*r1f^(Cm;O5T(S7`yJ@TTUdf?-vMjSW
zwn#kobF71(V@<b!z&Th^3*-$?4`8G-jQ`Ph2fZi;i0>3?+Ql}x@Nn?E(_)^33_WL!
zbmlC>5cC7D0~l**_?5{(P~d{tVH!j_Yl-PlfNj7ZPvQ{|W~^xedVy_G`QQ!-)otz*
zAcVLJ1$V4){}p|~{e_}H*_!Rj<W%MqcWd5t1zuC-4X`a-H|DT2TT!4;hg+Dh`QRoo
zu7uDH%-XlG2Fx#oH6W+^+F|YV3<S0(+VO3qh3l!R@kHSG8hYWGn}CbkF)Vyb+^#TC
z8D@NRE{EN^T}VLc9%#lHdz{4?u^2{x2X9{tg)z1{V9jU+AD4)2HbI-+JlI;=$u#o6
z_;!Vl3!&*)pU5o(AZmGH@N6p%Dh;_gofT8el=CpiLHL$S!g7+8RlJ2WfMpi6T#l_N
z^J}UBD;r-p1R56pgPCUq<aEr@Jm?FrLG@=Naiz%mdNCdwoN<pWpm;e>k|0Z`)~JX*
z73+xq3yl0T(g?m<SvfKGTGxWt%(TPMDs8}K2m`?IRZpd{72~mw;!U)1?LE}G?IA3P
z794rd%U}@8-GK#gvBd%a#}Xa}CyyHk{_a}l+@tGxz&Uw%z_HfA8E&c)m|2Y(dm6#R
z6~2g{`Z`upch^eR?0r9@1)vfe9f1enK>O-*p{2bGE%rN5;g3Bi<blXThoAA@6&89p
zgg@??@Ziyc1V_KZnRp>!*cHb3pi1#r5S#nHB?(DUZ~NL8U`{v%hZ|R;rYPQ%0F}|B
zNn>Yk>nm*;k?m|~n3F<%do*v4iVsnO5rx($t)~SOrI>7tf-s7Pc-v5ELuA{nd@-Dc
zQyyTzI21UyT}(QW#L@E^GoW4V5A{BL%cQDBmu(*EjU$zYy{zfw*Pgx<)+pc4Ci}EF
z9O?urAw<JC$;3Lqw6m<s886&>hK7PJ#*cGf{Mi`|y7$h4;LJ}J#PQ<FC3&7BANDia
zu!cx>Zbus4;KQ*)*vpL^V{}`;2o5E0xL_~m-Kqj3_@jk({>n^`ou+kne@0eTh1Ft-
zzVSR{m@rcwgyHS9F@jqA1Z{%9CuZast?>o}9->ucI?b5~Z9A|nWEd*mpVFzj56dqq
zu>pTZcf1%kR%tW~%v%+(rjl3M(24R<O`0}<?HFCi$Drj`k64hMo0}}nf1ZntRcrWj
zb5Jeg8#EO0T@7{8a0Cwq75*51;a^b(RooeHPIR|lwN5b8id0@e0USr*i+b~GNPe^;
zgWH&VlpDbSMmfvye@*Y&@;ju!3)cvTnK+DSwfG$fvyUa=u{TmRl|toH=%`~q1_wg@
zFsyh1%@%BB<unvmHRJH(uAhY-xLxL~d!T1$esW&tn=$O1Izv&+e}fr04eRF`>c%_4
zyZ*9!b{&L!r5Sk5M38dRreG|W`7Wlz2YDXx&=?#TUd(s%yybm(3_uHWHkV9-cxO8!
zXye(ZBM37ymBO0pFz(oYfTOoys?3T+j2p&e4o*WA`OlGm*Cf3E@sJ3tCo?-K4U1I<
zKd($YzG1S^6Vc+&$2uGSrO~=4;yc%_DQlYEgSxnBhcqy*82E*`I2VjwB`}_xR_)&S
z18V>eGPgWmiwE5>YT~sKj_AbHH({+jO|6^QqX&Uxc3eC&@CEtokFOIaT<ln$4x_q5
zm4zAOv%hu5by-`Sh9=KRc5GG7;P`YEc)f=Z79$Oa-I;?9GUm8i>l92FHtuLdpBX=?
zIn48p=c4oJo$=%j16)xruNNv0>O)4ii&2>T{_PC$<U6mH^!E|R|7f6$wS5IbP;}BA
z4``|zRl|hgk{=`aZt%s#{7UxqQ5JixBatY~xTE=e`L3$6Znull5M|tzgRno*+l9Hy
z+knbpUCS<U@Sfe?tui}>^G(>50ZlgaQ!<^~CnLjpC)3FNvJbFj-#F#wf#kN|$6)1D
z6^6#!8lYfV6O8*N(E!ZVowhSZ;h5VYx5GTn6n0WiT^z;Pm>zTfW8C2>k5Nu5tR0Nk
zz_f1N`~a3lgW~b+v}4OM3|;N7(6T>|A|oE~ZPke%eYHl&Z>B;<&Zz9|TwSY4UqBPN
zjNj0%M<X4nLw=k=@1gqbt_iGQu`Dp@V92dBwtn(>fhB^?JOn0_O<AnB1BkMM)PXiT
z<1?W!VLubBcoM8cW?>P0G3lURRp9sR3ZMcBTIoFl>TE*R_h3f6M>#sprvKg7zWO^@
zza9{iCc#Yjz(T&82Udu4vjc^cCH`1dGv~}>j{h|F#MYs=7*e?yJ^SRhu_tZ|1e3co
zplSf2oP*+ay-%g1N2(z%akA?%Vhlz%I0%jxUq+BKkNqUoj$24JoSVGz;?JPzf3k-H
z;p5Nv`a@gX5~XxyVk6%k_e!y@4RDTQvi7Wjd*@8SJzK4qb!O6Y5ZEK|AT$TC5tgNm
zFg4S0bQcdsGm~<V81iT!#{Af~tU-#zo+No2gVG%EVzB#wbD)f5HPE?rc<w;kZIc|p
za`ObH{J(NSf3UJH_VVH07bNd$@%L+~Z^`!cS5kkMns5$*T0BM=I>Qb5jux`>J%>TS
zaT53Z1)>wRlOb<DgEX9d%VU}0%bw+_bNerQWzXlvopO0<&w?YD!k(%dwVt12EM9=U
z>p(PapV{$aP-&bB1PI27A}|0BhKO1mRnzmMv_OpTGnX-NMlqLj7Z5h%Qo@YAjBX*t
z4WY)V|KmDb89C?-{pQr47fys7^IZ_Lp2$6CoL?MxI&pvv6g{`Wrfr>=hsa|<#a@Sf
zWyehwGzJ!rF0s!Rwi~e)zqrw+E{GR%5VWxbw;FlpPS$90vx6-;KQGd}%sN440oN<E
zcRqGI-Z`ih`7DRwV)bpm7=qFtFoxOVb%mz#6K*0BI8F7%rc63bY5e)Y422`GPAT*)
zA06B)w>~^(A!Qog^Rrk;gTW9q1QBOUx@FXRa8r!m+%(k=;6L7%YGyCctH=Bi<I^pP
z+D9fl*mCN09~{0<K5B_EcG`K$e3_z+v~AV@(WZ5OM*ni4p_m?U#sb630g1a>@Dn$_
z>#CL-p1+Dv!`xI?zIVFJqslT<6e$}^lc&E&y<^k5zhXb*>P^0IVDV{ReS9O=Jd(j#
zFCWocTaWUG!(9Q(3Pm(a)?!XXBeoq&3HlI7sY}sDoJixeR1s_(#l2d~5Vf#Iniw-?
z3ZC&ntT7(5)kzkdQHhQeu3|!s1>YKQ89V=ClSwAfc<p5WC3+yBn0T&Rg`&~JkXPyX
zwB6Qm&X4qb8r$QvNPp<}RaKK<XMN~G|5LXgEt2W`<<52E?4E5H_YnT^_-E#s8PCHK
z@}0-KM6?E$XlFyhc{0{Xw1K6PU>pQ!8ri**MDNbyBMUxL63haF23s+YGqun&=z+o8
zym)*lu38~qwc4w3!|2BCrL)#?X*D8nWy;OT%X4xUqwb6bnAfT_&Lbh=0egY*$!n=w
zp6hbzKm?W>_S;TvdE{|U9jPF@cZ{<QeFLQLj%hqMgaN?8of9rVI88mnyuwzmots~!
zzy819(DtpHXu;`kr!(LCA+oV|f47j&Ul7LT>*6g6YgWHV_uX?R^>la8g&+P5%{uWd
zC=WWAgDU4l3+*UQ=eF_3!uW@`_U{-~<Nmu8)_~>TKCRBoS`XFM9)HaAS?>o6(*TR*
zS845wzXBt@5xgP`RXMm=#T`@J;o@=P=HV*`_nA`;UjQH~PIL0)atZKiLEy<OrX!?|
zTJ)W#e&c}=6%H}($H^Uy_*9EArxrm>J698ODsZ~m+p`N2s-x<Md&UA<m(FsYfcXZq
zo=e1_I0BQN??37TG`JQ{abUvt9524|bKZjBLe0;|KSEf<j65DV>3FBA3FE8K1}>N%
zkZxN!g}<EJK3s3BY?y)5&kl?Z*^}tvnuifiy81u;%dS4@#)0IHMZLZ2joR|DZ1)Ot
z+cFSSbr^J;P>TZ;uFe@O++>dPVB?UN5ET$qK0koLK;>MF%$&|M;&Yy>4}-;L!`eSl
za-fqEeOsur<5>XGSc;u`JGkaj2^f4jj%lkDLA}1O>*WTYt&amz9*-3OF0}>3JMuH=
zSVN(kXm~+Vl#eq3kz=A`AO-V(coXHJfzj*?F2DqX%EG{8_%H*{@KFIU$|k@SK>W{+
zQyA$PVB&oscolFt6N49liJo0wD?j)+T|MO=0n1W&vnF|_hJ9E4?U7%?G^M4wdCJy8
zmO~s#G&H^gy0R--Ixl@85;#Ui5#daT>_LR^_(AKPL4<C)Kq+oyzVn5o!S~JscTPDn
zmwbgVC)LK_c#PxUL9(h*O>CaTf&m$YGu3SRqm`|x-=c<x3e}fDggsKjYxEVSW-Zc<
zz!(KTz=loM7)CBqXU90HEK4Xc&OjLlu!jm#O>~iA#G``8ngdmb7~#(C8Z9`gk<vM!
zK!5`xQB{5yAyPcjFa(8tRjOm%HdK8Fe_F1ol!8x)`4~vE7~3*l8XOczkXVi7<czsc
zt-)t$B88*wU^i2Xqulr$DO(X_4uru&(BvjC^3@u(_eq$_!$b`p<eRFYh=QDx1;9fC
zLHMC@`HuaUh1eJJ$b*C1aX9YTL#vEwXF%)3XU^l5XlXG>+=i=1yB;vuGLUjV_>ccb
zE1r3Rrc67UF8avlV6EsZeyZ(URuw@+)xE1nOiXmOx6!}u`!l`r^7C}+!ZYdY_kEOP
z0+JFA?yLAkZX28@c;==7{;XZlwU1EGhWqh&#4WOVW;VTAx2pA?9a|qhzr12Hl|$Q3
z$u?+MTGd=rX0!SE=1dL#<qk3d#=)I)?v>MAqTkKO8kXG&HZE%z5eV0})9UB%z|dx9
zfsY?7`@hyq&33M3Bm+)63HNnvIMJ{h7lyRhiF($+*}CQ=v<Y7jOBy-=w6rUrt7_dt
zx+045V*tJZD2rpd%uELBD)5=2HLz0V*9%uirPfkBD_mKLh>(MYkc6BZf<+}5hr4E+
zh5<hlcnRlFP{%t}Jl_U>zxy@ZbXA%2Qx7bAhn7jbue*EwJ8NpD9g;Dqh~6iEc7Yr-
zWgLy0O<E7!bF{7_YF|gPpRLgI04g*LtwR454T07>YhB^tup?@W0v@~S;i9O!yq?5~
z@5ZjvWAJJqKv&AbLKHvfk#HrHFNqtv|9$KEHE+K3kicZvoj^tm74g`$ff{rLG&05o
zFM@?H?yP$}0W(<RQgE8gWIguP0)OM^HbmStf#2!OTU-@wj!Y^zb25>}_{3Vt!H06;
z00cyX>0vx`X1$17ntt=+*DpT*)UQ0aRTVnSKRmAN-tFgs&<Dd_^m2~7UE^f+tT+)5
zApmP{-AZd;S*hmF##h&35(B&(xNLED#{X`8NM}6AmN73s|1>O++F%jX4*wgFdGVfO
zx1jq@#`jD_a~&#;Ux2{%@jdFouJ8+~we_30%X9pQjZm2XwZ}S_x19F=-j3&%txWgS
zmQ_vx|Fl{0P_E+Bp&XnBGX7^uZO_2ih69f+e$KhL!!9=BxI@D+h}?9aFRB=Jei!=*
zv!(g%|9tz5r-_!qZt(C2j4=&ItYJHkxDy|&+Ue@94_Q2o+@1~DO70{JY$4RKar7Nz
zVF(V~cmxa%4#U1H)n(vW(DwhCdk+A+uIlc0pIfK*E{&v7w`Iw4Z@6LuHkgi62!wP}
zfIwc#m-mr~<V*4bd1)ly2dR+c1%e?Y5WtusaBsNCmaH<8Ms2#L*E{##^M3!e&zZTB
z4Y<uHTbg^?KKtyw_S$Q&w%68MQsx$r!xm=KxXtsvW+EO~NlVqU`6mHgQ`{&`GkT==
zMH4KWCMw?L@IG$;svhz8f>ShNUU2@!jI<-%yKBvZgYzf9)^q4TUr%QzYU{h)$ndjh
zhmKMwSqD7w#0YjKvc=%m(VA`f^#L!i`{&kJ?iu=tk{Y(rV2CJd?_Br3e=&e0Q*2$8
zNIku~a6K=6N5!1eB*Y^a!IhJP`#%__-L<%L*ApTyBV7+1fYB6b_0>LOGIT%cU2A#N
zjq2z;)}=WZ4{6C`p&>>(K~DK~U+`r}a^*EfoOtF0#1&IkG$D)$6NV(sdJV02w<H|m
zROMKCoU0r|I#rNV+7I@nMB=AX$=ppaSLd(9R&wE8f7dWwmVJ+FUgr{<uVhj1m?IdL
z3l2Zx3jGJEU(^;~U4BDH1YvYIFro~QC`7{I(-(Ro7|9Z<=$jc?UIZWs>}xJ`iOb$<
zTeKJxVi1a;Bm-o5E$)Bg|1WFxZvOAGR!?o#5W4px^S_2uXseA!V}WBV0t1-n%CiZ#
z@8qQW#MgV=GbhL01)a6-j;lJ{_1hZRvdl1;l01WFBNHY=sN@9<zyn@?YtNATm-~(z
zRBqbd;@*6Dhij^4eLHZ}KP8W`f*F6I`@eVp{*BK#xBI*H@W07V?h7}7Y~k<GI4P}u
zU;<6l4&33fnpYciJ@baZt|l5C^i5}yWZO&7q_bHMxT*jA>3(U7X{YY_5@Fn2_)n)l
zbJ-P*KlbQ}(!48izA#p~jUahME2rLZQk6?C?Y1>z>4Ai0S;!xG=pNdbcl(}soG}HX
zOJ*x-DXYH`m&bj>D}Zyf`v8`fC)tv0%=Mi-&I7rrMK9{0bIlJ1&$s~HC+X6%N_b7&
zhH-W^clPPgxl9T!MbOrt8=pG9dGC{-*wN5@k(<wr;DNP|rr=SAvQ@K0+!{Z2mafmN
zyT-9nJnyQ(qUuUIe=ft8V%{vWJ)A_~B->?@`<L4D<Nw8thxt1v31#q_WOCvksMxEG
z%2?xL2rN}8ZrReEGtX=Z8P@fJEOB_fcsWtxWDKXJ{NImZGgSwl7Q{oW^9#iO&^lvT
z-fjNm*`jry;xw0+&YgyG+}GH)bIsFmYs}Zzr;GVE9xaQ2I{TfEUlBH~d4I@SY+L@&
zu-YZMb~@L8#1#+T=ZYsFwRveHJPd?av$-PkB@vgYUxlJ;zR09DE&u=-v<PHn^QDx%
zvako2zZGJ4zA@49Hx~ybUW1OEOA@)sTgv;!km}t7FY?o`c=mh$@U?AWu<%WR$B#et
zUJ1rQwAh-{-T6en`}o(o-6VKc&-&Njdh-_d+KZbBC<>otN$<q?rg@Um44<Hf?5y(9
z|Lk_(ex}!QUbnT~{ra0WF@Jzt(LAX+Qb~1C0*fzW#ni9jG51?%ZwYA`R^SId`^_>A
z8B!a746{A*3kiHxX*TWFqv$b>!n3E&wY7CZ!$%25UC%S%V`W(5eBQI$pyyJkA>g;Q
zuflD-#?3Mg)94Ls@(@7vjVQ4r75U>Ej9hy^?gQ>~1G?Ik%g%N2%HH_Bb9wx>d-XHd
zr@r&PiLnEp89n_3W3a+yGS$>o<1kh&3V+lNwL!IwaZ5*~_~@_VUo)!kf>#Fdq5(ut
zMX7{Y3a}|_zQ<2aE+B@&C%*o%9Y68fU*9vWoGX<WAIYhKXWyO-g3rdSk&G)`)2>4a
zb~_4Dautc|l7OjS%tIEV?{T-Q!o0J9vR1(()n?IhCDD4L_rS8as35aP++Ug<q^K=@
zu5&4V7p5l37vd37Wrk4A12J|PY$1Tfz7bdGWm6<mD*3XN2M-k&)K|IW+9rSVCH#tK
zddX?qt~;mh+jYx(afRQ#@2O90PG{IMipaNx0$Od;ObWL=pkksUke!`kI18+LzDTGd
z#?TAu+>f;5K0kt3iY==YNWktJ5&6n%3is{U<=i<9qNB)~<3rDW2*K$8@zg{Eg{Dz)
zA)vJMvKIT+dT7L*?k9bJPkD%vZ&m_;YLmTx;t@}p9}zP@Da3Fs5!m^HkkgWgn7++K
zt?jl5NM=?pO(Obc{I-s^{%>T`g(rxV9U;4r)Zko!DX<A-C8Sf32-cRD&qFzvUt2kw
znY%ft>$*K8aE%GcwJ-v;EXnBD<Wff-b%kf|p%$#k1{Z`s64*cW$bh@&=!Codyhity
z9SxBNTpjVlleFSuJ`N4dy01Jt>YnYNcJI2h+1+w}iz~Elb4~&~+nA|O4X}0+m5qWV
z!M^9=?9|SQ{KTbXkX7%$MY{hZH(UV{eu&D*9>Bq4p~k0O)9wt6*3-u(5ZotVM&{j<
zM@HRc8yeirJ0KS}$y%d%H^v%H!4usDW1&+Cci+L&u77OK7?bbr8+JEtZ+2~US%h{i
zZHfE9PZ+$W)Q&I6uOq-brClfdt#kW(;&WG(r_$kv*{gZ&b88aAAa2W24u+IR3vT&I
zkvwtsrEGSlvG@I+ot1SFZn^nn`;$GD-}>rb-nxCIgT=6|C&3$%omMx|6g5^!v|6V|
zXLQa5IAQmqELu0$+|uEOhI-At-JX-h&`8H9A7@KR_eJBNS2gtwuA!mHO`*Wdpmekp
ze?u2K7eMun3R8Ld(|t?+nFQfNF>w*JZ$EQO2@*%yR`?)%|Mu_Sc*p!)|6|9Ge4$D%
zv#AsTx)7oT96w%`7&hOWxY~aF`YOlwmKyNG88%rFMZ#6Sz1L7o75>k6fB!XayZ*y>
zA6+VG`OoN&V0^H9J)2$KOH11IMPt}FTDKzPgjgm+EOv?P^Du0B!MDNsynt7lJk-?x
zF)Q{`88&$psqBK5X8`gHK|EtG5kXzOpd>{>IKo=Uo<V;j`V|J6!o3n});i{`a(Nb~
zp4(w(y!FyA^6B&q$%=*sC)ZkByOj(ytG2kH5dpsWVYYv}$AuGv;90^=&KKOT{5t~V
z!4Y@G+B)~CAKT)p1mk#oTM5<*J3IR)jZ&n4GUvYZ^r-s+3fpG~r`*q9+2(%lEj!)Z
zg>N8w33Dd29|%zq)kJ?PZ>h{MTkXQis$Uu0{nvY1Zv5pb9-foL-q`7x{zHG{>4wIi
zQt3GJwO4$OfpONn@>IKh%wo-(oXe9RMH};EOj=^W$ar9I(dJr_9YD}OI`7KxHj*-X
zU~&ef2{9E=MjF4h2p`o!@Y0v4O;G&B)oxTg#kt@sB+FdHw|!Ezs8g^&V8?NUnQ?Sb
z2<Jf!f=L})rQ(%hiF`%I&ZeywxZm9MC%i&CbZ@$37dtD<XJ7n{?g?e21Gwn&YYEa;
zO_-M%*R^RYt`5=aLzM@QTpSs7`4fGvI5EXE1uw`Ftkmi@@V$W|eNPJiip(deT=H6I
z&OYXV=lk+v6;|TpHSX(m1(*HlWQJh3VXakFl@dSYlRqxul%Ac5lfn<*keILX_@Z}w
zSw6pq!jiy#25$4v&o|+lE9V-1f~`jXZl!iD2oD{~P7XZ#F8bpSVwh`~6lYl0#MlU@
z5x`L_8ZHpkx7dL!Kp)3YFvBDD*R|qL6sD$KetHUYM1i*0E<INc%BAqdbKtCVKR-ly
zqIU#&J+WVVhcH8v<1CfZT6f6+;FF%(w;AowLeX~^X)m5}sbqb?I1gt~mZ}lL*_V)B
zme8*6^`2ih(6+zu@xsFF#~0>%jL{HtrUn9*=#K*<-H(m<etZ->m2W8-QKN~a`MoZ~
zKPk;G<$%BI$y^~FewH;NH^}8=sl=5#)AlpdgV|q#$o`@KDnpCDk)R&Jbhv3cOveg3
zRUKQ}aq2_*(xAb8MK)A$oIHW3B%hZen3YX_p<48Y-7*c5p_q^xsDZrkJ!Q~6Lu9N5
z+3H%`6I9wGebY*^Isj27AX(aV(+_#Q4bwD%r2zsRz<l8IteeZ8j_&@)vO;;{=71m&
zHu@rEj_RZ6vu@jsF4?@+g-_m%c59z$;BvTi|Luc)?#RfD>qU5c?bbS%B?_!>X<X$9
z;PGY2F%2;|H8$`5<*|PEZ%+=niTRwXM!R?WO;@`)T;huo*cV^daEuc-fv2raV{%DN
z*8F1l)xUf&xb57#{O#U#Lm33+Z{dv**v}kuo+(h(6?qz0Z?ye26-hTf8@h_}q^rdG
zu4u~wy_&5Qk4CjNzOwsVw$`xzQ#cI%wbl?@L0?=1Q;cn;xGQB#@z%*i;zudt6DsFi
zr@@n%Kd4*nUMEyvs(W0k7z+N{!$7b(^Zwb_@!L8I9B1bCPfN>+^N37{u{$*sxV<Ox
zxMT)hWmB_%&Ktkz-&(2PU;{LZ&5QY-RZau~3c&<f7=;1L5$Ht`SL^XKVcRilAo;W&
zy|Svx{qnE<PW&Qsg_v6v65aA=OTY0Wj>6Bb4V&F9Z+M66Khfj5He<D$i;MsQBCsh=
z&$`0NK35n)=Of0EI3KC@7ME;8NRnHFlHoADl4K{+zP>MV=bXDo?qXZiWbmDL1j(wZ
zL?WUqR@r!r`eP}>Cc^A-C(ff6JkzGJ?Z-2DUL?a7VemyvKEFYL$PcYlfJpElm>ulC
zl6@@T=)J(Mx|mzzBuv}XJOVSqCxUoF?&)j`t2s2LATh%xph(GIgkI++#)$zlZ*!RF
zzUI%xIrJqlY(jZ(ov6cN^HcRr&_swONxh(XUXTyUm=|H_2+wcN^dnR@fqs@<GjOR6
z%C+O~@}#kEeRM;js`2fi&6gTHR4g86VqkGcPi(pxBH!T(d%x}6i9O~`_TBC=H-;zG
zce@dMOu#<d+OAeSf0A{6Y^LDuJ~ZO)J&N)iq4n`Wto9e);@k%G*7~kGN03l`l;S!?
z^$SpR7iY$Qq;_^pywfw5=N$aZ^c_AAM0uB|-Eo`!IE&{zjjOTgynEMmtKCmr+v)pP
zeb2u!cs%j0i+MeESnEBe_@-yrWBadv?m}y!=%An?g}00a9zvyKTiL{k=}Dq2AA~=F
zCG@_PwuGt{d|wjqVt0z4UFhw1`Q8D9cIE(Rae{awMQCqo4O>E25-iSOAhZB3YJ&RS
z`ro(I%8PzX;h}g3vQi2+EI-9U)62^%+|J9cvYa-~BP*(I6i3G0!u}(!Fvu=AT7$-m
zisw{hS!tT@Cfk_@IO=`?!3fgfYq|Ja{+4SfQuGf`2*$~UXNP`_TD{t^hBkZbiE&S5
zL_)T}#+8?imY$1mvthM3rj*Y=mvHZ)d=@@gK`I-(ir*ur-YYO(TRYnSYHPM_I^4DE
zUju?OD(7;hsRp+pC`e!rT8fg9rsiC63}JneI9-xCqUNfd#Tis%)Y-So*Gd&MuP1Iw
z@jaJAb|Q{P(!3SoJWI`p=Z?5dehkw7_(Smn;A3U0eE!*$cpkp5GK9}oY6MROE)D7{
zU6MA0r>Vc%qD1DPj%B@#C}m72bZC@ce0teJd+UMmHPrQw6GVuX`-;Hm>%IgWRm&rp
zN2DL7A@U`7kb2~ek<OQ_Z<OZIxxZ(3w=T@O-#}aX+bbQ|D%`s_Lr8~Tr8d7q?Gv(6
zv$p^mNY=$oFwvtiD&o2mAPfgp@V#=8U=5RRDKA8wu4@sb`FSjrXo?gFK`9o#7a0%k
z`12*fTzTSrOBlWQg$N<V)UZaLNj**U%|*sT$W9$t^XU@RtTW5P6yuIUZS4D2J)NRK
zvVd!Lclm!B!ik%L+D$)6umlhYyz<o%GV#Zc24(9;7rd&;CHFtzf&=%EZPLwZG6B}I
zy89F#<2s*x9pCpyVel+EmN^s{d0cV|xGM#h-0q4s5Py9)eqH^nq<c!b)>`n&T34*9
zdHv|z$Xf26Q|}K|3p(*8s(8Le&r;?6IE}}Tn31X3yt`_1le=_%19Kct5WKZCU;+)H
ze^VvspWgLno^1K{=V|+UU$fr*?9E+(L~H%DPdWB8qO(Pi;ywRePNF1+L>pR#KZ?@r
z3+GDd7T4xmyRLi9>51@151vdUHnRS_x&pQ%?(aBL$x%>vvFXe=;=(Cu5uZG&>r!<8
z(8<8vyRYbGX2C5SjXGNrKYstmuKwL?e*J+n&3Z4kA}=C8!I+w@=WJr5VpO|0Jn9xs
z^fE!6W`bgJC1yslxe11?!vzfpR}x;-Sn}F_$NFCB_$m3mpb*3sIhj@>Ac<kiWU_AS
zc{|(|tTnQ76%~|I&jC<~8(g8g$6HyTZTc3TKsX;``C<Gf*LA=I`sogImIu-GiR2vq
zhv!~szp-%Nh1B)KHjAk({L}AJI+I~joBh~Z%5etM7QxJy6VIJzjW+|d-uKLhXWBGR
zpwxxot*x*7*=yG{PaWO8>%(0)?s`eg#Zv8Fz*$dEHeZ$hGsw?nRu^cE=FD&$hHaiX
zh`}eJ*IeG2Lz4w)vDz7dNv(_LPmRUAd8na}0Z&Tj%eW@-j2K_PFosRJ!8_JudwA(e
zxWrFMcLjK(rB>Iw!Vq&eaUA@-K;2Ph1<gdumckyoh$2gp#VejN$;vktD;h77aISba
zOG${M%7R^rnBTgAdA^xCt#@UQ-{pSxiZ*xGfiZX6dGbn=F+@;R{vVz+$F|j^+<UKT
zbE|8TZcp!=`?1$v<?>sug9oAx`mV;j%G0?O3-okP*Vci|<Js~=E?Is7@ZAd?EP?6|
zufr>m1Mj7*8_Rvz5T|605__&O=f|a0o@z&Pp9qTO)reEmq7h8@T9ZvCR9qo7mApEM
zQqqvtUue{;9M2!eIij&|&s6qepWIP4-FPRtz7*$Nx#Lp(!^vrv+q>Tt`-h>&j8orW
zS3rSU9O7Qzpi6Jt?2@g`JQ5yI%P5b(P_1LU;8eoU;AxlZIqA|{*1H5jzn1d(Q=1<b
zF@pl34Ta;UsK-H9kcFLFz6W@u@rOboM46D;ywN2$t)mcLM$#$<sf(l*;Kn&k4c&bk
zf<*RDP-xiZDoN%k**)bECR`BQ@-P5e(=Rs%Ut{5%Z>Nr4N#u{Z7G?4c6TWz03BU9&
zhK+Dd9=GL{HLeyxvZ|(<WwRKzcu{YoK$0uaCr|A-@-+%kAdF>Ae5@IQ*dn3VO-{MO
zQMOxDWvH=!?M%2sK+vEAPgZzJ-7DqG)LJz+X-(GCr6jpXxRIjGYN2_xkWcrOgjb^L
znlE&e@UC;!Ar|C)PRnlJ(Y2^lOab(5jaXASwbUWJ!(zxwnp@`iL7gREQRlfZk-CO&
zo>62}@((<`ETLVNJ22^gQA=1_k{Tz#=ydV3B2xZ_5KB2qpNiQ~@^ozJEst2Gh-caS
z583oQj3-Y4*ghiWHlJv0ZvK^3O_}52?p^;UxN+CAOpGP9Sv;L?Dz7KL@o!_@&X}fX
z7}tzZEYnDSs-b#LtyKhD$(f$$FTQT56EhwHh#25FqT|_&hu$>-d+BvUv<M6(cXcYf
zSQ6|FO$9Syl0D(hnVse^t-4?xA+JYZJP5R6b=NoRu%6Xcp{1k&#c+S!R0>nZ@+Gu<
ziRpCt_3VS530X_-HTHZ@RTt7|eWBqHb*#Z<eg~TUrcRgr-ha8Dz3h~G=)|mh%l1ZB
zj?4Gr7Ev#tx)MBFu{QtY6)mozB5(&si|&rMzrigutOv<xvcZcVO~Rr9mLQ3OEA`S)
zWJ?q*E@i2*Ftw4#=TvAHGm;pa+a<wR{U4_#W<(8&?o<CHV>PLuIMz_l*y|nPOp)a;
ze(N*q1fPeAM*CgHNj#yqgNcL*_e;vROwoPL<8OF|Byml+koj?L|3zHZxj4=jgP-jg
zD75c85xV^+67EVo@z%1ThbQbmphh%PFtRq4o|nENQ23!&a#uH_RPrpoJ4|r9r;Zlg
zIC?ZwZ9w&hC&MZNAIaJ-c&$h(B!aB!q`ofV0aQ5H;}(t{!{rObq|p;9KLx{vwL9P6
zZ;VoE9hRsUz_1x?VY=oI9zp2Gvv*aypZu&`-#oeUf}PQ~xX0&;V-s%S$$hRcjM6|8
zB>x0|>G$$jUkVe?xHL>a`n-(@Ol2rdHF+mD&S`6nbDSRgq)Sf^hX24efk<*%TB5aj
zv{5v~SOE#qo?$b*G6BJQz-n$|i?iov+BBX$GI@w-_Vsg+z9q0K3V%&Qt*fc6a~Uky
zrs&|U6j5EN$FGD_r@z7F-TW<U8mgR0m4}JTP^Orvu?WK^3x()R+*-BY+R<8r8#V4P
zJSag8PrYc9yc5rU7&B&R;F}~v4hGn^--&3RAJ;#aVN<D#lv8-8?{hDnhs8WXT>Yo9
zv^W&=36%D-E()%;-){!owZ3)lt842&sqC+03U`09X*!#FO~8&ws+$2w%!V2(cTp+U
zSbwcb%3~pc2YtYP>E#XW?n5<ScE8wn1dnF+CAXlXFT7@2gI$qHxog(dx=TB2T%l!?
ztGwY|z&V1LDx-eE%OD&cbontXvU2GHqSVzT8XNheF6At}D=WKw`2K(R3J)jwThWvq
zcdMz>8x7B_H+}u1x#^6$#A8V~=;^(GOCFL*qD<H0VbHMYQdTIG6PIY(jh*av<K2(A
zId+$kfh)omD>K4u&UL18)OElLfnRjMzz5#=CkDz4=eM)A{jL>X+fF@{3a9bNc>18r
zLw9{&+HL=1W0mgi8vy@t{09F6c|4f{HySvL*?oCYBZ&o6<uYqmgA0)7=+R=<vrkYi
z6>x`N*muYkz$wL>5d6+a)TKBz<8lWNv5g}N<yOUcU`!MfooD1b2N#F_@_pIi>F%Eo
zlf|+O%DfuJKowg}reUBI2S#|McvK4FI?Wt5etN`qP%&==6Y67ZIlJ<UlnOke6qCIK
zck=V6F05e7y{7h7SI^j!7hD2wNGS^ZP-R^5{pqRcicC=VYWVQaFSoUQE?@9F!csTQ
z(WdN^w*@saIM8Q_dT^qt)+O+IHPk5S>X`P54x6zE`o<1PW|0@o&9Xi7IC${jo~MD~
zyu14Hofu=J*fb%Uk1|UTe<%fyVX>EhljaJWclemdRqT~44^qt;N`kb$t-mFxt5}}H
zLn8zn0_tDls)@cRK$wr_(#cN|g!CoRf0g)>6O7w-+z{Tb?Z*@pBCRb^1Xv*(4bnb%
z3k=eE?SINK6vL$ngcJ{~nAz}%5?4jYs^<G1@m=N_4nsOLnB`>^t_o(Ou0aT={Z#!r
zAWhh8(NdPrE&Q+kv9T{xNKahqavyW)Fq_T?6=q?_I#4_@Oi!xQ)uFyEMPQRa=ykaF
z6`8=*uR^joS*LR?*AF3@-V`jAPwvS{1Xsaqp0&mmFrW%tB}=)!p><VK`v}P_kO}7!
z_PxOGt@1JRA|Z;$&t*L9i~8ZMD%_g*hKX0IqhJfN7F8MNcJt|<4mvxRbxX6kYpXgF
zWtBG;Q}R&;I%=re$$1e1R)h($eXKRC<qn92FR^yJ%htEJU#MN}-hJp{g6c4A#Du8U
zFEDBAmNf0WpryiXc=bkC#GSC}nzw<^k&Z$_DAfojS;sXngljJRh3dvvY>Ob6p=2{_
zsmftsYHDul|N1}O-S*mdBXXUaR5LPr5&gDR<4#Nf0JMrMF(bP6_kA8(B5+%N9?@LI
zk0`@3)42Tx*VMHG#-4Tmcw&qWoOGiH9&j@Q-BB44D7Y&9p1!O?CBPY|46nIoc+Syd
zS_;tK_T^o-|LyI&zI;wxmv{fs>(&hn&+MGbVX;HycYK%_1qTVxmr1yG;t6XUmL^S#
z=6zi*yyTr}EDmZ8*)-WaC!P5^uplU18FUeP;82j|=do5BOn8&mHCYV9;|>vNo&YTr
zt5M8^imrAp7rssIbt|>*Ok>Yz0Fz(-;9-|PdIGN<jR`8c*i?EQfh#;c?sCr@;2HH^
zzxIbRY=$e)@l;1E;|8x9!Qd=d3zo`fNsqDU<oE1HK`>zX7oYhY_I?PCE*v_7go?ZT
z`ZcDhhoCaLMO4mRqG`cHAAS9;>12K<aa>(>eGPM2HCw@EaSD*a%(ry`Pk~vY<d3sn
za|X{V#f32L#>VUStG~vxnhyp-=nW4eSZa-*EGqR)O|G%6#nmFPr&zz7gsCy*t+0!E
z8c(mXRBrxFc&+VTZm%`?0(9AMPc+)1yyFV*$AIr^n+utbf@Uo2wG{|G8f$`&Poi8g
z{%L$FP+W>7ObObWgz=N7hW2(oc;uMdf4IlJ>av}#5qJ|?l<_Pjjwm7H5M`9+ROQ!v
zYC00`%UG;A$E&{eEvP6Tx7%EL%E?KTOfW}?WlU?U)H^9X&1|e?CFAtP-&ZyFJsbo#
zzTyUjnRM<lS6P2G3=zOl?Sw^~ViC=s>UBlpL1<VBaK$NV#rBJ-Rk$#(I?q+#)a0t4
zzT4#wKL*|aT;F(m|AqXh*i=9Ox`sBFy!>^pNc;&I9(;msLCEr_PGJZbvGcgh5C%G&
zW@^N9Cehx3G*SQ7>V@9l;rWUR?V_WZ10!z$G?|!g`;il4nZOp^v2o=A>5XN=0P%W^
zO~^{a#>-r0&BgAn2lly#9(lrDeZ__DbvIq*GS&5N=!v`BJh24K>MkU<H}&gFmy(B_
zT@b1o8K<oCCnmx4^bql)m;|iz#6yFN3HR!DH@=;V@9FIoOR57PSvY_zI@WXv<xB7q
ze3YVJsBC_4$R(I3(yVj0r7esjdn~Z}Y@BcbOw~Sls`#a&YA5%VM|qXvqp|`3Ez8Ou
zKgp7)Q4`pe#TV&+{R{rQI89K>?jG~@3R)WVE#GN+=^Uj*^Yr%SnwDRvL{ZVujN&Sd
zl^qy}zFRzrsJ%sF#!%qm%`k!|Lf^?#ZdzVs03?8JtJR*DvpdnX8s%Z_u~vKo!fSb%
z>*(xo%^mG1=zz71EjC9O6@_*JFDaEEdS%F2`SSUXpSWoFJ__qqiOZG3Fnt(i{s|0U
z7g?}QDX*dPiE8-zDr8HPpu!6in5o2)+$13R)~f|3o-hYgu>5xhWycr4{B<{jF`%=v
z%{_%T#+UE9$Gn)Yz3LKo;kGTVlVuz=;O4%AN8RAisJnQ_X15Oblru*jfnFUuIp|ii
zv|{^~jV#Y#Yi%aUH2g^dUPZi{ATGG-zu_BrtWmAH*ys+5M<?g2KfHSN>PUEyXea6G
zr6u+DOG^9y_?qh3^4h=4&*w6AO&zYPwwew`W2$w8Ae~i~!MOmE&9DY+a(oOe(YTu<
zlB?JyO_CBRpNniU_-VckVxPkVQ2>-d3*6As?i$e!RWa$xWm0SCDUKOKe;^=}Go4hE
zn9aRy_wHSPapMYE+nMMjE1Q*4#}K5KMOw{3YDB1nA+3iQt*zvo%Idy#oge|sxc0+F
zZ71qELTD1in`b+>c^J<!$~rYL=ypHwJ%Txnx;NbXD%aXt&)Q=&lax0KVotMurwwL|
z)e7P<EKM^hma)!G!h4QDblwU~A80`E9nX09I>dGI$VP=yX6rae)XMi|T)r9`Yrvk>
zW9*UpNK5;+We*k;Cd)1^R@7cdM*}ZvB|6LGUmO}DYCLXFtf94}!Gl|Dpg%EJjjgWc
zRd03Gt*qOF5h=31<;5}~5-_E8t0&l<yW&=qEG+-fS}E%@4hkG|>^PPSWXl-XR3;3l
z(<$y@Wl62-q_1o5D6c;D$2{uxm0j6it(h&jdw&k3vT-L;BF0|~hEPygCw$Xn0mWuK
z>8|n$3-nBv;A3@@Yrf!GH&fl^{@^eF**)~=9%Dw{|8qa;S}W^ZKi&<qgGc;30uujY
zrJOGGjq(bVY}GAnEyeBy43gQIVHlD@y40@&jHtqejltBl6!dleRy-}t&3}+R*SpL}
z1iB>|m?uw%u4j;_@HGn52Luf!zG@Qvx_f5bM?Z7iHP@xxAG~i95vyZnHLAV`>GQTF
zRg-c5{O_mSXTLe%e(}v6?hUuJ5kv*SKT3jsE*~(5db%1pg@KD&KN)7$?(4suEdR+T
zRIBAr2t<YBz2H8~l3dZjo2BN7Js=5}s7*LA>GBB70TzU075l1dW{5LeMrBsU=mI*H
zY=xl$?<}9qZN4n!Tx=mY8e%OivW`;1Nc2&Eh<<%$-lZ;b-7NH+^w!1Ixb4fT;PNkd
z{<FHg%%78Yez2^$<@6_{aBga2IYG7p0TX;PYZ0}l<5f#BY})oS#QHEcO5}WCKRyDp
zjHlU>@NPM+M*c0q)5AI{#c)=PZgWSQ>sYgzD9pqi5Mvb0$La&|Z%igOho*`d#%sk-
ztZK>q7kA|%xooLvESVdt&VPk&dA(UE<jEzE2rOekCEgKL%%3px3PNWB_9CY1#E*-3
z?u25Q0ilQ`>EVYSb&o&(j5}}RI@gEr@TITc<GK$Yb5~xv!(F`deAn5EJNK$)cLF>*
zc;tlJu(rc(M#0p8TW&u};qGH6TqPF2ZCf_Dmc}}icnkDTnQfhFf~`R$X4*U+d#Y*B
z7w(l6!_@EBwwyfXfp>!{j9wr8=`tj!)7BtWRTD~R*BI0|fw|A0L||u)zitU$qUWM3
z4yAM9_z4u<ozB&@vi$3<SU4Gf`*$<GG-nDSl<Y;0KcL!j2hZXf>&>tL06+jqL_t)}
zyzxqcL~W*(!ax5l&84Q?Mqp<r9V^j(tXS%TGCa?gj+q*klo4ez%#_J5dPP(7z9E>T
z;OD)fOUh*_Z<r^|+O4WYZ2=~>W#Ab~4XJ!k=z<?*jcZ-w#+~j!|CIatfBw9?@1e(B
z4`cS~t1fjl#NL@(yTi>rb(is9ddEO&aL_rihRQHTHFcq5#J!gBs#MN4veV;zcn$lx
zQgEeb*A^4`8+p94Lc0)$s+z%sK2}ZQ<j>-3<>M*cT^Ks;l33;wtZ~=4wxn!Ar}*ga
za_woqwNT$up3)TM522F<ysQ*_&XPy&C}&)7To-N&2S-PVd(!KIrh21$QRZ`UIPtj;
zmZwtlKU3RUTb0GSZo#|3tpW<~v8kM^!rBCRCJEnw8Mu(g65O(CwW~+K@9R0{`c4r`
z0Gt!=7Sny-;t0l3%cNM5BC)Zl*{w!#EqSd_gp)9VU3o<{=}Qa%Z9tO02Tu?<_~HGh
z-J7pj?b=#!nV-wHq-SPs#@hZb%V}+|Z(o06WTg9znXvHd@cZviHq;<L0e}Y9hi5Z;
z@bW`=bXN)=e2x9lBam?nhAVm|<3<`j<<2jD-F@nxK5IthTHODKhT%8yG%AOtKk(So
zZqKvbt{L8>7Q^oemU2v@6o2^1r`(m7>~!nbbh>Zf|FGMKa;j@hySwex*SJeAI1kv@
zYhGj?fPD~+i16RLHbrw$jCRyD83wgAH528`Td#<L^CdAY)H68p>5bP_m6z|Rrt_sG
zLcItA$dymP@|Yrvp0q{v4QN<#!<a;<9750<JO!hL@Tj000(&X4LB0)vtUGA9P|+k|
zZa25Kx;C^WRduy4D<Mu3l0Ky$u=`NYxI550;V#?U=vo^pP~7Hz<Gj&+G5#wO)TCj=
z4UN|XAEn8^p}GZVha?!Y7YKnlU_8nI48Spu1L|yyzv@piB-A}!&~8CSE-U*XF#r0m
z|Lz9*hur$EHLm+ekNehlA3`{vagRLljN7)k%eApysJW@m9q2yp2GD$N+tB6K0;f9q
z=Fs8e?kEF$4X&m)zUmSfk~Q>E(dA&!w4PmBUEd2)9pbt~NT<gTjP!Ik|6pzFj#)XA
zsEXAuLsO*pUvNs5uXXYp5;q$qS=jTveK3{?$0G2mk?ITJLn4$GdQSm&1dIB5=eAtK
zjK}1+=WDEM!Wu`vhzR;*O^ME*dkFC$aWx1~=ifkQz~IViAmKtqFj*Dk`o-2GmUK@K
zbX2iS5QX6Z+<Dl_CX=aQYb7dkZqoJcJ5pKR;lC~oeHNFfb@V?w07xh@Dn|$?BC<}5
zpJ3cb7qf&F=4zBKcU5hhTs6$t>C?0B(Z`>H8F>_f2a`pcGt~{Q8V`rr!DGBDrc8kF
z<I}o_pQ`E(*2;E5j}>f7&$WcHhOIN|*un1<E=w?UC=D3#THEw`9<R92{=}c%P<MQ|
zc=Oysm=b6NA9<F{&4&_@3GslY8avDxgO@QrJdt<be00RUY6ok$$uBxq%FGx}Sc~;z
z5LvvEvhl<q+o2tpaBm-P(Tub7jI2_k)UW_aBri5<%jTz!!`kkq7E-@+_s4d8!>!Qv
zEQ*d=V2@m_TQvF>)i$EWTt)Q<c4}#X;FSpi#3i<&{EBrM$`XS?$2cuAY`%SBoS&0;
z*BCk?H81qyMlC`rW$j{$3tobwnBSraD80A@!>~acshK`<P7=)udheWhV^e!edo|32
zEG$NsfY~GrTL$JS3)7*N%DRhxDSN~gv5vR6I%vvZZ?8Lv!ca=^m^3cUqZ-g9aDx_!
z=2uo%yVcAgO?V@PXqxm*&tlMX<O%R3>Fu3z-+XG&ZCPFIuGrb?vJ2Uo`9%8dhras0
zZ*RKo<MYb}tYFio`H9{G?{SI3kHFmgRk9HUk78iJu(4FD52M)OVludtW|gUBF?EV@
z%{r0?YPm>!3fMil=Yad8Km9v54rAXA|1p8k+RHpz2E+EfXAZdoSpOR9*n$cr(I9ad
z1`#Z(n5Qqk@O*d4_HAzO!ESf&!%w(s6bG-n;c9o?RTsM!Tx+vLE>20YK_~ipcswKC
z!{YZ1PSgjMC;^t$E{9e9`T8PEm(`lbnF)K4eU#dH1mz+|6Dd0kUWOXc*pMJI%N#b0
zHI#_>L~nP&_8U=@)VjhGUxDCY%`;7ozGg2z-)Ez-%&2Tx?-B^@*ox_lNI2)a65NU-
zr@g?gPusZWBrXzRCB)#MB{xa%GM|>#VP(@q`9ivGzHF<xAW}bVxmDk|5!O};5Y?Fj
ze~LOiK75q<3d^_6b-tdWe*ub%3<32L@Eq-}74Ee+UWL1JxqHW(U*oD3#|Zwo0>NG7
zC>hN(;a^IEBFlAaT`dB8If@f029!<RmPr!SR*G&E?c-y|=@KRbIp7xEg^G5++@3J1
z>r(RlCUcIb@B&VpB0$+?bf5Vmgiaxey5cJ6jN#!T06bi2s{)70AmeW!yt4B{QsYcX
zus}GK^3q@POCQP79?oD&0^e1l>SJ>Q=LTE*_4mZP74U#f42{^kJUXW-k(k|DRbBhz
z<u&N1#8+xe(4nKy|9hVqaJO8HF;pIS!ZF6+L(dQp84ueVcC?|ysdQ_%Y<5}3>+!=!
zTn>w}H@2ur5sV`0RK(CE@2&REPUI(+j$$pA=g>1fBevVY4VSiIU;=7PB(v-Q@%8WZ
zyN0T?841P5O4drHv%C7wKP|=WkiM`S3A|7jo(zv3{mqGr;%9<Y^_!vPIotvE6le1T
zVaoj$Yt^sRx2=VMOoFn}{P-S6(f<qv(j!NE+&%X{<a+yt@FuHuJ<OL4c)<SlZ~wO2
zzH_Jh{f~UaeP{P~+*o_NL23cqTfp0AbacXf@YjCRU3JZ?+=-ESch@)WapUZYaO_0C
zn?>M%*N?x&{pgRq#g-Q+{)@2Akk9biUy3DB()<8UHkHjL&{jDR@8u_P1ur_C`r^AA
z>Y5w=unIuP((P-8B?wG7Hh_t$t;#Hv0;ksJL5tZs3M~&plr%imXj4z%rX~x#5X}!_
zRU_6}sKvgyTF;lo;@p8IxCOye$ai`&?<zs$N?iKH(imfhK)m<(n0vZs%xzo4AV_PU
z!%RyqNdL^yf86yyx_)Z;gXxIzVBhkOlqbg@W<Bs9BsR2d6+I3!DYlhJ{0mjx0zSP9
z)YJ+yLoRi;TJ0x)!GQbRlLcg+2)K8B<6igafBh1!@a68&J<ozPSkgN>T<6+#?%;v_
zropXd0B4x!rdd}yk45Q`?>*yQebWu@vdb@X_dj_EOT*(>RjS>8fqZ4;d*?gf=HB$C
z*Xm2io`(LMQwJ&+BU^mr0S#bh!9)r<J%}V!ySpMk`O2ztX|zoHEyi1WB+9)G?*Utv
z6b%m5-zSC$aFZ4|2}6cN=-m39Orlk;@aPv^ICj!QJI?<7S^>ksI(jt27rQ|F%bLKh
zj)`AnN?_XuOS%;c^Qw<!p+_O4A^pJuL03pC`p~&a)$N;u>4EMlO=4m*%U~#~s&Qd7
zp&+U+^$)XHk{0la$>T<b!XjSEB1R-dl>W-L4KVxVuBjp8e(IfXap!N|;NJSiTd<mY
zfvKWtErpd#n-OOsi+*KQyQ`~P12ILx7v<71#j={J6pE3BIX8<7V5C}R26sCi_|tck
zU;UvwUlHx3zV$-V&_sCa^laE6Wut<Rc($B3)u;SvjA&v_;=7=0&9hn)rRe${jafNY
z*nKe$FF2v~$RaQ`RHj@x<q%#PK`fSTHA(}v%S*Wp?FsipH{XV8Cj?tQK0S*tR|vOs
z)HE^ky2CH{n=d1y#gOm~r<6s6=R9t+?kVXS7;5aC9%BpvGo?72e{4m_ZBmLbxLO*A
z+nGFqVC20efQ*bs3&az>te#OY%_3v)1u<;Ary!uR_@r<N4$<P5@Y}v#EBL$TpZ~9l
zRrUFg)hbY*gd!uu!l{JYy=TB(ys6Q3G!W%mFoJRGJ~HmQdnet__4NpuRc=++I#<S=
z(9?Ywg_pLU!EG-F`(ito8yUNTVGBzRR<B!w?h)o6Z?$gb%A*4_?p5bE5r_!ovfzr4
zeDB^N*V8xYF4>5Vkx4*q`*?i4v2uR=(-eEpV$sWRQq!?zIAl@w*kH$f$=3RvfFhkt
zC3<t|@&{NHd@GaYU-8*80~OURW!O|5-50zhu#e!8a1U0JJx}j<jllTX1KlVi=iS@i
z@pkvKzwlo7$xnXL-T9f%8iRHmg_6Y$fY;c6;Glcm>u-0r{>V?d%(r%%W&UvYQ8zX|
z<vxSe=Bg`py7#{K-EMtd6W(v=F!-J)0-V^nflbx1IbFw8ap3|EkL!H7Q=+0e9VR8{
zKsA`FinyK2(r$xH%t%znGwMM<%WKT$Hkfn^__|R$gVGig-0@OpEdHP*7w$w2%Uaf7
z?m}(Fsvwb~4U6+7SIpT<X$f9&oy@0?&r6|%7MRMeY+4nTC)lhHqb18E($&Oy=wxiL
z{#k7h+@hq@umMHb;C^^s!Oi<Vi6&{T%dl%qP*&yY(>ZtJ^;cqS>2x<;cR5oV{0l%$
zmDiHb(@if}8s>6u0fQ87xn->F=bI`|NnN7vr`YB)X??33`cn!wO%L^m_MfoJmH4r_
zM^Ny!F9A)-*U!2OZ5J;jFGz!BTz!=SOtggdnTPIm%`A^dp(N=!dJx6rNw;Ck1r~Q>
z28C;9R~H6A0w*%xT3|5si$G+sT>7+!tgcmuNMN@!p74EbqpYMS=PFTUl(vbBX)ESr
z#+LXADeHm742p&CvGwAX)wS;YEqJ{!Z|!B<-7h|H!oB5cwrf<oX-5*8-+?t)!}=K3
z;2eCfEgOm&<#7x}FJ8&3yVl{ofwvp{zu=`$RU+8_=R+r5J4VGVYpdPx@Vxufw|elj
zNx56D>vVO^@XjcE6L^@Wv+1r}D&0WQ%O<qPeGznZ%~AJ<xqgH{I_-O@@uBiJ!FRkx
ze0GdFl2JsX;(0*bsdM$acB{Gnq3^k4$9j>C<Um6~ydYU3U54@tTA#xL5-**~15eF?
zS}~!Ze=>fKVPqa>Igz~Caxiv-!&qgB-*ET0?sqrce4QCfa|rE5s3>3cQPQ>5QTKEs
z3_1~i-%Xo-lW`qaUr%0AdPzciVzzQ!wkEqH!`cXAe56sOVcMtiJ|_J&tOJ%?u?V&T
zvVHl%ldcKv^flWW5f~~=<C6t&J%_qsIG7MDD=jQZUYIPphQ=nhYTarO4);O)QnlW!
zyLS}VwORMp8`jzzayvhSJI5Zj8riYF&b6=~v=|V%N5G)GCtExCH)MRar1)h!?da&3
zp>zIYdhqD|x!PiL3N;tr(!*f|Xpu|)c|s8)qpzQhbV97S<I6y_J^S~$2OfOfO`@f&
zz(ugHuOE$3jr+g{KHzS=<!1MR_r2fU^;Im$VT&Q5S(8B4VJr$a-+G&S&FgM+V@$^P
z-v5A`KqEOsaHxLV>)TeZa#vk_nd`t!a!v!C?@CXpb=;*%_br8vkhh`sCh3pvtk@x$
zE=z`zQW#JnBQk`z7lFs3g->;i28*v0H<;y$<TExy)RC>;+^X{#(2SQy{}ZdjDGelw
zjC<nwnuE~Zu*L<OE(17d+Rdu3viX>ZCTUUY8-M?KkJMTFASWb^ox5byEA7o@YFu?4
znneU{BkF33rz|up$vU7GT-FINlgH(Z{CZDrxao=-SKhRm@l@`r(+lqWt(#yjvhMPW
zE+8-41CldUfu)Ax>|2XXmEe#wxA-&yy9W`!5v){)056?{`p8!#dNb%Kjt;NqV((&6
zD{zu4xZ7F!R-<lK(zuXTx{~l~?Z`1{CcVkYN*H!%40)2t1r%ztuB#*K{_2BUytbQd
zoh(@)K<2D*rDt|4!XwAlL2tjI*<G`}+O=Z^9y{5L6~{Bl2`2OMvN=~-F^&fj%US5J
zqXPxTt%Q>#Tk|E{d8-{ly*r=J9ihmm=DrHc@oNl|+7K1)N5k1)D!mI1VI?u4U2f0u
zi+Y7@vSjUh>>(U#2#SWw_P{`|>p6VDwXmmqb6W@Nxu;q0UFTMHuC+;3IAbo<6r`Ov
z^v??7cj-*u=ea&$XUZjp4F!U6!FKzc{ZyBYtWKvJJ552sJZ|CrLJylK*>bC#Wdf@k
z@oTC~yK#i;FWh&+bvEJcBFl>uif~;`SO`S(j~+PWCa?}Dcu{H694a@!HiY$-wpJ7J
z?KzW7LsiDzc@J*U+_-6H8?-;<8^_(#C<bo1y2EWd4`z{kQtYL&>89j-<_fajQ(FFV
zoJSVvr|9FSqw>ST@cvD7+K<r3RWZkN_S|WBWH0z0KX~Y<d-SoVjA0XFre%6s3t3rR
zgD{5Il$bPNC*dfEHCjjgaobH1uVEf0O-ggaB49Iw3+^xqpBWgvt6p`b+j8D!_#H2V
z#`Ct-i8@#vc`+iZ+)2Fu^yx$YLEs@t&&!-3RHj6Q5J<RU-ZEjydOG^F9~x&~n8k=1
z(^li@5D?wwD_sKG9zOXMmZ71qCy1ZM)N>MoYQVFgeG3lT7es<tG!j*wK~ZH3B78h9
zqV%Xb*&`Wx($HCO{~RQV1PNk7R#Y})%|u24hKtJ}N}5zwjx}9;34!%AOZY}{qz$lO
ztfeK+6Z2k{JT-WtR<U3BDLhQ&-BJbJmVc@ITw-7tn7GoiG2x}bD1NM?Qk=<O*)NaQ
z74o?aT%0Jmy}YN!JMm=@KBli{elV`EzbiDPQ7ml%UXlwCm=+so@YP(FMkwC^pMar+
zakzfN7WmUO82IW;u*ws=ssc|C0odq$ggfH>wFI@GF>Fu$bKh0|j-MZRlX6v$1V%2E
z^L+5+!HT4@|9DSrI-R~Pi9n1t8qRvoxdG@&W7<`*6sWBs>%RQZDXJJ^d0%i}d#u-O
z@2YnftP?y`Mc^ofEcn&lx!UCjc73YnIJ}rF?!+d6kcloevHWMv#`UfOYd%e1Bu+^*
zpljMHP|h~GFCn-$?#tjNoOAUQ{%V3Kc0Gn%mPFyV8E;JTX<2e%c3O=1iX{3<T}bo8
z0D=82C~E$i_B7dOqg|r4O7T%`wQGLF7mc9Ee*DS3ZVWFgi+2VbtARm|dEkHl_5Wt+
zNd~X7USguLLlUsk93bI5iQJV2PyUKLU%2xN?&#5@Hi!DTf|bp6HFz%{HKnk5ic=5q
zz5;Cw-nfo2o#R@*neQGOeD;2_{fFxLa?*?L1V!^6C>y%SGueEa@G9{nkq3fD`=*F;
zJnk;vj<yxS`Ku52x~H)cyz?gZ$ri(=0n4F5kt9in_a7vn0vn~3xHlF6q6Tr>>P{H7
zHLhISkBN{`zQl+QG(+F~-hgYwjpM=%b?#{YwEH|-s4W|6-L+S=GchyaKuo2H%A{Es
zl*l#N$5!YEgj2r_M1L+kbSOKXN_+^ib!*(QXII50er{Ul(^duWdz^^KhtTrZKxE`9
zmBp(;nxJP79KdZT;|37oE13)=fQcXpZ}o?VfqU|aCm8(I?f}+!A#sX4W#w5ImTI?e
zf44gXQ?nLVNeS&jeAC`V-{)WqhwfW}6bbwG+e1V9A82mg%4lA}Bx|s_=czKn0fq=n
ztFA1?bzHm=-IpRst<XfLS(Gw@&TT9X#scv87jgX<HUb{yKI0&__yBEquns*%^BPZ7
z{mkR@*|*OA;2A}Dxal3$SIiDds&kt(assomXK=x@epM6VW`H;nYUC1_Gyz%@a`X@w
zD!2|Io!kK0#(+u21a%N(8W*;cxD6?uMGJu;eOkhDO*%@pUP~vs7LqE(M}5bT&ENLF
zVPi3!*v|Qi3hnGS+%h^{OyqL3nL$~=3NEYm`D+8$)uL?}tFXG&Fg{@xsGKIhJWHeN
z>I!b>cKR7q%j2@HIVTX~t1%0sVlLdgA-+K{2-rWmC|rb*)pmkwSCzT7?G0$V>zEL5
zql^T7m6KawEicziwPWt;^PJnzmU7YyRKTA%RTFTfj2)U1;p-^*zxZ2$wAgWK(er%o
z%zKtcoQ7z8gb&vF8XsyWW26!0LNq^1V4UWbHuJ6$16QFxmI)~!j>=iYC%&q6yK<>C
zH+`<{Ik+T@^Yw}tJiFEpeaYIv5Sn7;glQ3p6;B}nulj?E+r<b89>ExR(2GNf0syV8
zGS~D6o*8yE#389gxc=&+xb#!^E4DO2(|L!nqWVkO)yR@Djm0C+9<tac5>N$Gfw{T{
z7fKkmTGl^`aWSH<)`D{l>;m$t3!2^IheqA8!D+@Zu7Sj1xD}7AD^3EI0ha!>B0#LG
zL|INWahCY3B%q=>)Qt@sTn|+KiS}Q?&;kzDe5*=KGIUQ#*TlTXvv1z*10LN+j+<wm
zU<HG0Fu400-*C_DdD<O6cFg8Z&6_#kr=)f^vvlCAcYV$6KX||mq2QjwD?`iFgip21
zog*v@>1Ix*KzqkX7tdmf7uV5{kQ}-O;FqKq^1p=_!S5`$o4h<$5TW%={y3TyPpU`o
zMc2B0Mv87IU;K`qOCW&e2V1Yfn}zrZhwk<Bpv}c+6aYG5ZK}h{zIvMrwG=&v_1WqW
z=i}>il128`TpU*~eyr<~WaAo-u5+1E%z+6h>tle$aErj|`6a<jQ1uTb@M}+KZ8bY`
zte1dc#GV+RG%pRoUqM^D)~>~xuJ}Sq9y{!m=PD(pZ#GeA5GzIB6z?Z|wS1Hyup#_6
z5-<_9?FuJVLXA)zsnZWiQV1sCJrmVfZY4Ql1XxVbJSPQ6>#8+02$(>hs%p`Y3)f-+
zpHGCQpw;u}ZShtJVhNNYT7nfxv(_U%lQOD*mg=XxDaAB_#|Cealov}|tkO!H<ihOQ
zOnLfd@$n7|w|ipDg(q2V)=YrVi|gI%uUX^nePY0U^^sndNhQtm>D3puvwVj@Z1P64
z1S|yu=D~KN?a$0ixsm=sZn1j-JV%Q>ayP6qS9<Fw%^MM=62+=03*4(OB0g9x-pdp7
zuC1}mUAmBVEk~G(#_&cXe;`JKIVXv?Xcda8l}@?-?(^uYkMrFo(RZPol8&XLNB8tx
zU7cYLJi)T!o?~nS2#+OWuf~<;KpEPObRPz-^30`GHZN#y*tl^cv6ZGVjP{wL`uNcv
zcjVw9_>MALzi#7_^0UBt1Xp=Q^VfKcQ)yk6?#55;*n+y~cSlAJ?`~+=Fn-397kTlb
zh4%4H1GR~4_Kpk;g@mDy{Wyamn2!21mbi?&2)DYs(F#e^I6RSaPaPh0w_MWZHm_#l
zqcx_rq=jNQB)HErDfSSkD92i4xpv5st|;`Y*(PWe76MuJG=bP)rmG|m%aVWd#jWN-
zBA58_nFV(tQDtumDqQ0Oz$1e~do4^JOoz%^n3f6S+$1_XIX1Zee*oy;RSnd+&&zn|
ze)L@K#$zCcT>6Gszb%WVv_V>nr-5|mzkSaA`xm}|OVOOUy$ccLHZM()m|h9;|N5_=
zasTzDFR_kq%9vqIGI9x#aMjDeKE<CR?8Ye`5Ha!@BcwsVpYAahuFHlYj7Rw4n4yZ_
zUDl(l)Nx|qY2p|2Z`%RIlZEQJm~;V|W^nlw5o`(Z(u}Xa*d?ci*sA0ktoMV^gNM&e
zXesM`L|s{DFf)*4iSQdx^lb?tOvKiqrFBqNuI*g_87iN&%;z+z7c~q@D|%*yjQx;8
zL=*8D?e+N-ysm$67-bPLDZsfA0!u#d;1f0<tXtb*@|TBFj73Z3%iUhzHm1YMw@dqs
z?&-wW%#%E(7YIhUcBzDwIorHCNLS+&F*FglS=O<uZXFE)^a}<ytaKBT2<%L3mZ)}t
zz%Vm2S`Jinb*TZyDfScY6G#cWAPlT7z#%a$c0R#mC`JSZCYT<_Wfc0UNtk=1V`Y@@
znbm|g8ub8S;z{EvQ^Q2e{@K-&2oDZ#2rUs*3=svXb19VZZ*Tm_uJ<{&D|%}=;idjk
zkCD`u)_=PAJ_))MXq!mJt_5<8vqcP>Xqz!?DhnJF!`8NDgQxi#w?-IIDUr_-+3d40
zJlYzr0F5*Y4i7zpCJ^XPSH7;AcN8QwiFc7A)0^TiBuxJ~NGIKD<n`h&rJ&Vrp7!ly
zzB)JwouIa?Tfb#zJIb>m_wa#XygYDo!d>yE3)|d=)smZ;b7{PZiGl|fcM0xV+kT?^
z2)Ly71_ThVcI!56#6zu-OTjfpCzw0~Xy~pvzlFIa<&F<bJ9f2nJ6h82{9fww%mmh1
zURVV#RuEObJ?qL~a8^2D3E}HwpQgrF#PgHt5YLlm)W>%>;}FFng7rZJ>nS3pXR*ZT
zkp=7nPkRYkco=3(44b?Vgi~EzU7&E_`iQrqi1GdGM9_2Os42f?AvG6DU@o`&S#7(-
z+)ROId_KZVtJ@h5q6@m^e~b>cf0oNV&-eV5x>uO&hskbWzJa;de1{u<fNOs^Kkx%S
z0p0<N#UvCG(BQkmGJ@uAzsUtt2=1qz;XW-bVOH&0!fi84r?h+u>#~hFD}zE}+8~@|
zTo;FjcwMj~19LBX72ByiW*}~OmVo2B7f;`dm0GD2<{{cRKR0HvR<c>V$JAz}2rlwS
zTbKu?2%iM#rHM-zDS;}@n5=B9VO2}swGyRV@g&mlw(^9j)4t8dPYA@o-2g2x(SDF*
zdU}|A2oo&pvw1lBrgn4Cyis5of^O+ggPNlZ_A4w+`F_=QfkpN}r=n_r)#&UW!H#I)
zE`>5o+xl6gdF72>(X0MK=mw9VYZWEyv#z6-a#E6_Ou#jP<ukdegRKllZ6Y+Dj6!@4
zUnjfbLoyts5pI*jw-C<;&K;yst3gTOD{>l^XPa0;Ta%a){b$MNQMQI=446Ds!xH1y
zuX45Uj0a9lAY7;1R%m}#URL0Mr{Aik@DkjE3CQB5*2xm$97~R;QDC&8nCM*JMSKOk
z3N%kd^MW9<*kJBeu_W)BZA}>OFqHD0^jG>=P6J+(QOg#>!+5psAjS$YMh1_Zl9FS^
zl8l`biNY`Q!Is63Mh%Es9z$T!<|Frb(d&~ec^bvDSSg}51_#mkD)Y1e9~ie1>YJOJ
z-R-x($sOrA>b~%~f5Xn=Whjj|+osbasmCeavB0p=JuBa%*<u}Z&lCtcA?f=<W8T}G
z$j{xv)#r8VrKT4xNlcaJo2%1R*C(X~J5Gl_a@x633GGChy|CWhgn*t#NO>A-dnO&Y
zH(b8TUAC2=8q|D|*-&kTNaRx_+gaSvhE5#^A8`dGDxci>w1zz)4G9A`>L-rsDuBSJ
zuVyWtT>J*d=Uf>sggXZb9I~IubQFZ+d7$Xs*AWf1G3ly;GJ9{Oe`s$oJJ@|WP5<4}
zPP8`g<6BcwD^F?6>p*VoCr<PlOvG^5BM?qUX@q25k#H`U3P~@y^inJgv+fv(mt@kL
zW$=!%_FI-JS>BbDH^W3egKw<@Dm)*d6@opdUiP-$cfU10c<ArBJQCen_CrxyqtxJ)
zA>|El2#5-wVC{YpF9Xxqo;_IzKoA>S&u#+??1>Rb${$(1w_NKI<3lby!jc(jea*@c
zH3cCdz}g%TbS=b<-1cN&Y$b)q-xJ)KgbLbf$~a0URWUD`!1X=wJJAIGu?7pb4{)8y
z`dlX%iaA{0%PSTAl3-M&%m{VUq$Z{zZwhGIV+;uoXmbH3C77Ecnka#om`wEUn$^IE
zwpSyN)e{_2EQr$C%!q=^O%wGtjoVdudAwdP5*~OZk7Y)|@4WD?5`=-o_bvo*pDUZH
zGsU`WtJawFUE1G)%+uOfKuE4YsIGyJz`CnJB0P&yzK~?nL#Wp^cp-&kfR{@GTIQx0
zXW&AC30KiuQ<`)ohysfcs~`&_VK%ttWhnr(PiQjfZDm$m{0%JobMvx1Pq?1m!0kI(
zM8NmVNo`dE!Opb|p1;?3K=jUX9pqY^BzRf@`YffDqWC^v61@>quc-0K&JKf(jh|>3
z+3*w~fr~M0aUo|jY=FlDoaT8T8%zVXa7z-6I3OrxI4MiD>Jc++abfx_f-W#mvb|Yq
zE%|XxKzT3|77{DUgv2#kjo;PjbX`{x{Bnn3{+~tBJmaZu_~e*t*t*8udRYg{y+%;T
zgzmgmHN=C_9Hw??bO`|?DovC#SrA%RvDArmpF=3rw3KY^rY=|A2<@>xh`(HNlm`j3
z|D~H7+y!e`V_TVY<&VJR42(z@&*+2J4lu8uAkf|VN;f-(DQ1OJMQZf*tR{Qa;%C+O
z(YT8tV8@bs61q>bR6tCdEPP8e#lKo9%Lz=G&8a+>(0<cRH=8x)^Du1V<Ks?wv^-6D
zBw(r>B?)Ibi<L)<b)a6Q^Ly#J@(5>j532bdtnI(CoYwYWdJ5K`aWHt)1rvCaF_w}T
zP_)=HBwDm7a8xH%igsy?YCI&M>sHBlep5@;SfaYSIuu>!Ur#(4lw&L{t04YHQc<13
zlRV1>=Ca6)Z5vHl5D=Th%8olqpHdR-V~K`#dkI-5s=|Y*Q!b%6CK{ir2Zo@a9KLPU
zX19=Cang^66a+O<0T?iX%#6Wjo^t8NO*StYEu+?ESc3PO1P%q}Ny9I}Nw`U}t^P0u
zw7{FLYTbzPOBOjP0>Cwn+W&bL#rNV1_Ll##`ImW8cvj1HwOURl!AYQ80IoBWcz!T{
z%l+AazxXa&39e-FfihC*ts4wy7NEb{g-C5zKl?;~GPbniMS|dsDZDxp1mqJPeol&C
zdCr6AhMvbTwqx`H{UrBr%>ik6--QE*0hC<E8K=}E5MD9gnxcTXSZQJlB>5w-nJ>6l
z{BBfo^r4kI%nVN?>WN$8`WTx%@II_tXOCe#@Tl{MaE2vJ^;vgSJv3Y}6#)@p_99>e
z4x=u<(kO~17c%ai<7wA@s_5R($X3M&@{40DM$o8<U?X=lhB;DxIf`M6C&W@cCG#X<
zZec%6E|}->P#7CIea)_2yN>dwiY$AYuFciMgS|WcP~6(@_wo3-;H9Nak|))U2wSWe
zjYD}*8WRUhB|FU^Pd)tbLwHd!wzxK0#Cvj;U!?s}CG_pm<&G*!N!=5txPGcne6DBo
zZiX7&%IV4q?b&o?RU(TT7j2B&!z6zKW{Exx`ygQHaaX&2t-I~=4tMb61UsAIwn0!j
zGY7#WoC!Xvj)o}30BUS&b0-JK+z5NoZdub|R(5kg1Ch_vD*2{+j1ApZtomD-R25m*
zeflUa&ujt2Udf778XiTVux-wzSJk<Rp&=@HF48_${|3A0X8X7yl}@7$jyu)vm)w)J
zU>NJs=;*j175L*z0O6EmArRsz*n*Hs>ke;u&1-S3J?%~$KY?Ju8e;NPA~fiEJmKim
zR+Ex@i*?|E5Kq@uAC5w}#cMt1G8GoyLV176K#yunre#dQ<mm-RRP(U+Sr<&AO$B%f
zm=IW11aP#`5FHOtDoDF*k8}x;2-KFW!8%iQxzHLvBI72{yUyi_CZ8JVMw1CM1EIHE
zvw1gH*WwCHxV9F4L8!xfYHn$Z>6An>ObC4tV%Z7VQZ6xe7)#ld&(DP6Cb8%(^x|f^
z$)&>S6=!;_LHtbi9VC!~XE<{(6yu|;WhH{VMRE5SVQrh69VdGHDe#B3&^~J}KXUJ%
zpBQpe$DVQxn=g0m=WQ`K+GGOE^T4KvyU<ks5x%DWSOmINLEoOA8+Bvo_loswi35`-
zceo-7lX;>O&rI}Ttv*eiAS4l)<Lj*E#<ab{>GAHcd=kD>d~P;{YdU1EipcHx91)EX
zoDCJIQz<G~72_uBfpDX&T=8Srr2)J`Z9RV4%ZF76Lz);;OwJiCnUFOsj8LPr(2{eF
zf2CYL>3Z3E?z_(v>}VJ()MOv|)_T_KKH>8%=PzCX(-N@7D5X&REgU^g#Srdjli@@3
zaWQP#^&^EgA+=$xOR^^2#%c_wxRRyU2D|t{To6Ztg&G>2#{l6n(OB;?;A8HY{T6-N
z+#ciSOxg-MBqlh8S66z|Iy`9Vd_4<=r^`~s>F6sfde}35ve>m6g`W7=LzB=oFkM0r
zDHsHnESD(50&+Q)a7${x=$z<VM4dgT{5ulJh&ti+vaI6%{eio1YsPK9gm!9ivRPPs
zF){c`88-D<8Oje=Mp;<>Wnq_KVvGq@aRu-bW}7WXw|s8bJ2H3dx>I+TJu$~5#s~NR
zO8lXyrFJO_Q+lnNb`4O(fGPqod(1<_Jj&Qh`T>4wudPJ{Hw8n{IV~YepzzUpM@!t3
z%cSN_4`+W{=N_Jdq)#!^7GK9l)kpO_BPHBhhlW~yhkKeNmL(O!pfY)KuPYvWz=hCx
zt3?W-ympNXYc?S`ved@b;=_&6W-S*<wi4rnSUCnCtCh9X*H18$#S_=}<WP?b_l~;9
zdWPJS{qwBJ3EcK30%TsW$z>bxw9*^#t9ArVdS3~c1}N`RtiLU=?UFl=)qe0vyp8&(
zB7zprmA5!@fcgD(c*Jxfy{~K<C{Km;^XfV3!4{-bldM5!jd@iSTa;?275?Q=Fi(y3
z688Y5kk#9=TSeham@CWN>~N18>3-bRZoC-7ljl)HgNiJP%8d@W@$N^B?t6YX2AFUa
ze8ZAHHOcmTe7};NYtpF-WHt6_pCEGe4BOmtUu7+g0I-a5S1Qp@#o~D1F>1Xbffs>d
zynqN8FQj~iw}MU?1T{n$L+K6#cD74Qw4j6$Ph`#YZT3sRbROY}a6l=#C7kd%{q5)b
zwWS%vd&=+)t#8jCmjV}>DghUza*FM|0=9;h0zJuo++J}&srp~Y-yMDJ`HEiFd$ZHi
ztZ5hBWo#iZ2g4}80i|GJ-78qB4K^-fkO;C$+%KVk1};F?i}Ccqo(0!4lysL)A|H@V
z22LeU^K}M}@~3N`C{wWDdo~}nVtg2eej;9uVe!u)!4&&g{xaVy3;yq2w{Z73!}Lop
zplhP?U-}`PPuGX3LRBo62u&>MNS)&r=$_GG0|fVJxT3_D6LW2;o%W_L!rH6Mya#VO
z0ls|Wo8K@mEy+!yLwYLuAAQR5`X76_<T^TiZbs`n8Mx&A%!jZK=2KHsQ(cq`YQJ>(
z$<XAvHTeE_X6A$W>L!@i2^fMthy~1swg8gE7f!$+Y0z@LbpzU0wH$Xpfxr_ee+zWt
zL4<%DPE8cuHx7mF_+Zh!xh3t+Q*Z_ZdJj4wnHS!D2SkFr01HPgSea>E*DyPBkFc^O
zh>012X&gR%`lheG@75=8`}o&Zj=E6`g0`Y64PIk#P_?YGIyrmTm0Vl>g)qRCa}TAG
z7kO96q-6y0-6ERb#~*u)NYV(Hz+d;3#{_nLEJ`Zc-crH(i&81$5%-J+ijtV%EW}SS
z2Nuv`&MhpUDf-S|@W`v=EY~adb9DEvvQ)OlnpU^}8&y~(FDdT7&xPF&qUo1bo;ooR
zCL6lg((OFX8#EYHQ`u&*$`h!gV>OH>$|9I{PxSPX>gbOm=pjLK(wnYu$9JD{_dn9(
zx<?Tv!Q0I&@wn`UO9(o)%Cxo2x>mM-SA|5R0;&}dbvdz`=Na5A_w9B;ACqxTiiIe#
z-n-C)TiCW+S$US)89w~Who{5ZR5(5oPM$6n%Tl8YeQw+AwmWt$D<eGRs#%aK`9zao
z5dnD^#x+Y&jWu4I&n%H!VC@}S$w+u+HUn%LvA_$aU(u%*W^oHWz6W^I=89UBuMk9#
z#4J%_M#cu*=m8i-^#lJ5UNIb^<1A$x?$$0~t;cH3KERWceLiYD_^7gc67HkWORl^n
zw0oc!PT+PfSV_rz7@l$xs<EY2dL3^mDH%FZeV=>K#G#Qmjde@;Gbv!oafX>$6s;UI
zO3RCghx(fTSt`fwMVDf3w053ImhM?B?7gS)1b{?}vWh}z!j*A)MN$}^l&1hYkGk~v
zn`lJJEgU;RfJl@QqWx4t79|Ps=|&=zcOkH^?_8={1iT;0umPhId2{Lg(leEXfSJUK
zli`@}IZ2So2^3`>7*Z6Z#IT_pNfJF>0=_0sfekVDTduluvb4CBI$s#fm1j3Fk;@{g
zWoEQ>vHzh#>Q%p&wZ;+20HJgJ`CgA_20hm8aV#Vc9-epK=|KobUzw9q2v4^NyX;N9
zqY_lUPZ2Coo&^gaR4ozcVIT{@Z=x#aX3`+Oyl$SFbkieaw>1^}Kfv}<f4(ByOYPg2
z3YwEUZ1AYEsyGSVzcnDD!glXWhK=O}Fz9tCZe=koO;Hg>x8nO^+ID|uH=hYj$t_F0
z;G^p$I7PV)ckQX&Q0a#6B^gV<C@W4mE<19uR6C|7r#hR<&1K>h5!%DgeJ<(NKU_};
zj#OoNI-Gsz>8^#rqc;?>UKe}!@kweUFEY{dX?9cLJhApF79JtUXt|OU)y$Jg;uu&H
z)IN<}9R*ZtuW!5JbELOk>%RNw)9&~F<3V?Cj~_Z$tg3JyY`ns~jro#LPOxI&bzF{K
zwR2yF%?)+LS71xD;@&U2Py)N^C;l-`qm1E054&Xk<Sla#y?-`0n@&zm;XXW#pFo(*
z(WWV4C62$+IH;C?cdqP8;hD{R5Nj>vnHcLqCRUI~mI+YD`T1!#H+vd+3PFat3roa*
zOJG+DP(0@_E{q<y-{r;!u`AT@%+r2Z-E(;OO%EO>A2@MVGWh5t%&XJW1IWPBEXgP{
zL46^|@)-$MCebausCgz+P9)S7O5xB@H5)i*Oyr<%6GS9W?>Nug)C+h&7Fd!ZVKd1X
zj4kZRdOUgbFUAE!wvq~$UaS4er+dOhrTBS#)Qv@&NV&j(K@WazG^MO55U{ic(14Vd
zL-BpXXUP<1>8IQv7)d6o?s+-Flds(O|7DxZ?5c+H=Abamz|-bSh4l2)MEdaF{yNa-
z-9s!bz^Tq<#jX<LEtsHPQl56;p=X3HYCoSa8BYcP=s#EX&wtsl2AJcZ(p>3wtg9s^
zN{zdMZLf{)0Gk+$K0ohM4jhHQjDGD}MQ>*Zp={Be9PV`k$x$~;pj~%jfbjIV&!^LC
z0pvd%{p`Dbb$-vfCuhc|6Pa8wIm6Pd;v}m41PpIFGqY;CZZvrJpS)~^_*|-dA(N6P
zHSmaeLvTw9Sy|E-@gi!2s;?w3<aHPo+FDyICYa=)vn}pEr~lO)pk+{&gnQ4E;=8im
zYsr;pyOQK2k;=Gd;#W0~$V;Y=Ek^h5I|!dU?OO3TK|$U=_PK9KsCdb;=yNGY^wn_h
zu1wFMr$jU-l`KD<m_IU{nVlTIHY}o*)n}U_&^=hRWl~bjE284m5&}8JQ1uAnLFz39
zYOtQGwE=q%7Th5$NTV~jBM4cQ6---lL*Sm}_Jq;i1L^!-$`N<H9qTG<*r$m`KZSc-
zksu3>c_o2nczSa353_aS6^H)iou6#p(TUf^0zMJB0K-0l;7p+}+qh7eub6+Og{R_7
zq9%zTsQ_@c?Wmdt;h4pxOiGCu$)d(BB7oLFHL>q{1A)D?6^&8^t*FiZ+U@}-A?aOT
z`znpa+J;Mv1TH;O5{%+^b!~)GCs9eNgCSh}0@rc9l9Z!>cs)HQa5)^e^;v8^xB28C
zF%^~}jX(7MO{v1fj|asmI0?vWL+f?Lf&G^j2Tx)}V~<xc8BAK?JRLi@kA3riP3J|p
z?tq~ZBv32_)l8-#ZhRBoD(~H-Xg7fH6AcyD34vxZtOY$)(eCcXmGFDLIYZwoQ<ZKN
zj7KNNkURs;Cdx>9SS-WZ&SU|61c;EB#)*l8O!6?e<^~@Dlk;$aGLAe9Gqdiurt2&3
z2<GP-b2%h9Rv*n3Y6cn-Cm%lk*`NH6H9z|4!!H%2;bWg<TZJA5rP73(4l2?x4{R=;
z5BiRtuIN2{^mQ>7cwAr|_7v;V5gOBJ?}E30>-)^?FknQGq?8hL;7Woa;{N2An>ezE
zD57kYp-AzX5E#GOTQ@g0=%xmGz;7wi45L&TUk-pX#)jhzZin&&QFP!UYx`u?S1J|Q
z4Fjn_MNQS#@Tpy^=O$+pbMyIN_Vgs|XQGf!O)rck+h@1D@uO2EsBY!F+@BQf$r4<%
zKzk8k%ya#~3ARlkf_q2Z0{n=CtTUlwBPhZV(Jg}uJ2<3pk*|^Rka3wU=RL}tpQGy;
zVA$>HDwt7O_js<GDYV+j6dHE~{a6v}g<IzGGPXEOPPl<_EcMF1SO*Epvfk_7@+NQ~
zC{FYt67qHEQc%O%%Wa!+f3I*0C$Vr4sWn94OUP{<3rA|*DqBOYaUzeD=RvHcW|UUl
zBdNbr3hKpkP7K~2Qx!cpy>XpOqDaX14Vt9|fWfdKsJF63kd|5L`=S?`ltn|5wO@u#
zE}OC}40k2mBSZBw3zgY06BZN2AT>XmOZ6T-RWUv|`NmN^sWLF`sg8oHIE{<vXvEaA
zjyxU<>U*`&C!L8h>z*M1=e(n9mQ>Ubpy+~iHB4)H_nM2^aPek>7L#vz1-N)r$MYt)
zqGa<k3UAj59la#aQng-pEEslE*;!!8h<gMSO(h#(Za#{|B^y5dKR+`uJ&{1r59X(4
zgSqM1VrrobOwQ%1lBwy2JN{-oF8d`P&p*GI96p$+fMK&ZCQ<eCSo6&FQH**?(v_g1
z`LdoZ-qy3kPP@lwE>$4b7y>1)*s1QzBTZ=u)^@oFG38N`5<pgZ?E$O;ZPe<>i(+|7
zlPveMEaTFabAyBI6O4OlO-)szw|@-Hk;Byd^3sV1-cdeNeE6NkdG|B8CfCehnk`mV
z?F{;{vd@a~5e*TOrj#Le2J=w=9+yCf37V;bm|pP~AqMRUm~yLs+=v)g^lo&{7?$O9
zTD$q2x6a+x=>t`1Ny?mdGe!Lz%=qyYml8u%ug1k2X9DdH=1|~T*(yKAXHHo|?hxF=
zru3f_>RSE;3hXk(3CU?0TevX6kl44XF8KWD7vJ;u^>6tUuAVO}G3*2P$S*fcx@;qB
z(XBcO7Sw0hhGAr6%H8vL_x41g@W;N+zCPlkG#`$$O{}~cB^ha{R}%VBL|`Z8w6)7a
zC{~D(k4ny-#v0FjDCM&hv!3}N5BsYt-j2%g<2i0S$~XyADvTuMdSRaCVTF=smIRCE
zSlG#>dAX{->T3A)Z%>_u_l2p=u+O&$8@uhG>CMn9l|!9({Mkzq>}5o0tsHE2vv_Ny
zl9_yE`WF)mVW(<niBX?m9!Rnrr$GFSa0ZxACwZC$jKcta)Tore5;fKMFx8I}&*S^i
zYb2fAOV6Qg(P#86J=gWpd;Xr)L-k3+XQM<)vMeZMIf1?{<*^xc)CWotd<(Nf)5V#S
z7Yu#n=Z5EI7labUbXZ<UWs399G;|Ezc;haw`SowTsNZn!=Q6qZ;~R^)v7aE8&%1*V
z^KBuY0@Z39OX<px2_{)0GP57K7UF@G$~CU5a?N>m-C~(>xGrVmRZ4KdQg~?Kwz{hw
zQ6sEY(KW8@Z4B!-UfIO9f+5>(gS+{u2yd6Fuf7nHm6i}cwSH?%x&E$s*Ecum@&qQ$
z$kR&R6yT%gBl@s`cvAnAz_U^z(HFq)B8FN0OOQ7x27Udh@h_hE+<X79^NvrPipzeX
zM>Tiqf%i6tsWo-!eD8GwBcXfv(QjI?a_zfSiPzW89oyXM&Na|nwS|#l3J$&iehEMF
zRI;7tTefa>_dM{V8%7>1S8NmND`@#2Pj!TOizx<*Wm>%J!L3ixR};hwSi5GmtHL-~
z5PijCHO?L=4v`Yym!ht_`>^}$XTRijfA;}5iZP*!cnV!zoon_!x#wLc{_$<!4a@yz
zD4n_H{uiU<h@@=)t@wB1z7K4f8J&7(bGirxB^8tH#aya(GL>0BH#NJtAB%?eoGe=v
zxN44B2vAYl(sfLJFzsR%B6cD!@;OH}PcTa45^f`m%G<7KwLI5f2v3L_%7|nPM4njx
z7)6UgWZCT}RHWw%D$z~`uIFH{8!8)Mj37K5A@4yi%#~GC{m*PB_5O<4aL<g^$_D9d
z9?~`+rblX~#!dvup{GuL{%5}2@wUHzlFvN%BTJuq!DpFNC2<ZW+>->9>pjtDx`ie*
zlUuf|$Ky~!3!kBlHsMEK)VYMI4%UCIrIY1GTtF$JsJO}^kVILR&Z)2>+{P(>9v^i-
zJ{Mdh*bDjnhy6kHG`3<WzXWy(tWQ0)&wc*izd|J5WA4K3TiuQex3vRfG480zUzsE#
zw=li`LiPy%7<-joZ-hlk8LUOc{)5Q3XiXt(i%BlUvJ{MVyCm*;iS|u+T_7-PV&xFd
z#I1z_*h^}izbBA;$`71b=d@;9tNYc~Ys^E#u$IZVt%Vv4Jp!?Z384UAAOH2Z#HA|;
zAlB!6!CSK9?<_t~;~u9VJ`<H)1h?zTi?xMek{g^74#e-kS^C!A&;9&Qciize$NhUR
z{I~z>@2Z@hJ^bEeP<)RkKm<T@#TNYZ%h=aC6C`qFwhoWJ)Yn9=B@m`1=#;6>Fmnhq
zX@Zc{p>14ZCddty6A?r^!jFff0<Px!AAwj)IU*`aK5#|r@#<Jd6$HXV12V_xi+Y`j
z#IEf?zZU1*9DA#I7eik*nWAydJi)S=hUWU$&(6#ogDhi4MW9tTF67x7Gd)ljj6UA`
z|NZ30!d+bt2D^6orrQ@@-cMO3k!PQF3i0(#L#Uab*o<P9T^uG@dyil=m!ZGG3Qv^a
zTk#yoh*^og%|sT?;G)N6R>76DYleg(Cbq22bO`1Iv?|W9w$mdda3Gp%mRJ>4Y1UZD
zB@(>m+p^G?W#@?*FzV)ky&}e|zlzXZfkQZJ3K5R)_}rb6(q6F?3!dg3lItrL{(tt~
z1X#E1EYI8j8Sgyxo%#+v+@92}med-Ju|P6|EQ~Rcj0ji>0UR)dKyYx`P=%ew$d!aR
z<qA%Shr$?xLSi{~0mckwDo0ot1Y(f7g<9%Xci*0e+kNLV=Y8IHeS81s_HfTRO<6_j
zU-zDW@4eQyzTy48HSD#gr|x;jXxq{E(Z3rX796+*@ziy?1#w@u`kdlP9T>MMPU|X1
zr<VjtIe&tdh5edzMM3aDSqDe58s<45QrD-Ue$`ER4aU=lua(Sebn>8+7Con{=RbU6
zvc?Gt35HC#m(H(FU3~KTi@$dF>F1vM#MJ8a-qra<MdGxkdKcEt-S|!aOufj~k}>;(
zod+*}<m|ik4&=Wk1#TWKj4rQDuO84dmQ#$I+|v2br|!3aIpMeOgkDH+%`QDIp~?J>
z8W%<q?<r%jVK_>^Gmcg1r#yAsJ9UNT%ig%JyXo3ly$n|4uujJ4zQz+L0<^I!aW#L%
z^VHti?zvl6y3=}U;KJjVx;Z}%qREb+RG*?4#p_c)xO8#h2WRxfgcbT*USOohHh2M<
z#*Fh?lll)2|MPGC+b90ZfBahvA>;Blvj60--Mwq~?4<)2ANr+3%d^)`{mQR@tb0aZ
ztYEAZzwVZsZ|qK;x=|N&G`ZEkVZugxR5zi&eR_|`ZMWZ{FQpvlKKsz48tY_0OQjHP
zhy6M(OgLtLJfD58)Lhg__%1C_9oFsS+}*d@UXtoMRHCy~FmlYZ@jv@-{$2NPe(smM
zPw5ju2epWG*BkEWe(PiR{FR^n!9V+BZ@=TF3kxfHNNMrHa|ho4!E>9z>hf>@kEfQG
z&VT1<?b3IT->Jh1;+h_D^0=;XY)Hb6JEJraU%UUq>Xe?)@US4fILYQjlEw*jqO7k6
z;LfK=_ogUz-*wk~_vLrKOZ^j{`IO0OPh53cc=%U*mu2b>2)Y&f5JuX8rQ3kcAysz}
zkeX6PW4RU*>EUqt002M$Nkl<Zcs5@B%#yCEEiq0gn04}^?^cbzKo10d!KI6{Jpb{x
zTCJDeJoU*R-M#P|5Bynur{f2w*A`x{`pw6(NfT|_B=2Q8`!vt7S8GFQ?9*p85ARmI
z>4d~!Fb}JCL<I7$md4miy+RUN@{$`h3)0w537m^A`{Z$wu%PF(F6!l_E4H7SoIHUW
zfBGi8?&R3HYyRsO&t3d_-3O+}uCgAps#s)b;gg|L)6f4CEpq&gO)YZ#+TAltJC^QR
zU0Hbl%HsC#X8c~&MTlA2yzuH1D$&vCR_`fY>0P~~7pkqXprf(ilHO#_LXNECzraj2
z6l1sYe5?#Qa<Hv3+ekg?E7Mylk=KZPD19gsLq&<^WBOp!&Z7`XH|AN;whd%DTz%rh
z*DgQzyT8GFM^C{iL%5EXbT{er*;}7D{Q+Gi|KVHy{6E;z)zIa|$N#(8+5JDXI<3c8
zb<xI#O2)M20na^ozkRy2pn0I?K+Lf&=<4FRJ?FZmJ8sZh;CXCHSc9qW#!yAs%JeDc
zrrI%1v4eLB5RDkcka7D>I%$`EToKlLbk&?V#nX;4U^|w^Fl1MsRkLnq9@KnQZ;dZ6
zCje4Ft-r!sJ@pw=dSqjI+d=jB>O)4H@9{!LZ8R@gxqR{3<%{S4o0+8%=LlanChe-b
zTztCtk;lGLi2U%><ws6#d+OhHf25~qzWuxYf!=$TM}_xkPVtxC^A+8<z5iX^2|ap^
zXZuf8D+X8uVm`{3%D&{T{oVOLce5TFepYiRjTb660u4XvRx(1)pxw}38?6XfG)ag~
zb?5Z?**jiyYj<M1K8wubJ$1J?j2wfSc4)Eq^b^l_Kl#soq5G--_ZL*4K1K^4AOFOs
zy8G{caK|mz?))dKy7zTPj-vm3eD>^*Kk#GU_-z}VcdR>UU%T&z=g&R$#G7Z<mj8F1
zJiQScP<Tnt(OlAlo|p7erL)gI-#x?C3<;avG20!~Z5W63;+y%Mb6V7s5_;?Ac!I|e
zDu%{DLt|K$^fo`ey7t{~(JeG0o}bZ6(l`MNx}s_vC}h_K-r=C}(!irzS|9z?L*1E&
zbbEl}U5kS1NEFWP*|Zg%0P6N`b^2>>=a!-sb%qPP&}@0-COPD-S|NI`uDg8OV?XiD
zf3fTS=||0ci$70&_?vfcpE<f?YWay<&*+hX5B%L9?mnt-#&Y%Uwp&ki|LwPbWB1N?
zexct6k2#K^W)cl&S#*2#OvdfE->$*rfIdC*6diLK#sFsDsM2T~7_FQJSNSx^3cBac
zUhH14+ggtuKOO>i3}dKT59y!=c%MEE_m6+{gWd1xdxv})?qMxF-22J<XMX4R@A;mO
z{%`O5;oGj=rJJVpfZncMXSdqH8RFG5-#4}G=-ty(&uOuSeo~E3li8)kN7Nt43J>n4
z9DdMS9TP9L8R>a)PVC!xp*pRKj~Ybj&Z-Ln3qaB|R97FaKe(&AUSA$CKrNamU)8hk
zOnXe)$6WD4LsIxm>191D(y>ABl660teDG}C^xWQVMYqq*r~}cWu<5zdymI-{m+DgB
z-%*`!TvzWZ2ao^$|FU!E`KP~kw7UHLUH}q(bu~=Q8R##b*VQsb0-caCkU@<3Gg@dk
za`LFYf34ftfJ?>JU)cE&!`nU}P?pZiRKQ10HqH`_1C9JK8dnUtv4p42zAq^bPv8HT
z28riAA+Am`UrXfWS~J~_y}W2~MdK1z9duP*FFjMgsNQ$&<jU0Oqz0t7J$B3KuM*$i
z7275h`5RAbnw)g=`i2`xuVw$4pZf6jC!f{e&6p`+yl|7r)3dt$_~B=s^J3uI>dtPr
z78Q6)ux>NbBG`p)&rZDwo)tGH&id!8m%4j_x8{#zOBO>^qRFn9I9?rGJ^@xWRh^l+
z*zMn?$24Yl>h@;cHFSB@J##_zFJJ7Q)yl!rGAC#H#G6jsFX-+hz{d@|xqipo^y=l`
z{NC%&{_L~o&o1ekb1f}BKXqZFgF)3%{Eseu<ol0Z{>b8&uCDC(fG$YuS&<!=rRok`
z9I4t!iXSx*M$>v*a<@l1t<WQA@K#)p&O92T(uTV1drM{QV7Rx+H$(E+Z>j2V*zdPG
z<Uvcm5>d{JCP%w9VdJEQ1>{OqS9j5@KL0zb%a8uz|Gl6E)v0N{U7Ofa-L;jOi`(bd
ze)ROe`i37k@!o&_OjX^?cIgubUN<wf?U(0v?K-FvtN2?_^Kvq<c<EU^3ZlM3{nnxu
zZ3tOSal7ZYJ>OlpQH!*<+^iD_-EHQpdXlP!3N*unZRle#Cw;uQ7><#~;oaS}NAz_A
z@xR<~MMiopfYJ#O6_r{mH+;H|Cppqj3ro*E`fPXkX?=nf{CaHJN%BeB{59%hH5t~u
zowGcr%(EW)uRCaVEnPhKuF=feTR#2s-+8R-Ha_Vk=Fb22-@apJ@zVdSJ8-^o^w7_B
zOMBkD`n})xzjmLx?|zS+^iyB{W$);|>zm)B&nsTn%?r~Ws%96O@|O44pPcUA_hql?
zK7LQ$7VJJ<?RlyID1&P2`l{{n!QP5Z{BS|@g`>K2<IOke<mAbZ`-P}goh?=I6<7Oz
z{ue&l{m75}U%Er>jNdtPzwTD!<#>B`&i&2pbJzV%mfTnrUYOqgA5MSh+rGBzHhxuV
zX8V!POwZ~?ka`p=S8?S}4JgYidU37wZ(#Jwag1&9v))-YJEu!>x;vBkL1GAdQ-@>I
zwqs~Wm5=|Ycwtr(;gLm7SZV!OsEc21$z`8J|F8E4a7dkgY%d+vhsc(hZF<a2dah`3
zW@YDPKmNjJ<M`(M!g*mjn)+h1yULF)2<*~x;6Jgp@A|JE>Afmzx;23o;iNW_PYvsZ
zj~CTnHKW`%+<ru-cCh#Gq3-0ZH%lh9(xTWV!K+#mIXO<*`s38dXk7cDNPSQG`}os|
zn#PUCKJ#Gr;Ju&mqlu9(PpEPh(KO2Fq-@*n{qn!w)1zK&RtxXkt%ZX;&(+*$dEwHx
zTwIvBPbU36WjEso4X@l=Thn6~_niOcsilkmXl?1D=F?h4Q8ixB+ozt3m2vjkrL*1g
zqyJtF<ze*?L^xJzvCms#2(8(!k18rx4*SSTPnW1mUeQn%^jNSa)v@nt&`J2z{@3cI
zhF{`Xue#p$I!nUEhi9f|bvKwU-Dwq9j|IhZy2*Rb^5x4vwB!7RpHZDZT33Ig2h%g(
zkBU>g(0HaUrU?(-(R1$Xr}fB%?!x1ff|>_$f`|pn=N9#j$BW&OYxR=geR}^I^9F&!
z0#{OyW1o2j_+;@*exY5kSWXA2#62MN>7I}1IQc_;XvUjf?Gyj2=XD`r`hJBEV8IXX
zp@aA<Z%yZd-HcA7_T1FXUpTLGK+)_I1s4_dnB;}0AJd7g=0a1`U#Lo(OS4m7FgJ7P
zU$1EHGny7|61(#3Cv^wtQg{3~3#D3=QD5_OKle-B%{w3KzU42y(RtErOiuKszyC8g
zZtMQccfTWLwr7mYyVNT?tE`UMR%-kUC}l5Q{8YDm`d)w2y{KwCw|%aA{GNxqU;33_
z6_zvI_BqZZGA`Lq8lSfB)?>4Bu&xql99aIZwr`vJKc(`97P|YB_O<)|?fmM62mbE%
z9ml?h+bUML)mMpC)br<_>7IF9FGkZ!<Ps-GfFzq1^swg>mmi0yJ8|#^tyoR#<OO5P
z@a&mUpO;BQ@`m4S+XD=5*DNT9((t3n6Rt_*kwmQyVo{$?x}?Bo<Yc}<u$43Ei<cEp
zOM1!3v|fTWt(8Dd0(j<QR&PS3Tj3Vp<;8_-H3R-}RemiTHj|iiJoY<3uzlas${SZ#
zm;RwXCwAxbLqFYJx_raxhkx_;ruOb)wSUw-pcgm&_)q-H?!fNp?oD^zC~=@ETbeoO
zD(9)wneX0o^PcWK@4UJD#HV;pudZMYT7g70#qsSxv3`#QfirqJ+86!lTf3W&XjSc*
zPwRwNm?=rD#|&2KxN3S<pNaYLpZI^eU;fqK=yvF?0G{XNt@Xe2dmq>LqPKmIUQYHs
zmvxgb-_G3q+~t4t%ul}mZ(Q?Vd{8ZZ^J!&z=57p`)#@Ex1Q?8XPJB+crA=w#Uo*3w
zHDJZ!89md!O)uD4(<cK9L`ob24NLmP@iseN&VH<~$P%#<laLw=ICd_b8c~J2l)(g$
zQ#8JEur&2C?db|%pQs^1ourMpRd=u6aJusbo#^Rm={3q%o6+pNyQpV}&OP#J(av1g
zSKYwQ+DCtO$IA56A6(lp_tncf`A~#AZnz>u;&!@~i_dpYKl-#6#xo(2wJKhdlh5gP
zo#}^lTkXL+HAmt+7);eR+1Ll;`{b!qWsSWs$mE0k${WgIqNpCDuYI<B`sO)(8~T!N
zHA35(@-%cMNZ*XsO7!`&m%9B&kEvbKR&{59zJxHXnTw`~ervH_?4vg*bsx|P!hg1z
z69jZ7o%z^z@4I|)@jG-o`UkABt`wiVZl9*JdM;5XFiTqKJFAyw^ZtmBKd`D#O!EEH
zr}e&rvwGw9zV3!&yY)7Aon&v5kM)I$<uxsUgf*Vm3b3L@d`7GQNarD`+f^sU8@k66
z{nbbdjrt;)u2P)q?$y=K-@12MpR^>}bz7Zo+dqDAy1PN&bicr7=L9C$X<f3r`TAYU
zi<cH2SkUcvQ<qpI5KaPjc7F6@kNwoQ{hgy<_YWUb7HVBR-TM=-o!@!l4|zMX-qslU
zDGkp|uyHnv6HeOazw%f0%;oCizpc-&{jM^wYq*+)_G{RS^IKwpXK0g(HTX(B-uTOC
zJzh=;auTD(i%hjX$)X){jYVxplP|p->Eu`GYX1QUlw2FuNem7bPV2MwTK(3^=ZY5G
zIN?EGO>%dvE?xf4(ZcFO%J_S&#-=u-<>{}`FnDmJTYzV@_!6w7quSWgvny(kPinzT
z3wW)A@>MgP!94fS+3u*~X{WwXUz1!`)6m{;VQ!PR^%F6f)%!xIi6<CoI%u6eL1+^?
zk21PrhPDqTc9HgqhFkKd^w`$g6pt01mQMv3vqq(wwB?G5CdGSh?&fp_)Gr&{qk3wS
z^ahuod$v3K@V(->bYSPoXKkSwY~<&j5AB@ae&XYL{hVU%f*0~;&ivsNFIPRxo6VKb
z=EEQUXm@P>+3wUgzD>_??$$z9bTmP8GOoT=FTwpEzV$8{_y+wc!(q_xg!~1+RnE3j
z#gFocQT?qhYGLCuKiAC^h()R`S<AZm@-zSP=k=LJeR58HKODGKe@Q3l;5w)0oac0+
zwXnwHF^gX~wYvD;wSV!x9~ph^hsHaJF|Jqc>SS$RC$-y%arqJfItl3ZpXpZ5=%uK-
zqD~tcl62QtqlvU0**Vh9?SG9XZ(QXAyVz$Q+V|sNIv8uJrg1!&VQ3<k$PjP+*TYz@
zV?GRyWRmA{bW9$6`PA(4j(apdX@L(NjH674l}=V>t~uV#9oAdh_vjIaUCW)G25$T`
zXL<ICZsA@%ZZ<d1>fqJW+Qs(@@~;@_t_ZHaa^)OFCCWN+m)zRZpVZTI&vo1M$X60N
zp^jROXrFxO+3w_>Co*PJPk-r)!o&O0aeY1#<O6K7G%7-&+%fqaXW=Df@G@4~@`%sk
zlAaUSBS$HPx=y0dLw5@3{Csgy3o-j|>!#Iy=XHY<#PDE&_~H`}cV{1a5PiSp*MI%)
zzu$FtkF8|F??uudojam075{xO^JghXx~YMFMxUaS^R%xyBMM<++xi;!_QQ&;*9j-}
zduvimeX3J+^u|K=gM%?hWpvH^CpboT{h2nHmW-VKho%?o8l?*DOLLhW$0a1=W9S-D
z#37-Z-F<`B+jU`PPTtw4xt{tz7C9ErKc^GV(;9yl)S$MOrbe?D)<!dVF%vA@k7Jbd
z)PlVqpTkH2n0CRQe5o(=T)J@1C+(`F_DbdI-*n8m5vziX1=@Gt&oPcLE&HKcKi@zW
zEmd}kofiUp_oVhc;U`wYgU_A$1-a0xZKmC8+>r9_FN7;tse<`18^bQ{44Bg0u=BeQ
zbb3XZrZ<~^$?MAO=$g^0Vp(^mx=rlf-p%d2kg<|>AuBi!;k^+L>!qvn%=?`$-Bd<G
z)66_PJ7957rlTM@YRh<tHQ0+y#!Y(^lb{Vn@+dbgxJ8OC@TxD-Jk1&fX~<GjJ9^jE
ztiI?on$b#-mgPyMAKMkZ40Qi>>Vq|BIrsQy_0<>MNw&KDm!JLM`|s_#tDi&lC+&JD
z^;`AW-S=?9Hm&E1W}2cro3il8?{#OMd|s1S-7=w-13OA;OmT~tCbZ}E*22}*BMLTs
zw^6IiPJpYOOgPA?U{W5yHU5;;3K9FIPy#e`OgQvVpuh{lHCBd(Kvpe1Lpn99#x{CR
z)Nx2_^5QBtaa)J%n%aAtuI69RpefR00$+`X7ld4R=CSViM|Be0b*Io{v+3L?|BnMl
z=1=_M>deBMSC{l`=dzyb)MRGv%*V6{m1mOR$>-NT`n!MF{p!ywb+6y`X5DV57mXAa
z_N;!S6IbQ$+%wz#(09E}>c3Tg<Zo81E9l`tgHu|%{QKSV1HYs92sWn3)-I1_a4Y`u
zljpmS{^m#gydSseLd9F{A=;y7^yl>k_BlOoxS|zmU6uZ;%hTI_W9{y{KRDXLt;(Y{
zeb7{wO=%P~2;zZ%)B4=S@>9A4LyJZ)NOUN=<!@>yj+9M`%XB<x+;s|`Q_G4ySs~J_
zV1^@hRV=cSUx^qGB*BZmsXEchZ;;7ddd_XHu0CDRT_#*bEjA(m^4X(WoY{Y^ZQ^!f
z-@+q?Q<^Z$?>X3=edIpku)2*>;bpfgyPo;ab)Np!)2y)TGioGOZEJGn0r#>#OSAZ4
zm9yYODiN&EkGk_(n3>(Kmw4&fYrZ+_Hj2VZ9`yVD<b^-R1q?dB(6XhI7xo^Y!A$s#
z=~H!~nbN>8HK&)Ctle)qI|WAKQMl`DOiJiwXX==zb;WesKFLtKfd49s9Zx=@x79zW
z{$}}07SBJf5qfhk_E@{`C-<yeJo~dN+b+Icw@X_(KX=}Bdw0iOdVD~!{)u}}cfa``
zb@z_Wnl;bVZBNokLGYwrTKEULD!%X3(eCI?`edc<38vQz8a=DAoC=64E6O3i_E>$t
zcww>o{rgULAN$lJ-GUYlcDDu1WnrR^Z0M6-ySl&pHE)n_k*YpSajR!6=a!_$@`8pe
zT{fT(T-IGHD+>$Xq`kcw5WZ<60|K{quiVr9Qx+Ab^}Yk0t0!)Cg-WYxF%o4lp>4S>
zPG7gz!qn~RKlCUI?<r85D3ZjT;zR#v*H@;*QJAIgZf))g!am-59>jBK!(01m3u~M#
z_cV=3)0OdPdi#-XTDL7uug!MzyO`)j>ay+|;#t&{<x4qByh8p)4yWV>zK_l6OcNPh
zB!iP)o{^p6vX0S_mJn%wRf`9g^a86DeUX9~NJ@JhuBZr6_1{xWKs07BeII%9CH>WJ
z(zd_@e+&tlEKHkJv6B8yh%sRk509gIb?~%q0iIXi?#F5L*spJ!cAr6CC_4R3a|atI
zTC{Je>Gr5O0Dbm$eG~lLX`R&T6PIYRne^P^g_%7xvh9b|KkAuOsWvyetc4GncD%{x
z!{Y>}&uBq%{yL2hdK<LcKq4(Yc6t%&aEq`fm_7(i;U12a2f@pybrUw-?J~cOMcw#m
zh(hp?T%BaC&3ssxa5qIHvL!8Yx6F|nx*a#%*sYxYY<KZly@h;n={=9HUGuXl{wy?C
zOI|#~FWl9mIT4W{M7r6-I<dTPrdxdEe$8pL(#O0A4cgs5Gkf&a4n9GuThDo%!G3RJ
z9`iUOryxoAV4EV$@gg3|$L%=|ttNn0HE~3lVk%kY?Lz%fXLW@*Y=v6HoV)S0daV9}
z-;)wL<S7QXsn0*D7n|)-JJwa=M7c~*yt8ndlN{+&bEXpV5?kGM_YOgzOEbhTP+$|0
z%)Ykj12`E}W;kGg_i0^tR*NvcRbS(yih9gEPa#7Dv?JrgLF`?Vy{aiz(bc%Mc48v*
zH}=$#ZpNPy>EVW|UFkAIUqXMNae&!zB%purVhw`ZuI(K43s}jcQ@-jfn)$uz%AS0P
zJEC-{a)W7YW|wf@v8Mh$c&nZk$JTTbueX{w#+xG65&eD46h^m%>*|EA&T9csdVAcr
zSXyVb7-c}qC&g^5yraYPW!S}mHk30V^;|%;+g9NWgXS{$!cIJj7xAusmgkN8<ar59
zmFO3A=OcaTY`Y3d-^nAP(|TlbQJ*%{olsI@i)m_`ZZx2Ojkh9I>?DIl=JffnZ?+;v
zL{oaiU`G8LDRGuQx_I^N#}R9*4O1VJuu%*|s@eDlY}bSh@VHcZRk)KQB%=x*(t`5-
zqbIuOpMFyF5S>$jx%EV+)o#!JgWWFO{i`b($``kumvj|f`X<F7LN}SFS7w*%4f?i@
zg%<@liz)cWvmF(10ra+03TKZ+^0nj^2DDj@NoZbJ40+@>9NZ6tHrmpzQXZNy9wq}T
zu#}zSa==&lt_hvm{<V4x`itLmbNAD~uJbG|I;yP`f_t<O@y@s2ri+p~XV6_wI}hq6
zMq#<|{F%Eh%*?2B)=R0blIYc)Rz|B|=PM3&Qsqhmd6x#DtH;Fnm`U1~mVUmHtJFI2
zMfD-D0v7{&00nXytsL6?nP5~m!=%q0SZGT+(g-fQ0bmq$86XnO(3!U;9CNz$WL~%G
zjh@!kepY={FEs_PMw@B9{9}%9eRHzcI&F+$u;Nzi9oJl|E1vgBMW4M;c~fbAZQHea
z0mPfR;>P!=t-DTs=g;be1+su-hil7oNQ>P*ositB6+gXv0^CFrDloMBZJR5$NgRRe
z38uEBeqWAA4QKlYl5`F&PscPXcfu;vDYDl=2U*oLMK5{VweWE0(0}Y6(=D#7ZbhPW
zR3qJ^=SmKo(ldj)9kYA%{_e8A2fMPk^i|!d^Z!b<v$WL2Ze$~MR;T<D2Wu$16)W<~
zECH>TpDpTfi8Z~o)xl6GYC<x7;M#8bkXBXw+!E-?z8(o;1uSuSVoyw6jugC64V`*P
zV<^_3+`K{zwq5%tb&;pqI;oty=`KIdwQ}ZhWrQCC=ZtimyH1UCmzKb_=w%JvdrAv;
zY|`7TONXY)RW_sLDZP0y_SUWOc&P?|4`9-RLBa{0yido|B2D<9Be>LLh6#w<FzWRC
zqEnSjJg_)zh>273*rJO}@x+A6(QVL2+SSBOy70M^8MVo!1@4eQA9@DrpfCLNToNyc
zLa;gvY{LgWQBaH7uJ(FCCs?`+F*iMb<Cx=A{VItQ)74L`eEZt;?AvDq<Ek%Ds9Sg6
zCk+_Xcg%MWJ^a}&pQonF2Q`UNqng%p=I5Tj)IEPr1OL8TyLml=;CY+O9=65rh06G3
zLb9Mu3N86OI`QN)r@Q+f(2HtxXUjHTdesto@eY8~kE$(fKc$I>`el{jK~|S%b({R|
zZ91ai3*$?AIp9StM(S$bdoRuG_&$+cbwKF4J2XsQek;%8F(FJ$F&Jy`6kk|ds5Xgn
zWcffo(<F)80cD%NRWE&O(pGKFCM)js)Pr0OqS`8s1iqLAWniY<FLr6;5#Fb+`#cOz
zO>LQSYh0mC(W6PvkxqcuH2LV0^njj}6S;XUGU&NH-6~&+<}tHPpU70*#pm_?ovo(P
z{A%mI-M_%5+9GP?PME}dfMj3!S|s8G)vj~9qRpi(R$pU6+lxK$O-{<Qf90f&F6M<3
zw$w*{-~TI%E1<g%9?@ed`*kObK0Bqpp^eyf^_&*)_vuamfn;HWTy&Mc+MOe`)1V!l
zHuAe~&(5_~-7V$*#CD6H?8`!gwqgQOEGVBkaY*lkQQyF=1)LbPekfN@L{tvI_9k2!
z4z?0+O1<rN!B9?F`nzm7j&#)#BDz+g@mf5Z9AhjB+(G}u%j(|ow%fV~^r!*1)RQ15
zcHjECQ{AC!bmdZu_d5<8)m&w<yZr1Er&d-MPALW-6iKP<dN2MXU4>B=nd8G%7FqUb
zPI2=a)OK{I(i0DAt1uQ*zWy<_W4~Susn50@Iic|?ch?o~#2K~%1fHV~YLpi%ALSws
zd@4SR4_nXA)E3>6Jtj~GUg1YM)9=}1HwX{i9{Sj4HMVPfZ*pgkT;I){xKRsldXz)+
zxWX8IPBc_f`8Y=}{i|ntd}W(ha$Ln0>uH_PRdMABqas%h$oMEfgPj`foKEDBUVg?N
z``Y!>M#mM1oU*s+OZ}$vARC?1!aTwVFMQy(1pe~VPF=XzzI&hEgQG`Mn?8{xS{-lG
z?eKfFcvX)ArI#E|(58LjjmB%6x^he$)1}s8RpP(dQYJZ6Dn_)WztFp1@UKxuUnKYK
zja+OdzNpvcW3AkUsySZHSmL-8J-qneew3dY`4unuS3qc<rQ5Uh#{X`IaFGs9Z5(k-
ztB-fS%FuPtPh-2rjeL4G)wc4RnT%=*Lu+03OWuxMd$i!kd+DSnojskL`qOFMDYIvv
z`nBDfC+axukK)3QEyt?U@JkyEmW7%7-agJ^d(Oc?ueDva?mxn>?8jCu@OKAK-q>B%
zT`*5PaG$=Ept~W#PVHdZj(y$nTQ%?3C%W^+rl3=@LEpa7j^B5b;!XV$`y|`1c$!l`
zaA1$_U{w30iSE(`pD+D_+q$oO$DKNN%c2<bd-pfY6GanyVk^9IoOZ@sGA&-^t!(J)
z9JRtgxb?9GRbtP4#Gf(N9e{|!8!0S|ljILAa2-3mxBI5|{ORtjE^7Yf?>)fjOm{%<
zLwVQR?@<01_yivP=j87l%g6M1&bj&d%geiHGFKY|`jd8@Gil042Sg)@vtx`Vk{Zls
zG|A?rAnv)WF)Hd$5@z*1JZ^bKlbV=U$Ca(E!IM7e6QP}g9E047t5a-;7FC@G!N`^N
z=mbSMMf%E8Zc#pT{QB<v)B2wD^LjI>$gu)va$ETRBS-b86Fgp?q*Ss^rMERJBl#Y7
zy}PNOxwUO_B@<?X4rgK|`$Untr*?}s@lO!G<#jh`Las@p$r&c9@gbH#ArT1Z-*h9O
z>C81bB~S@224sYBGHua)U1`xyk~~OIudfe(1e4%L>W3;H@uIrF_@!^?KJ(Di-9<1H
zf3D~q&~wIL_0BhF#YmGTO+0oUxlSYAtR^0ho;o{yhFS2YPuksg$;9zV2<MU`-3~o_
z>UGv<@$@J4atxi|serey&Kx??&EE0`-8rEv+}u7^=7>5mSMfo0u))s4l{^yNYv`zB
zpP4SD#AEsp52@N0AN>P&yUp!{JzXKtM0f7go!!c#dft%^S<LXw%<&uaQm%uFM_$}B
zuEUtZQmdboMD$gEbpq#87uttsgw$xAbzfP0Sv^KSukgAclMz+wwyP8IH;WaN)$U>E
zP76yL7A^c-yKt;Ng3Qz%=*fHGWMs^CO-6QUGP388u2O4opbymNP^i`;v_p#=v{yd^
zu6+Ce_V!6b(iOJy^Xa$Ej;5dfpQdyxmfq;<$w{r!V;3jDdi|}giYcy$H;(-mVfLJ`
z_Dfzwr)PL|XOeUTZ=XDBfWRg<O=2&xRo1ZvXF1MK`$G?rivhRh>$U+N34l;?=>zbW
z2PTdPcFC3Vj0dFzBwc}f4EtO<=n<1;y_9WX@#$`vhov`|(&s7)qMB;qn|4rn2<<0A
zjj^uAj}+&Sq<^Koh)-)L?&Y)(9`FR$loh)4n?pJL86X9v42u_{RFrT&W$^NZO>wSU
ztGk6Wy4u4XILOgoucvtM*cUH>6blxtdiml%rGAA;?!ec~H}!+ZY`=bEr;f2nTxaBu
z?TTw&G)lZD(vYT?5Nhz=t*fA}-`X8*E&8#QCE#X!P$}3E3W=}C8^)1fgfHE<5jU#u
z{_Z6vY)t(39z5I~zv*^Cq;Er?)2-@aGsT@mdcO9+vFp2QZ@NwM;sK$-Uy-K(kPXP$
ze2N|N5&f+D1HIctebfbgt%AjtY0Z4@xZ}F+eeZr_cg-FxjC1u*@!@u1e9#MAkR5y3
z3x=Z7nAuO*jEnM&HF47FqPgo+Gx0O{LA><B9LE}t5^Z?1ua<}2+GFkF{a^VOJ<oo&
z`^De5SC6+Wc-VfUbpMX8|Dx_Xy>~#j-*!`a>};oQ1z%aXG`IHrlY6@ly-zi-ev7>A
z?e$cDE)0kR-v2VvZTEAp{Zo3b_i(quS68^0vRk*~AG=APJUq5e=fnf?BfS+@v@z@n
zo`ne*iAI>P_+xCKN1n&b_zMJr1sJ%ci#Fpc{9Nwefa?YA<EQl9_FGj^1!}84DV6i+
z^Yemt39(#sb7j-Cy=*q{>u2Hnb`!n(YT`eulc;UF+iX$uTTTwj0=f_GEZu+Yafw$x
zI*1<o(ynqMkbR6GffxHjn;oCm1|u*7lSZd~aisFP#Nx{yEutO2@m5_F(euK(fI**}
zd8J-zs`=5uV>fnt^c5WD7x787x2`CwxzVPRl;p7;YlOY%C*~Y;OSuKXv{c3v{&>+L
z?^)n(L)!;Y>a&gQ?6uT<8oVlV*be<c@-nX@_7FDkBfjhd=c<e`;KBoPtfr$p8;v7f
zMRhr0zwnSKWmqy}pW-9->US9U%yF|n!9F7JMu3vB>QfKtgm^(G!q1%ktPXWo8d9a_
zUcE&1i2OXw!ZG<{HrD>Q9$<;Tv0>QPk?IxB?0dc>T66#>j}JOhPobamk%gbR0gEOQ
zCvShfzTR`7JEO-dmh?H-87*90bNr;|WZaF-38%;8UQh8;+#5p}y~1Rh^qA4969>A#
z`n6x&-GBONEuPKj@xZ;^*ZqaJbw>{Fkq*Q7ja{THc*VEGi!C)KqOh*9TgpN$ywZmU
zOX`z{EpV&j@vSn~l@<OaU;I>`o1EVGnv>ms{|#T>{p;f&>mGaRY<JgfC%X51`CWS4
zOLq^~`JjE^JF#apylrTX)}OR@sxqZpw=7ypxf{U%1=>zcCayVgsyp-e!`*_OxnT9t
zSMW6HncKFr+jr!o9ITfoDA=n378n3C1QuXmWPvaQ7(fv0CD(wF$G|{{xt_K!GvU~O
z{5n7X`p9SQ(Wl?eSPrW*`}GNkW4FDb+pVhvbcB_92g#mF$bTg%cDIgOc<@54J9HcE
zWlz+!z#)a+_wKiJ@BX4Y^r;7Rgbj-{C>mXCPOt?#^g&k@wMCEU8(J`5ud$mBaoezG
z4-`e|JQ}k1T0MA&whc_udxzd8{xyH@O}f%}sr$G8-zPkA+Nax6zV_X3?!NXb-l8iV
zx~)uS7t`}QbY<p<ZYO$nyWXt0CGcdsLRUIiXImK@6ni5LsIwZ_xm9!NDP39BpfRn^
zWac=}yd9Q5S%i^o*hGwAs~aNQ!cCo3YrwR)0WVcTrszXUJTfGTi}Jh>Vx(R;38B+V
z9V@Na*Hv{*YG>6>+~*4k-v(ck5Qkj=FC8U0uxnGDj`KG7GfYMTd;A#u;K&=6_Z&Rh
zUDPu(@xOGEZ4AKt9lri%U2&wJko4ABp<92#4Sq&63T5IJOlv@ZJ_#Ja#F3?a)zp4G
z(nt(880&GpJ$t+3x7_LW_}o*EX|lwrvK^)u>+J51tG({vaT~8XN2dD@L#Vc(+XdJ2
zE*Trx&OD)4t#XQ7I;T#*Vyk>^xY@1GG;ue;B5l{&(G%rwRwvioy%QeFHSFaFoK4$?
zzYDYtQt8LQ$w>G46~BP9N1rgf=D?orj9y}el_Z;O9=g|)+aYmAuYY)Dz>*{fpcay}
z&`OYUJb%#*z`U;ZLo8TZiLjsXsj81yjPk2?#UbY4a{cLt=iiq!Vbhl7hv5oMcz^{q
z_9+H69QxdTr*NXrN_&pC*-wlmCg?YZ37e|RZ{5X*rKe8nc;=Tzihd+1Fs1JwcY0?_
z<=MWn7u@W#kZ<XC2nj*d<N}sP<n6i=di=K6>*Z4S>fJCpX@f%g&FK-JV>jR4ZC9H}
zpA*T|Ca=^Zu~N7qLs8P>N&5;$Tbr<rx<l$0=5$5qsfRw@UDk_<^kJ-SpBC5-pS(#g
zozuHUxU-42?Y0iA(V;i@N`*IgjNY=!`V;WFr@8wp@BPB=w?F=%?l{y*icX-uM&r+$
zZr82xdg*Pwu#Yw=EmSWcWC0F7g$?_(Q62Yf5{#(BHVPJQt+DlG@JV}h2vuWj<%M^6
z6)s0KG5e0Me`j|@SJi*_lMi=C4(#sU_Z4sM-l&Niw>!Iq5pS9gu(+!wiMd}t^jazS
zp{t@*3lAa0_t;4iU)rcH2F%`cM>ls%`^>%M@b(q1#=9NMUgT%23ogb+dGM;SlD3s4
zvy6X2q18iYXw#;vU4tV&sQ5$*{)AuQ7hQuDC+8#H8r<m6hu#%CLJyse$QSRjQUprt
zkCOM&zsT+V+sLeo@Y<ypf1OafeCXak(0C;Ll<I_i@1bkE<2T>IYHaea;NyNDdh+#e
ziWrv8)zy*bncG;uQdksjiF^3tS!~5_u#@fT>JOf}MPFyqV_6S;S}#xL%BQ+FU8LfQ
z=+RTUi%-g~vXCYn%1-J=r{JUz*u<4~eU?ssDIM7IZ=~nc*UsIqdwg#Yb17yO#UEW)
zbeGJz2Q&ugt}_axPIPJWDd}VK(n~&dj$<Y?)T2(~E<B)d4B&6Y8}t97Q-*lxNO(zF
z)0c%5<>}4!Q!L8vJSnhvJdkoNI9$@pjn8Wy=@fbF26@TwxSG<f{to>`^g~a4PP{V)
z-1xe;DCVx|p4MY5^kMrBAMcLbaFgalc>!JQf*yYg0dMO#kp)gKmY@X|qLGET^cA6{
zEz^c=V#5p`Zd+mtu0fJL#ofspx`QW9SV!&zqfzkeI*%tteyHJ*n2sEBE4C@yObSkL
zP+C~&jvqbH{jI<D)xJPMEcpFa=%7bz&;eUK{>#?VDdRwmiTEA8_-lOOjkW5lJO&#r
z@;n1IRbftU68+lH*QOjh#TPd#1=qwOZ3cZ_f5%CEaq9-rh>jC=9-Y#*+7?y0D62Qy
z@6;Ed_IE#Uw+QbZR}|Lk(s0tgI?b>a_1g+5+MwtjeVcQ;2JxMH_vsDo_vqFM-uSE&
zQavMn_=cOiV_G3{O-)QH$dED&h8RZBMVI8qxM5#3t`o4`I8EQ`5UVnr4d6TYn$ytR
zxjG>~bmPssig&Pk{;9|Pa=KaFV#|bM`_5gGpAMPOjDrhw<%k8m`&;bHajQQ#1>S4j
zQLPO9`+xDhVl4X*LQ+28Gv=sPxa$OwKw96a%ThNmR`S#6@Cm7cE?3!uUj>U1YM93-
z)Ubsu$VCqy2b_LHOG6*`(LP;G|LgztySu;s?SG!iNop+I@{CMrpslVTr-jZ=&FWJC
zTS#bC9d#xGDAgK>_>Xq#O2KV!?B-tcCP7#@s+RCfgJf7#Y^VXzVY>qs3za%%Y_?@6
z&sb8A_)MesBnA7ql7M73tvvh_lW<h6#ttHU({QIuoe7g8;uIV`Sc}?nnlDsIG~z^u
zp%WnMh?>r&bmOUf6&>Lb`y6}n5mygxyz4F9gMaWbedki&xi^LSKb_1UJ9WDzBYFl|
z6Jbs$&=G#<K^$<^h{O@qIP#zU&c6PEA2isCaPkbHxHNk!_9&)^dd5gt?Y`!k?v5{d
zml(js6}62p-$}wFIm)hqr{Z3(lLTcY$(K@x&OHKyEhMx;=h%wuXrW_Gf^K{5P2FRU
zJkdS=_>+io;<hiY`W-uQxI3ZmfU|n;!BJQ+090Qz*pt41%E36c4()unT4Mpi<-nnR
z>gaFRi>xknPw5-aEF7Q!@448n74KVby;1Dpi{D&J`{S4+gMy%xllahW<hNo0+QNpr
zY`P1d)dXl(&+F=h*nOGu*z!hMy)k%n=_%QdY~=~avKL&&+d{QjyV`9wxIs_+8ACfF
ze#w<h_GPc=DTg-xLSkZ<W5?T~#;4~$p?>Omo%wO%u9G74<QCKO59-85&-+>uJmHr(
zU@=;UuPAX5pZRQTPc$Kmv4@wEU3c5-^i1IX?uiFA0oR*jcWD9guqJGKj~o*X^c9n`
zO1of{w#0VeXN+G&)6h%4Vx!s(WSgC^?LBy?+k4GnpP+k@kK2`{A1Ca=KG?xK`mtvZ
z1?wDc>USJ7{H&LqcHi+0U!s@;6D7x*FklRlcw*(s37g3bQ?(6Z1E;pQgn$U5|0Ry#
z;k@*Y>=)+F*3Y<ovAt-r#bx6YwyJmR@P57N{>!AOWTUVa8hM!$&uEf(*MRS$TU(vi
zuy)|YrDqg5x<B=*$s-(AG+&@c*&AKlqI8nt`Gxr9q#O*eJ=mcI`N5~`tbQybY1vyU
zrG3`XfN6YJv6^w9>JDQ;WD(beY4x4ViSV*5^VlPMq#*iXr+$o=JAA~8exs@SFsvqq
zhdxt!s!h%4vB~4N+@be5?Cc(UKyRzo`;q2#F@lRg$8Ua(AHAgis1pR_vQOlA9)vw)
zDyF2dc(P9h`6{tJ+EbowfyVZ@RtQ}|wqn;<S>83!bw@SNK6<0>a;ZK_La>Ds08XU9
zI{f1kV=O+BBn?nd<L##&9T(W-zVv4BsThGB3mVVgCsum=XvY!B<Pjv|T36WB|985|
z&bUonSF)em0gErB!E?b2nk*E73y4Wx!yvv(EauLQfkVYmurzD^2ou_ya9mq_MmjyK
z2@jv5RnyX2@VUr?e#JL^Zg_?d3uuFe#dT9##Z>9UwvuhrIN${rJp!^rk3Hy&*pDO4
z=y9J_jiZhijAyU41NN&=8s|42kEXHS*iK|RI>o2WKgF`zI(-9j#_JQhk&O>jn|4=y
zz4kqR(ub`}=#@OjpXYJ#ku2RgxYd-nlOEE^k8SFu#981&x8O3+#NLdR(HonIS0XL8
zL=)<ghV~C8ItCk;X@_bcVeHutAIBPp=4m3=^LZ_~#GAHYm_9PN_{D?mZWn6t>|7y(
z4a6zhYO1z>VS03;yW<m8Ozw-O;iMfIFB)uOssB7{$*SHi-RkS--E@MyUnj%6bvxaZ
z9;){hj#%6W8v`S$8kd#iSp3|vrBuHX4oIS}Iu0xhY_#K@83TINuV72?Aa6x4N!!&O
z(evW)#Vq<c_QnHj*oS}sZ|)iEaFn(2G%NHqVS{f4RP2@k`j%}4TWw(sZ8{i&r0Ql%
zdGH!K0Od43ltQOJ)uS^^r<Vpw*$aaX8?jPl)bpMuF4iF>r90&rj6|hQ&MyKred)wO
zH4yDd5&hpk-R)%3v85yq&0eaHcQoR!jt$!@4Zb5Uw6@21&?w?-@Utzh%e1wo9Mt2l
z;n5msP6#3=zQZrj6z&qBeb)x_Rv)hX!xxFufiLmQz(8a|LwA{h0$x1B8hOP_nVU+9
zHL8dMLXaZ6c~*;Q>Au4!yZJx0yL;;42lR50C%WyLm|UY3dfv*O_;O9_mU`lVYSKF=
z31A6dB{~@=ERKzi;f8D4F8(O{u{C}rKFN3NNzZD(e6Kz}Liy%P*TL_~qfReNx=9Bx
z1~;_vGl;W0OR=c8;otakoLt`0p(N@G%&}_^b+5VOX1!BEpS;v9V%$2ptdse}2d?Q}
z``TN4a?L^wwx9sMwNBWN?qv@=+cAOQ_Np>!InK0KI1w9shUmKMukCJo>Uw<}T31&1
zC&qBxdqCgfe$9>I7mSsqx=lLU<|7XUdaH|ZqB8g2Zz4Gs?6c^(sz-=M=QT0Yq@&xV
ztA%<2q93_f)*~wyPU{MWo}KsS8nI~*RrcXS_uIV=Sfe~)wXq2s72_T1k<7bd(>di&
zN#ip`I&tUrNZvNv>DK)<T@6Y?KiVZn{NNw`YM_8KJ;j!j-u}O)JJ!G;eR}kSAKe%+
zv`>$H%&8qN>I(te^|sv|T3oA%cl4nyn(!xETHC31NSWIx6r9LgT@W7VMS;ZVfo;+U
zJ|0(zC+CR-D!D>A+8g>!CTYatNU><X+OIUkD)O)oedBX$(b{IwZ*)7(*ZqTJvOv7X
zT{W_~aOf9Bk!ftCdFy8eS&6UYCpYzLA55e>IEaTqqzXtFd-lVFJ@0x4JxmxMpqKLL
zzripgOmN|yC2Jb{Nz}M<!sa^`l`p7wi0R3dC4DPMvjzQKHCbN692*f(J}q5f62Gh5
z_+V@NWeuB4gDp9A!rt(R*3KWtqVTaiXnMSm*!UNw;z=4t4EfS!%2(B4yi|L1EEA_W
zfkz+wE3M5VKOnh@<VKVDto9RrEl<4tY%Gs|oV?z*0YCTTW4_39;Dp{@uRHyG!XlA{
zE3t00j9>G(_eIfs5)IKcx?_`<#Fb@#U137}LZ<i$&+=upE3VQtcd4Ac;FLZlaxxAP
zpYX~2q~;gI=Ef5*DP;D5kK!-=;x6eR8_z$`jV?Z58GY=jG=9tYZ0A~FX|39hljuiJ
zUVT#ZqK%^?60~i8Coc<6vbV<t+wq@pGM=E!KD6-@%J!IQEO4AzP!=EQLyS-xmn|Fd
zFE}xccANQybL8Xupa!09XOt<;=v_5?4(m=)+ll^G94i`~>H=NEB-o^FQQz@IncKA$
z_q@Vw$mLKqnT|ao0=nSr`jAM5c{dueIIg}DJcl{Odih1mHgO>B88?h!E*Ma@nG`;e
zGsupgb4>im4&u^!ri^-ZT)q{TUiYdC(rzEBTkXj08aEjq{mN$Al67hH#2NSn7u67r
zUtS}*uBzHVMV++6&>}DTs2siF-F$#V-%4XA=mR6GqrDrs+p0fl=l#diVv4{dc2F*z
zDemSO%RPr!f#(@r33sNpdUl#dNTZCQ+Qq=8T;(;!aJBLk9EO7iEk~roQBFC;l>itJ
z!rz@AJV-dpvZzBjwCEJ4qGHJ(=RwspcyZHw)>m1`1i&q(!JcSnR>reA7S?n$I1YPp
zHxncDZF(abKBUqcvbu5-8^H=YgMm1BzpxVu!9>`Ii~dyZU}9^|Egx&+DW3$uQ*@9F
zwiNHNM$yXQ#MuO%7Jdg8W)}N+a@huddcUBnF~VLj3NG5%3fQ^9Hhaq^N;Al$KJnG-
z4@N!4a7Y}1IVrKof%jC;*$w-`PI=-Je97Y&yW^+ufO95o)!?IR;xK~-dSRP%(ALk?
z(vZXkFKjkdoY3}w4gDNTpw;lhH{110;|+Jb!JR3CIJDFSW5%o=E0th=%F!k?Xhyse
zkEthlZ67LX<b*7?Rt(uH?9@N&r8?k7>isJjDwSMOsVp+emdG@{>xs%I529;>1H8AA
z%9gY{X<(mZVidnBPfEY(t*_JHooKAT$jU^h4Tu7ry82bQB0+$Hp{=$(nd~r_Qsxq2
ziHy?0nay@E1MBU(ws&v;qPKQms6WoRT~FfK#|PY^M$E)l{<Tk>A!5hVSZmY()wqP$
z%l)F4>t8ux!-<!k(09#s=Yc5bGdz*f5p}@GI(a{~CYq3@<JP|qzAlv#H_#eKt166S
zC$R+Ij7#`QvKp@Re@LlVbUfoDWd>XAFk#bY_mYq-2Jl6a{gx8TV%HOn<Za~_?^pY`
zBCvGK3K`mvj(HShm+mrITg^-AeOC)uN}te(3YSVxcF>JfTWsr34n&uHVWIltlQ!~A
zOI`gdUX_Oo*M%Pflv1bU>A2TJc8rz#gudwoKN2q!b-NU0I5>L~Kf=y^HGYR7T!@3x
zBN)BZgsty)RIjy+#-r-f2E%u&6SiOwKI4-%*v2oCrGM%BMQvS(QQ0CQ;xGPE1xK&w
zM|!iS-imVcyk5P(fkYc~jNuUklRQsL`v`8)$1-Rn;3(Q43XVjo+FPsN``vw$trSi5
zS?C-LmD9^42BnGkVwDKgzL5Y9h+J*`ohyho@r@?=Ll^fK@U|i1*ZN8K#L|U?6cSP@
zzRE@yyzCE<Vy`yzXZ+JXc3?CARI01T(pg6CzxG&n;K;Q@`=Yk&fp+NIjA}H-Q1L(p
z7)4f%0m0Y)f~w(T-D&IK+v*4Z@TfRKK>6CSh72TNi{%xjL6m&>0DkH0MK9^kzm2Ed
z9*-E~gO1YG$M6R;;+ehXBjk~6kM&E;K$|369S`6rUgBv^#GB}=Pmf*vHtE{byM)5O
z`4Wp%W*^#K{HP>;=?CEf&0x1_bqtnVtYRDeu?Os>QJff+xA+^GfQIa9@9dZEl#wVK
z^dm0fTl5pP?Miv@&TO67C1ElC$=p)Jt?jr>eA9k|5jt5f%V@TWu=24z?NfC6hlcQt
zKNW?>6^)y0uxhFAtJRU!>tm+%>DjHM(!>5A)75&Sm2mMWP5?<K`%HpTFS>!<Fq5q@
zA8oKPwxkb8-nb7UNBI?7y&td_;m9Cvs9PS6e4j%p&uzx>)M!<WltszVBFDO`U8T3s
z+fwu~gHXQw@47)E9Y`D*b)p$ckgB1AT`!b;8G~L>73ldyn~o`H0g-@A5Qi6v>sU1I
z;Kdg(44jOj!y-uFn}Es|@T$S8C^Tb1M4mf4cAR1dn!3cmw<5In34lsp;e;(VMK^cM
z77^@98e3VcUu>r#RY?%Uc62nA)lOr|<QU!rT`U=Vkh&GX)oE2An<x0Fqs3DR7UY08
zIwXMDnp59cprE|TY`TpHITR$Yn_6iPekE(ezZE0qgO8*HZ4#7da^rE?Hx_h}p1D(i
zMkL*>A2xv*HbsTP1;*oXgIrL^L?QL8gX@L|$EqbcI<{Yu!*3<Gk0uLRG>^>eSL{OX
z7%9woPRI$=q1{|cyr~XtNE@GoG~H1Z3}^?|57t_osw>_cqAO*E6@Dhps`Dutw)ljE
zOriw)2K>lVB2FYT_LD*EB-RT$WI3rm$-m&CeP|O~wnoP)H&!O?_noJOLbTs{lCA16
z6C=XKb|ViwA|In!&_l~$6eq`q#8M)ZdH@8S@=aEC$~M{%by}c6-7pAmJfS-1p=3G%
zYztL|_*>-*3;0Mf+^0I<S~>>sHL~Hymex+YY_2okjr^cjtO-8_O^$ng(Tes}x@K$a
z5MY4=w$Nq*(M}Ys8}^HbXkT{1Mr4@YNEn~=nedb>>11v2nfO)T2kP+?3I%JQT!_9V
zY{4jg3RQk<$~~U9(fw6j754q{*2+LMKZ8-z*^L2wf}43uuh_Nm2^${f-<6X#<J#gN
z@!YVm4E)xxBu?}f8gY_7{8LpYMUUgi?b_JlTIeYb5B%p?6#m@xLjG3Y99-?AkMCZ$
zrj=wd9%QaC*wNdFD*7Y-UN~t3U)rGRxg5gS%pS?@h8>l|GqH)+$cz6XfO=%6EGMt2
zuabr-^x<JT`iI81$6O@PlSZq{v*&l!a{$hI$)EHuveo^R<XRVDgg>bzIi#rQ5no5h
z!Jp`d{@@6Wjzt)qvZb!um1&7n(fA)6*ZUt{l;Jy%KjKTuiB|EAjZqBw;X%AZZD=F|
zjE%c_6fV>XPi}(rf+>gg2a>Ly9M|yXpJdVn_xtQ&zu1r$43#0e#AEo|PHglcHbY-!
z(VMzP)Y!5QkD)K+IJT>%csY(G$HLesm2Wam$Z~WuE>)f_d`V?n$tBNYMZ*ldOlvum
zZY-r;%d@Rs$)k4c9DEqrl@CSQ8Mc&d)Gs{KUV@K#joD)VG#te-zQ<vX3G^A-Fk@wO
zDS7eAfLVD6o#4hle4Fu%xO2X;+=ux{n6Izq+|B$1tLQ?#(h&{P-db!(K5Y=Z=-1G@
z{8_PBxR)Q&{|*Yejw3Phs80e%^T0Na!Qb*yj!yB(z^gqF<9bB8+ePzXwbenNCP#eH
z!7{RO8(o>++Ld-Nid>jB9i_LelWn%4r-|-8X2$qr+5iAR07*naRE{J1HFPI7f@kV9
z<+R~AxUrvpFcKmYe-O7tmzt`iWK6{$e>q{lc8DyJ{i`iF5&uOuKEE8NW1sU++NsXi
z>x6*pmrVUh`;^YI^9ia_9KlU7RI<(iDGrC{pr|{-*d@)2-lnS)NoQA`FZB#dHBNVi
zR4ylAuy_PJ?^9ur+sa$uxuc^Yil+FcZfoGyCpy(&i}pArja9Yi+?)r8t);??j)jRw
z9GAe0?cyz&IP#??9!QR(YcdALv9}tGX~YNhtCJ^>WZc+MA@u1aLf3>->N4+){fsx3
zWJk935x?>WW$}gdqK5-J{jII|yKQ3}H@0iOBE=tW6oLuK<F>%bo^f1ArW=K*TH`3}
ztI>p7r~?v7bmb2Y!yArB8t}+KW9jSYUu+W6W8gT1r&%f98Egigr5mO3eUoWx@ofh7
z)ZX|ne9<8Z9@rQhYrjfOXZ?usp?%uk*3L`MinFp0{=@!&soT6{R=N2$e;5G&lm;f#
z510q2U`;y-c4?d8SGKJmq>G1abO;bFB)u(s(+M5o|L6gB3<}cM`XpXn$d>j@ZX{!~
zk8BcklRxek_<O=at%h~-@B{SWQT-!U5hs~otFIJIwLSQhY|9|7n?GG&PBETPsS@qd
z>gsr-DgELQBNY$Sk6pna@!sSKw;@KzE8Bu|j-_GKx98RH3igT&WPN2=oI$fCPH@*j
zg9Z0Ng1fuByIX+Z?ry=|ZEy%~g9LXCF2j&81PGdJ?%w^L`|R%Ddb{5~Roy>YPMrdK
zzw)HWTXu+1P1>T6c#z+bvJqGPsY~;e+Bzlx{>ISzFo-ds@rn1dcKhwFL4nLq3NRxr
z9cElR<a@W6W&4bkG7=K?kqaBuXP0cw3TMss8?xV5*#toUf`()5VvS%y{i36#-+NQ{
zC(-~kj0}%0e<`^mdIMUF0XmXz7eXu#?`iK&kP&<JnFR@lRuiet?7zt{h(}YQrGII<
zljkt3JX>)3-C>v-pQXsrSq5_NOyoG`;}o*YOiLm>Dt9OTVYL7FNLFC=>1p(O|GLCL
zo+%`&vc<E_Y$Vm?j-FA+X>XvVUumNI`;oP9uy;2SY%%?||AW06i(8Loi`Mf;2h^g(
zw1=E%zMu?p8Uo<O3MtU;&apso36XMXm#(5gpUpEZBoFlNd-@no4@f;@-wi_o_nQ_f
z1$d{Yr`~Bhz)6@VS#~=RRAZ(|$T7wIba5ou@y0+G(jGfkYg4r=CaZtx`bPgAD4+@0
zW;?=5{TL_LEjg62!S_iBxN@#<c8MO+wSUh%$1SqeVtvv6T}A85?Om#ju{9^(B4lb4
zx3@BD?CTwy5XXAzae~+D_Y0@S;k9aglO_Dy%Z>Wpr>0I2Ef%gb4z=NOP>OrG?;}Ct
z0M*Pb_uV>HsMV)KqLM7i8`b_JM2rVP=fX({?$cx&v?Zi$!guqX=GD8B#n0-#3TKM(
zprlZW3R|aN3N^En#)_M9;sir3(U}H^Uo3!+EvcSst$%ABKd+!f;yh@S$n1s%Zb_+S
zE?L8KLPy0Fr`Us~I6I8R?a;fg<#spFaGuf6+}Ej#*Hb^}2)W7`hob1kMz~0`Qi`@A
z$bF~%QprxIq1kSW5_-!zpM2+e-c%)q-K`g_b@huZe95lFv1ALvdlMR=X;zp1q~3}}
zu*USRUl`9K|B>X52E3$S6HubuV0P)dvQYJ-gl;Rd7kd8gF@AHw8tK8I^X1At1oG6d
z|6aV1ZEf`IoZE?D#heU*L=FScH*lP-_+_=2hD*{SVi+kL4WWevDTR~s8+C}TAs@Hh
zf7=L<fDv#4lKpPrqs#(9$M5fU(B}TDEddhaI~Cl#|L#o9ionaO{G4+{ulgU;IV}Qj
zMQ_7*WMLD>zalaYR=59muLJMoFtgItA?pk8rdgRk|M~b@BWvMw`Kr4x-J*0;qIVkK
z@&62UPJ$2^ziK1)@N{|`-}&DtHVF|jC9SkQRO6Wb2h)H3G4$KJ6YJg3Zz@dC|DZis
zix@tsd|Nx3j;H*;eE1K7|8nZ4UfRNI`A@y~<#_4;GyeZH^Y5hL5^@af^!Ks?|Bv<m
zMC3n)eh6+}VaE`}M3~#*KLPy@l>ZZT0wgo`cPeVz=Iq6Vo814Ii~kQ>i!c%+({+n*
zt{P@O&COHz@b-D^7XsG*^4NdvJy+nG5s=#@Vz`72iIF!!-0;uy>#85LGPo0<nta#2
z-c{k|>Z=+`rbDB$WhAhsxqhksnZ;b2R;R%<qB!s{yYId4R@w%HFQ85o(~M3xEN7fJ
zpvXVtK$YCzlYV+pnc6VD@6Soyt?QTuD&#19zj8_8)cF~ZJdWVnokn~JFd44PT&KT6
zQ^ub7tV9}4z*m-9w4|7mfDKUUzJc?GolBqvCH3+gl9*!-LTm;4RufF6z(HxQh1tm|
zH!-P$M9yC4TSHAiV6TYLCKE>nzeP>Q&XDnoB#FlehxL-xJLAQw<5WS1XF6ocQmlOt
zA{Fz$Ct7pgI<oD0X>2qb(|T7Jetq~z+g!zTISSe<%F_)!iP<<!->~Ydk40!%&7X`?
zZLM%e!cWGEM7$kio5WRzMtSs;f*fS)Zmr58MP9o(ZlF1sCI3izpDK#yia#0u7T@9|
zy3IK!Poh}WrG4P%&qKgMiE)vYg<&xG04-)8-My|Mqj+xJuM*=AZPz~u2@v*B8xHj^
z)DO|8VMGCUk`KPz&O4iM$oF)t0Ty45Eo$=+%rE&mLJ#*{aK1|V#g}n_-T|{!{#9~k
z3E65ow*R(J#hd*eb#ls@)#;@wMRz#}<t>}<B)OaYGsrUI!u7tuJ^fs`$qeTAcLQ2Y
zAyjq#?5|BG1}vd{NOBxodmfX%P7Bq3?q2KIzENl_T@kE#%%FIFRQiETj>1gG=-^&f
zN6P$lM$KU>wb5l{<>|_b@wV0JV96sJa|4{KO11jbPJAXW`X_J;>wPOFzKARdQ4AF8
z2hrbK?lq|W?Aj*OkBkzXzyYN|@W?-Ix@|5${rlY{=fr~M-ZpJele{{~S0OfYDe1i<
zU2g&m0aG{w_Tq>81N9ALXKtGPjE<szn%$gVCs3<iFktfP(@Y$dd_Jejx2TQf)|O^n
zghMVB-b?QSuCjZQ_Jc(hdHHtDRh~x7;n%OpgSLa{es%xLr9GT<nSM@Wyf4tk<?4E|
zx{VP*AUr~XScpI4s3eGY*<xq$c#yhaZY1R{a?36Kz>kbf1|d3GyDcrj7t9=wcpjLy
zP5M@rd>E7-e0@i<-S{{GUP}JHn4NV3_C}mrdsu9<8Wl|L3_h{k2sDY{403JvRo-88
zn|w)y#;T9C9Fp!;a{p3?F~7`&%p_;i*a~t47jiz2rXN#TFJ%u_nY)&0*ZrAg^xKe@
zpFh)L#H-KjN#5T|9blk&U`RPqM#A#b+XZ9af@<#68hOlgzoNL$ShL>M5&Wd939wN?
zx&2UsBzCHQq${-LUsAF>Cv2ei{C?)3ZK95Ct!T6)gh_Y<Sf%;`RI5_ich8GLi3WoR
zW9njj%U%6O%pcQS61hKo8QF|}Mq?aVhOZInPF+Vqx4&T3+p3|uCQM&~50xW>d?Xqa
zrs(`tOW1$st_$LQXNdXkU2+}dY&=LX=c4%7Ka!SLsiys05Pk&cJA)Qkh>l;I`7W!R
zuI2>mU*5}so<$q-9RdS3ZXaiwDpg(KwAhW&?=y>AV2Otk1(kd^jRYzefxAu8N*3mA
z47`NSEn+|!k@|xyG#qrPe#{nvO}B%inz^(xQiGh&E?ZxdD_xN#GPQxsuQRc-43OSX
zE6lrMb*bAl^4nx0=AH6l!_A$ENI^q0(4oA3fN5>&*=vi<13eA-hziDWsRFsh=7Z9y
zUp}d*3rMv(B`@o)8d1(-jj2e{gEMhYG?k6p%w#6l+H12@Xn;hy+l<5q#r_f2Gs9y&
z4^owhzv8kjd8Ck-ien6_6Q1J5UQf`rjCxQO!b7La3w7QSpM+7#T(#V|B9epmX0|HD
zY!AoWJIZ}n9rJEBOA=T|9E}qIJf>$!XCpD%H;8{h;mS91A6bxoTbRE|b=lPfT1XSd
zEgQy@{Cp5!jkP1S$$wjB7glin6_Hw$(I@s<>+9Bmg$6>p?lt%iWiFj)x}jIY{9{hr
zqtjya@u1ocPRSz?g%+yXBP~n@Gq1#ld`6Zv(8tE*!(f(v;}>PDALXp%zsNUa;}{fE
zdIsA3@oTD%a(i0UGVE1P=}z=t6byg4u2{En-!EYW-mbU}0|T<vp_NqrE#L~MT2lT_
zAVn2HUwp-F1+~t@*N|92kLoM(F~%C)b`I%-SbyaqM_wKFy)hI@>rY)vU%5QXxRF8$
z<EcqG<I$G;Kyza8n9y~z3bGqIy1WnScc+NAdvZn}X{a5ekxy5(lXHt&12&=DnXlPI
z^=ABse;>cvC>5CHCPcRl-K7L`p>8af9B<0@wyJlA7(YleDSdDO_^(Zq8l|Z}Ey~Nv
zU0y;orl?Q#RZuI+<EhxYpJD?=Whi<$o!bQWB@#mE0JobZ5ByZ(4_|g9@}!vR&BR{|
z#QBsoJWU>TKT|;8Q9EQ@tSnE?oKazH0id1|Pq;<WIFzBQtN|lc$e%L9u<13wavU%S
z14d8;h)~l2;?s;1azC*H`OInCq1>{G3|8!p!!zDJcFL*I7pC9uYrU&nFNV#JR{b~C
z92^n1Ka_o*R_R}=jx?S|w<W|ZK8ZUcnzx<P=Qg|DIK(Ua(`3-lI6l=gu+#)8D7J!4
z3TM2PU-z_REN~iN2OD1R=;el6pJZb~)e(kCAW~#O3S<AOm5bU&Z{7-YHV-zqT-YBB
z?VCUNCbn;yl1jv~S8ktufJsoR3|et+1+%SMIZq(H8D1ZY+pJUbL}-tx9F<{Vrz;oT
zetw#IKVg5tG_28YVtzl~%->YKw<hq9qN=ArQ1z}#`WT0oVP3~pLWtcWTFhm}0-{k8
zMKDF3MC~r&IL_!I4$l~d`Ep}rV4zM-mX-cp!Zjs%epwlqUS8n;j@I$Sl{^8$JX6g#
zLJ9XNd+zNUKhrjpv1SXaqK)Cjf|UGthg`p<{Z2XHpXOG9y?Njft#j)f4{CpUZi@14
zn3O-R)uJV*Z@pQW3MGDC1QBiwBhT>H)+3H+hcCj$PqMj>U<U*F5;Y+|EA2zgjx|ZT
zmOJ}Iw?&(wt;T+0l&(5q6i9>|xu{^8G{R2{o0K{6O_M;WPAY;WR-AsRv91aFr{y|)
z)_cWKZIC<@Q@n2fq3c}^@;cxn3(6)j$`pr+1tt00gD~hP{?h$v6ZRbG#}*f`#S-Vm
zW+;f?PYy*yNX^7M>-d5o|Aq=euC0xYSaQWLdSnix{c)4-DDaoSd|7>3J^7Q*C%Q{A
zJ;ST{sA4``MN9V=iW+I-`Wa9roj)V8JQsr&4>Ma(lI$<prLi%CL~>(o@jnqLPi{*c
z&hem-hk@FS+Ooic!niE4Lv;^1vr99tYt~tC#zV`J6mOntk{)JEi6`pkxAZhLRY+Pa
zgQ941K!vgk)&j*b6MoQeV%9^L`TLs39$c#Vnn4JEArMX1Ao=e+qubKRLsD+?HB(4N
z`h&ox@vv?%7;gew%F`{7B-JxC`<+X}b7$(CLBZ=3EBO(9-GmczKd*7|6)`39v^iKE
zfx@r3ySL<)HgKJq;=p_`aV{N@|A>QQ_GQ%lqGq&VqR^W8n(1jQ<O#bsopS#QnuVTD
zU01lOze~iyfrs;o!T#0}(AVrAxz@9-ty<R_^u>IOi<rYAW9%R!;jX33`iF#~Wn2gm
zFNm4{*}rWM#w()G<*QQdrKLDzD<BGoXV=@d;nyw9P-DKEEtMV1zN$JPsqoZyCPG|`
z;`9xOp3N>F>QuoS#`_f)<vBKKnHt?^26X2^=^@h%BmLH+8GtB9#5AQS>W};hf;nH!
z!N**|S<eG8Y`u(qeJu5{F?KWwHI8m(=`cf>4J3x4bgx#Kb%DyDVJ|%@27M}N(bZ^<
z&GhS2zbC|x>L_zvr)W?_z*Q=LV|YBsZr}@y@?z{enU5(qP4uUX&}K&VLUZu;MniAd
zd)>58W71qNN!}*NcwGhB&~t^iI^EYjNy@wI2M}~|sLs%;*;5iwZ5blj>mcEKk76(!
zo@{$4Y)*I!KcY|!3pJ^3GmQHE3VOVjmx%xSlA*JtV(_G2eR7uS4Y><oqkS8@uOlci
zuK5PO#is14=am9?%=Xj5*dY0{i<6{&kC)5drlyjL@$5It{H-a@zj@7vfZdjHxxm}d
z$jnsV&e_Eoiho?_`xFifO%w}=P5AMMp(CHJoo$t19b}db5my>PP6AV5Oe~zFw9dNj
zhYo%al7@I(XK81tZ#s$SSUb69A)21EYqe%y<sZAyD%0?dF0>m=q(fEsF8T{4vrC3#
zHa=1`(;aCh3G&vMV(vjmjW@nqbsctvC1hqo8MWS?uqxrHqqGBiVE>Wk&u!)2lkoaF
z*1GS6eB>yk?@KJv-fHTxij!`?<!468?T0@$c@r^C5+G6GBd}8#)S8kz^VzMni-9!F
z-FT#I3$UtLfJvWyeG_f=Z0Wt?y@(;aBw)y_zSoA@uW%FplMV}-A%9s4FAq?yOP%Wo
zkAcr#Gkee9lfyyAH+(h|bXo31q~7TDj`AhE-zl`Ux;d?b`83lh)Ma8XXp>kiTHqc;
zSfVjcJ<W5HT5he(GLXKZ;bXeCc{?5cly7LY+r?*?buX+SKNIBgT~nC8mGebuVX*m5
z-Ni~i6Bp5^Fi)ufD>Z*JZdK$^zrS6u9Dxbu<T}h_{LsSz{m5aYpgT8tP+t%p>N3pu
zhn#$1At8MSSL%+WPmibC*aHv8GVSfdxu3G=Hk<8Zc5s!;N>}U~E0gOYdS(o}&zc{G
z`LQLL-Ogh<g@Ig7EXi{mMT`f=(2^VJon>s&D8uznrAa5`l-&E#1~nJ0*9snPCgWqe
zApAcJ6<r*|+7AGEIC{}L<ABM*r<_1~FxJN@$cl%AxJF;KdYF6W$`9ypqOsz!Sdy3{
zVtOvAN{Eky+!k)Yzdi5fl2MV1V;5@+X2o~rj|uXvfFRU=LRzke(o`>}bt>ClI?r@~
z;%p`CoyRgIl;B~P`hxw%D!<uJm`Pxw`$&Dy^SmxNmMY^rC2FnbVVsYOAcD{wHw(&_
zVef-X5okQ75r=CxL{8vhYy~=pL5VIoi2;!p&aYlT;~$!0GDk~K`l7P=+~YT`{P!TR
z2BIH9uqm^S%T&eWM-JG*pCczY|12iydTAj7-bPYF;q;iAHoied-P%%-Y#J5mlaUI-
zFMq7(sMHj%m6SG30o$&I_z#O4oca$?+Ab)&g2Dr(DUvRkdV_bgfWWP0DrXHEtemZd
zGv=e1aK+b(uVT7g2_n?mAHS7L>niN~t4ws|a1JO;D^ors1B3<MMhO&;c}`d<o0IiK
zYWOSI|6qoszdf1=hsFI0PIBuQxd7x#{yxlmp5`=l&A!D4OwfV!yrRRv+TAK#`V8H)
z6OLB7w+Bdb+0)PH7!GOLAYx&ck?L{OS0!wMw&!l8Q+9fnF!N3<MedLh_&0Bgp_%US
z9v{$kxhuyHhFGz_F#3)~3H71lK=ygM3SHmbaX-aQ?6q^jkOPLUw`f*>Sj!Wuv7&?z
zbCv6*w$FGpY;AM;X;^Mq1rIsuLwCXfXr5&93*59NvIehHUX%o4sS6rV*jPgH7`?f6
z$`hXwzYR`9@oqoO9v7iaaK_&T^#l2}!mAKS+397f91;23+3+qBc6WKSeIe1@BLgy*
zjVm)u<?~NU<f1!vd*c+3coZ~Yo2->9q?t90d~Sw_hR5!((zxJRXF>g9L<xl8nRS0q
z+0uhpls{Vlja$bJdr*X8OQ-E9wTfhimg)3IeX@dGqhbiASi;|t7JR;O23W**Q#;eL
zcfk(U3g6RSNXcrLoBgY&Jqq>y2%1?WFKi|dhp<;;)O3WeJIJ07kW6s5krw)g_&C`a
zVd=&}a80_4t-Sm3--el;<jzW2yV6Js(iAD|Xjb8$0lbHpV{*pVf<XzfGqQ-{ubSK~
zCNFJAES{_wfEZBc6Rs5lSIj<10lhfPw9h7SJzib*ARz^FYu%$^5Pd5;d3+W-NpCs)
zMN-~myZr?vu5i+`X%O2~OZ;`^>>zr`b!Zl~sH{SS6a=8i%KQ_aN2gB;_KV6ym0K()
z+RS8?b31n&gB3jp2$Bwe(SgB(FNlIMnAo!T%UnISHs+_*7d@Rj-NxlzGy+m-JEV5O
z9+i4fhS0b%kI4Ki16N=^nc%sgFc8a_qAF#(plwWBWO$F~L$VE=`O3i-7*4i8r9pZ5
zvoMMr3Xdg14$M7>(6kh7|0)#>UW8lk$S8VfzjuOla)=#~FpAw}cDT+;N7{wnejrf&
zRk5|E{tL(FO>p}LnN@2-YPzo8AJ6z7ae=7=o=>_P!W%(-O;f1K8mlMt?9bsDeRqJN
z<|wUGV+t4xfsPAU3x9Mwh<#&ku2f#q!6c*Z6c;~E+Kth?&{??FMyBTm_@IS|yi)h4
zRfyTy+A@!G{slZOv1VOxe5+I@*PcQ7DfdYlHQ6DO>E-ou<C$pTB)f?528Ti`Cr?Fj
z!W~KyZJp2Fu_{Rwp4b1_Dw~kt7<^h%EMI$U4vA!MU&As>_PT!{2(~Klm16kiBDU`7
zqZ-}z6$(kUmTJwIAGA*SlN;n(h7tOJO7TsX@7oB?#BCCL`HJ}Oq6GD`ZwI>EuKd}N
z=Db~cJ2OGOxv1*Xj6yinOLaWN4ux!~Uo0ZUVbW0M{b)_f-2QR092wN@7TX9kMrKRv
z?DpKj54Nw{JV#YqlKn}u+*l8JC4yw%4fJ49A;-dYp_uA36XI{=VorkuzshCP4Z_Ep
z7+y-L&0E*jx2Rg*ze`G|Ou~9}kU)(XW%|Y8GjVg@hbr%n!Aew+X&YTpK-E9uqf+fT
z%4Y!VpHAE#>A15Nvnv8$)RKRX(|gJiNd5eZG|Y_3pH-lIbG;MuFp?sqc1c{a^f{9g
zk>Z@${*c=Ec=ke}pnh<omXyf~;UhfFprXkk?ggM)xZ~P3;*oA6Ac=`)|3vx-xP8R)
zm{)Z1Ph5&(EV57`gP6_#!opXMAg-bEPo=5-Qv*B-(8{91rrO{ReOM&{#}SU+S13m8
zz7%5$o;jSGk5Jkw4MPTkH#|W%IZ|U4rif%Agv;y^fejw{_+mqHuv!|lOMJ&5SU)1I
zj_&#(a6fwun<YZZ*dwn;93F{AQCjCFea>a6ZRDHEF<W(ix)9y3rQl$x5ZdC|DciOs
z=zUZdIg+PGj)cf)6W}>!tx}SQ+*R=D53^jfvgTD;Dxj@d-xrX#Yg74h*<v{EieLPz
zS+tW(oYcAoZ2#Ws^!TX2cluKUbLa*xwyYgH)QR4+@NJa1xRvuWpzJ=Jcu%2<&R;wC
zA$_wFXb?T`S$g}3_+zS~v330iqqaLqPZsmpA+rT98W~|1c1<c8gwLG(`~o6!c`Dhp
zK}p#l0vxBZ?e_oSS;6ZKChW~tr&wZ~iEZW_DD&FIYf*|;N^Lk{TsLtM`Mfo~z3l#s
z&Naew8P<efJjlufH=gP0h~KzE^nBNo*A=9=%OYpvKA?kkMka#dO8}5X#b06|6jJ*u
zvv*N#e%<ZwmUmgJ3LPd*EY0P3C{ZHAQtIRi-TFR`>~-WFH;cL?w6=vxhcB$twjh)i
z0=xDX3YyJXEj=sc43K^y*B9}W6?&*qyNPf9w?az{Fex)}woeyPD~G~K(4LnF$F+8Z
zj9<RwuQ@__L_qK^N1UX;{ipv>(a{N}>>pf_&o&pfa+9eiAE{y*`flNEk#QQE>)etP
zKjhsu11%%LiK^T9h;T%Il@n>#ecuajb_ro(wA}TAT-ynN^v$V=H}u#M4V~@gaKq^}
zUQUO;4l|#`%7+~()gzFKU7aZ>Dj1W30h&}HN-ps&zN9C(?o#uw6Rw`NZV$bTKWqgq
z3@`{~q^vL=$aE)tqcvSJsM<c-UeN5d!9p$#`uF}Shte)PL?+^}Wj?0-(9J!Df>DL4
z<s1?@VD>hI0_<|hqQVnYlq?fUVC25G$BSM$pNOOSx}tZ|`nOx%CR>vTeY<V*pNJ5n
z#t+0zIQA}>?r_W;t*g8rE83OPV+fbx$#*AM-^?s^HXT`!UCi1|S0_hI=$Q=CV$W_I
zKPJ05ysXBd^lJ!tCKE4BMgv~Sg1&51%~n>OCtj>(ysd2`fJQxuQy1y-CbaI<1|XS{
z>bJ{s&LvIG0sx00DcO5e%mkFd_!iHi5nSxTO`;z^^t0R_Da;=k1Glhg`L$xchS_~z
z2VTU7z{IhW+-R1LBm>8{DfB;*TJb$>zgtVdI$-|la6b9ommR$8BQpQ5E{%SV`>kgs
z3Sg}fxNoISzm!eM@Z0sMet=5;T);d=-AeeJqFfumULyVV3*WecAm*FjT|}<6%5#|X
zz2hTyQ>~?IFhOco<y;s^3Qm{)GriA^`=B#VnjxqupCXS@C!SNj0D{cinIXqJn1)_L
zJ70wnoaxamLhP|o%^~(r!A;_~7uvU?%HaUNa;_L!nqd%D9(=f4oz_L!1QJAF@mhn4
zMpuzsVFpdFW!+d#2tA-21qq-VNQ0R69wP*r`s??g!A7Z`<j>3l;no$nhOLPvSfpa>
zUQot+X?yf`B%Hu;%^4|9X=SFUpm9D5!5ns<51VRfGIim(O0{t3n@w*w^PY!RLqr@?
zB%=KUn@!q8BpImo9uEDpp-bw$%ds&<^rnsGcP%D4af@C7PHxir=+A+!^3S&|Pl#$u
zj9z&2)L66znyzuGOA!Dd`N~n|W_WWdG7Aflnh<#iB~F)nTnkH;nk7#$cyK4|WZYhN
zJJK#-+}{fR#Y$7t&DXiNp2B4PC93Ti<L{KJ&4d_~7P;cKy~Bko_d9CeO;m`eJ7gSZ
zscxF5WJ;-US{WGwOEPcr)3Lw2Af89n_lr+cLp)9Fa|2wzl*(bprx;ERKkQtcC!}9v
zlegQ+U#Ilmyw8p0tv%23!gIMi<*!|>kV96hR3@W1PhWW{1uqS3FEj#6Szd_Le|&|q
z+Ki*h5{RW+7gc>e(#Z&3^Y>mH?siG|KCvS<>zZF>-_o#c<3fFh%6b)#HR;*P2}`H>
zK(!W|t$Il?Rxwjf&?iY0a!HWiNIY9jFqmdLjLNxP?R+1C^!tVa^4U{5*wDe$5<~oe
zn!5C>=SAwN`>7!{7yc(GY>#0Zhdq%0MMnD8ptgz0Wf_31UGNOz9IR=E;FeU62`plA
zqYPP81U*j43k9UIDG|JAC@CHPto4QBMZU)4?>}#(>XXZVX=VPbjAn|CNa`PPAJN|-
zYlUsx6q*M84I-gS)IWl2I5hN~NqHP=GwOxmtJ~<f*n7!R9!Blm;LYB+z2t-~IBvl7
zue}QmQie!z<h<an965{u!8RQ{!NT&Ke-l;YG9j5zUJs{d4;Mfn)B&f75`c2VE0}ae
zQg@^G1zUzePqVePF)s$V87b*O=1^<uPuFl5W46o;qY|p$do1;ajd#P`Un81HnE)ai
z4y9$|YZ<~Lx9I^hpSsu~mX_2%mof{9M;4XLZ<kh>psL`-a*}6deQ?xN5^KPLlxdkE
zpS56|)>9VKe3H<gWpPh$GCq2nfCq_y2HqRp{XDe;HIv~n-)ItFVBl2~Yn{}|IPity
z5!B?t%NU78)^O7z$j26hzvdHDa_@M*scuG!4a?h%{~jOyh=@61>ibPjeARiBMS15D
z**t#eAKmO;vDy6%LP|ZZMsOi-`H-NstpN4@%KNv?{2G2Q&i?P=$}+#zNVM0^zDLEl
z7(60a_wJw8hjD#ki_I5Qp3^U9yx=-+S^?oow&U?IcH7Z8k<ryxW7Dg$;5+Z#gs9*@
zj+{hYkIrJMY6inC&oMVt9%+1-n!T_r;DyHNjg`3H5>7Zc&>S`XjKDkNx>bjVb62K-
z&FsXwA^07qZ5XF3;;wAsLLIUym!#iHLk&UIElb@b<aTu?w(m!0pZ&|Jws*}S@aP$j
z9NtF8z(7KYih!GWD!mQ5iEF^^*VGShB_4ePo$Wvj%b}zCks8d_JV1+9x#}k3Yr)Re
zeIiqnMc6q*{@2SY40RKZ(jw8!5AwZQxT`*J0w{^U^Fa#7!)K8WaW5M@R9IWC?eU38
zevm5;r`)~On)*un`^N`V!6>l+B>yqJejb<u>53=!%5tdiFcNnsy?KD+@PQ(o!yhfO
zi?n5ln83I3u__jGr|fN*oPf{b6dZw;FdroutJl9bZp>tEq;3f-<A`9ND!pZ8RVj39
z7xvzX0#fFut)Iw>;9IQM0n(#q_C?Sb_(ROX0W;aH<I}!>=DD#|^D0R*K=qJQ4P?GH
z<9<w0?k;R_e(ZcTfp<$(vh40acXMh$8cz%u>4mE8MlpiGAv3df4soIy+&K@|ft0(U
zJp*9WLs{c=wTlm5R#ji^c@WgKOhq5+e?X6jC6d(fS0W2LK#yrXjb6gcJ4?rQ{LdvF
zMHen_<W#HNDJh9atg5((yfE~XO@qw!w%(gAbDhW_a7Nd^OrDSzYmWx636kqV44neS
z)l?S`IHn-hFPh(NZ!jpI@D9X~cU(RKbU&D8QHpD|-(ih8&4R+auroW<dkj+ATrgzS
zR_7#P>_yZ2k5TM_TM_!g#?o{HqQzZd^V`lqreck+sm#w_6K#%rC?8Zsxw=)4G^a@q
zlz(5#)g-X79xKm6xJmrN4fvw%HCTrtSUj{#Y|I^;pFu&ta*JVjpn|TX80gM#wh(1-
z6XWCNk7D@#;rGvJq6ajJ>ty|8@$1&?YG=s7E{XF$j0690X^8nb;nbpgLLyCJSaK}7
z#rJ$b7`1oK%^oxgD?VGVM&29am`wL3g8jkhC)L$R*R8cKiwH<s$8!+9f^#!sAx!to
z{OJ2pt}E=FdgKq&SFO0{n51wqP=-I(KN=)c$$RBJyXc!=RE-0v?n|>vRo}9{;_O4S
z{owKY<1+pA_wm&;ur7XO@?NCQkNZ|__WU7zU8D?J%3MAP_q1wpI3S>kw#@u~1D9z;
zAJP1p5m?15Um2r_{Y~KE@KjR%ImADp-=(8qr_}kfAb+XJBLOQ*Fz0#f0xl$*XeUzn
zy2h-tL__ay32E}5yDGBSQdz(0RJD7+H;34CYHHl?veabKA&(PsTfJK&ZAdLU5&D@c
zN!>UUtoUX9<4D;Kk;^TydFYT#Q1_f~DLI%GR(NZHXS|X+eR!5S_f!$$FRO4ntvmRq
zEU}_`X)JTKq4F&wHEDERh7nVAZz!PsMwE0l)71_&_!r6kQ6r>EQ-WP|iMpRhO=4*9
z^{@R;RXFzPdX^;u&sc#|5nbCkSwkI7<hW&{_dqF(nOw!|Y6`rIKL~pW<-nuGJuyv+
z{GX_Jg{U!lggQD7$f%1r@31>mbP07=^Y~8-pY~^i#s&nAS~@qj@I1{2zxDsN)lF9{
z&U|u{DQsV$THm(^#~bd%IM}+|;wUJ(9+N;__brZzUwceXC*wT%${%P0jm4_3o#=DM
z<3vosn@vVK_gS(BrG5=ApS}XHl{91nj+6)^oo^Y6TcSM}gLw$w&A}t+YPjnM*H(tJ
z(3zsYq{qTX_;R9?Mi`;u?Z~Kqii=z#!+D6F*8B+1<mOXw>F9bNHHI3#M2@qhjWSZ{
zatZ&j)h#Sy+$Xvd%XiI_a%k1EGr41altNfx5L!KV=1(ru0qQ`byrM%nVgNhav+Wh7
z>d+%TPr8C`+8J|4$eSaT?*Ap*DjmB%PTAiDPpmx4^g>B|>F7#Gz28(4GH^S8DJ0yg
ztaI5vDU)t{@V-(QPg21Un7{zPcn-DNVQmpB`O+iVNHx+lIl+$uvp$%hs3dJwsc*jz
ztgV@k<i4{oo?v~{q)%_2oKillMr)W5dc%BC<$hJl*?jUpBX)IWG;1dc9!S|as+fKk
z`!V=9zyPKwmPG{P?cW8Wpr5pxzZ#2@rKhA+!QqOp^9Ps1hUqYlY1g;ABksO2(q++q
zZSb$N(O&d8BH|d$1|1$R-ZW%<J({@1fEd`2Y>;lGq<4~@?KgAJKW7qJ?6PIe9x1!8
z_+hPjaMqC9DvGZTTHtI!tfhEN+@E*6fgo#Gp3|g_wmFQh$-ha|l7Mp}^C&!z|4Acf
zGMEyapgqy%U~0aAm(J-O!5!w#<#?Rs_!jLiD|F`US^he+;PBwv&_ZK3q{--V)GI7*
zDAr9OVfai}bwMw44+{N8k`q8TaGFHgooz&8FHZctve7hp`$e|vOB1XX=5lTQ`sjb8
z6*?c=W?B&Enx#yUy<@@jcPUp>zkT8aEVg9kex7Hac+EZX$A$pd#zoE+jo`Q!Yd~wZ
zv@xDR>iGKg&xuB^5vK->hR|l1eL+unevr}3J2_xnvG<3}E?~`5E}t=FypAdr`l&qR
zghl1*DZ(1^R8ktBswq!q5-YlENQ!fLA!bV{PZpqE|J|@g?3PT_#CU@0LOQg3#AQUW
zlYpOiuP%hS-I3My>V)&&w&28L&x<sNMI;aAyX^lXoRXWuP=3#;(H6eDK=%6R^r~8a
zB6byobB7lS(Vx8~AeU+5xM8_Z@msw&$>bCf$LUV)k~LNR9;4Fzg@QuATd_}(sf(-_
zi)yt!Me;s3^pp-(w%@konrR+2<U9`~eyB@?YkHG2tFPE+8I67+Zy~^0eQDz49|LWS
zD_bx5(i1ezqBQRWm5@quCJ|>^bB7DNIS(kBuRID?q)uSG)`>k0o2;*e&L`f_<Cuj}
zBqJuIggY4FYP)4lUQVR;+@}6DxKRFG<9J>sggYt6H<>ztAfqin493sb@8e2c!d}6$
za;SM##j?re!ZT}|!{ra!oRk7U{c}3GV+_t8HYr)}QrCJdk1jVe1nxE2L!&#NB1A3;
z{*d*LMzyJYnzYWE4XMb1eDU*5tEhb!-PXfx(gJaiLrR{hHKTM06JNM~yXS#pcGobp
z`d#_MBF)Ix<d>8X!k%v#^qruL-omt;{G$ID6OYFmJ8A7FWc)2DU{@V{gV14V<hn5-
zCKcZgB&YVkB7-GtVPiEQ1!(_-mV6^7Q;1T=k%_&S3YWOUZxm@@c*6xj94ll!-7H)=
zWo(c>ZG7X!X`7{(!`v0UtM;ShSW+a{^UiN)i068K$a&yiF5*<niEg->ttP4St-wG2
zkc;bPVmNq2@v5xOBlgEAg>ITXY7{i)ePa&_5~lWDH@)27DRY-9Oh%Hi{73Q-Xoa38
zX>MP{z^0q$1`S0ysp}X)!E9#oY79_H?XJeNqNRS6-hSIS87fP?2w+@Ky;~C7lxu$I
zL5C1ltP}BcxGL)ys^GxNs5HAa3Vddy%vbA%3t(FvXTS~HSf_i|kV0s4w?A9DKnV_S
z_JOqlrs%F4I$Zdga^6oi%Fn+Tvg2S&<I*9u*BO)t?n>Gz$y}L=VvHY;XiGj+_nKK+
zf8@PX_%jNGkO|F-XGAvJs4RmLUy||E_6(wu4RlGzNz;BRo&%K|pLrNNrG0ca&8^Go
z<6nu2+9IJ&TV7cw8@C-zz!dL|Tnk}NSgBiM1GxS7DZXpJl0|U-eMQUF7eCcaw&q&p
zs-gA0W;>BZ<CK~Q$ML8TV&HrvA64Y4(p5*z<o1h#^L46>GG<&X1Oj79lEJAXo;_j@
z_(45Qg8>=a{brTV!$G$d=x*RJ8F`fSpe-<6VR|MCD8UB{XR4dBZ7McVs8B}Bp5Vbc
z0`G3o8eS#D64WPC-MFhUmt<FJ(U4^ZyX*vOMbEHwb`0dqwT#vH=L$e@=$|cVb0#y4
zlJuOuUdUgLR_*A5qkMcrd7FC{=!*>3hi9+LQF7eF%J}ece#uv0H-&8l)8Sx(8SW2D
z(#oiv259LZssYRL%1?=%G_B_T5)D9cy5?5_uW<ZTQ_r7XYbDQXw<cme;J|IVw=%@_
z_#(EhcbSYpDqFfWzONEYQuppN9u#_43xjt!42xp7AR)A;Om{jQhdo$jiB0Mxrmrux
zcEWvErt~g(4VRlL-~<s;K0xGp^ynp$-<I{8Ig)gH+5a8&noRKt1-Rx_aX|4fPpFfY
zKtO@!snO$WuUL}$we&;tQ4L-q6cO7FBNw{x#4pB`l3QnMX&L!p{g?5f`@<q)5-NmU
zl(HbOf2z5f?bLLlY3I`O+jXEx`edVvU-x}qNk09;F>*+x!7pYXUSb;Uj&w5~3VqMT
zmOCc9Qc0ZK1M<Yr`7N=A>LA#dL9AN}$<qhm2f7*KiSJyJ)VT|;$*2$aMvf;v8Ysuc
zLmdL!7X7yA&us`IB4%_&HfaKX<B)z6Z6;jTB01Y(5l$ALDo<Nv<H_&##DlB!C{x=X
z#<lQZ5B|YS*mfRa%Nh`+*k$40^-UXLP6FU?=X%4VC1FYJqDV;?CIxaON)Ia6juURr
z#CxOWfZ>3mONRq30eE;PI6e2TL09e_2GYEzY3mS}^+Je}?!iUWy2yGebk(AkQi`H7
zlNL?oLT-?2CITN{MV&7&&2kPh)q-uJ!XSA(z0%r76E6w(%I=ahgb!UDNA$8G$Es3;
z$`2UqCXP;?RODC!>iA&}NDcQ9jhNxmYU3UQ6D}Zw_`Ebu7u(=$ofx0!m~}bIsv53D
z1Jb6}3bpYKXe%jEGCno|Df0)^dry2RGqazl;~}_EPqpIC{Z)Cdsb(PuQ54br52_#W
z?!Z?bSfcs`$<~DDa~#A>CZL}3&Q9@4CRo}~1GhrH!q3&>Fn&3**dx{TPLXFt?wMyh
zPZdHUXoJCVPsb**gh`u$$fO{}JX+Gnz{*3`srK9!gCZ#1+82@Kqd}iHX7!M&rmQ&;
zJUn=8;>0w?0v!te2XB?lv-?V`q<GG5!H3JxYp&?j+EuWt9cA5gVu<x1Vgu<%C{y5*
zO{a^iHbG<h(x$B_0Z@8slDn}K@?mXUqCf`muak;R%h9)v&YpyEyCEw*ev=y4`i3`&
z&?o;a7dJp)GZ@$Ggi-v9d#mkJ=|o`G<HIM{q~BNWsRBP0OamzvHQYBcm8bb?@~b;3
zl93@yg_}oD`OkenuL9e%3UobPAg{9I=ctV|Lo-cybSnfpAzYlIg!V+%U107x*!fe$
zHTV1Ujm@^fqkvTq&)}Kc)9i_CuxZ2&WaqBw`K4{Wx}5)oZc=W+chjPODfNnYwlNMg
z!2l5%!a(gNPv3H&<9yyVBKz#DwwW{&Lc=+0^nfzfcT4Z=+ekpVP3kKUd`YczUr6^R
z!-VrWv@JK)mabbD)1$qFeH%gC#Xux{=$<q~Ica#o!}rU4s#hhQbN<yNb#HQDYs>GX
zDXa++PTUJ5`MKXd&OwR3mOuS?6y<(+HU$@4$@UA1Ii-wh0zdDkSYU1qQxRhru-Nr9
zg=DL0_Aia74>qbPAW$chLlDIcp%T=;=&s`ML?xq~jQhn|8l?6!692#@?bL)0=&n(+
zn%<4nEEvd^aDB2=7Ix;m@b3vZ8)ErU%LI!uSuYdExF<Qg?KF&K)buuQxEB@^CI28g
zuQ{^tyK|CIe6R&Lluxl7SL|&u_a&azH;uAu#PwpTr`okz9_=f4&7R+aBQ?7pF%w%f
zfv=s2V)OU-3ShVL^8v{-KHz#M=#u-yKQB0@>iI=X5?w~9i<X`!@q}6A1NgWgxQ;gQ
zX?Z<wjPJbprM@hl=`%MW`wQ>-W9otD-)Xtmrr!_#-9#oV)GR;KxM4OJu==;!3#5OP
z0aX3qs+1QAe>Cr=L?)p??yqDxkNPB!lTaC~9LTI6xoU4Zae=U@`k<MDwbJM4%XzHJ
z31Eu03)oW&uh^za*nyhHAYfNkjv|NH<P3hz5KfMfSZ7x<4_>DpMKfM@hn|GGQ6`N{
zg2fFJ5gk|e9^K@Y{siTHvRu|X1?rmvYe}lD@X6*hofzj~z9Nfw%tjqlN?5970uy5W
zXt!H)w}L)0dKPy<5Lg1hAGf8Z90jlqSj0oz&_v8Jz{7F05mAT?MW+A&*FU(()I|Cs
zYgJ`R#)VuggpTV=(uo9F<Z);gdq#fG`;!&4v=B7^r(+=mM$l~>NjlI-J<yYaX-32o
zV=_r<+fL;btYxFaU94~%xXLXPw3_RijtHr22Lsai=91TK6%ljIUq-GvJ9=W&qv>9>
za9koup1=-#R@8`YHLvofwP}WQ)z*IkO*Bx6VKqS$NfQ|p2^o}El-A438-1Uo*N6>i
zJfRA6qpWajyLN?(dc>AAVo4cxE^%u8yW-ziDcZ9XfiZ}$6-C0nCn<@+A8;rn$N8Vr
zgx79ye-|c&f$9+RJrl>~8{dC!y=qe|NM(PH?o*1jQ}co5HS)VnNr&k4TVy_u=|SW>
zf=oP%LR~Z{HgmQnoh;Q0daI<wW+*S<xnt<^<6^ly*>&yPwtS1a-;=68pc*GKD0~uX
zn+QHO(Bv?VLwr%7{$+jVel2~&1E~F~L5IzkJFvT8K*vg$qS;uXNs6vNO%OfV9@s;X
z=sG2~7d0oSA!wcS32P*3TGpv;kmvQm{}z{#No~8-a@^&O0C@Y!w1Pqpp7}|FhfsU8
zpeaUw{8JNJ!DQW|KSkg-@9*UZER)oKC6NI?b>J7yw+!NSj@cla_9hek2;XbXguWfo
zo*~?J<;6)kU?g6tcellWX3GUFU-QaqJ)w<;UW@U-HCaEeg8O@arsU^>>qW<40^ntm
zbac?_7*ewAZ)tB4zPG)O0zR>rPQK5izlKM_NyjoObFtst>67?mBoK99u)e5&p-%{T
zzdqJlzqFGK->ZbPmy9rfVI3l!xJ7d5yuaA48mu--apz2=HOn!hW0I~G)H}C}NMS&h
z2#(FUtp^h-=I7zz=Kp+AfH5>@(GC&|P%UI9ZQ~pXL8+gRL>wgUGEc1<aegupl_X78
zQ`fnByU2j(IBhBx02cBT(mccuS~!!43A6WI!eY_A-Oiy3D!Yk`_%B`cMc>|=FCZVO
zE8Y-=`IYqeETMgzm7d%q4KLOK<^4&^?c{PVH9O<q3Rm4@p4oychu<NPEs?omf%sbi
zX?Uq)tuX0vN#?AW&ddIl_gh_L+)nn58Eieu$XOCka9kKUQZKIWRx_|S*?vV4c^&w`
z_{AF|lSwoVbj^$P@lu|Q5!K|abpOpArl`8K(2COa>H-NAe_|X`AnE(iEQ#QH2CN(h
z*^qda7F=gqQE>ktV?Ck!TKjcJ(rsMU*QDmpU7si88J_yxFp6!y?pY1G^R^PjR*CQz
z98sK%_{ZtkgrAI@Fg&b5Q%qGdZ(Fe`yh6GxNa+CbGk(4XJO&{F)+ARR1okMU?Mgl>
z85;<ReUDfw3K7|C6eEYCLeXnUZBSA$>4*9_cczu$6~*)voZw`OT1`Jj!i~e7ElXHa
zI-Za=&-R)`Mz?1AbdAX-myGC|FDIGrlC{at+Y~8@#+}-%OQCjrF6GvUi@GF=)aWUl
z<ia<bE7is);QW)1eTM3_49sO*xuNTl86MN}(Tk_vh~8OVkx~kjHQrTQNhX^g@n*E<
zpro5=@bd$<s$jehhjcvso~vW94)?6dTO6+S^!+-GBPJJ`BWz}XgM#iPC!G{Yj&Yk&
zWJDf0nYs-i(nQg<0`(+#x(IIdy`+0xpknKB43Ox7S=wf=*Q3IHDZp7u`)np!)v3&f
zE`u@ZTjr##``5^#0i+ns7<BIXyYVHe{SsF>J>tw;+;_g0k|h>cZ8{6SPifc01=YD1
z7u}5N1rm9|iyN`Ip5#AcyEG%t0l(x$4k|@nQurPC_QwI8!$=^7Z<y4n?5lv3QYQ0*
ziCxD`p%o(W4^Vd|KbJ({PQn}4B-;DNWS*_qS5QY_*P4L_CpB0m<0{ME-%?prGxpgt
z0b1qm_>q3nQ=PIl;b-gg3OGyoKyB|+&}z=}jw3nm$RZ;K;bd))8;^mk_;Cpsx#1g5
z$M`i<X!}$epAn=k7<b7M9)EHcs6u@e`T1dU2Xm}^c#S@IjEV<OVO{PCF=*GnXu_3F
zr^C*-%r(Jwa<7#%mF#=0mhohUA@by?QQjgI@hwmBCZEx9>OISEE~*}^P;#u(OeS=P
z^}<#V5ub=6gn%wHl0(dqcSr#_Q`xU0hXB|FvfC~9Z#8SSwxKPeg%`#n*>Jv(N<JZ$
zj-lkPej7Csbl9ma71xl&v5+!;pA#eSG~Uw^EJqPtax@3>E&1Q;xKng~)}w<oh7kHu
z(Y1<g$IyAze!B|bOSW&$QoJjWlUpQCsq``48IfQ;J$8bec`DO5M*OjC?iTI&@ipGH
zEmQfS<rKYSh6O)QWLEnk)}gbnZwSb5Ml`!G&sSNqZ@@EL2H>~ZtBrohr@c_do}3g;
zObx)oqTm(YI{iZkEdJ?Ga7d`mF<WyX8pTAWP4#!vyiL*hPn-cDhdx=>leU0D`fAK?
zDqFm^;wX0~WCQhTbLExLx~tlr`mToDns|X$b+1PacbdRtB>iHIiNj|}EkXr#Q5U%<
z-H4kZI<DI)ZxB2f5p+qPRc+#yn0ZD4q_$zWqh;y>QFqsVL31K4YH5t}3ShPY=SXiE
zBOv?y@RI_DyYs87Y*w(?Vt`d%dCiI%X1BJC$JFPshpR24_)BiV=g7C+USU?T!ZU8O
z0$I{rnrwq0+ZU%W`W>OOR?E`5`8WW?f4|-~yvDLQkM=#=UDb80Dg`7d2C&O%0SH7B
z(6DUeUH}x+;E7NF?v2v0cbBy8`DGAR@YwE1h@5H)@o(*o`dw3E?c#x{#Br}r_#E=h
zTJAWq2?;0I@jEVu18>MUYEC=*a$3&Bc6ek^#cpXHqZwb;MDA+Ab1SE<S5cnqeitRB
zBRf=HtTp;Y1<8;YrRiZm08JpjGqgU^56DW3d$aARTf|Jqkd!^GFF_uLqQKtbD0u10
zL^6^liOGVR5rl@#?5M&Q_m(7wnB9bs=DcKyMYT?KPk(S`5`jU^ipPtn#s4si2KZF^
z+EBDeLu%c*uHGl`)eE=BtWlg>2ydabQph;-R#;+u&NfZIh}4<QvD@aKJb04iY4DrH
zXv9az+8t^DU~-l2S^9Ptyh<R}Zjotbe>*E^oGg0ElVu2vO1DLrNQRVJkBR*fxL_9w
zAO5_I{j2v-_qcK}gXQUD20yqI>&17cNDX8}u&THT%lRpy_)(ovVNElp#Gqnw{B!?%
z(|T=3(ryarlVgMR<Cte-lhU=|E09DT6{oKV9?5;!WZ2@<bI(fGOEPGzf20b=YnnIp
zZ@2LYbD*g3gY27xyn@Ch$noDn0;!0(IP{8b#&9)^G+dVgFi2?JzROirBnCSf!B!rq
zun1+ArU;H@qPh*o7lzS@%_pLKG!vV#8sB;R^j3(X{0q^c0y|$}R=s0-l6Q04T1u#y
zMWQK)(jI7H{+rU3`#ZTF`Im&tz|l!pt0Q0lTW>+7^9f@8zxz~aZfS;Z=ELv&0fF56
z?@-fu3AZeecY4;ie;x~;&3L^7!@8r;05~~D*J<j$E~CV)ZVM#V(-ChY(Rr<%8~m1I
z@|?`tur&%C+#>VU|7ZbFsNN+8O&in<#$hLNc8rUS#(H}FQzw)fyQ?zSQ{RS&z|F(i
z@1g-lY}vGpQ(gaEC^7=R$#npJB!!{?K%H;3b-;CXUip?!qjKR1WVO-&hd9edit#)f
z+T@@S5Ym8kN*n2Kzgf#$%L#%vS4`tV0Mnni*nqrS`tj=};MIVK3>-fd)<G)rcNZ|_
zbaRnz(QT}7oH$b^l=GuW=yQybfB)7dA5oCGL$R#*jpP6$q*R`I*4u=45X+n{MFpF`
zUBnJE8MPs6rxx|4HhEXD#<GyteTG_ZmV<HO+JYJ)O&L_=+>siszs)|_VLMdw_p+Vo
zF(LKm`DUtby}gS^QJ?p;>qEMjTw)-k>UEO*h+|?AL+E?`4PAe&IG8fPgLx1d8{v=m
zX?3mRES5C#!uI%!GUN)R_~ka)$I?Ajxy=@2fI`Il=&Z!6SH<Ei$1(<^Po1*!{Up*W
zYjiypPhAD{;AOBXsf`ShC>{s<5+`?0qmDgg-tp90VsrUiPldy>Er&>i$0-8--ULmZ
zpGo-zF-KX0r2}3C2UU0V>z%r#g@nQ*f1~Z1Mav`fP5mv3=kh%9cOW`lAU^aKh}qcl
z5B+OzOzk@NTRi`5_v>%vS?#|@W>HOTl19Cpb?nw7K4+U_`PZ}WfzYwwplf}%ja!{m
zvn1L@@*f9BZBxp33GCE~<6lxwSg?--rC*K2TbaZ!<AfphAO)(EJ(<mHOOsi-cHEFD
z(D(L8^|MYrzFNKD6aF!{RbmX8gvN5Un36-ey~^B4vg@2Vq~SB-^pvhTuKoT6$R<9@
zs3u=Ztaa(8o%oYI|H3<tn@IDU)Vv1Hx6?cfdlxkE_Eb-}neySNle>S%vGZ$K-jOWn
z2QzpE*%QJ1Q5uUQjrZwrnmmuKltr%7WII%iD3Qp7Ylxq)f#lKRJCc#>5tO<=_!{K`
zK*_KF?o#|))d?Js3;iA5BWfY0Ql9eR*sLoM`)^@q4TB!OCE(ODw%GARK-$(a`fxOa
zh{=cTkdsl!*Co|Ov;P-YZy6T%^1BbWKyi0>cPTCl#Y*u~+#QO$Emm9?Deh9FxVy{Z
z?(VLO`@=ck^ZUPeUhlP^xiU%aBr}=Z8#_pr_$rNtXME`DHx1DVm)(&s*uWhb0U8YO
zL=tK$3QAA!uArTz!Sm6qOGOHeQfxB=!Pkm!-oN}PeP@k;X(FoKw0e<WA-UyClN`9r
zxKwDT_F)LS@G7MQCaNR3?Y3?{`KH~F>~PN%i5T#g#or3@wY006`<I5@d|iFML&ObA
zXx}OWbheBKB{*0CoQd?j{lSBYW!OiTG8r1bBa1?gyE)9{6MO4umr0->q8vZV#IRO@
z23_@vA{>6!e<>W$Vn?@{&eEuq7l?>|JQ^ZfMyb{s4Y#<)=|ka;Is1KzY{|7-6Wk=z
zY)`aM6)`ykTKIL^J2Qt2*ASn&l+3L#xBQ67RI}<6IIiSd6Z7on+Z(B!8{2;7^*H|_
z-*%$QQG2GM8O5J+Wsn*mf0+@-4v8jAI$`8D`l6M=oJ%<q)t%4Fkk2(=iHbQMfWy<-
z9nsJ<8mE|+UI1ym5SJdrg3JBs&DR9RiH96i#f*-IKo%%zt-<VuJ+~0f>kk0p?4-tS
zOm@p*c0(qQ*+0`Lr+rQAlSt#N)!JX&SKUs|J6NB7l*~W4-w!sNZ?bl~2ro{R(`X9C
zB)coo)y!F&vv^BsZ*uhFc_yQU;atOJ4x#<-Jk^Rj8sv&bseNc>r|MUV1uFg2@1!zT
zSU7r(EGbz0G2l|VJ20Nzhd7Q=9Hb+~W{c#d!HjNeWbBT?G7x0*EKQ=393tOgQKPEm
zEic>7Xmxl73@o1Jl;&OsiA&Ek{kRnzCnURHf&>8-uy^qKXguQC>LZgLc>V_SoD@Za
zV2B=mxJ$1Wm7m!<Qla*EVk(Vo*6#SkGNP-DHwjn@M20LIdXJJFNj9-+dk|q4#BcqU
zt{GCU8;g|9%2Q%}n$D_~(Wyf4O*Q)wUqqm2z0r$KkAam>{AVLD{ZLfDvchB%Eu85>
zwB?!{#dzq>bcc-N4{$o@F&u9hs6W{V;$-a8$U7|;ESk*1C%Q|<`z%GEy(KE_4izN(
zbI6+%NmADL2<$Sa%sXME-4yRxrF&W6&9S^`Gjcw!vO{#6FRToAkpF;IXVm6gx*T$x
z9<nI$LfN*+wIf|K#kbT&Z~Wo3c5qu!w%2Y@9FKHc;td@pce$U;=~?*cOZ}TDy!5_(
zcYR37F`plsedU<R@liF?S^HL=E1y*az#{Z6MJ|zvLZ7ul99d8Lb)fitV5!9_=ex3B
z4=>lI1bN2V&B;77YnAlpBaDBo5wp6;CBIpc!CUJ{tj~U%6AsEV3gW9|k3QuCvqM3#
zgZOGfNwrmNf9N#Y<{AoesI@M(4>neh`N!EV(T*{XQ2eGNT#Q_@IP$auCHZF1vE=BP
z{Iw|5>62)y<=NBiiS^DCF1l(WOyE{<2H^0X5`gQN%bc`dITU)a_|Wn0{tVOM4gK7M
zzRHPGGs1l$BnkSKI4G@MvtamPY$X~32|LQpXaFyF@`%9%GJDfe1$abu=2O}Kz9*n&
zhFK=Icq!|*k4^pD=|3|COJlGDXcCVU>SRt{gyI6yZ8-`t5S-JmQ(W%QXubXo&9d{j
z_|9hGclmAI;ln_V0`FS&96u@{eIJFDNNF7JPd}WuDpkp)mQ&bt3YOBZ+g&(<5<+#e
z)+&Bs6(<y;Q_{e}c>jLD{@m|#5xm=z68|4pRTBQ5$KzdRW_&FiNd<uWuZhX;iJ17M
zWW8-k9L!CkUQaywHFsNC$W};ZHsHYGcY!={WPfn|2AQ$WD~9MdwK){@T%1{-2}Y5~
zw1Ihh2LedtWv=xz7e9yL4^M+2PB7c`$CteJnPHnMKGM|4ufHhF%qG>AHU%)!Qj=)$
zF?6q@jOj+aIgNxmL9)76^9xfN6R5$L-M+ykhR99V6*sZ7r17)vaNy0sP!iOXb@vZO
z8eizy&dLhiiT$A6rIsxSYpI2<OGcr$nhzLerEm~Rwwh~<_{{Pg4T|{u<#(1lr@f_N
zxG^a4etzJW0*lOmZj=?7UF@?t#6Q<=)7n8M-OT~zWp2PZd;<2^hGPbjV&0qCWP4p1
zeZhh)Xs=LmSuCy+^dlZl>vhqkoT|ST9M2bVvm<&E-K%)_DNV`0>mK`smqP{#X{{GG
zo0K*Tgthx;>oIMh4~P}xG|A4WJg9ADOSiv?!4X4tD~V3m%{_x14JS047`#^9o^Phc
zUDr7-jqN(#Nj$E?I{5cuqu+@y*#%-XI82;>_^WlAx9j)JAw&iR^<%vp1*PwJ86hfm
zN?cNb1m+H?`r`dfR~h1c41|jh#cwe01bF^r)gQW@J>}`xPQt2z7XwSNKn_0gpy2Tw
zlIxuIiB)`zydpatEuxbPgtT4ciEup6zLf!+Jz@&k4+P+)zq^h^OHRnKzcl(?rie(6
z_%%105g*{CqxH{(HG-eMWzIUOQcu#(rOvo6?k^ThMi_4j7jY3J>s}+gres;5+<l7V
z7?Qr!8NFG;wXOOp26n6iWWX_`c^}gB|JoKSVJ4Re-MR_3>|L`!w)w8K-Mo-^$fWO}
zU<HbgN|<o}qbuU#rSof9Syq+QSaA7=;tyT7nU92-BRRevM*fdlI+djNTl4HOQPxhY
zRJX8YAj!ITx|dBS_--`Txg-!wDzg18Wn`V?qDT@gUSCE(LX#+zPgfa2DVM+@W<%UE
zFah|^{?iqmDoIRLRN&3rEh?Zbxh-uI<&kh>wM8?AgLY)IE!%1djkFwwgR!{Y#I`cu
z&c(ck)VQ#Ks<PW(nYV&d4_H9SSSCf@?GkrYSH<5jkrav;_-yA>!kk0QZbGnu%OD=!
z@^K&!7$I!6>hIA%Z&-NcqLLA||GVPpRv#Yl8gdSJ@F734Dm{EVSWf1}#>%yPEDa}!
zMj5z!mO!y+N!&7Tb`+ZCrJr5(j`BImyWhsgE$9_(M6|ng(~ZRO0TK_4|4ksi$+2B1
z?}x7w>rzDU3n6_{-jDT7GcHPD8#$gx^T_;#vtKLE0p{2!&u0zCn#g;f8sfrTj?*Ad
zEJ0^&(P2$zTkrcxan*Zb1JAStkb_g4C#|ChE+b7#6c;u1oWz3#JRS+b3uadTfI9_-
zgTziz^Pzr-N%j{<iAxy_TCxZKl39gMUYNxFNjKqA{kJoF`vLBQfm%T3nEitbVE=f`
zG1cr~kRrGA5QfmE$Rr@J`cOvkXRU2pAG?)-=xQLYO>u^l5HZss+7sW0oMHAviBthZ
zyzP+oCC)x7VN1T4-Xt*_e~IZ2k&iWaPmRboRfzV^>0i$=TkTjBKUxS1mJw<lOUq5Y
zG|a8n{fgG$mdkDiiWBA9pIdOdw6VJ^%TRlw;EK~3(Zia7)KI{U;gY=^s0ux7nSUsG
z^pLHHpi6T|&)^RACnpJch}QDOdhr{-EFAW0e&;#;S!C=WLE0T*6}1omoRuwjRv=8|
zlVY|N11EneGy1-)u+2jxAE@V0U{Q4QD~iLXn7X#kz4i{v&yCAfD7YA5UXh!?VR_DB
zpLa3utL0%SVcLv%c}7<r$N~WVeOT(E`~^T3(i`t8sZ*jsLxyb_!uMqbUAAx+U!297
znxw5z@Jnb6P)5H}p>+~#`CjsqN4U075IeQ@b7)q^Bs+J11Y6CbHK>`RKRYD+{fPx-
zJ0$JcEw{8l-!k2rT>2u4j~~tcBlb@xk6hzu%4ki#IRVTwn{^CaNZte!+NvX`HL7;c
zZBUuv(cDYUN&}ht0-n7~P=nYnvV|1lk4W{g9p}6Jt~X>){>-%uS)Db%4Wa98MU#jG
zOwSkl#)13iziVFf$IaHg<L-issa~w*PVv;LQmbIrdZV_Z`>NDPKIgG!E3e?oKvNki
zU4B9XCDzf|<f}(UiWtT##4+nzt#)nu5Oa5y69z2QDnpg>TN>Ats*F4M3X6n>86n3R
zfa$S#=Hu>(1TdVAHq_bsu=w)m&vx((%N?W%qsCLm1U}zCh{WIM?1vdAjen>PD;p$N
z9IU=XV~mhS!Zb1?zUTU$qlevVd#3-`-LOjAXFszp1f{7l#albBh5Tctn|0jnM4B<{
zA{?3{F5`Q(rR8;fA9rzaMB>csT}5|5?Un`b!1&qNLHn!S3zga2fa?dzG2%SZ@io^e
zngl5dyCIIOUm?POdxC?Jzw;=X(Ub1*#yO@b=e$6dQMcU_W?JxeXp<bVfT{|^57CcP
zk9p$!pk><t!ORfj_UwvLWH5@$s7)zR8Gq|-#2_ebJ7Z;TdHYWte)2rCxdV|NyEaWj
zIPbzJ5BSRsq|8W~XZCvQw7o#6kLD47uGC?9K}s*9vZIa;=m_cIvv|YS3kQ`PH6G2e
zGz43ncW_$2oRp)J_Oe{?)QgS>5V{8Z49?sPwwd7|{d`+#qsSPi)CYnq1-%rJu6B^B
z?~$pr-u9ovZ|agcKJHC<Gi6ciS+6VV{#-HAfRaAIIBwd>V*QRt)UR^Yo98Y_%OO39
zO5`;I*uyQI<;b}$i0-aV9ObE?k{J0UF=CTLI+fs129$y!s9?4z<M@#<3wjb?<JK>W
zhr7up8ZjrXRhqgnEV~KArw=X?WXXx{o;r;mD>W8;u%8Kl`+L9@-*qE}T+PN^`Rwm$
zs}haZ)5|jeUM_;ZkL3yH%3R@TOBPh>4CZHHf{h<L|1tc2xSp{2ElA_*2i3qyWZ10b
z0rI&tdaiFnSonl6ho4c8^%ll*{pDh2eBG=41*VksKCvId#JR_zvEaeqpmzQ}DNIDN
zU=l5<{rR})r@_5xV19-^wu6k}ai8yZ{O!9v%ykUw3>oLbSNV~YTIJ6xVwmRA(F$hC
zN?vY4Ud_mt*xVcir|sDN-JJoE-iu%kOq)|8D>yXDGd@{Gunu&>i!~k8XyX~rVnq6d
z66r&vc2OP*zO!?dc(@^l3Eq#ZFbreW<NU~aW&89%_(6O{2lBai^ew3shH=%z3=_l0
zh45`j-I)*@VmJuVQ)P!&R7P>ivmtYO=4a(VdvUfi4nB-7zcQ2RY5cwmf8<;9(u;9K
zlP2P#2v5VVW;5g%wdMTp`dTJHO3*-TzFK;PT??pjRR?fm0;A+Xnqv_!pY{3Tb2@`A
zZcO-}HA@5UI!8)^&H3&5Q*d0hjZnWpD7VfwzRi)C*3Tg$LGwr4>*$KDzEownj^y*>
z&^mky@7lBnIR_eToHThrXwtToF?zmj`+WS*0f5v-YB>1N=lHdtcCpx@`&7Uum9w}Q
z(Ywfjin;c*@qX$MrEp>PQ8{&&Vji<GJLAQ1q!brIwOJ76i=1`tLw((iF(VhO#*gJX
zu8-M%w8zxbs~bVl(<LBH;j%mHgd5;LQJp>18uD#6LMrNUH-B{Lgl;Yff^adJ7S6mL
zZum5vZCM*$@VJvU_zQdZxH7IP2w>Dt`SxX415EQKl~P#+crcKN$BKc|?@4#1FMns>
zEspYTRYHvzes5TeywPb$j$GhsJoZl9@jS~X{cQ)Q0%M!ew_QwNWnx-yAd|J&>hECZ
zDT7u&b34sy#<rwLmtB^sVy}yD$viAI+_nL}H0Nwoc%~=rvk%uEde`5!>Zwi~X={m&
z*u#<66hc}byu}2{+vN|bD?y%q&r!0+W#IU$vR%#aj<VYl{i=|nvfvV!KX}(wDOooi
z$zQLDZRrys6Nf_MS$(poHIplSh(|;<{&BW3*)2G$pX*6LLCahp<U1eY!aU@!QOI_0
zF4Uwjp1lT}ajzLN{UUmaS(z#X31LkrZDf664xgme{+aOyuP+%jGNOnH%;S>VH0uwH
zL{Q>AQCm@l!=3l9pTvv)w4C}G7Ro5;nIU9~9(+YzMWxrB$_YFPAiTkaV-N8}vu0N6
zhNn3;zvhh?XKK_lgqEk)Uf@&9uX1^0F)|sd^2be9s5d-~hQ6V;>*+Z$_J#bq4lP^?
z{X)8DKjrHC8f0JEO6NQjHetmUG8#hHGnV$0^YlSs?mG|QoeM~=i1o5_szC3%J|eeI
zl$_y2k?Q(@qx#xV2OKvUA?*Y%wKl0+S`i4$vAwh>yeDYSCCCu_nzwpQ;RI(>h(*b2
zhI~vdUIowJ8^R%j+Fvp@oqxGP_nJ?cf$a7?I*egne~g|e5R>^_g!S1lv*?+MbPDIj
z0uVngqEe1%%4ati@AI22gYgB0%Sb}0(FDMP(?N*#R~jpv;)6E#-3)N?K8NTkIqNx5
z_aq13`R&0Si^tkcD6f2jqO{Rhiew3e7n7&IP@%VREn7?!l@rEsBSWl^_2duK85E7c
z3^7vP<TuHeA^ds?yN|oxMfCCNqtVOdt)hP%zAArcU)uD;3K&DdGWPEbY;689R^90k
z(kwEi?M)q0T?8HR5$rOZ=6z!xmHe=r63vxtk5AT*R2rL!NbXji2orZYquE6xhmSu2
zW>0zv_UP4mMy7e7f~|w9>0j|ySuPbp6xx*3+mhBT4yepkD2V-(VKJhZ&AvKOL~}s?
zos;s`B#3h|%~C)tf$BLfOH#}9+iwhGzjnt(ll@1Pb^Krr=yHj|aM`I?s83M%rlg>J
zYuu?pQijehA}T-}MfIr9Vo9SBl%Y<sg1{uYp-3<2@#_8c*rRv|pSINz=UDTwTIm37
zykWB^aJWJaGf{%kTQ`n9_ia(#Q?Ordp)#a$WBl1*yFb40BuV!#mHKULlmju87iqZ`
z(VXUQ;^H(5oZ$njvgfYUMGC->TQr3=6$PDrPkE_lg<GHT8gle@>7Z==mvYs9{Rsv!
ztF&V)9HKi6>G~c>cqGtUI`7+(Rs)gCb;ivfMI+xcrPljq78^8Z5v4-FZl=pnJX-?M
zVNLUoW{C`JrkSQ&!D1G@>?C_56k`K?G`pHV5AKb+jtN-0R+j_ajy^&{G3z+di47q>
z{CJ7O-i<Yvq6;@cV#&=f@Tdz8g4A@@#8xIdrQ6jhTWJU1RoK@08f;{?{)*qKh})F#
zAb0##SXp74k-7E%z!V*o*c<i5LU3Cz<r_Yl)gSyGk@*7~Y*oxA%18oyMAW-@V>Uo>
zgmEd$TUjJ`mf9=tx<FJSu33-j@zT$uuA5m`r?f{TgxrAzqJGI=-ayWZ8nnwI)t}Ld
z;DFZ8u~=scx^-ZVy?TMn=)6;;i9v_I&rt%WvgyW741b(IC~xI}5++H7g5`UJHkm*H
z$yCU6(W3>8q3Me=odG=j_4#ymQrHp8gCf<cRhCh=ST^J=>hkRcFV?nOek^L-h<Awc
zC`8{RJG4xs(@F&g2tFoPZw6sg{Z6M65kT8HQ(XEkn<sz6=TNRtVq@_|s6;^rj@Hbn
zc6bTh&VbvxLCK|Er@F0P*l6Ow?(?2XY0g?DZ$=(-DHH6^XY6fxO>`r{Z;nJ2_wG57
zhQyt4?HtQtaIe2B@{?}z7J~KLI?lIsvF1tuR;ddDl5L;U-+#1YXb7^|oT|+6c1S+c
zAzfOH=&lbUF`RFY@<U7-@yJd5>9Hx`O!(KB=*Y$wox(IB!+qy90L9w;51#D|4lvti
z)adH|K=7_=OCuw!7#ut6H+Ka~Fn9G~v!(z|j`Q)7%>H_1_QwEFRAu7K6yIs+uc;TS
zi|*Is<0D1%F1Bd-I|s>t!DLnm|AG;ol5qha8|H6`o?w@yuy6shToDYbqw)KaQ*@Sw
z7tmLOi1&u3n5<`i+^tz`mQU8Dm{yB&EJhq2Mcj+|MZ3o)w3c1$M@4!lAAy#X0-JA8
zU(UwMlllAiKPzbdWjYPOE#UWt|KOAYBc)6+Ojz3Rame#~_6Layl_1gYF)>o;s@Ds1
z*=m&@bIvgg+GbXfntuLBrj4w0uq0xJVivr=rqiLU-TS}IHxvQlYffrdHOzq*&#wME
z{eC@Zi5WSukyli!7I~G9y2SuGL}#2773f8(CEB*DY@@0CFoz!~HpC0LW%Gk6F1XGG
z0ow<!f6E*?Qb=b8+3RCU9H7tyH(dJK1h>f_MZ|yQs|gL`{^6VDldbfN83JrcR8_|&
zI*?G;rXAnc?7-_DW%zG@`}uR11H&>D<*#K4btr708CMeXMlR0tcM+?5;yQWLiBCF_
zaHj6oRuj2&qoJ-!?amTpM*Uw_?$H8t+-wbr9N>m*DDk(GZvAx3p9cfr7E{?}QjG#Q
z84~`y6Ci7&9GiexG?8>odEs;0sQ&~ut4F0|ZSwBWBfZERa(t6Z?)*GPWj7Z)aBnPw
z;vZ(%FONN+04%9G=8Nm>XIAfLlTY(r-BCBjgXCnnCQrI4M;^<pwrNZi%J&lBSK3P>
zqDf$467iNeF#jG|#fqeRh-};8>PrTxOXWCWw|^P2QL>(UEfB1NYpYvkx|5PrXt5_@
zj!T9%ibcK%W+(^oPqea7))|t#6n%===Uom3lvmu{*&MSKrB4~m;RK-<M4%W-yDIao
zEMYD!qOOqg!*fN%Z^n5w1fOMNA+GIdl;~7c{M{~)Uq}~HTgXR2W+waMEy!SE!(CFe
zkc#xA;1#Jn&Sgt<MdWaa@y(f!b%(18s~oe)<&n%elm${80g{@@X(Kg;0lg?|ka>5?
z&-XkeN5vL`sZ2dAr;1T8hw-J!`aR<3micKp43S#U^r8FKj!UJq9`Vg3RGb!bh!rAI
zv$AW7c;$AOZcG72G{}KzH?^Lx3tcHUR3uNiQ|##V)#HPGA<iOa77ZVdInd$=r6I;-
z>~%p9j`@sW*+FsB?a&<LvX0CYdWDByO!MCcM5XGo43Wj8s4u+ZY^J122ku6shs1j4
zPp87N7E+L+Ju2^#EoysJZ~sU@qaA<7y*>cfG2(sUDHb~WsshHo3U!_)4ru)<Pq;Mz
zu#PdD=|d~ER8q#h$`{u4|2@p@0jm%B2)OzvphY}QmY`$UeLL&fOgx?JS(UtavYt;D
zwAFWdE3~?E{Pd}?co%^S#2a4qY#^lTn>GDYKZlPlvs!*T&QnaXog(8AH(>h;)Gn7W
z=lDoAjpC?D%vFBXTVK1A`26S3OEoOSVw0Wq<ggvbdwRXda3%KrM*8rHVlwv+00Z{4
zuTscK$U1$|-_1e@7rcL3xj+(V<9_9Z1ZKM(l&QwBYVOx#1+$@HdqaIJGr=TG23Kwf
z{raMzWd8KwF%i^LLj&2;^~TX1P;imCHgdgmzoOaJaQb!NZ5!XzhjGAiwhbG4d@0>_
zsBd9>87_}~WCUibLOPVh0@EERQ)$)4md<5Cu+OQ{^{3*(t9O}h?FIU9>~|LSC5VIW
zi%4ADjazk}14k&CUI*d(?+KiTMp-iJ^AYb$z_Mj7!uxkR;u*Sdo7AzkEKlFmXNTF!
z+m`oi%+Rjg(!&aID!Bkg;x4~Sj5sjoPs?daiS(ySa$2U7Z6?(NQH-$%+JHWu%ULGl
zPi51Yjb*4yS5OrbVTj-O;kU;kU1}>4apA-X-*4&&7L_KHD3WurqOeWl)8sUX1vt(F
zKo+f8aOKcaBB-^ArJ5x%Xg8daM)bLCJT|#AGe{6!ijx^B&+-kJFxWtorgB>(%OK<>
zLw%A+V&YoqGNFa4Y!kTZ@CC=|Tn(mzzf>$l#sNf|X&O8)+l^I=$2KGYQuoA-CKTNj
zxF4_<YMyDC@}!P?WiQre><>}eG42;taw(<lzojy;tujNc<5N>@b1}9~B()A?fR~C@
zC(8Y5G(_N3;nw^7yeU7K!J&&OxArwVdA)0b-;hQcmO~@_RNY`2qQ7m@8h-u0-G7yl
zXkVAZCba(WbHwiEQmK7GVXB?nQoxS~^;g!{MdPzaEovog^5p`Kc*=6{7Cv*3)8Rh)
zFZHg@Aw2I&Qq_?~<#;a7JGS{jr!AgFoCeT&v@aB^vs5&C(X`w^3OA^C&Bm>!P=hx*
z%D_M{0^+fToRbx(QCpY=E6Uw3=F(CayKBi+BzA2{W*Fy^XbWqX>ZeskDcYlUmX_jt
zL*n71=J__0hbveztK&rMxP2_kjMb`o0^e^>S>F=J<`0*Rj+D2NG+D=(`As9llXZ0t
z=%<TAx~Y{eLTbii4UgyAj)+x{YRkaXP3`KGAwpXyWN`O|ojkE>$W0pi6;r@Yor~5w
z`y&hY&J=_aG$U_6la?0SKIuKG+Gs{+scB?qb8mN@VJA?w?H;E$VU@hh$TMcUW9o!#
zm0o^!l!_4V$qcOs-vC{+VCug7NYY_tzfl_xD(G$cGqE&Ls^OH;8seZ4U;0-kEpuUZ
zPPNy#LZdW0>0D5;-@t}NB4e8gE_8hT)HNb&4Z>n4?8!+w`dF$jBK_DC$A~Vp?^jJ2
zLFhd<@A$oUY%YV!@%I(}U-K4T``HKCf?Y=A$^5EtJ~QJpah!dm0=7iGU`JgV=~fw)
zhe9I|PCEzwo0sNd+DLPjn_i*TmeQ_t_3H);DR1O#>RqLLzGb}(+JVqaAw`)X$XM@&
zu0r*tbhOHzr=7&3xWoSMqaey7ylkDeCk<JA09jH9O~hsDggIdO<vFuZ#KpCigI{wc
zo@Hmes}vbzx2<|KeCy-F5!FGU4|`;>S$5)yM6+0v8MKr`>a3&YlI*r&=8dV5cFEo*
zW(eFu?tDbifm-4Tfljma?P@=K>Tt3>GHB`be?%^C;9_yL7ZsWAwq#SNrvKVKva7Sp
z;paU^P!*sXiZgs;bAktNy25L(FxgYM340Zh!_7sobdSZgS(f=~RZ(#lm9tCEmbs=k
zSfEi{wQDRF&CwxAra7W|{Cn>AtOb5JsDQ68Wzb09x!7I9?eePGOs)zfrrM|e+g#`Z
z>phklE)!G9lXUey=9LF9bu4gfB<z8;SLgNzeAB0nZeD2v&zy>=B905nJgu9(qG-3i
zA1_Rx0aI)H=^*9a=ntry+WY034kX7+DN}NsosC<kJ_aqubz0HWHSMb{rcYxX-b>SF
ziY}C2yDzj!YK?EJ=f~pI;h5Qzzg>{S#Dc>TGH`xjx)yvIe#|c40;5VXH4gZF6Lj7Z
zC!BMFn3bh#R25L9d4I-m{z^ao;Md5=r&QxPIUkRa!H^rxlPC}Cf|vcHD<I(8#nFc`
zOp-2M*LA%rQghQkAfZkM5gS;xfoTNj!xKT*w37t_M6L2%874HwT@8f^ck*J-25tA)
z3bN$K9k)6%=LxgWW_ay)hLE4DJ3hFtGa1zj<u2M**Ed*5{b;q%dmO;Wqtynz0Cm^$
zyxQ)liPDHd0XaaHmlN42@vx141Bx}4;@olqcV5`yg4Tj`q9@Cqlv<Bgc|?VlM_qKQ
zMr-hK<oC&0h$`IToIfGjG5F^^LJ2O0j%UWPyw`$2r`y*d+v8|iwfeP@RAr>IzaIPK
z*bU0>?f9NV+8RfY1*6a8#w5Gic<070J;|X-v8s=08FPjGZ8(31cv0j;L*D4_N5twU
z!avUx#eo&*%PVHLXP6pR-?~=^l)^B0IqrMU%scSbuL;{s7MWG=FAjvq=!W+37B@)7
z`z|k#S+zHi_V-x$e#B09$E~S8W8y_1TMtL<l^tjksW;9}xOX}@vmG~fTS<-u<c;Tk
z_^cBb_q^j9gVt<lX>`VPYu$RKDqV;s$EGm$sg((TCB`_`x4<FKx&iH_h%u;?(Y13-
zld$p0gHtFTo@OEo>-{R2bb;;ei`^!lNrSlgbZwnF$!BXd2N4IXxpoo<4=n8!k)hdU
z_HcTQeT$~zQMG>FBnj;*R^q@6mr2E16+J_+2Fa6CJT6n7fc`#%aWa}UD2V2eCJ7iE
zWlCfzsnU=VeFBF4jT`qpI0H?o?KB*(&4s^J<0kLfR;w2-fmaTQW*LTallW3Psh8lW
z183(XkSj5|px3LBZzI2AN#+!`FSfsVEAWbYNgKgkC!#~=3q$Rz92j&woT|o+dgL-q
zMxskLpTZ4PaWQXx^FJN;WD@aU*BT_f>%NPUN-3%a1INw%px(ZFY+9h3sJG*jaif{*
zMtWPkYLjWC3f-R5!cODuH<lo_(B+>oZ|L6fo%IhwrNM)r13y(fa(1wh@DV;Ty|CAK
zISpKDDz2#xPYH(O%^8x#Y{zH0V!V&m+nvzi^BMPN_t>0ccj{x^K{K&v|3ehC?^w35
zH&{{YR_-ymE;Uq(5AA>AunundINsby)DtKjSSw%w{<vTT>)~!*(%VE21O~R~;f@B_
zUzm9@oi5bXY*GBJU;MGbW64@~94W|qQAv_BeW@A$wWra}FzvKH+SCl|OKG+SAkVzy
zfPNfl*AlLj=2%nxYE~0NP~BWm?uHsA;y~w3%}uFP4#)Jk#<c!YC71ZBq3(thhz$X3
zhbwVd+;CiNV|;q8Ku<_ea^}G4d;DMy@8QV~-nJr8FkRxI|0+ESYomo~z45U=CG%35
zcPiu;9!{*uh2X)KR~%F8*S23SIqTg#Pj!!%`SP2~HnSDjQnC-sb7&()+8=$ciA|f&
z`k8Jm9Tp2nk||vv)vC44nv=(0D#YFNfus6oz%^N$_MWrt-zQ7w-gkW0VYpOVOL!OG
zdcLX?Vd^3HD`SW*ZC&`D7hQv}R|`pjUHWTn+nE(<XLcTl5L8rDhk?)x-0?05jqHHb
zfTl8$tiggrxxNUHxs;e6m)6x9F$0CKd0zt6`zb<}Cug`BD<_BvCjI;-nl1Q2@Gf}n
z{mRhunkGj$2!T{VyAoM(Avc{HcafW|A8rl$ZR{Mfx}B2sl9mL~Y+om;P|sC>r-m8B
zgK@R7Sbyw<6eQIRpZNaPJT5tL`IP+GX-?mjPoLFc6w{*jc^pY6fE0D<ZY*dGVwAiP
zn3QO{J?oSX(~Gba)N+@{C4%Posr@3%8(Q&8TzjYa)}t&Rj^AD0&I0d`tVR%!!k&T+
z*4MdxBlAS41-%Gusp4sE{0sN%pK4T?YO5?>kZnhOba}Dt7jlXi^sn&gQ2t<j``NAb
zKH~~Y^Ng%+k085VqLoud8b!av#_r{`?pud+u4@D$)G?1OhldRyU;8<F=IMxdNQ0me
zCa(P#r^_xX!`*}T=3#ef3w=Mgy$w#`EDz>;N<n89wF}C5f^_uVlpl~%I%|z_pJVL5
z1qFek|E}#GiqR-iGj82}E)LFo+PE~jBq?k4vMCH=I{W&>#OJ@<6I3z=b#5*uwpL#o
z<vfN}&VQE4_$ar>+*pFs<TG&`)Wumox6KF)!Rxi3YY+|-rz9;3F!yIVX$-X#CIq+{
zgRZzXQz6h%&9$lM?!D+ms7quVVKPepNlp#ZFG?;lb#aNt0=z;3B?UBWFSm{#)Hf%`
zZ2m;d4ARLw3S<!ZzN5a(Z`rf0){4bB%wbsLvcekW3oH$V+h@9xHFOMf`(+D-afW^D
zdJ$s2eQD>ne9FJf<tYzceCkm8s=0Rdrmj~>CjKIk`o7oHFqlwiAEBPkn_s4-dDb89
zGUmpt3blwXDFuj~+3Zl%f8$Y@U-5W|^q`78Z@>D{*~bpnMSnV<>b5y=4IhJc#rz5Q
z$he~0$8`NsedY90r*!L#Yb~P=&Wa3wXV=a}jr3}KG3qvy<gp+Q-Q5J^E8HoFc}+&^
zKY>fJ{0rX)qOGk14W^ebyl>4%oL#p*6_l~N2%&)(S$qD(T6#qe(^<QI7)MBZF@y!H
z%1yXyn+Ah{j;);o(XAdJ;Y`bM!PA)SpYm0e#Oo-fBIKz(bt%5gu#1A))2nW#6|Vut
z$3Flrvj2*T;Ljzxaj_+D+HTprPDBjfwia8-$49t#W!1eEoMAX^xUx4!mwIAAg66eV
z@9~Ng0bCB(69OmoTr!aX5vb8tPI28&KHob$j*a{{u-#+gXaWuFUof_N*@xfdd9>U-
z86F3N>hvCo3SX$_36c|=X<-y1L<KAWED~Y=GwyengN3PPPkS-DEHKrfLvxaC*j%L}
zICEXcjka3|ieTnyv@i<UbY&mgpV8KB&G=NqM_P1+(tSI{uP|rdB2-aiz}c@(y}g?$
zX(7KwJIF%R&1oAk(#)@S5i9&bDyx6^Y%SjW6kzk#u&zHp&oKtO5{HW5|8C$LvLF4E
zggCC(UEgN*VLyTdH!bPX|DuG{lOQ$dw(vTuYu(wb@`kaMB;b*6Qk`yB6_pV=n5(kY
zUclpI7QEACcy;Nx4I`sY6rPgME^q~6x~Xp}lo<7xw%q>Os(FxjLaXe#Z+Sl2Iy>nH
z%nZx7V}Fq2NuP$#54d$&@|Jn{*T?KhDg1cf-0pN76#?gEfz}0S=4}&MBRyrHH9T58
zI#k_C^MVj#dy#yR!3yhI-toY>91pn>`|Po0QU}qoB-}b)h3&L+cL$6_AYz<dGFS}A
z;j%f`G?o~3w_)n+yT&vGICoy=ZP0&-b~b$xLaZ|R`EF|O?IxX973ZzykHSa~TgI_1
zWbxZIn37f;E0CgbU!LQ-w~IkEok^6_*Q?mI4orf#+~QNBLaq4KL2IL2?F*Ifri*9+
zV!lVeY#Nb4ic2U%lIbITuhhi!u$x)SM0D#|W;}1=w=W&l_P4n)p9P7~I}ykO7Zf+C
z$n(6*Pje<x=#sz7{AYlHo$r0{$7IM{%Mq&pt>1k$x|_^wd#)sn8|s-4{@|4)Hq&vY
znrEv@rxwKdX}ZLHTsrOeQ`>0sIS#|^AeWI94f{M3HCEGr>UZzPvu}Fg(xmgUqc2=1
z^VxAD-PlobKIHuuM&B(B2WH4kxC7^`Z*aNKo`BS#gR@q9exuK^#od+14#%l4+Z*59
zp+#ez=<xwB@oFw7th58b40yEQNy}6Rs6PXF4m3$UuWB69*1N2qhDC0_9>l)`7Q*lN
z$o~UO33PgM^Q+2JGTy)-l%&91Z=5w);A*zIp1<)8!U`EbsDu&DVVzn}9eWRw+lmsh
z=VkxwLw?=!YCX56^c;GS68H}S{cE4^YC5A-BE8?W>&kOJ@4CX7Hxtx%85(C_PIwUS
zXysUb9cpr#-^%y+e_;9VA3Kwnp-jW#EsOv6AvOvaHPpAQq$IdCoy4bgpmfuDQn}vn
zXVTIn={09nj}4Y{Mzr?B<~j?hGFchtANiQN|G)1Epf{H5o;~fVAMj7OI4kP@Zxzj8
z(ZaXJmmHl}n6)r_Q;WK_pnyARUR7q$^IpQ{h4vcOW102^-x_jx_4<l6nVaw`DS*`|
zOype^8oW@Z56AA6_aBA6JP))r8m|r&ME@u9MGS?Xw#+%Wka!Kf-skNtfbNIF!x+47
z%6e3iP}^s3vtx=YQKR4J_fuaCE-yBjn#*20z=gU=S7J|h)hybia}}+>cQfMqx(ntv
zUijEhG~p_`o5-?4UwY@1&cOS~0zmySusQ@{x_S$NHuN}pe>eF?J7a@r>Ix5ct2pQi
zeA^%Eg+BcDl#-qFNc*k|W6Fy-AHLSpr?G3?9F8Db$bXu?&!vj-g{kld+VEWzkclkf
zxV0o)PiSXip`JW<Rl5Csl2qqs_&0hdz+XobKlj^OU8wUJ__AO>2T`7T7o-bb+mW%F
z4m*zj;Aq%HanCyiZG8apiXb$$j1*L+_kV232-xAcnRkvjvFje%p%c40uWI|`d;eYR
zejtUka=P4kLIL|<CnCjwIXN22<|Y|>e%bA6(D4+=F?}d!MZI9-C(-?>_@A5A5c`+j
zeVk^udNbj>-cv6Zv1dbjU5fAaZ+QNshx@=fq5z23y>B~oiZE}IjrT<GXM=^>?FvY%
zZhb}>XeR^@C#xh*yHl+6NvgHBG}vz(mN*Tk9DViaTX~-W57XrvC`6o}x8U#yODr>P
z;JrcVuG5C(i<iggqt*uekcA73!b%_H^e%jnn~?R!dN=S(jDcw1kLI*&l9)hWkNeT}
zbQ|x7)smFoZm(x13qo&O_V(uufv1~ICCk&U|5;>Y^aqH|nxN+f)0L3#GdU7j)<WY;
zWM&z$q@&04290FLGXqfA!F)hVlH)$f3i66)f76=W8@8N<5VGE?lW6z2x)wWUEbwxX
z=MH@}zj-v%myG=8b71#;K+lOO{|_#{QYbmsoDU5_AVUyhMX#%xLsJhiz2FA6@l#*K
zCH8rs#kaSG9COiL+0L>EXt(?dgcZVdB#$?d{2FgQeLp(DJnMa}wYz@(_HIM@s*s+|
z`^#*!3W<z=vN#5)Q?@7TgY|Ygr1<$DF?TnQdlX(XZQl#l>OL4-N@8noFL-b}FZRQ>
z(oH|JS0Cr{|HH^jjLwf<4aw_wL#~+}$mbmGAFw*S;GDdC>DC*M<r|+44F@Y^rK5FJ
zuVH-ynf4UvIjs6daDA6A-Mn<hc>^h*n(W!1cn+LCWxli$qA-?i%~xj}GPd-@CjR4g
zQGSp`f3iwKVo`GsB)sOQ9Og&9{C*A><+HQji)2YpcfPvyPW!-BCvU5mdDeZjH}iC?
zP8{cSC*lomBDgm+wYxy}rqD1Zl>-^H!u^<Kky?>Kx?3Y!d75`;=Tk%%g$#B-=TtCM
zpE&SYh1#h#yfH4<9&Yql`ZQIZcjpeY6WyVoq8cJT9Pe4xymt6_(}T9#b8#{C+<h(Z
z0A#QpL|Cor29$RwMG{2qS;By;gOedVHsSO~nzjD|If4J$^K0QA#nbvgU1QMipgR{c
zCXIHQ^~P%~O;-l9Of+2v5b>f`ZFomN^J7?l0++nrCnO{aeGfol`cCG~;RxrGe$Kp)
zrR$_DD1biUUl(T&6y<ljkddT+>tf`HW!VFTysq;3>FFSs=?Z@FnG9;YhzdC9+DLdP
z$msZm6+hc{EFLMfqQURE5v(@%x*dbUiW=}_??OUH>V-xbL=j|!NaU-~&2k(9yx5#L
z@1S135jO|!zU3FfDo_fm(!E2?K0TC>0oxv0djWHg?_l-TRPKmcwc|sN`|JL`Ad&0y
zXpiCC)TFn1lH@Jzio&&=JhoS3YCFNauDe{jAHbxQSqKa6MBfk+Vefy?P0YE)mJfX!
z(!&&H{*Pt1llzs(6Af42{N=>H^dm{!=QCh+7%V~tXpD?A8?O67->GzrdjDwcEKy}9
zPXA;_Qn}5jktjA}K<cC}SL)z3D}%Nm|Mj-txl@F3DU6lE-iIRF<AkD>g_Mrefs%a~
zGSTsHmE*e}kaL34Z7?3t>MLB!+QpqK^h72r4QfY&U-h7+udANB66b3bJl{mUBW~zX
zH1ZVq6#Z$hLe4zMxymVr4!+yzRPwbp#%(=#ysM3G*~6@1Fl*<>KEihu$$x~1rkW6R
z-MM7n+_&eQ{L_4d(R_cq#Jlm3wcb+((0@}(1LFlb*PO^Va$~}s(A%U_S#LIF0kKeL
z9!Sxso0~TbGT=_COg5w00XNI-DgPS(`)AojpxSJGya{0MPtYMOS$)>;`!iqMIGUc0
zQ-O*U!p`7rF$9^+Q}??Wb{J>G-%^|E3sO3H`#Ru7*0pnsJ9EkNP>1xnyVRZ3_rIW9
zhtc`aH@r=Z8^L)^wnElD#mO4Do$YN%aecmoHDny&e%9IsZI|?>M|_ZV?SEBAGgJ56
zO9a`Ej~RxrJ7^xPwlFcj4fj_*SE%IpYV%@y3FhzxFJCEU&ZRHTZ|QWuG2Xp=f5DGw
zh^&%>J2m!8_=*L!&j=+XxXAigliJvY*rJPpq~|bLt^3vGypt;w<Vk<ZB(Qt8o!`mD
zue`HkQ@L+|zv87bfD4GS@%c7=#-t@qy;iHa14t>auJ|bb_uIcwgNm|q@Fx>nRuDD7
z(xb7n>v0V_=T1{6<?)#$hcBE-s;pJ_cOTJkQxgeQwJ-z0PMu)c8j=GKIod8I?c~5+
zV+6OAH)%_z*M-|rQkSt}6@i_Rk4QVAV|7N4jA>!;yPIu1i)J%J+RPXV6O%{Gpm(@4
zV|vRV{0b7Nw<Pd=#AGz!*w2dOr2LMPp0S#m3+^<@I_bMAhLzP!*SB&(yV}c!yH^>N
zKqp>ipK2mC5n-HgaXzs{Thb<Tq?i}I^w6D@Z*2NFkhzXh;#bvG&7(SF=4r7fd;^-P
z_p~#j^ZA*F8f4z`db<_f_eY7@9<xt7vRby~VMzO)<Xa(syeU7R1B>Ar5afrIz6dk+
zOC%KLkzpm_p+dt46;J!#Hb!M+c&RUzD>m!jTmixViqyX^z}?~dtu?i-jv-h#ReG-*
zLT88Crfmym`O^^mD$kePkHa`|!U{=v^XPXU9k=U;x%-pTh&S&2>NK!4a5sGy2xPhy
zu{l9<Patb>&B)d93p=X_7Jt%9MqN?#|NiqEe0m}L1qZ2)Rkw|xUW}rBrL7xkPI%Pr
z)HnLr;~_oJKI3JK*F#;a{jPAorfbcGYBGf#?fO>dt6$6aOCHqrYgQ!aRu^M?dbGBu
zSZ&Z&`5#xRhTYxeFIJnMG-HKPhI9i=2AEFQNyE2pGOF(jAOjWFB+_VwLBD_ellrll
z!Z2%&k^ph5)w$Q6?#}yE&!1R|>)dqFA;WG|o3)uKql&BWk8b1~Jc{q#;fl(vZRkmt
zY-5P&=%W|vX9%YxaFwX_pT==AxBP@n@W|<2@!Q9Jr0ZW2?xI<QT>e*rBluUYu$c>J
zIw085jB-?+k_iUi(F>zP5LO;)f89l_MBHR7i$DEkiph(>V<r`OUMeorKG$M%Zgbon
zw$D3Y)j31l9qOOxfCf!ctzWg;h=j3`$!{1I%Zy}%lz+`2j~ZWkGvm7!)l00g8?DxC
z#T57-=##@F!ae|8wcS;L#p?CEbR`1T{VZ2csE19rW%tb{{P&qB1F;<v=T&U5IHs?&
ze4oLx$roxdJ<|4HKH#+!!72nAWm-FFwe~~nm+Z7A`sO1yWFOuv&XEa+%fD`xxu}Vl
z(NUoZ^I;{{Us&E(MNmhsvivLZ7zGT3bGRcxrhj<I+zx?BzmcnSrHZZ;cvRy$Os!ww
zA0J|e90BJ5)A9N%;8l%)ydoXUl7hDJZHxsy3fj#q4Hb2cF6O{-hp83gocdFZP-{Bt
z&N&O(^HCpNj?C=;6%>dtLt;d1M5FfFSaeC`CPR{$`>IqTgsNNhQ(dGx2O`lC93T6y
zvff^>PZSmdTi5%U_S@$a1|Y4+E2@SMT+@b^Dyx;(#bK4#hcZvct3g!vs?(}PE=;#*
zS$-c@D(pTD)%kD{FFZis5=>~M;QqU;LG^qO4!Ku62X4B?)`ulb;;Kzu$yP=mboCAo
zX}bCvNHNnX1hYO`#k~vZyr5%=)qOMG@gtq^ut;3e9~IgkI6xy*BYUsbwi3(EfCs=p
zefzVmogHh<N&iPysZmqB^7Ht_!|b*&Gc84UU>KzzoliZtJQFHO6?KwvY9F3k>4p;l
zjct6diLLA;(t5Z_-PwvC9)@nTU~+l234!Yt0eNfV_Fk0Xr}4LI+diC3L3^gjOM;Qp
zm>q@7@02@Qz;(BaF6WK4Yn}H6{wb>RDA-d>8;7PJow>7i5z8C3H&rQxwndVABDVHQ
z%tznEAIQt0$_h_b1wSS#Ht<g0*>nF~_r7PI`gLj^PD5Ns)+_(#uI|hE7(zO8=NZjk
zF=f803(oY(7oHtpt0}*i?Lb7*Ce+Kgp~!2mJ$1+XInsO^KnuiBtoTn1#HFe<20N-H
zKK^i^0yXyYcPzKJ{?eXzFa;6}(hV21NM0rg!MmkmB-yOMc0{nvGK1K*gPb;k(lxWl
zLv=0?L8YT0Cpn6spfrvK@2AjbFl~u#5=o2s(Z9tC6FfNx`|bi)hN-bTV^hu~Y{&Rd
z1oYtxT<q_Qs9}_8p~%-*d+YU<$>8Db?WC~M#*cIeJc%qq)dBlJPq&RPV<PXc$0DH_
zF+P6Ry@P@m@;n*gUURXEj=pbf+DJmj{086PAcEMNl(UIw@oaJ6gSXb`p<90pXG^4?
zHbeEl^Ugwe>op;eIXfUYW#@`7ZD&>O8I1Ke)!oSIQ@nC(Bg1-lg(voI0sFK!D*UT~
zbuZ7(eXY&|_lY|5ow&mV`-0)G2!z_zT~o_UNafZOCFWJj``y&5Z!1(#nb*agZ)qyr
zQAoWF{0nkJfgZT&2=Q3upTmeTFBs2c-mM_wM!vuY>u4m=fJzhoG7nK*Vv%qp30e2g
z=A6hwue=SYB#$cO`)*h1q`gf|QSRTd*XjF%Xj|Wk`FxNS-HlwW=tNSaQ)F@mgNxC5
zth->#tMPUPYgpFZ3b{p)0f|y%?+gH@|7h}-+|LWBMaJWD(kM*YD*e)^N?E1(>-dIa
zaESFZsqA>ZMC84O_=HteuRGvjz@|qTd4A;@t3k)%cD#Z6{O6-B$CqEj>@ub2@##Io
zUwkOnA6@{sLqTuYT5ac|xzB1dZP^3EZv<MW=ZwSp;Izp9S57FSciN=B2r=1#t$A?E
z?h8l+uefB~!C|Yn2#mz;9R?)o`Q47OHvP!1M0As_&8iz}-_vs>6SBy&5f|#Uw>>xj
z3IM@?MfXmHUw=0=Z@X=&Rv*HjCNohNm`tX=y$5xv4<1oTnS6yT_cP`^QFI(0j+M&a
zbjTT_H$R;LCut$*ufnE(RHAQi9}<A}7_{SDLY!>T8wE728>k^CG2N}ffKtd`A1lG=
zW8O_l)g}jh3!B%pU_!KqpUqRRG2*HCv@m0=Fv%N<`)DuX%h6-SM1|h(<4pc<7J#yx
z&^HmDs;yp>^=50`P(gnlyWZ8Xm-F7V9YAo>(6;0K!Ke7PF@w#G?btE<Bdm~fIcIm+
zuaM-U3pB;n<3+M`W^NMe%l1n5t}OHA(=IQO(B6)gi#v{I2TFufU#eZEU$NibH5h}A
zkKym5Mmly{@b@R2U#8DOG|klIhb(Etkjn;RB&SoAYVi=BUl!L)-^u$UR4$r$F1AT@
z_z*^xRjSS{2f7&>np+`b+A^ovuNj6{IW1)rFaO{R6$Sg#k5)e$-vM(w0pD|xE`|;?
zs%iF`-PS2#zJZmVCR6AyE0<WwA?_}%$Ss$_vMWve*9i5nmtiH1bIzYgrw?(Tr>68)
zqJ|>02ozB-Vn{k-l5Eo9ZCXdTmK#xqc6^iVj)4#f1vFjx_x+qOOyQ$}8PkGkHf(Yz
zX(16%Z(jOX=RF1`bBNz=*!7<83DXg0E^1;#HCOw-!RS4-EGxilu%yx0(sfg#w>{W4
zN%8cZO3~;uL~8HFn&Mq>KCBP3wq54a!Mkr!4C@W$J-;Uo`+`u5vY7*R3_Nf%52!NL
zZzk{tluc+hjo(KRSPFo^k0kTTf74s1&|U&UM8Bj~Qq<P?TES4gUgZCzL&DRPxV4W<
zWb^AbNqPDhPqgbGxZL{DGRsYKli0c)vVC}ZLG>$r022zs{{cGVJl$@$Bk1LWNEM&w
zrVrJvrCh(%xv!e?ZI5}Z9lK$lZu&GIf(0%^g(eA;J5;RxVCN_5JyM-SUt-7E3z`QN
z{2)B8t8ZQ{LY|+m(a7eg{uszIJR8%FHdv!Pl-sz|fSmzsY!3#B!YF9%03Z!XEdaPc
zJBHw21Lxm2M+rev5X{w>G90R64$%jqh9cN_@FQO!qsJ37vL3h%gYjSZ09=bw_Wi1a
z7ySr+zp!}aU>rtJSf9nK!ieMPGoiQi*L)Q<j-E5>{$%}=BL9YO-D^H`NmFaK^B%p~
zyey;^s^akKLou9Y-X|<h=Y@B!>H4^{k#@3TSrRnfwy8Fi98MC5Ii87^oZPPq)jq{@
zk1J;j4#NWWvUCKi&qa{hQV8cFlq;YfsC^&$DKBU6tAzwhhq!T{$PP(6)4t+3=AX)_
z^AO`6q=@Q1Ch&xse~C9z8aS*lDUS6{)%U!=ogf)7$Hj9kQ1Nm}WcHq<t~X8Ax-gx=
zFxqWPQml~-*{RQb;)iP*XpgS?Wmk`PD~D>9z38$zku#}ZtBJe(kb&Z*T)4_Hq{-YU
zitc2wXc>ZAUcH}ou@oiNXh*~L&I{r0KG!cZga(2Qv-+}uA!>k25G`|zf$riOzR(nJ
z{$^YDTl|+*JJLY8--a5QNJ9^_jY7M<?Cx|dx&uG(dg}P{r!3DX*2jRnfns3hfLTQ1
zo^_k`HlrZx@W!&;0Fda(aN;5FBsU3y>C5<!v<&FUyA0*757(Sb?MPV;K+LZpv}T0|
zgnBoD_8wMMS1J+nA>gR#^B+Pg%lv+w&gb-Jy5Qjh_QhUmuCz_Jh!D_{4blGxZa|U0
zZ$}QeO3rhuxN!aqJe|bPdyH5f=wOF&ja|{2I~Mwf=JZ)P3r|jRB`@1NgIh^=;OKoL
zroxy1KnPFOY<ff~i7X*-z9X=8uJzm^E1n7*`dyqUTMLi>a{bN?Km3ID(|_ce>5IJm
zqC3LHVUWKQ+pk<XzW5?6N8WchkF#mXyDy>7`;e@bvJJ>9le`Gj(2yq(aj;(E1#)4z
zXLH)D2#;CHb6gf5v1BD)2hUrRAPW4*-hcTb=N2C&-GNtm;Kk1P$lNEp{d~`eoYzgZ
zro-3GEp<!?oTUiNKeqGTmwvwc^SshDj*7F_hi>fCOb6qzI9q6OX*+z}ltKQ<C#GWZ
zsnug%D)H%`5?9=LmJ&(oY2ny@yj^4T(rLA>1~p$zZ&&S0-YOX<Y|OBn9JZ!#wWZU+
zb4Iv5GTZ*qP)_~R=n@iTLg4&GVD8$9FT*Ip=dth`Fo@PDvlxFr{J7~SzT*1sb>7U|
zA~D{65j*@>6?y0NFL~lcnBk;yeju=WG0)l`vr9ubVVYrb%PZ@3;XyU>J+6?Kyvqs&
zTbC~#-MYJ`InCPPNuGwijFaQReq7j}o5w-9rkBk7Hr3@-{@oXbuoYLOvTaAg;F^Dk
z6YtY7Pt6H|^A~}5u?fQ~gjal7n8-rwn=yc<F={_GA9mip7BW+v!%xBk)_*nVF8}l_
zpMOVb^`@VI<6O>v@jCT<^sCKl2{=pY26_9>fW=ZaIf0Xr(^wroq~*y%zGS&XUgAMF
z?jXIe)$Q4w7IV>7S>85L-hcmedGO$-^5~vz<=nm7%Z0rcl*jg8gj?eIkorz0!wgr_
z`7RE={*HTIKZtMb#tjRbHifLu*VASH7&dRlm8yrg3|si{%1Yc50$&saUj5i`RcMv}
z4d>ndYkR44?a7pACP&infPJpr{ps#v`?gm-wtLckC*yaP)$@Ge-@8uv)TEM_S73?f
zckI^2fCQww*^4Lk2CXX^B&S`)Cw{I(a?JaDsnLO>c6$;w(N9-f_(G5jNiN`RpGClh
zoYp13o$Y$@gQsPj2oeJ4CjuCioHkg=vdMy1*RREBS{SsJKZ11~6RF*Pk34buf;{y8
zH|7|BKKmrR%^PJ)Zwhtc*<8m|Wm|vp{`2>)BZ6=q6&@J(vi?oTy+z<bJ3i})&k{8d
zKzLy?TCU&(D{htYkebYjYca9)*lW<QvD$9qJ*WBh(8s6V_-Ulr%WoxRj|?Yk+q*Bo
zycv_<tn>F_>(+F4)f!Nys)T?e@I%*5Jo<`T+JEtbk8fG-Zcj{HiUZMaU^|A`ukE^N
z|C(c{7_>FO^YFA|2g2pEI9x44?`fQc<)u9b&buy~Nq{WRxzd?lxCOauza6yWsy9Dn
zYzNfQ61#;RFOLg&(Xu|%7Phzg<#Wrqy-zBR?tk@QZu8s9na&5xiNPm}FnM!Pc5f-l
z{ElLf-B)BQcOzN72)EWx<~z29&gFO#0iTW|Xv}M^4IA*N&rW<5X#yhgY<ro18oBmi
zzjMgWz?^fQN(v_g#y|i^tKWt(hAUK|-yZZ1uGQ6UBf5FzWv{xv|0i#}DcIW|kLKYT
zoLT!3B)Wc{7dN8cYw>qZCOS^smX7ZGhfciukxj>2i7IPgCC@}6xdl$#?2IBFJq+1Z
zu=(R_VYa%C6TD*Xz-72hpO*&?hruztjEGlsz}Lj!$3Bm-a~r;E$>%C3j`Z3aKew7s
z+D-^Oln5Mr(+!*2E0a$~`1Lmr`XA3;^HF}8;H)pa#c{fI<aHQ5d+xfX|AtHMy`)<n
z+xvfUx`v6@ALISrUs%hC?n1~06D8&=<?i`ot#87he&-+?d^LxsU3nOkpPJcw{=Rj1
zEzG{u>yXFyBBkG*ciLCx8*z~hSG_GMHx9`Qe6QVZCEcV~l3<emBus%n0Bowg#L015
zz?(uRH}aNIel>)z9c9t2q+G%ELB3%bCk)6A3_k!0y<>%hsU!pv0;>_gE6|D?@b>a=
z>=fDKe)!A7;bKr+gO{n{YCG=yp6GvY7R%M0xSbcp{bf5Gz`(l_<kv5M_41K?DLj+;
zAD_@Y+UXBIvsS-zt&U$e8Y~?62=<6qBEPizd+x>jwN5KMnC2rvp~HNKtWyG&yfuqU
zN3(n(CobeE8}ZyElAZmKj_Iq+@Zt?Du_w)tFI(4L9lBdKg~5FfhGKp(v@XH{J5LlK
z-=X`Vm8`sz93JjsYChaT690t2BZa^$M%|BnMc6qTZwZ=xLcj;X^M8k7hZAAhyZ7(7
z;=VO>!6di;wS!jp@2yt%wJ&<=6}SwIVOw^-TD0W~hCCjOu_3%h_j99aV$<?{NLu@t
zymFhEAu};SSwY&P$-JE%&!LwCBtGsL!r*EozBO;dUCU}5_~R`@V2f|`+60d4_{SVb
zS^S=6&VzQGox~OWPjt%VJ#0$l+(n?Aoz3r@y<)PQed<|t61e<-pFcJC`mg`i_R_=$
z5XgUy=h^;ZKF@!N_2&ZG8_T1YBWFDev$9{f?6&T6T8js6zzDsV6EDol{^oZ+8Wz^F
z<G_yNJSlM}2HiCB*3+JkJBILSnrEROF2CS6FaK%#7XmM-rgFX@FuiaH)Ac_Kd~p&E
zoLiG!%tbx-3k1HbshIZ*cgWg#n<u)h@PsV>@L>?dP<d0gyz|b<a?hTra^JoUsOv6=
z&Nkd~kDI4(B_BDy-mgeTKG6xSOa1ZMEcCPR5uQkP{%M&INC=#OK-ubb{ub%J=w}%o
zRcXH`YZX6%9KHo7!`{64c)$_r+NIlF*^kk63rAS5)&CE@rOpeG`L88)t8CwMc=Dp#
z*6w-k)#h3LN60-3`Gq?|dk0Po+6hU3hB<6&+t$!|)a4=Hh(~hxGCEFkE$=b);PY*m
z7~qGK)L5z&uh5cnSDbikU$Q$)JmGO+@@u~`bgq3A9yP+1ckl&^4|WHw2ZlR6JX>eg
zB<oB~EPwrp(?{lK{!L!wH{vdZyNj~(C!1gW!8`my-<k4H{m*^`j(&Oj>9`N*olA$q
z&(4Pa8|HhRtMP${$C&12@%wN6yStXxu%aA<{7{Q$-Lk=BFW7hgRkI;{Zm!jTcBZdG
ztn~8oOW=y|CCg=Y;6q5{-`?6ZgJ*O)`V>Y4geMzIylJz*0e1_xN`@)i#+c)!RY&gP
z^G`?Cz-_3Cld%5L{Y8dv_41iXUS(kl^s6lyl3TuQ3*JG51d5ijRs2gfv+M8>leBS8
zAyEFplQ+(X550U_cEyc&AmZ-Bzxb5j*^*uG*Vzxf`=p=md$<kc$%BRI?8$Te{jbN4
z`uei$Pa+2M(83E4%lrik?S<DshcB9bquM`}t=zUyv~R;mx+*J+-^MY~gLv1(wK#hE
z=X`nMgZLQsnlp^cI$;stQ2Yc2_YH$Gd-7%N?z3|ov}1aLTbR+M-~RAySi$D`Q{MQ0
zf5QbU|37=*0U$?lrTwaVW_ETq=Ur)6SwcuCfXGNlG8xW*ZG!E?=WPFHpE)qe<~Xwg
zj14$~aW=j)P6r0t*d_}}AYqaS0_Cigv^mYr?oR6N|NE-DXJ=O{5sai2R!KYEU8$>H
zzk2mjRi)w|1&Irrj{U1I|LX6<DQ^b><lFx?cM7ah*Mnc1;{?;^T=(<m_sS#>DmVfk
zlo}s*q8(4!rd**Sp#Au>`a3|Iq1N$(1)9u_Lm9v{0ncWox^~ZUqPrq?v}raXr+~KC
zic?WymqL-Nj3BH&<xWq#1+6Y8&pL(O;mx`ly{_GA$8PiisDe?KQ4G3Yg$?L%j}Q&@
zrML3ta5xNs!w}dz1a4p7*LdZuz#?eN7C~=Tj?q(!N$f=<8M>{0JvO1(ONfVSV@BWZ
zSD<;Di_v#6i2eIH@*sM)S<3m*Pgm~ltB2}$_Z%^Qy7CZL;HHefLy6t046`^eWukWO
zwA(wy%*%yfJqdINCl}K^t!GP3e=_$vO8@xjxVnJCjem~}nr<P10zVa#II`HS&rMUd
z@h4SWd_Z{Fw=J|cfA6%aa3Vh5wu4Q@6Du0jCHL=lAAT2ld;i^d=cJs9<mgkQ-Rg^m
zW1Rv2tT1ee0BrhGa{DQ;mL3}JkbCdp;gq)u0kGvIU~-G$t9MJ^j9>?t+-cCJRiS(r
zHiCRXB<2s%K~)+_XQvb5S|3$|!xoQ;9w$+iFc&bB;iyC)l|JO%iNHMBPPFa!AmEn@
z+~ZYl1WX#}zScaVqh!?J>SOoEq1sJ}sX}5qYLpoWYfC#VEYdY9BB697p0aY3VTE#1
zhABa#1PohY%2CY#)>sfT!zh7+gKT%L?cO>gZaznbPQg7BmOqS8b0yle*NKO)KO9Cj
z1bS3(K3M%5&`S8dIx`JREsRO)^Bs50ySnt6XI35P*0+B5teWmr{1&K>&c|+t<;D@G
zigDzr;&j2KZRMY_(PC4;fgjs}Zr3|`U;S!HUO5As$Eh^VmQ|yn6N81tiDF^$_1^|F
zx7RwCV%W~MUw|0(1q%7N{s1nO6|}NrY~E8?k=%f?3f@R&{nGcoi}G!sI;9|$jK6~J
z7g2cwEAL4_fD1G<_5#HEi!TmYs_DN$8$Sw8!hnk@IKRDHw)RrZh>FI6p6dfJ)v3H(
z?4Mi&_8s1{Swg!5)wQA<DFCDA1f`~!f#Bn|yEQVmoaaJWfCDQ%$;5($W9)nR`Rv})
z4L)@IY_YaBh~3cz=mjJ&p%(ebIpd;?l~PgWoAh<u;h)10I1B;oqlEF*dz6e%<wW}W
zq^~boFfI{nYk4?rq!v-(3L0*}W9*9*=Jy4!@BV#f|JAcXORys9OHjT+9#Zrk#n`iZ
zOxuWDJv02i9<k2NPfGsPv+Sq7^_q3xzUmvvX%v>z(bngo*q#V?bt81#4Dhj}RG>*v
z8tQ;Y5-c~6z<GhUjLyDhr|EknY95)H@W)H0kj_Aj<<<RNP0!{QS8sJ=_TTT@656A;
zo-`F3mHZaW&}0za?&!9b2fJ@S;jW@<pFe1>7GMr%1`=`wEPEd?>SpDusdKTCW4Bmq
z7Q>d(JvAE2*8<1>1L5JCM-l`~+j`tqfi@7hO1Ko=iNQvbZy3buiXBs8?Xnj!0<Poj
z$^O7<^yN65PWy3{%sCm#pJFn)wo)%_n<l%2sfT(no#(|;ahxj|rp4Ro>e2!<1$G94
zOL*j)-l&NDnKcy~b6k~<Hf^$^YOWDTj&jnfB4iqQ*nBf&VTBM%LiGsIU8!CuOR8X^
zF#@BjARtYa<i<@Hhjh1xmA$e=Z$bx+DBfwMlS-{W)WP}B-hMc`=3+}0E>r~yz<t)X
z3Zcb4!!&|_=(%m)_4(I6^8irGpDp(*xH@j1KhI3We=L%mVw8>z$kcg)IYFF4SopfR
zDukoiTvCvW-E&81;L;uy$}>WV-UPOa>&*?AugCkHO&EuxHNytJuBa@&6wTi&OzUCw
zyh2jTOjrZJutDc2aIMtehimV4L_31VUNOU%)6<zc^2%Ap)}86}UH3ylz&!88ke3dJ
z`c$$8NAj?H9a#4C8_=x1!jGBi@4r8J$H(U0hq>TPFl3dEN{(2ZVSC?7$Vo_}6PAaZ
zNch6QsA{nquv!XATkcSbK1v8XyPLJ6+^RSoaQ&w;FnBP90$NZ2xlm);zQ9MP7AS4a
zJj^d#Y6ZTTM>4sAf`|RUo5A19eE4!00{>JHXg@*ngZ;t9p;WRh=ma~g_T9};m6_nj
zuwD^-7K33=sTWy^zkSlMU{3PsR6Ot~GU>JKEQ;x%%2MjT;BJMDE2J1h8kQNR$RR7V
zv+=g&e8&vnv?B%OHa6R&Pnix{*miF{X*+Y#&>Iedew=^RRr&RyE*+os%v-~m8FY+a
z#-lqw7cQ)&QhdLKw<WY&X6PiSR*z<@u^%aXT%FIu$M(X`+veX`+^_Cc^-GCZ2PCYn
zzc^Hz*Yr6sB{zWoFEOj9h2+S2BGpsyQQ)~12%(iuhn3{cT8G0w3k1ITx^!MSLwyCr
z=!cLMa83iplc;ZZ2deMA|Nh;3#f4ah#KIBvG%Qlb0jK6ccs+$<(R8HQGK}xuf4|sY
znIR=cBrg=o?QK6~EmV>67AMyJGN5uI)&Ln!bF&tzHGYu5QLy38@*sR#fOoJbfHJ=b
zSb(%EtY0KJnGa6{5dTQTa7A=^<~b0Q;N)>Q(XB}A7VP~8ML=M5wWuO6a#;F^x?c)O
zx=FwH@Xw(O0q%E(Z||i0;iED`%n8Sc)3QaZ%_}C`%Dg*z$Egv=dHP=93bACr1fp#0
zj=2|MaDUg4<Y=R6n#i&57bzQsRopq?PjKYRwpXdd#ip>v52SSgtb9xNOI!ZYN)uM_
zcd9>;pK=1-`Ig$5NcZ<c(J;ZU7bf4a+hiQ(?QQ#<YvGN&GuEN*#2k3J4|;%!s<?lJ
zspjLD$IBp16{5baW6dfkI-1|JLi-ngwYcM(pIEREE~dW*9Qz^?eA0*KzOKC!1CK<u
zrItYJF*jr-XqG;-LwR|xigrGLeG)EIWu+225=zz0+cael!G$z5buzr5pnubZ-Rr6z
zwH^lfBiO%^_A_KZa}Hs7TGhF3J_mn(KAjhvx>|wX!cy;-(p4P(IShfr5D>}7Ii66X
zjm2Cxmdh16xNL1e8GsHJE#48Eng4{WinR>H?s@l(7o`2lS@K;NQqE?o9&(Q0s5ob$
zKP2H-v#2X%eRt2&hgOVXsyU!21yl)AGd)0**m18fKE?5`ns9lEjLVQDzr0`2t1k1X
zGkcYKX<(?8GUo>+_y3%>hR>_=x)%mAyt{XAOK8u$8g5h)!mfG2P{@f#>kKRLooJph
z25#!#oP7DF;noaiioP2+-QPK@RIHZoi6s{}fnZ@^+Bu>oAM09F%n**6+KRQg@g(Gn
zdm7^<BYy4Ty8)Ab#yaXTP@*$~$Ahd@;0PIP$`tPkIJvEslWfAb*ZM<B6iHkCifefG
z1*5w*N#g3+=3gOwT!nlgpV5WGpdE11^S?YRbav8lPFC?me!MRTp*Qsz<jV~IebqgZ
z(!eZPR(Ja!pcy>gtgSJEI~pa`580VV^`JYUabqMfahw<t_ZSP^MMt3gAjP870%;<C
zhxXim_URd~VA=xJl~}OAV=+-Sgt5up>$UTP@n^}e=s?2Za0o*HRyyoli1`jD4j3iX
zIE)PL=v5Qpq=NIBH?F8uq1-#7x6g->d)cpnHa?c@wa3nV7n{=Bnj7y)ms%1mvCLFB
z;IQ^!w-dD6i@PN@R5{#r`+^G$W&HqaIx3CYSz;UmfxQ$KL*glpmy%Y@2OYaGl2d;&
zf_Y2Tb@i@oVXv(?cnJW}X?#1ZA#NjRrpy8x__vRhb#8kQk;~l-!~asLc<s!<9cf8_
z4mrXe!$z-|$z*Cgnd#|3%KXA@Ynt~-8;5_xp%Y7LRgV)eOh>&2B$&|_^o~P%lP=s?
zztsBnzn$9ah?O*~(h-X@Z_<rSGHAaY@9ussh$XBFE1t{=<0L#<J7HjVWf(eeB%4Mx
z3f?++ILLe6GCKRp_&u@`+I~haKQob$W?Agzgrk%$13~z~VZogMJRA-~U;qL+FGy#4
zc6zRDg%)DeoQUal8ph68<lsc0gGJ9NJ8@RM$ZznsSGvR_jDzdcIILlJ3wjqkwBYuK
zaEScBu26FGp}wZw>2Cd3NTfHQPcS5t$P5YWw@Z5l=#|dGNI#Jgc+Na}_l(wYnFM5G
zIWPFMQpX{WBeU&L&d;2-#?Pqoniu_S@8<Pw3GH-h)n=7MuNYJ2i#qBwaW-M;+#8P;
zi<P*xvadF<y8h^!r`O-V-?aA8Z!IWS>BMhw9`tEo2n{vsT#+fqixYx|7;C4Tj-BG{
zcmpz3@5|T=^?#<_cz;Uj-%XGmu4|+~VE3F+;euq#W29%MWA)oA6iW-7xS`(%^9u>l
z4cIN`y!r*QhK#HqH{3O9mcCG!YX2dav@c}Ru@)5Ty1xV``BIJh7?)6~-Iqx}1aBZt
z{ROT(UsJ(gabW61c#C3W_w-7zxIhAv#_P@ETxDezq2euwn!e~CJo;Ck_PJRQj|88v
zK}^uhU?vX>VNs-QzXqmlpWlPk9S$QK0<Z#iW4u5kgDt!8-ElM`EZn0-%{q%N8DejK
zuF?nu?&$f}d??kH{c*V7&}(W!xUt#_1}9_5)imJ85wO&agGIO+OE7ZMaO=Y6VQo&@
z+S!vU8#})_Zw=NMzwU(79T?HG4cq!5MrEZr>L@I3xd2XoP#%!Sp>o;8W{XXm;HDde
zAnbgv<jTi7<;%mhVr0anZDSVb%c)p;d@|PM%>oD~p=B9bhI_ax8y~*%q){umZgF3&
zR#tzRGU0N@;Ez?@Vkka{Z}sz@koD|OR|$3t`zHv!6}FkzoWfE^qgbWi(vrDF_4O)m
z+Y@k2HN$P;t}IUN(1lk{;m#d)Px*JD%(_xw1ve<DBWT`}$F=F;b=B`NaVHCZyi9{H
ze!4E>70i^&dgiU6Zn3(X`+$T0dnn8S^*9~lY<VPKVX5WzWNFVO`+>i`56a4lHLVMw
zJwF!vwFXogOU!~sN;!dt=iamg=Rd#c7a06K4nG}|5U8gR{;E7%zaaU1`%Y{)Q6@PB
zl9wCrP8S&==VDlrZy_IwmF+jiXUJa#o~3*1=-Bo7WtI{DcMo$oy8ndXcSm<#YC~O)
zMBj`b-dnvRDc<R7o`~hE-$uW<Z<U_h28|Tb8=nsG-hXCZ9T4Hi`83Q=%D!rb*ozpH
zFS{`B5tKR84yvCdJ9mCER8sqz8~N`2zAd30L^h$BacyabkX&8|IT;$-RKHkj7h_ke
z#FuOH8q+WR<a4(k`}v=y_SH;G5^Bw&i-TiIV@1hitO7h=SxBiISThrjVYfpM+|m%M
zh*IeG2^M!Mj@r&W*f8Y`TKbKn&l8z+Jha4c=jB>lSXETZRvcT>Mo)(yZ!MX=p-in9
z1mb<Q>2TVi1%XlV-RW2$_!u~jbMW=6@Sz6=F1n(HY<9`PCK0Xj8{F;S<K6<T@mI|b
z{K>JE7TP`Q6byY%Da$~#ea?2AoAT}CVmuzQc$HIFvDN8mdk!w@ryJ!ZfgpC-<k^<o
zO<uvmuES6U&W#-)a6YZ_=#);*+~Y=bfnEePy?pkqEy#??=SsK{t%4iTF2Cx-*Fz5i
zNtMFRZbpNn%&|@q$Ncq1q3?!gMfn&pW}OKhG$Ho(7pqh-|F*8%PH8B<ZpBONC69^g
zjyyeHIo8QyG@qET&7-gh;#f?eaNFjx76|;vr!fe4LoX0_ajYaw<#fUgeyd6u%@E9w
z1l_Mu<>N%1bO|i%upC-&_R`0@U_R*W6uWV~sB~<3iRyXTpG!t6q`&`0auqBjtMgjN
z{k))mTgXgD@|4k+8;l3%V*|BCplNlmkX#z*ZN3M6fXC19p&p`9pJ{#(soFvV5N=SG
z+=Bfn{%#dk?1I1_N7^Av!-ntmK4SA)4a>H;?}jAP(CfaXP>)=v02OVss=rLb@hue_
z$(eQ*nyOGy5rmJAQ3bQzpuk5TEBvdD@bWP(W4ZIo>d1j=20adX@ajej%;5LzXk(4z
zY`jCM$r!LBFOWxFe%r#Cc6`aFl9DsgNu@*8s-^9jMeqBISy1+;li#HiGAOWDZD_yJ
zmh{!88LkQ!z>5{2O~!igeNvxTcGGG9;W&$*9O<-c<bA<IwndI7P^SeRpg3(9ld3f1
z_~N^JoWMmGjx#Z;CdN(kWK4DsBaMS>Xn;u7e=H7VpG|!abd|4RNz{LR`}O3yp&1X=
zXQy>tfuoF{V6b2VC4vBdK9A``gjY?byfod}Oyoe<nMarL()9g6a;6UV#?7nwS`_49
zW$>$ITMTuy;e@{LbZ+^$Dw(j|&G7F0dT)DcmBqfj@H9+(f0e$juyM=>#W(@@!!}3T
z#a{E2SgRMaOK}`te|=%!!tbm4dh%VF!1Hl?QoF|}Cp614(sR(WDX^xLgEp39ciaLT
zpcjD22K$FOJwUWJFc@u^WY=4U{VX<6=rC;uT$y}Ha*M>Ag=HEOj)M&Xh6F7TpcZbZ
zvgDWIG^}b?q0Sivm%q}QdHLa+_ap>9v0z-dq_erqP^oEHD-C8OFu^pO(I8f%EU|zf
zD&i6?xu)TWG}orX{5E{}+#Ct!r$aYm7s~7W9Kfn|h8Rx)(f=3?#b1Og5eewfA?;^B
zWUfwE%f+^7{2cHpgw___gZ38Vi0jP<^)8!2WcS*S&yMqZ@2By3AL%#(?un!%zZfp6
zJ7^nO`b|E3eP<Bp{O*EcGo^lNr(ze=(ycHjNYw=J60Q@4YT7K;3lCslgAEv(;Xg^f
z^{GJAs7;&ZM_@h2CSNiOZ+=_K<2_pn+=Ze*9Wh^|7N<Lw)oNT8oY(5CeO8>8{|J3@
z=edPft$6fMWqj)wNFdq~`Ucb&SA!-=z;bSmRHSd(o3-Sc<MOJlL~=7mHr6m=9kH_i
zb^8?Sfql`xJ>mM^iK+j@f^e>t`XiP*P0tVX&bj=TZ_XQlbg5fDa`G>7L&gP;9Xaxv
zdmnE(lp*3c4Y_uA;AU7_zJ#uUaoS5D{oaFaGr}Y6+37y5&(5!fdL(2O(Qnd>HLGD7
z{;&<UZ6_B6TKc}BCXXz^9Zglw+;ZB7;9Gh#mikQPvM$b#R32g@)i`{`?(GaGuDam5
zJx?ZL+52ITnk=o6-rQg$Wt$-*jU7IMwq@Ii{<36se~Yxn7kYa@EnoD$b8I{P2QwUr
z<kd`&P%eaayf2B3c6u7OV{u0RRy!y6eG9+(=r#?<_vjCdf@Vj@ro2!}h3(u#y0EY%
z+SqtRDBo<KZ5x3ZCO1aR4z{y4KUMg5Radu9kE84&hx+|BM+H9xpSHWvk1!T~t+b_V
z{<l^&_YUnBc-csPD)>Fbe-`_eNZPU&eeVr>5uUS0>d<0`%rkJsu)ABn0a|wLuw4Rq
z(P3zB_Z6?{6X_C4?m@c{=f|_+?0Y`%5m*5vTFbuI?23I(jUP`X`MVMZ4}v$T(oPr+
z@N3-y%f>V((Fd2q9=N_1U@dtGj@4NJYh6;Tbx&gbT;wagc}saj)|0fT!~;*)r9;kH
zJyy#Zj$uxOg>O8F9?yh=yzMHmT^NA*(vcLi+<SZ+!7)PE1jd0G$FAd9yQ*xQ$mr=J
zd8h&#AZekUuJK?HomLPzD}6_C#|7B^>J`>@IJ}1;fOFS57-+5C4aRm!`_7~pD;j0y
z<m?WFdV?1Ly?%_e2v#wEdEB<VUqfq&1>D1jh$W*Tuz%i5#o2JiH_e>jFIw{|y1et<
zhmwHdD;nXkux{koQD;7Ac_`c3lIdJFLCQq3Q~m=o@YZL}bbob(zH=Y(Oy-OsJ0A%n
z88(b>H~^jj+y3v8ox468Dj9uvuxel(T0g~CEbZ>PW8tHQ5xCgt!|_f%AiFh_F&AK1
zk|tMA6yvxH#s2$!qPll2P_f`oEW??NaW;97MmN)K4`(vCmPy#h4U|pru9DYabZA&5
zYTPlR#?FR9Hw-KP%cA13l?ApeKU4*FcAUcb71NWyG0ot`7&&7tQ$E$x8u~r#achPF
zj7rCo=b*oEhvVTF&Ku26`QPrpzj?0;%VFwxZ$)jBba0$ul|)p|gxdTHXUPIE4!!x3
z%*A28*a#<@HYEq{8Q~yKMl<`R!i=qYtx0O0Gb1fMPAa#oW!NQuO^=<KR~k#sFoNmH
zVnGg8$(UI??XT+CeR~=nXyAg6Qqt4<5g1gkXA5aH0*9J+yT|j;G-meW{4#tVE@=Ah
zCHQ&uqhA3Zm;f%&2;V3rD&;sY-LBNJ`}EG#RUDw7XBM3{1HA6fa2iH&Fuz!G!Q)bJ
zPjq!cnC=eSrv2HHWN0m1=f96X8{VbCp00)}Gaf(U>94D!tBlTxQ7qXp5~&g#sR36u
zC@2zG%%cLacC)S1w2WQL7A<%cli*e;l5T}@DiSHLl}K@gt2hU!!ll)cO7u%#%dYW8
zvhOUs=VyG^0Rq7Rdkt|j*|>3PPs_UV!chBSGvFdKA@NvC^~y*fTI)E$i?D?zHpGR>
zG8><8Tx?G$c6WEf>RXEHrvFpyk7MVg9&%E_EAerTN;&qNWV{*1PkDOi$1+=`I+dF~
zn+6$Zindmi6g`9^RI;I$DMBUFGmB1`5zMWdQCc?5i1uuicw*<O#qs&Ck63)`+Br`G
zk*fz0uxz25y&KxwY<iVViZb`O$=v(pT{@KkmY<$oH{%%mIGqPS;Cq#+F0~3nOObjH
z{@#`FwuJVAaA`x-YFp`;foTRAw7zcW@r$%8qElEQ#`FcSXh62!_5zMb318cL`@D{B
zd+C{A8n82voQO_ALic;f_WSpKZ}-|KtmEU()F{pm)43b+_``4%oG#9&DG<rnhLkv)
zU*OusSTZO0>yf<K&|Z7_4iiZ9dRy02S$1fg6G%n^m>QB$)CQE%T+m`~Q`4sp%W%BI
z*NxO-11?1Z{6P59q||-6xq(aJ0eBua?@;~8^Xf%@iN8H2KExS4cJOpy7tcZ_sxB`y
zl6Tj?nCt>`huYp70k{&dyW4Jo`wm@a2NS96=Y0)Lrg6yn!**z1Ki<ExUWUvwZ}^At
zEan{3bbf{PKOe*TpH~s_o(O=m(cHW$Hz%hsm`FrZRaG<NvTa+iE0R1SWY~2{%Qiw#
zmAif)h7CfzJyg}SR;h)D)H;6(!u_|X#pzIBrQO#x$LZXqmrG%`(%%tETI?_pf&8vF
zHY~=`ix<DM4?GmfhSY+&LA&Sgeq9vKWEU)xQpNC^!zOg_4!cFJT@jOv|ICoGhsYyT
z)N6W_^$-kFUjk=8I+03VfTpj-UuI;nD;H0fU^<=tFxB4pK5;O*|9kJ+J*_d!%kcEA
zlPU~n!tC;j*|`>!@g1ETnj7t+SN6x+UH6Ue&ad<EIfbcs`}kl^q*-2E&@$As&wtC3
z`UQc8&h&|CM;&D<RovUH7A;$@`W+Ri1>j1;K__qaL^F_zo9Q=Rb7JvCs>3wX+mp%C
z&Pdogu}oB6WnsY_upUnl-&rpi-P8l8%rSeD|Dhsz7fU!Car$C7B?H5^?e#Kb8Bsz+
zs=M)+fD!!K08`3tU`+Y6oSkCO&qzZ@U9{pgEBMhFltYAu$k04~9f;Sj!jHDDd-?r(
zz}VV3Ikz|+wN0Rzzr-5%J?7@Dnh(e=1@Qi+jbDHpKye7XWx=S463m7E3kIW5UYSI9
zZImQ<Uo`!?1?rhsm)9@o?`_(0Ha0(40C(M43gxH_Copjwrl-5+Tn9TnV4zV5zRLPe
zIXHLE9_`?G#$a9%(%~PN1}_Vbw*ZdJ3r2W&OB1Z^so8VX$}lSFJ0L*Vk1yfe$m;p6
zac}muZ93O7EGTUR$IH5q<5DPOdOxh|8j`v|7M{7#q|rgHG;&PU*|~L5Ny+#wuWmRF
zYD>X>?8UoV^^;#ep~~q_jn9eXMf>x*x1V**s$rSVZ?BZL|2QJ`bKuS`IpJV_L4M%6
zhps-MVO*Kr6*ZuMbi#p_mgexTZ7m<|kM-B3Q@|%H{mO*e!maXL_a2QV9b0ze+zZWM
z<gU8$r;jeKI7)JMJueMgo3@`Rj~!D#!sr+~;IwZnw9TA5ajVgSaXM(4qKQowP4b>I
zM2eXZ&~Z0-&)(Cp7ot+OA~K71x$)jRbX8uxq@Vg$g;XHts(AB`W#OtZn}@CcZAQK=
zp<Q7OPxl=Q9>>=9A9H$PQK40(avT^>who%aGOS~qeYV)$jriMjiY>uED8m`Q_cnPQ
z+#`eTJz|GR2e6%<MzLZ|qFOhJYMds<ggF@FVA^(re@UgjT^V~H+~T?H_`MZKkRY5_
zQaHCA3)6_%oUqc(ovj;=#FjEQiIHBYEWiP%90cg_S$1_-7<ad}uKPhn#nhhn7Bt?x
zH+o0-8OG0mF{dDRv2Dn8?bY&-GzsuyaA+P=RFrGSK8{J3b8R2aeSDyPl|W!0KK!Nr
z{gFtj?I<IhSBObESmfA$Ke~SDUh@xM%Ylsr{wRqyUj*jkY7Q-TbYZM<xMdGDf4<9(
z)0zBniTt`u)^j#dW4C;!kMVw*UnWz(_X1@eWt!@LownT{R^_88gdDPgFz#;IIKI1O
z{h1NTInGSRi($g+inXqLC7mmiF*-j3PsvCC^eXN0b-J%$^`ohl>YJQ~h94ek?tbC)
zsSVN4Q}^Q7w>fs}HVJe#;$-WI+S;xfUKe}yQYiVMNJF0of<}gc$IM+e()sw69p`5p
zCJmN-g+GaRi@o_-n5qidhNvoVmH{1ytHiJDpk7H!OxZH7&?;6=MD3pYmE~Q-wYMH;
zsef^*{X2Lmd@vX?N9X6}T=t8P)GeJbxAt{Vv~Vyt80zUyg|@BUdUUL-|Kt?*2Ta-N
z?);p*C9-z-ts@rSeDcIp!oG9#nB&f^8FQNS_w16Mz9uP)Zao1&dEuY}W*;x72cN{3
zU11oJPdN#DlQZL~`<(~oJ)}PLOru|n3~A%Nr`Nr-KJ^KVxz8k1QWsCzva8LxD23B9
zJh4d%a+OS|2}rD8<nQY(iDJKaVpk}rBtNWp2!?b=)%PCw%Beqp=!Wn^W2ZE=$V0_*
zV8!~a6cmhhN-HUVz+eFHLuG&4h}Q1O9s7+s2v;YzrOL7bKj6L-kOsXLpojj5$R0{V
z@BKV1#e1Ee9XU{)cjsQ1&(H7I$&{f*$vgvg*iYq77-QBU#|maUn89k_T!>|w^Vrz@
zvMOw!gkwvAFPP_X534)k()}?g1JhM-mH!Ejku1U2hhfR>sE=3vvuh(D?IUlY4FX<H
zyhRKM?AS6HbyHy$grJVSGc}yRXVW!a3-FLZQ)PwWq0l>+V0v5ccAO=FXlot#*3``I
zmbFy?gx%S+y0Nc$Z6!An1B*~d=n*^hEWz=FKMgfcz~Zy33U>2p!Ha2*b9o>c&+BSg
z{bWz`+5((v-q+i>ep4bRu%Wbc;)oiHLxDybwfGyS9T~QBzH5|*j_>blZkG<{sipsY
z^3PgkjDGo&OYYypJ8H_L@h{sd(V1V6m!DUVdv302|Dr1u>UNxTHFh!ySCr%x73Ytu
zNyJk)6iCy#y4<|L`&ZN-u__R<8y-o{>+~(?%Ws<hFSaCpJ!agQk<sJN#(p%_lI$gW
zY}WJ#`rsilvI6-l$d(^L`(|bYZ=craQ3Ze!B?dLyd&-UkE@jI5@tJzE3;U7GlvTzX
z!8)f-@+(1%mo-z1Qd5JWF!rTzuA-tU6aNlx*rK-;T5mgLRLD^eg0h@o%sgAv?6W{~
zF_dWOfGdw|d0wnlPrx_{cSX<I^44D91Bbc&X8C}~PV;KR<OA0weIC0i9V3#1^Pd~n
zb|nL$X%$yKmYKNU+Pg=7uCA_CC6b_Pq<jE`>}bF!2g7kU^tfvPCG0rtxbCKSfJcl*
zoB;wTcP7oif0va_=6dY+Od!D{ZQoai>L*EIcdmIq@|?-@F8g}yOMkXQ?#nKN3e+`6
z2Trt7&ePEJ2GVJJd7eZry?uS3YqHPIjC(DxTTNdrDmn6o;<6*8yK}SjbZx)6MM`fO
z$<`^Sy>Xfy3_Jy>xf^$A!i5eE8D3OUd-G&g&zZ>!{;h^Qp@)c}UqR<#q?cLWW<C3L
zWv=*;mbJ`G_I_AZj)$rA&<G&J<SVphpNvUg>!>r5j{Pl+!D%q2=rA0W<`^C1>W7@H
z2+`McCiCyE!#X`qPzYWvZe1hwx9_$EwFxKjm=P|TW*&XM$h7&Qw!R`3T-NQDjhG6s
z!660e45AP(_SH2HZ*+%;%jc&Lm*!RNKow#Hu<Mw8ZoxIrJo{#}Lci(&|2$WJLZM|8
zd_x8E&Pyaa;4RSoDy$y&1Pkk)7;dAhyUwp0l}uQ_3g?ARD=dsiX<6YaTvytrGX{1m
zFup1e0zh?NU#c{nw!pMmZMl)0Mfu_2OLoZG+?1^D_G#3T+s>)AqPu=mUOo5JBWHe6
zLe+C5-SVou_R?L_-L~@l)4smyF9#SLZ~1l3eGBsKkUS&##j_zeVeuT6>ZRgKQg-l)
zkX^bO=ltbL*gkh>yK(gsuUN<JY=yuT0CX^%NUnIY0Rz`4=L8J-z$vCgVZ&VZx}}A8
zSWS_}b<D0!0^E%Rz~&SesLdx%Hl8|ioXoRx@}^2<jllCzRA&b~JUW)BoW6_H*?%7~
zR(8@PJ9^}eVuWrO5ZH%+dAOnE$1!X65M#Wa9B||3VY<HeZv1DzoG!zPh6Ek&W#-_t
z?dQ$DuJ@~&$$Kc(hm_o}kIQd6W0W1Yp2j-!iACe4Nu;z20yXvnLmLCRVd-mYlIV_g
z*z3~5Y6F~3p#cQk@+Qpz9kmYtHkZ_$p!9)5kYzYD2<>SJMM|Wwb{zIq&V%8_gzyxT
z*se{I?uAv~kW1!%ZP_12A`R0W+s99I=h`v}s!!o_e-;oJv@FVn3JY^=x~N99NMorj
z;mdoRKH?hXaPTL2eu9}}-oVDWCOx^B32~MOe|K(GJnrEMC{%t>TrqhC=FyDs%Xt+g
zQ10N*tuK9ZPEjnG|NENS1!vdP&Xx9-*Q90l^U~YX&=N3%|7D5!YwUf%C7`nL&T|Ue
z`%}~UdhL%ocKTlf!9b}Annte-Y@Un`5xW3K{4<~+CtO@!4teOoVF{GM>N#7b?+XNj
zizS{Om3HjKg~j6|GmgCixLpc@Xv@}h_sOm;e|s)1#yNQRh%!Vu(cR^?6L=O3#bg&-
z2$}3a2rxx|VlM%doV-U4994iXl88eIN9W_LJpOI=kY#DNG899(FnAcIL(YX!kEsKJ
zsKlsjBxb6{Nj=+O<J{!GsIr<h1BKq%-P^LX^A+XSu4s&X>(pObss0n3rY#~}&7!bw
z(P`TSN4=+UHt%u>?=jcnq1)v3`fasu2tbA_3o52e40#YcyLkidsh%`CyUfiaX2Kk<
z*>4u73Cfx^!RE4bu&O7LmPtFU_V!U#!G!ZY2<aCMl-Fww;D+T)W1KGl3>60SwBX3)
zp>(<fg8!XGyUbpRL<||%4k9)OoBkbq!ZpyRw{}N&M^h5VEdB4q(Tl&9(_$DoFD{b>
zyM66pb}jXrB>Lr9<~^`Z9Um#kDK04q{pSPkAKz3vy0oc3ovzAJ!JNnY`if^ZMK6l=
z^aheiKsjwU7FFe@oOPQ39z7H@RpQ-Y$8NeIuW;g5Cr!OnimGNw<Ce#yFS`5U3cHmq
zJJ42*yg-*CD`5OWDZ|@ob02LS;5v}WBSzWThZ~+lhq=y!NXGktaoPF&G@Tb@)->na
z;oN%1S$(-uBX>y$8R3qO+G^8DPU&r4SCvwdh&I38)YW263MlJGpiCHG6bQTkB;s>+
z*9l^ha!unw*nPJ^<okMlD3;&VykU7?%UWDF_9>OxTG*T0px(vJO#G(3Ti4ucm+rFe
zm|Ks7pnq%acr9RHBRXf(v!KoJhRUJBo)E|m!y!?2I`8+DXJ2V3N?^m~6rm8{{ay6-
z6D|>X{y9dBlmL2V^czopp|Ehw7bYC>L5W2hq^;?Nu}}hDknC>0^XXgX-E!*n&u9VW
zJ{*fTwyb+}vcoz*nMjW|U<C%#hHlz3p^TiVxC=P`6DmB>rLZUmxTP@=o4h)AS(crY
zbm+CJK<7h?Z$9UDMo1D)Z}*RLa;r}rJ06Fz<kvva-Yi`m8^DvaHY+PItip1nzz#w=
z4w@-%P@(W_rwGgABJd3DXj>Ra^xu;TwEhgN!O?~?KOY7P<mF(bVVVnQEgD6o0o>v2
zhm+4F7w|OT0gdhD(M9t29J5HoBluz+dJ_)#HZ{>O6*g)>8W}-YvLp)6j;_`<ICb>O
z(Ah7HEdHZw++288U7<0<>xb@)W+oBg#|?nQ?d)*B%&YSaQ*OBOe*Ww<KQ2?hR~Om?
z`hS81@;?sx`n`j>OsJ&4INGk-8nKjOVzR46a<F%jsRc(^zT*i=cEiI|pH{@qXlpsZ
zG9ZqVWf&|pu(RH5039#KrRLr=3^a$Pg{&k_x`;Md+Op5`$!Mpfv2PSC$A2oa<%yxZ
zh%P?De`3vBs?d`kkar~-44nnoe699|M45&w422x*c_pd7KJDGWbR!r9eCTz6J+m;c
zP&q;&j0zM7f|M4hC=cLIOpI?0Y6rZrTx>YjIo&PmuIk*q<}sA1c2v5syLC+w<aVp4
zX?1s61={U^(Vj~6bz%uyKNvpmL-Eb~KXk^W$aK=j1_F6fP<@OPlueb2%Gt7g^P`o`
zjVpc@G@P+7ee?8h^~UY#ja|tr0i271IKx<}Ab17}?5+}nuq8G!@SdI<Zt$;s;yz;b
z*~&4`wv*0Q<cpx9$mlVrV|jR`&feFxURoMo#O4c$2S63E-e=?lEgMA}&%p<uOgz~m
zXxieAKAonY(Q7DG`=9`8Shq^z{ryr`H$h4(D}i4bJ&s$|&?-HEQV58F#&3NMawh(b
zpEOzW@(Llid$9EZpWPtVl@*UqH5z;Qd>DPW5%mpyQ+CNWy?@(6I|)b6op}$cbn4%v
zef!C>dp*v14vF*nVzD<Y!z7jjuLO;TZt+`f8+*5}y!%LlHD7_C!c50kmQ?rEUEthz
z^aE-bw~{x7#zD+LgzRnETG`jU=EP*VaWr<vsfrb)+S1KcZGi5X*fH{4f`~+qsKTRb
zcuyo^aHkC3AqELdL!CM=1p+*O%}InN#>$;7mc;Y0v1wbtS^a8s_xhCuHB;LEQAFaK
z4@4lNYpP}Eg(Kr1%n276J<;u0U)H>4e(>>cJa)&-KMq|B#QdYy{-zhSxVNA%uQ<OT
za&m4Y{I_`8Nn_PiaSC`7iG*e1#9X*5W0y@ZVW9i7a&mL7e)^``RZrclUP^`Acd}k8
z3jqDEC?oRKag)xMqRN@z_%NY^0|tQeLN<017=ZzJVA|cyUsOgA`%3sk9C*WF<qtg<
zjdWaQwCQvt_<6GXM!KUjdIfb}WEk$sa=H%u=rUeK+4p{e3jV9rQMwp8=p8ZQ0zF=0
zt$~k*Bz-wP`V`7adaPjsbWKdrCrqijyPE&U*t1|EfJWPm1M^`c!Qt-eKG8=UnL_Ru
zj1WRSH)8n<cMyX+Ae54hYVOL7-<N3I_~TIZB&>TMAo`>mER-F`=K~!$FF4<+`D;(A
z@%v8mhO6wBEwCEH`k9lL)s*ZHt`Q<DZRo9^S9cGI{`1g$Z}JSKF1WrrRWkX(uAfi+
zSkb5d2kVjt;P)n__iOTeS!$@XeU1U;LUH*FDXuz3s%nmvo!g$0UE80$+)DOMSy6xH
z$DLd!;3Qi=8SgOQ4ld<6d9XZ@VFPaQkAc4~MDYtc2D=Jk{IQO7$H0lI_HjU};{uZW
ze+nBtC9K%Q+UnD#xO6I*-5jxFyJ6*dN&5PlR)mWpTUhT%4eFBBN$0`2Kec<h<~!j~
zp$R6+p>;0VKL>8ib2#JCowgui%eYD<TbmV@3Q#C#k8sKiemO6~ej;Nk;0B-TNO8WB
zs!~U~U~%Wt6+;hTZEx3t0F5-YIQgxn3@|4A`+G&vyD**N?zjIL`p^rnvG$P?oX)Mq
zjv4t9FavIgzz}~Zv4I*{Jgjk12$2I=#QqKB@d{+}@p-twGRWkTBsYV84{rT<-3~8O
zzYh0)y|~&r!E4eT6CObccuO3dfMbSxpSk7q-=e8=<2V^f8CxY>R0g_@je_tT?`lJn
zLF0APU0TmycH0-%@#Hn02uEyVps>X}oFO2%qX1|T;+c*(D1wsMD=O6s<0fA20RJeg
z;!vg6teOc}<Gd94Mt1P#BX-JZZC#Ux6Py<T60Wg{u?U{-jARPk1g)Yl9*<+mL0ms;
zn&t_e^mnnWB%s5QiU2$!tZgd=PXq|?7=IMXXn8lGeG7&mheBhgy&l|8kdIP7u}y4d
zt*mmTKa%Ta&-oRUAdRyiH<?Dx^1jx!&vi7fd$Bi}w~?N1`hENPXOv9nXtEm~jdg9m
z%!1O^%o`<n5Zou{6iRPwhs1ie-QXlc#{)OsM?^r^0XOgx97hQ5FK#^8x)F%wcpDU4
z++&oBvG#bL-arVD_t1PHj_%&I^J(deHFVgy!G})2ekmr;5fqx6BTgjn$w4j3?l-&4
zXMW>MKqM^en^(RdfBM7!N_TgsoOj`eW#I*viNvy;2>h}HV0L*tVow}->G@}5$>R@6
z0{HgHnA{`)06+jqL_t*fD{heSQ?P9bkCx563OD-QnHRe^dcf<-L%`DuB-V5n68<4i
zBF$$GdCi+X7F_;FYuD}XTO`Szd!5ZMR;p&~+Kyd&!JR@aO@Tc-u)+H~;2o4yxo%nF
z{}<h``7)<oey8d))N+3};2)|VM9S=L*>sv=q;GO;;{@FkU;v34`G$cB01qDXPYoNj
zjyRG;6MhnRP8f74LMGiFE?b~$kz0vg?fEfI4=(w`u9CP@0eeYT>&AL$x1SYRz`}U_
zQYC9D4Vl)DisrBg=-VDtK)>Ta|I7_OQsJa?@2VIz#~3@|JXoe)mZqlXrggTyac{6!
zeg-D@hEwVvZ{gXeW$R<(BF57Tomt~AL-R4pz{qJgAv<5ot{h|toFw$L2^`9y$Rsi)
zl}umD2^D8hCj<SJ_bgp>+I?W+rdp}K8>>g13a?14P#~P6JG4tvIvssBnHL*&^AJ{e
zFhjCq$J9VD|5n{zug|(YB>W^$ew>Ro15Neg8N+)&UEh0&+3`BvtJAN=Pxs6Eb@9qL
zubM1EiA8<pmwQ`xtjMbvvzysQO6Y0Ygx!GCchhR%j?uv_b8!gW;@IR`GDZO3QoVh8
ztTMN$tp)+;HsPWLda3BvhA|q7V227EU#Y!^I0Rh*Uef>+s{$SPQrxgEjJIw4cPQGP
zS2;!{_TDUvHLr=J&5+gEvN4L6cB<S|cTsC@pG=yRJkVp7d!EF;Irm=BrK{L)WpXaa
z{_uo=ANCgSr}OF~kALr{y_K@aOT|byUyM=HanRR-8l$k{$)0t8I|V7Abq7BzlLhty
zbIBk2dmB%Ub!?RU@*}a~Rke(t_7REqwMuj2^Jm*CexD@FaiH>JNrGuz;btXd`Ui!~
zI6~|m#-cqKw$Yj~2A%~%FfS9=fU_-4uS!STs<d*_4{}|-e09(pM&3iZ<`Gd%|0Qkh
zH#kM<DxO|Lsfc_M1DRWR(8}adaDVDCWW&xhw!8u4JjOo<6XB@xfXtqNAqY)v02{#^
zJ;9Xzgp%EGr>Ed<V@}{ajAR*GVaSZ}aNWqGAb|)c2}J?GXBt~nVgHNnTSw5Z6PgFs
z;$H@6EZRoc=;7nua8@4}O>P{8AOHiMhhWJ~(L4bm(=%pc7%1pI<Cj8!;yMEI9iV}(
z8!GTC!wCBg@GH@U+`33Gm01}ub3Y1it3?OP+Y0#Oyi%Y3U5{a&g@&Ei-`*IA!@91!
zkV<GlT5qta$DqrdaXhl`0|4ed1Nx-rSOSZJI>(|rcFAApbY^2d;F^}vnTPdxh-`@U
z|9YD@t^rT;z;J7vb@7An1H3RA8ymv~MqfVm3xes<F6(MugLTzLamaDHbHz9v&HDJz
zrs>{$xWjoe(H+G;()0kQGL1?y!pOxBSHR>iA>yXlfS&<aF%Umf_@fY;PKFSpFqh_O
zI!R9%{Vr66+;FSLRac9;aKl^t;b0+w))JfGiTN25)#T^IeiUt8cXvVg5gX7BucgSb
zAHwwd`(saj?Sx<T#<pM9*}hK7^G2gn*bOXFE)fXuJ>6UJR{Kn!YbTFCfMaYB;XvGD
zZ(Lb`vCPI<!u=1tLlhy%I9_!C3@JZs+x#$wY8=+&-O||bjI9E}+s$NPi<@cW{HAiO
zDW(MG>CX7gV#feHK*PWIEj@hEw2I@)r#Fnp;UJB>8>G2um&CE}NJ|sgN`L9L3pN*|
ztW%FwuX5DQ;wj84n>Vh7mA+5f+nXf`1(VO8xots4%%Sx3a5TE0J%FpmJ{R!r_b|-~
zl1QF_+W+dk;T>Jr<aZPtSRK0~sVmURJJ>+oJ5roIf)ABF5{8NJo5P;I%|L?BzdW4R
ziw*Hq+PNfuOVtB=+fnvy*1q4e1IbjZdF`cu-|x_RZwL<eIv@cjL1-mG`MC*-q~Pj7
z#*`KXGYEG`fGv%UOPJ1pT?=vQQ7)`qa4*6{tk=0vxF_Wr4B{A~u7|78DkbS70=6nb
za)AZwG%D{5Dx)D`TMcHev%9dczvp1O)x+9di#=IhtDSIO>BM9HU4L_0h_-|9?AZKQ
z_VH0GpsqA5ISn1Hhi0{00~H-&mwkfe87KjE9}roStcD)J=uWUMp+iZokp*mLAA6M)
z)t*QIOZ&FPvi9|R;Kmlccv;}g2kS@Jkt{sk&FL=wJvM5*P(vVlh_UY)DB1Yn!h=Lm
zk$Gbh6hZp@b`2N50u4+TQa%VhxDgRaz_gkOFQ8RfqojTx%j=iwy7m2_HXt2Gxj^-P
zlTlQ2>;9fJ{U#50<=FJ&u@ihGY=rK@r2a|D*$moZz#BZ11hOwS7>G31OwnpUMuJKr
z$6NnIrh|EWs{skTfmdk78%U?Z<YIu~)mDRW7?uN!X--J2Ti4Hb;9W{JAOeeNUE{tx
zZR;egOOiKCTb3x(elC#;zgkk$*?6FiQsU-dUAd2c+;EJ0G$qpj^2e2K-`n^hkh3~X
zAnTAF=S2;7fe@<lF!ZOKBx=gZ;uJt<N1Sfj*sNN%9UEDA`Oe{r9q72Hzdo<VP8l1<
zPI`a-I4rl(N0{bU%Ffq+En7A`2>eNbrjZ#XG}w3aK|lGk1t0wTfvZMc_E$4%7>oMK
zXBU2?X|@%YaBjJbnQ$&Z6ObKSpTJtm&40?zE&9v}*Dr<-@W>C&ebYl}qx9?WeZN{W
zZbQ%mAV5zItW&q;^=*#qY;z<54;QXuuP9J*)Ho#-a2lo43yV_L+zmU(>g~2P!4Q*7
zLzu^)ufT2rGmy8g!X4|RXZ#-S*Kk@)Cvd&gP5jkJIqJ<_4ps0YeAkZ-`xP_8i@nxB
zasdEh(-VzKX9spR#IlyMiYn+(x%AKjY^L0hT6GmL1YoX+!kX0uA-52lwv|<4H5Q4Z
zSDdfXlL0@>&^T5JW*Qr6Z3X>2<K5bAc}Pp&@*@lYl`zBp9xYvHLqkeht)*(T-5ra-
z7trS*G&<}KyP1U9gL~(2yt#p*BcJh$@~&_(FiwNOLvBh+P|#bKh8R0bu+Odo0K0UF
zJ^v3QfyaR2xLg_5>9#5Jp-7yGr38~OUsh5UU?2V7dqB_^vYiZs69WY-D;AS@6a$S~
zF)vVP_k%lUx=(JbE7&u}&&NEj1s!p)w&!5uKm!VJ9r($-_xWv70JPHwkKln<W^mEL
z_fTQrd%)P9RK_Xg<wxvtE82g*f4=RMg2I0JMN!ezizgj<iR2fImaeXivT5~iB^KKS
znuN8~I`}iak5lY`-zzUm7VHMn+;YB$$3R`Y!%~D4yx@t`7`u2^i<1|cweZ@dO@56d
z;R;+a?C9<<h>?4jmh;$km#NgsL5G8fapa#!#2NVA5obUKTKCEe^1_Ozq!(`TM;|{|
zPI%wHz*7pMjF(4Wbs@Kmf6ELME1!GzDS2_lQn=Yi<+4v-A!8;_#SxCMv@;NP;QOR6
zfxK)7UP|u|>|m<*W6<qHJ_Cn(rPDu`qBZ~dk1YRTH{WrH-8SzuH1SDl2wjMIqvIXb
z$fo$^vzz6|?W0mK#&Chu!n!f>1Z;J2Jb;yh_4O}bSa9;cJ#;V`f4|jP0suO<6aWLq
zAU#gBx%ODYupR*d7E>4?Bz;8Ua3sN@_1ud0V<Tj2fB;upmq?K~!qry4fErv5Nosmr
zeXovYDiMa8C?GGb@j;vl5x~Cl6b5wg!0W%81eHmw*PUS8Y>4W^MjtOh^k0F+k&ndF
zB`Zgb8U;tf0~@%e+_rmfDJh<D)lqZ)U4kHR+M;I1W#x)nBnn~|2!y#7hi*{-rQ1(V
zn%P0eBTA=gsVF;@_xekCksg#WdYOO9w9BM=>}itdYnOGaej)9xFK-T;fs;?Ef40Rd
zFk&t^1N~^z%z1fGgV+h5;AsdAh7M^?3V7Cobvz6Og+&s?B&eA$9pnAzda@%1?vv1*
z_jGsTTLg4@GJeF-Oz>gu%f+mVfmujT9Q%z#DsgV4Y%~Pa{U7xB#9k6zqau+|x<A)a
zW|3v9N^I~_6flxqV5H6mJNX4P4i2~O7-6e?288z(G_pyqZ>3@lf#WpWYTz><jPuj{
zEAvyp*W(U90W3KRVXdyoQ(W*8Vxz`Fz)9Z&PX0LMB;kWk*MlETH(+4Il=JO?lk>~`
zstL_Z+g|~nR>gjQ#e6JA{Im3S7CQZ1n8>JL<Rk|Ab3lTRkbrvu)@XC1)Jey=fT9-|
z5u0PaasA!98=J41eD3Amtb0HjH|$HmfE)AW$?HR*;+v;Tzf8(XkCc>?0K@isX>DGq
zX|PL&eGG6JHuS>#<{B%q>SjI$Ki(}j9K*(XHN%FyRLViXvyDLB*$Zx5{DfP_$p3X-
z`dl#Gu>NX%*<1DZ-Aj{A4i*fG9{57_L9fkq?ATOJ!--aNSFqx<=C|~e(hl<1gS=SB
zE>#fhX^E%vh99!aFb?|~UmbYmecv4kh5{$L^CVlse*{bh_Aqg~r^kTq1D}18tnW4P
zmB0S+H}d?7B~n&aDWCkpHBwSq0Uji)<GLQ?)n)OZpE=A7ZN+-x;Rof_m!FeaM;|Ab
zec@WMX<T6N^67j3z1i{l^<E|`@p&k1e-0e=5m^^IkUt!o?^DaZg?3-*zSkdv?i0sP
zv@a#iU7-7bPYwiz>f*2zMuJcR`OO|&22es_H;qDkQ+Hgtdg;xeq&Ux%sv;<BNiH>f
znAZ>5N*Y7H^D#b`_^}82%6T%`wCTu%O8pSVpZRQ|1C1B|6!rtMv17U7UK@EhaUFs<
zd#ZbZ&#LdyFJ4{CIN;Xf&X?ZOFr>M#f#Mg+Y4?7hkFJ=`JQUJhtL8we7Tj4k+-q|3
z3$?2}2%D~P0P4tq^)J@OMhJVT-vcq(5&l77mB0k7?=He-fVRvltUO}*z#I18-SYa=
z$E57&eL1-`N9Prc3H9~DD%{%$*^dG{=@aQa$A-oO@1E_+hLP79FAr0*IXk}&@?q|r
z;+KUl2NbxJC$NNaLn@H-{?o62cmvCilz=t|t!V4LFlbz=c~?D`g95|3HQm-J4it?H
zMlpD%@>1X*JjfU{&xzSD1UTa8SwaMY6z~)if#x%HuE9S9GjPEVgjEu}%+`(Tz|RJy
zwr;%SkT0V&&pNQrMQRsLG~2OTY)mf1d!rEeH>OsMnsQhEBBQA5wcjwD#C%m$_m1~I
zVKwh4^!(@pmFW0S;gWWNc8jNr9Xs%j!VoCw-m#)A$nC9O3Q};%SG7lpOkapi@g@O}
z0ZgoGaXOmBX<Bnc;k^GiC<sUbhqIY;Izm=Oz_dpNRJsPMp2xxEdMqdc&hJpr|H~!l
zJtR*zXhuA%+ax3@od25afeVpdpXtKbC0}kCpV0BiPxa$`GRJ{R9HRy@2f{!QT6C`I
z(*X_enEcF?!sAUGoH@&};bEJeSh&v5#==0jhy4kQ%fDJsHf24KI;+KQmHYE|$$uSx
zY%sTY*@USdj?_#z8^o8qH!LYHen;AxU&g@l2CQxbI*ncpX0Y720fOh@En$QXyV%Gs
zxp!`it_<HG3767BsjNOudZRmWrt#`nNSPm*d*kxIq38jHgWICL|H8#EWcQT)00ZQ+
zF7ZNt+%CC=c+cRsTBm`)VGYohb#KU%4?lqHO3pa%Lo)7&qo7&To0z&~`0M3&Z@gz*
zh-+)#ctxIi>>)6G<?=5d{HT<agYm<ep}Gvq`r!5NdDZPf0w!#PD6EdxnWeQq=EMFB
zIODZglKl%XWu1x<dlZl!YE-9=j0Ficv1MrBIA!pKcIHj?^k^mo8wa_G_<g(Ml<y+*
z!5U0h+k*v#&__bTK>dv5IA!qLq{uL3#;Kd8v$6s<63ab+)6ZMM&{_NQ_?!M^ca66y
zCoEPuh2x#BUD$wbv&b&&cY=E?TJ*lHH_p%z6CL5c9K;p!PVXe>eLX;W^fy91w3ad$
z#iK+WcOmA4>8PLHF^D8k7@#~-u})ar*Uycd^qCcI<iY)Y_B$8n#yfWWB$!ihK~c$3
zg~?Qx#JabmUlgQCyND0`pf1BkVDiZg*}(JR>oay<pOMk8gYYK21~3TBF=!gWV;I3c
z!>})1Y%O>g0!wzq-n&NDg<VPgW#MNH+rA4h@l0#`Zlh*X*njlb$_!qw%mBCmBf=vK
z%E;@Z&~R_y`~rMTqe&kMT(IP!;qn})IDBK%jy8T3E_OG&@675L`{Y0B4)FnTURSBS
z`Nr3-)N4O`VO6^E8$Xt+QMInn?q$_=`gM5ae2jekwU^|9-~9|Hs&vZey0LQ2tv?bQ
z^<-Yam-8d&MtE&u9X@bD`v`nxr5;og|BNag+o|7ofPaWvPv3OfC1}d8@NGkTOzmiA
zVQxTvwX8wD^Ea}W-09qu`b(zCg~!)OH-!0tkTotz+ex!9GsH0;UjLgl^5T{jo%QIk
zWpd+(r@;e+LO(HzP;~*#dmWT|6-4ZV^Z)zttpoKRm^<QCXUqEOP`^Kl`x*-B*nwPZ
zXu^ybXh;GEC0INS%sHwSo=rt?kVo@<LP99eIHc)yB8j~LI<;q-FMJQ3EB$Bkvb-P6
z)4F|j>t;HGn};+m2p%S{yc%!>&*254K8L&k<wANJ_6zO<KjYH?<l&eH^C-r+a#6)_
zu}`ZLi>jwQ@0Z`-*Qah?c!ZVgT#UU;Mss7jPzW1rYK1p@siB8q!Yi;rH+CR?Xxn^z
zA^uPd;XilT6z3D%dIel8V~k(FPFVwO!P)a~c>I7EOoq07xM%G#8ZBB2xnn&0kIkaN
zTXaim2Y8KE2<?3k!uf3>tQ%Ej5*SklKA=F$fthctyM|2cZUzG0+ki6;Eay%<DP{o_
zHrmjMG@Tc@F%K&&ZPf4PDF#g7+zg)B+O|tlo3O2kRvfT?jP4+eq-CX00F9AAZ8h5A
zS^u$fj1f=GR~4fM8`8XHyp@Yz(_6`#$+LCIFT;{<ztKpiE^yj+Ky$Slos9vI(AIEA
z)j?r^L8Fl9GggDL_>jp&dXUOI6KF1zM@Efx=&=SX4vxwZHGYm5v(6T$uoSeDOd19%
z@~Gk}QN7(aH9hvLPgkGyZ}_SQF2E=q#Ksn9q$Bd5AYsRVV3fj*$Oyny7RNOJyMP2h
zB8^9A7KaRjCMxbN-C)rj*tLNe+C5oMc5b33WE{X+8|e->H)Sw!^9h}P88o=Gex-Ur
zWKnkjF7<>o-^t<6z^h)5(F!HO4tPkS;qKHyLV>fTbFuEW9P32O3NAz)vt;Ma=_ul<
z(pkg)5B*hTuS;9!UE4SR<to50P*^fSI@{L5EpIEd)a2cKrqzWm2bd;Wx@p-x%|KnJ
zxB|PI&XR<U?mK62ek=rfD<t~cWZR}cY8VECg_{74<w)KWX?2N%_|s8TiAm^!0W3pX
z+)laIOpE<Uq_dwOPP?{mk?q?y=}EY0XM>D8>KJ`ghDKOFyDpFXE@<33QAHfC;p^9~
z!Y-t{q_w3H>xhURUM5`zKN_C6`gI_O8(1GBRiR^sKjyTw{9093(sSZn518ClPuuz_
zb~64`y!BKziMVgmwHkhoWI`Nh?TuXQ)T-O-j#J+~KKqNOVO>vgX$taXGaLRm9cndj
z*$}r&6w<TPH4}rlG}cZLcSEom1gI$n9uhl!tfitrI{U@i0;@q*(2zzuR0KQgPQ)3~
zk(?6(R<a6NT-S-Lyzj;>;n=(Kz7IMjqsD_{!=m3ZF>7atGj_W;8~-l$wpZXc3dWtv
zR4s%$(%O@f7<L8=L%~s=4;Xv!eXH%^T+*Ag;gOb>IB04C7ATkCv~wu{%|HHwqDCKy
zX@J&s*2o|J0bYo6@=GvRRDIof_U9i|Cx7N0YrI+WyAgP_8(bv6SlHWLynE-P=LJ;2
z2!voQfcF?_nM=Ds(=rSj-|Ew`Y})U~4YbN<*j$4pV32{cugC-@YWI8AFA>`|?p<Ik
zIUhAVGf>M2z5Da~PQu9f8ag#ZVAn(ijn*H3P~(Y$9?{WbOT*UBo|ThB%kq}BWJT}w
zmi0hh!RaH;Pj~-h!G=+vU%GCunfG@>&#q#nLZ^U)Ah2`z^Dht-NjJDePS0uNDZDfn
zTuP=)JxX>qY=NL&Eg>web4`$_#v4McRflZwYUP<BC1vF@cHCsynqG(F2tjgucTv8>
z57;GK3w*j=Xa`)9HB;-i7gsFjI!Psh6HsKOU+h3$SKM}b9VUbSK}#U8Gh~l54`fJ4
zf*GAyl`s8Z<Td5T_~O139IL*QfXjclzZ`#>8v);jPXO0?L&lU9V53sdc^E?sZN1|g
zeV&E)qyYq={#LUcNnP>qo#$M8?&XghFi#=U_^!51b0M(biXlX;1gx7_J=vYm-k+Kr
zp{W$op)%6#1q5_I@S_8V9@B|;7I<_n<-~~rgXT-75z^VhJ_}P2=NR(^e8#y!4`}^*
zT@IyDvxXki^;a9*3|L$Pn4d5QwDrOZ1PW!&_iR@l=GZdq*_aO_pl!F{jjlGud(-~D
z*k;Pf36^6IYT^npfPHrR=hOQEoZ@iQy~}ErE0DXm!y1^*aZY}CAV0yuG#@W@K75aX
zcN){Mr15SXM|#<b_0Ln|cJM=Ep6TSN@wy=xYu4@-NxiXF;~?Y6yECLAc&oN{u^ZbY
zH0ww)sw>bv4^Hf$4sKq;iBKV!9MDC(twYkN*O)#9%dBDe%jD-RV2J%JGI6NW>4$}V
z%|=OY+NxdjX()E#4LpTXA>G)b6$=V(^XAlvNJ51UL_kxHM8*Rvw3i3%^VP(;Uyxjg
zE7*b0Zf_8^<t4Fpu14d*xcY7bXc-Zs1G_wuK`X-1D|r|&KFE;#mO~11ZVwo=e$+$e
zEW&MIDX>pEQPk1ri381=w&>{E`33?A2wzftX+f&ve-ZJ>TYlL;n6aUuA-B6Fb`x50
zHLEf}aBOZ}%OfqYmWJyuwEGZ<gQnd6`@ClBVM-)~0wRq~tmtk_el1%V&_$5N)iL@5
zo6oK|z$*zIUDo_Kmf`oXu<LC<-MI>jwMJ664{1a>Es&5vQj%vI@P|7DuW`NjzTkXR
zQ3S*}IKDGa@BV?v0~a`1fuP*l7i+3p|HdybG6Mx6EA7g4dbd^GTDF({b+3fX(BSrq
zJ<~nM)r}#e%is#?=qq5z;HDaoX}MP#2)ovTswt3!j)rAw*+{ZZ;oBS1z55g(Kqa|x
z|MO*aMBnNkkKlP7MBX6QG`2}Uw3lfR$nGfQ8sEj4K=462P=gN~#5j80PveelxU*p~
z>_#0JydDhQBB(&uqmdf-c;K^NH?Md=v&Ld`im7;bi81eHAbgU|>!#x!PXPb53n?dX
zCk95MCjo{6UM6Ta*CpAtPzGW`cd>-y*&8S5264pZF+g;Sr;vzD>^H}1X1tO?!#@Up
zEb>Z>)bXqb|J-NqSHl<^UO@qp0_^A+Lq^A~1LcrT)=0q>)5wR{3=|Anh}SvXPo&q<
zL+~K;l(x+QlY^J%-MYk{x$8((bJUewldowox}ZO2B|cy2C^0H0h_mJ?cs^mCKp#?Y
zN51?|8|C5E?Q+zpLiyt-r%7c2mNU5$Rdx@CZ6Zm3b5C0Cd$nEef3-zcHTK9SPN<Q)
zFFRHevmtMen(8V>(Ql1g8N?z`(K6y&UdjC4p0+uNcw*R>9N@^p{$L6oLRe*kUC{Nr
z`Ab}2aIe`68!<<tNG1>Sxl9`|$)#nk;J}&&Xq=yql#wYuR_jdsfxs91;gh${{m|*x
zFFz<AYHZ<~h4x>cQ<##zTa;sr*38hL0xo3yD9(8d9AnvG=yP_O3$yGP_ddHWKM%=g
zJn6{RMkT8o>?-hoPpz)McnUX}+OvlJACpvOb-+>J5)pLQ(LjtXI~oIH3ab>100z8x
zR9OkEQCLL=MYPu3BQKZDUGk~_fGQkum_i(E+>|*QN!K+@`w`C}#qUrvYK)w9{w1<=
z>t?BerCpMqTuIO~Uk_Z98(^7g#hd~If(l^A@2W~M>tKz_&vPq6Ww3A5ScWkRboyn`
zSk`{P0*_a85^dLG-Uox`zuFyx95wnMXnHsJ+K<hzl~13Be(C_<fCS^Y4+Sv=xhcHs
zG0L&Xy4?B*uOQA6yz4VFkr%*01lPj%rQmr4noV%|<6hr-&u)tG(Y%htpAq%cK-zx4
zGXi${^MJz1<PFo?+b}<3N<l-ZaOL#QwmGmcs?k)6!hP87)}V$Fikv@LkjJ)>25}DM
z(l7=a!cGG7ZUEML>T)Qg6IPVFI6au)LwKAS<2iR?&v?|p3R$!JOEB|~F--9l0Ay)N
z?HK96ec#E=5fjoW=E=C;I|dsf;e-I_gPm?0$3+%ZP2SGz2O{8j&kB_`e~eLD>f;x$
z8o>A^PwL{6+ox<?V*9jmme~m`2EtzVUPD^f<ip6#fL~@sK5Y=C2O7U4KBQZN^L|H)
zK8>+(_a*iBL$h&^0|yEIbKSkY74&2EM({ikJG4MP&^GpgaaMbWBwt$tN5dIng1+FJ
z>b`oN^9m4P2tX7r&oIl&v|GD_qXY?Uw}8$u<cBy5^0j3f{<eefgFHvee0Jr8D};Ei
zdrxfIjAJ9i5*P(G6Ps8duS=VU)cRH*hnmITw4C$g56b$=Yd<NuU@quZmxoOs@=L|3
zo*=<(uS$B&QrL4~`Jwg-Jxju2>_^Ww%F~;><oxO7V6G~0CMpoa6O7*Mg$70+3E6AA
zdgYI=x5>KZKKay%RdVs1I!V`o=Q`#*P(NtMsL|D^nFVYT0<_Q0tGog2enFl7ANzfC
z9Uci4Nc3KZR$Q$S1#5gPXeA{I1fx*ky9q#GcgADw43rooBqT7Jm=WjL6T%K_!P0Pz
z=We$QWb;X=G^3yO%o2VYul~I^Qjs(B22JcVg~j??uE7oAh>VOdz<1+SHjqsfLMZP-
zyU~6(Xp#YW4n&e|#{eSUVqJ&ZI4{?Mx=;g%_3hVT@xTeGL_5yT#ikG1%fs)hOT;;I
zxCG9R_pihjFHfe2>=OqhyX5BM)WE^Wl!5$+#UN)c#6cyeo;poEd*Y3bynxSkP~hQp
zA?vaRe$f@DXIi6M<+fN8cAto`ggfK9W${sYl*PF5Q>3<btezl8j~Nf70NrMq-#h>6
zmU7d)d%DEWm~*1^EbEr)nmWnF`XBwy?7To5y=e#IbhG%K_yYd90dD3+U>@gV9IZs!
z&^P+o-u4ys(P}Ucn7jz@u5vIoX*CefYCxvM{oZIJ6m4+7MceQiuLap-mHE=}oUyq3
zEpQ@xZ2Aowz&JOCbb;lDvl{5Sk&R{e3w^D=bD!`Tvf9Bo1<w})Rs(5;)dQ|wE}Vg%
zIL6SfD9~&4Fh*lonzP?Ljf~v#d3IjGXqB-Np<(PJl^AT}grmhMsTO<nGI6%O1f^vH
zf;NuJ0^Y4@>X8JUiopaA4txLHoWFaa1bwL?Dz7)e!wcVQW0x&~nP*D^@6yY)0AKyV
z^oQfESD${y_r%%DD!=R#t;>J$T*cf^_Y8jbfqeoU!%QCd3RE;_5HHwnmyGzBLt2A4
zbV2t5Sq5m4+txu$8>>KYDK>=$h9U4}MLGen(6k(H_7rm{cT~X6y<r`!|5LA9aZq8S
zn?B?R%28wGmZxru<QNMlR5?;!M1IcuzC-fz(S_+S3HylhK<MT0>n4mcz}4X6BX#j>
zwu>xZV?p2mJ7PE$>q9NyN8wNJ;}!cY$*_!3kZwln7odT91KZYi2wJ<v>fl}z*a1C=
zwbSigVvea1vl@H|1G|Q<+7z_Ort2}|^_S^h&}%ulBnNn-x99h=kgidH8$EigjIJGz
z^58_k(7N?PD1|$6dh>QkLuhxn1G9&NHa3R}f)_F2N^0a|I^`EbJ*ev#c=G)Y5eLjD
zK(e*`=EfP0<a|DR%#aV@m~+Ra+hNk71n3Z1B&KoHGPnXe`T%~!%(%r891u9jr;<*3
zp_d5b1(s+1=(!(-t2g$&y4`Wl&2`l$am4NOLyx%4D)=tnE(L`KlaHW#N!&pHwRa+M
zj5Gv-x|A1!u0p}hOq}DhTA||@jaUOhVi3E$$FZa=0Ye|o!@@4`mb|`pqrA9kjVwHQ
zj?|8>kz6e2r0|mh+~RPl55o&E$Tjo$$I~H_*qoWr;;AfXhQ7Dh7L;K;r2>CW9e_F_
z`Js{DQReH|`TjT1pCl0lv!dOfw$<N?tEOy2t^*QC|Dl<`3_w{(&kL@bHXtK$e&mu1
zF7cw_gZm6=`GK(4y+ivw2$Mb1!zn`tv+2J36<quxhVc$H06;;=PI*{@S6o&s`Gp1U
z-bEUY_%YRYj!Ic6=e~=7G$M}BCZ7r%NN(J!1$K&%><5G2r%ViR#G>VV`z}!h1#p{(
z%tEb?AN+!Z8Y?0&=tT_gM2#?vXC4=H16RgDKxf_7&L-_ruTRTBv|FY7>lWZW{$P<$
zZ`q+YQUR@njY!oY;T?y!Ewsn-a!-@og0nS)#tuO+hTaVgf@bZAQ=qLFBhIQP;adF~
zm<(>vVau;yYLbSIe(AtEpAR2X0V_GRV_5(k1f9Ws2>^-Py5jPGFE`8YUTub<+LD^$
zh+Osotg)SaF4k8A$eFr)2(u0Vi^$D2jd^7!M+>@6MC9L?vcH0}dUdEfX?z|yaGhSi
zi|uFaP6)o3;Jh)WUrk~`1mTXEK$T3;#D!hZ-`XWgI8Gb{aIg!JUw~z^p~y*7m-RDb
zuDWLA^(}t5LtdR9d2~H|XBPNWBqS!*_DCmOhyZg%S3$NH>y!jmb`V7z9WQ?@ZAxPH
zJ@A2yn<>v63qm)M<BfyX1zk2o01l6cxr2Hr#9YCfrQOMrHMn{F`~-^&7&ixh{X9PT
z;{*cNgrBcibjDdQ-0jvy4)#xDNx;sR<2638$qc+=qYMk{4eeMTKnJaOG1g3%VC@u$
zoK8m`8%JBrIOaH+dE5zzLoY$>Y_1vdgI}Nj%xfkNID#*8(y6D*WUPbF#ZhJj*hQF(
zqize4AId9xcN1KZnxP*60~r8wQ;PHMYhjf|d)zOHZ(>UXZj$rVwrzLg4euhJtqF!4
z^NVQ%dw{{BZf$LGJxlNses402?2ZkF%NSK6Hk4FkIP_eJcm|DS$b=z*pnrIy1IHPI
z-Yf@&EY!z*nRwQZc(N6|`c?y-KQrli?_foE4~2EMX%DLb<Dp<vu(m4;#MS~QgO^eB
ztC?yj)>3xhqa{_7_KT}u@8h?PQu!s98eD2ahLnK~Wgx(K&psAcW1aa2u-<IE1YUhq
z{&QZPJoHApESy{{#aJ6^57kEK3Wooofu{;C^<SJ<BS%!`$_qRD<dYXJkR*1A=P^?*
zH^vteIJyB@_qYW!$+e4CPUND1vhF|()`=dx5U@gXu+7em6aoUUJeu6W7(~sT9iX-W
zGfR&biym6Knf!I{+_AzgyLUdlBaLzyeD<H8fmF(;SZ;nQ9&^Ds7nPStQ8B!(!tQAW
z%#S(eV^D^qn;x6+rRuZp%^LhnJ-Fdid)XPQcR3&IOIWgIo05}{G-Prej#2>p^yl7N
z^E5iRkN_x<*SpWoPq4Zm%Zhbjts}D1{MeRm2RqZ#LI}8F`oLETG<H}QE&0ZYH!u9^
zbK9~iIv}?g_jTw)gyY|ar;Y_CH??W2R_al>VxU)%4KFCGsab;K$4YS8WO&Y@@w)$h
zC;cAs8Tb6p^3k|voDI<Sz@#xCf}A`2G8|r@fBH|q3K94ZD}U<cReIAX=H)*<Z=#rk
z-Tsnm)=RJ}D#2OP;GKi{2&4=~>M5!?09SwmC$v9u*EyklC;oBLWPkjz7w%XhZ!i$t
zKHyn*9lg=C8#EnsFqB^=B}befd1Gc{9)S>seLdo>JEU{Nv(n$PRgZ6uQ9oqhp&{eH
z8>xgj0O5+Cd=(-Xt>ny5Z{<n2eNsp4_n!rzn(OX?JrNpWnWVxXQs4_s%#D(dy;%#O
zJO<B56`-D@GU(vnke?-8VXqyW!WEQ$(7L5Bt&*inR>+L$M@SnKN{=pHF57nOlBb@2
zL1xdKD&y-$%cOC&(g0WEH`Z>FF{7(w4&v)-YGhYyi@f^A2CyzcIq{gIWWreLsc>8x
z6jH%FtV<>i>Og5j0}=on_>xS;`R6-|%lqy;P$#T-4H|R_=h~AUC-<g&2$zMWrSQy#
zhdkip&H?UtN<bmshfUYI+Tj5SZ`U+;E7vqWgN1|Y)Pv58aTU769KgUEr<`N*3iG9+
zrdo>hJGqV<dFWk(avDldI`#HM?`q5~`8}fAhP>b)Jfg3VH|-eo$QS_bNN}6s-up3b
z4@l3fmR1QwN8$7sC<AFQ9h}7*yM9-Y=%WmyeALZKW*krVvD+Zqflmg1iYom|{X%^9
z;xw=K|A~7OIKPhS&bRJ=?R{^xTHP&mYquoJ`+~e+vtyQl01gBQWI_mpI0<B(ybo`b
z$0H<}B=eFCGa)b`3;_}oc7yG(7`$M4w`E(_zPDQ4t={+lcHj4R>fV3<C2U7FR;#4`
z->ueDr%s)7>eMMXKaMpF`v+an$?3g`5Yx>UA6}5qe&RcysR<gF-Q;SZqtaT$byef^
ztU=O($Gn%_?1J`Q=bpI>fpyr`W|A&zdk#TFtLvH2IP>}R28o%e#$2X>KasC`yqda8
z-pCp!js~R3jROF(5Kka_mgz#BR#h6_Ids>jf3obxkDN1;wTZ4`Z8Dd5pY4A|P%rl5
z@CXHkDqRK@W@iZyC|rRcBU2(OEMgW1!x^5FYJ(6$+NCIXrk{P~Fs2%~&CTiu{kK%a
zB{!0p(4mQuNkoD{yk}PTaa<8E%`rbC3{aMpsJt*A(jQvLdFm+jX3Emw_JMM~SjZLs
zIM}>dI{76JFVFmVeOO3*L68*;72-+L@Q_xBoOyVNU~zAM7L~#8Q+brpx9B}_G+Fzv
z9<K2>OU?&hPMqHN57WYyd|3FyL!W>DANKvqKfQzkX1Vkic9X?~BP?yThEP>)$td=p
z#A(KHTWu+^KSwKT-f>5pORw%lAp<^XRu$NE5s{0>QUsB>5)$M?9MFVp-AG_&sR_oS
zM4)6>F01U_adff-uEZ%#Ou77?1FnFlO{Jw0;6G}=!C{x+FSC9%rjnh!H@GG!<<eY3
z8tsugUe4_2yg7cnA=!|bxmfkp))2|Ms)vG&9bh0KIML3k0cP9As0tKOxqf{32ToK#
zD~|S`twMP@CE+<q-E%CzJw-e9_sVOpaP4?B&4{^06Jh)LFaylm>VWXq<8Yk6uuf%Y
zv`XL?+{6fp(#79&JuMhFlzyy~DczpNwvUslpt>ASk#JvWZd<#LcE#DBmh9(!DAl%a
zOH|ihXZx*X*`(Fl07dQ;7DBA<6)~?>OLTl)q8S(5Yp!(Z<`wQ&8^7y*<;rJhIqVeh
z5)PbgP}~em$Hgn^-NjuE?6BP6lGp#Tt<+c^%1Zc4AB3k)p*UrNWhGDV)K>wPAW8P#
zCaN1U>2%E&VxKpmU8i9LsqinWInkq`rP<YDBAi8dPNGy0Mrz#TQ7p~jhhzeiziAwj
zN{IKtFfqD6^Wrh&*%&tAV3zG<Etn0qbhNuhPKU6S9s0@lg0bG5N4xO8xuJ%ykn{J?
z%>8^m56%?c$HLPxwf@vp$vw0mp9a<J4eroh*=NTi@erP2k46sB{HQylCC`#vq@g^g
zR(|Kbx?+@FpX1XS_nKw=2%XEjy77tZ$I1Oy&nV%XKT?YpDedGS%xLYQBkadSnI#xh
z2I?!JKDYOP1Z0=qvcVHMHMp{!hKVHPovd0ywhX0Kb)%XPJtN_Bz}y!_d{)QuJ9oQ+
zOyVt@(=xYlsS4!q!0fOPN^M*VkHp^MWUwk%Ou*#1VN19KKlL+HU15;^l^8d~4S3$c
z7jE;I-iUt^oB)cq5)wA@9;>Tlrq;EryUGO}Tim~W_b2Wr_v~=5c==WCoo{<RtIKt6
z=#lTbxzXcB_dG@SAW&W^PjF6UaHLk(jx#bHf1Y<U(?f1yo~;cr=)%%6=A~bJ_%k2;
z$>qQP50c={X`ro;-G@IvIoR+-5ETC|(NcdAZWmKwQ}sAo$ab*0eF(DhN~*t}5g=~B
zMnc>&RZj2JHX6<~bdNu=%l+wJe#R}JxZnBALDmyy**aBpmt1l&=V6b!A0oKdA$+&9
z3Op%+Re}!+k^KnuH(tBV?KyDReed6YEU3GIlSA(Mt1oqZeLb#iMIAyfE31^@>!E(4
zeEQ5rr+>7%1f|5w#|D~VINVW-w8TGmeg6Gbb-CGJ?dtBXYt(iX#;srz*Id;RKN>G`
zt}LwNw4zZraO}978fRW(JbLAl@YK^b!y%r0GkGU)+p~Ixt;My~u4`qtTZX`%l#^S6
zsWn6d2p*qVScS){Wp8(Ww)RaN=lX@<ygMhghNy=886v5=QHbB^QTH?zJPV<3r5UyZ
zm3h2q0F|QyC+MOX48tM`o^xy;uEUQ|T!NI4F*KF6En;B>UD6gxmBBw>qV83C{Oh5v
zd8Y^sOu+j}fZ{uX)r$`=NNBHbC|%7Vh;Q=4k4Zp5^@}Nq?&atQ4Vv3{Ev7P<#y)bJ
z`<)v`-GhfG-5WPIyP6CLXc{ozOl9$WArG*Zv#RoI+m^fD=Cs>8op$ee&)Z$De!02s
zH)u)1P_TM<fK}GX%w5xUH)AmRNn-7`xaZ&}F`G@6lBKq!I^XhF5A&a~pkpYsKQ`Hn
zz>cMWRyi!Fx<rzgC;>WpOZDXelU42dlA9bGg<$8{R-1K4aPD=-UH7|TJSM*7^*6Zg
z70X;xT|MXRrrq%9gqwo6b$4`l2QuVcVDI`A0)CCOcWDYJQi9-w7D{JAo6tfH5RR-4
z9-cA5wHo5*DfnCVn0+Nt3aZpD+}=-SmLK2y^PDwkIlsuCTk*CWOpg3+BAIANqsYm?
zfTma}wv}U=s6BWxC0bxrIWK0#f`_aIn1W;&-RX}cQLtX%-pBDnZgEg5O?9<jnQCrr
zH3nN6QNd0O8#(>v%<RnQ)3<K_)aIMFpBH6D+!B`T;QIYsF2YsVdkE(2pznM7--r<7
zuq5GXath&Q1jiklSqW_ywF8JAgDas^h8Ev-yo*ePls=)A5n-+eo3BC))aadQC&AC$
z<4?H)6Raj~KWwRsU`L(g2qZ6`2_kSCR@>?~-!uw($n+%>+Pk|43sb|jU!@hl!OBxp
z01inDtG(e)!aCl2Wod%!Yq$X&kAiNZi9dRy=`_W-TmT1ua_<iJ&;yUVEgRRl{-GiF
z-8=7bM~|~=aL+^T(u+2_-p&<n)vD$0$kCH-*Zza7AoRGc7p!p|;L@?dA@}sY1FjbQ
zx_s*et_ue$+Pjxw)gTogFJfid^h!0TOU#7uUcH5qZf8^b;GZnjxIB61f2*a!uMCr>
zAfg89NB%>D3NYX$1WX$iyend<Q9^)EN&(T*<x<za$AwS*z!mr2$4BY7V#>$uSqANo
z4`6JQ7ruu5i3sm<@M(cQLa|xw#|(EAL7|Mx+#<-knWMJXHrc%rGx?Tlj{Wqnzt*$u
zV@qa&8#hnGaOdB&yr#XYV_O^jEo%ic^OoX6RK><=%&@h)?$xW93nttEOzX(-u(i<?
zN(MWPXg_9Sx}`jPm-ugDJwzuvIy*SBvIm9?C7lAe<QYG1g;y|k8jqMxCTi*%-f`&j
z+wbZ7mF?$W5lL0=`qT|;cONNUj?T;4mWCD$O_bb`Qwg`M8T(dP4;!yELm`R5>#lt>
z?hpUh0oT=@aex2u&92Cv<I{p@RTTfU_dFyUGwy$U;fVX}w~xF3^4?ze&Np|t;#37`
z7jA1Da#fWgiorvW7@02q!o#0&AG-Y4-5CX*S;|ZNEZze0FK11K!$&>Ni)Kf~R5F=H
zhY^(W?9EIrLy^_q>SM()i4)nt_75@#4VooOM`Knv;}OlLjbX`W^YV;ERbk*H-+a6%
z7auozXO-h~0Sl}odrHGKy=?u-E(=om+9={Vzii*WJrU;bxsq{L=LHuk#DC52zRvWp
zUP08PM2($a`HJ~iCHCo8cdT(OeVg5`<74jDZ`|(gf9NqchYkJfUj1^{)U@2y_g?H~
zPaT%EqR*MUd;#jCA}3R^O5e5yfxVt*$_BrxYg;+3<|JPIPoT6z5sI<|uwPajInYPy
zz2_V_s$y`t@c4nz(F3mzI$Bp}!$MUtm71s<bqBz=V5)Zh?}5ukjRUpER@}Lbu*AlP
zSc??+GYr4+(;W|)u-%TA?O}xUnVBi~?svb(ZU4k4+^0YNY4_>B`CC(dPr+jdM52fI
zi*mn2ocDhCWA6U@e(HYslO1mF-o5U2=>3<!e!JVUd87N2|N1d^*|H9JX0~~#<49*W
zb|2A)a=pTabQYV$^Ay(A)?U)m*L_R1IX+W8*$O~gM%c2~3hhaIQ$Cu(sxd@nW+8Mf
zw5^$Odh+NIcO1{<ITk-+E>#$$W_oI5H~vS0Cv;)i@($OvW)=8UgY$g&3+B)at`?QQ
zaTb{6-}Bh8yMNb+dk?-ER&+M7g|_-r{TGgWpNw8I9;~8fXMO7zA*1GS@$Eb_`5A8k
zsZPQI2^JGZNo3(UIy~rhapFZ+?;6|6v-g=N-1z8-yI|{O2-r!KWm9g$g%@#bF$=$9
zSd~3+w5<!`VWYg_t1n%@eiqi}Sms!)aPsGx56)U>N7Is+ZfLoVC8ZW)f;12`Imm2p
z1aEz(P=;#djG6^7u)#8zkoG>8x$*t(-K@U<B3^_8d6%a>aRb$$|0qbKse#_xm~|g`
z`8pSDd6i3CdQ;g`vlv%VFRkE}1_sfpU^-!glu~5gis?skStl!s4H?Yj*HPX%6WZ%L
zIhlH>_Wz>zKL<8Vt{&4NR)iAGILu?OL{N?P3PiAdKvZN=81O?ZCUWXr5xN=%)?+a8
zpZnaG-4IOu>eapO09y0=AAHP+*<(-bb{iOgogHnqlDCIr2L^{vxeM0zy7id6wYN2)
z!QAf-96s(=VS4=P8?JJj)~$vogUMhIcuHFusD#QATI(;q7t9q@#~@KU+0?%Aysbw0
znk@cyO%GjM)7<v{)^=8=I1e$4GDItA5}a+qfIvxDpGN?kni#{g{1~Q1-oQf5@+}sj
zve-7flzaI(8k~xui9$%5g^_4u?_UefDrzt*GMSjZG%y*XYdIuR`TQTZ)l7Vmr-OQP
zUIU$|<G>2wMQ+c2Ym3^XpfTu44$ri&FoqWU$!B1CQ7mCDTV_anL`&nx8n;3U1l?qJ
zhf5amPA(>2Ii5MVqqJs{$x3H#51ux`V}+QI#r28P7iKZy*nb!&iHsQ>cfiAlF<3>C
z`z_&1@FV8q<jE)g6dRHUF{%BBL~GqLYg2P=E>V?zxRi3oz>#eLtP2bgm5VUN!%oj?
zuCPbvKT84kz(YITpZ)dcSe?wdho0E&rrD=CjnZgkZ?8Ksc*^zPakp!1tVcj^VY|<S
z8)NnNp8FqhS6sH$z3hrh-BXx{{^;HZS!l|-lUg;n>QatO>U0flZ0nCa$NPFjbpS_I
zemqW9AFSK1nd)CI4ax|A=RDNZ)^-Q!`m2%d=zA&v9CTi4;rKCA=6Hcp)!-ZB$h6)t
zT~5cbFmBx?Z^pc`%@v=zgKZlV<YAB{zHg(Yd#+YUK+j?cfk}MWxrV4Lc^dvvmauE+
z)Xxa)i`inqFfxoYO)Nw*nd{py7a-Bm=PK%4z2Eu8->d1pAoxOkQzMH4YBTKzj>BvR
zt7FSRl`OG%FNR965#wLOR+IHxo876C1McX-LvB_|vj}XSO;CJchT!0X#<`sQH8eK4
zm1}yTVJ&U}<!zoVPhtx7&lomrGY+C${~p`fE?V8_uDi0^rE{5gW!pynjhy~H&hLC)
zr>4VSLZ`=ZjOuP`4Sd9Q;NJ{p*Pp3=+QiBLnVKuQ-A86zdo%0~U>5CBo6BJlRJ_td
z#W%{BnJc(c69x9J1J{aAimHXNrrMCR+->KPeb**5Q3n=yng#~0dqe2%`IZ%1F7O=R
z(AT25q0Bd-LH?+s#WH;p;)eM4>ZFX~u>p8CEH^d(Dd-Y|L)UW92OtRSZGJrMTNKIC
z5(n){9@A!xe;c3WJmQR_vXrCpW3Rge_cRKGpsuDV$b~RbOA|J^r&Hj@o78UADxGO|
ztsPkL$ib!%&iDdiz+a3F@5fQ=2=~yPC}<SHP`M0#l)_A%>+7y|zx4LkyFSdeZ+`1*
zT?<bC<m0ItOCx2cU}=o*NlC|KSKaCwTR8`s^gaSHsEi!nHZ-q9U|(?KDDDzGBaLic
zC<Ip$Z%Kr9Um=WXTh>6V-DB~yu44nw^fDASiSj6jMbO-ICQqwzCt7sq&@s2;p(n8T
z@r#b?d+l={X8~d7&YkYafrC8bW{y8uR;fSqr}zh<dk^l|;hubQCnwdgA0D1X`{5Oi
zq0oHfktf~NFS{IiiO^0^Jyaj76VFyhz0*e~`cyIB3m!j19im>*hjSl}-TKk$`li&o
ztLr!%KCTo18=KC%A3QPO-gs3vv<3Ls+?I5AJ${lC_6qLRmn;WAQm%W=I{4CBcW5uT
z2(N3_L{{y%7d#!3bwV{33thb{T}Rgnc-J&Lc8l)m!(;B$WZu2unibMKGQ}j^$mqQL
z@e{}z%j>XSVqQm~m#N8iR87y^fDHKM^SRpYErx{!XVC9*SLxeg5EPQy@*_>ICP`rD
zu}Bx@4xSs~0j{{_Mm~eR<lBWJUw9(^Ue7{^6mn#FzKAdcg`!zemymyBYiPyRXCGH1
z+ea2|2Us)&@PEj&C43+LTz+EIt7jEvuI*|MvUS%O0I-8GAh2pt970e&!HNch$4q8f
z*)8EbO{*NGK{o1VSh>3F4K95p`x$ZmQwG{ul^R8Y5URY?iuEpe!F5aol^QfJuon&=
zf>DH)NUNd=Lhzz4MVOmn|1n;nd9H7`e&6^0)>DZWQvO-Sl`zn_Z07UHFnJTUuXiNZ
zcMc`jbo3`$8}0~evmYuZQojcyJLrd!CnmlFj4kuyma;_XSVczjIP1Q5$4}fhzWqb@
z^d3xszJIrSYWIG3;nuD0=6Agd<O<x~4?O0+_k;V~Ki~RYcOR>KyZ0Y;U;WMx5cd1s
zWTMgSI(QP{;8FLr+kW6~`QyKEuYB7F-M`#^x63wij8ue}zIoIkB5rz)i5$0?u#~ty
zJalNuCQo0VXa9Zp&tBEIYU9RFuiv^c)w8<SHMO_lVu1;cV~bJ@PMMZgLCEA>L#tP-
z)~$uf-NGsrdug!%(dwli+OhsztLyP#kA?$}8gf2vfSLCSw{h!c*RzK5T3T8CWWX{I
zEufiv>cE8i@(+)?6GO8S=rOs?+>F^86z@C-btop=1#m*=d7mCULGkY(g0!bJgyRlY
zNM+6_0&Zg{28|-xeUwg`ektd$;2`noS?fvBqSt1siQuZ0bkPXK*QaMm<?DedaG@VY
zPXrg5$y}<H_Lnp)Uw+X{Q^%(7<TC6hUeWLxx1#ZlVSV*AbE)vP#Z>m!QLXKybgO_W
z>TedWf~LT$F*KxAgZm$HM=|*?Fv)3k{Uk!;+kW9~?(5(DrhDy8H@QKS6(@ng(<o0)
zz{Jkrlxf%QeQv|%OWZqu^*7ziU-zF-G!@;xeFxpwzI&JZ)sOy(+y0lIb%X4ksshdy
z3}7+*{i}GKM)hmUSEp<ImvjG{NY$@I4bLW2mChduq7p0HvfQxop{iPSRdN2H<8pFU
zVxO5kV|5j*zuG0Qcn1~^?0_%^IL6bcqdC*t002M$Nkl<Zoy7c^5X}cc`zm%<UQJd^
zxN%vAi{LWWNj4W$!YqzMU3FXw`x#L7rPdc~n7NlYh!5?o&%FVY_$C``hGBke{OIuk
zH#nx_{-VIvvYm%U-JOq|z#M#@)niu6ySv@`&70Vd*vvF1W~7pi#R=&XU?rv6ik01N
z1C}(+T1|yc9>sCt?GK-D)9h`Qr*N&FmgWoY?x#=jF7LWp8P_m&tjyQdWUJqb^$?uT
z`3>Lu+p8KT7fP?hT(Jt?hxyVv*U(SGv&JKW46MT9pLl`#s-#=nRbA%U7U}(2v<LII
zYSMRL<yS*L$a*P}z|RbSD6=6^CD+juxQ$&n(qb@5u9r}!xp{7Zzp3Dz_y6@fmU!+2
z7h+tm#Q$=0_42d`h9^b#luOBL!GqR@X&jZY0$;)(fKI^pOZbw|&iRD)tZy-+>N8;u
z)uIlTH*tvBTCv@}4*HETomm&zt1yn`my`|Gp#^}xG@-F}kLGNSvSmnQn(*@gc|&-X
z(4I_c%Zk6IQ`IIw>z(@AF9P^ga|zz*DjZ+2U8<Uen#(V}(EY+2U*)!4ehK6Vi#(KM
z$!an0G5?{q*=%C4tZP6Z%fioyj>UaoT}3I{8=r{T3Zs)5z<>4j?b{>rzcg?<vy_>E
zJy)P#{733?k#$)V!R99J^-dMkvlQGq5_T_s77iad4ljkJqHu`!D1qI*_uS(?@}UpA
zAN}Y@Wr1GXL36?*@@Q*obNAePpZks9_=x*ER^q2{WY@r6aQXX4lh*{i!$GV|n3#Pn
zC{trG29QBo^-)~}S3)67d~)=}fo}h_biXM#+m}jbeo=j`{p3zv3qLuJ_VF2%r-yK|
zD%W@*jeBVCh`Sy7-`!HpI-uq|U-|YGD_q}(b@04cr<nQCV*O2_26nbBTMqwvAtv!X
z;IM`h`~JzJ4ab2yb`QBnpOKk;$sNTx?Em=Ie%H{Hb+6pE!qvAxw&*-_jF+wY@WkbV
zS`avoArjWbo1R6Gg*C{*>L+tqIYgZ<O&CFQZw5t>wxdZwl&z{ZYg%}CS(<^L2;1Us
z;<2biz$zh6^DL_RReZfvlz3+GW!N*fDkIg(;!78PePDpYpm@xucyYgHz0#hjPOL6w
zvRh)Uf{-TE3OkNW%mI;zOau?B3M*?8+O=mQWUq!>d%1b+b&uXgI_fOJA7e5fDicPp
zDlQ>=dYrbMTyP`%sm$RLWl^302>?qny^`6Zo(-9!ZxO(XW2ev{V@8=sy|S|{`B%gu
z!MO<%+!-u81_yV(y)F&L@G#8=&yHnVXUE14_7w8D-;IH8M2xD6c*Mj+?=*<D-}T8S
zo^}sEveV_62xMYE0z=%`)aX9+8^7UR`I^_b4}b83ZqK)GbD2&EAHsqd<s#Qf2-%x|
z;jQk~uYEm&|D3xQGol$*_UhO#sl7k<?|9U`^2Tdi@2ZtB7BH@=1Dz-0RvBUf44yR)
zR!_#ART*VT@9ElL=<6F^(Y~VNl7I<JoQZ~SE*H3iCnj-5)M$HM1x;BKjBzZ~G^;Gj
zn`&L(+CEmA8r%_tqDh1b?RO~)-o*DU7x0y%UzyTAQz-`8FeeqUJ2{5wTejp{YB8Ud
z#e{kd^Y~|uPe5QN-8C1mN<q2VZ2I@R+pBIPqo?>gZ^1N^2<tlH&m5Cg)FdV^e$X!V
zdvTC4ja7#BAV)y)sRSAe#I><b+qspKL?Ms>TR^109SdY}lvg>jPeRlJ3V{-WQkj0l
zdD&I*r6!?+mAAC!tR`rxWw$#Wl9aaZB@dLPVRxJ%+ON!cwu+CR+}%gvJ^H9{<~X%>
z^Imn8rOMtt2i?PuK8Ze41fKeni;h}cfY}%v9K-~R{rV9Tp%sA`_r&BLJ9eCvgM+LP
z95dld1b!L?=p-wsPvAxO@h5k?EhvmiC|?vbCRHD+6VFyhz0=3gHKlSz2&Frw$8#QP
zt2+WTWg3NQx11HqBwp~bpsPVNde()CYaguzzHtPKbG=*5thn^>H(WS_Kp&^~v3}-P
z46n@M6KfFI8<<<P#HxY>`zYwBmBlCS^q{&#SDVlUv_v*l%D`bSaTvJmP1Uv8%q{9r
zF;{`MF4>;K!0kOY#Y%hDty)%#6V<dk$@4ew?ROWftaHur$_w>vgn?a6n-7M2!Ld<u
zUbNT@#t!pFtyWmp^to0n-((uE=4*~z0rU5b`;HqfzV_1Pwio<MKRWD=u+s9D>$~0R
zwa_wfRdf$#__fQbhqsXO(Z&3i{;qVY>ay9{a82yAP}D(A31!gM(`x4YZfv}sQ^ver
zK8Y1#ZS9O(-Bom-{lkqW1cn^bWx@Ca@aT*=Pv7iSgi9f-UhjELhkNriE%?=Ga>IwQ
zQpoukJb~|qnwnYm-A=g6*RxFq#(Up@R@gbBkth=8xAX+X6)p30<kC4)<G2gj;0K;i
zTzzi+&h_+g`db`X+R7Tp=*LPNnP>?VhfhDW1Hq}}+S)tZ@X&zUzxzpBsp{dRk$Hrr
zDwx={>n{M#2=9Wgh?U?dVpS31VHgj_crFtC*PLopne;vti{DEW8fU6;NmQx{0``;F
zwqd4@j3PM3HPDsjsA*ZOd_=!t&UhLBc{*4?c$%7?cj*$ArL15|7)Vv6aD;!-R)rf7
z%+xP_G%BsnQ&%ZKY>w1x%Cf9=RWO|OxA8Ai*qYacx7TgQJz)H9DX${~`!*L7h0js7
zt>T;%bhY`&o=*SKV$>8)3HRa{af;(rtKgp$)I?cI%Hie^{A(5bhZN%CXD_&56Y$Qs
z1N&J~#uB4QoRcgH3a%2k;`Aw==b`)4QWBXW**@7%T%Wj(i(hmXUYt(lKY{h#N2JU@
z{oA>D0$#!JH?v#P*=!qH0~Z{n*nZ~4Wf|yt#;sma>u$TBqs`C)jzWWe$SV5{7k0Rf
zE1SSOAqOpyh710yeZ_LO0B>~^>x4W?ah;-6g6|W0E??1Oi%l7vMhcf>dMCwZ7fxJX
zaZ#r!gYS825TDaIx1q7dy&{oy9pA@NO^YU*>s+vk?YC9gD{~9B>N<9AAo3sNDvg)s
zeJq!CL}US{ZZ=&$M=~uANfDId1cF49SCWZGF|rtqVH;e$Gg@WiO*|+;a6OY^`VaoS
z=0zMQmwLKfVFJa9EIODcV~SNt&s66G+Z$7Bd+mr#BIz)&Ju2qK20#0pMe1Tzc4Z>S
zbeIDUfDy8)t<?;f7}!dIHA)$kDU3NkDI#bl*|P~X!rXN|t8>5TN)P-SduR^=91_LR
zpQ{d$8Dz5eGL|OR!bqISpdqNjEG}llogP#ly8=SFb(J8Ht-7$3#p}*F6x!7ckVB<w
z@RtbyPCU{<vF2?+p*bcXiW>)G#(5A?5mP^p65`P(o^c1*YgUIAP48{R4cwI$^7!%N
z?$G`NCWxw;>H}S6QY4MzcfS1{cZwCjyYK!9$jfShv`NINV`6;<=U96&L0-3EtqJX#
zQ&pyd%27}qZLURf!US=BZJ6%k)p->{$G`dh#;S(8j|4awk=c&n4{e$QR`={0c6~S?
zk%KBR3OV*%fBl~0uDiX)wKufG&}J}oTV_Q5AZFU*BcAq{kfjDk!B*Ev-@d%lb>p?P
z4kd{u2Nic{aGJAtXWV;V11N|SV7B}?=R`k!WYTTh((0DO2y_0I%4%V+{muKncgwzY
zH~k$W`h10Gd|BVd10t?V{OtQ(Z$$)kF0UOO=E;{INBXE}nrYN-5p%|~6lT+yL+21E
zTb5&DrND%$)n*B;ehiXOelF(OGAtkxMBGH!&LnbrryvECUp>?_8I^*wrc;)|3;c=3
ztECzn+Ium($36wGwb90;z(laIz*X-Q^sJLDW>^v0#p<~{-ezDdv}%xI{ORxC@3_-F
z@YDO<D9X)RO_~IGeHGbDfsgHIYwx)8PWQ-TkF$+q+|9#~NXU{RAd5q$5gg6PjL;+i
zB_<uymW@#xpS-gA#C6nT5dPP(u|w}}Ztfdbl5-gXHlK##48REq339>|$~jA{P*vfA
zS5&|90~S#BQtuU4b3-3K6WKl$KJsnsjIr)#6{{j4_fgQq&1zH7vEGHNwir`<`b_K#
zET35)mtA=!iua<8a3evsiZhCqIOM`r9gQ_LSA*Lw7=c+k%=k!C$+eB{;<e3g$1}sM
z>;|r$)w<gs>UXUTRd`9~xYQcpZNo?y5V{5w;yr8n7=xTz&ekx|D#27^s}aY4ee2h`
zT25q$-&->oxApjmdEMom?(Qdt-T(aVJ||D?jnK}UiM!=V>hcuUX)9St*uXJB+03f!
zeDx)yJ+DH0As1dbF%>p0Fg`S26^pC_!N6|qOSztQR<-BqSb3{wjA>f|Xa)0GDkWW0
zW65=Q@`AISywgc&6Z2spn|9%z4Q^n@Yda++ht;5zWZ;^3#g@hdrlM^q&6_Z_XYPrD
zrukyY3%K<SV+igEx26+i9qdLGeJ4M$sdTY1lbB|o&k}lHrkym5Kj36|uQ73E_}O<M
zjHfx56M?co9I-OOC+PahHEWfn@fY%Ry}Yx>1gk7(zKdo{F)4x5m|&$RuKCTu%(fJX
zlrh~`37+12Tvc?dk>(e86!j0pG)HEUmPIknZAews2jUw<WhGo1UmF*x3M*K}Ra4z~
zII9H;s4c-uR!X67r;hZyp@C!I;|z-gv#cp$(Lz|icD1X=N`X;IsN@9wY-sX=(ND^V
z`@za2fAZG+t4C9m+BImO%QmB7TY90L{pHoE#MECin{TCj-+@$4trBG7t12AdCt2a0
zVyof_30<^L<1`L>7M&80>hVPLWx>7dW!qdc+scOU6Qi^e=BtSp<BQ;-U=E;p8{=QO
z4n(ve?xUS{uQ<wx@9(M!vY#dGPb>L>D9KBHk<zxRDt)~ascsNj^91tL01ney)2`vt
zX7`3|E8UKrL+(ci>$Tamd;Jxi?&|ezC^@3VBC8R#7mk1z9X*}wzn*lb*jl2q?v-yR
z)>ZO@k`bMQmWjZ5Sa~j@3gywuHnqF9<|;SJakp|7e!)n|HSR}jnI;bNgr#G}Jyn}b
z6@$bg@q5W3@*iZ_xqx%8)F6vw9qG-?{UA>MSij8!ww1GtNQ@&C7MlN4>-t<8xPUOs
znZiJtQ-N=Wd;&=Pu6!T8&?SCn*XTWYYvCZp5tSiIqCEbhbOm`WD_c|mZ*|paNU2Th
zT>@VM9@#_Op8b5=S!m5!hU)s3Fl7=EeUG|;N*2*Dh=^E-8(7Yc7n<~l=Lr-aWY*EP
z$_1FpyB%L=&*7m6C^mG;Da$toC<by{p9@xB?h($4Q{H@x$}XEID89m(S4#t+lWC?U
z&bV3PfCjI2dN}hbbjI%nb*i3K7@$rukx?y2N5|YAR)t4l+!@{A93GRI$kenuZ@<I-
z)QlR00SO9otj<ZZq&+`%b#?B$-~FEZ{+<60(UaMbUjY=uqVI!vbsicLV_fbTBV=*;
z%C{^GcvyD8TmIF=v8UhF*s~eC)AJJ+f=o|SI(?l@0aDPa{?t!IdH}}vp}nK-<(Dx?
z(SCpJzJ7OfXvV$r;&uofXfEXs_)?FCtZ&^~x4*E*oH}`PA>SUE`(+TsyKxZK$=;SU
z+Hu1%MmnH%>pJS)j}g*uBkwCVw79*;C*8MTsJCrh=B~b^13?Q5(uiOpxPPFoSo%kD
zKJ0TpPruPv@M3ah9c)lkzTlpAYHyPW{F#A#65!Fv<44@?Cm(eySFZ=>X5HRhPnc=i
z`i)!h0?To7OwSiyd^tE94>L{7^pgOn@k(F$3E5Xn_de*k;$Gw10<<QvG>qHm$z5BL
zrQ%oU?u{A?3YBBRzu`Bksx<rKSg`D4)nFEj7A!0*iYdTo>l6x&VHk}n#;?Ym6ha#}
zUH~Wpcj)jD^9(=Diux(c#idkIJg)%NUSn1bPzX%R7lU9|5#ruC{jHCH@O%>z+{aK7
zej;)lRFU!}zSU+g^_lwAU_w8`>_Ta+j}1<z6&V3ec%ZJ1XHfRsNvj{MyV516IgaqD
z?_=tR;3&n=89`QEiAJoZR&K%S3aJPIYY}f0nKG2WChD^FRYfK$mk<l}ftrw(-Sg4~
z`G*+_N4BBl!9o(c^yGwd2iTM?^g$54amz9kwQ0BWAc`F5$@;E(ckN~z2%&(~oa*6A
z?`w>}ur;ybzM^;59YGl>K1*|Q6T*BiW|Q^u9S{p%)<n;+DeXn8IbNtL?T(*fI|>#;
z8*+GHKL`T}-L#V<CJ;30F^67Njr^Ngwsa7B_L45$=%!aKPm~7Hx6aICX3RM1ZVz4W
zvMeif^;nhFqA>IVyK*QYyw1*56R+r6Gi=$zS%u&gLgN$o2Jnn56iDYwYr^ArR`wh6
z%r_JuA&UV>qr@vBEM&=x@hMmu?)p0B^9Ug`QtTEv+HwM=Tfmsb-T8RvhWKl3NNftS
z0nW|bF1kenU<pEiFI*Mo3p8BUn0USbToTRTiiC*DYDQyJD_8Zl-XXA+FvrD2yotpa
zwWvH_K&vGkmEi-X!po#^j9VNSW{mq`=4rkqB(a`+-NfW3QG6y@IZVh%u~Zxh6Z!JO
z$MaSHrTZqKuf%@!QJ1N1geG&!k4e&2Rco(VQO(JdxfpY55A2L5(JyhUpeb!V9c-zn
zHkvQqEe-qwU|Wy1W0*%NWEED+qdQMPIUQnvxu6<BtB$-EVVOX0T|(hoD2nIyAXb^=
z(2!Xuo)b$ntK#$g)Me+cp!(M;N<0_Eb5nfPx5|4x%W-3oah1fRq7o}(w5e45$bA0$
z-@nroMdR?orhFt1@w%~at~{026jXpreWIXpHLQh_afs`(*kk@X&l!62)y_TgAaPN<
zo#T*O*`BOV-x#o`+&zWBer(p-5Du|5ao@CCzPa1I3ZC+UmH2EzQ15E30R}V%-1KUD
z)z4bUg@q#ciyoYd&Z8unz`s{lZ<p&~4|`GqyEWSPkRVe54wQ=tw|QkFasp$I?P|$y
zoxs}7TlN}uqD)R)%9bEZ=Ig3k;%+|2z<IXpdpSsF=xzk`cLeb8nTt1Z#9$RCPMlz+
z8{HoD7XUT)CF^Tl3LZX1`yKZn#A2%>+%PEEy}k)5QQ%SI%V1<bypONCu{4T6d02_0
znPatAy>Re2i`bm*fUusZMbW*I6@Glj1mfvb2lyMyCk&5I=jRW`#l4uTDD+u{0JJcn
z+bRz61yKSqTXAaLsO{w!(FaX>!Wsci->7@AY>f*peS<4Kc&iJ?Px9i~aY1JBoB`~D
z-iw@Tl`sYq5fL}b-O4(%K>M=zWBoxK)fWwCP=iCdB@9|&pBl=39Kre)6&trySD<ow
zP*bR{G>HT3f$aw&H3`a@f;9td5}}gzu>@QtVCq?f?By@N0j6cf?RsXHz0*1I)0m-3
z&{uwfzw(fvG0Tdc%!mv-D{7$n#PzFqty^9PuSsNr-=w@xGBDJsOBz)DQ{S%LoUXy^
z9OgvsD4fwr7|gb;tM0CG*KBEXcRe=9(K|UejMnfd`^(?Dt=p}XiK#KIG(iK6rZlv-
zxSsh{?oeJ1JaFU$Op4^0MFG;guGe+qtizaoMYl8}UnSR$#_<=(^T$sPy4^>|U5-k<
zer>zEVv6GkZyS<22FV@=YM8O6tFxUo3$C3U4)b?j!lE;|N<#lURiQm0lcb1|rRCWW
z(#9O1U^PWvG}mp~YDZ!eVQ_UchC&UVsP!zOsXhPYKo&aMP-ptu3O#w0>s5}V8?i5n
z%pFV*4&e-sc`77I#dE%DJT&xl9SfcRi!R@2)zV<0F7cQsUwNk>20`O)l(UWp@X{>B
znc5x)jY~Pm$pA}h8_yEjZ@A$VP|~#f@<0Ex6BD91X~w6ejmEd~;Isx6Z~5w3<I?It
z5vMUBQGMb#Hps*9qtl~}|H8XndVj7$i4B_8Vw5>L(>`dTpHV^-=b1>KHF%%~(woNh
z_OECZt&_v23$Ay;<d6#wKg>JGj1;|<L96U-y)In77Vb~0Vg$>B3}g5M>jaBWrIXAp
z7JwcKfKW;R!5HObvJrzTjslI|Su>)@=lrs36Yg1(skfkU$AuKa;a+H&%xocN0V^(b
zTbkUp2<|drXRno8*~W2jn8^zROh~W>E3v)83^KuayUX1CB)Et(u@<!YeVo2fErA_v
zYYgic)RqqBgY#nDy6!r+ssm*JPEs@Xk0Nd2bAU3n&BqPHK%T(FcWo_>jCB6z`3;TL
zK}V^O$VeB{)_{TmfxWGnd2Xtj-8AfLjRp1?x2Ue(<qCowfp%%1bb`}X0<70qHU~c1
zhwjH3&RdKMiPdop;2j?BLe8QVxJ#^3NeLj~JR*k%R-v4gk(X1~F}LeT0?R8ouQO`q
z8f$}|Wevfv|LF1UUvO@FMa_Jb&dD!&11(S|F$>kcOKghE0`s$#XTmZ<c$$?tLoGFm
zn%c!`>>otGe4_<Q-q~5v%8~e$Ax>jB22EhQRRTXB1suX^o0c+B6wRs%p6=5(jOS!K
zj<R656C6v0iSN<ELSf0xzIDXY{5;Oy#*VpkTP@=&GWVyhT7fTs7n2jm;KSH=9|I`{
z0Sf9OX={UmYg*9>{=jERawM?s2Hc8ncD&!(9t-UDksoa}lXE+PrKzbGegsFG;*9}T
zZUM)plLIJn#~7NP7LbBZrJ8&qS0CrGlvhOWZB$k(c~)nem(*12|HYb^;LM}G3$}F#
zTgwn=q|ESm;FBn+B^Pc*LBjdbqel(jB*04{ZeKN)i4(_+uYPcP+GukoAI=oqm9=8X
zi+v436_YS8psfqJO{Y$=H)08d_L{n?HY{S-yHV)N@mb7Sfd!BZG!INOuhF<Vtf4m4
zMdFHtMT3i4Eyb;50)sry1nBkPbl|?dC*k%TE4sImcGY^N6^sR|in#VR;t9z&!90+W
z-dZ$YPB{oV9#1Dt*;W<#azHR0dTKv2)Oia9<iUM0KOm)EYSTJf$(E^ni3Jh~)B#SS
zlRe8_n&a$rd?ZaL@DtHALmGP}IO?OW(Ivt=!z@eZKUoxej^f4%goD-i((1vnBnzcF
z;#OOX0<1!k98(w|dnriC8TFmoa9>@=xHt2)uP^)uF6JzQt*ZFArn!|Mh~_ZFDO{OZ
zt!!un5Sb81sr*GF7yJpj(UeTR!WAF;F3bum4QH;Z*aQl5)!gG8X7z%n4ObykIp`%F
zrF!5z%SLBq9jsqK*=VItnqF4@&fo&enZ4vUOl-mA;C}4-3%{$(ZP-|yJkijzhKOA~
zSiCR*p&A*PgsErmHB77GSfwMR5~FX31T4j1NhrVe`s>{(j?LJ;XAg5}&V&K&u@yLM
zg5|1U(BozNu3QH`sB0?g<5Miwn_>RZv4MmC#QUT1x23uc+_oKqgV|TGOU1c^Xt{Ts
zG7}!H1ZC$+?iyCRYjM!@<YD&ivr6@zSM<7dtWb$DRa-rSKx++#0p}BU;8A|Y4IMpf
zp62Tq>?>CH;awBukXGNcGEdJ4eiGPqFXFbT7Y8*E(n*dDO4lY`@9tTb+7Ht`<5$2O
zdqM*|KPNlVF0)Y51aN)=gVLBwW-MDxRJ%pEo-aUL5+XJ*a2{q+<Y>%^xzjOGwGw#D
z+z8Xr4ip>;dXBP}aIcBNfTwSyOCeMgj^dnB`+vZ1-yedm{uK0vf5a7CNiwNN-*O1~
z$1Tb^{6RN+9jdTvRfNWbf_hyczWS%d?`m!dWlx@Cesok<C3JPKmU*Vjpn<YA5p7q|
z3Sh+W5l6zm;BE1FRshw=fLtQ*s19c`A920nF|2eEc}0U#cm;Xx0Sn*?&P_<18VFrC
zCk+hjhrz`eDNJ`l3N_kUDv3r#l^0~_SD~PkH%Xa_DU<=m2SsHSDa7-#le5vOVT8s5
zc0_1WC(aY0h(>)rO?k`LvDX{?$cu+4Lz*a2dEj|+84JTmccn3yVD;eCF_)a`SBH@k
zjEWhJZFWK5#V)Ty1(z^1bT=e}nb}v^iHrxQT`<ph@vN_N6G)_trF2cwZCC{?;^sx2
zEn4JTsWB7<5Mw@{aQ7Zdxw{_=+$9$T?gJO17$GJzgjyTNv}^gD@QXgm2)<(4D7S>A
zjTmJU_C*3&;Y)Cm!|eD;Dt3Ou-A{(sk4_h>@-VhZ%;JY919usykYokDgm7*lLV;(k
zslJH@;ulAG%wsw)l$ji6g`H3JtUAfjR~k#qDp^fQS*{5BsJ|#w+{UjkiBGyC=xu+x
ztHg0lU|7^SrzT6OiJ9=KO@mLDyQ`e&9Ni=e#erfXUrH`tmdI{g=N5MFw__N^CzUIv
zvNa|l7zqTIG+X7gf@L9UV7Z-Yj2_|^#P`qj-o8hXfnQM1D&f{m&ON@%6-K3hC4z8F
zSIreB{Ie|7)!|Yoo04qnFvV`Mc(5jcw7Nv0Fh2z_*u$$arnAv!PBC|~1+ifTE8p-E
z{9Blta+Bl7_=aK;0X*(!RnY{g6c!o7hup}%2VL{}t6UPnTl1!b%@USqb0ht3eE0pb
z`XskX$}R9RUQxEpQLa|;YjYjwk09mHxtZxf9JsL^ReXsR>c=#{DYk&5mk31VVwhVJ
z(}TNL)V0VuL&9Oy-z*5pfwK0Z>y_psb#ol#Fs>2bLhII}R0Qw5B`A0qg*d8mi<4@*
zXB^`1@il%gkl5-ycvS=cBHWJW$GH5;`Lha(j&b(ZfBy&fx@Vr*%Qn+`j%D52b@e4%
zB0>`9d~U8|!xQP1tt}~6OD*ex-zmszTrzDD&cxexR0C$e)9^*`(Y)s20G;B+2t4WT
zp}af6vDovnDyj&c=KB|C&IjT%tUM`*I`J9CYX4le;D%eKnQwEhcn}5F2%h~1hhKN=
zt?&5zn{WQ=IpZlRs(kwG!o+G2?aeWo$>J`6mq@JYcA0kOdT6-?Srw!3Gnp`^-5M$}
z!iXoadjoPbmXuO2_0C^TyDGhq$@m!$d7gZ9;s+d=m+ZjD1(rua3H~--sL>dR;#qzP
zHyI|YzWDQ6K%U;SzKG}eWs{aVHOo2U42(oO!VR8hOD9gyAP~+7NkvjM9?ea%iHShK
z6F}5n-9qfN!V#{!3TBTz82f(8h=T#E6x@}j3Z?}HEx@CuD<YIDSRQ<f%Ojqg%oSxO
zA&rLe#gn+zRdFSVbO6jYIyMBLOBx<Yl@hh@fdMy`Op6}Y{}CL@L`8MtoiW^81tP7k
z8}r1I*fYITGW`jj22wo(2RZNf_dD-k^_>0?GV@MCKxMFWybufL)BEqLLnSd&nz&x7
ztITzALSfow%4wR*<t`=fW06Rx=t~kZZlakZ>R#i<=|fhdf)VxxgI@tcvfDH1YA<iG
z{W&W;YF!;Gna#~8izG<0LK3&#w~SW7n92ilBaHpQ{!xzenRZ+Hx@=#NY4Vh=g3*m(
zZ$cCUw`)1horHg4bnk%)nZ+m^)1`ow7<Zidj3dN#v4YxAFA$!ez_N%uEC;L_rMkOZ
z{>V}5%ksE6qgL9pm|#D3YGs$5S8m!tAXhQWNFgN=u#q-421<!>X}Gos<;AR{NSH1K
z2;r%|9+%@tH=V;Svq>K)Bf8T{j+o>$d%cq@SJ=uv+WbPYP&l-h=SzPl24v#Y?pKH=
zTZd60V>VPVHK8KJW5upSs;jGUt<BBEmw@Ek61CdeRXGkdE}wepNgJDTv=gryRK{5>
zPIt=Fzfrwn`e1ddsFSc&in|)E9*QvsfAjPCi`?PE;&#s21Y4RJDJ4$qb>TBV!D~Ew
zplP33Gc|N`)aC^!>RAAq$GTPX2K}8x8yzh7rmr4ns9hzUqN#!Cyl6h#q1^O{yKmny
zci&MIV~q7HR#dqQFIw%YTDyJg<Nk@1O8%wKQ!A-S@IJw{bnr1uz8`l1j5f$?^wF5Q
z@q?^v;6ST$i$J(!;n?wG?$Q;FEhf0IpU@p+#W(JF+N4{*pU{(!vXC87=0&DUOq*xe
zrV;#ioy@tXM-r}g0Y$I1$Y*+13>!kfYsL$BP1+T(!WwN^aFZF#cv;yCemdah#%C_N
z^`q~ozWKj@Rr?XnOE_|}*n#tW0s;_tGk{@$9MNrBf#QJySvYfGoLNio(_o9Gnv@X>
z+T#g5YpkX1;Lw~D7Q~VLNQmNFOmo~VXJ!>Y%kn`U<YgxD%yB6a{In3W(@Gy|;$Om$
z4~j>V#b6+;uIfsy>ova(`Td7oae~STF$@S`5i}#wTJJKedtrXNAbvtVKE`9x#+9Dq
zfmYEDUIQj|g@=*yREV#-v2;Y>f3l<91()H2g5zh4gDB)s-fE6XwBm0D{wyg=ER+Uj
zqHpyeP08(aEo+%DmL?2Vr^03wHkt*j=i#MhCQoq4#3c09EA|SUIFZYZLt?!k?rFYa
zM|=i&RY0&G-?zgpj2!1s8>RC=3GwZcpP6tAV<#YqV!eG?{z@$IDz>zVdH&oOilsUD
zK>Pt9s2B1mmL$lDmf9?(v_7zhdGR5Bd5*8lWu=+1qeGwn$FG+5?%8X?x1g|%qt>p!
z_GO%+(_}C*R8sRj8rYVw8n&aXyMU7{+B)51I9qPOeAwa<CjynC+ijH8(p!@}DDBpM
z6p^6IEY8>(P!M(XtOi8T)f84H1mzv$s>xlv8)8-T|9tUZ-4A|rFaDuU7>~PY)A~)V
zEu0Sx2d8xBGK>xlw^!j*G=%2VbaTSR9JF^BVurHT;rK0JmD?I+m7w44L46-J*sd|}
z#5>}zS>E8TT-WAut3&s)jf^+xa-d;;^`^2laUP5BEGJ<R$BE_}Lr%as;)cU<+yKMd
zj*R0qj|J3J>f`OZh9`jMmqa2LQ@`|g(>s2<!{w4&!s2W(QM0lsEM<O+^M%<H7Z*z#
z7!Nw?Im}Yei9L)a7LeIC6--EBLu2Bo2CMi%*UI+mKK}Nz?eJfpJx=*8b<(&@)~&=;
zeyz`6R)TRkRwMu`%vBYS-tne|C;y>oV$Y6rVIjekRb*3I30K;gvFVnoooC|%OO)g6
z!uS9do0$6?dX&`wm>*S?$tamblc+yw04>lI5f_=F!+Zy=ZROYgh8Cz15HJn^bO}~f
zO5^O~Ikg*SX;jDdZIA~ZujiVUyTY>7$WgpE55X~*R7M17uqP>j9OTq-Lm>n+IrJog
z0prf1Q_lg?kF4c<;0qZP%~3*Mn{)Yl>Qr4-CJ495YkMMI9j6_$>{TsTdnlbc8m|%6
zO5;Y_$97D(TbRV8nN(9nbQDERIx|SC`Ot$85-0HcVu_%*XU4a8mYL?~XUR#g6e$Wa
zB~(2hdV04VSJjId$jZKM0O=tc$6Jak3`lJ<lUjwYioS%g*Tl{r$I(Hp!97i)-1cz3
zq_sgSer0Gy%&kp!QEj1(2QmNr)>8#{Y`Eaw-pm4@l&s_vvuXl|7-TWMWyV>I2zi_4
zQ_G<|hB$Fb6u>dTR3<sK2n+})6NmbdSk6-rQY0V-RTyY*qRSYc`F@UIgkhC47~`j?
znlS<hd0GL@$lPcd`xMoVm=7p3Y(zGksf4R<8?npz0T_dcM_T{g=mBM>*Y*OtqRSmT
z?1E|WVn9`SnsSA4iiR?UNulbSK=bV#if{yTsc<C9=^R~tj6>EHJ$0O;iwBpe{?tyZ
z2CRt76RU!LHEk+r%obQ#))-waXD>`10=Z1?&I|@0UJ5kY+kR$<K~{b*kWi+~o~1A=
z)4Fm5kN!qCc$WokldKy2<enYw$dThX&T4d<E?Bc-%axl{^f?RR(Ba0?v0W%`wIv5-
zq40_;%d$pal51~pVe>iwg@R3rUY+~_Ei^o0j_`n{dDPNYG$XPiMN?+|%iIrl>~!0|
z@e{YB-!HbUYstEg)m`d7@Me@hSWkuK7l*NEc&R*2Z)#A-Sgb=Jc<MWNwm(S(`X)f3
ztDcmJ=?p7Z2Ofb5XJ640hUEU8HREZ#Y*XJ<J9~w@S=~KJokW}a*j{7CVBALyT4dPb
z2F6&(m=VmNfz9~R6T>E6;dPgFxmwKjlwSmzsCAVXyx3sNgX!3<WXxSxa)Ss~M{~n&
zj$NKoNV;cii`HwGHKzZ|_x|?vpS<a}ZeMEcw^cTs2?|+gZ-I7col*k(!2#yVx_Jyf
zq&)O(UTm4}fK^QF^ax!mO<-cok)TalO=o32#a>P#x#}G7VNfNcIAYsN3Bld32xIw>
z&NH?-cFIifJzV9*Uhu7{Mvsx4WQCpCLfxTqY_yXcL5yLsq#<2$Lsab~rkY(c{Y|Zb
znXIdJ#UnCNN7G@R@@O{>f~6cyVg+T2HPL+PUk<uAl#B6>XL}bvN0H;lazfoyW<&&-
z+Qjl@Y#ZYUVEiqF<0#&-!c2B>1YsLnAY~OOf(8OhiOJn8_YcF<#Ej)>xxds8s^NXP
z%#G?hKmYr_6<<3&Ic)S8s!V@JTbXE|u*UbbuTAB1actPlo??Hn=$!rx90=v$o3`V5
z;all^D&-TDg?1~+<xp&hr;*<sSzN|xL?)C@0)BzXDU+#LGWs=r*Y7V6OLLow%PvVJ
z2Jd>=XFvN-slEH~&!S54r{jfZPaSrzzYYhOSUl#Vxl=WcF+vMLTbd@^AH8Rj+rO>G
zoFp3@Mei!ds<kqLu_cbb8vv9gnHu%7+Z>iv4e(vtE(~36|LqR1f<B7<`X6PZ#jtOG
z?P2%Tf4kG2!tz5##9HwB=>v~8<#W0J=Zn8{!<XK&t#5KF7o<w5<l(Nw_<`U>tS+B;
zczaF#>`1TFV|m<6;0Cj*G?lA5e(*%g_{8jokKhnm4pB1**R4IZZrN&1KVq>d?0_$t
zLw<>1YHf_0ZUZugq}t?R5#$5cP!qT}T-9j!+u6LpHV$p0)pz|VjgMRIh>CaimCr$4
z%AIJ$q22JbE6l=!@XwqwV%da(lI=-_zd7`kcQ@ys=y`f!ET7Dk^6A3Fcvza^ut=m*
zeA7-;rNa}=Z~dnirT7@%`Kjibx%}JcrFRyq!dE6rY!RtLk7DDfq8Tv=fRPj*Zt{pr
z<TzHCTg{4|YbO`*!?t^oG!7>F5YKQ<FtJI}5?U0W#>e(h;~QZyozn0hTotVl?_%5R
z(vm%tPh2^lNBoN-z9yXB|It#A{AjkN+oix)srs~7Ralsvte%|zi@WaH{^vK|xczx)
z9+JjchJpS0aBx4S5)Ysy_5Bef*<{~@hPG`hoMQ(9fd&awMtfKrn;^)1<Jc@Q<w8!+
zm=VRpfM;&m-=1B+&F#iZ`nT_Y#yv5(;A*MWr9E}-Rd2Y$t#0muu@~jiglv!^1Fiy&
zg5bkyN}`kR98nxTaT}YTcfu%&jz!%9(^wkX?Go~g-MePVRthqiVmd!rZ1~Xw_qpA>
zaS}w8ySwoMdDSJZ5$~%;(BoRh{Y;!Zg4J>+xIR`UlL!M68d7+AREV3c`*ISHu39ER
zdLfub-*mNm-YcDidhLg=XP;XgtE#bJrg|xNK`Xw>$&V(_`*%FzZvEPA<{f+E`nB$L
zue+i5&2Rr2F_$(Jrsi@9Ir`#&DaV<+ZVzUq+Ha^?&Gvh$k<`i1T{j8>h+4&jr$-C=
zrYE(JW8oIibD@!K7K5)(nm8?9^ut3C{w&vps)({ka3zYV^$qB;M%@J3+k!km4|19T
z#}1A555E07+uyY7P20b-WUB?`s<*V{!pV~l2FdKTi54b<trsA`;I!~0gpGa2^75{I
z({fZ2U=5SPQ+{$4dvjQQ@vH1UCr^I>LX3Ee;EUb~KoP|B?X;kD{)J5Dkw9H~BW9Rr
z){9agum@K(Kn%3JY-&|BfPqWMJkrY3vO}=5rfo(x&gU!y!HtFS!2=^-{_;0mKU#M&
zAZpSTmtEp6zIZE#P5?I=qIpBuBm_~5F$Q-HEz8`7O`Ba^V;g7B9>f_H<BIeqNJcPI
zT!k1s%3BkQ;`!;te-{&`B$^ziImf+;J*o204ANu$1<n(chw_U_q2M$)H0-|em2bH3
z|L`7ng!(ts*SSkC*?dX&*LqMzxtE0Ag}2_Coaue2oimX#oM+D(*zT426MNngV$v>P
zfoBw@faV)7@PX(p$Bely=zk9M7c(xwaE$R~fDj~gqp@jF<=#^t;icw~Y*(wh>g8M9
z2JJm2$XQ+Ea`Kx!$i8<NXgWj?^zc<$RmH2<REF{mQ4E*n*-GO-@~bkVxU7POD4-MV
z**8u<^2am5Og@#Ho)2>)xl*xuVWE&uOfEFmj+~A5+w!mY32%Kza(>0?u0p9$7Y6eM
z6dIXCE?ITr*vZ;~!vk+TvJZxhs-*Bm*MNh$<?RjZ8wZ9ffL}Pp_@t)74{Mxnp|5*<
zufo(81^JP1?1Qg%t2^7>h8}rIN9bh8Sscp*oK$p@`yBKer}wuBnC!9kIoCfr<>pT1
zTv~g<rHFy%LM<C$E<WBF1ljPBKlsMn!hE7I8z$#xW`q1B2R^0>xpXo$n<yklmc8q9
zLljw&Ir+Z?A)QP>xP&X}S>{A&zmEG1gE`mQgpZLN-rZ+1rr(d~2ZkqkgaY<-N3}8K
zlK24Tw-j`T4gg=(KJtSxmDON4I}Ote{}2JJgsEwD)s!nWFfM26m_zaYjpaveH73jm
z?6r-o^gvG=YuJB_A}>weF_eYu96$QJOxQ~RnsOGjn@Wye39*8h(*)|HIWh%5kz_A_
zilfM+<k9#F-~j??g_QFqFl$(xh86;vUI^xX%v9oxp!PGNoIXw)#fYLNn-JRTTYxdE
z{@}i?l)<!yFtFvai5rHgyIFpJ_-FEekuNlq=I{H%o-jAlgYOx`26QvoRCOkpU?uVX
zCys5xY4Y!x)`f}~jnec3{&%e8__wN<hlm;&jVWRIX)TS~X^qi0GV*y*aVwQ;9H;yY
z{8d4<P5E*!`Ywleb2Ia9Vsr*~PTGQ{7;!%+8p^A5s=i}Y^Lz78{89b<DVe4-L}ZOf
zAba%4$%&fUnL{l%f0aF`FFpvb3XlEybxh-*B-?8<Glv*kDRZ`3hq=3OUd=gh@Tj}(
zJGZ+lx@KJKnhuwcf+z~2)>eBO*Gb>M<F)W4ZZm%|AmW%m$5k)_m*!Xm%-T3y%qzxX
zS+U-A*H7Fe+atBrRB&ZO9&`iK{kodBH+QdodrfB_d5mye?$m)1*Z3xKd1f)E=f4Xd
z{!C3Fn7E7?@4Yx&dMoXdOJh#+%ha4abpR_0{Dx50e56#6Tf({8Sy$+-b=_-Nqy#=8
z-{T;@U488*gNTmvQSS{`NH6TsU*D=GOD0PY$+8N<8r|xuJO3ISS9(21d21%kp}d&j
z_~Oz$+>Ie_47CV9T@eeh+P_UDmb+3NN+mR>g@A<~jG~LkS^1gCQwwu5cMN>xLm%&a
z*WVvjiDw(aL!YlI%m>?(iSV~nFE~+14{+dAJT2~=ZZW_&!HIuCHCCLB8(c68?`1Os
zT$LIbHQa7}<9${1LV<VI_6RaQf4%hIEDk@4<6#}YskjP820yL%w~!|oE=DoRvpo2f
zC)PFD`Ze6(Kc+@;2oxuwJwH9sP&#?&|GjAV>Hopo=N+rhDYOsWwY@G?KbH)dnG*;4
zn@c0RuMa2To#)8URL1~Jjy*>XP%eY9_Yw{>gBW8jt9`_d^HGD`aR!i}r5Y;;E%XEs
z^hytCxl*mQZWNQp<5dH0sAf(+aokb7c8<%FXn~_4#s)oLqSQWNoF{qcJ^zzctba}&
z0tyf<6bf;<K@wpery->yk26V+UOT(v4~7%@L}q@r5YA3a7L$b%N3YgT_T2p6UlIma
zHB!J2(DZ?U{P92gi%+k4nte0s+g{AjKJ;tvb+3Q@t6U9}Xc;s<iM0?r1&-@!cbhhC
zarKQq;tc10gaMdOWl#}3EGu68hqp=2u^o3;Ub@wFuUbWY0JOo$S0m0(L`;f<#~*#n
z{m*~+qIt0|KnPC^;2iHn|BZkDk7-7!8~zWAdl3<&olMUkrDEuU(j9PALF(|pX!Xd6
zV{e_Fz+wT|RJU=A4@AEjMUE^F!yXuU%+{oY5QNkYAL172DSqo=m;^7^U~c=)8$0dW
zRU5GuVHQ7AGwJh-^NI8Dxl0QZ^s&EvV%{AojJnYRXPi@q-~{CQ7^~OG)E_n^({=l9
zefR%dyS8h5eh&YiY`zrUO;3;K6AOuXS3fY@`Nr?e0rJy3H!9-ixiAbTO#r9biRMO^
z-Llb@I>*`H2;+tYg_$#B8IWjVr9+;B3AT?)Giw=;aka=qtEe{iEh^7ZBtF@Au1sgi
z_^F&Yi67R$IIh9D4}0OmN$LVoPT)@<;AlM&MicJEXexaoVC^dNwIJB+RpwE#FV!V{
z;3KW$xkPui<K<OzgFDv#`Coh*r#Jn6)qpl#edT5Dw|?a&cg<zJt_mi%Y<{cuQbF;@
zI@0Lk6|?S^cWlOsd<~~LR7D*b!R9$D8-Ld|4rELa7-v~!X=5d9+d8`H=-qIfiy+YV
zcq+}qMSb%d54taY={s&>a*EZ!6emNRa(DjV-p={Cx!?ch$8Y?X>o4e;n@wdC=|VX0
zVg#x~cWtklP2cxEX!)-cOF=WMuZ1w>HZikP5eWr0Tvc@fV*&v_#H)Mh*uw|~Q<$LV
zfK|kVX!{ayQw#iTV2J=I5RE_~0V>DjcjeloyXrTtf%Bvc!JK#c%bmCvyit0OCQ%Mt
z6iH9&8$I#>gXRh_vZuw4Qfh+LF>|@xA14ZhKhDXzYm9n}QJ8hJG;43&)XX<eeEEZ)
zUhzx+5J~>Z|G9&d8w-8?s}|h+e?k-gp>z=T($@JzGTkseKkBB&m@}!DP8%>Bnho4c
zX2vaaJJ-i~#AykU6{}NXa}zYiA7>Oz^j5qmp;{`M2h91`)?V+Hb)c99C!|lbv1d$$
z0flmXdd2owre~j4Cp^fyV{(|fjL%>qu0Ay&a$O7<qW?iD-SGzrG%#sQCmm;@XX_B5
z;SdXRGr4?e_Thnle*YhZ;XmE0E?rFd^WRmc3%dsMrOP2*oVLgw=oI4*fwX@_D@rh$
z2;5c4TGz^|az_20$f2OtnfC~Y22&hm3hz+NIxO-^nloh8KwGV%!ci#~wfGRP?5Ns+
zDNSAtHMBK7LzF7cG)}mK>>q{ohVfVVl0ju^4@)#5hnybc7>=ymm+rawtLJ7PXc%r!
z%-%P<ypWo&4QB>RxnuWTo^HMPQ=ptCHXl?ukU7xFhDodu7eHkySemERSW*awBq-R3
zq~4y1=bOf<8Up@_HXDs6wjJ-NoCQY(q9};%vn0Y-y-*tNG~T^{pnLF^)#hYV9|~fb
z2LtajLqI*J_GF8*Ctfyo-zNw1ho5Gu%@o5-P|TM~3-#Gx<b|x{g^&Je`}_mpn}Vw3
zA0?`q*Lg-AP_P$OtKL$;B!VM`1KdT;iAPo7viNc7+q?x_iyBIOg)i|_<-H+`QSik^
zo%uZyU7sVpPp33eXq?!$k5g{;84TkD>JpVBOOI44Q&(Nzc8d$!Zb>(wL`ty-8D)~<
zijK$}e{Lc9ugAas%OC0fh5z&7mEXI*noeXp?!+%kmB}PPKnng8dx#S{&Xu5Q$v?~3
zT*~D$pkKpEm(dnl`|5wRaOZI$f)wLdK^P<0>n?`8e=i*JcZ(3W7pMIQUP4eivXOqR
z!rY{?oanQqkwe_t##TxkUBp?w$SNR<1y)@<+q+h7aCP9s)X>p2x!l};diXOR+<*D6
z|HGmN!g6}{pHeFSu~d55CsNwlV04G7fja>Un6p!RINp_G>jXFIq46L}TVOx>)JdGU
zqU6rDv@VW|X#7={WViuPHT<M(i<NGkWP4~CB()kxFbBZE-NVnn)0Q2R(}1qegRjho
zrC^fxI&CVBAEzQd@3h4uNY=3rpVO66vo520G$}92MQEQHJ=r#K<eB$i86sHyXO(}}
zA(z^aDuw^q&WHEJCgM}$xrm(NYWZfAvktVVo6^D?v`lG5h$^DnLzHL82`!rXEl~gR
zy)YGc+jl8&Juw5V$jjQU6meQ;8Ol$emUQ|epFGA7X@Obqd>yRL7J(nL<TU#QUK5AB
zC2u9chuKs8E}4@D)aMV+Dzs1D``a6W()hb!T<U{#6=zs9Tw5GEdKqUriPA0RsMQr!
za^fgX<>=`4H3;c2Xkw^XTnVRR$oi`Wr3R!z{6%+p7?sr<n%#$&apVurIyOqq<J$2I
zTN-|J5rHdGl>t)Djocw}#gY~^1+2vqbRVcgS+EOd>wY&3s@^#_Ki8C>m@Ad$^3x#y
z$+Vkz;P}7%+Sj|^`Psde<%|3gO`87chuXuSwq@?f@s`}lquIxI?y<c#>iZKX2Hh9_
z`D?DVwtz6OhKZg&vH|4_jB6gE0lcCwbRT}}Cb#cktsU*=+oX0y$Pm?0_~+3^FXHcu
z?WanXLO45#CFtdsY;^0IC*4B-Lon2y4wZA{My6QPW7F=RzxZ$N!G|8lDNnUafmk`r
zg&%%w*CssEfBezEdh7r0>8eL(NcSh^PHevUtKy7*t}y-6k6xIVo&4o6z%?YeGBZE3
zVs5U`oEsnOK_FRGU?p2HOtB)=yu8VEa_)LH=NIeX!`S-6SHQP7#<jRozK!A}0R(8P
zvvjZ9jKEJwC+E<7vI3(5$}kjEHHn{@Q`7?@s4R+|WZ&)NiD9hKnM5U&s82PrL_m_k
zN0Rx(d(n9uD1<W&#rZ<jJR36;^Tn}JDR(rOZhx}>tH1uOF#OC8(F;<&r~o4p9RBg2
zWD9d6Vbki1Gj4j~rZADbGR{oQkxUSiE6`fzWhq13sJ;pHg>k%Z!pK?M`6NWqy{_dd
zDKgJ$vqBu#FfXEjmFeue%BYB6`5kH(;F&jp7FE6g5S+>-d1MvwTv*7B@0=Su^o^#(
zp4$?oxnk)=ex}gix{KYr8W)1?+tooYI0#mAkACv1`9k>THJQ@&ZsZY{VvEBBdp=v)
zd#@U+<&Wby>04i$br-g5V}-X7t+L+6VX^2w_5pwBW~`0e#Sx4YC;lF_-*Sxa^<8<z
zCFxlq`X0j>7|BF`?!*HwV>7ak75{1yEu!hZ^Lux&pKqSkAgm_%C=-3N)@g0{otEWm
zf2SI!i+PlFrNY7^{a^pUTb%nG+SIcP^ACRlq8@xG2$%n!rz6xGJSv96FpY5=D)U-w
zla!_Dnhxd!CNrWK{YNmeBLIPqnU~Q9n-uw4hFBzA3U}nZ&*+<FD+hNls}imZKY0nP
zY=n|VW$3*z7kWY|nLxR>5bn_jeLX!eKF#MtO)J|Umm|zfW6qBv0!1=;)L<Tc@!a^(
z#ncQHy8G?Z6F<k(x)YZopZ_40TGpTvy#O9$bQ(ed;c|riycrzdNmdj@#I#Amp6s7+
z^WB_;vAoMOK=#?UPq%SUp4vj~&zaYgpa!1M7oG`}>9`NZj7fO4`DL+Ro|Rz(&Lxe(
z<e+M0Fyw}yURMu5196hY3Mf7=dU3J|oS3OIoMEmNK`8_lCMPoEho9QU(Q04WfBP-q
z&EIKyc+p|s_io8{H<oaMP|uO-$?&m<b~iP)<#h}(-n}v7ADV{UD7bz7p?m6Z9++}m
zN5iz+w6fW)W5uby9>E@FC`8YcKhs(Yn3$zoVG%AMw$(L286ey{GsqGKUv+MBD)06k
znsATr&ABOBDCKvC^ISXeE42!yySEQv)R0-_hlS?aV0!Al-`g@fv@o~8{%D0_SY2GG
zX&Bk?=D(PxsAoaWGfV&3=edXfY-Rp|`Bx=UHGh-|YS(eLX(5rULUkbJ1P?DiA^-qD
z07*naRKapxY=>6e!^xwrIP_EdXcjF|wtn<1#*JP-$3+=Gdt7U_6&!!}afLx~89@rG
zsw(JgH5!geILA;xs4vYNy|Fm(?>DBy21egXwzGQSK2^w<=5ll2K78v3KGu8l=MFtb
z1<S9)r*B2VnEyQZ^M*wf@U^tL9TWZH5dIr5*RMjM>;vDe`qUa)bL#k*>%DlHBvSjV
zPvs${Hx=NJLLe3v^~uL2LPa|(-&rw=7zO29)(vE<SYbZ`-A1upE<|+~G?h1sGW^Rd
z<k;%a(95d!g3EyOD%5Bov~q5!-%Xr2_=}}n@(1Mozh5k_xlA1!73Q@P76~fA0@{*i
zFiP16B?VL=JXOkFx~Yd#9e^eLkZp^Kz-{oSeO_sy6tv2C0>+{oiP`cf5`g9vyQiIe
zFCk<pl^06+rY8xV>JI3=##&(J+dLca1RvfD<^m{j^=#6y=p|bm-hAUl?$GfOccdSu
ze?$>_i5GwMwoR_Dhczi)Rw39+VLWr{*i|c=XSGmulE42rB&&b3Bq3e%l<IAD@@*(l
zkZnmcd=Req>?FVypsDjHj`5PSScc`{`&%vdv!tFGO@e{JNoDZLKqGkgu~N=N4Kxe_
z^5BH}B#^?D;PW7j;6gN=HkDzkq{WBcdt6orGCyd(L=hoHmjPYrnT!-iVxYcdYFKio
z|H34E)e8)m^Eamw$vXLS(X{A;HHupR72n#22yg<Rl=?-)59;R?5Q-?A(v^&Wk$)eh
zQCo!{h8N1rXYAwXS+LM|uIfj9w<vKu#ZiElDdzz^bI2$2W9*k&PWF^*(J52Kav$Va
zzz}RyAJY2zDJmlY8CYpJ4$>E5`9J&5X+nE=?AGdq{zKPtuIcXshHI#ND#8B3-24e_
z&Zv}O#u*uD<VYZxS-_1Y4sd|Bm?$EfLqEeQs;CLVZ2x1p5kpls4KJ`+!T$HI_BMO#
zOCY@(NJpSnw}GVrED&m(D~N9sKB|8Oy98P?>=4PdGN{1CH>p(Zszi3#s&s}eQ}vkQ
zL*!IOet!BjiTRo9j{eL0erx4Bzi^;3hqJktAmHx*ljem--L`Z(`Tw!9v?eonm&=TE
z{vu3ZtffuD@IH+<*So)eo4dO6YFAaSGuVYhaZp`Vr_il$;K+yfUCy)q6c*cIk3v`*
zkX*~n^yw{b{LbPjIpt`;QC<NP)56KU2m^|AdeAxXrNL?U<P%SrvOslLENM|u&A6Tw
z&9_u7>%OI`2{Y%ZN!Oguer5bizx0u&cYhg-ec|Ec6aTHYsW5*dnyddChUp6Bpkr3X
z22Z+yLr2}j$dpYCqJ1Ltd9;$F43H$axw0LPv*2I}rpd#n(%jb9#Y4^GP7ED=QC``s
z|LO@lgFbpMB31?;?=;bPf~orm4<UXFn6E8pPrdNokX?Q0VJc!)K<L7RvmsNn{F0K)
zGO=LDRAW|Dm*|4HZpqC}-&D%Y-Q54B5Bw6s)D9BA;1E9i!Swu(fB%|}RQSeXE&Gb*
z=hv0O+%IZ!@&rg(MnniJl+wsvR~*|7>QpL@Plt@9vu2d3rw6akihIS6U>CJlpMEyP
zP}CRhqe)t$Hr09&{wOYH9LHitlv>%UvvV```NRMEp;WPOOD><~sHfaaOTK|wc4DZ1
z-ON45ZvE(OFUmS**H>$^RbBUMZ(U5xi}UPRMd=p@)f&@7H^gy%VYUZrgk>&^V6Sm$
z77EsWniGv5^?E$UWBkxn!IOR6`*CD1qaXja@{OPxrPHL0^-wi98kZ9lYYA+!WZ5yx
zv6!WRqYHT(=ciSe0$fr}2UY@oeXe)_TtK70^st*g)qh!XVd2%7ZvUUN-J_STUd0xR
zG(u}se*;X$<ytTa9+49COiM1}iD_U=CTrUf>ejM{R_4i3n^be<!B5P*EVju$&{iKe
zj-%MpM(dvx;7YIj3?>$pAHCzB*NQ72-f4oMPxJN9xY9KBGzLiDe9)>vs<n%qUHEdS
zS%s(OysHH#EG^~bCPv-d=t+iA;`O}z?I_vvUP`I@>uGsI*|I=&LJ6uo1IC*)@xCvu
z;@m4cF{TAKKaJ%{*r`_fGM<NFlU_qs&Onj4&?@eInZjw{9|r@j=EOyYjiq1vTFJ0!
zZkB>W3R<iJ;DfLP;A(V${HZ<nTG>NUZ}swdXjMaus2Gnd=XgsYgDpf?ZSio_h`1sz
z>^lA6_T@;QD2m+gs)a1rxeG7fTG|35!TjnTf8vlE9XpIgN{%{Vk0U`F8a%?biKkA?
zxVAMbTqoPh=I8L`VRf%8-^1R&S;Pnb9MkXky;`n&;KRH)J~{6mIdaJD<iwBy9Z+B8
z;}yWQQ}|nHY^`!{do#LHlnDki^-+*|_1tXkO=(OBlY$?iki#^0X6!4+{`Gwy55q4U
z1P>}JWpSSGC*1X=RmD>7eylJ$nf<JeIBjC-6B%`p<F#?2d~E!&aFJ}lUkInD1v!)l
zr_tTT;^X%EKKJd9X;NG#4-wyX|Leb;9xsj+H!jL6gQKl<z0uJ)KfC(qj1$iAMwy#x
z!0!~R?wNYhX;>2S^Ye*?(Sf&wqw;3wK4>qW=cibjdo^jVGvUUVdRph1Qa=_$;kf8k
zRDi~d-3z9|1+lj%s1RV(L&j)pZZd{5f?0GQGvS)M%-4<*s4NK&_HME4@;fU*`7T0H
zOuYrhaT<P6E2SaAIVzwCNd!mUQ70+t>@*?qko>9dL>D~&!nXzlz`=tEYlVy5pKPa)
z?NR1Y!7uRQX@;@@X8d2>-Rkxn;>a!0Z0h~8OIEvgyzVl$tQ9;&X0Z8{Iw=^<*42b5
z^(l2GnSZ9{y!RZKhr6YXVWGZYj2V8}XC)MzEo<(1HaOFLz`=$9@8YtkoTXJwH1FJW
z-DWp2HS7N6dk?$A{Ui8V07<S`?>_jBYu(DuW(W@2IACAZ)Q;)$cyeldzJ}~Xx+&=S
zgHE7OBwuzMSM}$u1ZD$=DlVLh8o*1fzDsCUh}-VrO?$wP7;lxv!zqF*?e>a+sO^@+
z;*aJE3D*L*rL*|)ca<-!QGkv!U$%9va#N><@Z~UCo=-I<HLo<bEqC=;0!Zew+#;A$
z0?%rjA4jD?-pOBJNM#pfEoFgfS(|`Mps|-nD3^nA!Ao#dja6xN%G?kHRRS?}(%6iG
z(o66z<4F7=8tRMij6e9RPbYZ$=NR@ejMX=i283g(i4WkHEc)0sV!nN{O}vgXpkCTi
zK7C;E9e2vF?CezIS8Y3saGKCw8lU(?y1wIgl}_MMNU$nU%pQRdoS>u5%v4p@I|LRy
zy=Urs?O2P`o1$FKtd2q3-bc-fs%xZZ5%6R!^z^-B(G6I-^GLh+PS09t&uPG@Qy2Tr
zBAHo7b)8E!^|(|mf2n!LRtU-h{PgPV$jO@Vqq}dyTjze>o)v@UOZUIi`#;}STfg$|
zbRw})!hk}+B%hg;CeOnyZgqyisYyu;Z3<7CNg=-CTYDD=pbdI;Y>bFDK*&YyQxY5f
zYAf$lL<~%2rtkXGyD|u)xV%en)P(vt&by45ip&1_n*5Yo$$8}`Mh@fX3hk#=UT4G?
zF~e+jExi|DMuawX;E0<YJ^8M=eCZoh>))t~N<HfkKKz}UVygcygH+px*!Bqns0vU&
z_UJDh8+Vf<m?KKljKaWAqVzLNu(Z!Jcxf-P#im;3L@}c(Sg4u&#1#?v1qQ87nH7j#
zV>lB(YMaV6V#!2kF!mpKt8{{uVnlJcH=&QE_C)#+57JktMEc9p`KO{L)(jI^eIFa>
zVAQx3<u}G1bE4VNK{s}6cOMP>GZNpx-wO(3k8N+7o6EmHQI-0{|IgmL1Z$REcV6ea
zH*dZwtFp3GS#Oo9^nR3NY_%OYY}$4UV{jV=jZM3O?jVAIU}7djFkk`$V8Dn+1Os}^
zq#Z;Mz=Q}OI$#759ndCZw=K2xtdeAvEUBups+5`ce*Ay`|5|6C?`CD*M+&#(Iy>`z
z=bXLQUhBX9YwdlW-}!Xa`r3s<T?xIYgXe?CHHqlJtVuvCuIiw1^T><S^ymMtp0dzH
zQfMO<{AU7SUxyJ>X$4DNSx=kRAyWr!ew<0;)jQkbZnkZeo2&a5u6=>;b8q!CGJAYo
zMn9*=9iz?N+rM{o_||`*6VU(cv?rjm?yGvR_FaN0M2s&kJZkWf+xf)?K~ypy=&r$M
zKmJ1A|DX&?{&e2R2NkAoihc71335f?Ys|9FL6}d(e1a1eFquIm_sK2p6mUnu>Y|&u
zDMhoJ^E!D*9k~cadXi)M&A<AY>Faux_V@I34C9oGod+7jf9;?C<n-*#>nPV4d0Jyd
zKPUA4Z~yYEdsqGkb^RWCPA<B&>We!Z0CC`>14G5{f__h#6ZYF*{YRSf^?nIXObtpq
zC~>!^m!l&y=`neJKFQ;XaVLX*af}@0pe@4|Kc&~>5)QJX&D?}tP)eo_;PQBz>YXFf
z2j5-L;m6;qP6v*cUjCHtq96W1H%eL-j8`9@4qp7Ez8a#ZPjnK+fjB#IW7Ql`A;gXb
z(&>s1*eYxTmmDxyozOat;>ZbrV~I8M+XcPz!Og-L9N>YA;0l61V3P`GUHtEP+y|@+
zsHZ((^8vN;?Ye#y=CKdFI=%kdSGBv>i*giGGpQuKq&uS@c<zIOtb-^O`)6O18~$lY
z)w3@?dgr5ypjiCWAG$lLJ@Xs?lU{@LdGE`mkAox?|9mhn`~1c?^q48PxvA72rz?<m
z;ez%HZ|M&Bt;>2m_rtm~uCF`HGA%pnqx)PEiFvbDB8yM^m-PVCcfK)w^=o<qxE=|<
z%sW=9^u>#B{h9LU@`r>)j|GPT{qTWiU44b%K(B)Ev4Il$ogcnF-TJd{{;i|ici;KL
z-~SyQZ=CH(wWGbGe}8|w|Lj&5D`3Vs5A)jauZFZUJxC(uyxY@P2sZn=sNgXxklwj#
zAw8u{E86lnDhH)6`#-FazgqTuRr4Nw`l4AqVN!k6S#wAFV?%%Xso*W|fAJQJu@2XM
zVH<C3=R!m2Cl~e^Bl-&FJFmZ{tAQt%&B5lc?j3IR)Qhxw96=28C@8S0EF*86$M6RO
z$SCh+kM&EJ#TWlnO%G+ebB-mtjvxFFJCg1B2FaekX4|yqnAe(W?#W}fs?kNoYae)e
zx~8v6e*atFP(Eq@1n(+@l?!cGu07@xDc@~WJ=}q?Ptf-DIIj6V)D7H+Eb#^IuwfRb
z-}~2oZTg3Q{Ho5+^%7Q1n7{f9pO`-PiRZi@<rs|;Osr%s@yWVSB?dk3ONt5CCocq}
z=RlTdfh*P}v$MTyLq^*>?ZMmgdM0&#((%&tyZ^$^PtV<aeENegy*fRnmj|=I{Md_n
zqC)-oDOX=ShG@M*Zlj-Lh^13~W`dL+@@D2sx~@I`grDfRqo4m{f9B|GKII0~b?q-7
z(S=W6*sWZdaf=Upv;V~d+s#QY;kx$)ZPzE4$}{h~#h;gKgOBY+j<U`ie@8c%zV($a
zO>g@vjBv4;9=&#bdf}6wnI6-Ld){BR<Q`8cBqpv^5F&Ew&m|t?Vm#_(c*EP_^?mRS
zccg7ec6ec^eg<*#)>kzD>AhuGnYrn41rBnI#_;78ZTHw~&e+E|SFI>~d%vT>#2xjP
zBSF{;@5HupckgXoOVs?dz5I-@>R=z6;D1-g9{PIR5f@68;~gViN|7Eo)1UsIrtF-w
z>+Iv-n-3HP(u$R67e4Upbokv@_10A`ZaQ;j-JC4#^SIwNU0Hx&?FdY^6A~O9Je<^^
z?F6xtYOiJjP8)oAUSdb$wxj}mUF0y2cQ_EPkj~y&=nlocz8inU%Qy&V74P^JwS(tB
zqTc}3oeYt~&z-Qdasumn-50?xUo|nm(EZM`ymsfp(?@&TPX;sr7Z(IUe>^^PtG<)U
zr2FDCH>O|y{71FZCjk>FPhfCj2I3zRjQLA8MyKVQM}n_|WvL(zVT!W>cPM!VrK&uO
z6Q9^KPOq0OkZ_4s|GE0}h$gY${>{%%fBMbWr|;_b;`zQ0ci>-q?uqGN`R6{b$NhCs
zqyx<>H=kFZeLX_-&5!<r|K{Hosi*tikIbc9`SZW6Z>j$~4658I5<Ym)e+D84{2UO)
zw{#&th$%nIbEuuawn`bR>?pExAfN0n`9j_(COPoOhD3YtXmid>G)Z@Ku=A^YgFl+A
z15TO9^mwSgKY3LzFZkhi_2XnRo%1XYZ<*9fiS#0@%eq+92f7S>MZud~)VXrwDSf--
zk1+R=4V?00yZw9n)0b~QtHAshhX+T0qdb-!adt&lLbWt45QjUpv}c!ZOb0h!(IoO6
zXmD|gNYLoyzwa7LSZ?+)o%UVYrUDO~+~PrX(B-z$<%ttn$yq-F3R>HsWvfT0HwSu;
zK=(1g+5js>2OO6k{itl{u`Atep)h`Uzrr28q5Q4yeC<E|=JtjET-Etfoh453al~`(
z#IVPM#*X}X;i((Sb-jd2>xBCk^z&lB{Tu((bVFak;H~$>+!MRnGLDi5_LQ8JRzFgO
zl*S_ya#*0ga?$XlpynQvLLEe^NTX%Fp*y1NEIdbw!|0}kXlG1tp!D0n{&Uk0^gZPN
z{(t*}={v%IN#pXDe(ocBWdE0^=bqBL3U~{#uHawQiTj<m-?)7Dhqtdt-Kp*x2-us#
z@K_$lX1);~%>^61kK^EF-3gN`w_nwD&fA)E8BaVucm2k6@ukn`r#AHxQ9TLJJ4}#=
zbC&Apm^UvS^sa{qGKkVy>W%p$V==ou&ApN}duk_Fw9Z)7eOBI|a9I!V-1+v`a@U_~
z#baLwNe9opEcKeUbO9}Ru!bHmhU4DBs_NvDU6}gg7lulY=A{F@J^zu%pVV(XYbWlO
z<Oc*jstX6#^-@D>`cB*Z57_98f7s9(G4c91uwa`)?!be&L=H|Xr@Eg7^+C>F(*@Ay
zKK3cmb2z>EJ-xJ2apI)rK)-!^Q$MBj^vfELJfB{r?aGS&>yNP`Y?~`zj*BgL%H>wy
z(LVa(JO9?Sx%7GPSqXEE#s?Q9JfrABpI#Lxjfp*6bb&wi4}PL-Pj{^@=%OiOO_2Ba
z8kGp)<O`yWo!zI8$7{~BA_+)|cO`5KhrcJOi^|OLT>Q$#z0Br~<4F4hpH%4yr>!o+
zZKT)xHK|~^uanfwh@0u^%`4OGH@~k7UT^>I_5JJrp+q!*PG3aHFIyVUUGR-{*{r!F
zw1^B>>w|i|hhlS-=`yjSvF99t)WkPp3Q=&^{30vq$~*k#Km2$+J6_na6d$VhLLZsS
zT&L-J`y<^QyQB+>#3+?niYR{Tc*FZLRD4W;%F1VcNoZdu@|vShH|HNs`uZdIGFGf}
z_D5U7cTpFk7?*Fq^@hKW<EKKoFrmU@t51ILC8dMrT#`%jWM#$`PnC+h$|ZLo`+Zym
zr;>#eEyG;<L0-Tqwe+{fbYFb(1k0m(ugMD^(Yt8$6{8>Mjr2T~$#5XYuRL~Rdg?<T
zovuBpi;g_OQ#cx*!SaMGrEh^|>s+6iFXW60W1K1c*Z<j{nST8@{|cnYoPcTH?4N?Z
z8<{0H;ROytBzWnV{Axa^BL~CnU?wBSj46JtD;&}nz0zi0Sw|*I#(Ktl^1#B1?-l*R
z#&7(_&rZMbTY9*YvBNPsZ(Q&Bjq!p~9f0UvE(fQ5Qo(tG5xSZfPz!|Kp>gwtm;F+~
z*T4Rc{U|(Q`<JgxH=ccAdgkSi`74asXSPq|ZPt<PGV*yhw-Y1mg$w-7F<TwG6e90g
z$tCF~mW`QXe=aCL^U+UDSM<WjAAa{WJ!$=pj$^L~<MY#_PwJ=S#0$B}xNmHZq4GYK
z8|8VIP7LW5czDx0Mz(ra8Q&S7_*xAozD&-#u{gb>li|C1f>k~=7OZ;T$&wc3!oU^X
zj*Rf~L?Y|X7XqgLgTtJh_r)gUDAo<MV}%Q{aIHsy^!I&zO;*Q^(8+sqWX2b@88q@~
z9Lv=_!2$Fs%g#x=@|OEgwgd^jd#UfK9O$Hd`@v5rpLI2Z$02716m;FW+kfUmdQ<QV
zK8do|5)g$2p?3o6<{d4hkung8BJ4=siCK#Au#L<EG%QJ*y4OUcKIuz8Y17X1(nmh4
zJ3xAz`t@&W9IB6+IJw&Yzz3&`FMeEim~{fhqic{zQph$}rsuoigH7o?LpjteAlDL5
z5(rGXqNl6#+zGqQRYwkfB=lQ<?X%Mte(~da<1fL37X}p4X5HHW&!iT=XBo-bDL7Q8
z;eTUAi)7plS-5Pr!z%-MFf935Cn(fg-7f2O#Q)N-eNJ~2?o9vd|Mkau<E38eqpOqu
zqUwJ0S3aZ15id-KdebCV2roaT1JNJ6e)Y<Yo2Wfg(KjmoikJh@UT_2(djuX0JJ1E8
z+dNh-P}%R`Sh(c7H<xrEZ06*{;2xhk2EggNQ}EE7DR*#J1wLS^i?@{<P7ib0u|OiZ
zOTgfXm$BS@@x!|7|Gnu4-~Dz?knw@LR8Kztq9<ft{MI-fZ0qF$S8|!}xSXl{;k&w8
zGX2*&r2gyvi6}r*^wS?YQst(heVrWxEH&k*@A&wQ-#8)vJm$1YE@%R=7&`U)pJ?>K
zoPn#wxlQiEi(27Nd{|DRJc>oGYuHH-2fQeNHwn?E!uLa`!?*RPoxFdBtNiDPq%?6r
z<QI(SM6f3+UdDKEQE#EwPlw&oi#z`OEgp+Fdr7Wk{s0!g1O9t|`&ac+biF-Z|M(e}
zzy52lOs{<GS>?DUW53zU5tK2F5g&L6sr^9@PBJE0SN@q7d<7mn(TAlrscG(Zwy7U^
z%iQ4Z3;FbmuIx0o)8jWDnf}e+)(QGEPfTC@^0)LR?MJ5H`qj@)AAd=A4MeA;^}(mG
z>1xd0#avnf$4N!ezr~C~i~)mho_9E~(RV;Eed1^J)d9WKho3jPtrLQ)kLf3*UetW6
zyX?+6E_T3^Y)b<?ILFLW9Y_>+=tp;tKWsX6;7)zvhMXY(5<fi3iE4JNeG-Sy6hO<a
z4lwq$f7*ZcC2gyPBVH~1W^Enp=7L%R;eH(x<3}{w)cNGX%~#Co4|FN&ul?v%{VKwX
zpZVG8TVMVo{e1nKp40dp<}13$@xsSn(FLkU{iM;{t8=8Z^dfx94ReTeVnTcBWLa(S
zc$NdU#{I<eFX`o5kLlMhzNSa^-|&gcV>fS3Pb#h(JtcO;1rGG<kJ7n6yX)F>e*EF5
z^=+qj|Ml#KiwR;y-szvdL93_x?@mwZrxst;KI$FqgP3Q@3-a_(<XqK-(o6b2u;c0&
z5<ls(9_E?kG0WsA0i!T>@k^_7KWv9r&e$K<Pf<Sm%#(Wm#SdjmJS&$X&bppZ(=TAe
z5H=|+$yailOv*gRR}gGZFA3N?JpFh?qs!(<znm<WmGX`?vEU+s9_9ASkeuU<K|OHl
zP+xh_-5y@Ps7c;<qAdP--fAjnz%dnYzgJ1F!CBNJ)AQHJjf`>j4?9}keob?`zSDkH
z$CkV&3A_|tY~JWVe4_(jV@|DB<(tNXFV-s;PF=X#LY&lpo^uyE^>~%;e%_c~{PfRG
zU;o2@=sS$;WB6&ei@K?D<GBw`&wWI1rmkE+u4g`mK)?R&38P}de;4X}bhp6Ve8L+g
za~Wi3{_=NT(WAlxIX6D|vcjbo?|$P?eFDWU@`7@o6TK(-O>zp{z)|^0mDkC86`h=r
za1T|QKbH1eK5gID6BBx}#ksxMci{`)>*hej;|U(rFFfKn{&rnp&0~)iiTId;rF5V#
z`G~&GB*rm*Y8zY9$KSkfR-5+~?k(H;$I*=UXGrSAZ(F}iV)o%r^%QXWX-KV0<74_o
z?I-{KuS{RoCR!g@dJF`xK^P;unv43ih7Wz}XQpe9Ju&^+Yk#T>poh~9UEIF;;>)@)
zs;`XnFL2ope3kv;HOrU}kN3hbSL#DHGG53iwkUmfnEgVI;Zol`!wU@hQFv8ef9Cn=
z`m@idqdNHJpt$3uvdGMQM@M2(`qbXJt<^J?_7&DS*=E*feh1m+*4K4c{j01=r%-6l
zV4PY;b=lY9FC{!V20BIqGgXb#JW)q)`x171;EV<0FaFd+c?cF+R9)l43icvrHOhC%
ztKmo|HN?$N6KO8VyF+T9gI?K8j<#*-MlL9&?7^jvg)Jox-WIsaKHw~8e6?9Sz=M}Q
zDV2xQov-O}$Xj}>7Qnjta-ajD1Dz=E>Cp-9e1?D+je`RiL^o->un0=z=ra$*67s=^
zV^IfrkO-Oj*W{TkcIZm{i^6lLtB`zun4sv)YC6!s*nd=Y+VOId9(fE{F)PGJfzj-E
zo^nA<q1J_<NSA!M`NXy9zx})au5_bZK_w4#(O}YxquA^NSSJ8J)y^F?Nql)qG6<(0
ziHqO013=cyRq~`y63GmyUna`d1wh%5%V5i3q?anpY2>NlMHN>rA54GeZ~e;jcm9np
z1V2g4Pk88xB<Gq;YFy#<+m?Bo*m=rk^Fwt+GtQKMLa*38sz<|~`S7Qv*I(6l7k{WX
zvqJ+yBKnHH$NPcjU)DPTc$^5I-RLFTAsRlz2a|eYlI_SuohL1GA05rl$Vu@|UV_hh
zBB$Ou0J=Lp_VlyU2S4?5x?=iA(_7#Bu5wIMrB3D_yZO}g{KsC=BW^cUC*G>en0$ho
zN}}BDr&{i9b-Q8jQLY8@A8aYac!7^f&vATI;U~Ec^%$qdOU9@;VKkXHc5CBA3mJ;X
zo7+oWUpR|$OSr!$C2f-2g#$z><8F%vr}9W&9l7|VZW-K6GZzl(;(;H@epgR$yN;2r
z)w1vJ<mzaK{JVMMkB>Q9rcPKSjzLCj_cTZR&A;(W)8Ewh*zFRwbk|_3d?#;UC3#W#
zRK8`5Qinlu44zGRA;<*HIL(|DImF{rkMD?+$I&S*;*ydWW$7^j?43M3nr`Sf=Ks~-
z`6aGCWHd2Om7Cd-p-Ub}v963A+_`i240GI`5~U-!oXh2b^z+ii16>T==n-`L&D^Be
z9_c%n6!R=k@qt|Rj?aFD$6V>o!795=bV#bWVgy=iF&YUf;hXsnuEITRG9L{-!(Z~+
zziQ$!7`em=?etF{@{5;AdYro@AH?mng$G<X(6-+-Pm?_yARZiC)(OC;^s6B^rtf_H
zOZw)(TfW2h^ot*!9{IpiHAf^fmN8FGfH8P82ja)QrTd-xfDQJA`w>0H`N$2P*nwdA
z4=n9FIbm;J)nEY2oF#G`fSkL$^L<_2xS|7$=Am_YrjuH2>w?jzKK;?@Td#g+`r0>M
z^Zv&N*u+mynY{QR&BxE{U{fzyH4lof_mduRAZs4+HAoXL{Gm=`#ru=&U+1}%18n^?
z-{*ejQ~GZEo6~Fh*-GB?0#-8fsvh0`q<+$puMv_<J)^h2)M10<&AckEJQ{-H44*y{
z3^zS5^0l$)*4K0rth?7dZG|b%r^0ea7f5e?QzyjVQf0;%G_>FFQ%6&Cow)|8$1Y<L
zpWw3k8*XF3D;eY%Me;4%+%SfM6K-Wq7Z>*4{E}j+2MjK0{@01S^X5l-n)7YlaN(t}
zT+1+zI6`C;5B8b%%T=fPXnw%ri$A263ibZ3uWmd%{ozmeG5A-%@<-F#-~Zlp>FOiX
z6FR<l?!zC~lcd6?agYP|^krQhWqy@DBlIB<IwjM2MT>Ju45$uX;5GAB{E9|8Fn_5X
z-IW#mDuYOxo_OxX>4^`0IELT=BRu`33s^jcj(qfo9CFWii5ZdEKYV=p^cR-~WA;p+
z&0lP>55kwWg`b{R$pN*&FKx|#*U^s*u`|{YtmKZzBki8+I*$Mu==N#W2{-6htLl)+
z{1-jBXwX?59MFb!<0KZwBFdGsK<Z;Yw2?0q(S21<8(n`&?;3W+Ngw4$d_N}4lV`fm
z@c8pD=-5>!=>mUM=T7^25>79QH8ulb&3S{5?N{=qH8vO7mJI$#mJ?5+p1o&c5!vXm
zkLbtW@`%)h7Z^y~G^6Rs0LM(#9FN~y(3coE|JYBcSj!pi9Pj8Qhpa=o!KQKNOmUv*
z1(n2!c5_2>>_?Us{I!HW@P%CHdAxO}|B@4A9k0qu+WP4|wB<sY*Q8I&${X^?C-qc$
z-Bv9_4A^&?8{s4$xv1xt6dHf{qn*+hiM;WEkDY@z4ecMw#V3s0`56MX?5K5x{or}M
zut#^+@9-0BIzi_o_`)+U<##vhq$B|s7(fsJIhf>S@GvO>&|bSf*kDL&l8-FTWJgO~
zpU_H^#H3k4An~kEb?Jiw5vHBtg{Sqy_0N3>_UNLeK6G;F6LtqVnc5iXXIU?@Gj-ir
zJ~*QWo%B1=y%b7Kx*NW0Du2R9mZ(P7yKJ{*ySbu0!9-^`#F^-!6?y&16_TZSofE)G
zffT+LrgGBBN|V}1A}1tLh206Ob^7VG)Vh+2Y)b2Iozyb%=*^N>uipA<h%MREE|g{R
zK(;Eb;L3sH4S#2g$IoB;l6IzgoRD~4(#r^*dg)`+GavehY&UL}1iQJaZRa4qbUhp<
z&zjG)CD(nx(Z17%w9=qrA&q34<6@4APc9DKc;Q7I=svEK_CM3hvh`9%eJB4h9f)7l
zvQOBVGMYbQ1siTlv%a6kcO}kHj&3WpzOOmK2n(PGeqP+6b1feG1tW<9ao*YM!qz*w
zE6R5YXFq$qfo0@d=LtF4B{@9uDLOC_PTfa-!6Up;@Rbouu6q1}MX~l>pUs!e>DDjq
zkT6{|R{e63H~z7Dkqfa0cQYoPKtSGizyAsK_#ZKIrqViD_Re9em(Of(-Fw#{GGHe5
z?JGdLK#=ql2h_gTI5l?XsN!Kx(U;szMXkHdTBIi%^z}iJ7I3JZQc?3E_B8Kp-^$!Y
z5APVXq?k9wKH4|e<--%x@Bhx%^gY@WCp*0bR@d)hXXI{TZQbC~nJPJMjPPK{Mj`xo
zmL&BFyZr|fd?hcK$;rFck6ud8?;wY5+DF{Nons>#-FGKHD_*ISjN-F<ASaCGU;3qk
zT&rnZ*Ll@eA;!k3i+*Zot2dH^C%FQ)^yhsYjDzcX#PAaD?0EN<ew$rC#i-xQ<_<=D
zfYA5`BG!{j@D&v33)hm!ZYOdJ`7jnv?VGuiE_mi2{yI+NiY-b9Hq_Iy+FyEIPXp;9
zjK_1#FJvmC>}$xvLcSMV!sl7^RYT!i7PvDX8v8f(RLLu!`=r0d^A2DC&_u{j-QCbn
zTYm0ypO_whLSGBfHa?;yUgNWLcua*Ga;vu$oa{>_ZAK)E#hDY$H{4Bs{)10VpMB+H
zcp5Hc0JV?lXEQ(Y$(PiDUMa-R)>(=t3Ng^tuFTa^xH-?AcIio+$d%yr9Ui@u$uDHO
z^MY>c>4G*+@e{c3=$P$Yov`z>rm9P>8IIQDC$XzNaT@4Lo!WDJAvwkr`1Rj9B$Dxw
zF$|aSKA+YNytxFc$Pi7+`M3U5*mT#OmrQvc(Nh4<r`Dq-7mi$Hzc1>}`cAhJu38ps
z@aAmQF<MTfu0Nxvs&w-7#_Qkq_l~(3zpp#mZNKN;^pgg|s#)0UlBgKRQut#Xj(h|>
z^A(ByWNb5Ez)O#B=WgrM{OU)NCDHLtUZxLmO0E+l>T1re6DjSxt~s1EowHz<{gL^A
zyLqmNZ{!3~J7Rn(XPh6h)yw3Gnj}XKI*HOlmFOG3+XcsHIhL@KZs=UjVLi?=pA%aI
zVMTw)vIMXG1$X5@3`xeIjCJ-41@7t3{fpPWmjUeh`+wM)?8o2u*}j1QRQtNveNA6|
z;M|0ZRsKa3K`=s(N8tmTu(Q$}_7dGWcW9oKT^gJA0}J*md|Fm@VWH+d=c83ecW)!-
zSV&sXo#P8Gm-Zz(<Fc>BT)yO@?TLpLbib#BVCgXap&!BUiN8z#x*m!4H=K=ajxN+D
z2{D9VbeUUhNT=-O0szi3L&Lw;)y8(mFFD6{^G-*JNLTvoVpa>i^-sF$0)(e)>M=EQ
z9Vz5bDmy3bvV9lVFx~?cL=F@O(wFrUJ|B5S?<xBnNE94<DiK|U@y^N9k|+2~;gA^6
zPClGd0jqbOIHNlBhcwX&f#sFw>T2&nnZXE=-gRh+QW9(qx9|Ax>5fMZ5|PDX{7As5
zqnBh9m_5CDoPYe^*P{*RD*74Gjo1s$@L*_|mSQh}S_u;WRVychDT4&**%u{-i^TfQ
zNp^y&hchRXJ@a}eI=-mYiDjqQVo(;(sf+F;v(~ZYb`mxi;!Eswl4jrxj5_kb5{qZw
z*w+uJpRw$bI*NDlK*%ueq80t$)0={CzVs12!lp+OU;mbOT-Tp`db+A@-5iw+R{+g!
z@gYAMY%1YuV9kJY6RrBgXM87a>4W#3j|{5im2V%=M9kxPaI8u_)^wmdEl<4oa;Xld
z<3dqz4E}(SDFl_eaiV7h&rmk{C1t%o2aL<Hu~GgW>H9R(8~;czzxyZzmQwkpiwoPg
zzM&J-ud9#7bB!4U%oR)LimA_}Vs6qNKEoR}y@S?g>chLUhdwBEZYO`{3vZ4uW1RdH
z_;+<@Mc-B0T-F_Tzqmtp4esdsK<|84PXp)x(?Q0^Bu4Z~_X0bn&R&T5h;{UVOTJ=C
zd0}3ao57m49tRnZ$iWyL#7kjH|KzmWJ)iZw3Q{<Xox~5Xu%|lg>mRnM%{)wss*lE~
znr#gn^le%C2Me?#OHHt=iwZqew$q~*4-c>ZgEwwaajHFQ_6Nc2{KYQ%wWN(=95w-V
zxN3jmhe0FfdV5y+gI@TfGfTEvk6tn<Yh`oMCL!qySEDbz%ck_@WK%l9${fd^HaNJ!
zlCh%5TUr2tqJt@}d?StAX^XGv%a(aER@UR6eYYaL#pC*8`bnX@M}<QQ3NeoiI91_%
z8Zqqgif$jU(MfWtS8k9q&NXy3H{p-?Al$i(Uvppdv8^)rWL<w?ue>%F#dnV#`ovd>
z`Dd5VrTEiu&cc&h+%;}KGVg|^_#q2|^~%qEYI^18KNFy{2QunAkUC-KBwL&$(u_x<
zLs9?ogKapQ=YQoVHk=pbH~x1#*>7LEa%uYfFMfXd{6F*avTcQ^)So^y#~QyH1W_FN
zvvM!8<mdc-AJKOEB21sLC}!q@JT4zma>RUp=ZDkY53~<3CROT!9WUF&XZH8l9|x$|
z1tUco%mr(MqqKD%`tq8($hz|oAF~b_@RPX#&Qz~$;{vbcuqI%t^uC@8%X-lz7p+qC
zJ^<yMk5ydJv1$A256@>R%=PL3SNzjD7>ozZtm_ImTKO8tV^8TR4Qy~BRLjnV!JFZm
zwM332Kp&ux?>rM%veolZ=Yq$R`NL28z*BMz9oTby_f?(ee{5g@Uu<u19J`4{xQ&0j
z^wat_M?1&*XgF)ZZsu=5N55mOE$RoaV9daXeBy<V^ke^&`enbMN$#i~o#Me$r}~8P
zUXt_DWbV?Bh*F3zw#i=?cx6SpMjUo!{8+Pn3+9$fmiUN90X6vOJmItF3VcOJ`^|P@
z7vMa(+#}zXodYNr{_-!n)YE+CXr0`R6#1|i%O1PY9ex=*(q_HMgPzNR3B9S0OvOd|
z(ZU>&JQO30W9gc0FX$i^&T00Sp-?~3c;-_9`ve}a%;TW8X>?pF=4r=2u(_)-hA;XP
z<Kcg}FWw{{{}T_^ae-pqieJxxsvCK){$L}2skc0K28XKJDa}nEi&<9ojk99ob3%Jp
z<n3s<cjKOcOi<zw!b!LuApZVszobE}A*cz6tZ5OLOuEAvbV$NFJN494+wFb`Q-w*1
zZ0dUQM>gwF9OAOWN-zj2|46iPfYv&gxUrm`=w};LdX=>g(6pjqbgJW6MDHm*uskpo
z+>~Ap@%RSMNt(38r*H~NNwF|ad}4r(B*kN76RYB*Z1!Usv>{`iv?<xV%k_FV3x?=H
z&YG%U?9)F3!+J<AVL4v3Z@YHs`kxr_@wNwVD<;xECgAvvO&?f$2dx+P=zC{ZpU_Wn
z_{t<ZQ*oh-BsORsM-D6p$kH~sjf3HZxF}oj#gknmo3liX_QBzp_9YAV#0D+4A6>^^
zB7)YXj%+7(y!m_lyp<e2V*!D4%~6vb#g}oXpLfy8`PcP`p?(JAiXOYwTX;8j^u&Zt
zkT<vWUBQxXa~)Ue!Rq`pPjEy0u@nDVMjmL4ja;A~b;}7Zby$HV#vfd;9sgPSyY+|q
z2_pS;px$DjZRyZm1wZ|%1NSf-y^L?hfpddIeTb5iVK7Ni#dwYrSw(gE=t<T7En+F#
zc13cTRRH83r7zrM-UDd!$9nvS73^Slo?~4{3*56oKbB#!4`zv(T7;jmi+prgE_+w&
zO}peIf;=C(yjU8MKB>eHv2LuE_SlqNyPT1d98xPhNjq(o5ssHH;v%mSo{@6~Q{y-g
zSB!uzyy2It^r1@2XAblcg!}aY27M_q;&{qYRiS}Du#i8PAj4Bb3&>amoH^1ab4YxG
zUwWUe_-g??A8(7L)BS@a<28AbgZM}WGd50tz=kaU<`Xc_W0iOK?%YU@*cbCM{Go2h
zz!y;tpCDnre6NGHWKTHh9Pk{WgEr$IlR0Y6QF7wec9sX#*~el>=y=+OyXoa8hV18T
z5uSy}v8^0)nuL@1OCLC^ysEw(^VSW|%smwUZZt2t)r|qCCHqy{Dt{eI*}<&m2Ca~L
z(1Jde<e=}cNrfI=KYfA$fTCEEUBRUl&12qnu8|YUL22bzDJXn4H;E~=;}`>p9OSZ3
zl`dmcf5w~?Gw+0Z@(1ab377FHZe)%|KRUHgUs~K>`ug}pt*Q$?dxD&{IYISz!_|lN
zp5GFSIvF?vV~#U9!aw1OZ?#UH{V@XF1K{{Cn35CPq{jPJ?-{ivpZ!S-Z5dPXCF3t+
z68=V<ma-&=??}UsBgZm!f>)qa-#L@9K)c1Pm$mkdL<~>lowLh=TzGUY>w&5CJpU(p
z;_Jd^X_bZWBfPsZ36ky0?8qO+TDVD0phJZ*m^HVPAJK;o$))%h{^=5(=nAIv5pxw2
zWOAX_YyL=_#8Ks<@!JRVc;;6h_+-@94{++<(1q{3d8(|7zav9BFNCn>fyys((eY%=
z2{~Na&*W;jj>(R@8B!d&jByux;YWJl7oRHXU~=w@7fS2y*ie@nt@I*)^l479m3Y}g
z*^W=(UD!a03ORSUf4=i57!N`;2|)89JNT{-mw}s#=BV>!)ES?AHVt5vbYn*m?eLQQ
zuUjkj$^&x9JPf{(&6rf3g6ICyL213Q34e)c*RyOqy;Lvt!@gCV>SO1mJwdXXkRwG)
zkmzkfGgtyFS6l%OfFvN~c7kPKLO4!J3XlZHPOu(X&!!2D<*1LtSZ#94$wmU{`bX)Y
zvhCp87V@-*;7q2Fhi^$ZKU$ijTGgNL3K8~uz~rPN_Bv3;Mr7o>582prD5wN4eZvRq
zb*SN_3FFOGWG!QU;YZ#|PZ#WYOYP_$JcI)vP}**`@|oBm(E7r=@kpO104*u)mmgQ-
zU`_XZZ@!@)y+23kiDkq(AUm%3$W-b_Zz}O=qYgM2%^+YRR*n9Tfe3ei>Ubax@7hMx
zaiD*E0t1{mcab!|S)v17&7EZ`epsN~GwHY%9@Vml6BxK-K-%STA`71RBRWGnR>GCG
zb+>Ax-?E=>zixh(xMv^bYjDxeB)NYkZ|dS}<3_h?svddz$F^3gZ)(G#DvQ6?iToTJ
z^-s*D!{ayy;CX}seZdsIiHTyyKX&eE!tA+9e8Yb79UGqOqz!+a8_tvXg%Rq(8$3+v
zuC4lIKkBuuc5>USsbA#7d9y@LwVXRSCg`#T*<%dTM@1ODCYjDNuq<VkCphjR>+T~X
zj2CU{YoXC@ou~ZZK#-EL8Xkfr3JjNa{~;@x!Uk{nZp;!4hgrHe+*`KBD19Z3j^=@N
zO5z4*jP=y9w8c3#ND>^li4OW9?dd_ba_5DL=s>n(u3DzET*y^(a+KPW%bs5@I&@++
z{o_wK5GL?D*5^N915NTPeA|ce2Vck+O6PX$#UIyIJ2J-)*xXMa8S@!$ctt--con}D
zc+U}<%-9w9C&w&x-VdIh;?M-{ut$EtnGiUCk}vmaPppwoNgT`t(O+Osd&Z9E6IIv;
zEwRaZY)1#9hoTliP@8nYL7#wnXpvlH+cB4nq$Ec+s=wwM?`Mz_aU9%2-_hP94Om;J
zD~WG()1%|Udh)HgU_0%|qzx&sw2w}f+7{BnJ?qjoB{2}*%3FLRMlN+c!*(u$5HD@n
z23XL69rbbyyDr`NR8Rd=qr{qTQ%V~|f!{iiK7EPLiW+#-pQuo<(KBJ^c{oZdSi7B`
zj9Iski~5&7;iYX@tL$W)Tin*Vo!o&1K04pbi8u{M@D~BL&7re|`pQA`Kt4r(Y^9w(
z?U(UM>^z)B^Lu^5V+?~Qn1h$k9y7rTCTF;Lbne&w7N5<j0z4mwdwi6i@`E`#HmsSC
z(x3eV+nvMMjehl0eBh+#yYL7LiCgyrgVR>-I4^)IG>i;;C{>=%G)3#z3Qm1uAk-Bb
zE0oT}jjZSkf8ezoCRLp8GTMB48+q5kGhB@J<~}@!V`p6rn4X`=k)d;U?h0q<B^D}H
z6aL~r<fUTP5qsHg{2AxgfMizm0^{?P-k;DnK8L%3wQN`JfyX!i*=07JT*ZI1EU~vJ
z%bt(yzwz7SS%iL>2NJ*D_B@CEvPaHYpFVPonueZ3+J1=k*wMF&6)E8xH}7V%_g$IY
zLjv-xpo!PE$C%m#cLo>Gok-LxxB{=<CYprv0D&w!9O9EaIHp$D$4Tr`YN!|k+e;a?
zt<$o=-hoat*5|&+8WDsr$r?-AdwmYptPADmyF!G04@9ZJUgI;Ls5NA+xHmV#$H1)t
zgRck?V0J5=2&%L`x`#z=OCRmXIxcLhf9slUmmE6KN`WKvAnSOm+I+Z<^^!AR!jnzq
zfqGdsC^|tM70x{M)6M8Vdyxk_*ujw8!sGA~t*mDN*aO&-t4lwE5ozz5B@aIaZWY;%
zJ++uaBvasl(%jp&u*7b1$nC~~Ec~cl{}Knq*7DJlJm_2pM~Zp3EdUS^Y3hO2LZ?^~
z$uO}LCSYTy#>A3?sPavCDeYspiErVS{*jeaI|U!(6Zu1&$lvI5o+x)(uXj#vi~l|l
zw0v^g9LUbhIXt#5afmGnm{?0rw7v4BWGr~bkH(JPwwrvwMj!aZUi*xRfj0&-Ifp;`
z*-y(YxDZ#`s=mq@*`&-q70(`%;)u;0xJ8D(&Fg#LHIV++nQXET*l=Iw7%7Nm`>=QA
z#&Z>9q#j&|Rbyzbk}LQkHT>CbxI-H}AUk{wr?i12ZHYg<d)rHN*&j)Q-Ej_Q^oARc
zZ^>bwfAs6pJPw_-z$&Mv`b3tzqOU3}H}{Vm2Wu|#N^PI8;KCC6oD1Xw2InH|s8<=Y
zPRD5Ahid?$gR<n1?Ok8nR+ixk-*)A&hv|{O(LLiNhGh>#`7;VkhUbc@E6NX#dskQr
zNuI|3F%%&djP@OcnIcC{HP84IKkVUbyL|)G9P7C?E9m!Jw#cE>$&VUS=)ndj=+2k&
z-Rx+6#G{jD7@;rup7ByPNAtPYgxX_c#B-1ydtk|*=g`W@mXD9=le*+>w|CxV8;&B|
z={$2&9`t-|F3qX>h#ST)cqr&<J#DADC)Soz+>3YG(BZj9_Tvo~xuUQ8p1dSrLEd(W
zizk8V9Ge+)IR>H+_?PjGurJh*3&M%t@j2U(2yWK#H)A9i^2|k~f??=yTT6_L+va1`
z!-epRPkhLH5uJQWj*&AeeoSleBXI=F4jyBnjXWvtER(!RK4rb(L?0*4qrS&l@8^b%
z*rhM=hu8kYCV$DT#M!xL`?1FOA9)jeZjm1N!wwjwL#I)i2@8{&ojS^iMW^Vz@8>L<
zT#gS}59W@I5EVzkHh7EfF&3H^mgorH#DE-Z8^pc*DBY1qA3ha3B_AvCm6j!s!2*xV
z5<8XG6^F_{Q+3AO<x;iR!w<0pcl>MLgl-YTbak7cH!j!4N&8FvlC#bo<gA~*AeWzv
zDeR|>CG$aVGw(!kbW$(RXMU1LjMwxJ-*D^ESeT+u{iIia?(K2V-z#wM2Y<{aZK$?T
zf^$s-1_(?U!oN65CzGPKB8MtUk}zu|L-)ni)=O)2cM^{_2u(>sB1d6>capW9Zp$*Z
zko8N}svq0w#~S#C9KlM!2wK|D_sJkj;ITF15@F~k=J2?bX*<-79YBIgU1X(`bqV_<
zq2dJA)@R0Llj1}H$1I1Q#6+m9hn|jU$@HD4Tp3MV(A5)athaFNCPs=hBb7bbxk@-|
z%*{>5AB$;Y2buWf3RnEYD1K1jyE$W<P&Pl*69qVlj5E=7`f%~!vRq`G!<9cB%cXv6
zM_!XOgVi=XVauxeE&E`gw>vJry2b?$@#iN50^>}d@(9hdy@8Lqu+t}&Y#U=)XxW_D
zBQKBT&&*lL(a-)=_=yLr(Vt4kVBT3p7jpv~_CaIRWq`p!bJRF`sov%jd2*cVNS@fJ
zkk00@!cOfu%W_gq4n<L6tdx#DV!E(x2Jjt@!vQ=u&Yf{Yj;Npq?zC3hOMT>AV&<`K
zKhrOHPh0XEYv$Wp(vR^8{jtxOvJXVmQr?+rm1yXBhEv})z|x!#p{1>QX>Q1M*-l<F
z657|;4u9Z0mPe&8n2AO5(|#65(YC7xzB{K2%+4YlQ<b=w19%T7!YO@ayYGB(Fl}4J
zP_NjBDGHy<6E0Ui=;KaoVgMYS)4h#v88_hrnZzjlkWWc})(0=)FXM^z@Wp;3{cvjJ
zRP&7v?8N1kr8e~;gZkuHT7swNs?-H@;uAZShdR_1mWJNK549v787DI?Ind(@)!|l{
zZKon=ndTrIwjO*L5Ht4eOXcN~FFyq*UBm`{DI>?dnL5QY`4!E}*rJ=_V;1q#2Ys#-
z*V1_Ir>w+wjW@K(vGRc}{7s(4{_r{(fK2<H*i$oN>y6SEJ;k-UC(n?;hJ5xuBQ~iW
z?OG=mf~F|gUbnlxxM{x3?OZp;&A>@-V$FPXwnF|;YECp3k9Oz#5?haf=*KqL+b4L<
zAF&P!wmWY;2E<#oN2Vc@qD-kV);h64aUTykKB6=ABbLoY+lz%=Hi}PajW2?)|77r4
z=6o#QTZj<_9KoGs``fr2aq$q@J_dkiYJwLYW?p>UP<X4IG1dB-*Z7})v{5W4mBHhx
z;LECVaKyLqCkE+{SlfwCzrD9S1uOCC_#u6YqJ4<x1c@$jEqj82zb@e-+@vlLy1(UV
z_C73a-M{^6UA@18x9;ET_EmzZkG+;5Q&ObA_LcK?wN!oydsQ&^s7Qxa<b_<~Z*Ql6
z%bvUhU;f}`@Zs2aJPyv7M||usW07r}$c)|dOpkk-cDd4ALLOq%{pcNK!O-^0M=b_d
zRafJ8aF;&xN0vXQw=_p5mX<a+-j=Mup7x2`^fusp;3x@%a|S4*CX6&>pzvoGWvKd*
zpvZO-A(tcs9>51+dPlbVP(uNVTeWOm>Rr6G!_aG7bWtIRhJD(oMOSu_KEOdA81!e`
z!kSX<Ll`m-dDLNyWq;`-wvJ;qGsYp?HMo*c%>%xN8<NgfgRCc*t<SM2pCmJEhNHHb
z16=8&t1<}h!P>laKcJ^oD=MBS#5YM78QXwGzp&6UyyQkJI%nV8T)f@Er0G=UNN;I|
zd-R8gp(2k>jct;<iz813Qbqs(KmbWZK~y%!F*zGfBeTp!`ZO2APHeV5%aos8*Y@Db
z?G=y4Nj>Ya<-iaAq-*r6e1m@#@~{i+;fp@bT<GhurR8y3xx*m|WAAq2*XuFYyhP6N
zUFhn#x1PZnaGf8T^!P{V+{t*yC$+$XY?5mf>?8)!*|^<EyA%td*2I4EE*%|jTBt|g
z!;IIC0lNAR3}9=!iEDxunTliii+q>pW303cx{B+{)7Be)!pCw9#&-HAE=dY=Xq>Ue
zNoVs3>vNGEc)|`gq+`Bo&^yyv_6#eH8{OFR(<SDqxl-iiE2U+<p%46MAG<xisZT-g
zC49FYvVeR_473atQo#WcIAl+LQrgCG+nM*mCz9k<%dm{CQHQQ*#Dv;s(yA7LlZxIR
zkH1Tw->XafN=ta19aLqA2~WZ#UhKaQgy0{{&5itDq(Ixkx9;ET_E`d{uiUEKoINkw
zCmpoK&WuwlrB8I9;if^u-C6GYH^ejk@f*B}8}<fI-PXs4v}CMQo>q(#YjP{OfU)q$
z+8_^}`htkqlO=stGky8DEa)K4$dMuGKV-1$TxFjdhJ0}YxsarO=RD?UT;Ksm-<fP5
zQlA_c{K+i;7Ca31g|T>cd#&R`xDU5(GbeZq<NS^B5#4YQpQAI|J%+&!Z<LHtaK=vC
z0%=MDpn7qqe&S1z&RlYmLC0XpERr$QSWpVyY-5ZXjZW3YkAWGSUFUd8(s8g3<kAma
z@ritHpJE4@w1s<hs($VBZmc5PeIw2162CNo>w-OXo<&DAjy~sEi=T@V(((-+;_rwd
zva)QSncteL<2Vv`xJnD3$a?H)iO=vB8-?23XO2ZTf99qV!+j)5zOg@Uep*MCvOwxK
zAT0-$5hq8SuaoIJWfvZ~kpw6h_ge_DF`*hP*fTzFr&qXKYLJPNUDkF#bl_)p0m0Wg
zXlolRDc#T6QM|-iVOg}t=fti15=;J%GB$iJVy=3=XcC3ra~byeYhs6%v#hm0^kKcX
z+b@>HmbnDJDa1Lxg(tV!cWS{q<{5X;hkKec_f$=f$(DdieB^KNL{2uA<M^^2S+w}(
zF*v0nexNIbZR^&;Si0c>%N=H!6ng-SgdQR`0D-DPjvWPtx({{&0!Ndq$Wp9tUWUMy
z>B%ff80g3KSjl^QctG1m3=ud#TG@MY`qWPIz3-}ktP)OLGr7Nqp;J|b8;iEzTH=cn
z$_YdRK}&LU;F}93T}n6+vkoeg0EI+J9r7eY_wN${A#h);<N!q5?%cYxp?*#k30aRg
z!;Ue~(S4KP-T;H^;TC`P_A(%(M+dfNf19hd`eTn58!A4In>p!0BfPdL8{lOJqyk2`
ziG08|2jR4slDz$K-}0^M=s)^ct!=daaE>i>5s_W_F^H)TzCMx&X5p%xQ0$QJk}aO)
zne?hg-0{1!@g+FU@~H^z_+eX%aR-)gmz;|3@Iy`*6FIpUE6o|Q%~9*<9HZ}24qw@h
zU)?X*kj>T1vR8fOwC(HDuzEs;HteN+#1Q@Z1GU>NSAFBx**+7e*s{IS8^4C#<WzDG
zjI^f+N{vc#pnXr=lNa4ie4{sc-0R)1by^M&@xO|>uXSI<s<y_T{A)}jF44KXYk*EL
zpS1|pqFXSdLxGx0xG+Cj<)prS^7tvyrC;cw*uNUvJ7audQyMiF3?JQ3@gn~_Ch*@l
z+YSeU=DKrA9V>&}FPC+LW8f*Ue&aS4cH@EV2bDZTHx4AbfAjI)`<KGGh&wjA5B}g^
zrX%@me}rx3En~vI9^<}sBwlc~)SJBQez6%oc2i{pgSoHedwxW>?fAKP`tQaHy=N)O
z?fBQ@s$)9a79_`9dC~jzrHzb>_(EU$&3)-(?!Z|VD(qlSUw8_y;IV(QiLU;`UM|u#
zKhh<=-QM}wdL*vzFM>t5-iu}wbe&~TT+z4XL$DAC8eAHJ1qlQQZXvikH16*1?(U5>
zO>lR2r*U_8clQjhX8v!grry;0aO!?rw|3RNr_Mh6w;=T+z%9vV)l&30k6(3Y+RhdN
zXysdZFMVj?(3Bm|ZC|#xy5ZR~JHBE52YH1X+6W03*LtsI+d9j;#sEbJhT*4i?5r(@
z_<~m{&EMlByim2G5|m2f+A895+6r8%LPSE!<L(+fEMEuDFkiz-cyF?K`-}I!=y%`*
zUIyu33eo3<P^&{){HN-++R0;jnuA>-+GU_;;}j?J0|r8orAI9x)<tURg19QTMf-xq
zo5UDL-str&$*XUzw>+?!GuvPKzza5m%+X4#cbw&{jAvM=og0@HQUNt*f((Q;poNnN
z#QN<pu~T>4)wjFuS=_Z*w9?FMV5Y%)Q)tDTjlF7{zDDPgh7(I?ikc7V64_tNBKR5^
zb5b2`JLjC&r+Gh35ve>rdxxe~3st%En~BnIy`aTEaV!`9sC`M+1O=LMqtE_}24VHe
zd2JE!q3|0DK2=TNHLr#b5E=y1O_gy{v1=M>O(JUVlvcX-bl8Ucvft!%Z~g&o6GKVu
zpLB!cYoNRTnW6bv)QIWPoaSM9R9NSNV;6oU<D6{Y_gjAwDv2YUVJjtp;0w&qoS?eO
z>CJ}#DPI90=h9f3*R%C7-0oD}>YDuauM)Aa$}*w!ea%Nioz*dhh<%M<wwb9IN)Al8
zpNNV_ud5VS0$jv!_=}Kx>h;`e#8#%ybVT}Scobg`x`Z?4cM6UvHv+5vraSX7hf3zF
zN6t??Q?Q?oexXP5MUJ45e__PF?ru%CY&>b~dWu}a6Tjs73vy44wY}Olb$HhI=d|Ek
z{d~EZN7fkQ?*~)fDMdV-#kWGG+D+YdS`@|bdaAvu(?-8!2VBbWbLW7%9K$Ha7V&-8
z=y!_{M)2%o<%rF>F~pE*$<*GfhDzqg9Mvlsh-XfF#mm1c;8_N6sNM#bjfLD{jA}R7
zkO$8o5?XF1F@GAXnk*;H;p%6;{OzKB7jJc6k~~8}FeN)OAqco}Mo~_l!b3RM!`s74
zjx&E5gw6U>@Rrd)(Vi+fK-nk-+2ntVJ+va^?^In0v%t&VaTuUHKS=is22_M4_u{Qa
zXeU{0Mrd}G^rDqz;64m%ZgL{GOfhZcIqe=3QE&HVUYHPjf1~oW>KDS^Kzm6<HHhRD
ziju#(9Bnp=(e(S`R@A(ezjwTcIX0-ePcgMerpZb@SHPw}b-XI#E&nr!`XHigK;LP=
zAFCXTo0ZcfQnoomqpxi_l9Q?4IZ86OUw~188h4GPqsX9T2an?b5r^j!WNdpA*8T!3
za|5Nk`#nXlO4klF^2cP$qU_Gew%<FwF^(OMdZkz7$dqOH`_hjrx4q#x?m6T3Dt`)R
zb-!A3r?~Z1+h9t5q`cwoGYpw6JEo0a1Fh57O8Ux&Ov|$Cwkbdk@d$%WHg-(*{lEDi
zUue$A_qhwe4SOOylC?|};~Nm~4H+U{S@ZNNJv1H?I*~is<7QhAhI+%2Ce-!~>-H_A
zCMu34+YteiNOir{Ok2FjF@*g%0v!AA7uMrAhwzG@gal&*uGNUEVBZH3?wp~0Br_`?
zzw!&fsmwZ=ohk0im)NFG;BeY48qhiiEw&FLxaF@s%sI==-EGh76Dla5q;m$WM_Tw~
zWP8bL-C>8vS`{U{9+4MRty2U?i$}S1=GoYjc<`RnB~+d9{~dXoX~roML?{?&c%tEU
zI$ie`KGDqMBzQ4I@iU#-ZDfbe*(z$L5MIo?e(kT#V`!mR67lM%C(<XYuZCPkfBEbt
z$ppB|a5~H?f4aTIC^bG)X2_Zk%XnLq%}e$<QfT9h!Mqt3onE!@@zknF;1?Fx#Azom
z>G!XqbscUBOet3W*IZk%LrHab96Apkakjl{ofG`FJbADq!oF>$hqZRfL~GXbCrTNV
z*blwTWn$bhm2IUgabF7iWHcP4QFNolI}bi3-=@4ap{cgEz+JPYd+DcZh*UML6AFHN
zR7S|Dztkn>*dlL@_LQVEsBl$bdDeMoFkB44PbeCnvyfV{J{xIRE(*}OFwdIu^5^%a
z0-2)(fjlM<KkaQ9g055!dR66k%F>C1Qp@cS0)S+GX@&@J0g+a7W+9=mmK)CgZ{n>3
z#ci=DD@wXF;z`7GUWW2MG75*GU&7R7u8inTp;*i!e=zC$30!zgwn(;w9pQ+0Wx(B5
z5Io&I?Buiv0u<~KSGo4?qNB+k0HtSM2F&ipvi4GJmbHwsWiu)dp1962D@X#bf}A`f
zv<O88A7zs8xe?>vg3O=Ke;=mTgB<ut&NV-9*AL=W`t!SGC#ABha6^|0EXmh7ae3pE
zz4X2q*E{Tv!D?CY+QseLO4{*tGCr32oRD_zM*iZ<4IICm40-Fp24=(NcLui4r7{H&
zyV&v`yQb%{%RG`<g%P@*<kWs;tK4Gz-t2g?h|ut;8&Fj&3|(s9j&NK+=1?&63X^wi
z%;M|E^QYV@T<atB8c{uzh|Ebii^3%iMWweD)fs-0PVbk0JPmg6)J05xFrn`@Lp6RI
zu&Iknj09|>jXg#S*jaMk_pIL$o~cpWq~KnVbA|ASX?TKe8_il8g#cF{QMGbg_WA7V
zPemGbZpWQUQ=j*wUuWglzDw6Xy>_(GsoHqel?va!@?+3N(<f?Pz{tY%Gu+69Fz(4G
zvO>!pR>-F1a29eHd6F_g>fHvs%aiydImvvN+&od<n}`)GRHMWXL^(Hut_&kb;lEz5
z*y<=r0=O>8ZDJ}oIL;Of2>CX`tXj=h4L7P|1vl*;z%QxKiEF*YKB)!Sl=aNP7vYTy
zYdolfl0Of|ImNl}{8OFAoi6^i8%AL;7zU`^ouFwPF=oCveI%|O<sf(6la*PB5_G4z
zOaLR~?41#yEmjD78EzrJ?Nz*d%;dDtN}Z?6%l$Bx!@u-R6!6-hwH$1oyhG%KZ*ouo
z;~7TRl$sX#WxNtjuy5sAzwGI`bc2ZhkqyetH|9<U8V#Z6hyuGXpIaeek$aGVA5y9?
zI*4w!J#{<TG(<9#mZI5PrFng(&RzY^+nCZqf-<}#ziL@KtSm@mjpZ>os@@ji-k@pg
z)s$;S9^mDCPqCm^dh4_9$28~~!8Tb%^dX-gL9p0|eTh%Fu_CJZad>lb;;BD_K<&kI
z_jlT9K?KdMSLfo+Rglq#1YrN!1GM@68@xPUe?eIt*XksEQ-?n?Tx}Pw^Xd_ubz2WJ
z=_br%JzMgbqviK!anQWRM&{@Q_C335;-m9c>v_+x9Tz*@%Ui28occ2IG{{uCw%Ho`
zDA*}xj4%AaC`z|!C!kio-}v(adZVA~3#wv<J_2|K*!Rh+q)&Q^Drb16stk#+Y<9l$
z)^DUgE?lE}0ipbh$1gId`GBp3PqJ}n!!y+02m9UR%f)KC5neyl8ZN~^*B>^o;>Y%B
zrS0@PlqQ*sX@(sVw%Kg*ePY5ugr0S8SJT%{Tv#l#L*oOwA$EtF!B|i#&yoH*f1Xki
zKCigE_U)S9xTgd1n(vD)?zg=$9%r@799_<XDrhLhANpsbIC7jemhjcd$JGOvvaHu<
z@l)Rde?1ku{u!dpT%@T+;UrJZ8?WXiC7tHYEebVOtH-MC$JJ;$uISWUz%~0^qr^8N
z+rFz?X$6PN9l}$Djx!iRG(wKp{(xEmnvLh!3P2=gDDuDC6VoWpMwLl{+bR%_v!7CK
zxfv*t`W(N{5G<Nz8z&|sR@cyW5E!!HV6!d2?G?buR;1|HXx3cK$?+^Zf8qL~g8MUo
zQ#_iPDo|Hfvd^{VGvJh+x#?T5=Mx#WXFxh}>y1lCE%~{?o_8r07L1%9;4?U#@;bg5
zMd*qFEY@sTBlTiR*zTKrIo-6BCQ{n67r2{M&R|u~Ptc59$OMOGFvH29+`|CE)VQF&
zA_AL_z96+I7kwFXd9mW((m}U}5xQ%xu+r-=>fUBnU9O3?(T_Rn^~-~Pa;Hl^OaLaY
z6<R5qXtTBVPh6uciE8aN*kWaJS>KqfrbH%Kxk_7e8JKIT_j`xB&AxXs>P2j>W3Y~_
z#)z}FCLZ(Ha=L65#o_STCws<tuF1F(ddk*azRYx8r+drFx)lF9&)M9mCL1qyUBlpe
z3C8+Mv_F|m!0$!?OOL67WTWkrxtHq@5`g$@tyY<p!8|uj%@cDwhQ9~%&fW#afEUqK
zuE3sSVYEyivFgI;I4HBYZqW^$vuDlWO!>6Jylh?0oQXgVnx1_S3S?CSkkdBf(Pz3%
zX~<8X2i@XJ90f}R7D?B`095lHEIxFM@#oQ|>p7_=>{XhDusPkS=BB#4sesJ*0A7d;
zx=kQVm_zdEooG}QryrxEF}-QoeR^>KE>HcuqvqEqmf^{c<cAH;6cXEwx1B&P4@6?h
zUSk*S2-QpWR{Bg^q&YkjUMW>RbxQK@T&_rF_P_N-Rnsrvudr0^@6IhB)yBg!>;?p@
z@z$Fs#`x|1=zqpM$VTpRS1yS9(xz-S&SPmf-oCLNU;c0_8^E$%NE*A}@_l8YY{~%+
zl05pKmOY$RrKF&oYz&8qT`Z_d>w8wL`pUcii7V>Ki|Qq8Ir{#3m+q9bkwfLG#!->i
zE8NP)ekzH#qu96^<+GJm*CmVMxPBwR@D!Ti(Dmj|)4Hr<rhm9ypDH>r(E;|AJ=Pbu
zOfb>i%tp6r2DaRntiNvgYdV6<I6{cFw|aQ0#sC{?{zaZWSpA^GuhGRiLt;QmZ@h}4
zaPNn-d*oh!jsaZo08pd@d%?y5A`P9#*&Jx?cS^|`9&s6D#2wAcOBs)@cVX4E@p+!I
z@~BSqs<`E3_!C}6WT6je{j=eUdqEl}c!}?|&=A53X)d$7U5TNmyqe-GiL7`{^&+v~
zM0VredX!O6--~v?5vJyuO(2_EHmE&yvNkRksCc_!<otO9Hj<uhcLt1*Pnu|K{d7n4
zK4Pf{Qgv*%i0EbFk{R#}3O~uk^B$hJeudH;bTNzw6&#lVIz$e*Q4gW-_!QobC5A3j
zE#l>wU0{M!zt58AWqsD)E0`b%bZBZ&!L$#Z`O{Ty0R(+IxQ!B=Aq4%}!tWGYM;G7_
zmEwfDXcx*AUvOHF@+xS!EOS9oKr-+gD0plsZ<=Y8n7ig|aq{IEhyNM6+0N*@G0$Ac
z`JtE?%li|m_hn4iu@jmC!qg|j%IuOyqc$%y63k38SW8byX5D}Qi>ui3g<%o9U(}^H
z;#5q+Ci+oqj<NBH5Kk=J+?i|%^`NWi25YTG<1QA@ffK9u?i<k2vPKHh3)ou9V{#-J
z#R75Gg5Vnt;S2ue#{xEFWs-f&?_tC)aoub?*{erAjyfltw3E%R<|vK3A3rKWhh7^E
zerif|D0;80wp_HXG2caW7cx@8t#43p=sJkDIeb`W>Tdk3@&Yy(;V9D9Y6uK0TL_@5
zjlez3D}S5<9SxGHy<e39dVV1;Qv=cBYP2^@uDiQfIj&#-m|S$vfziR^e!!fwl+|<{
zNn`P}pHtG|h+TiF$+Qiq*R|%Ilnpql`^2p_CE{ZlDt@fjnw?zBBx7SB*<BCIcZDlG
z85XUF%S%ixUL2EjsHnmCsRx&VzuIjko!Zm#J_e$%eI?LtwE4R^YSb5}J%HNIIa-`5
z#os77rgqc8O>e!Bwcw7WzVMjY6;*W)DO<_&w~}3_PK=%FSJ4H(Ly#=EOL!zqha+Gf
zV$w8(p*`u{Y@gcz#iBkz2RNd&1Ys<t#3q@5>ZER_E0}&TDk-4h04lrM-kih%N5w$V
z7b=;rjc7Ovx*7*7Aa15XjSET=Py^u18a&EN06br)8e16=fBq=U1-ZR`LcDj}xO3RC
z+$*xhU;ZG2;&7ocbZK<=s2#w9*az>vjO(`LL+k*kS>$&!$=I~ok<{mU!b;Yq*mt(;
zbZju|^TgEY6VdF#XD?uAZEG@oum3^dtC8M@q}fz5kjwd${N-@GJ~z2O5~g3caw8#z
z6K7?zK=Mf>%W2#`5<k&UDhp9sw@TJd!|9h{&MiWMWg*wK!gl29`z_*v%YdBc(Sx5}
z;r92Y*FyT~3lqYnO5+c6MDjE=%lgFW57R+b?k;+S+O||H=7dP|lxGjq%r_CyRD~xN
zFd;9GA1|lY!$psUL_dSnWpDap3>_uobnXmn+%GrJYa`MZGY`H5N6YTDLM-rHbp6wb
z5Cc+I2Jt@Ol12e4=c{yat}cs@)T5iDLl|qb3f?dp5_=JOM?(yb`g@Tz=hVO^kjdcB
zw=bK5SE@Ru>z0r?x##YvS16xu78d^n^^^Nq*qUzSYd<oenlmKc+ljmvPah?fVbJ6S
zS!XpE^`X=8<VRyo`PL$z2;o(4kJ|PVMgV@iP%;}ALR7)MA|F^d<Su>xQRca;*5%9j
zX~-q*+OB~;t%KB3I=|e{`T#12|2i)WMairTWy~-!9%=fhIzTQg{!%SNX*Z<e(1qjP
z>^<f&YeZu9XuINu8opZ<Zr~H_;77^)0k9`joiIluhXjA&drqwR`y4gi=pr3VpZXzL
z2)fx=_iW}yM%WvD7yH$}rGA&Eie@17cZ*ZB|E=A?muQqB0Ru@3MlP<AqypgL`iTMH
z<Rz-x{o@+jDJ)i^r(@@DiV{?cTh>h>RZPah-f}GKB0yuYi_cNW{U3e8nMxVU?-_>T
z-X}%&aRXtBhmM)mlJ#HNZf<0fosyso)^`<#w>O#HSK+@7{Y4v*MXPXs;K4Ug;mA&P
zowq0&<v%);hy_o{ub3%%K|h^wT92_|X*r|?0O_hA2P~g=`jk)Lu&T5`L`pr*Tc&5c
z_<{SYOuvPc#v!+n!tChUn0F>oeUI2Y8L}7f^<$JJP`#uv^y|UgoQ_L8l_<AsG5y?L
z)Z@j$-1_aWF9uWos<#;q<{JmD95H!tZ30O=G1`1Jt0&I<>Ok3lHP<3OLwFIrlvNVQ
zJoW2ADBel~*jvyCKgvq>a!USzskJ6h`%l%C1i_v3Ck@2q?ulkDKGLknjMiUb<p#oc
zm9WCz3$mGSM7Qw@ki&n<sc-wU-Ze%ftvfq>ZUjxeJm5ALS<9&$GnDzAFC28vwx1Cz
zvz=m)f20T0*I8t3%e{^;9bbrQ%uNcsx#cH6LC#Nttjwd(HDuUEeH=njDP|`<`|@dJ
z)k+ttIpw4qbi>Or#)piW8wc`Fx`jC;Pva9j?%M)bp5?*4+74Km6QHMqBy6h=C=4NI
zK6B5My8-FCJMW*%!OLKaGk=Nmrs3U&+}#85r-b<`QO^*xG5k&7p4YQ53F-2S{J1-4
zllFCs{H<UBwxU2Al6V@v7$135Rb#6im9|%yyc%z{Rhs?My|nhm%`MB*d>V+>hL+dQ
z*y-F=S0UfE5|Q+<$pqZHjQa?sG4t)AJUd`fh;Xx31=uq+_f%Y~&@S=SgWM0mK#KB3
znbzQw&Iu0n%*?Clt}-3Z<=Ci$H-N`-58dRd9S+}R*Pt)UNV`8W(NlsOh$b>h8|@BX
zQGTsymMAF3wo-`o`R|Z6d$}6g)b3ZJX6?DbRn&8^0W8*}#R>2DmzL2yi*mjv>WYl`
zx~$Cy^=sI>y)c8aJHmF;Wtw27ehRBm++m~ChP(vMyvG8F&%%A{D3@J4SoWm2ohi#<
zF3$=5ks~CSVNB=J#8cXy^(lKs6Poi=C&jz=U)R~wU!#-idzwf}BFiF!Rp|2`27iy>
zKJBua&JbE^6+rC8OX?f{#wVEx{x|jc0llXj{_PLGH5DT1Owl8iF??HHfPdc~1^|7T
zMUZ^Kgrg@#A0nA#P6i2{P6Fal>SCAulrGU>Uw_TW=#7Tgp}{fbogD8CS*f&=5v_+X
zAKO{iB|wbyMg6}ad`Hsr2#JkC{wG})j=J)va`L%K_oeEVnuT=8l>vu}uYed9dZbwy
zY=)sJItMuyx%ya;HW4vpjCzVvts11ABi`_+7k|eOW_6*$$wkN}PNGEuO-xKiZAg%+
z4rL;~f#|q+I+_%b5X5=Cs_$;s!BH=s_^|u5W$!|~A4j(GMEyu)`(<PkHT4FL8kY#~
zXDXQc;Nk51A?&g(CwUytQ<31BhROo0AkHim%psmv)hySt_f5Rx9GY|4ekZ8U*!_3|
zXLU@e{vDu%^yh<N-=nd0>5r8WH}ccFa))@U{omK+DgMK^4-A<W%Sq)GM8JWhhT0{*
z>OtuTCf+A>(ksznZ*ZXl(PFR3#e!X0Q*ztxw$LCieMZ{};FPyGIfuiz|KwrF#(ogR
zY&GWdk8NRPdk7!#wTJc!8OLUAGTcX*O-w!<E|fNhNIR9L02EDSDzZ7d14?R(M9mko
zwMwk9(HJK<#8)n=vj=nl@17^=0q3Vxe9Nls+^;&jgoS~)y~P;V8@YzohkR7Zbpxd5
z?zcx7+js`7O(mmPtxtbf5lIW3!lI(#F;CFD2^tYd=3>Wq{<P{7vhIyAiYfw-#D}Ms
zmy@k0oE0V`A|IHbnB;G(Ij9n}d_NL25lvF`+a=a&qtDPpX^+NHBU6zKN7Y{bYW<6_
z_$Az-GUCzy!V&g~y0%;7di!mPrClV!ZXwh^PJ1)vu_uIzjO$Cm%MSOc=+h9I-4IZt
zpX``;eCN;BAhj#aAm^O2hC%LQo$QF9vOB;^>x}71h=Qn!<UM|4>z&jJJ7+AY;?)`M
zxkC`(bg}8xx1}qp+^_9<$&ejFL&DM>EW0-mJBaRC(wK%zjabKq%kVkEe1Hu1S+K(v
zi(!z}$ZRxj7+6?vj0JPsqjMB~w^wCXA3fr7BhAo2Onn*2r2be76hb~&#H|u&=iV+O
zB@$NMPvk{^i)36{a(U|Kx4@{_VQ~8Tlnxz|rpV!UfH`*Xo_RTe6Th!!x2Lm;yzfUY
zf-82*F*piEGTKu-_AKj+fwKRW<k=7$1RE4mz%oVhc^Y_qKXP^U+V^qQ>tI7IBlPJv
zaQra;q&L2|X7Dng4YdqQYmfAxcPw|)AzhnX;|Q2!O&aedd!b@5K#h7Efb92oVgin#
zOdPVts0nCc+ZP!4jlRhzShd>CBgu2;ed__=n0nay?q-p^K}ON=Ne-yrSoFuLL{6)4
zw9F9uzDok8ao#8{duy9Kijh|jDrMo<F>W*o03zBAryh0`6<a;=08jlEsFQtDDv@_3
z+fyFjwZVSG&!N(LuM^qN64j$^RymKM!JY^{qp)MZ!{U@qoL$F?lZcZmmK8r<&D*N1
zOTXmDLd#JDv=j55^$mDo;+PWe5tAqxZN@vR@*i!IKBF}^k(@a!R=pUgo29G<qwHrO
znXc-S-4{}aKhJRwG*nNi(?RhWYfyGtC1tPL`;>%iu}gOhCK(cPZp@F33gj1wGTAcC
zu@yTBkbzkkEox^Ma556mBlh=11A@PmZbCC0?H*alGYGdHsdB+&>VjB(QO0%xMsKRT
zWGyy-HEcm+SPhSqV4op3z#vnJA~<o3agNuNXc>5=TkPo|BMx6BeKwi%%mS>Iwly2i
zja@m!+4r^YbI)Ljzr#@GD&U(!k+n}R%_8yQoiI_X@fs|ga#M9L6ZZQ4_Vp_RUe>)-
z5P(H{c&PIcZ(*ALe&QW|pLtj}Kh*gj$>PFtDYd=tG+l+CljHojgw5w2%WU|XHo~Rm
z9k#l}hd9iRut+I5XfCl?Bc^TKJ~GQh7Kt(x41)1?g;rGUa|&-JLa?%5>=cqpguszm
z9miG^)d&6N{A-zfu%dF2ba^+u<xY>eacOm>C@+1?zqKJ12MwBY)y%ds2n@%0jQc0e
z&Kmf@|07o&COJklcb&&puIB`3=T_|tHQGwJsgdsgM;osro$ga_-qCMI&;NO)|96%B
z1$!+1EbHj1VoL}6KkM8CVJ_kB-r+`dT@^v)f0TDNK2UbaC%dP{|Nq+kkL~}xy7IGB
zLTWoQb2^^dnJfQCU0{v=mtQPm2=>bV>+?U)&#8X5xv#H8ue0|_e*d#FP5;Yp=D|hj
zh6=)2Pv@qyM<%Gw-DpDy;mne;{L$f?WXXS*c*qxTVY&2qgcaj0?7s}Y&vJF?kbJ<6
zxtkL|W&92f!DX}g2cN1w`m$@V5rsTGN$B&qqRy-S-$i+-V!626oSeM(K2cW<qJuRt
z)a5nfC)c~j=I3zl$gCt;U2SpQZ+}^-&|@K9tuQO=;D>#lzH_QuYwPG;dapD9p?>+_
z{@HHM`Fg>v>n#^w3`@23zkkrqRgDwTc`&!%=IQ30D0OJ*=+8>6Ofe0t%}xA?z?;5T
z<mm>0_H^-PJIaa8+Wqw#+PUPI>3bOvanTy;Ih$W?KYJf}{2L5%vCe!v%LqP9eSVo?
zx!tzab=ZtypI-Y%uYCR-b_NyLe-;j5_~C7|WchEcroq~Fa=*8FF|*w*dxEx-`C?mt
z!=nK$@95uyUD31Igv0aDWNK#Gl2kf>qRsJ&kAm+#+d8lK&g(>bLu&ig9yHUVV;#t)
zTF5?q^W*Y<U5js_-I)R2qCk<!*2Q77mK{?j@4P_zz}AQ5eVASCImjTojN8v35Nza-
z6IUkLl2CzrDnPlMZsw8bR31xoSm-9pEGp_TErLCgtzkV?<DIKj#h7EM6~Z_CK=n46
z%P<WwjIPXL6L-^~o%zdUUdqqRQ$`}Rka#*pELH2+XjagmK7?4|lA(TKc3claI*Y;_
z)wZtp@IZ6{@+vM`*8eN8eD&wj;!%X&w_HqSnX+8>2|?`xeN*CX#;|vzz8Nn@UHS8f
zmrk!%TT_dxGkC>!?9er>u*Kjk?+D#k<+{*epB)m3;=X2MSxgE5>J_G<qd=ko%)H_j
zivx}=CyNpm9M72GO)|+}meK|<V;sw~Ej#o-ctt!oU%*Crik9MF*&Sf=k7rrw<$~<3
zz9~%+wiQwKOpgdQD+$(`@Xs%^o;~>y``PNVNf0v!GKrGMF66^HK7A}OeUvB;7Qi0n
z2kdd&6`ar|b`u*?S6ejSUdHO%3{yaz3^0KEZTv+^yHVt}OX=mE7T*4uy}B!5mzi1^
zd`U$`n%MEOj8b~TUqrNuvGf`a?^;#n(~B5MzP{xFW_GJNiX4AfaqR(sKP5oLdKG2=
zJ*-KHbbth@UgM1Ts5@#DX;P=E$fz*UqP5z@vbmYQ*-z#9B#N19fLE7?zZJXzpTwvw
zQQpTs0*Bn6KY|D}q7XRk9c`P1aQL{;LepOB+aJQLu9ff>WRUg=qkcTZ%SD+yVPiqA
zqnF3nNKDI;GAvT@;?YE}?fmM@2{SKE`uVQ2)niO-`%l2gL4QaN*EgsxjZnzZUrK`-
zw)sc{BZKOQPQ!F|qb+N!a0sEOHnq5_bF-H=dg$PKxP*XQhK%_KmWwPvX2=+ZD363S
zy2;Q1dwrPuzCwTV4#m0UZ<|Fzp2EC`%>{{16OlO2XKr!oSCYfF;Ziiy>h~sf$P4<a
zZ>IFs84Gp2Zpq|#zbkd}hTi;FnTVmpZ~eJ1dyP&d4`~k1-$mNK@Ezf|TqIjPmw4}d
z16?5M#BBre3^us#Wx3tA_?ssduRltp>HI?RQCDrGO+{r>HwTDSBuE?&cz@BNO<Fc1
z9HE4EW-v)cCfpASKbXI4ilZj|8$|ZZP9&}%4}k1QTt}dI%DKN8uQrW_OJwRqwilUb
zSem(D+~LPVw7?Bh$dO*JdI~<G<znkKUUx5vDexh&!_f{h95dgN@C>7;(;V{Me&hV(
zlAJ-kH%I8;E|h(U)@~fQOe9c>hJH$x`^^hA1TvGD8%frwC$!=FyB|zl-yPU4wK$k8
zwZD$lHaS@=t?ddJ#yK8#*EZP;oABTkv?1f>pTg5{=GO3d-0wIPZd0GG%Z<kzo_lH3
zr;n!ZJGEnt2&kYi1G(NK8;M;*MD&~wtilbm(XJqtVu2Do1!;3M6u4N#;_)!YdfW9B
z(W)7_ZM+8Y(QaFjb)1*r4Wn`35TuUt@sK`H{X8t8Uh0E5knM+0e+;?NUo`g(kvF^e
z)VNQdILv>RqG>-d!-D0RZPh~3XKp*Q+t5A$*IFD%ykh%|kA>UqDEOo_2Z$nch=CJR
zcWv#yXe6>k0|&CW^inkT9`Zv+sh{h4Qhyc|xfWyoI(k2LOgBT(u5Xdub}TQlu@4^P
zdo7E7x|+AE&aAB^p`zpXvOoM{8ofl)2E3Q)=IEq1m_lO|?bEYg{<{jP`hD&<?48m#
zlX+Wn$p*-{FB(U6c)+v%p%{GO_Yu15Z!sa-g?N<*HEXn0tSiZUIkQW{F)MkSarhYb
z)`#UD7Q`{5$Ax*gH@;_~^uw#R3bamQ{iYk5Q3=YxHt07s`KQmlP0>W^7{6KJX;N~f
zSki}xN(3e5Yzf{tX;JATyUjtB8MK)F6#wY*{BVHRsJdyi`b5V7F)2Zo@<-AlMynsP
z70<A)a{0U6(h{cHFMYMS7Qm)<y8`c0UCQKm2g~;Jogck;>AuH7B!=oNwenqKtQ-W+
znMAbQn=wCJ_v#nWFsGojewD2rlbi-#%LI<yE<!zqcy19rUIu}AsJ7s0s0CCSnDRXE
zC5x?|$@?VIYtRqdo^vC@dB<QdRopsDu=#t2tikf^+r<hs#Q^>F<g#wD9m|cc!meKC
zQhmo1?EOx3Z7@I-t^Y*v<pZKOX~3=D@HMj2SjUA4=U@;2WeD$0?B`OGm%JaPl=m0(
zD>)%6NIpl|rvuB)N8B<*a@6P9<ajmFXFL8Em{^ac8n|h1Gd^g)3g~Vuz%5LHh%X->
zzwZTd)on8IMKMjb_aa_Rv;uJ=53-_e4}x0m8cu(OSk*On9JU|$+Fl1m+orjF<LFGb
z1Kydp!&ewgB6y<=>q<Z{YMMgV+kyNJMk*9^WEYR$7`DZaFPYliAW2I0xT}-lQg=ap
z*DH+9s|+X^jJ?G%$3*OQDrv31AwbFigWOmA+e3kuK$(9O1ra2Hx;3lo%dM|DLDN4x
z&Y3~ytAgbC>l)IJ^>T3r^hZB3@ID8dqj-%WUkdb%r0=k-cj;X~O>)>P_MrBgiyTRc
zO|F<T2N$l1s7zejb;N4mdkkypGnn(s!QyDMhNtD6EltYL&=g^$YoEk8fPvQHwkIO>
zT{mKUhNyPK_~uV9e9?oj@d1=GE`Cu6CI2^#pEC^xp=-VF`Z8PHecbU+*8r($!e%RP
zN$L|Wv&=Ow)r&whRz$ADCP%X+O`eo`F1vNjnY*qo$H#Z}Bccm~x979Y+uA?g*EJuf
zXYcv;_rUHD@*bKa(w_+`p<UvCt9N0FC>dh+X3#=x<NWf1K2!KLCD1zE_*>Su8t*Us
zQJr`B3q(*9I}w<GF})(xxanm(mZH^)SFNs^OhP*nRg3_erNRVuv@B#BqHOgO{OkU4
zrw4th<U7CVHgOD=eXv4BoUcml63(oO^0J9Yq-Y57v+~nZ3$1B7;L|U4F~=9XKx+?Y
zMFb2nB!yooEDs)gxGa9zmc8^n>;9@^D$PXwVDvl+&-v$HRg~kCx$u>l4S$@2^Fl~8
zwo@6bOn2r^F1x2#O!FPb0XQE(GLy=KV6e;~PV=hhu%A~Y$)B(eg3+d=E^Tvarj*Lc
zB-Y2}fhB+FI?%ji!;CksX7y21h(KYIA<|@d2JrU~U+X_(sU77c7~P_@R8PWtSi=^a
z1aJib3sd;a6I98mCS$~|Pge@96>iXjT$4Y#s+%&~=za|u!F{d$Q@)U&dHq3CcMq*&
z2f*dh*zjd`J7=eIhghqx^X;$6p4ch(vALp7&9<vEH-*sp0!ClN*|<HY%xLqUQ`?gJ
z!_V9!0uL$4-GcptoiSq%F{k|!&vxFCR4-e^z(Y-<CHBYRdT8=;As!J6XdvUBwkwE7
zJ!c&kt}Y3PQcmCHTDEohw`KQmxvoG10o9?cY;D@iHl9cAGx*jwsy(dgC1Dd{z<eg~
zf#5-b5D^9B7jbpsjc930g@4B9c;@2y^f$`tM!p)*7eD8v6u;1X2?iWckXLtf%k7iB
z>1vQqc=z#-n2v6vkDQ>|PgJ<uM{o@SE9}GF2Ck{>lZ0+eMyRm{Y-;mu75qO|QEM&0
zVR@S$y1(bx-Pocw1-s`o@b<&hSh?$`s??7Gf5tFa2BcQ~hN)RfDLIK@vr1^b^1Iuk
zIQX3_pYI;K8KP2F2yL;FQ+7`_2sMWWw)ao3!3)@HGb@Cj?Xk0y9%u<SH$3s7;?~f-
z<;p<uOqZ-5;a-fJFLI_k#wZ;~NoIoxIPAOrcz%h=Ft`Xut1h!1HM0K%z-HA2BEW2Z
zq<(3hXm}1mHXQBf-CTH%k2e<ZxJT1DsBM_iu>)z^GcLbU;5Y%D!BOu6G>9@cMP7FV
z9{V&=5$(||>Uo*`S7=|=`dx+}4QUrb^(9=b7w@>ydkh-C+#QHZsn59`F^L^dl#uLY
z?T*yzCv+2iDo{_0vIQr+UYsv%AbFE1_O7mG-mxR9F3BBwoC}ZhhBf?Bu?A{E5npLj
zle*C~AZRlnPg2=h`RdUyfjo~r-K)TrYt8`mjF7>&y<oc&CT;HoMZ2Hi8#@}V0ck*{
zMEySQ2qmD0ax&lWtvj4!ThrJ0bu<J8#Purrq8&{M3*po}Lvwch2{m?QW8432CnJ@>
zF8LZN_|t*3Q53T2aS_Y71INr|x^BNjPwlnVqd;%_jyKSl-b-Hx*RQ*IEw$%i-L^DD
zARhi&k1z7)Yex*$Dw#z3r@WfF-r;fM(%_=~@9B>JZB@15-{9mw@8hvMpQby&>)Tk%
zS7(`}j6xM9HGTFaffkAic+C%Zwji#(T!E1Q3fL~CxKC5kfD;OQykAqoomCc4pkTG+
z31dQm29Pba$6D-uY@T8~#4}Dg6Ez=e6!`FAu?P3%@MFEvAnF$qg>g1YzTR^pltN7H
zNS#~cjJTLDFL<rL=8d@%il0J`LE~`#(R{k%`oRf)Ih>fkp&@UR{GR@dn5Z~3=1sP4
z^Lq3A58Glf!LB9@Iy`?T0!5xjb_B)(zc-$We<|bq^!H17VOS<hf5r;Yg9GL_IwNu~
zGf`E9?@O8!CFc5iQcKQbpfeDnT1v`disBHr>2{B5wO0L>0z#=&u8kCA7mIg_$`jjQ
z7kulXVG*r!vu*OelL^sYtVd{Ja6Sd_{bgD1${{(3U#rf&wb$=bd)8}L8u!$*dibJp
zDTboPUiEasK>>j!$2>4=>8+C`=sXuq&J;O1*=-zCgLS=>f2iE_ba=yH-=sn1g1Vz1
za0?(XHqG$$1NJ1#n%20*8WdGeclWDp`s)qB1t9Ql5Ahvlz@5pAh7v%CPV<oF8{7RI
z{Au@YMW1T~ukK<>JmG_H%;3kRi&exgP{&_yeo^hDL{0nhjJPx1a@E@VpPqh{usMX-
zTZ)Jp=r_^pPLpMA<I>fVB*a-~$<UW3-0iSGMa@f0qNlI%^g$sI-{m7Z!Lf7$CMtzf
zWUyaXO>h&DgNCQ#ascXr92N1`oftqZCEw*U52EG4*h+TZOUh|V=E3MfC;+r+7=cBP
zx<-;sbYyGXLk_GIv^Ir^qdG;(K@Rf0d%*!RLwE(S9njjV03(ULC&)dENgcz0)muD#
z?=Wk)>iyx1!+N;EQXs^tGNJ}@%_ECG&zk`*c9W&f#_mUOI@-nTVHS}>vP{^`pddv=
zdVYPxgGDo0OgZ(My^tJ$uXLyekVo+cWFlk?gsASx*8mL?CwzM>LDTj+6bFG@a@3pW
zE0FpIM^Oovyn0cWTh;_vUJ>`fm^hhcy1EbuFRx57!%!@nTe#6ah8qm~VZ=GFXjGHc
z!)Mu1!9ABJs31%ngu{<N@ax*;Px!TgdHS4=boV#>>IEby1cMin!FiyhvBhou*Vlh-
zW?L{Bq$s&TdcZ@Zwq9+b#m4u9Utxgs`O?s+Ytf$GjD^Pz@&Nm3<o!zJLoMGvefU8a
z9`bxy4A+voHwjq8#Qh73X*fxvFu)@?JQb&`;8cx(5<^W$p{NmtH;Nj!AA!rC@Ub`X
z)29sE-UK4TFywym<v<pL)5dCEORBXV(M&@Li{(G6JDb|h;NwA`_ISee`1$L;&%>-D
zb$%7w2CEm#d0nydmvJ~JCuZ*rt+Ec1IvrG}21Q2PCK#X{hOC@iRl}-o_<Gp69TvHb
zf5kSjjD84T4eHh&*viKs)w#Q4l^fjde35rZ_^bn2TU|+GkV2d$Plpzm*mQ94zG7>M
zy-Zn5Po}%er8kY3?1W`KnkK<d*%@ZoG${y`+<hu-%SLe%F8O@A*5SFU`}A+&8S}$%
z_|Zx8ut&xH*&)QsPY+vw4F*H=1Jid?O??C(EcQtK8Pl&bc>nO0@myx$qL80jM6igX
z!dfs4<&`3RF&BgV@bQdK552sG+irc<IUCldrdg(WS$?xCjo!4}t7LFF9hE3L9nUy7
zP@a2ScE~1PXIh-U9x-74!aG%eR3@waU8oBem}@ArnWZ}d%tw)m3>qn6Q;1Ydh{ZS7
zyt2EnfY%Q`hzYg41oCZENK5{BbEJf?K`7X~)&BfTI2+4bO0bqyGUoC3QW|w|*6&30
zd&G0_h`(fi^hpN4@MQRDq8#=BenM^z`PmY_V&7H`D5NJO3jNHlYWoL=<l2DW_n$tF
zt+cfMoDd>}@~c_b*pB{$sRYwvL>V@8CE}t<c?TrrR}+tI$4ECPa!+OcMC^>AaKboY
zJ4F;qr!0A{JQw?B1Tm!V**$5O=8eS+Gp=UBbN$kXiQ0B%J7k-wV5wwx`V7FNS0L?4
zJR&s6j>DmIQk-|Ao-Z)#*(LVlZuv+ZM4mq}W=NKv;98C~jm3=>`)Yv8X@;8P2rgq=
z(({PY@qvRN|JYPZIlCRx2b3^lh0cPKmN=-^@Dykk_ZcV8s744j;a|<{r>RLe6@R*q
z-$|l!60DcSG4@XKhv}Ng6<;oc;E`(Rm>g3I*UWmfCF5IvMGxclD9sa04G#4`UKS^Y
zQn&Ht=kb-l&azFBW#%#d@@&FH1Tpdg`BU3L>~2^NJZ5Ue9GF;)aU8Tno0wP~UayU8
zqFlV4(7~M{jUzHVG0fC4i!~+fe(K;{T(95Hy(i47Oa7ZO55;0%tjG<TU7{ue5Rf<_
zw|XdlAwS1Y$eK|J?EV_K({fXe+UkF(R6rR_CfNwI`llchDrA*XmO!RIKxgFVs!s9^
ze<-E(FWpGXir}`qHsX?=A`!FZI|)0JOZf-v(5UBD^7-#U4UkO%^<UfOKg6XrjMy4`
zK?9tKeDNX8PYjPn9Hw!2U#b?#_a5fT$xzg>Rfd0a-wjRHQ6~<3*$_`<w%TJ%P`-_E
z%X!(6Ucn~(l2aa95$Gqe#Y`W7^rn_}dx_M{5t5^yV`j*eFl#hRX|IS6CmWInEWyk@
z*?W>?s%AE1n1S)YAfZt)n)6WjX)}GBd6}rfY5GX_<AZ!;sK#Dl!w@wc;X{ja=jPGQ
zpb(6gG+}7@#5FML)9MVy$t{tHsEg%Cgy%-4m49kre~cKF5B;7?Glu?DcxO$mRnkC=
zFr!>Mx1m~@JgvK$<h_x*B=L#m<9K_0HqAVSaFXAMaCBCLY7--9gyf)(Y3x1nfaE4c
zZF+X`zDW$MUVp%HNk2P&&L_kRis10f9PBd%=ic}iHR~Zi`wL>~tDh7-5b+WS3+j0)
z!?r)pxH>~9yw5%A1hy**Vzk4e?1%Da`!s}U1uq36Uzi$tw?V_vp9LqD26^fmDzOG6
zp@c6PZ;hUG+W5v(<up-8xD#VPjanF94K5Oysm{5))geP6_sr8M1Ww_c=T5r9Zl6Fx
zAgk{H(j430CRV@J{&^ehQg^&(E<Pk5#y%8QOe4|wY*0}m;cG3@NX&k+-#$`}3VvZh
z8G!YXBY!Y;ml(IVKQwt9>K>fYQ|gJKNhqPyNa~uDKc2ym&EFrQxgL$@y4byBRU3?x
z^^ePy^we~lJBE8z0%$#QyHV<7V+~1foAAVnCKH!wh<&Lg7;?OoxkMg?okVc3cvEM=
zTSYX+Q$o3-N@h#X{{c<QYhdh_;ubl{D-S^H(gWbo6ZBVZ2K{60Fkh5wH~-pC9%B7Q
zX5zD+M%PjKvX<P+YhCtI++}J)0Y4BX4d^deVxrk&nnrmtLNcdDMly~{_>Os?MQO(*
z-1l1%mQ6Aw9HHKG>V}d=d~~(R;zzl?QL8)kEegp_-jy6`t{S{(QZ%vl?Y4t4{--<!
z^}>D5Wsd?)R9rJL8l;3mwl&&_t<>Gj6#uclX-w*3R{nzDGB|w#nMXZBkIY61#mP>j
ziBowwMjP4}X%I=tk`t-^59ruz<(`y$ws{KKXv}34;N0hSdpDkG7cs*M*@sE~lF&x-
z`agX)cyOX9@Z@>|K789S|5(q95lcgt;^19qT!eyaPi|<M^0j-`^PswcMu*}QJW5}5
z;wU4K3En>yVuJk~%0i@32fUYx#%VaNS^ARH4QU8s#)l~y?7BIevsZeKMTly!TQ~6^
z#qU2pIx~u8jb3GOl2OmX1S`KD5&XQ$vHPp1&~oI6Ylny0X28iwdq@<Q8CX<)$tOIE
z%mS-r>@R8LxD-y6(i<t+^ij%B3yaG##Y_(xmD7Zi!Mm5|Ul|otzF3i97|bmCqSdz9
zb`%ea$u8WCE?3u1Ox=wHA0lfHgWcYTE-p%XMCD97V+Jl6r;+(!=q54Z7<)qQLkrBV
zVN8u5!eBBE6$~_KGeD8LkV9o@7NG*I0MYzsy9xP?9wG}53AJORsh5PXonnT};^QY0
zUC%k>DRhfDx~o}iel_pot!jgBiM{Z(<*!s|{i@O;KxJqb=QO88_BlL=>@84adX{<K
zHVJ-E4%ar$`5PV9rk`bmjIn*3p$|h~S~!ER+!9@!w>!OAMxu<P`1TB!!8d6^iX=j!
znz43d3TiW(0YslAGjje>Eom3?-GePIt#4n7>e?}>oyuDucT6pe(()pH=F^=<-B4*J
z%eoN_*n}JTKXGM^8M$>OnMJ7l*1m_}E>c#^{OGIWlP*$Jdz`KOJA&Uo!?*|d)yhTS
z<-FVJPW>?yMcpP$Az$?CJ7$@<9>ZThzu*RUZ71j8vvK5hJUXhwKRYu8Dz0RmBzCM)
z_3R-XGcg^>)}auf;ahZa|5n9cMjCNmxE~q%yS7Ta$P<-_)sep}%mcrAl~nrQVKv@t
zC(Ls{MV<nFIb%wSN2C}PTn%L=`0|ME5R($?w$ouG6KM<`UYaq#AYsMaEZ=K+nlPC@
zNoP6kc>UZUTt{>jO@Vs~ymCIR`y|~|^UcU3TV`FYHQA-<flj3OUo7Ic=G{w${J+Yt
zWT-niTv-cDkw)ds$`&zNS~Ip+h8;_Fih=k{6bx10RH@0VH^*yTp&n%+5_wl8Jc;Q(
z>W~Hd*j-Q+>WK0+*<<bpTI^R=%6#~LQha+_rpy`hvy5qs{c^;@L?BL@INZM2aax8R
zU<o{yD^uo_jFA~Lq~vzza7plL>Sj>2iZtJv4z_CY{+*t+Ljmw-zxH!g+fCHWCo(cu
z`jO9DlYpm2nD>}iJ$mz=>TH%$RZNskCx+{IC9}oqFoKrRPsz3;$%)O)zNie4-Hv5A
z9yj87C~Xa;+~!v6CFCzB5mNv#{f7ncLAopYEiIakJS;g0Q80+y`=DZ3?SR{5-_VFN
zAmOJRev0Z2tbSv=?=WK64&=(vZH8xN$HeuA)M2em4}hnRH;3PCcFPPe4`~F*VJs3*
zmY--H1i_YKQvC(B<nAl&bphLxbJ#|IQ8X@$*f<Nh_(q2*6q(<XG1+txyhX~3c8EG+
zrf1rbC?lkLs#jZ+({&`>rJM>p*!axvRM+jm*UI%9{0(VBjy6s;Q7HKiok)fL(>FUM
zvjOm-FC=_ej)L6rTg0Av4^8?zpfPC}2{bqxYmhfum{cK|OrwH~Y1elZD5VTb0_Wfu
zPE7YvapnaB#>%(uTj5m6$Jv7ONb#uSZekgymrjjLBICMB0)Az#;6~<NV#wDL_s8$l
zJ;e)H;q>sh4IqfVrpF^X<7-bJHXQ!glAT*?5h;A7iX|Sag{Pe;98g}(Pi>}G5g|b7
zYZ!TkO4xW~>?cQBmU1=xmJ%hI%`GmKp+aq+R06sRmhXXd1h7ZN17b1sUa{ip>L#HG
z*JQYlWaX@?9%{&Ig*!^v1^cYci|b};DtQCnFv<GLAqg`-;0}-jm(&xWyO}pra!vhQ
z7M-=0M8!KWe=ZatBY}I0yJRXT+sfNB+oVQ*yge!BL3+{s(URe=w$Sg!8oH$+iV6MQ
zuKQtWmVbX7aP;V3^R&WB<814t8ZHkMs&TQtP&`*THEj3z83>#|ar!vR6Pj7M<c?-r
z|2DQ#Ia>am7k3x2VScwO(MoDGcR`10Ehpqgi-3yeLg{-3FF=gWiy#^tG3=OpU+&%P
z!A?r+I6-P9ir+9dCRc8be+?r$CI)0~uG3~p8s+oO8v$!}hq>iz*0q|s%b^UA-mCG(
z`e{!NG`A{GEBs`&R>3XS+sM4M)kY=E^=)PL`hnXI=Nnymq%$jvM8=YoJT(tXdLPeU
zA7ts{N3&jzT1mVAx?0%z(FKIF>{G_LR9+&L*4(4~N{W4%J7&_z%$jVHSG4QrX7V^S
zx?(onD%U`8TyUk7A<r2oey1o&$fU&`n<oga<0qvgWeWX%Js`utZJB5)TaJINrnT@x
zZ+T}(!Y*zsZNuM@IT9FN_mn$Q0vql-bVzncp>s2Q1H2C7sm=*2jK*2Xlb%bJ*b{kX
z7|F{nyH%0!=kHGU6o7e5)R-IBbDymZ`+OZlH{Xve7SEhIGD=1~+Hkewn^lR$pl+=o
z<D^OK#aqq*>|t(=6IX4>HDqZmz6=9h2M`g^NfN(-7c)>qM`3{yT<BlKVrWg$r9uvw
zC8<DZb1jHc&0lo%3GsVc00FfhX)pe0CN+Vuh82^l=#{}565(rBMEY9ANZOJ<Bj03q
zrlwZS-o|ti`7TU!#;{}B>bRcAt^^!G$ise4e!D$)YTzB^X>v0!jl3rT`d{F2dS&93
z=`C``tJ!98NFiXWU^gf1pkhD{I(#`>FSR>)7kRVce-m0WE%{Vr;4VQv-l(d^iijUK
z^kd<V3hpdCN$2d~aA7gBp@i1-4dE4{l)0D3QEP8E8od23cov>Vm3T;)N-<Wo3*<`n
z`I){vO0g85eA;1!MkTig_ApFqPe}#t;vKdw!AlxcpVesR#eFvqwyrD{Ky;S&lg1Iw
z4>Df#&gc<%5AWqP(-}y9RB8H(mao$jZ+|8Gobd@=v`LF7>io)gLFmI(7vR?jGK(yU
zV;X2r;K_5Vgg-iXK23@shH2)f3bB&9)qPmov4JUPGe>OP!NiqPMe~fY3t<R$X^o-$
zh3aiMQ=Lp_%sKZbb}enb7EiI&gcp-$`Mwsa#2n?vuH+k3YpN7Z)$`cm$a#7sknWO4
zRM?eJ8`A3}%rwiA^-@R`!6&=#b#I0!y#{GIBIF3}&g00>g#N_0=u*9vE|(VB6)=bE
zY<Q<n%s4o@*-S*FH+j<^OA({n>5cc)ztCzUwSEZoP?l5rBTxGv1H0x#vao_gNQ?Q_
zgfK~VWT+or>RWu#TJ4K2`dN8bq}VB_1UMCw9p8Y1xjS}1DZNMMAt3h6;n|MZsedZG
zuT?QCB^ak9U!~-O3|R)#-_5_qMq@v1vC}=Z2!?88?zsArh>ZJjW=o7wNcWv2N|V6V
z#-6z&nrh6fLq$s`w6u0OMhL#e$o~0`wgEJpY^fL~r#~+kp8h_Fg%8wCPtg)=P*Z+(
zt3`pA9+WKWmXTGuE_SnZ*XV;?G{kRGbLdxg2c=4`?^g9MCMD;{m(AOT<XqVsRk%w$
zmY4<nK7ynDNXJO*;6fU0Um2Nu_8Argc(iCb{EKsbcz!_vZ$>cf*et&u+Qg&WLt*^m
zf06f%?Ugp&w%r|@9XsiyV{?TayJOq7)v;|`9ou$R%oW?Vlau#-_Sx6j_y^}>eY&r^
z=BP1IHOE{G3)ZJ_HNO7Ym|?Y*{Cd3M6hkb6U#9C^h{R00(u56QAbG)-#%5zjA~!TP
zrBTvgtIl~e1<AWn@>>_oersij<TH}&0ZW-%QhVwS_rX@WUQF37c`3_ei*=bK+!w7O
zg}i%`^HR3*=bM>-7CjY%YnRh8cY*@lWUD@@V@OrRHYLFTL%F(lL68zS?aA&#s%q`!
z85x~1$<$CCOv2Z8?@~HDwbp;fE)BR}XWL;tyy!!Uc`rUN<qfZ6k&Nu8EwKJ-Gs>D;
zUJ7O?iU>rwG7|Sd$HiwK!gw;{fka@83k=RTFBmYo`?Gg<p(%`VjPh0+yhGukoiEU@
z|8n)`o;oIEMw!i=UC|739p>6Zi9kQxD7@|B*65n|(*Q4SWi)ua)d%ZNs$-dVMqg0P
zhAle(#xEN)YF;UL8Q~phdb?(3*~~QCE><2oyaA~DwAK%3(2|Pvm8_;T^`UHqX+?$2
zXfTh2!a7ZiAUqqqt37`reJwsG#<OFl?eW@=ECW^@hsQ{0%Bl4y&l}M&zs^1%U59c-
zJyy~xtr?m_C%YH7Yr3^g5E#sI`m6&i-KzeE&QWnvRJu+cQ}hk(rNY;@H@vslR~!_2
zr%~wd@9J~&0z6meuQ1xt)pHGK;}Gjfh{T(3f58{YKpN~v^^WgP^xhSj1_|J&53{9b
zl@1i`R2oPFJ5rwLu5Uy)`#h^7LOAK|>7(HjaZAJ6_p+9_RJ?dpXTNPLOwaPLHs0s4
zxGZ)puRByhyI0}%nbWq*<WSP^^*gzd<GNJUhGR&+3t@Z?+kU>@?yzVhgJ+rh?pq{L
zbyalpJ0j4CRqGhWN$hT<P$eIQAtysUuOI5kB#j2Jdh`9_Rs%RT@0CPx1La<Alwuhz
zw*d8eaw~M#n;0lDWM9BtiLZiFRPi+PfR@eNLbg%)W*0bdxonPOtT`IQ<@YL)>F8!X
zEF6Syma<h&Yim@zSB?UXCND?lM#wpa*GI$G9kp_iVh>JPw7uCATLPAu^aj`uYK)ru
z3@{&LtieZf0=NZ(s0jLh-O%q*bHO2P2ZYzN5|Mj5{tX}dc9YwpY-w>;KO0IDq@Oxa
zm_6$QyEPj6zAX7wcG~QkR7BkxQ8Kt<G%XQ<lrVxiU0KbEYVT}@LU5gVl15|u*m07l
z%o5&!RvCZpb^f}DJHvI<-#d+O#*BA_(3G?zq77zrya>dinrceOm^lvI-Y<!lPnqad
zpZ%@}M06_&qw<J^9taJg=_D6SM>U%!lu=&1hD9Pa5+r}e8LToWfiklV?iveTr$rEH
zLyi-{frN?>*^EagfsOta-YD*{t$&mVF`-}Vu-OW$aX0xzFX%X68d6MuVf#3rN~vO+
zALqH~yKUW1`I5h;x4C$hn@s$8D3v69{wS4h5QijU9V|{L#%^V#zG+3He*<;;B=#1<
zied9%<MyJD3_%L0<KaPa%3Px|>oKZS$*$Yl4rQ6<X2W&uj7fd`H-BA!+Uy;T2FJ99
z5t|8MB$4d^PO+<|v3`3`(FrK-rM}tV<O{?Mq8)`S|D>~2d_v8MA5_0qh|gpy)l@rB
zGMsy5hyvEJQDJjghA^)=8Wm;=R8-^0I{CGhW?B}N`kA`>L5r8k)a>R{Q?CP0R7WL8
zVa=EY)m=2rwnxLl`Npw##@Eegifz=^eR18)pcH_03!BpPlKP+!HCp-tCAAD41ciC1
z{a-r(f;709mL&{=RYt5W7U}b^y(jd94Jmtll4CO-66Bp-gd5fUmT)HXEzyaQm@^4p
zHBm;8!7O2$@;uF8@9H8;J@~GOahq{uG#luFxSa+bAFmby7mEaAc^7teZhC)`sL>3c
zPyq8^MFoZCp~;9UUzzt37zXE)`I@(Q9rF6*asDE72Tm(B^~AeDAbhGYh)BRMio#&J
z5AS4*hK0-(N-1yi!!F3>CM44sk!RiJu2NwtR$${#Mpb{`AWsh`Z5XaRy40Rsd@Y?*
zrx;06O1o15;1(Ept1Y_yK%B!r7AFUPV=8_gH9;s(^6xLq9#r6!Am`X_EGl!SH{-{6
z2DssMrM;$M26qH0V1`gg`rOOtj@p{ICn$|#Kg|4srQ3z0u#W{~p-i~=9)ryq8_q)w
z{C0|;K2+UzWOiC6BQTm=j~&&KPvB-GxGLFG=sVPLn2=o=#8IXr*eg6Ye>cBEd`F~#
z>$ht)07#VnbWyT74q@S=vw<gqoD(O>+Y?*OkXaB;Y@a(!t$OyPA}o$BD4W-?C-#cO
z1uhL>X2#t%@N#Hvej!@{m|gddM!Z$y3}K&tEBMo?>*f73e)sG3Z?6JxLpjQ52m8t0
zGAG24oL+O!Lj4q=zdkf~_pDQh){rt;jAKtU)|U$jMJ7NW)Ohupu6^SlM5{1i1=9z1
zI(DmvsI;5_Urq1Ko=_nr<>@^tFI8^IOKqxbAv?Rj*amnW=wSzIiKBUlt~wZl(~9c)
z#cJ3so{X?}zwmEl;F0;LT@cD-HT!TO<MF(mxCS3-(70l=Rkp<OOZ8|}{ru|t6J&t?
z9AF-9${pqjYW9d34IiRb&XpnufAoS9*u86x?uj&KRk3vWGi%MdN|gBmsQ2_b`uT!=
z%b@(A!f{#Lt5lJR$Lsb53X<C6p;mqk#HwCpQaaJhN*1Zjs*DP~FVk1@5sEm<Z^tAr
zXlQ53z!6>_AY|wt9uk2~YK3fnm{O-rR(OvDPpd6;8Fb8|8ixCFZxdEs%lCiREUT47
ztb5MS_|7+|$Qf&sN8Wl|peQkv?xqrfV`Lx&Bj`TCiNDq0Tm_;;01D0OHIwAK%8{dh
zaY%ZnSSMljU~6&Q8>L$6`pYEmmse#<vj?E<L_^77wdf&rkT+faW-T>1=slq<1-pc@
zn#asI&O%>~2)B>X?154d&&NTVgmBo{-r#X5X!#i53EX1+>MXu%MeSPVjZwV;MNQcp
zsFV8BvHMF(kE(1n*UvFK5Jew445TZDf974Nm(Sz(;6W(}iircvhV*6#6W1?7zVZ-?
zX3Xmd^l;+ee=(0KF@#-YX%Q=MH*v>Pso~}a@t12#{eou<4GkXq`HTD7A>U2{hVZct
zwX`fT;*YFsY4xtK+U+QV6*^Y79hQ##;CDnjp?mmpDju_1GDS)hNgOsmQSG}rzftqX
zE-EB>)WWJ{@uA8?!3gGnzm^cp!{Tn}2D=b$_TT5fHxH7d9kQfQT5pm^uzn=y6~WSk
zGG3X<xOPXI{Uq2ecC*co9qmHY(5L#2gW`*AbJbOx0AxL!tuHY43>eMl7{={|v8G|&
z%|!4YhI=0)G`pk$5qCR@QP$B>kPz$&;<50deq~&ROFa#scoa8Du1{SzTi4>&Oij}L
zWzCwU&byoX#C)@vYZQ_ZQl2m{kelVFoq+f-e@j$G6Dy>7R2Z|dni(&59dwvR^;ANX
zP)rVYm79+@)|chVnQ0G-mC+aTPUvK;JkH+iWr{N_<@0R;_@qAxZmBcltx|HMDpnMt
z4W(ou45e?L8ykclN=-ZW&$vhn(Z42oZVrk6R7&XdYn$N&3H^E!;I^3Px44puhoh?{
z^c?wM^|`TO_oIWWxT@-?r>qvFZ3{llz;`-J=#vMgxaaOkTdQaNMG8}r=C?}b7d-7&
z?}ZRO2A40?iPQ`*(28jcYZtae{Y}TQN_GEyIOBY$cvxGXKmtS}1gH7>EfIJtJ@{6)
zBB9$N?)%6AZTCI4el-*yn8y4&VeKfbul_G4Rm`r+O-^8Mnm|jBz*TO^=0UY0{x}JM
zpxv11H(hY@rrM8+WHr)5yeLv4uw;t6cu(U@;m}CkQ3$3^VUvTBNwv&rXKA-#9$dn?
z7MiAAcy9Esw36JCauzKpV2gSVXA;uT*CV@NE2)m5SfQ_KWWi<B`KgZLE3A<@j+Gfl
zP$RJ=^^q|V?YO{T-%HV8qk+wxn2rl0%E_&n7IJv%wn=BMZ9@#tKZ!S!1*u8AS7?e4
zQZaecm?^^$j+LHFMt<x&3pcv(cllk7k)xsw>>jelduO*X^%LTmUyw$nwG(7_s37cb
zp+KjgO&<1O=Spn6B}wEK9DPy*E0tqlCAkGFVV*}CpVbO@E){ifhyE9B1S`qJa`&C(
z`frFP>KNrrZFzg-h+OC{H2yjrPO+2;a*0KlDDj0%CPt+2_z1lq$56vm*Xzy#no1-4
z`gUVP=yr&=R^a%c4?uZgsBhz_GC!B7QuFZOTBFK9Ub}mQGbg9ESJ3MT$XANcJnJ0O
zy7}1Bj3XE5*h;Y%&>o*8v%c6oQ6L#0DlZ7g^Rl*$ZH^eaRV1nCb0-|+u*wE4g9rEH
z1!#0wQ-K~6Dbi4n+1=e9)4ubvSD3|6XCq`ikst6tf$-MG9&$1lG<Kt|kYCY8jPQLf
z9okch3Lut)Zm*=4LQu@UQ$DveQ<X{9eN%Utbj4e+do|bNgy%0Tq8?ep)x0i5ae#T6
z7_A^loMm?@jH=UoB0x2(HK`~YRav1w{sv4^k+1!d={?5~Y{H7L4#3}3+FqEq;RU=A
zpM5G2$N2e3X{^9W>+HokgV{sdj0XOkb2+Z;oV^Sm9rY=3VBa>8p;L8WRAE|WEfzxp
zyOIr`e1frmDFR{iB4?`N+Pc~PQ4;Eg@sFD!2o0?04Zw<#DjGGm2Q+@|>9V@hN7L6R
z78b4t!D`~+^q$L<^O{=?f@m#7&BNM6$95+KW+5@`;2>E!OMn#ucQW&OIl0Rv0{+O#
z-Wbr8KT%i9@~W%rdy<RFmZzr3oU*@7WBpXEsaNg(O|wc($X(|uH@vL+S6?ju+o#B(
z=69jl;_Kg7c4DEhN4x%-&$W6vRMDfNsj1{{Otg_ZyT#gJ*(W(h`0C<*!vs0;qa&}x
zJko+jB!EPb>Cz7LP3qFvD5m+tRHL)%`Om3pgsJR>6fOl66I!f3yT3iKO%Ig!erwi>
zdESJhNInVUfpe@slYAlE4YkAP8?5LW+Nn5`J_3I`*xm*5GOW()7Wb#&#>Tt<sjVE%
z2%NT=l+W88>)P4G!FTP+ew2?c6xiaybK=LlE1i%AsssrmXvEdZDTsP403wTPW1A2~
z|F|SYn^TF&I{v^--OWMaecQn@_Iz-t!RrktgX-@+f;A}3Qb4SoLp5>>lOJ`E-iORI
zFzkso0zP6}-zGldoL^JQ_GTUNf17e(0B?|vqlJj)s5ihW!?|*jWU=14Dp2bvT%lP*
z-vYD|^@QvYAj(meDvq@BA2l=POw?o=mWrurO-p)OWJgs&di{7EO3t(yQ(>PMW+qi2
zHwQ!XSeRA+wk+@iQV4@dyjbFH0|CqIc(?pXW#qff^TKg_xXKV=O9361rdF_|s&8Q9
zkLGWa>ReI+Zoi#j^j?B|<{xvMOMmD8ZT<5al)@Ua{fNsUxJ^x+_0pk6dj}Rg8$jwP
zKAW?8XQrrtw(*x&4l|_Yw*_zEkL1@sbDX@ST?uuA^AN{MeIe99f7Kntt9s2#qAMl3
zV`Bt`YsK{hEiz$GT0R6cpM;uv3d58U)XR9*h(CPw{GcvIKydOc)4tlMw(xxIn5!hd
z0Etwzs~CB=`ra^!SaTm(z^>?1nbU9Ke4#uFwR&?kFv%GOM6Ty}p=)|xsj8s(>mL=c
zrLNRSgZA}v6g+`hOpN`3jFpX)X~tZQoJ-^0m#b^jm`Q$ZUG9*^ceXTDB1opl)w-87
z54XWI#N#oLI3$Uj2a_~Clt`;FP(1zB!&xKQx0{%TD%?tLDsNj#(mLnGBfHy+)12-u
z6{8WKra+J|L$^|Me=xVa%u4rvCmfI;uWuD#pKA&WU?}39I?@QzdyMCeOUj)^R9TQH
z<5qmwB;~GukCAaJrHkjS=X&It=28w_akvUw9Xa$Eq~WAtq)q<?kttVO@N-oCyf8o7
zE3Z6xPPp*|6%nVn?@m%2Y+`0Mcgy98f@i3kHMu#O7^qYgIc`?mL2qgEL?R{5x``EO
zm+8&1Hu_2?J9`(#rBF;tw${gbDfn||ljKV5v(eaBC9~^LP2|LJVw!3plA9TwX?@ml
zx{y``U<*qPnB-}C=sqTM+ad#KS{J&mpW%M>oP8T<837-S;u7f4)##%JEKgOKx5R#t
zxs7F?b?j+yiy)l{G>Jan-iF(7$0<r3aAL`ezn#=n>JsWw;)T3A({hS3!KhLf{R^%}
zkYnL#lUFR)o0Q^l;)i*A=KpjhZ84P8MKxO3aahDh>sL5F8Z*>L2)eS1lZ0<=ToQ1E
z=5I^bMBWp}+NN3E|B*><8N`)yuM`$<{QAy|b>%i|HwWuE6X$R4iJ5;USe)Z$CHSe<
zcROD|8=p<(>7rM@Ns1r>kpBV$TUP16Kit4LxvXIt>}an^RJX~+dpVoTX_i8w6q?Dt
zPC_;dv3G#uSx6juk}%>WomsfUKT)d!{%WX*xkZQYAa9S4dBzY=Z={>|w=n|+b%=XY
z<cKw45bcXbKDfhcL$2bCI!#e>q0-IRd4}fQS5|i~@i=4SVtnTzjT<G|BN3aEw|ke#
z<oqO5ox#eC`(3R`Q9y*}(ak`HkIEukCyOQ_Z@R~!30?1?A!81*fMc)`1h(Nl9X0*Y
zrQ`t``k$a@!Qwqxn#UPT!e^3<hvS5x&fVVjqfF;t!~UJSrTAFI3K3h|aq-9H`Eu*(
zai|)m;`wIzSAN{>Rg=NI7Mf~X0^w+gb57EwK^HgdgF{nPNnj3Qxk+k?$=r!m@u}_g
zQBz&y^lw_;7JD)}t?C`qCPkz~q)|o3wzIZHVLrc5Q;fE#>N;!_QX`VSm?y|8bR7|#
zu>?|PK<e030b++OTm7>OzTz-WV1Hg%*h1j~Xn7vvMf`stT1Sid?K*0*Z&e+0In!b@
zQWG|ZM2J=G4JaPYMY|kN0<J6Is(PihY~LeqamsQHac1;d=enrMBD!vpb@k+TCWro(
zhd>Jj{@Okz*1;h6FD4TNr#XX-kJ72~9)N-zrzSi0_VJUj6^J=toKio>@qKcZV}26K
zO4C6|hL_EqyiQ*$TMZ$dWWG}A!lA#e$`|AgPOj$v2`mjm8QIeGEOfeBo7a<&*e#@j
zgXAz&{8{?>tUNlm&MsG)4@`2;{o0O63CKwu{+G|F!r*vUu`11z1e4n$Wl`9kn~X<g
zUoF+pFp7Tm@6h1dNkdW=E_YSoHiOYCPG%5uc@hDyDLfdho9-EPmu5!am?CTG7{{a4
zeBZ`c2>(FP<has|bqb_-M3h?xfzqyYT%x$rlDQGOEbFmWAq?TtnCox{R_&o~uTCP?
zR%&*7LsGRA6GFK3jH0IfMjk+$RUM1hrrivBgJB;t{3q@)56*?B`4uPft>a1H0MEu#
zl1^-Hx#h0gCf*%(YroO0rasPPbiJxQ7c0lNm!ULIcIEDHibIrzO^(Rcw|!09XC)Q_
z0#-;NL4t$lOP_t5o>@ZZZ%+m~-m|{_H+K6J-;%)>?GATZ%ZjyKk9Oy}De_8={4^CA
ze&7wWqU=fkD0)I%@jFAS`$LHD+TVse$bR-^k@sq>KH-2(uO+0y)(R#~aO|&WAf74X
zcre4nU|(BLkLm{mc|RS{$>qJ082VzzKwQm(whj(48C%SgbGF+Kp@rGh6sws-UsJ%`
zMD-Xh6W^`>yFa8f$9bk*-$a+k5x`%|cz-0uEVQgG3_c<r0;RlF#{bz|9bIBq>1UwK
z7jP6#CKqtE2#QD!zct8>g%!?snKUQ{`Fm6>3M{&s_}Bg*Zv*u(IXm>E;m?U|A-5+8
znEK?C*j^$E^unxoj`OD`Ze_(g9g>19Vp&IR#j*T4S!m?0bA@WslF(v1+kZV{x<5PO
zZ$d|)o_a55qLM6f>*=NjmM>W0EhYU`=dpAL?S--Bi!<`o=dv<v-V%pn!tzctQI)`Q
zJ&>vn#I)9C?TkaQ2eS|B<PV8{^T3Zm_5PfJmobL&)BQrB<f9+7>E%(VhteliDD@#3
zL#hB59M|>@W<(GnUcKY@mbp_&4e$Ih6{GIk5dHOuCJ$SG0&{52A+G7lH19g^!u)(a
z_i2A=y5+PwoP`uFPRp_)tQdYh^g%62H3KE@bYGc6MyTA#6*aqS5Rqn~5UGGzB7d*2
zUxba}!zw*ah6{lPkdX8Jz10QW4^8KOwj=mC<_H=*y33IH_3;7ZT;*wL@{v2?_1>I3
z+2)IIo9_phxmj#X)c6RgJFk64C2h7$Gib-WgyEnYonzC)v1(trx=Y!fYNou8*5@-x
zr*v!>-6VN291)r(JM0gF@H|EXN^&k~WTi3fq(2u_%}vi(ZYyVOXLQg{)hLOshjcAv
zgfz{Mrxtg)f^&Z(@C6gyObv`@_pbaH)!FZTW!|o)&Ki?VsoXZd4OYps+8N`($tu?}
z=xXM|I)9CE4Dml{X3>stxVJzF3WqTw1VD4RQf9#;JAe3--vZ?ZJSooK2H7MwbnE-X
zI={4?PDj+%@zptGzNAe{ai!3uwsd=RRA>dFao3$YiIj0pyPkI@S+n-d_QyE4(9u#v
zla}!)knff0(IJQ)Ww`|!!ni-^wKl|^fOdcG+at($KXDv>c+uH$(;{47!bX()V1|W#
zgBzXTN78Mo(OmUNk>#p`CWOhC<q1qGzFDJ2*j8>a_RP?3<-n<QCw?s|K5$jsDU+Ia
z-OetQmlZT#Vz#Nt=1VSU<V=Rd6>(3y$lEB_vTV}FxIIgO(6k&4jl7YA@YjOH9D>*~
zETyQLe<oR9V){MDn%g%&ezl{9b=mUH8$KxM)IvzePjO4f^PDTb)aZHxB(!Y1a6^;M
z=Qza=53PpsLs0k%Scg?D4)zD=r<$1<QnIb;66MHK`64!7Z6dO1+C~iVaUo(|`bI0X
z1=)V_8eyS5V?ufOGEE#dIOE~|LqIW@!>j!U`X8eSM)T_~lP`F&6Rwb6%{<+ZL2HmW
zYI6<(ojYbC=0gNc`|Cv1Av+j>iUb7gXn^VpLM!iF1gIYNTn$)3PkY@tsdF4QT562+
zq{Owutm9)=&PePRo_PJ~-DSP{n-2c0%Buso-n6Pp9`6j%IgbOB%g+xZ!h8#*)yuP|
zqDi6{M{o2-Y;a7wimEju7@`PWnibMX@32J_x&G2xuNph@(<C@p^=m)&UC0*1twSA5
zm#1hM<>u)a^dO+ODetWnqAcF~kCWnu)%$r_`m|^3LdCS{LmgFcfhJEpClNB<Lv5SD
z1mDH}AAZ~ZA1sL<E{JjjY%|%4be4U^ixbh7?FoZT^=yZ#N|#7&J{)v?)=3&`w2`Vt
z_A?PyN6d^#Fb(*f;NGT}Q@E0Ls#-7<7PXAwD;mgfu{9Sa`imi@Q(Z8U@wIXi;*`vn
zb>x-k5PN4x8iQWH2);)D5#3}A`{PWrxN*hvGGs$1l>!A6zxu$iA9q8n)7RtXO%G`7
z*t*GP*uS!mL8NU2jr?Wh9v-D~G@iBBr`q|UklI~_c;SbfKgki_Cj^2@lS-_%Nr>(7
zf31TgoKoq&f$DL!ceA~6=hJ<`nitNtitf%8=}yyr3ADxLbwdv(F6z{<lbNmj;lCe+
z)?^?(`FF$V!qmDa_d#^0kAOJx=9fz`WptFm5umjducconC0c5>7BRwX+rgG${b+Kh
zbh~I(XaxnxzMT<I2>SK@V(j{Qz6rK54JNTMpAtWqdOyhUvHNd}?nm(Ra@`dBcAR_{
z_~C|Gep9R`QW(m-%l$-T*4t>Ffr4(2D5SiR1B4K4^PB8UgdCDuR!0`(F+UhCWG%d+
zWUe)%5FuWXKB(ca%fe@IJmm;8)5p3$1dS*nCV%8>mEW)RyEf^t6c)Z;W^g9wL~s5B
zBzRvw#7_3BzzR{X8dUhsPFC$&ntq(JFU$v`1;OcA==jQP^J*HjlFLUu_c-3IJ>fxs
zLFehKy@>CbH2r<wvu)$|u3==*_IO=F$*elC{cF6@q70s!s@;xPdN$q;kayhv1F;a_
zOp8tr2=Jbi(H#d<{;2l`uI{<6uDb1N`KYo@c`H0baZj*EW%+h&n&f>2w7Qv@$adBh
zLKTm)rot}FK^nt`2TITaF#}CMM5b-dhLW-wPpMj=&=lDR&#oeiI^Nbd8&u950%O>h
zk%Z0M2|m%o|K0b-Px~DE<LN<E=W%gwv^&|s?mdEIER_;(l@Yr>PYak1eGpy?{E^9e
zRI!DD&*X{LVC<5gn7=hKsZ;PHLoYxugoBIH5vyjG*b%0)M>6fX<8HI{`wkdiMh5)G
z+Woui`0>hL^Z~#pQoBhvQ8-+|$-_RiBzNhUwO7IYaf8^53q`n+wx){M&~7XkZ7n~{
zszkB=44fvc0^z=rcGz>EO>*=QniSJq*o7$k={O4%b`6%okp3Og9BKi#j@s47TTU2Y
zkVrU4sLFQ`|0s<0vGZ@U-TQZ2D9iGij_rQ;h|?m~W*D?#&35;)V3_I}V_DkMQvm8Q
zfB;jH!cc5jfw_Dz2KW?=fnKJQ&MBdeyYIhF4pBOEM%hx&N8DPY*_Vq+x3hUZ{g0qu
z_d;8;C5xobb@0!qi4f^%?8yt3GKtS8uN|w><)%XjvP${5Je<z^9AKpQT#hrpCh~Up
zO!N!~A?oN`j5F3pj&PQyLZDlBy#X9=Of^RbI}?SAO&up_kJX>v_h09^oAlC_WD19d
zvPghKk3kF=DVHM6gd4qXtX^ynX2IqhxouDwKIQ6i`DYuik!PTSw)Rv@CgOmf7DHax
zYP`tEEqTPHvG;Ju-VHxPI=vMTyuH6KZ6|rYqDt)JM2FKw{hodi#hdYTW9Ig6mwE(k
z%eIb{`g7ZGy5lkZ=Ha;bCgc4y^8P5~(d1wB5<^toaq!pF3534Ff&}J)n^c=Trn^{@
zdZ=y)>oqPWIOf1OtOo+dxp02ZsykY}L&Vfef*^DsT6dyLoLh1Vx5zCUPe`tJ$bLaC
zf6=O5t3rss#VuNU=W<zkR`d4PoW1P&kN>tkME-gAaCe|g_oAyyjrpm=m1b-4+~)k*
z=f!*1vbQn;O2Lhq=$5}P-WiLVwXcvqtFTCJgtP;Jui(Xh_8Zv@C~s!(FQ+x1IE<1X
zkque}*FfDWTSh*cbxzrLxV<bkwnhizagFd${Ck@jd{FoShnfGt@)lY%{D$>>rSa4N
z<oPZ#(Rf%Y$m!7UU)GrQyrSf<<u#sZMyC}}7(>f}!jZAeXgX6`YsO=rN)s(4D!rZH
z9Gzax$>cURtlJoP^7AScz-%me@10)v;a7Oi$GG3DB~V2J<h#Yb!uv$gzgatmq`LGW
zQQBgB&VCl1AjnI0s8GBWL+4jdeJggKeA(CXEQ#J>8Ks%cb&e9tfmBDZlqN!G_r=ew
z#zzd|dh9b8`WoHME!vHHcGLc+-Ic&MFrpjtT*tX!WNC5}J<6c4rY8a@r0{Vv(R!6|
zBKva3$Ri%^g`wP`1AX$!BGum1=Q_C)Z*v)kwr|vlPcc%=uvs%Wa|$b6%PQTg6Wp>X
zT2%b@@L93aC*IjHdickc|AWte@!~1cSDX3^Bx1tz&joh@G-zErgRVYz4Rj6bIsSG?
zCf&SYM^!7HEp7|?O_1b`W67LI=lLza%5c4-v)m(?K)#0C;Xf$hU*7uPzw-}6{C~XM
ztnvHPz*gP%Zq%}NbyOIg$o=BUdyfoF=%IGcdH+ARi2wl_TtHV^m%wIwRK@Be5x;H(
z4dHER$_*#F+f(3Q&?qEp$NP`d^^Z6E2R9igKZO%{4SM0EaJ)=)g4)JLA9UQ>u^(?!
z*KM<z$9Q{5L%RLgm(Lm}8$r3$(eB`kx8ffE(@4?C-=1u*lnsg_U`};<T|cVNUVeLY
z{M0W;@;Zl}{Wx00#nrZue?d1`-!WM^5x9Q1!SRKtDtF$E=P5GvHrBss*PYf`<HN02
zvooR`w+!Kl{P$t}F9@hs0iS9@90#dJ!xY;W8C}uc)=_)>;1&AnY-nh=w45(pxg=ER
zAp;BKd##5_bNa=^kj+Z&)pq2)Q-b|m+!q;{Z8fub5pzo=&MOm**t+g`L5w<3cLmM8
z3r*vhzvj(s^X&3HvY{#M=Z9a;O9Rp=0&Ck%c2X*bPXMJz69lympoX36;^N;v<-efx
zl<=#?1!YQXC7-z8W|e=pBW}7U9lUxcdVQ0@$g|*1k;rpYr1WD;H>fzB2<pYN7zWrS
z5sB?LO<<PC_6TX+6|8m_-D{vGjru}ZbWrs^C%ZY1eC2XO=nG*}kEY-Dl1(8ekRHL>
zG|sYP4aK)^H1jBB;NLaWnrcNZ_D*u>Haq-EPe7mh-?vQnog^mW)RX#oi?Bz}_LycO
zu&#%7fW_VECQmpWsbM$%Q^fa1?-`%WKI{@vw|K=4>#S?Y39SA4MTQAM8C-Is+F(P7
zcaD^y3wi1X85CvwT0_}*)R|^bA!DGwA#2&8R53^GOY^qrRlv;Sl-Xeak5H_XcqvrR
zjr$KE4xR6THwM6UkCOrP@g4FdTEKzrz0;%>YS1__hT{5vLfBa74<rlxeUmg&zy8yW
zgWNSMpwZ&#w%XsV(OE;1_^+lKGYG$ldm?9t?Y`gbbPuQe0rEvV=W6{EO8!jCEk1=T
zb1tn`uwACJmnuhx-7iH!&IIEAPr0KFXBQV@qAor}Z2J?Ss5fGXVs8sSBddnnQ#7fx
z_vE9G-5cq-`|t4qi#@tNQ2`F*oiVRJq1|gd2mf!Z^8es)lOJVR^ay~g(iLrO7p&%t
z2TpOS3!jl$wDrQVL{1RANr6q<4u13KqiHmt=3G9)9;9)26+G?N0XVIT_Fp{bSq*jt
z->3fuWu%!r=$wgK*fS}ov3#7=e=249=%*?AARX*p71EHNHWRxLokry8^?in@$3DfQ
zI(g4Usmg1$z5BL(t1Vc)(yQRW|G&WSU)&kZ1%4WZUtuPBs{#5tB);G88Z<4_mpNF^
z!MOdwWU1je-*ew}*3Dl$zEZU`r_Y4=vfw`l8YOe?Ks1;>b4DXik70{0AHA<PL7meg
zA2YR({mf%HjMo9t-MzoM=Sw&xt<IA6ryx}k!TdX>X~TcL#9xbjU`MV)J@l)+IhNn-
zDfwsiAu#PC>vKvidZ*@(Gz0s$5TI6cPuYoO{~zM{hv8ilNMq`E=|nJ8dgT{J?$AYU
zFH^*w&)A&N0dlk$jbX&uoh=-#FDd>(q$c!VfN+H$gb7l=kJx*L#|I<ch66I%>o~T}
zFCYQ&HjHOzIyD-dOP*7;u8;)2!PvfFY|GR;<0d;Xp?qbdKwlPR^@ajK_oIfhqoX+M
zE0Il6P%zRE?|0A69!}L$`%CcqO7OU5xRk4~*&iFaTsrJ5200J6{|ind`Ats)4+C7p
zHu%D%T0OcGynWgz-}jXjTJN0WZxNaUn?JQ%K4*iqd9gL@OVLyeSmHy1#{q0TB4Ji8
z81<l(H;ScWJlKpQwM^7q-qP3Zmy*;>=Fr^1_rHFtn?C31-z|4ZAv-9E)yC9Z8zr#S
zwTfijv%#~3_~CLHa&7k{oF>mUkd+ikiI5j(Jv~cu(hmZjvGD;rF%8?B{s#xhK!cpw
z?J$IDC^y=c6dNsv#vTeNH@XHC&zB5QSD}c<JPfqu2-e^FIcus&_l0zk1B$Vjebw#|
z$Z4!uj8U0i6jE5|d)d122q^B2-mB@>BbrLxI?bqj)+U=LL!ursilOmhrlWq)iRMFg
zs$M6I+pmmJ#@{2QI2wW{iX```#%GxiLN4Gtu2VSE_vzVR^bkVc{HEsYWwVPGhw6-e
zqXx;_yqLraHD?u%PWny7|1TlH3qKLUSoQ6=0O^hM4+3x#I}E%rxKy``A(Par;KUjR
z%mtxbP8Y({du&B<iDFd^-qbex*&=3XJD{2IYZ@Z6x7NDUd*evLIZeuL51#VyPKo)%
z1uK`e;{osevcMe6s>VyFHM>`=!tJ^n_&(1!D8qV8%K$IRo|;xXa<-$#0LqPqX{j~G
zaLTn;C@Jq9g~PGd1}!YG7tyhVd`SEN$vjdNT%f8%iS>g463~f!>?1m~jkt5K3G2aq
zQ%EcC9wugIXx+BTzkkF1zxz(aFTULYE+oqd&d<2CMiZ43Xem>;{ls?P%cBNRHK+Lc
zKFjKa{PK`V{V=NUogC0LTTZTXAOU#D1c^s(4?`*diNZ2+dg%sx>h4#X#Au5~&KVs3
z?J8zs@{iulHrMq)KGy9DEekHuNe=WfKO{0)-Y8LBI%vEUM*N}@6xBn&kFO##9AV0x
zI|Qo+=`e^nKfg1k%r9AQ3u{%c%zi%tRjLS<OpXaNh=zwH$PPhfnZZ+ew!%nmvFBVz
zlj>oem=dmrd2$}))pXd>{8a%bqz`)8q@ahzc$<Hl|Kjsc3ie-kY7EDBDlNO0+ne^(
z_q#qi5&8ZSGcJLM`wx`1?kIh650$nWad$an<q4?Iw16TGMTCtf1K($2d!>dk9x+l^
zoLfG8=_y#?SMY%$6_Z_nNeY53Wn;?+(V=&r$}Z(g&Hbp~Q8>od?bD7#EdE&f!yIF2
z@$CbF?~{MGFZLN*0fg3g;D9}rMo(M{o^r}1GZLC`Ja6@U!CE;IWHB(f3he4D_L;F|
zIoiqDV(J%3ZTo2U#2%v}*V*xsM^bY0p%g6uPH^K~KMw|!9DfjG@C9R7d^FqW-)}hQ
zj}bdAj63hEIR^+DIKyxL|NS&}lQO`8+v7_80W0b^4HnSC^dD@C{HB0Sz%tz(1Jia@
zNMV`%DPWQ^Ic_=>ppg=Bt}O*ja~9#^iZZ&4pO>w5K-78PiQv-EcgZfZ)%y#wjSnrR
zGpKjR1h=8ub`!l<A>6&-`F4ZxmC^8kN^5DES1}4k8Tl>2Uy;<vpV9{Ba^ze9O*h*E
zqqCJ`c~XMQM5SI~ZPTv(vWF=JyzW^u%7&sE&loeQZxuIv+saL$HD4Ghr$myt;pnA0
zbl)oE1;N#UGorP-T%^z^s3Citliug<e__Z_evcOh%fo3Lr;a5Vv@gbx6xX`-#hRm0
zg=e4@?;?D>00=&)CNB>K(_UfK^{Ay=aJDb-_XQ-c1G*H{WVB^Aj3X*9I8K*kIXe|?
z2QhIJchF-R;E1M0JeWVyt#CF1YASCGjWhGj%4r`B_Fy>Tf>5dr4d?nLJ;Y{E)UYN8
z+wCjG(531FcI<c4F@Q{1x}z!l(FWoQRMetty8W^ah1D4!w$;}St4$;m%QpMt=RE{y
zm^Fli;qGh)*y5N|hAi*f|4W?rc`=$;nh|wgv_%)?WzWgXRR?t$LR-O58(fp%WjF@T
z17gDk)%myc;1cuAslI$<np<n9A)VS=2THfd62!YuK87I>-3MQ9CTY$3L3Cn(ffs#5
z5shed`kcc>Z`ba?4h_a~TGy(+j!>}SRN|zB8<es{RgV2=EdCtw$U&69R!@grZSeL1
zS322ei$VA5&{gu=6~2g}w$ZA%2AJHN-|INBCxGPeeyScrS7@Faw^N5GY#=&h$QO=F
z6cZ53drTp6(ToSleoV(iO_#Z=jC<g>sSmlWfqs3^{x<(vl=&ynfrIpA&obk(A2=)(
zNO;}PXHRdLAh`-W16aZp)pz8;!T7Rg>n{W)y6&mwUh}D}y@FEEe{H;fRsZsp_Q7*P
zh<Kt^A1=S>>+?m5WBQ+19^RnPcI&Yi3VbtjS*U^X$a@Z%DDXE4+}?~Y^p=@>@2*mt
z!cy2rM)5%v;~>D~P5t0iY*{Z)&-LQG@)8}H@N#f@M~V|3ZNf$Z$W{xK@IeaVX*%<7
zCq6ujwopq&r!q+<m)HP&G3fG5_Hlhg;mFy$Lau`cx@nv>T&#bnA?*Fe66uax1FJm<
z0IF>^6tFCRG`AR{Br-_MI({eZyB>N<P_>Tc!+Mt&KXI#(tJVXwi-mWb=2x&!xc$k=
z%I*5kthbw6h=~0=5098XJ><aZ4YBt9_F7j?6}OAktcL6u-^KOp*!G)(2kd7?`^mEH
zcLhcjc5x>INBcTDEP*%i#ut7~Sy<V3_h{Qbu0x^5)2I34NTX!1HhyFr*oZ+6%$=!G
ziPZ>*w2JC9J*GqbxZ@D7TOW3(JM2?uJH*vJ>W=Ro-wI;kqf)@j+$<WuAUNCh(|9zO
z;Cmdj^^{r^GX{Hk6VhN>PJu$NQaNZg-G;m6%Q<;lFhyQ($EK<tXlA{R%!*nOQl8aD
zR60YLnrmA)AHt68UT<DSb))^VB8ORm1k<h2)N5iJCUYcrm;Ae#>whIx-6C-%N&l{t
zT<a^Z1h}wmi9MtBo6`4~5@NH9k5m|oLKyuh%tzT+^|LU!$I~)g=(Mi{3bRyx{3knf
za|>_UWE;BYvAB}<YlL-}nsg%%Eo$C7p5}DymCqjvEUs?*R``Un9~I}@-+JR*HX!@_
zs~Cz$^KIeOn?O0R6U%G1k6KPBUkfng6tUr2Px-mItEoO;{YTvlkSmH&19YTGZYo(q
zKHQ63qnvrQ9rPX*c5emlhx?3KL{r{^1hPV5{c(QUu9Wv=Im;Y|1~-VNk9^JG-~$9}
zzsrLNo*eNsY+UX~P~D!~zn^|73K(b>1K8vlh3mn7QExj%tUG)xGa2#{kn8ydryU4i
znKvhp!j)e_jFwNaAB|5)|0=3N=>ju?m6GO*_H_>8Q6m=oe$r!-byh?LNA)q-Eu{O?
zt&E8dKw=H}84T<a#A(V<MLxC=5{R*L1f-EY`$_NiWap3o{YjS&8fZ-grF~FEXDzW`
zmPAFR{=A)z`tF#IQia?++LKPyhg3)Z;O8r7dvQmkIgM{Z`p+=6`<tL{Ejkaj##Gi;
zzqOC;4Z%gLq^!nL+;Y$4?qJi0!v&0eMC}pJfMf2;tMO5F>Lz`XjP-rp8KRJn7YL=g
zqhqTQDZ9qA{=u)X-3J800S<GY=W+tN?fp_K;Lez3#6Z)~!n=AQ$9_|>4}YuG)o9A?
zebVX_#60dxDLmPmdLUXO8&0280am3p$=`NMIBlV@2$u47Bkb;&+;kxKv-#LjB2&I5
zJL;XwWQ+00SOM$o*dd^_pm?;;(%W)I->n3{X*g<o6>#aWX>LQP6MuZjGJXAn!SJe~
zH0SP|h~pd30kd(Z`$R+bQ{s=7f;~L;eS%pdxhU6*YN|jQ0y=-=VN`ziQ{ftmjgy*n
zgi{>39bbbDQS_&!mqSgt7?GJS*E6A}uKPmFz|g*6Lr<#3{p_%%aPCDySW2`sNU;Q0
zO~D$}<Yz;<oqk-RS*}&mYB9E{J7hUar3}lk>_1c-G8RuV+oQ+h7MHPkkU(!~G02-b
zP+oAU^QLC7FwSw!vf{{-DZ0szjP<z53<&1EO_+VDa$UYkcYmW<@YOxs`B#L?3hu6l
zZmWE56Ez83R58Wc{JjWwbszo&DFycOl6wE6G1-|A1N=yGI?#LEG{c9E6R~)D_Htd5
zWOcf0AZhY*RNRl%4_9yk5^#n|G<dJ=BhiRPZ3nk?mN$=O?z_9`{p^mh`>eJc<G1%`
z76;HF<(3CM-x7D?Z|VC~wBHpn#vPw;#b-+q+Dl#Z3yNEqrznGbt>5+Uv|0lQ2209+
zCGwtqeHcAaaCg1n6c3VZ`<x5yh;yc=r#{;o$_@fcBx!0+nySDQ>;yDyO~1q?#Cy(%
z^77P=f=H4;{+OAzxj(u``ZO&`q}CzuxdZ4@`R6vy!ykUZz=^uNQ+5X2Rprw9qypD~
zJB0`Q_j?J1oL!}cfTpp8WHMVwH+RJZAz3vSzY#s#oypSdxjF{cHg`5&wh7G?nC!q~
zm+nYI@Ah_1vrwOi*5@#y>>+R$f%|eX2VoXhe|N)Ae;9=Q@C8btJ1|l6T1c~MukT$G
zxmfdN-H?N;$%6mBW_TnfL~KEkhc}o5MAFZ`)sonOMgL|RpKY{3SP#dv>g}M#QoZB5
z@O4&)dtVy&VEjIKE1IWl1%u+_Cwx4n8ZIBJ%$TXmiJr<zbmrB<X6+pZ{PaJy0tOfG
z=6*(&qXTNrbe|QpF=0WkBA&3mVrU9n%gMqcdXw$6G<mu)W!@k*S2WX3G|-{`Si|m;
zUf+jAWrNcg7W`k2hZ4a*ke8+&&jl<nlZckBJT|l0>~G`rjZ@C<WXzu>sR<pn+pXO~
zy_ib>CEKD~%qy_m2^=eCzCV_2gyK*8acqd`9tejUp&bMCZLa~FOMAoZ=nFec*ME8*
zg+2GARPq-XdGvV5LuE&KqcKtjViD-wfojz3X;+yhCc+8=RrmMnClTs}PId<`R;GQ~
z`adSK!KJ0O^d#%VNh5ftQZT@@_<MG75o7vBE*cTgEPu;5Ze{D96%}pU0!M$DRx7UC
z-&Zh8%cBYzn~D-6^xYfQ+q8-InV^8BpCu>n-D~bqXE6u^R;pPD4C3Z4$vUb~cWtJ+
zA>P92_XB0w1pM~k_Ftz*9_z?^8^2jBm(Vjf@!prNycnDJGcKc8HCBh##=mAaa7Dc!
z8&U2M@1q-^*qlNP!{KBO<y=Bp)<Xf4qg6znZMtcmsa@5{kg}l}(C8%hAjGUfTQanG
zr-N|BnQ=X~KCtrj7srjCxTNi|WBZ0RA%LeXLRnzodG>005Yn7zRqAGbzX$}sNgD(<
zo<kA%?>&}G+J7XPIK$hVx3RE|7t=SCIY)UL?)fwb1HJFWa0c!TPSQkYv<@Ig=E^MC
zX1@GiEdXhBZhBfoy%880rpR;^UGd?X`2C)TeBDOgW4Ixcsn58}RSdaX<JL|U)(1=5
z9p4PyhfS)FM7arn#O~;)SQk>?W@Res;8!Mq#NmBiU()jKZWm`yM!=rQfxoix;j~?w
zo5l@ld$q~&#dyD+-iw#RTI=EaL}qZIS)7ga8R)f0_SLk@zmrhIMcH8)6+c>`G8v-i
z?zze9t_u@h)x3IWqhB4KbGXScPbaC0;{gtgFrsVzEviiJ9I2|U!$r&6$YDcRujN*~
z;MG#2$I=3OV`={d^<-dr-XgSbyZ&e?SY@!KD5!^J3_b8WD8z!H=a!YmL(P}YIvz)%
z2h&9T>umV(V`H_aN!oS*g;1lw?W(P(37_;djhCw0k<VsU(Lt|0Tjw(5UK^vYi*dlx
zIr<>$WX_D*9SyaxAw57!J;Kc*J248KmjLQsk!Dy64lZ|S)RgoLf@o~-@{3Z04-F)H
z$_P>$7eoHK!3;4?e6Y0cuc=LX?OITPB*q90H#y7&O})!%TlJR=IrVU~>#l&S#YG@|
zOM}m`GnU|_^9sikw*Ght_4jn^$S?T#>lm0p3t6XPTWgr)iB)DLA6jD2)gpM+eeapl
zSOdcO>CD8U69xA3b$zzpFdGUP{c%|A%NV;^oqYZspEUz<-B7`CRYtpOGLeh`&ImWx
zZOr8AI)%;`F(V<qeMn@*t|#*T_X9a!er{z~DxA`2B4&D#o-P>m2OZLp32KpbpZA(*
zA;@6f*NA)(sy5z$<PjfG!8L{6P%Q`7`!_TK?;sd^j+fB8yxkyQLKqmYw13?J{Sqa@
zO!f|KiD_HX^9K;pw}jgQX^qV|p*vaQ_4s>#jZ87bt4a2smGoZ~S8I9)VxfDg=m+gf
zE?TWuZAoaut=;J_xH$kPx*GOwgXQ!qDWf7ZgS0EZv^KR*4_DRiY6o8G^f^BYU`1v(
zvoAj#Mpq0J>$}|k{c9=U&i1U79o@T45zKozMq2ic)Q9j;US+;?wa!qz(F1>2S96Ox
zIL}DV{ifgNQbft0Nqp&=s=U-|*O=0VI-`G_(jn^r%L3~UVBnOtr$tnL?pwD<O^T#5
z*$+u$locV|&TpUQA~?0QkbX}G9-hd)89%nWoSnT@*Rl^&fH0hJRszleCd<r2sdl%C
zF_UA_$waC~y{kHqUu6W5@{GE__+xel4stmgo$z2A&L_V8O(I7l^e7m?_W*zXI6Ji2
zLUZ5&0Xx6don{1zrm;y~_-EGWn#8)P5(Bf{e^Vvd_~*V`94brr^H}srn)Yo>dDmeR
zaWS{-YlfbESha3!&_Fg)#3HIhL<c-5SqgNjUhbpi!#$<`3UXurK(WpDfFd)C+a=)N
z1EC(=SoGd2D`sIGe<>V3#+>i7Hv>F0(Dw@1)uNK}4BkJuq-ZiCRcIu!fA&O@J(lQ)
z<+czFh6c4b8hW(huP;So2RR5a(A90}Iotmc&KzFttA(XDx0Ns4LVfM_H1Yxa29+R3
zc!VNK6gj(>yOQ@gDY7Wqb-m}rN|n>)w(p>$^UP{-{m*q(2QdLjXp4}~t}p&%KTHW>
zUs28uEo7nJ0s$J{8yOn+dFkN24eL?Wlro0s)%H&sQ1YN4c(%#OXH<R)<-6`6-EM^r
zw;0881htU9mYj+14RtYtHr+fzlO=-0YptI2wweNEvhNI-2;*UVWi(dT33KJx8O@OX
zg#&3y9$cM#`<Y}S^K>Ey0vY4$^55=fv^t*svQjsG-FHA`CxwcxOJWts>PuZbJDu=a
zE>vxtpzcbat*G}(Jequ=PEwU4LxYBcfE-iBuoy(q78HkhV;VCTZAli9d%Aif^c<yj
zU$@&iLvr#C;`7{RG-Gi4(aC;mIjWo1D%E^^Mb2?gV}KZ(*|z6w;IbaRw74ZtJTZO(
zlf0N+T~I-K3PjkIUY65VP8FN68h3se2XT2KMo|8RS<@;cdr--4_Bzm3F@k4H-D<RV
zr9R#-)h{?E!rQ5RXg4tAb~!x;#4A)o=fY*1yq<mk05~D^5?ps8KyY9Ub-FOMzK~;u
z(j#I%?B-Vrlj9S_E9~f5>3^qlx8(tiE`Jro^>Uk+#esVs(m`|!*#UbyiSQQS59$7E
zf};G;>#9>TMrMG9m1Nnoi*LLnsk(%lqNRtdQx$=+PLG6$A8mg@o#5Zoh>*C}_yYt9
z2BksE5t552_WsvqI_yGQkL{u%y5-80x!T?T36`iszx6(+APJoF#+L;lE0PD67UX^j
zM-$46xq8r%WrWOaOz(toxyty{(U~_T3c(XMU&AJfVU}Q10qF><GxI0CDD8XBw@jSz
z#yflS4B+ebcCc;478PED8y?j;6>iXK8{LJXqNk9MgNWVl7e+2ic#(y?LY|^p0}84i
z%T8EFphG>sduOz&9yfTH(%dvQ7uI~YheJW4dXxn<MxCi(WOJa4p<ieo5hp?6M|K~f
z+hBOb+mbAyL|^6$crcrd4=2vp2SvVu=HG@}EHu18Sz`j<d>r+w8Gfk#0z7HNrX&Xl
z>_DH}#GuL8&tlx=Z(@cTfTt6H>(mN&Y;%vI$fbzfO3;EGqVG$wykxd{GHsxW*J~rx
zgS)l}y?SmFL}8gcT33R-@nCC6#0#pio(`cXN8mcyP!4@_+asAn##3Yu)0$|V0pHhj
zZm^epr;|lVOaq%19(~8X{-T95z5z<rVz3wPR>o>bjGVs396!YJW$pTz0@Ah!Y*25<
zU~%qg7wh$Voi^xdLT9|WL%%5FI^ZF4?IR7qrJji^M&5Tm0<z9pRoC`-#Wt$5_TqY5
z11j07T09~A+@SQNNNX%4cYmFY<h*t?;9{UoOOS5eL(B*ai0|&(3~#$e+BWuX)rK#K
zgopR)#Ot@<8a3`u>+DSWDY8}o$Iw-<PySr>(bkv1c212+ZNrwIUkvhrq|?!Na&}TU
z!1LQ{e#cum)pz!?ioq(#Jn693JJg{J^+}P9SAnt`FWz0KjDu+dUoi%Q_Yy8kN`19E
zq;F`_i$WZ(;Tw{Y$lg#Ab*&9`@ajnYBZLRff^(kE9=tUL;Esn-vwPy^^<~qh)A;$)
z>xkr-`fIVIB|{k*vMmM%u^v)z_(u^P=bUd0(MaIlI48J1_RW~}n|plw8BF4bRQ{?C
z={n9}ejm>yDhI)7bk$&e597Rt4|5d?$IpCx1jXs7)6NNzt<RBoY&5Z=MtD6-Y#G>-
zcu2YNvfRIQR7(%5@doo!%iK1VsVb?yi_Z~%OYZAeeYbz4YUiXbYKPEC-29wB97k9c
z)UzHC2Im7h6)dXos*)7O6ZO&BgjNhASM|<-S<KLtkD9U>pkgVX`-AX*09Zh$zyIyw
zkDh~13SNKp^v=UfIc7U=-g9oW*=&y2Hm}MJG*<$4LQHOD#f<co&AYF|molmvYdFI`
zy1DO_c=ddaI>|wUa5-iSPQ4K4cpiyn5bftUR-|sa701ZpB^8Dr>=-GI%#^nG^9XnZ
zJOX<|pb|zOhp~uRbu?|59mO;`UaCe8kjpw=la+jNzcas66XrMAF8n+2I;F0|#$=b`
zh553&x9#E}XhmOOuakp}vtZqd)?JgsQ>|YJgXC4n#02I7zK*=R-pGvkx)`(YAAjYO
zzm%BpBJ@DcfRTX_;sxkRn1x&hL+SMAnP~e)livD0V+S{3;-l#}8|S}|ZC=mndi&2X
z(!8gWcjU*{HBFZLddgvC)rh(7m?cvy9zPPKYh&BoitAKQ%jyTmHt*hGK62jOL!U?<
z=$snbWyZUUlg(y%5>&o!O$vh@2zD$p;R%0)6B?e3w4rKzhYt5)p~&qfD30&KB<;uN
z)8Vqy(b#O(#y#f27gK9gaj@SScRZlmDU#GNYo4^WrL`M%X~%RP?ztDH<vR=cA5Tsd
z??K(J8cT>zqwH`;Cs%9!=k_JlBpQO|<3m$t=jL>5@aI8-l>*C`8hpRq#Qpf}Gy3Zh
zp2Kb|o9B1h#bqs!0GM^QYGBq#oS!s^c*tx8IYFL&?5NS^Cmkzx8mx%|`%=4Y+nvG6
zm5-K*ldih%DD!&uqS5HNy(alaFZ2mHpV9R#Uc0qtaLd&I<`Ng5dg|^O33cyxQ4+oz
zw+`tUd3n$Ifxtl-?aTs}xZjhrcEYr`w8S{Mv9e<qRt>8TaY;;sW$_`Ft;jGKhr+T7
z=dL*7u!aP~geLRiI(t@1=n@A6;uEkBYDteVLs)u@rSaiP9MnmJ9lxOYcP`K2gLjWc
z1jJIt3Z5zGz>&tBiOoJ(T9<H8Xvdvswvx6Wh`vAgk#nAD%=K6{+UVE;+5Dchg_f?P
zI$NjG<s(;AR+|=k<RWv}@gq3sDVhpfM?y0hly_~hE%x@{L+9K#_QCK0+tReHWCn^O
z8+Sg{#DN;@JUnOR6HNHTi|_%Z!;!Y=AddF94_`UJU%B$VAQ%06(0g4L&?t+4@(6eY
zJOcYbfU_s^t>=uUZ5r+2d6Rq18;>r(eQ$f(Nzbs$PEJ3Am2dddSK}TXHY}A#1NN!W
z{uQ`xoR-X^<MFju-CXW{<++!)*_1|mCABz3c@{2eU$nh4GKNuMa|VWUaj?z;a+Xu<
z>`&pNe>l9?bS^fgnah%qjo*FWVEZ8_SB}EA-}R$cUihr`H~pxJ$vsydU06M_eA(!S
zqLb5bC(a<^C(WWKpl^l~t1%%Xs>B~^6^&Nu@1=Nq-Z5eq{mir`_aN*-j5wVph;gR>
z<Yyam%o&J__<U!_O(xvF!K71AI~#nk{m2#bTKU%YZBB=y+&w__2;{n<-|Xs^YKJ{M
znX0@9dyzlGna;gw%<jtgKu4PUCHlWrqrHLFnh~4<aCOCof446_4RPkd1N-2~=*~MV
z%Na-dM2D?3!P+&D3^T+m_X_k+_Rng2ly&e`a`yFAt!h^dsUxFKJ0eDa<Fl~Kp1ChR
zFmFy;!^L)F+gpN;m2$R+63_qN(IHdp4$YTQ?;eNRy9yFxSxUqEKr#WV=<m0kmi*A%
zEa#WZm@%1+w|VSm7l6<tC{}zA;3&kKvFzyDBniIo(c6pYM0>Xo5NK$84n*MmWb#1L
z9Q_wY(q6*lFS)*c?7l$z&zZ=sc3BP+EyD}L8RK$g<-+JIeyKdwikd0bOmc8Jjm)^O
zMkBBi3kIQlNCEF8wu><6(%|-);(5PE2Lkv+OexLw^jIv5=gG5X=~@$=dXY(P!TzWn
z8}O1y^LR~s7yIa*)cN+C&~Y&4x1YT<cl^+XWkVlJpV-|ToNr3Wg-M7Pr7Sz*yFm5N
zUG+Q$yoT}4N!S@Fj^7oV{AL*J=ykwhYh$<)tBNplVY^qN1A><jwU~VwE{!i@U^h(O
z-+uWG{pPI_V_yICV#(u^x^K!g4@?H_D~?T0yY#9GUKZNIA0o+_#`Dc}9i@EZ!F;wf
zRzCCHH;o?Z^bV2Op3NadfI4ve@wW%-W>`jhsFL}~M^0*OE_b#>r6iclH3!Y*NgH&m
z8a;cVeReSjK8yF|S(xQrg{7ZM&_v;+u9{=@#M|)Cnwwg_iizXj)<X8UgH0AMaRcM^
z9X9aTiZ<^SEKB}EdspTAy|-<Av=1;&X^$g~qcrW@1F0E2ibF{pMz$?MpCyUWN-ZFl
z*k}mvOuXPCEI%JN;V5=KwBXR*qfST1Ju=D7-^I2?Y?X})r>0Y5AH&wKOU#PV{K!z#
zNp>oFMJWtkj_kI`dy)CBz7YsR^?@PI@zkLwKv!Yh<7G%kvbG)*p7I>buwxH9PK@VU
zm2cg!g3o^KxEq7;6JufP*uMrB@BMrMM0mtq@9n1iw#S$MkIm(tj{Kd0{^wy>!O{&d
zTanRb^Z>AW#kurd$2`#bEzGuKWMpQyGH=>P%l4Vl{{=}_Hz%N@Jn{Q?=pTP)BI*7f
zKIb(yGl%)<YwbOSbi^LZu^mwWo@piHU9S2}yShi}%1mnI{M=ROvq;rAj!DKNqrn#1
zmnI38h40vLF}`-SV3y0TzulBBJ+1tjwxQ<brnRyP_4qKGhO3|>ORy;b{ZO6)F9;up
zy~Y>`t6Z}e^vvSnmd7Pw>5r=jS+g5&j~{{8jpcm$)6V}fn|o=DdADE?IB26iSh{q~
z4i9_{ONCxyaFS#GL@ZtA%sSq2;gW7SC_?tH)YnL<fSG0BDx<qP?c#Iw9uItH(%^@Y
z#4|q_ySD5;$m6y8=XQMaw}aNT+ZPP_UeMViV58kAbnJ`3GSPC;Snh+%;qZ}_N2A~Q
ze3Sh8+t{y%!TK=jvL^pI`;n8LGmx~ejYsc(5l&ftOPB;*s!vYQT+&ps>3%MZLBVlQ
zKK#K^r!i{~o`M5#dsagixu>4~&_{HN(rp+gsEps%kz4tDknV%2aC=05P?dt~K78S-
zxcG|;%wYP|G>p0@w%>Qp4exozkFM=ae|cW-b$i__H5b8|&M*Gqh8K-sgF%38Em)E%
z(F4}wuxaAw?>+A#YagCN1m_~Rr#&<XT-$qY6HXU>TpC_~vboc?-}sN`ZTiKB;@@38
z`IH?n<PTYA;TP{Z?}T*1d<x&kd3wo4CY~yqglAuj_OHMGA1}E4oWJ|;Er%vY4?UNT
z-<RGwb`rkfoa7G2r=*U+d+%`UO~?0j(<dQy{x#umaV0E0r`MQU@HZolm!7t=*_3y^
z+r387B9ZQw_`4+t<L`__-M_i&=4}{dd<-}oMHh}|bHYKIS(W?F_jr3LXd1!kxZLiC
z6Pxx;J-<Rz?5oDY<omI`;_zS!D-$P2aOM!key~c+9C4BfG3cG%@}C%F#tyD9_kxiY
zdkc<7I}h(Obny4}PMqy)4XTFv7q;NwF$`{7ZXIia+A=!uv|Os+w;9jne`#BOG`2Nj
zTiN_}_9J(iTQJIS%PY@a+q8IKb4OY(beVkGjqhFe<P-BcjCS)o;+*AOR-7t71^3^<
z-;98bjWs<H$1AMLx(Q%m?f_z+NB{PQk>-_mYrU*4ewg3LWYXdMDQr^h`y{?a`D&fe
zW!7h?HudUNMW>EdZe4&QuH#cjT7!35IA!8YN@&kXnv-wa;VsV(I@dtY7KXd(W{z}B
z@}0%MU+Z9(F_)ce)|)i<Ba1`4#Rf{uJKlQIvR_?s+nxs>uET+LNjUXFfZ#HXZ{!8<
zAJ11lsr;R{zb+&M>NNep#hx14c~mY6H;Q4+rNcbU9gc@Z$V}v1m&4T8S7GFSGI8Ys
zBJy=Pph0hwyDCZf;{2l3fACA?iP@vaO?>Fw)#V`lmMu=486A$<f+xR74%e~xd<<2<
zZn@K>H{r~iQLgfcc-YW?Lq9H31cc%s!C)sOZvrgM4<Gk5Tn{(41%vES4#p>pgFjqr
z>@7dQdwA^JwzvKKVL8eEU@~;wKb-$Gpz?31Gpl&mBN39JFgfZZ`lrR|qIaFpyMB*R
ze$JSlW3CIwOnbh^l$yd^B{!K%fOwL$goV=RRHfK={F1VpQN7_k=bewz`M$Mj6VBE#
zVWCCDPVueQ6iYS3Fx-hz<O`nOd(CYJlOG><{vmL~`<}G|pZNJl=-8`dz?C9mGz)F>
z5bEb8SS0m*3=YjW!%LNX&wF}<=dRcm-M4*^>M3rC=}WIS=ce@rKaBD<K~lktbFx(U
z^Pq3M4pMwxh@G7<2(Hb?(YiC=dCh`8Xzguhv@TDk$~XkmUL>9Uz-*}4=z0HqTM<*1
zd${286QgGXj~}`atWEoIAu7H61Gk!mWevCt9K`h_FT0@ChT~&6*lDD*C4K#CK7HfY
z4fM-k^@mxqzN%lQZyn616Rdf6ul?0~&RTTMhT#7}cV1v)d&)b$@QdG17eSiNt1gYr
zu^Y701A^eZLo?txJ*~MsZ|Ys!)ZMc73Y$#5A?jX>UHRy{uRR4eCswH8{FMM-J+XIQ
zXA&%x*X>=^j{RJc*$*w=nQ%cns^yXR6zX9(Exx_S*gO{I{$f4OfBE&q)M)XTCA~Ld
z%70<I%g!)sOfmOE)XOJiIk^q(&v_reea}yFz3Op`+q()Q-^3u?voqSQiHTqSPq$6|
zY$g<_W7pyQ9jt^CJ$)!v!_AcLT>b3ewil*R^m%lOu%~}NjyZAt{3<Cuva0C9v&RNn
z*#(OL7vIs455N*9lYF=%8U2#vny6@=j~VxIC0MY(!DT1rzk(%He+IRX-ddVg&iMEr
z4Bmf@?ynwa{y%wd0$^8BrH`L`-@f#|C*9fil|UdNgsdQ&AcKOUprWJb%;=2z6CE9(
zK}B&KbsWTXbY|Q}P+U-uH5*HS1VSJodnf5m@7wG3t@r-Fuj<~{uR93@B;C#YE9rOd
zty@*M>eM-PmO526HR$(kgSoMo`~u6BAC4u9-u08c?U?a8KES~4mB~}QQ)G%@uP4b%
z`ZG&!{2^UQ|4#+r12M+M8rVPJGo#jX?Dopx@bG~!owj901NOICdqO#7ECAzH{0)Cw
zHMXneGRtfJQTqt9s2t)OS+e^@m*DuGac-8}csH+`htIF}9>j^+ceqhoD|`i2&;S2T
zao32q(LuUAK&=<hT0@9oXIC}Sxe$HJUAc2@EV%h5vHHL2DV+)-<SOhOx(G%gP6$I@
zg7R)3+JWQNet`k{RK^(>sZNAYuL2&fU&m~*TGKuqlU|k6HDh?}hnzX6&-a$iHpaO-
z?xruTnu(JYUj{exLzzZn`3Gf+%ncjIQ1QWB)UDC7nP26gO+}sV?fv4Lk@2J!8@6{T
zfIJrvEQ2BtVrt|BU_4l$Xte;-Uc$x}PozC^z>_h4jWvvmOn*?q<&z{>faCG-wKz5*
z>ThjCSK-J!G4FU>R^Obfh`mY=yk%a29$h4(qKZfL3;=H*&KOjS&LWM{cl7^6*!Hyx
z3I<d11ZKV$Xiux5X3;%Y*;{S<%JXm8@JH7xg+fDK&>I=F<0V$YUyUUxQ-MnpuyI8p
zW(++*vO(KpcLGh18J7RB8L}Gs&6Zebu=F0B0eq<q5hjRTsr~sl4hXX>iJlIL;}4r6
z(PQ@`=ij{XKizK))#j~r_nAeWYeAs@1%XYutN=cr{<oJ>-x}G9+BMwm+P4Mq%awwU
z?Prpi^f~{rOO8`KnHMlMwo~~OE<?ul)=m5DlNnT)emn%$SvIZ-h-^$7YdQX$Jbd?q
zXIBmwfhM0}B&SxH|9#;ZI1bOYXW1TO0w#V-d_X9Sf=NuMcfr=v5cJB++w1JmbNj8&
zcJ$b1Pnl?}yzXDOJem6i`<`<{3DbXp*JIp_i3)61hfxq~$UVW}1mog|nsU>Q#eMfT
z)?a9(6Tdh7;jppfa-7n<9-}l})Dg57iddU}4mb7P`dPm@$*((<y-t3~(s-H*{>-vj
zV$6fVJ5&Gz`#oayHvhO_%7l-Nch~rn0OYvnPcQc4R3z*F;e{IC2jb}qzqd~w9hvaP
z88R;t_NnEZq|J;izbSkv{q9=Lh=(O7jz4zmd24(g-`zfc!JKqv5Ga=UV9VU%pI<YM
zmK4Ne^)mvNZzGiUiAo@1D~K|==#q;<x%as(eziQg>0b37AI(wPSrJYk!n^Ok&627Q
zk5@iRIcr}2u0Yh=XI=7%2eDn)Fz97l{HgiAa}1AtA3%i(7r37$Qa@jE<?O%v(4Bkx
zXz1oLG|b1#^GE)0RlGla4^?}lwR~Rx7w>#w@N3zEa&ESMWqrj!vhVJ^{Fzr3m(7>n
z?!yx6-oGhe^<S~P_8GY2{ND)8%`Zkmc5uGsvF5^b7=<6z;b10nbkL9$SeEi_v@*zH
z93UIQUBmcwI%9vnuyW23%5h^230Cc|3U*K1+tJATi4{Z*sLd#EM6tO5$bM}^Iu{m7
zu65y}3e`E><m#3CkS$E#5X*U%yKN;iR_bibxW6<WfIOm>fAu4Te@{!x&R{TT_zQZA
z;!<6m=xNwpXa~%XV#Az|0)$hEcmTuzxW^+<to}8xeD+qr;w`Nd#Qt^VGFVI>N2|kv
zwd}^i^-3Vuybklk-A$5t@_(@z9M-o}D0xG{#a#u!6PG|m7e)eTpyHXf970G`(l0+I
zX0q?<=uKOGd$Pgy#D$G+EQNqAUs{Lh72{&e1ehLQ07vJR;L(&+PbU}vb{i(cGfW7u
z=4GbGJP4Y)0qd&X3!uV6K?NV~jrgZ|3gr{Voj3qj)r@*Rj2qDjQ;<j-2T10<jYpxl
zA7;kK0$$JimVfcFldb_|qPI#Qea2e%PX<WmTDDaVjVK1i;APCFR2g>aHuxf~K8`WK
z1ukRCKNOVCc>(Z0IY8e6K%nrk)_CF;3^%v3|EZ+=g4)9(m4wiV4T+R-NTfY&1eS*)
z(Z)<)(>&;*Z%68@Fn+@t=i(UY5sR;gH~2RK*RbBg+=|_`R<X=r=>#d5h!f1X1Or^x
z!ZMmz{eBtjY5_W%4|uJ?>sQo1J#JkjxBWnThnlW7uD<nNtmsjU^tj&UY`c{h_$3Tv
zYxy!6Pj8*IxZ=H^xVNQ_pr+8q_|)TfP8{q?9#uQPkhdD<?!2Pp;@XYJE4SSDqxaa0
z9}R{p?<%QS0vkzO+FM^dma=-*ue<rl6V2lD6Js7yzgxTBFjAjF^PV$J?=K`#RyR@s
z<f$K9c6ZKiji+vJ>$cw!#-99n_zMC>^5Cr<fXW}i{j@5q{RRLJG-bHYt@I`giQ}a6
z0ZdHC25c$GliyTSWj?=U;B9rcVisQhw59};Fh2sVUdg?7h?>f?&`S4Mc4nRbZ=Tpb
z)&Rm1u}Caa_#IU2L!KGnQ<!bHqcCXE@Z1*@Ik;7<-J5tuI_mFvgVj~&hP<!BFWr*)
zUGn9EDv_RM*mdo7(VI4HJQ=RL*~a?%z;`YQM0zsik#utKPqL=-WX9#s&GXMs`K<e3
zk(|Xk$CIf)uUxs{!`D{7tL;y+J?M`dF{C9L+4kK254U%8-hnZR$p&Cx{LH_-nD{;)
zMg|x%*I*?3wLg$w?hh16D%B&2!JbxlxSg@;i(AIrFvR-W_AY-WR`iHrV!c0@9xZ?x
zAAlPtLJ!8NH0lNqZlau9g-#r|@NOh(spO1w@@3PqT*NWjeXXwe;XVt{4a`jP-9}0E
zJxDRG!u_?Ehoe^eM>3g#_jtVF2GfZADjsQl=%UZ=JkB$q76#e=F8}@5YvW>0x`c7m
z_8Di*{%ZMzvV&$OJ;m^t1*vqp>d?OWbNB6Qn8<CvVDj#qI&<Ppv*%R*_nHwWBW<f)
zQ`&1KHh6sD1qFpOrKoIy^kAuJdmH9n?BwEAwOiiuUXYMOjPADmi#=BQ+n8EkP0AZ7
zWGO|R@j#bhO1s9C7RYbs6;{kVIM#^cVEr4b296GyB1ZT=tcP9lnkBe|G%TS@S%`Gs
zyEWpg+@O?tyv)g>UMu3qolD$ILa1X$`*bp~I9OhDAh(#e@;wo+v+-cH&zpV^8hIH6
zhI~xV?E~R%!mG=06y{|ve6-R|(N_ns%Xb!*&-nxLyk!;ly4nv0i$e$QMBjeWoVHBN
zrB_1og1a4O+gp!_wc`P?n)d(|UatUhGNdEy_--UJYM7!A^gAyU5)1BzR_5%2o1WZ0
zo`sMtUtL*br+kNjGx;9u;G0)HQ~XgFAK<#4=<mY}+kQ#*b%FO1hUNft2Z*#-r>DY+
zhC05`@xVdAp0FB9M<W`TxfD!UApX2U@J(z>fK4Si^Uhh&-g@jHoao<~_T^u-{^keA
zd_Yvq{40KX8eS=}ea7v;nGXR9!5qfGTk|y-13cL>mqyCxKMXoO3DW%)l^dn3yK1kF
zc9`uro72vx7fh(UM#4p<kk`FXpgXWV(-A0!2>^q5B7cEEl@Fv?q49=M3RIvvs_Mh>
ziEoDol))Xck*r|aA_?RbDP^6)j0ekC20L4UWBV~i3?8vPp|z`Tez<OU{;_`o3o{<S
zZPi*y_I%v*`T`zL_z}O?dk@_CaTM0^gU@Fc2R?@OeUEMQ`g}5L)};I9FRJ-j%Ccub
z5h{b!QP9}bzI5jc2hU2t?+hVbSdjN$f3tS&r{>*yZ+~u?_duyF-*xPEcrtt;8m*Dy
z^2J!u)-P?%&q^xM^$%-rf9AVm52530U_Wq4ekM71A3A@%8lwRWC^ug*1JQ37mp<4-
zn99R%D{E>=f8yC!GXK(p_3RMVWB`hIKNN8b3=;kqYG{u_iN6+}q1eAr{_u2CI(mUS
zP(Hj~L!waZBOzch2se%QA&>p*h12AoIg^YlGimF3@dm_z(bIrY%I<{CvA1u(8ICMv
z9geT{=*RT_>#B8`bn-#7u*UB>>q@a_oUPAlfAJBq_dlW8+c19lD*P^6{nz4`Oh~#t
zQ9xeME0sILv^Pl5cXj?hjNfG|8}3|IZ6>g(oRwMz6zjpzbdNU@`qIkJKYDaz>uPJU
z-{0@x9&Q^qSm1Gac@bHB)~u}+6N)>nbY><7|AJ&9<3C#06g_yL-kXHyZP4#;oiVrO
zj%jly{OZ``f{xtT^DQ^8T!tlqe}WORw0i0#QZ?~hX>NF08V;lHQprWDzqI+Kk#!i0
z=S+9~=deNVE!eOIg3t;2-9;BxZsh9|p___hLfp9Td3A&HDqEKOZe-bRdX<o6K|V<*
zJ8{I|T%&SEYxeaR-_Tgw-?rv+9wYiCjA3w09DtmZK&?DmGr_=zFZjY^aD^EPG$I{%
zXxD!<x3u063<bS~CHXRKIt<o@7=t+Qp`97vR$t$M^!5%)0(%L0p)^!ZEbb2Yz56WN
zz_^+E<A%(-gICM0aJ#f^#)+0o@{8xn!X+OUU)e&59ez|^-tj$2^|zn9_AAe99s2tC
zzq9RazTT$1f{bBBeP&>=Cll-~@OH03yMG35Sj-kE$pcr#9Y-{YGMcMDxvzA3V@Jxi
zuJ_r#mbf?L^ZAm41qBOxMq8(H(cP`vDPOT8W5fzs-!%;H2WZXD29}shJnpmmrQCPS
z<i2+cI9WRP{Ryuq6o~55CJUuYrfFq%8-vzroYmNV!fbD$NNm>S?QboAH*AGJcdJdP
zYw^~(0t5;P0S?zv<i2N~v~9hkuwveyfMh4aRkzr2eU06D-f|dawwU=7yynu&MIeM2
zhn|<rwm;zTq6Um})G^&K61m*?H}g8|8{J0QyDa|;k725Re1<JwTf5j!%2v!w2BQ<F
zN~CNOXoUkks0K#^^|v%g-?2kLq$FSo2O`jtt2dC&$y9W3Y2L-K+<5mMBndhsJ?2lI
zBjG~m6Lgh?s~VN|L|3!K8V<sFBL0Y9!q=Tw`|!A7q_5R`G@!M$?T)}elpnJE88U{D
z5i7@b9=`%OmotAZghrNka>gJ{V7WI8n%<{^X-_a6^ri|65BH6yHB}?qGV)n3zwqp%
z!6sBPK?*VZ&AD=Jg5`mN(1T5=`kId-n~rm5&|N<AYB+X6!w>`&7F9fTf%x)p4lv!}
z5$6fOFx1^Hy$uJThz{(uL&?k5e(o6z65}guynXfg9y7d|BS{9wf%9|>sF>|uum6U}
zGHV{lo!O&I_LJ*pU%l^@x?lM)eNu>Xk837Z%EX!y(3Yk<!f0?HF5O+2l}ltG1g4~N
zVp(T25;_7{|HZU3f5ZZ!ZJcr0{N+_Q*@?s*-cYGId%*{#bjGEU?%X3UZNFQ(nzwy^
z-B(}yI>rV-cYKBT1M8*-lJaZI=R1qFv$4#^2|s~?{Z-6D&4t<V$E`7=e8WqY9Bj74
z2meQhL#mOC>4}#CxWQbx!YlEVEgN=bq^A$4YGRQcQqkWd19*BownPFL$0CL-nq<m?
zsqi4;$x<aaL>tCPOv{V3G`5?G_(zR*ZsG=H<02?ScX0n55C}eH&R#3VEZD|gdQ>t8
zo`xw_8D>$>VLa?L>iv4szD7}eZQGA!?EZHae||fr`^Q(%#>duQo1W;UnN%+XdG3z^
zo@l3f4AcL2EpyBM*HyBWcait0iF;o@{2#4N?eB<0f>KgmDCLz!62?6kAsPp40s*H}
zX{=RA;SWm&KwS9+Aq%tam{&2LhVk;QE`RDF90yk+iS!fc)L_M=X_v~ZdDmisVzP7|
z`ity&`M)sR-gU;hFCD+f!e~R#?r5mCy`Igs>6<$2+Z>aLS40;#j2uNy^p0_Ey4-tJ
zhEpc*-MnsE_1^i(&F9{`S9U~v@MmUO&4<Q|9Q;J>1(VW}I#N(PTk;C0OGoPt>FeGL
z@hi#(b()6%{i|+$^w03R2zpG<l~^WrQ~zLcemoxc`vX1+_<cx=k)1-^umE{Y#gQN8
zzEECl-Co<gKf@jAt<=Swv{`W0XQZ$kTQYb8(o*+`?BD$}D`of38_(WWxviqI9_t95
z@3nB;pKUI~I~b89j@HItAuPdIUr5{<DSPG0X(zkqclZue4DNt3u^~3>BJhGR9u0`+
zd!h0f&jQw?G9l_^W!^}zLYW)H@O=OldYxSjO1RB+PvIMv&RinSM(AwncZi_yI1=%k
zbSl~{3~}lfKk9pU>Aq4|tY3j87alS5Y=7#raNoJvFy=!G8UKOGK<}|V#dgq~4)5g(
zubJ$|6jfVaTL!-123*~A8(ie#lNQx*b>9IT?!Eh->Ai;equ!QRz7T8P_cGje!<atk
z5})sIVd0b*5YEZX9OF0S5Bj#nLRPKa*YaiS@D8}74@&0c$3d2jISM<Gh0QsYCb?<f
zXq$(9qtN!Iw+z%SJ1bl}{*(i@(3|q8Ls*mu;ejxr0t8entmBEhCIvYNx5}kTz0(pq
zSc0O=Atm0$I;RLF-tuj3&`iUE(h$cilpp5=dx9Yt2T(qg3eLJ(SYzq&1~xpBSpmb^
z!?~Hq<vr;$)_P!CU)!EfhQ+)*W7(0EBr;JmK^g+^^trpQ$rv28ap{=QRDB{+g`T(v
z$6>_MX4>mZrQ^M=Roi22`~EAx&-a)yb!t{S8J7S;rA(hE48xETQ2h}o(HxH;sKRV0
z2K<q|SWd!C3Ds;noH+E1It@ZD)e_eTpyP3jQ|j7ygx4w%$1LD$25Z<ml{bevmzt#^
zd$O-veaB;aH+p=P*of{KH{-atQrH*kvAew3ps}>_OtqG<yL|^_41Z}RWBp;BXT!fp
zZS9?O$$sj#6^ozza^UlmCuc4zDakiIpwm#uuV&j_g`JJ!P#%s1@K=E+h$`T{z)j3B
z;D{<QmSha`vzSS~chi^F^<%B^<(8z(DO1+t`*4`c#HkR_kS1x<*ESv%cD6B)v0}ie
z9uuAwMi{bLZ<p9TF&I43?@wFuF4Wr#%{xro!?QCkQ4Oa_XlTslGd+3%A8aoV$^+r*
zBl57*hLg@i)`&8?x%)gAYYH>&cnMq%i5-D6NqkU@ww7cj)&Jk-OBeh>WD~16F2dB>
z|BCnAvHttEk$9JN^u-!!IfRD5Zbg^=Y#4%vhE(ozHj#7Vz5@(YaG#yW*K?s4R(|<<
z-~4ws$98>XV!`~2J6})s)19_Sy2`QK@Zz$H#Zp#rmNXyR3We%9?8B1E_ZZ$ER=m<R
z6H80J(%X4-qBptu78t+ZF?~i={?zFe%1eWuM8qqtu(P(5OL6E84yN@%(F!}76zG*~
z0J9Co`9Qw2ixR<OcoofL5*1M>>XW8i0G<q9o#>Lj-Uc-jYX|(;KV}>R!??vZyfunc
zT$Et7c%PN|dCy1}SJX>9;+jpz_jquV@bS37^hm&bZczF8fOvI}AAXmBW*q*jdtMpf
zJ8t;=*C*PK-GQflDsGH_QqqsU_enk!_Gt^>FH`z1kfz41Qh)F-7+TtkVJG_K<}a=L
z7YJ$Z0S=u5Eb?;P4~6}@c^sS&XsqSf?@D0`0uGM3P2_%Sdd|)$gu;G327EP<QZ;e4
z6c$fM@pz86NL$l(;91{p=%#OpC5x@CyP~}<=6Apn-v=-Np4kA)hf%6=(TQ_#fka2h
z@sIcFnLy*clSV^U$2q^Wr0|dFG5FiprzHKpOxr7WV7>g;Dk>HY$l=3*&iu6BJCO8d
zBEd{i2i$OH%)pYjH)pc+4Jqx(uER^j_IzG(JJmS;IIU%CavyoG(m3zcAjU*a$fnKS
zIO*{|r$}8UB2-z<JC}IfxM5d3(8bs1zezeHzef(3mdAJK>Z&V@we5j_iu}Eiu?l<!
zR=J{$R)*)z(5$cUN;M)EnTTu*F7mkwdv3h*t{g6ccY#pT5K!<M^PnlK3*WpuR=?|q
z1vT@>71PwM8vbiwx9PTTUG$ScrhmP4Y}Z<KK6{)~Be|&TA_5V}y&qoA(3AV#MK<?&
zD8(t?VRqW^<&~#by<^wl6YpIZTKSJhPdV=>CF}{d9u39IdN3#jlYJc$;>K`9Ehy4(
z#lW$-I35Ta`8n(DG#|vTVg&?^3#MW9b+C~rg>h+UMjr8WgM@&{_3}OTUThSG<qU{R
z#M&j*+e;Vedhm@u=guY$D|#F~K>0EITX$cJ*<#R;L;((kbfhzoX_ZnmUG#CTd`IYD
z8H;8NV4@&qzy;4v8U?-K%rzfOCSR4yvc;}}b>q^Wh;@Ho%b|aaR!nQ5=Z!SX@O6gc
zJ_{C?(r!=k&14Mt>>CbH1RDVwYU$q8V4s8vxv4uEP3;J#p-ciZ$($8d&k#WX83hW!
zK%ti-cxc7lt%iaUfT4wsA;q2Xm=VQHXn$w3lIMc>9>;#JWsi42=3u$lnrA$o*Upm|
z0E`&{tXG{e>nhYWEp6>D%hCN0NKdQ|0JCeMxTm+=zP1M7x&}_*C4RrpTU3lwE6{QU
zR)t|~=8({aI~Q;o_ISz>*f?EyH6SU;^nkahXpxjxoC#hD#Q+L>XZtJC-`CLNH$21K
zGP4Dahnu%=?2zA{zg-doYppyOfr@aPJpf|GI=!G%EVm#|adsSgg@TgmFw^dbM5hDn
zB<cpZhdlWaQ}S`rHtm&>fGwSUFaqJdrdTTa4B*3Htl^MHN(+z>CD<^3N*nMChGT0m
z@qoA3`!B|uc#NU??3?hDH>3DqPhI2JWia+1g5%%V7GT3kN<LY9Zt~pxE=>9URPr(%
z^6=D`XsH-;)<C4L33>-Q{<Hq6d)`~K;u<Vo7$3nS{ibbuO@E+3N+zww%=sD8)wN3M
z_WVv_oiB%BH2d5@%Yntfw6j5a6&RbmKEK8mLc;YJB3&{J&5Jk~MdWjWLz`d;Mi{AQ
zQkf!g*G#%Vg3(IQW>}KlN2I;wMHmhGf0@o7fRTG_19pp_3>Se*weW?u=tetez&4{b
zP80P-!@)_QE3fh(-bt5jk<Old%-$$is!Yg}n<=*pH#4tJaHEjN_IOQS#`*%riE%O8
z?(up1(}`5;U|(A~cId^ju5ziKa*;&BRkG{F@53{r4@M%-H!!AA-oUWUk&XD}@XOpb
z^4<l@aXKP-r%tT-0}Z-Z3ItE1vdS~St)Yv;Q?;}4S?TKB1y5z;+Z)U^J=o||XBwx!
zoM9hm^Zdjz?7zXdPTT9Spd<veTTz_`oO++ZJ~)|yeu!2Wi|7Ry#8M|DPR9Gel64_o
zc!Zh}OwV{Y<|80_<b(`jF$5SlVT-X<y{&udG7*{SOG&ZqH{d~^Om*ku1c}yH4)wOa
z@+|DVPgx%Sfuf>mbgLgxQ}u<{{K?gHUNbQh*mZS5NcbPcI`)Yg19HBrhzQVe5F?8`
zZpm&uuWq*NJ#Mo1PKGQ|@`V%JG;V%IyK&ijM5s9Q06GJkWPjK0KC<2@oZRJ<GVU&2
zjk_m%lkp#+-shv%Y6_I%?6BapnaHOQk?)-(yfB_)8j;o&+BA9dMHXPr^s1B5wxhVa
zRs80<u9m%@O&RHfe#=t^#UjsRd%~7sVPi$J&rGGe^9H?rPz<oE<r_mb)Z$GEeX+e=
z{@~=74Ksl~gE6J2Mxt!{a=vk*xSZG7Tf)Lk>%c|5bK|lJPke)ck8t-)SgdyF#d)~-
z>Auc~><zW&8f$CEheh0}IX5=JS?qr>y#5czV;%7JJED{-h#NB4-3BG64Feb24gSE^
z6B-&KU=g@+1rc4Gi-~;F41sKfX|w{toWNo#XDBa;&5shj8XSx>ln`x9#If2-fS%Yi
zGTRBd_;L2z)4uy!(=fk}4Xa#B>#!OsnnaTo{W(|SReBI>)RMqcK*kfm$pe5z8XNwp
z*=ID|#IgimFamxFn7dpReUQT(FitDK%y(kCWiA-Q<K1ocOw-?2;!6vKyi6=V-D|Y%
zZR&2_^HRX@JOMtm8|NQ)yjj-WVGVtahfLDb1<tv}G(BsnIQ!sX5yajT298IJ_q54i
z2b60H?MkuIBNZ`)ZPz$QEOKe@L^uZAIS$7-&Szu*ihI0EpJ=9z6l5``iLJzV*46k6
zn{a&H8so8T$#~bQ_+U5SR4HXu=R%R3EW2O)p~PbQ{1{$p0UAvDVFtkw*w_-PrNaV&
z$iV2=7TBoV0%i#*shBUJXf?#0e88?wTAMM;l8F7W%0Khv@#dMJ+Q;SrLG1fIcV_xx
zi(wSJ&@L=iUK}JE6JA3E0qsH|aJw1Rwj63TrL89eS9lF1!VbxxsKXr(?(RV->)e!X
zR<$9Wy@vDwTj&z6Rd&v<qb$td%&dfU4vv<Xkb+=`eN1q48cOW3eCC7RwHwBz7fig>
zS8e-(pD-{e0BV2?|K4a&lzM{9ucJ&Dh0O_b#8~(?G0LX`t1)BPR{!>r_G4Gzl$d+R
zi{T^e4|nws#t-(#8m9|&WGvY(Dw-#O1yR|#?K_wSZ4E-<xdIU3AcgTu!+>KKp_C0S
z$P@!*8gh!<;3`vkTx0(z%!BM2&WE=QlsIN-!c2c}&q0i%-XEQ4gR<NbN8=u{;f-*s
zDj9}PE*hvd6B15@%h&Lzb~EQPM$jInbD=cB_>~JW7hbuIZ~=<^;43g<P>I4{Dye3Q
zIUu;7QbqBzIeGNGTNhBj$Glcr>pq86V?L9dNqO4fd-(Oi{$t-5>~F%DwE+FyCq-~o
zFDjldElp2xEF!=ZL^Moufuwn)=A^*A99XLs<5}@b1ro?+c*@Fg;KB5=Y;D~x1x3@P
zzrRfmAAFF8f~J6(cmH^rOaZ?_qc?gQFj-OH8HkwPwAV_SslHbEd+^0e&^%6Ts-P5i
z+$&L*F#rS?Jf*RWDZ?=vFR;%9(2ux>fV2jbb>%Dx#=(D_*Nmr9;z`7DU=&!d55+@v
zGvFoT?8h^Na~Q?YJ1aq^E6^JzYKjXBRf7Yf4R}b{R~eRpS(a2staZ;HyIb~u?~QD1
zhaz8JusiE7u{?qMFmgb7cZeWc1fCg{OF%jTk?MtNgk~JfG~)Ao99g7F!g6twn_Ly=
z#50pZR6es<B;=I=NXe;cGZlZAlvMwItQAgOso}pJ9sBcx>GV(0vsdCzZ_k7zxE~g{
z{)w>D=MO_t2lGn}Lb@R0!7~?o7%9e)PGE;-Vk`ceKDbYYLP{~<VCO*@oav*$mW7f2
z3Zv`sx)WK80d6m37B6IzG~#i3m&7nw)BzWt#H``d8K3{<qN1r|qLB9g&yAO+Ivajv
z48n#5MPOt@h5_w0AJDpCfZ#KOi$MD6q`zFF4NJUd-fA&;1RU2llBskwh}l~IsZgfr
zE-3DtbsRT=yM+#zo~=-FrW2n`;0+K6gBWB^(i!Tn2X$91;4n{kXy%|B;@m5`)UeXC
z1$;})%}q;aI*fy}@pzwQEO^4Zc6bhbeAUexe}l&{51Kh__qMl3gMpM07%=05QNyzm
zOM$pNWtO5#g2_b@+`G&H)?O&%DOhkd4bqZrCBZ0Et27ko#lV?nDw$*qEXIHkLi+V!
zV=?X}0PFjZb(eYFZ{Zf-hf9a@D<?2>A<d~nXc9&r#6QyOQ?_N^onJX?+h{BAdhY~t
z2ir(S=MP2&$AU@*n;p{72BYsV9CPuF?a}zd>&bA;9T`uKW2!ukmrelW_xp|XJI=j%
z^DA!Lc)4<iXt=9yn6v1^QZ{)V+^u0-4wp&&?qA5^1NTEHje{v@TdOOu>6W>4#+JDE
zLsuo^00xAG_DpaEHiusECY6jyN!gh)XW{j5N-LE8d+wE{qmPQm@?Et0%bOn_FEBb;
zJ?uZPpOsE!{s((xEQ5;>*0wuBn3I8Uf@~)Bu;V<lH!aNoE!MkZ{4u2<B(h|>Df1^o
z;_?Abq+_Igq0W{U4p`EI6^oi~;Z}q7?2D$Dawg_L!x%0#d)4#|;^gB2Z^rzP@y-oT
zo~*885pO^8gM$9S`X5*gyRWuljWB7Tk)TH<7mZql*bBrt;3oOa%++En0G?xMgQ^FV
zH)Eg=8~HV~o88Sz!fQX-FltqMl@D?0%3AB88~mZlA1^rb?{NAF`1>Fb$rqK~&wgE6
zphSDI5uqNZSdgYY(x`&7D%+*Uq4z2paG;S=Lx!-?cSHH$rVRP6sBDqcOubYF`y1uR
zfd?cWZ~Ij$ukRyct+d<q^&u<Y_acOcne0;)*aQaW(P@&7Q}59Ckk?|J9r84Wmcw=X
zW$D?gWa;Yl*o>ANujK?My^=>5t-%A-^<tCEW3uV-2c)yDRn}g7h0I*A1fDLAz09ox
z^SJeJ^Sf~*bc_|y*lsk7s(1oKZc3&a^?>=E8HVBCKVi~ZnK}Q17?2`xQ*V=(pZhLO
z^4N}5tQf3RaCsi(1{cqWW4VE8+~B^``CLAr-@552i@=L0I)TbMaI6cqPtSWc*lX?`
zYo#6a^7OXvnQmn4Gt(HVy|ytO!t`X+yc7`dK;WS}GAzyp*RN{|ME7z)9tz-qFz%!V
z`?2~fj(32GdQX$Ah5?my20kl=J?F}JZIDA+l<f<JB@oTS&;>c)!F?)ES!kl{oCz0Z
zSMP@Rgb-m{pkw`Wq+-thz8)OJr%pYPP$la9u4VdeP#lgecT30uNh4DBQ5Ek#If;33
zqukG*D9(N7mZ6Bv&FFsENu=lwaeVE*Qc3Z^=X7d^X(ZN-)oeSE&%`lpp@>8xwkORk
zj!UqVDQFus*L(jKGQ{<$yEohUPCMAqR1TD)jdh_JDCyW0A4wsg5Hqo<mqrGy2odQh
zlqd&4rBFf5rWpXr0F`#GS>`5Sv>atSLBUCXgNVmsU8GabtOMiqwGYEx4D(ubAf6u;
z4utM8Msb~O&z8GpnFGC#+l~7s+8y;6th=G`fN@d~IWDl{oyHya?yre(%7wyi=D`Zi
zGjOZtVxc7`U@7K72%!f+M?<I8ef0diRiE7b*L>}C<bC4K3ny3!Ya<37>=FiRH;9Ca
zwB9wIIE7hZbb17{znqQ2`dS&pbQ6~*4=v4c83))0aE<vjmaxXAK<~utl<t>g%7QB{
z1QD0PD~!r*nbm}+YggT}VN-7GXx;ZT?k&xDjd?g{cOGzN2AVz<m@@&xau_a63D6)I
zgH*9Tir&yvMH9K`1&Ke2S@kq%lxKqzie!eb$rxzJKzWKW(8vf_`Y`S1%gcjI1UG09
zr1};=p7ULoMj6eJO*3@Qs@5a^C((i6*GH31(QISW?dvZ9O8g#G4s*@5!Y@`7ky_v&
z@N#g7jl&;*bMeScI~>P`x0Y!LH{#}y8@MV6Kl}!Qoqoy_@LhYNouA#5V{zqfz@g6A
zu7aZZ(-)rkF-+)9fY26@BRhYp1a%u51mH+BRLyO(h8gRsp`|&%P~Dl1!Hw7XP9(6=
zsKQyjaD<L?rVR8q(-{1nU_r&_$K!GW-L9eE<ZsuXZF<t!g%q@@#-E{gxp!P()*rW}
zu?x#61~62E{Z$sioh*VGc3M0?1ONa)07*naRBYnpnlo4gC#2iq6nYFhAoLF6J(dnt
zml#M72A#uZG+t_K<+t#>BW>DOg|66Km;3FpypKJ8_hp`<lKZghnP1utNv7o>wzfKo
z8A`~EO5x0{9owQPB{%ZTxu>8E{4y6^B<Ae%#SW8KQs^bWL;!vpT{yC}qv2aE-F^Q&
z^U_a_(BgEm(f-|h$N6Pg^|l>`t(w^ju7kc_DTBTBvg`S~acbTX%z)A(jZ{e3WwFSq
zrb~Z(98QxXrDV4Z@(ayJkp<pJSQ&|-ARh}Fp={vf6_4S+eC4f={aFp6&R53bf|H}x
zSf22MKq6QZb8zN36ms9;1^%1Z(`L^L&&vP&=-V(DCS=x}h4PWleFYQCAUHQKuMEtZ
zbFY@{0Ui(k`M2`)6OT$qN2^?O{f%<|rB{okJos`GJB3jOW^iBeo^gCm$G4m91Lqkt
zXO20pDFcx_{x0nG^6S#d<yc=n7hYBer1jX7s^2NQyEt-cct-GP*y{-wHk@%9SBLOS
z<EWZku(ZKb8Hf$J4?O#QYil<;))1Y4G=KYAcU4-pc{|#%1|0?qpF|<^sB_dg)?@8T
zmc!-NYnWWb0UcvcvbRT4eJ~8>*k@e1jCoxxiuamQweqf?HUA`}IE8LQp9<s`VvnY<
zqIlwx%HyEAOZC`30Wb8(z;YN+Wrcc#zd9lmtR}y_x$5<7G)&Yz<zROmT4kBxd*P`G
zP2~iErKyVZ2M_Ku0A-Rvz^#C0Zwu}T4nFBZ+;q7`GR_GK%`juETw<U#sQgN}%_eZ5
zflLnI9LOL6;*b{WEG<tGN_$z&Cb!(txMHn%vFS73mNtx)a0{B~vFvj6SFw$Q7`b2y
zv(}iZwW$nb#Q`E6gKI4!o>5Ux^<xK9xY@c0_WF=cm&sr5s_f6lBsI=6R#qoQ;+x7i
zfLo2Ch@vYY5Y(v-Q#nY-*?yoVjy^PO`*(SR!M`&`L2<XY{lJI)%WCbSiC^GsB(^uk
zne2zfYS<xG#}UDCKdP@)MV+6pPaoaG<5d#CJvIB3o8T1gF+m8y&IE(T*}Y2nM2A4p
zH43Z6Jm)GA$HkB9Z8<<FB&3kt(+ao0qrdF+B|kD@>5UK-$4_|Twsn_aR`}-_#EaFe
zq;kD-h8qk_eh9KHJxTe~_GZ~#-zT%G!gAicVp&vE02nxemTC^Mg@MWvD3yaG0=+_B
zuJ4vVZ*NjZC7m;)NS4no!rD=6KnBDn^I&ipih8!~t(HG<?b?6-%VG6$6n^YoyZo_I
z<HM-O2Y~Ps(1-%iUsUPIWDKaOONY7D8A+pjm&S%v$?k4IVhBF3mqwMj1l>U6i7y(#
zAND#?j0ZSJa>Rwf>8T+a%^}hu#sExIbZW;j1TM}mo4Zfv9-ZH3?pQx7k(L)wTUfzS
zajb*Lb=$@fEE2*DX9zps5?{DGb3b-F=Tc!dS+~+1jodotKATvB3<gT;5CZ9Y5Fb3T
zVMq(qDETMdf%reY<8x1PaqqYZkKVC<o;MMHv8eP6Z+X=+7{_`s<GmTXz&9zQt5&!P
zlx#b4#$^{9*qj`CL<*O__=Ys5Vt^n+1~y<g;BG-PQ3fUxZh(gO1y8`Za=aNg*oNF-
z-*--lZG?UZef&!FtK0D0B-wl76QP#|F=t?fqa9mqo{l(&q_Q`pZPGl4Ii1$Vc*rqL
z$7c)8xzQsUp`CfGIhnq^=9;JB0ynmy@6oSR*hN!*Z<I`3F4#1WuEfS5HtRdKM>6}j
zirqn1Ytkg-G6dE>FNAyYeJDqLgBXoCn7ocaIu3$&ctO_$vJHOO6XzZ&@bX)9iOAel
zV5XckWVuMAipLK-2)xs1JKAT(8kXm+{D)ny<FltNDM@9+Ei2FQcs+l~E0|Fj!fa%`
zuSt4(>QH-*^QgB&bHo9LT$)o6_|axpotiZ423H=*rANNgCE*uxMux|v0{Ki+!EI~A
zwl7~=yRqFZV=S(A=dtftzQEtBh7kk`PcXWWu+Wzn+A-8~tU?>u82%y7grc*1+tc#n
zyS|D|^?GIAqBG>5ZoeB!J6vF#H0tU$ie)>2C_-32@~7Wmrv1-2tf5}s_u)^<+AFU^
zemH$HKY|VXCB6}6>KVjLBf6U8QZe}9J8a{hjK^n%DyP)B(PMdq$CcMKtPfar`p4R!
zrKV1lcY?+l4sn#TcpW~5=i-#x2Bc88#78BY@mVdKqEw^0L%r8ymy^aZdgBEwMCPqn
z@BIxZ?l5DHZh-6fbSxtL1t@HpYO8}+stMEqA<t7E)DY2iQ}<}1tH-EV<jcUlUCCt}
z|5y$}R)+#CvCKoo4gF}TP03<F<XlCcX=p6KtS632&cm`sY^=;O5yw(=9f(_~c?a~h
zHi#Ki-kqR&gz59)RapVATp)F{yx(saONYCNxfxDy)zZ!hUW|+aLpQAMrVD{VP}uQl
zR$SG<Nl7f=ALB@|P9UMB(SV)XHp}zdo|H+Gr^)&2FT*k>xN<8(XL|gpEV#+Z%OYrD
z>W39>`?F8VzFjZMf-}#N<!dg2>xg3jazDinv7FqHjRX2(x;f+Xya(O_&l)u~qry<J
zOZzgM?s_ML3T##)g{rezC-$LgGX`R(vsrDoYbh}Bo`2lHiVW0(%R5~=)RF|o@g4rD
z{p1`%WQ-2Otwb(@8Va`9D;P!-a}bv8s6K*8S=sPSH#e_P#>MV}i*FlFOHhTX+TacZ
zkHvj9d<%_8pb(<c4Sm7%=kVgRTjaWX67zgzQ$K2yOjOn`DZu7KRWrq$G)K(+&xlpG
z4aRA#SE2D2f$e&9A8@C>SC&oAmnGE^2wxOZM<R+!e*6!uC4gCLZ(5#j?3KMO1G0W*
zk<6<I;_!%xT4Ar61&~1SK_BT^b`33j1nz&uaHku1S7BGfzvJbz$A4gKVxUZwBr?|5
z07T3+vEHaZt{mi*z=3uLu|j9(;h6mKxkhP;4alx~oaqjQ`<!V-66e{^gpCT!?*!l_
zV_Bvj67fSXw8^78+n`LP<w)CrOo8HG67@rAhs!kn>A)+Q6LK1Ij+sh)7CZ9()6yG%
zc*=vAQ_$<aG&VMd`^?zaP=gzgIZ9SWhEKOelO8PeY(YD;Be!m^rb$gJt^%!EOyLSH
zdOU8-bOveC9siL=M>2*X$1H*p5X)g4nkR!!2L@0V6BgZwF4Gw+SO*5x1ziJ@X?AH;
z$E$Z}6zSBc$cJZ*FPOFrN_?Xh(1*VMmIHU8pMx5&@add3lCG$5Z{6P|_dazD2BHC}
z$P39eE2`z(*~L)aT{(gH<+hjt3rZu(AdU*fe?E3pw(Mzxf|ZfwGfL!L=T4Nus1M{w
zQG{RC{l+^6K>EE!iNJHn`U3}DRs2~0@GRa9wdbAR+5W=)*aWDQ$K|ochDn9Wg<!70
z=GNGSk4uN{)qT%#kkp2M3jQcn0}u%m#^aF+0mn=#Ash?rB>+P}yuYc0+`hGT*(aCR
zK7%Q+@fU~&@<90Gm>jwSwQ~_9r=of!awCvlVFGuDcV#Hz58*O0kpD7JQ8&1g00Q&7
z@hW1(56fZMfZzJ|Chzx<{)Vx}FVkDF!j6_Lx5Ih50X$2de{f6pR7??T@6%!*g7Tgm
zP)np}r1<)y_44GQZkbmVl~1m!l03L1WDWbO&1|Cspb;?O(z_lQ-8LQUmn{doWe>*u
zx6dt<>y}nX1}^b3XBBqqfnl9%5L93}EDwJKFxENS!ThMv7rfrS=bl@PYp#L2+Sms6
zVQuXN&#g8#-qzi@`&-?eub{S2!Er1WEFP#F>CK@z(wQ2R6_-G~du0oU)1}5d{N|+B
zioJf5O%K_^3)<91J2j#$A27^s-Cuk8jhENnKV}mFmdA5GT7?Fp-`I_4A)hih8{F>4
zx)SuKi47$T7@jr3>2x+^*eTOy$|r9667+&JHe188slgoksVa-*AprP8<?GMjtb19s
z^jzdkNvyjQWzE)JBTjmi19eEZc8JZopbSqCn~9Ybi&>Bd#og^Iz!IAS_&nw^@RY+C
z19QL3(ndYxRn0O6n)gp<8@L|}l|gP2oW(B(hg?rbRv069&U@UdF`ZYwb8(L4P`(>V
z&u?VMfAvPEVG8}<AmM)zYrmgC!VN0<DEy!=%<k5G3r$IX4fS0{;|l*N3u-@P`++2s
za109&4~%F~tWu0^kl9=)D1{x#`OJo-vFsw<+XurJG9Z$wHC1wVGKF$i_TG7?r8Xu<
z1_cfcNorM$Re2z9B;nn`*>pd~RC+fv=oG{)e2X$j57Z(UF<FiZI+++~gI!*LesNzo
z?@!^P+ja^GrR{J9DzZw?COR3M3JlAx;&NV~QfXK?9)9q5vVZR`*}Q?98~`C%S+~CK
zl`Z8x|4@YL3J}@B{jbOq8y}M0FTWtWcW#4)1p}r+H0R;~Y)Fwnyc?XdbT^vsP55p2
z9-iJn#OrB!X$6GTpJC8gjm8#o)|vviVt_zA_}%g7kmD=D`XaFNsmidKX-H5huK5AX
zxKV<OWGW$&5bbmh6@%v?M5K`GrYFpqpPMiwF>9afje!<8t)-#E+*yPmOtBk}-PtEr
zH#W`c)>j+XObe`<jj)VDsZr~)TrEX^{<Qppb7FaZ@IoV;Uuts`6G~7NXv5ejc;Z|!
z&bmT8=UgowDARVL52yerAj!8kH^{d(*UL9H)=Mu03JMm(!^r2Mw_c>}8c55pp?rSj
z;iK}cP4)7#?X7TIE)jFd+u=OzDD3X+dNwP{q}wUH0Z?Cm#v6Kn-G-lPOF}ly*xaC7
zjYQh`G6eZW0AjYgS(~haql6F8Edba%KpeHD8!is?G9c3=nYw`@2C+t8^)KHM%n9K4
zAZVXB--p>2cE}L;U54V8#4Age_s3iJUy>VpI_|Lxdqti%_C-|x6Q~rHtb0H;XlWk?
z*_If*H*g$XeTNv0-D1Z<uc(+yWn>Il=D-F)2+j2M!y5*9(E`#R1L=<cT*lzip}uO?
zz<biAj?>-2U(yxNv`_W*svZ5A#)TNK1eEFrUNM#^`ix;GRQ%bzcHtBN(5W#9xU<ic
zRLokP{y-e-Z`pq>zH}jROykusRO7IQ8FEv0)Wu};E6uX^SdVPp(;|Ct<;=OBP0)2k
z-El*q1C0e7v~a6NM|p5Zv%GY)6Zv9t|MN|t@f3I@g=uyf(gU*kp1IX?5G8#6>02&X
zpk9olpMVi6Ffq!}6_y+IfgI3Www*!uK7}vF>3@u8`&`V>&l)~#KlAD`vTO2?*2N^2
zF_eb90c8<HfHBzB`x2h$N9eZ6Qpa1^bNA}Er;^5}Jf?k;i3c`Bhg@ipt+{_1AKX;K
zuY?@ak%#b)&u(CO3~n61M1?(u?Hac4$9j}j`vZTub<KxVqA~hu-SFM070iFPjZGlg
zp9)9licSwP%1>oe#aw)mc+PsKcuJ-yo|(bq%D-=EkUzfEDqnl-Fve_Pk}~w<Ho|Rn
zZk)cS=RyZ$oBw{cNxr_}i2MPx`9Is+Brx+_k;QMrS}8c(D1{wmuuiI8EYEpn{h|fn
z=_McOt!kZe{1?V1=G@4AA&k(Mc%Z0btuF+1$RDJYVRXmlXxM1{82O$&(&dv#tFT9t
zmYbfvq~i$@J~1#2F_o!!RjICvW;)-?aaJW6o1Yo#v#bGdU-8fOZb=_JBB@snNNU%9
zN$oo%RujAp>FvdJB}hwSWEhJ2)Y%JU=E5a10h4$Ta1{y+YX;IP^l+QV?*P11y35O}
z<otD)%B5FcD-&y`0(U7J<2@88u5Hg8IE?S_#rF?NdhbC=;+jIetQd>~u6qqKD5cnA
zT*{oozCA_{y-kOfp;|Z6Q0wu8(SGVVG}NN+)gQ5dK*W_Y8Ud1ngN##w(Hy*-Foa)x
zpUW%o=p<vmkp5GU+0yXlO~KtQj;(y6g?V=${ndw-jux)<x7L+;jSP+b7qiV&((P7w
zFCK1J@>rU(Sto2&lyf?I#Kd`?nu>H|**eN*4D8<wmMf-`Fe0Jdl(G0vOJ1)0r6J-%
zMSatSqbkMyVR{|hGN`{<P~I6p0vZR^6Tk|2(kzUKw-WjZ<Qc7dArTm>k&g+_3LI6c
zGC3Ju$K@mp?*t_Tj5A^NfuN6|1}8v<z`@`}W=|ngMW{yLp6}FqTyP!0MkBpFIC7lP
z5aJbF2n8n_?uG}(^E(_IvAZE>hvO(?kPFgS3cttl8R%|6cNhRf703^w9?Bht_e_Xa
zP+0RpvkTBMhX6!3H%oZa0?IaHt^3!(KKfk{)lBSCsRkOm7XwQl)}mv*s};vA3gHxi
z9#;hy3A%@(o>_!LT?r>vI)&q8l5iv9rX*|w3D8A8rXVWunK|5hjgC${L81cFs4oEa
zAO=VxX>1AwW217x%_zkaDfn$bMk(XiamVIh3t}eHF%W3b`cP-YQJP^eu)+Lk4!tY$
zW_a?-KBg@7tgHGWuB-$5KOeL16b>-^Zti&slG6(qgwnFJsaHCB60-AHpQKzX>#({y
zZ5S4(AL!~g2t{>gQ@=dlfC(osp9399@h!eY(vu<cD;(5BtL~Xi;Tx`ar~4T0&H07z
zo6vmpZp7|plCcbreRcg@%yoZA8N^g?vNpsE_AMC!{y|Xd1CB14Rw!S(cAoSMrm?Qm
zE7Qs%>YmIZn^xu3`E)rNo(T-5?^!uXR?H~_DcVw!=aUJAA<Vkx!drh=eO&!eF*E6!
z{_&^2dG#ZwYfUYWOY3V(d=Ve}xT*n-PyL|HUMNej=3?=^>T4XkC>H3~gY!^Lx{W%)
ztu-l1Dbv`$AT`i~;(&@A5AlyQ=mwYa+-JoYkY=RYmD>-@$vphcz~Y{P;e!aT$|2t8
zf)Hm~d8)8QMkfRk)|>c;KZD1Y6h_t9La!P2DoY%Vu<^DvC2(l@I=?zpSq+aY-T=pX
z2QzZPqB5CR9R+RbacxRz2!<lKvEh9-t%4=t$}j|14&ndridixMV;qjX!~O|4jtkaz
zmZif`TKAb{;%~C;lMlfi@v~#$`sY+`*yX9(bBohv=Ia=6^L=3Qs`ccP?s&r92LQ;m
zRO@)30}B?W1UUtAq|m@ZTDJIj*r|`RAf(go@%R?TM}<B}kL6_Ea5Q?;`zF*i-&$My
zD`OlTWwznYWz{WR)|Y)Aqj*v|_Raula*R1yAU(d`Fg%A_He%I({5T+1EC5WisY7Jz
zUQ3!fHO^HPo8P|Yn^*txnor+5Dqejf+ZVCZ>m|SVGMldGF5grAjk=Rx5+{l()H(BJ
z@dPpUJ^^pFt+IS#ST<tH{mkk-wboxN0&e?9er5P`25`s&4KAOWC(Yow`<mh5wg7vb
zF1{4sDFi=+45P3Yb)Z|m5?WCg#m`Y6jJG!T@CZhVvG9&YwSB|CF#1n4S_KET{4EF%
zRtLzKfE}0ds0}uq>L~m|lN3xTTd6h<!OT^r^az|2{~EMO+U2+gTEsW;gsl7)J=G%7
z@a?U?yYYx^|KL%SJ5=bXfye}NL461hD0%5a*k7o=Ng0`4K4f)uO9nIEp0*D0&zK5d
zQy7pSlc|X-xGd{H!10ewz*XI%-CaGBIo2%R8sH|5bkr}93P2#w%`4;*XFOBRXB_I0
zY44Kso&%Dmp#XJqr4(*X$r*mTr&oNlr{k0#;5~6pk*a4^ws2MA*!+MO6~aLF9gr&A
zGqG0^mRFKY)o$jrDFElVFH8pQrSG3&=hTf5*iHs*%;gRLGfuzPd_t!ocJiNw4dDs-
z6|ekQG8+M$LlG#N98lR02;oR*P9PHg>468|cb>>EPP^9?c;G~jZLGxdVaQ{c@WJE>
zghr)<pt7p2yjoD?%;JdHIAW1>m1X&;v+7nPr6q>+L%4bA4XfVK=#3>j*wc$sM1z>|
zHWezUT<RU+p<smXP)5`GmCEjvF?7$g%t^jXX!D+Rp?OY%fa3&scoahSgAS#5IdoJL
zvKfyep%*ng0zWNs78-c!;gpqjG<!B$RLHuhKMJR)C5a>5J0J!GU+(T==D|Y5ftS`b
zCPfSUa8LQbNB&9TaPg*48-T?%D~zzbY)}-dpAfGQ3sIA%&y+RmE|bHD_Q|XTXJCfc
z;e#qUz>9CE+go8tgQ*)xsJ7)VfeTm>thQtfs<YVvNNae{m&1o2!bjXuBm4C?<EFiR
zZv=MOyV2`2mC>LZR-PC(5#bp!6soBpu+8X1Kv2O)b+GesLQPqU*ft_AEM6J7uhA&s
zB9E(_6H7G0Ihk=$aAn@(f+`tE<tp<S05EWQ={ACTD1=k+)EO15;I8VKSOhnDxEZm3
zQEw86Krl9nA~^a0=z|3~SaL<J;<N_CAATF${HAk*Ce9YPfrGV;<H{6HMliTfIYT`8
z<zmBy-m`nNTskvPo;>Q4x6LV%Fboi6xNPsK1iHKwz$N_B`6ZG7p6`RZ-^J_Clk~K6
z0C=>WvtcZYga9o?U0HCh5W>O2A1O@wJah17OqF&DApZ20+faF+sHRU<U4@C9fg@aW
zd>TS<85HfBl5#b;5wDU-y)OXUm*z4Ag*!xM(iQ$NgTvin`AqVkGchU)u`GdsLUlZa
z6`vSDhoJ9bzGfx-wq`Kq%0yr1JCN;vRpvMQ=kOG-gyT1&ibMzz%+%V02?!tPPu34n
z+3~3uV^t7+jrL{Zocb^;?S!QB42%>8aR5On?1&ElFMYr{;to+lF-W{8tQ0MwwJg(R
z40<Pd3MGW8?g@1Z3nz_fj8!xIe1`}1H5e7(SB|qp(WMwGSQi#=(ybLnK^!y8CjEv-
zIkL>t9f)J5XY+?4s8;9}=r5A>v2W30M4*BQ#IY&mVVN}nJF%)549ZX#xc>yxamLx;
zER5r}O#>s2Dg>En2FxtWW)v#?<UL*Dxmluidu9v+aZG=c-_ZEQ8~eQ&Pw&OuQ}`Rx
z02DAb-xj_V6<?%}!o%qSq$esis+YC$PJs<+75->pPD4$%kMT}R9sFTl-Cnkz_(KXO
zWO>H`Oa;umfN5TS7y=shPzVB#99$0u1Lb-7`QK@;jO|6@Z7Rz+_=yh&ZfxnwEU0TS
zWI_uzYnX~{MPU0TO{lIuSsl@6(i>sG|JnQ8^oT#c3`ROZgVKFcR~nz52X*Z`2FT()
zh3&3>D>|X4?K4R5<zb0O;elRVb|7_y1R#aey%vT)AQLKv%F!*eqf_nHO&;$dKP{XD
zPqlYQpr}f2Nk1aj9X=vc%JL;I2=5~fTn@IpR@KuOXbN$T{ks>J%gQMQ(qiY!yvwhX
zcoYWpGz3?|&H<&}*`?g5sdVv$fpOBn{vAd>Tt=}R$PPr;*FW{m2WwV*dQ6NSZd=dy
zZmt5E+`<U}o@dPyK1{GrZte^4Df%H@reIjL!4FluGd^YMQnk>bO}Ai0*F(sZOPfR@
zo)F}P@h*~wt&6cCX&@8;oszc_$FS3PI8x;c_<qp#z~8NaxY?X7cC>ETc($Le=m#*f
zefX$IKQ>@x4f&2&;De1Lwk)_O6Yu=<XJJwW@&M%qrWtBJQtLd~IJ_rLsC3RNRVd5l
zKbGO-SF`-xF-h;*C+VXNipwa*tjcsUqaLZI7PaIp2)G)>7%=b+Y${fRgC7(tb;}>^
zE4@gc@I7$_1o9;wv^kQW2jw{oQ5W^(292l?6;H|$gT4LI--EV-*OQx4xz8QZhu597
ztAjS^I%6O3N68(Kg?&(73rY&5sH98^3iE+yLEt&)p86fX02uZ6^)Cny=0oU}N8R#H
z*VV{~pRx``Y9-H5e^Pu9b!UHr1`WtHMlr?;$Y!dahnlIViU1=ope&@0(@h1SKhxlb
z&HON)C6gIBP**Pl@XDAsYbx3dSqU^ud7o`ph=nzZDbPG+HZS@_@42HlQy$W}P$ztg
zRpltgEB|t;1KANY%Rk$0H*M=Bj1MKmb#U@VQ2BorRt)|DFdjw;DB@KEsNxiZ?W+Ve
z@_PvQLE|zYM(Y?hnriC=fD;&O!&oa-21^zM{V0T8xGFL!74@le7xG56$cB|oDYUtt
z#w!AV8HiB&I|RHX`2|IC_KLMK|BSO?VZ^!=y2BuF7e8tTnTAHVztqD;wO7ynqHdlN
zoZC8Mig+qZQEj9{XDMOXlywreq0OHjr9B8=XfabWNl>&9Sx4Fd8+0iwK5nDfPOitW
zu@Qk0&;n>~N2_~)fCzw!D`cXpHsPp{2<`I&krEJ4eXwk&Ap9zeEb@5BOpuWblrW}3
zKy{x&AYxdY3j7An3`D&U&-&n*-(x)g)VGPiVBYiyFrD(~(qX_efZhQpuN4CFjfK_o
zx{>9y1s+?|7YMJ%Sqr-U#1Hm8u4D)nc7>!dgfDr-on43ldEo`(E2xl9p{w7u?`4@*
z5>jhux%t(p1}dHr9QAY2tbCb|b?j}h8O*!l{W$*)f-MChLXAoj857q2)0)dVsY+si
zFdzh*JU^K0_yTz=>|OW#$(Vo5X*Y13tbG>*pQyHy)>Y2XJtCRvam4Y8hNEfRFs=^*
zDFYdU)@EVp_2azS8B3*f(roN4>A@hFl+KoB>22I2$yl?ZGYZC3(y4@z$tpovl|&FB
zh89o<(>Nefxa5TaZ?W5g{Q+2?e{(u!LL0nZ16U31j~@dLVV0V8WN_<gV4&qpwNZxI
z0nD;<Sk);U+CW}129Taot~}iB9ia1LvrX>d!8W#c#-yRKS!Pb3B+)R8nXnP0!5qjK
zR8!GluInSM`hYJK3Yjkn#M4GkLP%B8`BhbPdq_X9UKDN$@du3$a`_7&4V*g7MauR7
z7|d^N%lLlzg!v$n(;wa@4;7~E;7x>;V+vFs)ykubV@^HLv=odTkUt!FaO6Rtq5xr}
zux5c2PhBX%Fg!HCV7nR*OMfHW9<iAgcG*Qj>~_xm6_^G8bl>sII;b&`i{Dri4vK&`
zQ}G%7S&r-bYHMq^;?Mc8lW~+U&wh3NOw((8lKeFU!y}dF0A~VV6lI%$q3|G0%ODKD
z{n!OJ!C51vAYgoUiROfLc3^{YwOoL<1HVY$9NVa1<mX4Fu&fk9TQQuNASgnCx0Tgc
zK?!U<Q9Kxny%&Pz^W$N*9UeHL*4CB_I(iK=9=D{WoA_hOin*o~=Rp`!?Hd9Hg;kP=
zM8LDq?o^CR^M>BP)*VsN8wQ+VycKvHr3W}EpmVVtj*%GprLLJ~DFhrsM7-?ox1}g*
z-v->eW3=(BOuFYtp!`Cc1}-*$ft7{alxb~|3}!wR{{n0{b{OE7-ibA0ELbZGN-AaX
zo{f?Moy9p0srf2h#Hsvp52B)AN-By=#ET_sskzGpn|(Q16&C@oY{$|aC{Wx3M9D>{
z9>zX1*bUjS62drKM<a!QQ`QsvCNds8mG7R8G~AcN?rr>MjM2p*z=#TT5aYNndrmXj
zgZh*I4PYJj0A!JV$Ra7odrEo7AVaJGnANC5{A17~l{2#Ifl|{saF<4H9}KNg$h<`*
zC6W(?Dhj2YGoi|eM_i_hH~8vcchA(pSn?ud`yX`g(7>m@a+-gLPiR>B;896IY3Gq`
zoIqjFV=?cL26d%jCRKM7au7}}S~v&oU|v)g7gcLsRY05q7RIZ5%=kti?*X4waMSX^
zZ7Jd?)7$WL%N#u>$@*ieOf`{%L>xPHK#fp0@^Gu81NE&F@2u%!7C{PNM~!i)pMA8l
zxV!ikPHq;$n84X?AI5$kCO_TrjCD_8%%|IW5_{crw0B5nYbW?3CQJzj@Jlvc^I3w3
zZFeCs9Pc>xLj;myOvsdi-l8z11h6g}n=K-X?gI}ul7wtW-6e#2rNW`x8t(i17pkxN
zE(VX&7tsAUvtHWqSE^8f`UYie=o<zN%2AA0(GX6bfKGyj>%D7OA0ow&ltERKas>G)
zR{6+t+jd9~JeDiVOXc992KoI%k4p@m7Z<NzDRZVzk<ud2H}I_iUK;K25Sck;l9Uw}
zs7aUh?lx(I7e^8BrKYL^GB4#g6za#MCJbpVba@4qWnrkEf#>SIA$4hA@Poc2kK~2v
zAm~jM7EX!1UWFZ>fE0PE!SH~BP#@qptrb+1=@OIa#F|gKx`25ZCe|LHaaL=)_@+-5
z0|25s4BKI0XJs7-O$H5Q)kXk611p`?&;(bQh*JDrrHlgr16=haOe-CPJPKnfA7;l=
z`wvO_2&`*df1NXnnn^apk~<*&zR6-vsR4k|R5BsMoS!iLRN7lq!Kdqo&7@+|1MdPT
z)@+5z!3rJDSuwj9%0K}uMI16zuX1<?(jkc&MVJ8tIF-<F1ntJGt_5X)M~uW^-Q0z>
zI&CdovizKd@H&c05J*j;i(~EZ0N_#pcu`P85vtF)R)ssDb5P{QU{u%@QJ_w$s;nOn
z%&h|}OqQ+s0W<DM1fL`Mo@Lq*$R%E^cZR59{;sfm)=NM<)dCc8T0*apS!9NyYdDju
z+?qH_kr-ldp=v@uV{N_-ydX}QfUm$3>76i9Waim2r?^7q@7*GagU>)_p}y=efm5w1
zfD{7U7Qn5_yXrbgmd{XYj1>X`D6}No#~LNmh1m<-(-oP4Gn@t#IWHKxSysj~Y2Ov=
zuKONdjfoI~Y8jiqY+XwNP@_ERPS<O2R8?PM9qC7{*`rjNWdcrnh$WzVrLa#sQv%b^
zm5sZP%HDnZWXhxovi|%v5-OV_Z95-^U`$kDZ}0~nCL<uMXkWyw-v^~6gwqSKMvxZd
zG}as?;&7!y`TRa}BH2QS*-P=T6@PDPsP5^>^p=`C(V|7Fj_fOrUu05X3<d;rBM(M3
zC^0-Dk@ey1t!|Oa76Bp@K(*Qn8Vz8E=*YoCvVUKlOsp!GZZL#LHf@#XckYt4E6$Nc
z^JhvK6r&O_<<3}4>S6V-f>2gfSq7U}5JG;BG=mXyHl-Twd-<@m(}l&tc*~7++@&a_
zNz$mxT#5DW(i%o*Oz&sChIL>7@j;l6BNc-kuV-gcWP8JbUH!zD11nHPxcH$m2#CTz
z1!d=1zfmruq+^wW?|IMhiAs?vc@t(!{+#pWXs<1Mo<AznCRfSaGcFW=VTE+<*^Es&
zxlU~;=x=Cok%BaZm=JLcxTXZ_1ZF4F@E9WW6pjJcV8Fe^yJbf07`owdmSs=z?z^xl
zk`%x*EQDE>0K6muPz;o}lLNXG+LVD2JOMu14W8T4+9m@uR^q*uI{`ZdYdsWexD%$i
z&v-&7@m(I2^->5RRMta0rGPW8&bX?ENboF9AD|Wz3<j@kTGIYY6gK9w?eV_W>)ZS6
zc|5|6UYr!34ji+jq7ViMvQtz$ORA_ah0~7ir2P3WEf4_=dC%J_vD^d=1KeDZR-v8)
zXU69SZ`do(yx1*I?(CM8i}K~1#l^rq8iI775x6gIVslR59L70~^^lKndT`HxWv&iv
zJQFEL7jE9jLOYOGV`3~(%>gagz#9vSa;B{fyb}DMgBQkI8%s-UC^9_K)2yzRcnzxS
zhj*R%sMz&8fCFf&t2jBWQ^0cpFycyA?lg9zw<_l27}T@$gav`3DuQv8F4K*T%D_#9
z%T@H)X&LhIM#wm!C=~cmmDLl0VQp;qC7TttVzYx4<$v#o>{tjo@nRgN=M-rbdnqu9
z3iKkQ;uxo45gr7cpv@i_Y{}b5n@q_+jT@xXp}eX9#(@7YeH5qqlvb2T5oG85yaISk
zL7pK(Q&<Bnx3|TmwR2D=Rz#!#^+^uKKi&NMk8Kk9{$aPQ(Yc~ds8Sj-JH2fcGaU9|
z-CDL)85>}9OgFZO3Et?XdphJ%6_||RaFgp;orj)P_~#mSoL55^f(889>gZCl=s;rd
za2n^_;zktgd?Ve`ioJ%Qa6xX?GxFRiY-|F@|3**iRTCx`P7h=3_oH5__Q0tmC*>%c
zC|pxc@e(XRRZ~S0Eh>@X(k^MPZ;&p~?+~uBDJN(Sq6kMqBm%sutge(YOt1zb@N%P!
z1K1JIC|^?!YQ(bAJvcRJ5tc}n7Kg;2NUn$vrdA`#??ARJ=Cp)@@`fYb&81g+4gVKx
zpZ7we03N-ZJS@QkSUAuv0Z#`EFw@nH3F%@)Aa${J<a(SM357!P=!U1|`#<^x4A4m>
zo7F*I+=KlVIQF!(bxRFkQ4Kk)82oqNp`+3Ue3~(}M$UwRiAws`7haNGd+KEBq)NGX
z%?g<hT_A*sOfL)qYK$eF<6HbD|JYsX>UIO3*^B-0P<!!&2^7u#s&MK`J3oVgp2S8%
zP479Vh=rAN7u0iB+=4)=XFmrdun4<)WAM=~P_JH3)jl>3e|nG_o?a>HKsrs}NX<b2
z0&;5a0l2kd06+&Qp~FE~IBkPLwR1BCwXu<>x(dCBZZr(P>BUsxX$rkoxG!SF{sP3l
zm`Gv3^@4RXus+<NwIAza4Y;6iO@p$61Av5~8x+#<!2w7p9Kr78eX?oOGt!E|rn<69
z4%OGoA0B*MT48CsXx(`-clI=?1XC%7WvC9ulva2?%z~k!ysQMC>;Y+lGSJxEf#+gb
zFn5Mjm6xa)z61sa9{)C^5TL5~bZ#BUavW>cAYAVLy`U>kTVJMhWJXIFFoXVSaE~wK
zdN&O%;2|~@v7jv5n0X>zs(}Y}B@SX+Q3!Ks@fnjPUNTi=9=twG>|%Q0Y0Qel)<EDY
z!5y~>p?Ez>pb+ARcgN&qB1KcNd>_h!5^k9u-)n8f(u{W8>cLKzjbGrgJury%Rma4G
zfzcZXO%8Y>K*F&RLT<aQ)>vn3`3P#Ph8H+SN;Fypp_alr+oFD8XG%c$fMA8I!UUyo
z<Cg8i1}R}2Z&x()ENMxa^5Y->Tpr)@w5&Pr99ezt0*Thlkpzyp>v-u=bQ7_f#H<6A
zO&T-;!2&5Lm;@tSDP%zil_)nk$Qg<j>F;mDjAB2)i$NNGC>hhZ7B_FY(k}Dnr82Gi
z-VZGL2iUCs*2KmjJetTT!fbdn2=lD(2xbT-f-qrS1O7X07<NI^7*E;Pk6F<pM~}%}
zKfOox?A|Z4XH1a}2&d1zxC^jMfc84&iETS&LPe=et(hptK*#&xo>fs=Bxfz2C-Y}c
zlLJQ^<f&~hN*IFJMXQ&~vLy@E%#J#*ojX1QPHq^wLyYb=7t~&lVYP%yXCHIZj^=gy
z4?pTP?EN33BBR!%6Lv~afH0*h0*E6{3G1*IXZNpEI7ZBbD?jKqP*^3UbCyXfPKvwh
z2S1PpAKfhLS1p%se(j&72nM4}e@r^D2A8%aVzWXs(xkeFTPd8K^75--?1a~s4`VIr
z5C`4&_cp^R28LzerphPw4D7LRDKhRGO*rL#>(IQ$`K7_C3pu+U#_q<-SOyrW**aK9
zJ){M+4WcOwe^H6p#W<9r6iP&iv^6zKI~1`rXZAQ7ak4<r0AJHE()s;CDS=W@Ibi|>
zKPVzF5GYzDOlUBH0N020$gdpjm7;vV%$Sld;Z$fU6q1ia!2F0YhF%HVejvW)W7hT9
z6EmOSFo8Efcqq+!#yy_E3?<H8&nN}Q0R|+TM(jg!+fVCcc6CVJ^Y#g9sTY-jQwo@6
z-@Kz+ZvNE)xkF~iIm=;y%~9G}2e5SD9E5D>x7vq>n2b$4!6|$4QvZgv?H7;g+IC-{
z*uX51^1vZ&p>M6OE^Hv%qWGhlxpEs%FhF3>bV2Zkcad*GHP&IyguxjGOBlVZ15W{Q
zFe#(xi{tWZ1mLa|O%!A9YMfpHg#gN|&Wm^itEElN_-kcd$LX%nJe;zlX8`+iU`bLY
z2#I@)LfubmgVCbSn`qFAz`%tL1`UBm(l`ng%LU5|v6l!ZVGuk}axw;H{=hD(CKpIi
zX$h36W6}yQE6$8+#a)kYLs&<81rj5I$`sw4OG?YIF<UjZ<tc_2C6oZjjV28Oiqjw|
zWVxN#+5hQR+T@)pYouUiiTDPCi?B)Y`|W$K{)%zUy%3N`DWL0k$_b4XY(p+R4Ykqf
zU$j8&?KFT5Qn@Swp18*al@uOP;H7FjQm}!61pI)CkqQ{_`K)9-euR1OXTfEhJH?xj
z@7*slJ@3JBoL`Rkx@I;ewlZ{;hw{ZGS7RCK7Pi$C2ScAOD21JyIL65*%z^cD$<2Wd
zISYLp#wja!f%hJ%JJKtim<U`ny+lf@C&CLODh)@DN;5p3x%Un6NVk}+LRn5AAEqZ?
zQE?e?bfOevB8eUk2O7H7vd4MT;hhRYs2Uq!z<c1iChXHOC^NCdkzn&<QV`4i{xSCF
zk8cq9UYA?$n|(EmwQ0x*n>sr7?e~ZL*P2yDvoKbqG7;}i%j4UDeWKoNXY5Zo)T87t
z*t-z4Umx$>R(oN1ZihkRkAHedp5FSr6c!dh`97cw;@4gGUYWOGq5R_KzmTV&eF3^r
z84M&I8N|d}3QO|p4mZfs<tt^%g0p4Qj)U^t^E)v^e?*Qown`EB^aU5JlGW?Z$Alin
zDH=S6g&_)HH0z2`o@ew=#dVi@`YV1;9b>6@f+*7U&63`I05j|$K6JX;aTXQe(88)J
zs|W_}GzMpLH_m&eH4C!_df-+G6%yzlKpPBJ<;4t_cUrY7kDCw>aa9`CAx=JA)JGs(
zSa9)5LSe^ZBK1xEeHU2BL?#1*qziv)e;tGo2#K)rQGv!wj0~qIOn@Z?>)QV|n6W=$
z`8*%?)D)LeNQL&?jT!eXme(x7EYorfJZxna!B`u%*tOEIopfoZ{PE<oFUp<Y{!gU<
zRKg<E0R|kyKve?4?Jpa)%I0TwC@WC`_7iAn<GVgJ`+n~7v*e5g^JL=_&&Ufqc1kG}
z`$h9-NKIwAEIs=SS#s7H+EN5&<Pw3ZgIgC?$_c1!g*_1P7^83=yZcS|YKP!o4p%=N
z01#NrtoAm^z(Azd5fi>Hp70)lF7p|r@z8QvSSki~uf=S=Si3i3LqG@)Y_XG;=}#D_
zD3NjEST|$VxhNC^Cj&c$pTRdX7!;`3snLVioItCug^dTjaA%ST7(48KIj=|k7PXts
zkCIXYIMcqQbOsJ$fH6aZOwnEjOt`acKh97+HcU}8FzEZDMG}EP=M5KPg-KFYtvCzD
zpNw32*?RC3v=1}G5gftS@$%#N3N7i1)^yi^W&;5z?8Q^yhE%S;#aU`H(m=QX$^#T;
zAX#Vo0WcRO9FqH-b5HHn{%dOQg=FyN1<)fq>cx(Z{hvW2w}CM%HPUtfF0?H^um4YJ
zJH61#*f%3hc`iM;fMTl{_>Rj_2GPfxL1Vx9?SqmBPoZPYFcxC}jx(2>A@8{Ao$|;d
zkI0sdo8%A}!H$>q$slGXl3=heK&daUs*yEsTOf5E33>751JVbaZil6J%hnfU;ljCc
z@ulmf3bUX*;zrY`?kp2H=+;eD20t7-z|_tG)7$H`(S0>4*JOW}7bD3<#4sx79xNlt
z!x9y`%({X7&9Qp0za2w2?SE{A8_)pIm_NT%f~D2s?dXRR7R0z!B-In)HVX=(5+1Fd
zgW2{iZYEqEVnn%0VK1o0-j6lv`xJQjP2!gyIN#NANc#GkQ6~z5*m>MA&$;KGt3B6@
zroijeobI=I{@^z_+wI}zG&FS4GYvTP{JwUXTosXu0vJ^}PQhKVvwc90w)M-TvZxf-
z;5aU9>_m6nCK!z3@d4l>XI9x-{v%w8=J>@pMhMZ(wi1F~1zaNiz|-c|erfCOk(t;C
zFv#T~Oa&x+ZeOQ7`a+9bw6s!YOfLeD@N(mxwQY-A7oiwTzm84lYgxT?AZ|~m3$aU!
ztO;AmP0(nHQB9!izy_-Tg9pZyf(Se>utwX3iStrlG?<(yK4deiJ_$l-u7EO;hxOX{
z61qq80g8#Vsgz;%tGdjPeGRAq;ODZVG|)Sh^scHg+A5IoF#bj-gd?T_I?>HSg`fmm
z@B~vc>{JZ0?RDCzhC@^ha)nT7Pk~<*gWk@#1Z)lTy8kKUMPpR*Z06(I!dZ3!jd`b@
zAyNs2h`7w4K#I(`T2R~+KC>*hDEEpFa5FmPwdn~;+85@KHzvUo>X;Y^hpvxs?K2c-
zMVEjDmn3e*5tA36H9<m9khFE)lC7__D_ETYdWnLbr-CkNb2xVRDC9OAv8&`xHbv7S
z8?U^Lz!yowrI5+0CRIxqG)l2!e_e<4L%BR}K6oX+gW;+d^#AhVZYhB=tq8|j(sPvS
z-c6tHL&vO||3%@WXnaIpvEP(|o$bmExt*(!27QjiRBm_@3uK02@{&#h+iFJY5A4BY
z0z9OkKy`MsOGitiR7{)<*#TY!@aQcpE{6O7&r=5GW4V~XQ)R121zBQJ_Q|=?7wQ`T
zFufwxc<bW+utcNx5Xe}I{lUOg*C@nso&!jKcS1JqY>|m2VR)IrF&LU@XJ=e~v*oDF
zos=gF2uu7AV%f$N7+$GtHy^17nriP3w*?BvkT8s;%Vik%t1$it3!sysyfh{%dT~0^
z!_PNMQ63CVWnoO9{C~u~37p+Wb>~}m>wQ(LH??}vZY_Aj#$cP+?2xbogCXmL1O_tX
zlaQ53W+oHy^5%U$S%!JpW&+_s0%5ZWSx5rd7#r{g-tZz>wya&P*4EwXeY?y1{?7T=
zy|*P9OTrQ*_5J_<wVpb4>eQ*KQ>XIb>yIA8%+Fl-@mH)0y^KM^sOT(Hm;JGYxte}F
zF50ABa3`|MFfznPM@B~KdKVVBGGKpx>_~raE>{>drXbo&oW3<8$i=7lmX5@I@6pG@
zGiYP$xLFMvk*C<uYhh0M%A0Nu*WYkMxby3GfCm<Fz^9J6sGn+~d=6S$J-8-px$<S9
z@1FZj&YNbn_`%0^vI%p91&zsY*|yE0lLfj0Mw^Y98BA(F|MbNK8&U}_wWm@`ucJ;o
ze^}Y<+$ZhAhy-&~fAV7PTG@~NLSfZT2%}@@tb2+TpqlkVzB*PN=k#|mH51mw3^e>!
zwMtc7vs6#V*KWV=YL_{ExwC>I{2?%Efnn+3VYACpa)PyXugdmCeO<{;S84a|KRDI4
z^tDuP`(^AfqD`LPn@`t0mt9)=AZ+6rK&ugf+031)ij`Lrp9FB7k3D$kNVxMG-wMw?
zx1SEw6P^_TB4GW;_r5p0=Jl@+fBMIN%r5-5!{j7qyCFO=J29*$*>QjSt?v#mz3ENi
zIj*hx`d#0K*iMAUxe8;H`z_!9o}UdHwr&Y4u;?w-d3Pdo>(BNXiOxRIk}THbCA59h
z<6gSoOig{dz^<(Bv)1lfK^FKqpW?^^;4-Q3Zq7y5A}Y$l2E7u45L~mc_0`~*-MpQ5
zVKilom@hyE97#yEtPW{S*qa!<7Z7ITpl^SYUV=$1Rxf%NJjpYSFewjRQ-?~{`Smv|
z<VE~pfYOvHlWho%t-VZuTs_@KUxBF|J9g8VRBN|=agjw4R2}8C8<1sk-N02rI;POp
zRukU&me++1Yx~1by#6N8!0`=Lypc2f#20O=teCe1y2hp+4Ct^^MTi>&BwuSg8T){#
z)-ad=Lu9?sV((yXYzU8wB8+r&Y?y?Je*Ey^!=KL8jitN0=N1niZpk*)O<m1w&ZJ%&
z1gKD4Op6o~`>u94_aEeL;|CrBS7|%{H3wgk;i4<Aerfo{U;3pmf;#AT?!Je*viru_
zM+vQ21hF|ZF;;f>hO1wGW0++3t^pzMIJ;p_?%Esf_~!j#<NCE>_0UjQvu21z6#A%<
zQbJtzUg@h5F7_qfj-k!lz*#&<%Il?ZQ-x<ZNZ%=)Mp!x4Xd8P%2gga=IAMfA+=(j$
zPaO)USfD8s1g0vZU+M;qYU<c=u4&}x00vBd=567MZJWZ6zu_i3^0SBlUBlv0bWUTA
z4DA#*Huba1-pAmZMJDsUX(UGOb@gpbPTOoj3gv3gqEuMhx&MTS@@UNSQa$^diz_&{
z_<EbLOHxmE?!=b9v*UPJEOv&jR`?cnPm0jTzdt;}dSyOzx1&7(edRFNHL#9jJ1h<!
z+_R7KjSJvi6U&N|(8gWF?A~z{1NG+>I<hAI#l&|B;rSa}%Qe5$8LqvogG8zD$j+1D
zfoDfC(1RVBZJ>pCX;d_G2$pk;^KT>4k8ILDTPWSaDY#DO8Cvo)Ba3L#>2?a}f(hxu
zd@c2I97x-v4()=T6}j+h@96jQp-j3&feGWOAgcUkJ=<|4KMq7*v#B|J=$-xHC2QN+
zk!}n#v#zKoH0H949A#Mu*R1Dg8iqQ@rod~mUfIA7Y!4SZtm`ao2Id3AcTy~ub#Y$O
zsk%&26Fo*h(URE^(j+C)hIg0cg#%y-+_)nGhT~-MJ$=<1Apz8CpL>vjS3B;?_bk;A
z{Zhen=USGAU&gyQQnJ=6L?td|3ohj^;_<HRmOb%c9FjWvkILoJ`OD1kn}|&lJIT8M
znTMxnw|jGcYq$(!d-B_{XFS~b$kA}~6=?QIfPw&I;BWQXH8u&bzKO=Ccv5s43xuN<
ztf2RCepZuqGrXn+0{+)f-oHO_0+T}ZVW6im%wdb+_U{}9qowc@*Rk-{!&ph&921dj
zO>Qt(nqNcS7iFA`FfV(SC%ZQ4Tk|aow+}UHwc}fIzUV>pLOr9?m?(`--My|OpgPYz
zF@BO8rzVh9I0lIfH_L)gBgZ~bH=;c0vN#S?+7uLRYx15rW$mTw*X2P4c^Xo)NUGg`
zKX#yyOYiof&5_BCzAB?RjJlr2_-X3EksMUkY@&G26URdnHg)DX#`5nEA3>XkTYc88
zU=k{NRG(d-pVWsn>(<y+ZO0CCT$KK*4G>=xLP3jT#eGAAoL^sMc2b-{Y2!W})?)<r
zySqkhXMIzDGq+#Ng{PmJ2sf{44KL%0mGs^jG-r^#TR7?op3&C2WStV45HmKR`_!@B
z>vGwpFVn7<i}VyAr#XtcT$In$=(c$QolSEM??Vqg5sn@kW6{Tt);6Qku64mLeDRCn
z8{hawc=nlRIIE5g4d_pOQd%66=`g|?{_b!8E<F6uBjLLb+;8cn9aKwLZ+Cat%{**`
z^Y2$)zNG>KWeXmINw5h(`RQ2-O&oXoZSJ7Io3F>^b)l}pMP4umIwt@~STM#L2Y@7<
zf?_u@Vp7KhJH-*sP^}%1mpet&yPniW#&+!6m_8j(OdaI-4nC3a*JRXOlGZG$kDhXM
zlB8>TgqX1+y0b~X;5f!Te``>oX-6O|0~2Gt_|Mda4UCfEp5#vik*2|3!T|6l8r8a-
zN<E$EM1b;>;SAO0iKm_pJ5af8#ZW>HAt1}7JcqgvJNlugx7XgY#I0ks%?1L}Xw^t(
zBD)aKbWTI(Xm#ct3kVqXW0ex(e1<a}JD=ViUd<T|-KTAYPx$GE+T?EzV3;|-r?g|o
zy{WBRlhHT{yU341nxh3qZ*(l+u@!unxH_6SJ%p^Xa}PU~VS^)LnrMhYGqv@{uocA0
z+K#(0EF{%>7x2nS;|q+BS!zgg2Yk>Uh8AtGQFxMPjB3wV{^`#ozSOYtFpeLkbD5Ee
zWj*Iu8(l~*BQAkkOv`q@a}C%4ppPYkvj)2qh5%($Z-zy)A~b^#Z!55i2r^?>Z<UqJ
zX4HJGjh0o^2Ur>H0O8~m3riyLX+{%;*DA+X^L)N|C0-Xz7=eaVsJ47VY2UuOruykW
zVi)^Y1)?!q{7>(rHZb6?mE3vG89&WYp(p91GGwC6Byfl}AA0zau>HUPL3r@q`)t=m
z6Dm`sqMq83Tfq+Ux4-l4kov#>kee~~nlYmmc3QMp*UNdc8EiR&q*nj{KmbWZK~!=)
z@#N0%mbW7~ldoLl4+az8<`22slfr4^pPXr!eFwbY^S}_3S=vkU1D$}Ex`veq3%!O9
zX>XWI`l-Sjo4U{{ILvUun9RaZ(qoBFCFrMl5R`_-+EHoSux^N>1)bs8$uWc(EI6~k
zqtkhe5~?p*tD4XibXZs4%A%B%Gz=MDuA<P)=I1{AI%)`7jaYCQ9!JYTm*52wNR51{
z<_0W4J1C35Gnp*Rbkwq|n+*>$dG2L`-qltYzQx_y&m5c#Z@8A-5{zm}$Sa}kB6apv
zgZ->^6~n$~_kaTlY|hgpv`MY8dsQ#1U;Uv@T5sZmHgQUY{_dvGx1uh5@0pYAEaVxk
zOX0gaPKI9k>6=%!g!<!55o+MG?FekpbbStEv_DFhDh)Ad&jPBqJn(9~TGyKiYkQ%D
zQayaA4ZbDq1Slf26dLPiSYRxM_q=Nr2xHPUsp|xx8>z*DJ2UYi`Y@LeD7Y-4H6*t*
zw-jD+b!&LVbzNcRcuP2N2yLyR<5%6QzHTA3wT_0tZjJ*oKJOV}my8=wYid%Vrw!uj
zEP=PwP2nTkzaGN&a!Ho?Mfxd<ri1`h2WQs2RcGr5?q^|TXp(wIPxIH9=@WPDxToeY
z)_L$zGJ}5TgJ(DiyJ%pgF&-J(AQP^t_43Kv__~*&iBd{Ct+DLtr=kjO^;Fu11Gi@s
zb16Iy-S!*x>AK=uvaxSY(=X@fpJ-fUX;<xj-u2jVvk^4MWa=Lu7!E_6F~1g7<{BhB
zQ{OJoZ{TCSg9B(=EQUk-4j{)OJF|;t$504c!9v;~N28iB+9$c%`lh%VDA+vM7Iqw(
z2w#6>B&_2azWv8$!>RFw@RM75!n!4Ja}d6XxmF#y)R7ltat*GR&e4}lBbE}yh0k=$
z{p<*)&gWx9O#RM`Gg~6!i8n(Bl4~!2*^S^r^ic@i{X@h>!xF7DkV=P!?!c4g15wts
zgxG)4wQxli!ENpUJdxWwZ2qm{tnbT0dQZ3WN!uh?b`PyVbxD5Oj`q~#n%-_lltg3L
z&ItRMBzM(>mdo42>tEIz?tbK0_{xKaS&t}&Q?pCqr*9q%eO$fk1As<A@B&WKEa3L7
z8M1}jQ+8Za?SgF>#?QeGL!q5TA;T48s>VupMdY<yxb>BT;cF}ieE&H%H_7jo^&Mf`
zaT?@n$013MXkE$T)HN%ydjhTHnqrSl^0@eqsgd2CSPA(e1z#@6sc~5jQt6U~<l<aK
z;q~z1{rfqF_}o6zbkW>N_FQVwYAJ%RJHGaH+hK1*Q$ZRrO52Hwyf!eW(bC0^OSt>)
zd%`#F_=Zi`rCKliNlw*q$P?I=nZXWQoIhwB5^NE^2xH`P`lg6J#*Duy9XfPVs=wc4
zPQ1_C(TmR2#fDZV<IkYcGrH)fZ^aQN`9qc2?%C7iJVsBVO6~60@FDtH2E^5I=5Q(;
zJvxjUUkj@rD~;LJFwtq%N=QOzvW70fL}zJYcIu$&oGP*M>wbbp9lW5GW-&&CU4(mS
z-Sn}YH#51u%NmoS^*r5~K#r$1J`8G-m7=G1><))nJ*#I@E~1lR1-XxX?Bn4JU-&{e
zfcjMn_)*<;MS-b>FgcL$|CfLM7vW$2>7O|VbHLIxCInj#u7{6|pssr`yr$+R3lrfh
ztz2wr!Dt;KK{UhB&(CzG?*gBnxs(%v3<9I!%jO_Jp#=>wa2Sd?Z+It3_px7}=o6@L
zQ42zSNjvsiZw{$xj(6ycyUuQ(O~nglp62Sf)X-H3uHf8+kXR7e*(>EEgt!o_GEQ@b
zH-7jpAtamm(N5Z9%gXY$PRR-`tB2u-cfrX&^`(Rqc=JI0iY^uyKu3;GgbCER<;KRR
zSOD5@D&4Y~&@>p$MJRK3Ho%gB?R;8GR>CZXK4XDNn&g3{kJ85FUKi&J7}Hb7cl|%q
z@mEz(QC6HFtHd(~2I`{)v?&%VWYlB~1Dv{FTXmJnysXJT{@7#TzHfgUmHB3Ne>oqD
zu+iGel|~4?)9f0wV7zYUlRLu0-+jmg7A>f0u&{v=-Z+a!$q6Q^<sCBNkQRyXMHrJN
z@;(BrQ0}KEPhfd5gy#hNrF5bf)vuPFa$S$)1ja*cEF$75^+fHanC$}d(~thZ8<o@5
zHacQ3H!&8*!S4w6ICe4kj<Qg@63fy(9ZWuPE|4jm^0bHH-(KZWRi=lkl!Rv_9z^M6
z_*uv2Ju%Luc<TIrUuWin>|ir40n>A64(;GijeB)_c;nSQ;VTav33q*egq`wCIDBF*
zy!xsxtfaI14PkPwkLnQ_no7aby0Mj@V;V;e9K_!!!>+PfHP9dWWr!7evhmLf5Mqc!
zpL^RY`oo=+@#yaHFwey6%C4sH+9h`H?is}<2g36P1jOrChHMABUk&xkk#{K&RaM5S
zwp@A&!F6(4Ml`)owl}51OV@K&6ZOx@$ySaD_(qVLzf`ILC#rfOw4^W;TGWJyx-${b
zO*bX_sCGZi9t!?;+YLC-QJ^9!<)tOmn!#p?Rf4ILEi4F#?%<pm@RGQNMX6jOpU@P&
zD`!LR3U19<Ov$*n*}g@XOEd3(XY)<l{~Jjz3I5UxoE>i9jI8R)*p|}Savcp@K=V;>
zCw(QULgGPh($2ObAb^@vJa+O>(+KIyUkgqcGf(a%oNAmlaaWR5$7;mVO@s?SYJeo4
zm>KY-+36~sVsawps{ECYaL?0>fl5wfms*P|DCJtpOZ|iGp7xq-?X9{FD=<+G--ibu
zf{<3$h1x6I!<%2;7ruP&!SI#u4zqxr535%;gm?WIc3L<-p$U7LL+hO}p=V$KI-CtB
z&^px-A88(~U=eZ+7R>7~KBnE$YD^iI2QBZsaWLHV_%RGEPB4blgr8o`Ef3E!S^pNs
zpM{#OTzhpbR{F81U6jq9OX}c1bh0!%-!dZogPn8TEEA**{QC@fDWMa|9%j^9nW+P7
zfibx$%JVmZfnF5uKH7{)voV$9=<5PwrQx6Pw=y<(8v9Phgd9gqvjg1!4qs)V_c+2`
zlAGswseYT%*_G+q^kBL`h4#X4c1?!V40D?q?6NfE!ZokOSR5Mx_w6_qI$5}V*A|SW
zvB=7bws#!^6he_h%RpA(R}J(rai2FMrEMLpVQAx8x^Fi)XU?Pg!_mC537zuM(NPzE
z>eT}rtHquS$A}v5<H+Ypj?@5_X^!m1;OV-SkQ?O4%G4y2s7vRNr!vzgcD);*U#e1V
zo{|)=nxD>4<9tQ(#o^(jX7@`nnJv~>1}rW@AKDBsS&ev7kJoPd8{haQj*J}(cinM^
zE&R75vq^(gd_ZyKM0!~*yveqL=(EaI!;-X0RcP{B3Rg|kOx?)Woo5D~o6mW0#R^Dz
z6Y%;w)1Brk=Bz(?d%Zo0zCqqN)=ah1R4TTGaqe0_ew0<EIgC^hw!ltP1Bh$IV2+S3
z#A$U;olV9mxb&i2ys}o7u^{iXD$)y0vr1%!S?rUemzU6S#=WmtDBh`tjD#kX#EC$B
zR)^OzAsFXA)c{67xxa%4hY?~IP>FZKaRV+P3=a>7z3k3uK_kb2C){YINY_VAPfnWf
ze}swo?%li13TXqYk#dTs9Z{XnnBrW#4eS<D=@1b)g3-_i&g5tQrSOT_lTY8l=SY(5
z;y<L8ZbAs;3LT^xxR)Arbs5j`HU|W6<^&c#Bm^*7^7<vQ<jo4WRBzMUUc<R}jPDFT
z#o$BDBs@f??<~v_Rq)W!?<>73;B+B`($g$36?9xgX#|bsLta|6!cQ=yFeYd%FQaci
zQfDoQ(!dnVh%>MmsrLbAmDBF=!aV9|!jn;}2dY1nP?=04$ZDl=UUmf_+*Xd83}Y3x
zgI!~3bRZX7n^X@gmIK1^JXdwqvCCgm2R^`Mb(|7|imavkPK&n%;n`Fn!xHhuchZ8P
z)Zb7^>W>aVrN1tNAVFC+n?{{)G917fsZ@=%LtgEg&^oANVxayeVM4p?*I$1Fld1af
zt#96C3m=N3``mTwf$hYb&_}t@xd72w_S2oWVg<(2!}&%-EdTCO>Fz(0VVARnUtBNf
zehGtuc^1TSCQPa?Bt`Pnq&^Q%iw5DM7@^6gpTR>eVd5@hep-lZ;(E;e;8^DxYo*pm
zR^Fo{CX_eS0?roZr{H~@!`6a<^+^k&Oj2n4z|Y1JT3C7DqXU7=gfFe@*tjZ_n>qEG
z9LHwDanz2V#B%lt7PxUKc3cMEvO4_yYwDP^AH@oJKD_&;{;+8fEh*~Z*8wV~sFXiw
zCdU}Ms(%%C_)ei#IuYtIe7btgKv*?2q=>|kfDtjB2yA%OvZF6`+lkHWvD9%5&>nd0
z16UK6aXaaQ9Rarevw>q?AvG(-!yldN?=Cd0YR`m2qs1^gpW<9^Dh&3p02CT+;yjOP
zyc$*Q>JH;@OsZ#Qu(aKBk^sk-ChV-Dg%lb?DOrz0AlBx28Us%{_g&IekGj8coOc8|
z?WjxTKF^;`*qv}<A=sy=LrVs$|25N$tEq6{1Zo>&q=7uUT98#(6smjrRx-T3oaSP_
z6p!sk7+AyZFpEHFLt&u`A(VR3d|K*R?r2htYwSd&Ig3pMchz-VgeI_6lG=o<$=Fbu
z!d48cYbMYWTVq9`wk4#y*N0SVk8P+}CYA>os_)6s|1w=&*tKIK%$ZTSl=9}hyp0Cp
zeb}H$Elo1V;HibCAAze&FEwUrny>~(;ZL$q@i>#I4E2}*hpZO$+|nQ3_r~?%-lvaq
zETcAD!4A6(8o*z1qBR`j0%zl~U9t+x^3!388*h61SBCYMVNZs$+fr3_?5J<5Un&pM
z3T?F4YuRmmZMu)GLt=g5knxIAJ>iO`MZVQs)pdDmsLhwpHmKB#?@}ciE;Qsg9>+?4
zC}<&u_AR${gdpL$x&k`KL^*?uV3Qr=#~xkDyuy)A_^hHCK9bz3!i`X&8pcT34$3fD
z&A|7HhY(9?2aN?HYdca2&)3Z~nm1&SQ?l!ZLYfJ#`T{1-?hRo}b;BiPUHr#lX`!Zp
zu_}x+#_wVig!ym@yBjI3AsmuyUJ8S&8u?q}_`q8RwuJ>>7!r&Ly*R;OQlc#!TWEj>
z&4pJCa`!rCu6@Gpsgy!*hH`z#k*78qR_NH3&eWek!$yn3iU{)xlMECLO}c7r&r?rz
zS(;1qGd{kziLUpX%Zf`X5Nlq3CY91CCHYB5h8N&9k(4YC(IYQ*j7;N!cn%RHlSr<u
zg_aa989{~((JrIQSIEP{2-iH!WmU`7rnq{O>=<43J0%(7%`cUH7hiYAc<1{(53Z<U
z!504w0BicwixV~zryfIttD)I~0t*rv<dg?BBfN-UcG=b3>Li@73);1MAZ&iwD|sib
zCJo8Vw#X`ykZ7rul>D^1mPe>lN3;nAs8$TU>({@mG@Ib3S=mf$u-58GNh9^8aloCP
zIR4D9QCd1SqT|o;SRsc59<KzuvYBw4mBVAlPa1)Ft%#Elop$bY`-67ngc}jwo8S62
zQ|<V-ulx%Olnb`o-o|boYj-wjh<S*hHHna#$a0GIrik!84~DW!#nf9U^AnVL2KdjD
z=7;khezufaF<_JIly*OagDmIN(^8XyshsZUfEcfXL34gHI#u3D2qwirffbzZ+44$u
z+*zHSI0)0?US#M^WX1vu*L@+R_H2TQGVzxRubkyUgvbRHxw{9(4}H!|L*l5vEwU;J
zEt_MYNQ)`wSw+RdF<Tw66L|QK=vUXPO-~GmELVACSoJrjy5WjU5~s1Uy|g%GeF^fl
z>XulMTm)AO$DRxQYpw_z*S;KFfhTY#<3XyiZgE(g(gH^8i<TwnrOM2m+86+oR!vK5
zKa&jlqUeyg1q92v*-`8z9phMUWJwZW#A=GZt?F4_wBJmr_#v?*3aGF*(L&-8pQ54o
zE?zUw`SnR|GKd0f1TgkVosBYjB0zpk>`dtTN)T^@fhP32hukNyo|+<9<pwwWIX|oL
zii9P`VwMdO1~^C)pJ5l|Kb$<-`{zVNvb!{Hab^&Cl72uv=Vno5=Xgm=JHof2R6yy!
zxB2X}RPW-VYvefaB%<X~1+G_F88)xQ(zgUKo%LonS_?u&b{XcU*!jXq=pr|JcN$|c
z657qMIM#@kOh(6Qlr>Q_(VfFagBGN0m)}wujiIhv)T-Jgb=eaWscaj458){6m<&i-
zEEGB(il|7YnW(p-mVV1C2MllaBjJI+<pLXE>#PO;bBu5Kx{k1mYi!o8X%E-1`%VJF
z!QXPSuGE$BP-BN|R3M>nrV?_Q*6zK-k`muSXwxky3&SU+8%gX0>6KhA$=h>>N-cA=
zKPvJ}kTJqki>hJ{OUu)BEF$`ZUHt>{t2k9XI{AxVHNn$aM3f3V9GZm=77U5U8i3J;
z@RjBmP$>%!L`DJONgE^?2?@Mb7qe7=_E3wz=cy2O9)KGv(DEyVRqY6bsLEe5hiY2t
z)bUW<^DuPvto5P5LTS3bClqU$RLcmX?Ggc?T2l*#E7>TKfG?-YnWGZ1l3G0E=7#j>
z;ZWFpUl?V<e+>IjTKa0G4O;u!Lx%J0(qyx1;>s8zv)CY%mEoA5zKh2=dpmkGq)zS#
zsZ+ZlQ|MnBZ^((I<JiI2`ub4nS@R<qFBj8|sRk@hhY8xAGrh91?dP8XaTGkjq;w73
zt1(7r__3W&@0VrN#Zf|aM@(Ae#^hb6>cWAMh48Au6-?M+Id*JFDZH-<<q6ps_Jt>j
zs@C6y8_mnrB>criU47{O>ftA!=}<|+wkN*Gzs3Av<ok_TjOR%!ViAo{-5e!;ZO-b=
z8~rVfrbo?&H6cB;+JUcvu>2Y!j|fzNy(b=eL_d2b{whbb$t1iM+b4_gts=IYY;ucy
zqK!dTaqSpi1}%^5Wox1H6%Hq9kzej0rvzw&{F42g7#^+dTs`QELC}zlDywQ%Z;b`|
zP(O{hv7ksRjEmO$;x~bi$N?6Bzx3o{c<La1vvV<AzFEc!HRe{28^p!=B9YR^vM5k9
z-gefpxp71DhQ%~IvVpWq@Iu|7z7+oO?(NqPziRvaaJq}{fE#8V*2I!xZDWJQ=NaL&
zZHqQdbW0cVXF@F&P46Nbh`_$JL3|2BoqzSe{}P!YW4479EGM}vx|oM2jbBFM7A4N_
z^bu1DUfCDWqKH}`gFwxd+gp&4=)xB^e~J>a75amJC{hj2Zign}QcE!v<>yUAT&^mz
zvm?~ckQC#Z5Wxq;sENBdMG%3;Z};>tp<FmJZ1Ka6macG1>&h=NGV;;CBm&R)t#-l4
z)yn3O<C+6oK;U2z^Smf6Ci!2y$H>S?9frf-A4@QzOF&h_>bv};YWh~cQJofH*o#br
z^e!(sC6%*DHy^Rqild!8tr*2vb|<d}K}+G-v9wA>eEY+r3<F*wylQxoq-M!p3|M)h
z#`g9Q9{Chukv3zr7v-rU%Fuq~BdO_hwktinGlZwV!!?8Z2?9ta)0vKSq0qbz84E$d
zIu|w31QFpiy{ea0fBHMZx=ZeWraqD&BPErz)t9q!eK5>Deu7o-$uNWDCIPk)^~W|C
zdxO;dwAfT$7*JjkERt&To?-E%gbHebtKU+GfbsAHod09BH*qDbh!@)iL*|ONgmhb~
zwN%<JbcgVfB!V7)u-z7ht9)Mc*PFsUkd+rL{7p{Ef_5#2a9E+1+P-G27~Y%2K-i=#
z$0N|1R)=uS|1^{7#o5U)z8gVMtFP-{MiNJ+aHc^aKRX@9cHV36-XAN~P#lrV^yDyf
zx`?{pY6Kr98Jx?V29}vAt}J1pP7Jh)0xKC@#5WjdX7c#18)6X&mdeDPw6+CTzpM6I
zoo!-a@~i^`;aXISPH{i?xzB<htU9s-Z+HF@SUq7EmgI~FIO^?NxzPQrf0_qBF=vAp
z{Muq1PpuVWux5RINh%GOZqgp%(vnSq#kENm!*r!!eM5(>S{seAyfe?0Z4;A+knIzz
z%A&D^mPioh#*c(k2c8a%t2fbQp-bwmn=}g0r*31IIsCNs(+XGglGO%U2skyikA;#Y
z+NIkJLJ7ZfEEr8fdrONl1PJ{a_MFxVTA8}UZs&o!(y#1(tJNdS!=sZ)vcQNFX5(EV
zviN7*-uscfpa}D^SMW1FQw;z1)O`5YM^oVj7HzM+I?pX4sPa))6Z|cr|5W^_x-x^!
zfjsuk$X`2o2$6XfMe~?TP1P_)pPFWYYT?y)|F;|7RQkjFzDjWpLRFp@`}NU1I@bxf
zlq`1t{XL~{!{&4tTB#!`v^|8Pupi`vJ*o9Bu+Tb*j&X@Ji|n|I92PjkEc-C^Xc;un
z+0@@GyR+nZx>tdP+MNfAT$RTy8&z#7ZKPRt&RAo(Xs$e_sD#hlUq3x{>hjX~-Avja
zWYVWeCt{uu){LRF)z>l}Z6Kn?F>0X=5XQ+=Cr80pNVE+TjT0K<XykG$BS)p`u<E_>
zW#Q<)=fYp#b5Ho}<KsH7AAWpOTlkq<t_WA7MxWP)i)4_9AR*lH5^%gS&S)_`)yQ!n
z#>$`xyT(`+&8-o**r#;(N&0+!$j<LwS-N|BSw_8w7&o8TQ3^Y^mR_te6BGzSTm|60
zpB-+^v|VQPFL91NH3fVM7CH<X5~)s0$t25ysI$4VO{P*|@6nm?)g5!;@TfMYX2VTa
z2~Xswd~gCneN_Fjx^K$gzNJFlg_aQuOeNO-7unqoT^#MG0kFwgXutFqcYOG|`P;4;
z_{Upsz0ETXA4!><fqbDd<X((^s|iP8a%3Ec5C==?46?N}pceP+=f)lu?cved0he~G
zcC@n_hC&9*<(fcSeXUXnNH!PXJw6Q+4l5O}kYKDqd@9h=kQsbmM_K~A=ylg#5tg{6
zrGWOIv^h#F(B;-}6A5S7HMWSyISc}V>3$*HU3Y<#rv%C$_%Qmq{Wgdr(X#2>Y6U;=
z*p3|H==BRzvur{lEv<(4j3aZYTJR6qDljbqa+kcoua)C`yh1bTGaf=3yz8+W(8U7m
zOS5fZ+Ynj>vLBGpnA4Smd-`}FUklgD_&Vg~>BVqzVLTja91qjkxlrJG?bI_uVfNZ$
zA^i^r{{Cm*KG3(}+0cB%>hs7W2pSt#87S6AZ@u029lW#)|IHTC^|m1bPq9&((u5B6
zKjEj^MfpfiskQg@b(?kfUAy+!@TT-~0$6|5sU_<+v8WSWb$EP_@nx73<;X-<RVUz`
zNU{8whn|vMme}o=R<o<x=hBR$D^E`CCkNBzsg8b5?`4Mgg0V}b1*x@Uxnr@&4!5p!
zvw=X2z1oRN`75y!nIUeP&RXsyRL;f$t9|mJwEB+u7=g-D`Bvo}(<m7T&aiWyU5CX)
ztoTKBLG@vqERaW$MpfzzJFeL^Fb(3{?pA(&Um;&$Yva<m=Jae+F;!}lcqO4)jVS!s
zRGPXZ+|_|0EE0fr=UTazr-eI0C3LDT(Z%;NsuVz+PkrKV$eb&*m>ie@pCnLxLviwL
z4<$}A5DcdiT!c$Q5kf8Mi1TQ2alV5=9wxGR;_#wqhmqsOb;s}C-ZXpf%+0Cr;pPGw
ziQ)3&H-+hy?=J3tlnMJ@09DtcMqF!`!jN3L2SL8`CC-ouk(zP39rZ@kLuCP1=j3cR
zxawJk7y~Y~LtDZlk31Uw=wF`<ckZ4HjToAF!<Me_{+{}9J$V$_Wf%Qw@*pSi-i)dw
znJ8~eO0rY2A{3uQ0D;kQ&s-8pT<i#xX1EjdneV_1*ZkJp_vWt2FQvK*FIy<gO)ar4
znIFk~{(X;(-Io5|ig$e+9jOa<w2K32)UrK!C%@Zwr0#w4<kphS1SJ^INAcD~Sv%jg
z96gYh!Tb!yHMlQb6CSC_`&>qpgH!*6SuL{5ImO~c7K2~8<_^aVVcIR9KY1|Bjyyv&
z<uA(dv`G$DrUsz-S<d7EYAw521+M*?Lv3C(?h|$urnDkYCbt-1C<~<@G4IOHi?!IX
zb7v;qnQmrb0W2W+3poI-N#OGh4C)_RBx^$`8R%!X0hndTOLzCGzRDuWhBtRsADtV;
zDXiMXxDi*@MzohKyvpgf%o}1P3*iU+=YeIGvurYYq{RRR1~hw8nzUas*IqZbvbZQt
z2X?5CCgo$JjO$CQvBl8_n5>p^E5X#{L3jxh_BeT#q=M6;k`|H{P8|)SPu~k2as3+;
z4RK4UITpE!YK}#=iRV~2vc*Zm%Ch=t(Xv!r<k-Riw2dav=x8<?o1f#JYSi_8QBz4A
zuX<xaAhJ7szNpUo<VTh@_dOqhO%)!zYKbeIGN_=Z2DtP2C@R8BPB|%7d41K!`+x%!
z`;>#~{YxP(w53>B%t5{F&DpT7yFOfF_xoxh6meS_Ln>)KXZ@PM#@)~XgIZzrLYPMQ
zKF~TAMr*m1WCHwu1w3Ul{n(+o{n3xUo}(An|GTAzx7bq?spwv;ei`#io?6VPWkHqo
z1b|7Smd?a|ALlT+f~_0t@dXK-NqtXCTK-fYEMZR~*U)5Z6Ize$LgPqoY6ewh&|53j
zc&^YZVZS4)KxSCLNb`5PBRlpGpwpU}aM%<;G(HKNjt<eA7Mw1I6Kzf3|2tb}?wfos
zGj8ry%q$kOZEs4AJl<89L8Y61kiwv-IcTFabuy%eALTCg!4NiH!{m>>3r(2m3n^KK
z*Tk@lKi=(A^>BZd0z*wlZ@6z^W%$~mrNBlz1`Lbg^G{EPl}Ga7x<<xJG|kGpt+C!Q
z3jtziftE3xm6~Nol!Z997?XgcPoiocMh~#KQ2O|6U&o&m=N6jhCl-sFW|!uUmfDV&
zHXMGa`1$wUe)rw0zx}FLZ6|~CcSj%plg6f*qc=|9S27)lT>8U3r9!Ih__1GD4-b9)
zB!;FIfU9mTx0=YJw+02kO!aAjTa^%preBncb{q*;#{ZHSCXa&RH5h%oacc)>;9J6*
zuIUBk#7D-fq*sp0FZxtilI4tDg%q|Wir2M;{k!*vkpm;}dgyi6bEtLz56Uu}X}*19
zvF`rGhkp0|rKJLQQKcFdUNI9Ezw`m_N6sIlnV&lR<)sH#-}33vGT7(vvW$n_LoTzE
zZ(!-=I>!TWBNv7)jPNyZ%!GTa3#h4Uu8=~TAj?_vbUW>-`f31E{j7@dDFApEPK~Gg
zr?BDw6_)r_Kg;<Lrncd~@L9rMMRx6ANOvLcvv8Si;}{GJ<ff9(Q3P{}i!0_APSh6W
zPnB-FEfaPMi4~XHzP-`_74P$UD?R+N+|2#Yy(;uQ{Gn19TA{?5^i22M<ZNGK%~H+$
z%mV7>yPzvJin!Xeb3=V-Jw_i`0ij(1&QM#I>=~=A^rAXPh<`;tlR7w$Bcp|Hy>3;Q
z<^7uV9DjtN#raW85%WmUAn&r1_HB9{20c-gKk(!vwwmWL+{|1~3mzKRanR_-g+gJ+
zQquy9M;s4j5ow@{iT$y|$Z@ITM^Y_MmcIDj+YjB=^6CC}{jUq!AT^oq_ARNIQmR45
z;l{CdrVU!H1V~nu!DB5HS;JEiBdw$b^}Ylx^s=$Le*K#8JuJxUMjzcWAeLkpOyUX$
z$*Zd7vLDYxBr(6}Z+?`mqoM7s?cA~iZ`ER`(Qi4blRBT``;#11{>C>S2><jiU*|~k
zNZ5SYhOp_fwFBR{>sy!Ky?y&*H%FwN$C#;>I5$@;jq3bO8jIu-4rDl_!1Y9qEwWI}
zg#lp&-L>qh?ohLtb5IgGtzuqG89@<yN+TE3TPA#;?r-6VCxpy$cF1uqh!G+b503bb
zy)jdgO5KZaops5rTZ39oUnojD05}l-?yWD@{!o)6gZCVN7IUSV9K2$Von09`P(5{?
zq6Qq5Cn;3xbfS|G-U+Vz`&prcPbwU=m(e72$O$8Q*I#WiA>h@%tDn{HS}CdlM@IAs
z&Mbc-+1xZ{u5WTW&H~N9ef68+si&U_S6#j>Y~H+~e{MXl*~bNSNWpS8cj*3));AVM
zevdYNKf)559cgY%%hr{KcbK3hmBtEVXGNY#K|sAO+kvn@$nF6+_SH$GCr$9p`2<xs
z^yw6ys-KY(><hYBv1K5<_ZMyozaS>bzbq<#o&6Xo8vj0wUFvBO%Skd%Y`H5>3umFE
zl*f3J4L%lB{z+xAD$XunIF-4s)Vk`r6vALZ8Y1k@D1IT8I?4T-pD%s-w|_77AO4iX
zOy}ps;O6dMxNiRb-+muMB|Yo6sK)dvUg}HvQtoJ>ehqiX^xEQCgqI?Us3cCD+5=p|
zRWd1{s@zp>--03`59`(vl;su>s7CJFOBjNz4VV-s6d~kjK}~19-5HX}nY`n`YF|a{
zG>pUWu_>UwOd-A#uT)wrAS(tN^^>Od#<$IVckU64xHT?azgV*{HNRL~D(b4X!<jF>
z|Di*-rT=#It$%%lx>iwbQv5kQB#?}ZJd$lf2W*Cwc{_@eq|+I786h#)s7iGoRg^pf
zLlZ*5MhptIV%S6$^y`^)Mi&7R7UKKqVfsEjOsr9>vb7jwS|P(dlmnLBC6UDo3?6)S
zUQahneCZ$lH9Yd@lU$Y76|TGPs&MyxkKgdIkG=ok```a@q$=U`jG{cxbNm&qP!Ume
z+}VWfR^D$9_v}2;TU;!B%mb2zA;yRz6Xo&I-C@k&Ry)%V0Yno=(T}{9p-tG!Uz|-p
zzK<&^cN0f~ZNw1iv}h;eVbGe=!%ZzU*x(zUZzC%yAfmY$j$F)~@bXlq35Ah19iv(t
zZSH7lGQlnGhLB^~UEr>sa5ZuNhu1Qx`pq=<-KfMQ#dj_(EUoSvI@*15q!11~x5viO
zT6RJ^Hr0m}hXp?+Z($z6WWHKpa~uighzp0``j&uYp-dC@AHTLYtmJy0*I&h5?6u$_
z5=oL$@rA2OBPwyy1_<A&?p&CARZ}>$Yb2aJJQ=bWrPjT*enTE*mIBI>nXfE;Z*CrK
zj=Io2$T8>Hkl%_1%~C+!sJJ)v`S;#^>~pC<>;9QfARxSWE@!HKv>!Af3aep(Oe*OU
z7+#Z={cLEW-<)1EjkghJz(U&M)CBy9qbe+j`|g|4$dWSSi;Mzt)TubFi3i<=1}U)^
zP**#L+9V5%X6UX`2KNTDxQ;lHAq|74=ug-cm1*ph)7j(~+lgLh@BQ$bK*2xIs~CJJ
zgR)bozL#cDJD2Kpa$TpFO&H@^iK|XayT8W#{!lVrst@60Tfx9Q4OS6k;w2+$3-rCW
zUf&#U-uhD}yec>i5G|a~UfBONaHccbY8~My<|Vx7i*Np0|A)61IX1>uRXkqhU~WZS
zH@Yy>mQJs1qshpZ9972<`qA)uDVq}S-*oigukiiX@;o0m_V9mht(!XfhvfDFAj<*|
zm!agd3s?-yGdZ3<H5JB>BSYXMQ+3|h7CM{Z!%SRCt?-@&j=-4{JmkQyL3Wy-KCOSU
z7}DNS3h%tB6B;SeKV@ryNr)x#JS>N*G1Bp38Cw2&V`~6Ilf&V-c9NNpW~D(Po(6-F
zh;5pc#nkn{bG_ngL8PR4D!7we2N}+1=5yaWe%pKA-Sw`&J*qe_<PP0`YyHA~zx6ug
zijPnkRxz4%jp8;dR~46|B6cGHwpudl27ppDrA8wHVI={f5hx-_>B`mS#fT$52~%Jd
z-N~nn<d`<bQJC_Qi}3K8ZekqP_0Bk(u-h9yF}-MP?1}c-<M#~DH&17mw&_Nkq8gTl
z3A+z}_LsKz?H>5ng-+g=9{P(LiZ$W$wdvmeBC6#k=a9LEuVN8R1mIX;@;ApqI~*pQ
z;(MIy{rX<h&o!x>`&Zj7U_SzX4QX0D)Ui-aS}PUimDEzac3#8SN`jYe<hY%UgVSjF
z$WQUA9kG>-ajBS}A9b-^DHe~9?H^`?2Km|mP>D&8wuIQffDibQQtAT<%KikBpGdI_
zpVt%?7hh9anq`6(ey6(Rb9tYA@WZQTzBBWush;n=yZ+eW#ix#Sg!g^uPr@;5bm@9L
z-H7$RU;3Hw?pxl#rY4Kb!cVMY#1|yj%yF-)wyg{IVMF2|who#aV3Q!jqB;T$_rhV~
zYh))Fm0!e+z9Wfh&Q@fjY1`Jdp&Ns^c??u*aWp#deI?8hZ;Em8U;g<U;m`l~-<siJ
z$+J4{{ODs()~#qveXoD*f&5X<cQMYV!x!KC+jrmH|5xX-2uZI$N0-tJ38s&bqltUX
z)wLnNr!nL~WSEuV0){G7F=S0LJHQ>#>xURKG!W2vt@a644OzU$rv)Z32vLfQD>s6D
zn3sH$bdJsxD=jrwZ3{(K`IeZtmspKqNhoAjuL6cXU}3VPBogl8ibzP`jm5U}o)|?4
z&i7ffgsBzOh5qNCeS#I2?=V?e3fs193LpHy&xe<A21gSE37BBX@x()8yzY5kfzgf)
z>#_cb`q~0{)N^)8@s{BxNk$TPjv9NfdMy*3228D7b#aERt8*m<C4+WM&(jDm`JQ4&
z`-@-tO8DB>zl9~|$?){fz2V9$wxqxHz@u-y?Y3M0{$207{mcxi@;cYo(qsSU=6t&N
zh2nf`cfrn(QzP0k#o$zu;Tl!Ygzl;wB}}qohgnusqiAdDrGZ_;s53Xk)pWp#O1M+q
z4A-8a-6T8InF*`ghrp||KH*3^oO!8<myvA%SbpV(;wu3xq)|LbiP1&^wy@+!aI+xb
zE9+T=+XYt1=`Z+el1o=uiRZ5zsg<eP^Jj9?-#&FS=X52!wRufduESe^_KO^|u=Dy1
z-i86y2_kDmwZ9u<C3UQj$8?IJI1yvj*z+7EkU0h|YB{dHguh5V)p0zg@+{|XO}7}1
z9y}4oj*S_7k#+jUC+9%Xl3BT`vjMzasT`~=1iLc9nkYln+c;1Ey5TRs@8?4J#9_rb
zSGVu(?RDL`>0h3`@3()y1(~<l_v)5k{q;X%())xNl~V!lc>7O;_r2#`VNgeF$XG&=
zoLHA?DM3<Ki)>s!5H8y=7#{fUW1)_-kk+4x69-GBmGjj2Cmza9uhstMr#_0IHeK1c
zY5kxH*QSnXxp>)n6`zoM<oi#BKl+o8alOf2*jzCjIy}O4j(aGl@OM4Ovwt!9PycCg
zW`3#Z$QQ%MYnSGJzvJgVd)}Hx(+_^Ad;Y!;Z>Q~lIl_ynS|$PyvGLNyF$)Y^!XGrK
z`2ZhlO<&T2Y1~ye%$?Q~L8wo*y*{?3MLbBv^HPBkndS6~tKrM(&B|26Sh1o*aRHy$
z8|&9NWX{7RoQTeJ2RS#F{QAPsqrYBQ7zpzd^Vn{H=MdK>yc-W5Dt__3|JRP&`aiw(
zUE3?8bCTQH9;HYBytDMg|M~02hJjo1i>K)KzGLfj?E<!p+nmB?iK-=mdX!0e?=`DX
zo#iaPv^7eMWh%`H!s4lVk$c5@o0s)FLCp1Uu=F=$H8_)*VHZ@o<VLB4DW>A!&VoyY
z+EkMX#tC-ICO8*wlP}5_KlC<L4&qr_T*#tTiobSpXmeS_=Ccd_*ToFz<@r+SRlEQF
zS8v|%<9{KZ_M*6z9ks<%SgMu=P?2(t&#N7o5i~T6u_#_b4Y84ank;@$DNVFnnoiL#
zs_6t;;NEP*h7QNuPA`5^vDNmy)M|xya+WJnMlLtc?#d{O-7Vmi9Yvz+j`sS7S?FgH
zb^CN+ddbyXY8l6~aZwfw1mCqcZ3TeaEx#Azr?lzRo!NZPs|xccXcW;lf9hjs+Q^um
zf#BdL#qptWNMju1WQk)WDd<wp+Bq+gNH`K+{TXR2p&I-t0~ARSp-V=q0y~)eI-Z~q
zRPp89PcT*TsrV^en4yi5MLSDmKLR)@jk@^l5^2`rm%<Y5?hAI5Mi|E)nYX9jLxS^~
zwC5lB%QrK_{PU&U#2RVQ$)R7B7QdZ1c`A$^9mn<xcd8rBb94f2odtI3@<So?bazoM
zntiI8!MO~<Req|&>0#JAWPTxkO=2Z>B{h{N&eKSK5yiOk7@~7^t_5gza%_TyDdZf@
z{;c0CE-l7jkY}8qM;5o4Aq}-O$0ExlyUof>ZJ$cjv0-y#DWCfUK5v%y4|1iaK66EW
zas0vJ5=J8moM{#~OxA26)o3ZE7JSN{emOG|7Dv9xO#{RBZLm|LN?ir7T=a?G?pygi
zGh8v<SHCfx`*=ADce=~8tY_o!wRCN1n#eDSpJXc<FOGh%j?Q9rN}<8Sh=Yn|3S$=O
zUXc0C;mh`JBH^?AowqCHGJi@L{pnh4Bh{d$Zv2FzSlF1__dpmwc8X?_W|^`EHh9eZ
z6vkIaW<y8cYIq8KO#BFE6Lxz6c<8`ilX{Czlf30`JURK+dyE_Xot9`1OU_qB3m%H2
zzxml&%4S|igQu<0BTrBqFkEDzA=`=u#g<Sv!%Y>9tmLw$rNz4fyk&ZHILsbDBw&7;
z^3QA1KL6y$)?w`U;e2TfOVi*dKUy=l?+LEjJdQ?Gv(-n79iRHtXTyrc9pN3XUT?Bv
z(ySKlRDukJ=j+#oaP$ATiLrqNY3+1858YLV#PpT8%GN1NxEAg-Z_6P2EbMs5HdB*=
z%MaPS7};|&-2R2{gek5ftdR^vsNmF15)CUjYJ~cN=FB2N7|Z{=;n?t3d3!;6d)`UA
z+Asn?cjU>{sdNJ>aay*cSRsHFj#_roWmu%3JJ3O73gJK7y%Gzdof^^TE5_YaU!48;
z!=w*^U+t%F<(~N27eDdSg5!q*^^PZb>HKo8mE8&M*Gr?4BefhwFKVJBmn4(gBm&WM
z^78uW%^kGr07Q=;;yL#4`&(-kT7RE&HouTQ{H2BY+?B;I|MOSVao6LahaU@n&%Kf#
z{N<kuYt{_0VioIBDOAF@uECQ!#rie<;bA5d+MTcNpfR=pPjWEE8Y>c?iYG#g&)K;J
z${k=rFk~ys9^$_?5ioqo$ksx*{mWkqfA^U$lU^McyEdHNzT>V@DLQ<zcR2e$M!)m{
zj#m{BeN)>HPo_R|%?Ca%A~|nYsL6d2ectYLJwmIch7z!!u#i4!>iK8S5c-1IWpfxh
zY2CoeB<in8#E27T*r!h<NX9?!hKUeg#-MQNxx_en%0>UA2=i4;i^q=aTxJ(v)$<__
zm7pXeQ<=tY=#;^PGeULkOc*r5A#8SZB+Q;T3>9Qv8S_4uC$x|XPkri_7Z*<a<<i19
z{57K9;TJ<*Vjw?0eB5?!orwbr{z^JIKFP#57y37>W=C0ru}Vz{CBea&-_?*+uw3oy
z?>{I^<0PumoadU;F$WSjZq+7nQdKfxZFZ8Y(OA(;q3*RbgN6czv1AxXiM$1iaOBeO
z?znCHZ=Um{3bnODZt2dY`SkUy%xKL$gd=x_9Zx+CBrFynl?oUC@K0Y4E%`&?eLuO4
zYsTu)FeF~tIiA>o2-{fH|M+jcg#NP820g*%c(a#s3VnI1>hOwB#DZdpb;?Lxef>z7
zdF*3A_5ALOpS(Bh-FJw|1<*rNDrb`2!VazpLZhZd3qu;P;6J~%n6AB#y4`-R{H}x+
zM{&o{hl=@`kLJ;g2nhFrSn!A!X-toUeXN|dr4UG<CRlwN20~{a<AR~XTUa@$SE{v_
zzw1kJBJPB9kIM^AX(Bdad+6KWJ+0@Nq0fzta0AD)huC$WOB6*sttQag8I|?)R$0w9
z)nLLvjQ10=G>HnqtF-htt@&ZJJI)Png;eJC2(Y)Lb^IpBSR`C1I|lB#xnUNn9<y>J
z5cyDu)*2GV@!|2%-nS*xb2d1-7ZTVMFXpdz!EWuM&X0@l_7qO7O%$Sf>RE{+1QnRH
z>Q)v%u0s2&fx)?iTs<{wD{-(li@=uAf+~b6ZDuVBDtvBYG)y1eC*keoE5^p?85eeL
zPoy>Xz;C`HRZRarqd0cKa!U{1zvJqf+#+L^1Z=O14BS8ZT!B07^MF4WR&jmN);@Md
z*|o~m%rlvX$1&mdqdrz^Kmt-0PKzw~rlt}knC}nz(c%+#vbUWGEzr%LBc*WPlld@4
zdbMF4D)QY}wjb=q*gkuh!mTjIan;b*)0%I~k3N3lE59;dn40I*iuT@1%tBM2oUC8*
z`ODt+$J%l}FIUWDuF7V)im#4U8k`;M;l_l8mbtKa5-kCCgO)qmPU8?RTfZ{YbzaSQ
z$q|4mO$--m6%FJ&zaX}1;jUU^pq!3i^>@0HhT?Kseao4j=!S34pPI9Pl17%9$w)q}
zuDa+;d9cXL4KX#HSXf`N8S^!?-+&M*I%K`&)L0mM?old&CBpM?OHY6P`qJXWN161m
zsm-m1CLG8#>eCbB&$3vxhY5=o2UKTqAn~t^jiD1`3!xK3YK_TpMJtv@7Cc1q2DeuS
zDfUB)$4{B3M2{qHjHjH;MvO6pa&}}*omCDn%}ulOnr4v(XJZz>2?WZGKFef2*A#N?
z+d`HjAhk@Un!1>HX@o--o;`Uu%#0t^hV2`YY@Zi@rQLtu!fxr`aMyfYrj`j>!0v&{
z#h{*PaA+e;9?BtkiZiE>-)dSn;wL^N`P+J`Mf9kK)hf6NN*vhcEoQ1Wy)SnjrxJGN
zH!x@suD+Xzr8W&?o=H9tR`8r{=tDqiW3tIu(5&MxOyuEbi{N=-@<b@k*O*HCatO}t
zE0aps+4aJrCG|1NHTu`BSGH)zd<hLqM<8K@tNj+R3p7jlwapwS(`qixf9;jNAzBdK
z!jXB{IH?89*k5_Z_~kw-kHlZtu;d8Y%1eF9p1i94GzLh!(A42sgmLWYH_FMBEE=^%
zATqHXc7k!rCsUUV4cs6xca%wcM!o<1Tx~JEDqqvkR;yz@qMv$f|L8U8tE!5iVa^er
z*fSS?=B<N9-?7#TQ;f<tM=TSJRMX0t?=gjCkmRx)_nxztpxDYIrgC48ulGzH*Hj~a
zoM6#R^ScPQJ&AB?9?iJHZ47L1z+;E77d54Yom-E5<t_hf)my&etBDm*mc5-ZX@^Oq
z7QXx8^|SYt{%bMy;Z3Rh2WM(F6<<MvHW+0Y<N(W3p;U`A16<?4pLGrm@Pb%>S|!pm
zI=u^GBVb<CnT%2uA$eCE>ts9?SI+6v^NMMz{q;_|w9YWgQoTN79{MmW@j(5nIJtju
z{@9&gTNpi*U6}gibYUUS46DQlmp**#bEQw7%&xxeTm^q+eYz{{`&3<Va{fP~68awt
z>GAGjaXOpMk7FVA4y-9JV#G3MNwgw)2fOZTTBpM=y=^O3*W|b!MwMUgGzGo7sSrN-
zyH|$U+0FDj`hej@NLk(=l4>Ry#Be>MbLJ`BsB<=8tgSITz)I0~nIxZCwix~5#6tM`
zzujq!Oid-Hhpu5-*;vc*@f2H-66aucq4-xl&87VWf0MuSc64{l+j^Z;hL}(aRpSg+
z-17*(#d!?soF!MAkZ_NBS}N!;jmW5C9!erV+i5l&SC`@SR@|6QXjK=J&{5P122Z6u
zn-C&@bCjFb-M<*!TJAi5sSIW@YFE>N#rkv|tF16YF-$VoYOByc!&zOHALzp8?((}n
z|8mg((QIu;I%mQgZA)HJK#*afr6LyJXC6krv1NWM(@UUERBD3zIEOA@6Y4mdElmKq
z*ngrxA-|ZX!s5H&E;GM`K$e9kdBylKOiu|)nXz5$IKbS6WFg*MoOY2j-uY5}sBPWC
zY9vQGnjJpnr}NG;Czy<lpM<yP-`!K({a;AFm}K%o50*V^udk`^p&@i;+L^B=NUD*w
zKd)Npeqzr=nB_XkTnk3cP@R-ZTGieaSFR2Li5uAMy_{bXQ*j(ms+*^_i2Nia$ItT9
z;|nWi4h{~b=+t2uKB?=|z$qTeUH+ONPq4^Q*D(;9*KNS)(}6H|3S5QMJCEM}i+6|c
zDVP4rC7%6d>Ddj}q*F`3n#N8;jyq#dZ%a)?XXXxsQ^!xEF@pu@p|O*PCqm!G>$$rg
z{+IAM(SV%ti*%uH_XbK;f|_VZ@rk|1^*EKZ@%wbRlxGG_tiqAUS!Lg6IB^=2m=k#b
zTnlw-UD;LJv5g7qBDAKwRX#LE`_HgrFndz7u)=R}xB5S_JQG*ORP@<hI#VYL-BKYm
zm(*F-YXn!G$x;pXW_xR?UW&z{6l&hHlM|t7CA3E0m9rpwBQ`w41vYA8{3F2)kxm!d
z%KS_jh=1`=&3=%;rg15QO%DldHd&9tne|T>+6?phkzma3ls0z-sl$eV)ZP<jIorrS
zAHEmnv{00PY{l=Sb5sAlv^2#<bc{LR?eeRJ(i^sNJrQsoIXW30dF)6S9c6MVK8>FQ
z?t{lTTM6#3TiqJ^`#M;x?6Fk?gL@e`(MP#gyEFaEF=!~+t=PYRB0Ti$NEpSsxcIli
z*|P|&4~2DD?SKCp`YG3Wn%H}`F2@pOZet#8xgs+JXp0sB+G6pFrn#}seV=;I|6KEn
ze~Zf4xjSqNfOM4%r(hDS#gi11-Rw#>3CB2Bd=l+5n^-v=Sv>U#jg{PHX7X85oS>0&
znxQ@>$O{kZCvid$%W_(iC}MK7G#C`$zD1wPi7@*n4`<m4eR{Y}{*fOutJZT2fr%)#
zDzt;^2`P`n+1??>%vJDxv;vIoRZsE*p;;ysK*3*<xu<-=-*hqmzEY-UgYgQ}Q%>4C
zSC3{R6pMz1xUFNuvs2%csxs=5wuoH9$XBAKzpOmLW_8zs1bK+dRB-3qd^w(z<frw`
zh{y6|ifEP__0D0uFO%~rh!!q=EO8uI?*!P4jzq|)A6NWIdtOfX)A~kZc1@TY!)kxZ
z&FOjQ^Zs&KVfLj(79AaKN)XSH(b|Zh1bxo5g(&g@hE$HT)a)*2IDRKBoMgTQKU5nk
zx#+<0Q_@|Fa0`8xd6tEH<_eFKR2ATOR$Rd?Z7jV+e1m(lJ3+<a0cKl43@SQXfJ}gA
zT*}n2a|@r%!t>;OOu~>W3r0nFah^?u3w5bl<|6dZSf|+b!jad^+f8+FI@ULE*c^%&
z;ITsY!k6mqPm5=%l#}B!;suY2tg4U1Nq!Y=`9z;|&}n56&ilCKD;|M1K;w!|v;mIL
zFSNEOil!X?72z>8XaUq=6NC@Ty;8QmImCfXU}Jhx(+I=4JyE;2)%~Q6p?7I<MXagD
zfM{YwGd8~@_nXoQunCSR=a=za#u*94KX3|Di^sN!a=g*Edalu?VWW(54^vutp5c-l
ztj{~`cz*tF^C|dQOG{hWIMf~Pdu$JNa?w7*zhRK$YZ$)EF(+(*$K{zL6z1lBEG%~Y
zJ)j*BoX_WyZtcOPUH{x%c>J&afop4D8H%Us)KpqkGbSZ?yp4F_L;r=X`H8S}{DH7E
z{siAbZi0|<gDIh$Bg_)I$7#Q3hA&U4@Z~-#DPf23DGX!vy}?%cJmVy8lC6ZO(&Vn1
z((EvY$;Eh3fyy$2LN5ToH*jY5m2HKCnsxnurvY~EpR<cy#Z2~hF|bsZhS{mknupfr
zr?o#}`3Ne#<*}x7_ykO$1_K^gxQsW)iy#%lcQ|b13ysnWNk&8K4C>Gxk$C<tgJ|^Y
zWlm8Dt~kDhFBv4uz)%tzwmcN69G`d+MrN>+wul<H!DG1g7O=88`q0+DHLMtH593EL
z`ZP6O$8`qpV5R867g{N*091K1_^o}#oW$rUmzBqCXJ06cas}DZy?iriGF3*UQ#_bG
z_flp$Su{!}oC=AZ&SF`|BDPi58KlDf+n?5n9o3Y<ix{LutuQtpOhHW22RsibkhsSD
z81!@NE@vl@a68Tb06+jqL_t)TBT;rGl_TC@l+m_<%R;K1Z5VdGjRC3*@*+nBUj`=q
z)AsjyxKwI!ExQJFvg|G=(2c&5hLzP|R>}ccmBCp9Tg8Y+;Sfh&>Yx$;=pUM-819xa
zx&$PH7sz3#W#%U4YWS_fql!uVR6FaVWq3TT-Fd6QA4aAD!Qe8)isLAaVB|^m87+n&
zgy?#|EHKyvj^J#nHZ=DPg+&Z573P*!W@L%$oZTwwG0Ga4;1SNeos*hUvO5XhwJa{k
z$~_Vj?L*s9mkN^?gBPs0Dx6j7@3>HKC5=j{3=9gZ495O0`UA46!C`qhN~3|nr%~x}
z8CRq2+<TO!5YChmwv0B^x_;f$ih$0leSHUm0_R*8C&#WpJ#rIKPbN{7-SfIksqi{5
zG-z5OYAWg}r`-t?oWxhbpXMk=g{RXPap&iBR1hp9Kru}|D~-8O;%#m;NDAwt(3lKA
zdRzHZ5L9rCpRg5a40^IYNgN5U3R8Teci<GPq~@C^SIe1@q<8v>78uf~GXo*t2zAt`
zuC1HJ4vuOs6}GkZV@moQT!vvKT7xgcB|$(!oYD(NltLlNQ}6CH@$~xeYkh9{Q#FyZ
ze!#ODSMl8hG>hdw=OeJCSXgLmTM=rwonr>gim16Ej0t#+3k?|Iu?ZpBSK2}Jph>?b
z4b;=>SOvs6zLG8#p8nj8sqFN2u05?QqK+<F7f#d-G3$w-QyZSz^*xOIaJM{_qvZq%
z?`l&t7Di{oiBq*<-4$Cy8m%&6+hfG1=XW-coc|>4WDz{B{Bz*u*wNAO^q!+(<ODmJ
z(i2adI5)<>!hzxG@DtseS&Z}+Qn^yK)_0}`)oKwSxM3$R&5ki@$A$lrtIyp|v}a>p
z=lb+^RSDjwIFpO!V|S=qe|eb42<y`55!#R1YvRJ#sj(p2y9NvLYfMGHx*X?0YERLk
zW6Q=hdsocpFWfkddc5jf{M~qjgj>>T;oIohTESaF;U&iQ+QE&;A*gU4cn0LLo37;G
zCWoDb+?p-yvZ1A->%6R==(o}?f-w5q>pA>TpWa}TK$UN$mHUs?m`3ztNcyVuO?|0v
z`2vkE4xQOI69A~M7Epzo$g>P?vJ(wyvCT{N_~+U;)t|Cx9=3P)h6xtM=GaM>CYECt
zJj2`Tkt16>dys|TYq;folgU)F5GXia&@Iw(ngf^Njrd4X#w-kR`l<M*HBRE?6d*h(
zj8bjvaQ^JDd7c_WJxqA^jBQ*N&rImf+KcbV<CLGmoO8zVp-Txt97ib@II6M4AL{93
zjvsLZRCMw)9z}bIU#ZRLr^-JEqmh=>59b62dGa7v&mSK_kVPZL>`Rmv)xZhw8oTT2
zTS5clwfJkqh0~hqD;$!C@B+L}U-*{a-LHCVuzD#aa9F<sW0p=&wXNWb^(UUYLg*P>
z7iLe5h7*VOFjtWl0&*nns=BNkSQA$C4uEE-Go^_z_`C%VLv<CtJ>wVt1?{E0i*i<f
z__=Csb{VLrS~3f~+cxxux4i1|BtOTm`kDHkiIhfbs;ftFJoti|aOW~{C2quZlA$o|
zq-UjjJ-i(pm+H3~=j0-ed6TD4As7q#I$Ogp{NyXbNo-{7K5!z`uyiYV_sY%v;Xl3m
zmCzaT5U|v=cZMdO)5rF9gxP!>WO?uh$!5zY?VPgvuTax#GPy?DC{ZfFs;Hd{5y1;a
z!IeCX!Phi}O!L~1!LXE{-E%B?6p%tCgaCb4Tnv>@l9|O>9xKMTMze6`t=yEK$1T5W
zr?Ey8<<s&=vX>FMG?%63>ic<OV5$}Z1T%7rb6D7%JekeUEna0F7y82`f9V2<lb~rG
zfsAM<t^SqI!zOuaa2UW?Up?2Tuq8x%YC^-sl_Ev+JRHU{Q4vS}RxRG;DiZ>Q$tOv}
zn>woJjh_Zk(x^-5?&D|$UHO?aLKoQq3;EQs;&|h=8^g|h-{Gt-i#Om)^;l%b@wzM4
zg%w>eL>NqCH*g@#EliAG9j1B_t-^UPQK}PIoeY+QvFPqf@~_!=h4I_`$X;m7cRK+l
zWLmMUu=Wa@v~!L!sk>Lj>+Sg@K8A;g8~4+%YD+xxaN4be5gWK{93Yl41>ul?qC3U*
z0a|%zHyz`P{hPzm;a!~X<7^pd(S$tLw+=z1pAYcIfTA+p#ixH2V>=|FFZf`zi*03;
zAbL0>58$=I306+|v7RneBjo8|gH;6ZNNY4m!K$BJWP0|I{5UOo+~^-^wM?f3m>Q(z
zq%xeo$<dP_L^jg44K1zQ&yJOEorxtxn6+PEPJ_F)u3qvH&cGdTss`33dTNm{sc$M*
zpJeRWztC?K6dYc0U=}bKgzSno@{~GZZ)bCO^G(|@jO$tmjvK<%PY_CD9^&p1PtL%p
zFZ||w2Zq>J1-r=<s;@vx76v?T;l~FC;X?6#_AM_9!zaeV1CQ=w9L2)F!QK|$cgqc7
z!ytT-ZNMA?T|==SVP>g$VQQ==+<q&$pMyP$RH=c865uFHDE7LlZS`*729e;3G-g2C
z#7%>^_!Fc@2Hr%m?>LRA9i7&QVJ_k!(qr_Ge9GbQG-uKnFaVq72`*}yTG>gdxAUN|
zC@?12<iH&?raRjkTi|0xV@Yj*N5ZPOLRLHC)^D+LcFs<V*IK3pMk~|%igL^VM4AOp
zm90eraghj9mR*Ggj(LgCMx5vw+kLsfCSW{YdrSJRaHL$TaTnXp_?+UYX4LPj0vkAM
zWn$1hv_2esdfIF&NMMr@GS#QKwF|9@&B&CMHWPf_Hi;k2?CmYc&ez=ztrh<)m8q>m
z!_?^Cap83pwont}oM4_wGP{XZkhhhWR7AehH*HYIf-Xj%oL>Nw(V6nmyXZOMNht-p
z@Luij^@()H>K*6V$1ym`F}!8v`t*cR9{xd|>@;Sw;42|D<;hj%$Q^_!9c_@spqGqZ
zE=-(k$mG*(O`e}arU!c9voaV3;5RCV2iLdthT1HeEeD?oOQ>F!FqV|oSlP#M#?>3_
z*qIiS<%~}332e#uA-ot>CjDJRth|Ls+Q!QSmxe3Ssy}KRvc+!Y!8@1)G{L73#}5JW
z!5PpXg=?;uoM-ws8sNf>^$TfwNGrwqBn9IvonAqo;^<o?oUc>8VqSvLXn<X=I>w?F
zG+d@m9)q@7C_qRO7BqR%DBIY+5<VdVVVX>NsnvZ`&_sGt`>O5Zx5)^68?H$k%T+FC
z^i8$n59pg+{p(Pno()Hy+leYaM+=~J@z{EH;rlkdB($#{WYUw!NXnn~aQYQrOyCBB
z7j#9eQrL1CF%#G$tr*bo19RS>suX|Jo5i9M1_o2eX;x2<r9h__>KEa#pekIJqgK6G
zncyShyn1X<G}TYe+EvYEU&IH7;_P8)jH7ju6R1tO+Cuv5h!R_D{iqz#zooaa&2uV8
zxX>4hP;YR^D3`Wb(c2#;(cU`6PPP^qMfbXirXH=*E+)&h&Fu6uhI_jS%-Dv@fpCBM
zMcVUl#~F1=(i#6VJjKz*A=3CJhN1Wof0i3C=eVwW=q1;Ldd9}lBL}dLfE9U;w5;qK
z4BZ3kut&(5dl|bF-uRQVaarTl4}&`C8zr++gP+}iE{;dOti5GaoiW!Y45e6cDDGa0
zyB!Y2p|})xE$;5_UfhbiyK|6(yB2qMJ^1j<JM(_utTjL9Z?dzqlXc%oR`!+a+8S&M
zdF@;Jx&=^q_<}s$xdXmTi0-7|EiWG7_A#>i*z2r=aY6geDuj@N^%KUjc)im>Yy#=a
zO8o&AfU4k?HV)2--mo;4>foIxw@y3AxNh=wrElwUy0*qyM-MWfrTYOEo|@aQgkl?=
zW3x7_Q~2`}g4A+dKrEj6g<tR{*RW~b<*y3<2^n4(qtqn$<ow@&YCJmJf>I_Os!Y1_
z=@><lI?)~caJs4iCciL1evcS&lwGBzxq&jx3aj8705d216BV71tPuWrsFTTOb;II*
z|M~oDCd&x(D5U}mwHoQcs=WONo?q09-v(6Yu!<)h{W55QJ8Fb?wKh^&$Z$WP?-PsF
zANvsdo4f8KE*BQHF$j2-tpd@vj(Nl_=5(S~XoC=;=??G)FUdaB$-H5|(E0MRFlsh7
zhoMQP`eH)xMTY}bCVa6+ufKNT8Dp(3QWm_tXjLOgh|2|6uQ#*H$W1zOiZQKTFVpwI
z+jO!zH3W!$jwN6iG@QeRj(wIXD(-N<<Rvwm|JKI<H8<@i9cU^YTG@fL4md8O#z|l+
zftbK^We{YQb3W_qJBe9bgn4+ZAva6Gs}j@S!X^aKZfg+e22XwqQl~A}-kM4kPC}=6
zx_LpFZn9Hk53>h#aW)X=9+MnXBG6(&sG!t^zKifixLD8a_houbP9~{^OQ{|y#|WYv
zE)$oCCDEY;-qCeg2(Q4jOjNs6k$eK^2g;2LGb5`jKnfWAr@M%`a96*cJDG2o#0A4|
zi9+hMOR^O;cta>N*!01&r%RQ~HS<An%9$q*!~QcP*&;@VI^D2B5mN0A^ZH~2*j{BM
zu+P@$zcg|N%V+uB@z*@xY}@R$+%AW`U39|EHM{PjnNh0S-`JkMNmv@6ksiRn*x?a>
z%Ub;RnEYGS9aEZT^XQCGoA)LDoZ?N?)#0tOcyZ$>!p~$2)pl$Yehd>v$QCj+*$F2i
zfff?#LbA!=X#^?FX`$(O+)uH4_%<kB5d4YNRPo;q5$sRI(p3Q$y$UXf?vfY*eV>me
z=Gmrkt&{C1?oEC(jMv#nJcRV+e`n43^_rLpqW*K`fUSl0#yT^r*MP;ad<%k`dk=Dg
z8!uzd7H<=^RQwNxw~K6SUqiQ<?YPUKRt-A}AsyjA@*W9XKR1;viwlMAvSZ4>cm7K#
z=nb{_=22o)airT$mkFp@84_`BJdsMnb49B_W2A3OPQtOT8B=c6SYL<7#yOI>h(|l5
zTOF|PAH)p}SzvYhD)AP7P@L*y8c(QN*^UgV1ZF}_v>wsTx|tszB9|}d!bNEd6b>lw
zG4l=nnyqx#KAfc78H+n+1(bRvb+b9NEds-za+Zp|PEem7Yn>e_i^!sdkN>r~tM8Xu
ztI(qch}KqqNGV~;9#5X+d5Avs&1Tx2-Sxu-aM+^jnjkZz5QSbdl>yYt{P%-!o8!@M
zFabYo>%zs@u~*&plcg46qtbd~Q|S1j&o=*rM$PqdW~b<2S#bINMC9ER4)J%MP?f~A
zm^)C>>-)|^IN2-j{;#({h>?g;_0d_|lP@|~PP#11@Nn=N+g4_s(q_D_ivabYhQ>M<
zk&i!Cb2mT=uVQ5K@Za`vmL_!Z@3~S&An}bTKX<VOej}6wTMUvOL8N9YKX8<45AW8;
z>4HhC0`q<5OyW!@(13GCg@A|NtCw8SdoSv(H0OqPFz|1M*NH%pq9?|P>uJV_i1)9C
z{Lo99Hk_&ow3|v786%kz+diBI13m>k;MZ%JqPiuZ#l<<&*>9rb5v^f-i+o8eT_!h`
zMn+3pc>4WEAM|2nZD{<h*vUT=zLP}TB=!x2Sg9)VulP0yNO&7j9Ql0e=Hg}nKM@=~
zoLdkEq%UgGkZi7~rnNq?Y(<FkMm2|U_abxmV_W%TSqG`Hrrl1E)YAPZb@y{h|B4vQ
zKr`mBYW@WE`+6XHDWt1Gl<HLw{;L4#aq_dLH;TtJeBym_Qr2(i&QF@2Tv5clK?%R1
zvzPJP7OfD@1iX7ndXr)xn_`!b>^}U#{r5V$*@M5RsWN`A=Xz)qLVmTE$Yw66pe7Ay
zY*1)zt$J(R@3w6NjccmjI5Ybse2mE}Lsq^zQBCX`+A-sO9PZ$s60m}PuP;Blzt+s!
zMAC+9(~QsguP1F)`@9!h#j67JkT$HBR7PvJ3hI90rqEK1Bguck$|`l54qjw$YV@jX
z>c?6`q(!a#J!y$;Z=-l7;U()%!y~;6ek#V?x^Q#mQ;Cr!TJhOIS?Rq~t73;(@=`1<
zYY);Sx%|^9`ua|7lr+_YQM`W{fA+QJ)jeJ<yMZ1SyIPu%eRlC0PRins8~;?qUd+!O
zY8qPlO7K`|kgF5iVo;j7+0Vn0Q-$~t7GAS!-6CgkO0G{qVV|XN;z`T1K@uL8L^DPx
zoQGC_aL|#}uV;ej_^|awKYvduHdG8@ASqhfDk-(4`DGH!M$>*-jK=kIV|f+5>uPv|
z%=e8tXf>R=Kj|!U*bhpq09@hzg$*OKX4?%bv)A9Nr<yNsz@9-A)I1a3q1&6brwZ<T
zft5|jE@CmnWnJlqLEHZR%XkWtEyRPrSHkD4a!cgGy%LcMe_6q<`gb1-qLkGXbm%hn
zp2c5nR?lR9SCvyF9)B8D`XX{u<s+x{5MGxrby~VO5zEeMgF+C=e5NAA+VNl`kK=qf
zePldHkmD8(nxotFTW{ep9Z{fcc9&<_)6TaI<Bu0^{2hGdpDIlfPXClHgAE$$@Hh&G
za}kA%yPEi_3wWwCl;W|@7@q2#yvi@Ksw1rnodVbwCYK33%1o~LAqnMuAmWV!xB&c-
zS&DeLJ7M*If?ri_g_VWM^q0vo$4lf(<oe?*@)sAbcGZ=6J+NpXv@cgSQCy(d*|Zzz
z0qphNVtoUdBaV_X9aS<bj;^}3==#lzRB{B5vVrpe4rm$95hWzx9+_JKM>%eBTIo#z
ze|7nRi4**}&jpMvGW$~Yw<!r&O9@Zq-^qpO-%EJx^=k~HLsXcnlV(FU*{#qA><b76
zfye5NbIIL?Do;%>znE)a)Su{QvEBJlQPA_%wwRg%?VRq4{8=tR*rz`nQrI54T&4sG
z8^{p4I#B!)J>tJhBQlmBh;u6Pn1$e)i`eyh;CW5SdOJ!V8c^`Ptj@|n`Y*Qh{!l|p
zA&HlBX`{BBs|`!IeWJ=mGyC|c8{bkl<r@qu;~Uxs7<bkaXxuJcE?p?1r@xtbwb~oa
zhl~r;v@7!;!qnIBJ|UKw6MKu~zSq&Cd$j7MXQ6Cy^d9W_F_P809w!R8*hIDw-NB8n
z`=Ev%j={fZo~P*4?-l+|Yj9lfWj-)w{TVK<Ja|lQ<DhPPyeB78CQ`VT#dLedVfi&}
z69iT96n^A`=g%1V#p9tzlZHXyx2l0Z!OQ#<spIB|XX)j(?RUPJ%Jt}~yBiVSMl&l3
z6XU$-M=3_fvt@rf$Y#8qgB2!;kW9Yy)s^s}`oEY$+o(s@S}vlgDgs5$rj|$^l?^*m
zTi5yFXG<d6B&L~?hK^;mCi~}6xT>2pRCe}ygt&>&e)c+s4rH2p?~Y0L_2c&#(ktO4
zP;+9EkkdrgRK2uMmVCKfHZ6~&TjeE<1~MfdfDXY!?QGB1(WpFMXsZh>P4rjNEQXm>
z%IK}u?XH%pxxm#;vfrS>k`pb`Cy6KCbgoaq3`e&i&eZ+J#>=1Oi;^t$Ly1Bn`7i1S
zr*9N02M~^b!jEyG-wjYv@Mw0&S4;AP%Rch=;21PQK)Ot&I%mHe|M$_5jxX7tgKyr|
zaRn0XK-SK70Kz>D;(mC*59>ULszirOavk4DESK~QJs)tPt2g<{)N}H?*6%5bc;g`k
zBe(Pz{Ydj4$8IhjYC1`QyHuUateEauf#nS;afN_GWi0vn#2DfvFv*A%R~Zhg1&<?3
z!G363YF?IQT^FuC-gL`8uiM&)2@-{cSPS!4#Nsl>J?a)alH&#ha&_QO<+IF%yx6|)
z;~RcklXKfrF1D@JI)n9J#xM#Hd#;c}CC_pp4&Sv}ZmLPo7u`o4`0_tLl_<>i|Efwm
zRh_;5-lLYTQDMEWp1^3+C*9$*33Bra;3Y&O0wZV@5Wg3BBQr-_IPI&K6|qmpZ*LX*
z&OJEsIRZ*#5zOLCV(Q;V)UNiniNKH1*EdQGKD|rG!MFjEXARQ3c~*PnnVh^A=c@00
zh@UxeQB1ZX@_}Y8@y&f_@tI9Tzz4OpJ&NBJw(}d8`UY-1mx$-sD>tkpMe+ueM|~K+
zBfs_#IJSl#Q|*d~UG0{7z(r!$ZYF&mWyLeseR__p%Ew4rE<ACNoN>mS23pC8EU_>w
zwo~S!`+Iw+xgVO0f3ZG0!})7cOY&@IxfwY~APkppC-u2qag-talHYDY$0Y2dXDmSY
zhe3pD4&p$a+WgIGv0Vk#!#<d{aZ9mya+oP?#RyyO<A69%bGGS&du_=Vc+3$0gNSd<
zvfFwEink2#vdd^81o=jBn=R$^T{{TFV6Of8Pj{F`%XGUL<)v&EJ9(RWby)Y8X~b&P
z7FIcDEnd9=IbqBtu_yvjj?&X38x(<Z1#(VkzuO)evKoGN^hR^DG{*de0WpoCRu(lz
zzqqu<Sl2Hj0b50>ex@^;e=uA`)oS5L)Ht!uo<!NUk+l&y$}QQ_)To~2mIIklV3T#p
zH(6)&3Oc{63sfqBvGsH-6U*w$7=u#k0z)dlZp{D$Y)QX`!OO|k)YX(Z?ICBsQ`aNB
zvV7{lZ$eDRrg)mF87yNHHkq7)V<&OA-qfv%+Ok49?ma7iN~4k-mx^TW|J8m%deIwb
zR|L%_hnab`CDFov;(uSpGA~EX$FA(j!^J4LXKnJ$cRkU9V6Coa`U9Pfn{G^egiI%L
zD%NnWz}v|mWuf@$xEktSua;zd*&BNdv{)n6tn(K#8N9xlWompXndd)pRoy6%6SrHa
zi(l_Jt-n*u-z$jaW90z?f(e*%fArO^Cz%Oz_TslBR^MS+Wb3cODdMA_oEzdU22mS^
zS0lWAmMc|Q7Hv}(ZbR}8rk;bJn67KSwmbL~(@3t5Px7~xKy??sNqZnZKg2G9-L8#-
zZg4y4bNu>UhKN>k5dYso)DTOy+4kkR&%Z470Eul+dFfr)A2+g^+tIf3YgfYRX*gF(
z#@nh$UHeERbqL$#X)Ug`k|u+s2yr7_pVx@62xlX<R&H>`!gYtE8G`LW`r}2&lOSxi
zbcTeV?$;mr4a{OiUaKzxmR!sDbM97b91Si(TrRcjr>Ws7;5IkXndWN+T?^&C+&0e)
zyeK(}Yfd*KFQKXqWYqZqebx%BUcnn>oBlek%Qnw;VZ8<eVzUw6^>a5Uy7;0$MQt{<
zRr{pAM55k0e#&C7@&n-#8KlcPB9_m+TOu%-mJ+gfFt#%knt9d7=XcQ=3n5*=)6l=f
zlpfMG`ttdV`Rs#{%Zo=b*I_4v6dhK5+|*x4Rn@MmjWB+{g2`<Zc`-;looH{|Ty8O0
z2(^xTi>yx)xtv<&Z5H4>0(@Qb44+^S=_QgA{@%FZkxE{35Gd;;ay7D)sWR%*TTVOw
zp|5aP`E`S9&Fd3vX0HaamXvx*?$-K#eN{Zu)}4(lSR9=ix~TOsViecD1?#(c1uRGZ
zX=+%$6yj)Nt_Q&6X@tu4#oh1W+Y=|*wF{&>6yj3;V=K`7G`CP`mKWpf4lzST$wRiT
z5?zHemLih(kbRoL_txH2BGtzsv0}5h_>sjxfZ#J2|DZI_?nCcODv#wA@m9f5m}{-R
zH!Ug<=u&D!tDp%gL-cee(G?Gn-kieQWTIey1gr!Ku-swKE3&j#<g>#2PDG>>xrB}p
zwI2_eh#N)Cn{$v!%lt_KFV7j$->7FR?O+mxO;E^RLyfR{Bxj1Zic_vXSQ$y*eWoe4
zpVz2yZ`oovD*nR#61f12=1YxShX2(<B+2p)Q?>Iosdoein9C}C@k3{mSsjY27<+zY
zG#nr{Fb68PI9?>E8mlS5fhsJeME=hBE(tC+lvoXeyG2RO!|J5HQ|%Ppz;VIhQ$8sN
zvoaU6Ki>k9axix?W5Q5~XfBXa?rq&$4yy>Vzm<p61P#3Bbh<v)T1!`V+{c7DlDgMl
zo0yH5XmH)J;pD~rjr)mk1rLQ1rGOYI-WXTrFA77RBsyB;mw+ySB${$u<R^SiPCotP
zJGwYoib~T6nsMOlkrS_N*E!`RWggfz%C@4_B@^pFv|qN+i~RvWyI?eN!P<4@?O4@#
zzh1k;%9sf&vRMBz5_&mAb@SkIUSCzI=~oX?>*&L68&kI!T2wUd$LicABqZ`|fAo(Z
zqHUVf+3-54ZrD#8l~TJ7C>*LwPj_UH^{LTV_j+fxYa{CL^uAh<f783T;a0r9F1u%L
zOoXqX`fg5d|3-Wg+f@~6;N1~qTj(@R%knr+ukkLbcYn=!2O~?2PRRy!AaxX;(GOQ+
z9O48PS!jcH_TrN9qtit=hEe*IrRFF5g)DAXu3OFbrO77;(%DVc;b9_D?bYt)R(RIl
zUEHnqdN#D|WB8+eVDIJVC9wf4rxY~e1rZnOR!c`p5)a}Wz&%ZG1fvPk5uxwm@!nVv
zL(&l$yL3`zzH@5Coqx@ra2Ac_G0r5-Vx=qgn^n_^J8t1>EFKHnOBW0-Ak_1bK-3Cn
z_85i@uq*A_xl76J9$>}-b`alLEJyo<X8F2w*;9>bF`BDr7sm92j)MEufyV(pCnI%s
z4fe=Qmr7OR%wlx->Fj1q;fbUzvo<>^zzG8$XJf*ItyQa$OxkMNqq%OCUh<Y;XnaPS
zu0!(*B&ec`l_nxd=x%L>aA{R?&|}+-1fTDAvF`#Y$fK<LZsg*stI!r<?;-hAFJPFy
zcDGN(RM>@}ogI)#cH&x7L=q=F$r{ZV+n(crLUK`9uO}+tAY?u6;csPx_mVk_S$-S@
zK!joaVEzfQD1Ejuq^;HeasSfp*H42C&Mm=qY{A!cWhG3pg!(+xn-GH>#y5|+gVx2;
z16@wZIw-dup2wD@>bUDH>a#V$FqHdd(>Y09gmcQPO5#_1aWlh=;=5PR+%+NcoUwA_
zhWxNiXmcyVG%l@h3@6&HTnc~ddJFabw)n2_JW1js-2Hsd>wWr%aBNq~4FbP-ZI!Lm
z7}yu|h*uKM)f##-CjC-u`=^7R27~GO8fF3%2IaW<lXKFI2Cjo#RAyJsb9WC`i-@)O
zIe@_N<V}_ov?$Wki=We)ZICp2WOn=PFIXN5T>E`8D?BzFx?bad@Qd5}t<wnnRl;)7
zi$7$-8KOdnzwlPKtX+SfBK>=34SI##cP?{r?s7)m8wImC0sNFt&=k=AwkLh#*PtNy
z`968w`X%K($@l8=ru#DGMdzyz6izm+2gW7R6KaI(`cD3s2RfFV7=!FS>>@lts~mEs
zQ3h+Q0{@d5@_EB)KV|Ktuj0ntb@l6ApWwUN9U>~{Vsy_{v-@K<u3MgNRI_7FdZEa8
zBNe}!aq>n-p&FQUbrT$K<>G#oi^i!FnVynqrn?zs6^eGn*D}(&2#EIN`pvScz<nHF
zQLgVq6wOmF#*^uGCGF*P%_jS$&)qKHA6_dJH=2dO>2^8zY??5_<}=x%bc3Z<=!4a6
z1deWU^mv!W!%*a}7h(~C4tMX(MDw!3ZAST(_IIeY{m%>hgP76_zFymz9UyNXCE7Wn
zokZmYO7-Nmu>revBb1^m!#Yh8;i+&z_Tx-9yl_ZjOY2SWUnAGkgPp5kgd2H>GT0nT
zfd`m2k|1-=6!(w{JB5pV5T?}}=B%n~o%!4tFaCMvXIl&74$DPmj{cGRDKYUWWxduT
z&2?O}fKQ9=>K`=Y2SqB*^Si6sXZsyLoYw|7b_i;PKT>rzL$I9$iF#cdqTSV8oRxPY
z&Os7uXymlD69$7tep>ADc`gnc2ajabr&#*i5k99ys7mE_$VE{*lx$lf3E4WU@-z>%
z2j318Nq9dMH$y(RH(Z~T5gZxU_X}`)tSvvpJ9_^!y32%4@~XA*u+DX%i2;YvwrIK5
zL18loe$f5MF0d77!4RR55)Hv|DQDbb(N7S+_LI8biK}`#(q(Kp8Dr=(^f0vBpW{-%
zp6{n;K(Y3Ol3m!)qMe0R_Tz_y#rt2pW@G*pJE<2eZzuKP7Tvr%Ac`S<t9?_Qzc@+a
z_BLwz&EQ_k9zHK=vyb#?pNwEe=Mzm|3Qubk%2C^<$Pc9;;AgVF7Bn-g3LnJl9pAi-
zfocBtCpJ7_Ti=Fhw|iCS-N6%;U$vYE=V;p~l-|gFpoMIOw+t)dmGpjnPjD!<^fp;q
zf95Blj89W&!Qxk~hrQxhwi;A}X1JBRSY5`6tfwuPH3U9=wCa~T(`P(b?2nhid`nZU
zYqyOEPqKZndV2QFN&7EDW}o5PJ9vqHLPd4e`lB}5)z{?pm1{FVN=r8_7(nvl9Pk=*
z9_NU3?cO}SE7rhEdd5fpcIZ!`?WSC22pVSNK*!9s9yC^jNK18lnKKOb1=59E{)o;U
zL)JKJmVFR0X`&wfUcTeSOY7u`eESi9YzzLD=@>U<<f#5=bPjWyGW$xfk+2KncOM?@
z7ZeYRSx#YKSje)!=fM7rzG1=R{#2%Atd#{4@v%J^?CQ{m@XLQ}NAsGI@UobPFLsH4
z(COr`5f@Hd+Q!%ZaMj~B7{nDm3e~_IYs%tWrMtr^xNCbX`@KO;509;gadt0j^q}pg
z%{7qLazxGH+*Qd~$ShDyx(bMRgYDh_94UCmUdHVWoxi@d@86j-q-fH@WgqD%QzSkj
zNI51iK5R$wZOSodt|dl?dk&HF^xNj|e|D&Y{?5);7E~7}Q56+l`H{}YUja)S(I*c&
z&%JR$=krW=7)r0^%)@ddduuMlVlSJq^9k})3ifU4^2jZ2uPB6=WN@@3L;g2Hp*+hL
zwxsaR;~lGR!tD0vt#;#sd<#~KM9=Ac1c%6o^vks%0`zvi9DX++*sUwZn>yeJYQ=w;
z)#Y*eg53AY@#*A)P)#axD+3o9@;SqY3?ch^O4Pf;Lu$;_2lB->HJ4g%Yp_ACqPBRW
z^yL~CRS!bvEsXH3f22M2@-MEzOJTiKaGS#vUq7>#rY!8iBDWo6%JfZ&JNYx{V3-vz
zTC5!-L)kNlLA&6*^92#*Y0KCU9J1T%evI4X@M<(Jq<@MJ<DD>Dds8?K_&sl92e;%?
zWkIAihwUi;vdQkq1}tG_9SB#dc;?>2U*}5^u*(@odK2Z9`t-7Nvns)RpyBDX?^<~z
zf3r-@xyYw8bCX^oqMC$M&4@&Me>vkW1*jC6>npcXmz>GY_?M!!IC8n=H4HCpbSBPS
zo`2StxOWxTl#}6gMXk}Y*!L%UFxm*$?BH{<wUqmh5Q0zGctr5UE4(C(o2l`WfIsKp
z))v|ai)S88x(~H#7+MKP7_;FG44_ka@~W}=U}>PKBEQo2I8gdd!Ii_24!QJ`=WtJc
zGbl`6(~aD54i>T<E^qr;SXbe*ggb{w;`@@mbWj>4FOrLKZFKistT9c~KqYuCB^|kF
ztZ^W|x^-zv&>_={m8rThG-VjqzBL&!+Gjy%oUJ>o4SHy)v+2zZzy-qXic;(%CcX*7
z8-r#8b=jM0uQvN<X(Hwv{+&b{Kd?J9+C4Ji0M_He98T|<k~;=&XzOq&FioX|-IUwh
z)FrOy4YH{5O6<Un`!Q|2Zp&8(k-3#;0U8pakQIl$gO@LKuCFj(yGDZ7YwvU9u((LJ
z?*{Adm@0snMgoOeo_`Cdf8>mk>|z)*<0VO5r~SA-`K)h*5dbg_0boB<!7yw5{X_JR
zCOmGCJ`Z>C2@>NoxP~i}bu+-x6}m~8?v@a}{(Ddm3%@(3L-8BOmzV*%@O*@;;nX-Z
z+-hI4AF6!&9D`Y8OT~}E#ooO3#gnuIkD%&E5gX-A7hT0zTUx#)`Q+QdW+aueR)w*!
znl!=q6JHs1Z}TUk^mm7EZjaM~FPmwp|N8KwJKCo&ye#KD%~2jK*~qe%>tlA)(I$)t
z@jWFO9If1mFZT4Dv1T%jW5<7A8~5ivUIBr4!J|x>nUBB}7IECP=O!jqmm)~2#4d{?
z#o$#1?>?ah!|1`7)Py!}pAIjB&30Z==q<CHhT7f$TfDVy>ZDV>My=MAhBoND6^0+D
z^Dd9xlNQ$;%|zSKUF@almD+Jp5%*?L8?RT-5n)h2D8E8En!!>vZ<rSA2h73(k>>*C
z9iNRHe(`w&7TPY@F;@9Fv(s2}XLvNB^`@7M);;vg1XK1pV6nPsqrMS5bkkLJKNusD
z`WT`Cj5#mbFu$mdK!<0hkufEfh{3MhHuug=As7q(;{#b;Otn;K>hMWFWs9lYr(E?Q
zuJxvL$ll&*0H-U1UwYM2UAzSvz`B>-gfG0j&5+?$sM$7iBwu}B2#VHY4=n3`<{uiL
zr&{@Oh`Q&qqc`Kkcp>$VctQ=UGslxVA)~n#fv9mt+n~bzj&YQX8FYhKfD@J+3;IU*
zFf-i8GFsuWonP=o*X;hS7xx;;&mHO!)fL^u$DL8sa-rv!NG&vJ#QJw4qu7hjt<!_I
z0%+0Z;~JJA_Dp^_)6j{|m|z^^Tlke%sF5opO^1ekRMv;5Gu}wWl7e{j1-fA>+avM8
z2SwqZ44uUz-?Vd<ANt@TyB_i6h<wjosVaRf!b+&Q1(>=_>H}1=tJCrqmmDGncxRv_
zVm)YYuS*1LaTyNIGVuSJzUIXt(8gB6a%epe74NH)&Sh}8Gf_Y60<hOL)eok}-K%po
zE{xQ?tJq)mN)|O%>U8ESEde`A-zT0xIML~bat>yyt-7SCw8;m-VUK2o61JN#d*sI3
zc2xBfEEX83b9Lg#G1*wHwX9}ejqEKt>_gOE^rMOTEwZzcGvTP?J%g)YiY>F|ssA)m
z+*8C3T!(i**|^!Yuk{(jD!`MFE<sROeTU(%m`*#v{;oOQLj_$pz?zWvU3}uYk!0sI
zO>@~#Sb7BUX9KL8jAu}6IDmLu{(3GOjF9^?4tGU?QPP{=B4oTTR2$mQoV_A`+Q*(G
zIo`Kf)t$+$iJ>lj{Jeh7C}U#U7wOuU11O{?lWoHeqj8aP5ym$3DCvmMHegAnU1*u6
zIeBKk#9j2@%;9R+fA&9;B}6dMt)J_0RXtNb1%8$P@$b4a7h!&Mo#yjS)Sb|G*qVe-
z=43aG2xhU?Z<GtMzuu;&JRS0pc8t;!@9_reC(@wD*Xh0I&sx_)q1QjZrr0n67gmDc
zU)QHHv~0hq`#OTgmWK(l8g*YQ`YJj!&8lBL-H9xt7vu>nePV95)fV5h(Q3vTgTS19
zmJV`eS(7|!>8)c!T;3d3{;<!Ta#6lUVD!3p2|1-6=RUP6=Gy5NqQrg%%dhc*wv)&&
zWOzfwQDqMUGEwk&^OcKZG4S7BQzI=j+?O_BU+wo#gf~q2PWEEiQ4W?qtkLnO>Syn|
zpJoMLqxF*HU)P4!niGR_;LSHCPIaY@WN{z3xmV+lptG4_+ZS?VcL+0&Mr4Umou2zp
z;<J5@M(J%=C6BlyUt3KgJM_LzA#m&Z9Y*J(dczF(2#7Ijt?Fkzjb){fE**eTkRPX|
zVcE_PgrdpAfy|<hzqtA11%c^yx_?8W<(p>P^}MnUTeI*Xxomb`o6Upo3ZPefN0*M)
zH%r{f>bJCK&^3Mi1J)}>N}I<;WM|N8n1l!FMd(ORB<beG!K;G5Z(HV(Y{n{sPn&+u
zbT&Q@`{fSE5BTQx!oBf)NMG%}lX$S_$j@$Px;fU9=1)oqR~4)F<PiA(6|uvZ!A&4%
z;zQVbdImz_yCl!gU3`9bXJp(ArTPD-(uWFvs+lE65aWh2?VqE<e_8YVm&f9G|442x
zsmsUQ*V)v0_Wl2I=Jg5gmbc<&`5h6$U;dw%{#Wn+(_1QXrtPXvs#T76*8f@apCJC*
zlo-bL$*1T><T<9|X6t{&L4@aKe@hB_u}8Qg+WD`t|8Ao^+4B*Da!#)!)c+CS|KIE~
zf8;+#5}fr1E&tu{KeO_`r{I6~{{Pg|d@(TK{~FP`@#esm8|Ybu`-xZcct3py>8}3Z
zaNmwHe&_DWPQXYj2VBj`bOht^ar5{$r|HQng!no9?8*2vtoP6;^ahfcRIBqmw8DP9
zIrC4k$=2!gjYnREut=XAhu})58$Blf_6+cPaQ2_E<uJjS{`778@vb5Mp-Pr7#)0cU
zwIcS<7yog485a)6*O+2spc@yRd7#zp6h{ZOc~1}MWv^Jw{5{jMc2XEsWXE&2H%)G?
zB~Bk+W5M?Qcdb0>l0;0GrB0rMN6UV1$cu|V(z%f3N+_*-oo_#m;H9v3SE>!JI8)j6
z9ug+7)sDK$85)Is$RJQvcdYwq`V_X-6KOeFB0iPWTz*xW6lh2&0MUBG&&SoqouV33
zSI&0sMQf85gq;1NiET>-77gfnIjpWWcGaX2jEVt(Q4^UoTx(%1Hu6S}-a}3{=y-ux
z+ZZVm!C)&v=TL1z&V-!)Uyo6GwoecQGfH^*7s9Gd?i*3>x*WXt=~%ACWim&e4&2#?
z)d1S2ZKTFA+9zcZ&$RSHW;cSARIZEZ_B1|9w55DS++hhru^d&OWNo)-JwxQsLsfBT
zt!6^6Spauq3as_8@})+K5&mB=z{ld#o#V4V+vOOi5b9I?7(KT#ZaS=%>vaQW-y<-#
z+%!*QJ>!|EI6LuS2_$b~7bK{ytk<w0$*R<z7WoH>OPw~V_j%6eW$ecj<^E0u0-tuS
z%)5xIFnxP8p|wuL92>2dF)Evx!}%ePlcl!)b;qC1m71E16HYevl$p@AEydU9wUZY6
zO^VivbsW!CTfDlE$_Y~e)61)Af{urHlHRdkyRHCVqX1G~sm{XXL%m0Nuguwvwu;Wv
z`eYUH1o6~mbK*iYV8{9JLb>LnRkZtB$WH5q-K#7^so?iG%hDG~nx`ubRK2}}37|j?
z{YXEbV||_WtP<@JqLx66oXG_{cRXkDeZAKLxO|_+h@LyVhLh+`E0H|>_v#-ba7O-p
ztu50UElKq2{89LjjkJ#@*2KR#M2aOTFHfU#bhWHX;H@01+?t{%rXzB_#6o@2v-~5<
zLHzJi1WMFEpZb}ff3oH{K;1hH9;uib!zFqs!kM&t_!JJ`8L5b5hh6ZN8fXk4Z73AW
z&R_7}{wv6-_%h7js6YxLv9T<--=W1X1z<t~>BSGxfCrh`A$dlcwQ2koqE{S(@UM#L
z66+&ih-r><@uO!exG7UpeBCU20Ku=1@t{JgmD1HILH0+}MMsbIws?Sx1@p_)!IH$r
zjfls<FkUh@lM`~v%ylEZW4sp)%y4ti$c2D()%FaanG_j@iaNL>LQjmWNQ&eppy1r(
zm|N=NQ?l@};XXxz&h--n{u46>ox(qZyg-wTKi_|R*)Aw?_IdXIp<}aPQYT4|mNnzE
zFdcdpUft2sqLa416h{k(C8`6W&*oGj4!Tba-2u-dsogWcrFjh**9w2^dCV70M0=-u
zl{f8uM^Z!E+=(*;>6@U{U^8DViW~`p)L%9W0V%|5|87($p@xLx(!ZOnnQhrM5i^6?
z;7IqPbf0G71-C+;EKzK<qs?y)?m|&bgrOU%`VQ*!^rB`nNgZ{)PK)7&D)u(ZIyA=F
z62`)th{W~-D=*&QV>?+IY(5mK`)Ik7_X8m_W<IX0p?!;bc$zske}q*-m|uYBy)`<L
z{_ThD@V_Q$yFMqs_?rzx$M?^-2A|sH_01B@hB;wT(n~Dx|M>XT7c=fxIKg|(mmAtf
zbF=F<9M)L$4;8GJ2#PKbOS)Z$NGX>+t1{~zQSXMK@?flACnXr-xG7uo9r)d%)7F9j
z8g58|pd01v&hthM>p@0eRsQXih4Ro@vEv*o_J^<l$YtCcVh^Y)v{NA>sZVk5sF&G6
z^CblGte~5mhmH<$GeyR+|D#|o-!2&)_d}a{XtAXG0NmR~p3tHNciK1PEqL2GciL^h
za6|r519R<k6yaZ3k{`olOn8g1o89Lhd+D>nYo9Om_CL7Hj7>sG-%8nst+j(PR=OV0
z?$rxpzGD&1^1Dz4%vY{mS}+P;L;ku{23hFH0ZUPQY8c=MZvyv=PD`Cpd#MGZ{a;65
z6Ot~xtg?CqjaZge$v1q!y{$LDe4;fn5((k|K?T0m%3FV447RY*8+Ex%m*o`-;&}?N
z-;Opk)JX-|Mm1VSg{LqXVfl<At8LNYgNp|%QdZ|w?zVchqphrG79WGM!08@+X2;0B
z<^QI4qjZNMhOI2j|3Zl>>63O^Mdmvu)E$xtq||DDZ8Yw(NmY_5zj{}JGhO?&UrG4Q
z2xNU<euY40$u3P8*xf9f2YK)RRu|bwb>H6_*@@LUPkZ^-4u*T~RRIdPl0)Z2NYe4?
z3l@Ye+gv=WBVmu>b6!CbZs~Y?K)iUl&dXk-6I3LvjMgx(^HP)1r{(-tKZg~KyP3i~
zd4nAWs2v<K#0t-(RG66|nE-5+fZ74#=~j$Gb;KXv$Dh7Hw?YUhoOD-ERq&)`B*V1r
zqj=@@bLY)*%?1j>9t{Hga;DFSOTPOA2;eDwt9Rp*iZ(K#3C2&m<bd6ds)5G$bp7Tt
zK-SUFPKuC_Xjk_IHH$&}n)|-CpA|q8n})tCtW?qh;wN&@VbSXa>6$Hw9hO9b7CgG!
zoL4V;e2QX*WSOcUdFuh=LryWx1CFQgT87YCJU{AKPd?#%x2{HlS?-TSJ88r##b4BU
zA&-rnGbw(vmP_D-^a`3Sq3D641PRcXY&=Y^#bGC-hs2;wcXd}bRX>AeiH0ZJ6fkhR
zMiI^8r(Nt!fo}Z(W9=aUU8cmyO9iGTT&I%faL(F6IIc>;)rU;r;_c=DiQpZ!%R=y^
zM+B?(&k1Ii-_=ooqPuMpqH(nw{EIyo1JsnOW<k}c{T%nYr_n_bX5_v2imB9M5O4N?
z&Z1zMtL1hzZz0K8sq=8bMB~xG*0rgiIX6-@00B)O4^XD_p`YPZOrjvlv}6SLo-PKK
zLtDCr>8}0NA<Xq?i&D`NC#5_`%bARa@3^KOENfLD=rTSqw|GV%QdN2KDe7O!-|qpa
z8<y|e*J(HP4!0JZr_I!0yM(U(91l_({A{A#EYK}wj<Z1en#=e#q(U!-*xi1bXbwKU
z2<2htq(Gi_@ArnUp}gg?de{(5vxbr5xT&rI;cDsKfa0KExS%+jT3EDZE|;?JlDa)=
z4qR)TIM<bw@_oa6jjzqosQ(E}MU}nR%Hjy!n>XWpTMWvMBgxlD-d>=6XJjip*Fa+l
zOLAtF+qPm7EECVFTmLT>d#8+)``nbB({QtkL=QxtNU>!1{2V)IZpgUXs}=M42dBq$
z=BVtXOrh_-<c0gH`2_DWMw~ylO`4<rcWH=i*55Jvd-~WIAu-j8QZDIeD{zIUbdGZY
zaNF$BQcycMu|E*Cwoot?ux=O1&M&wHwUWl&cm|M0+gL2))!d*8ds|z9$TMY3UK)v~
z8qkiA5bCY?O*q<OB5(ch`1vEIul_7w+A2y>49o0(bw?!`SC^_HB-%uxg{F3hjoBPR
zd+}C_<{I0%Th*jf&PtpsVSAHDX%`VIVErC0>S~oyr4e4gHZLu+N^4=9fg5c<kMHoJ
zf+qYhXxKm2V4JgYz1iyA+xPZ)<+%kJL7}R0IAJ2N(tg$Q9n~e{pdWf2tXu&~(;Pfs
zu%!hpw`MaP4<;B1vdyso^lj@6&g<m<Q10SzLlQeskg5-CpH2-d(BGG=%5#>8$k75!
z4A<9nN*6|-J8Aydie03!gZ_d!Wc69s_3x2rcaG4=53#=uc6`zzOp|OyV9=_oL?Zgw
zpq2?j$%1L;WF)PeS6>}<^E_(Bik9yARB4z<GL0|bXN{{XCb~$OZTwTU#5TWuwcIg6
z116>97P!@yd~>jjTLr`gpF~DG8WMFeCL$?&d$I=na-<SE<K5@Q=w|$Bv}6}(<|Z`x
z%D0#uiC|BVpZ)pe_<_s|IX0VRSJkIyGl08lvq82}l_8ix6NLSbh@Flfnm0tmg6=81
zCWe}5O0O$}nPZdE|EV?z%NZ`Vm1-Y^Pm0hJzdNV~?$g@F?*gN`tD!|KmnEc?WLMm7
zba%R)%=Aw9TS{Cd!-$Wmo%&O%hYbX-=iEnPp@1R@d9!_ohkHX&_P^yqu7fu4O*b@c
zbquP#26-||Y>oNX2}cbJy9XicPPxVtKeYtBYkZdmcbYTNn2qy%J|vGRxPZ%~GFDhD
zFBwR#{&C9@OgeiM+RfsWfx3@PnKBfMrdhnh1LQ^nu{m?TK_m87A(c^n*lUOM1JF63
zMXQ@e+ERQTTKL7Ml;s}5mX)3i$Fycov6gayU7HQ{06|N&3aaeGB>ooE;w17I-3I;*
zd=cBS{#7bn@sXQsy{88VandE9l7)xXifYthN0$I}u<t$4lZeSy3;oOFRxob(u^)a$
zs{xkYm#cfeKpAV5$!TXGKY4iNPUX?@z=1wbX`Hh|y5Q3mKjd*&;Q+RYWL9ZqPV^k6
zW;zp_wze;HGU*^s%OP!YUd(2eb8<J4w4$WYcr}F=_Mui$w|vt5byuv-BZYC%0SuBX
z&mw7#VUKzk^ahY*M=&<sPzcpxD6?Vtw3${sV#~z|7vGRQ?bf$yJEAouXI-N+CtP;}
z{PI>_DqfOcZocm83{IPTRUHyY<vX|(H1=4-Rn=p@diDbk?wG~sGxA);^Ng+l_4LUu
zO0k`IB!Ep$`uzXOHyWYew#4mw=ocHWBPtrWyR7A}9+w$4bf*T3FMga7qOe}rHBP@z
zcv~GjAr%GJH%5@s>l;FFFmpQ1VVF*-*0=P2?u%TFjn(2`wye9-h2vh*#Dbz^5t$uf
zL>9k3wu5s#anAKigozsNB{bTPaGBCsW3XZ}Vp}=f0BqBdXv0Uh;t&TxOXb*Ah58D;
zIjL*J_sv5Af=G9Z0D|w6psoqEEKYIuEsucGW&JK1IVgUT;ewD$sT{6*^YA0-*Qt8j
zLlJX_kTJW%Wsq&%*PJlS3%d(Nuwz&AGuWtmHb(d2qz3b?7yD`-&=rh?_{i0qAS<3y
zJQRqQ%|3$jk$aQBS^yWB1F_mWEQsV(SBXHe)zEAR5)DbS{r+QcBY2nd9U3N1*nu`d
zHraZe$t{V@c_)TZY2Hwbe^=Ej$)KfJUS>fSTVe-awIiDSc`m8bq$sX2zX}<B1F4M-
z*U0{}bRg<LSLh%*86<5NT?tYb8mv`%2mOI$I-xj1^SC#+#E{n7Dz+S|Xv=c3NZL?H
zPaAYe$qS*N<@F?r{X8m0pVEN!XJTb#yhEWO(1P7T6mK4k+r`uR`o%0E6%mX--uj?^
znof8vY=dj@EVFKnF(3bXg5=@RZ81Y&Uhbt=F9VMy$1Mn{4_iDYlA;c=fK%H>&cp)y
zgTNWvJ7h%7ZQ}}UF<GaP7+K@T=8Obb9I&Lv+Y7*@)kSV;QIS0n|4jG53JJqu2FPp?
zuB<ZHVW@=ONWLwu%D!P?oom`wp<T9TtLWt_QTNqGM-w}Z5?;54vBPJu+ci|Ny_fLU
zvbvQ}YVMU@jT!wTu5kPP7NvJ^$j|M)f=7vF1?hFPNOS+n6u?+ZQw&M0*q;c|S>m~0
zuD{9P9U-EWo0RcwojM{KxW5dk+8GOmBeB9=ci|POI1ycJu~XnZ`e5y5JHt&T_T}%&
z*&upc{eTf9ed*z3>G}q3us<NoYM41Ojq13q&%imOZr5Z{GuU@lM2b3++np)(X79=9
zImhwF6VyF*^uM_PQi6Hmq%}_+ao$g-F(@DNXb<FCr~<5aPx1#(<C~fF2-9;QZnO8-
z!9K;W-w|~9l_VMCJ!@!9V*<GW2ClxS@SQ%WFyYEAfv70Q(cTtS&haGC7|c5rugmjh
zPk4?^=&mcbFoJ-zz5(3KnE-66s~x$gyUDoas~+zYxW>Ie$-%OkJ?ZwLxP6vJd8gw+
zS4{`4w}jBc!7i2zT&Z?B9db7!?-mOA%!FnYotvd6-aUc3r5}qA-)FGztP%rDTRU1n
z9Z50Xf1l&vCi?LhFT-6IjH_n}PIw)j4$5k~hpJk57Srsk9#c3_-sB1O*_+_kEro7t
zDPxV89hN}u-gbYiDo^&x3?>C0;p)#MlTVi7pEU$)^51L3lXUeHJGMQm^wI?B7k1m4
zN)tDKG8WljY8lrkr}a-h%54w@2m<5%K}&ugtEWf~DAHK21?}Q)o(Lh@IlUM{+tr`Q
zIZ?bqQ(;@|N;0SVfZ!lg-c1q+)805vU?ye1Ly)3>O=MN4AG7&48e?T+8`x<kT=igl
z7}~vkRdV-$=P2`Lm~o=IC~D+#KD9Pb^t22b*$iy1So=mDGDp-1c#u#gjT~fCm*7ho
zE5mS7R9aoe=0B)q6g);FygK{tNTw`J;Hn#fG-~Jo38BCI(>=1U$!s1SPkHXCfOLNg
z-}&-w`2K{0dl9qCb|=eaQhuOi3xnqPcZ~^ZP2LPMRfQ{i_5lc6#A!2u03r0!!aA#u
zifAU$O9=1!Hl9D{$Ss{^E5+@KUVi=gO}%ac6yms@f|N?%-GvkA{?bo!PwgDrcy^oX
z?U$gLF(fyUfGLNVxZnRJ^W~{H$RiGjD1!Mz1}f;xZ&t!X7N?Fq#3zDg;wr1liwdk7
z^5-xF&xs~_rrP!_pF}=Ei1xn2@e`3v+w3D^Q<i$_Ce19~zxEbzdy8b0BhV`s28{!^
z^ln;KC|5aKhbb@Y$cUL8+!C3k3rUII^@n0C75I4Su#>4`K;6WD6&b5YBTT{+M_zSG
znU8wC<*V+wd$6N85aI}5r7ztvhrW|0x{_*CkW<7%y)*nLCXw-OUy7e?Nw(gA*dcqz
zL7Mc}k{c!Sp9v&&Io4k8HlM~dqu-$q3|&dF)ND}QLX2{=uYav~JT&MoLTIQMb}Vr+
zD`~<^9HdZ-LppE?^o+T)FXK{A*a0P;$L>4hNCj-HfX0o;PH!XW1prgBm=F$s%NHed
z?uSjeN_U=DUa#9G%UL64WS;$PJ#Em>u?SViEDz3=F(F5J(b5aXgTBe5V1r-K9j)1}
zxS<tDqpp_dxD~|XTW3fx8|g$YrAIqk*KXby%+SBPuy)3rj)fsQoy&jV-RO$!I{1q}
z&zI0wT-MAtMth&q!!6=-rPWW{du?N5^-HbSY^TDDR$*VpGMyIR4a{`><?udSA0eeY
zpH;W{-2Zk{gH!ozt)~rC6bStD7yxvadaKRJRD$jQnI9^->?8*yhFA1+rdXVK;)@lx
zKG8N>I_U^B^YFT<W__-gT~h0#a#vY7HjO!A$4%JSXqfIcHZj>I$K0^G5>EGZh7~Fx
zUEi#D?EB2qLjZKx&<CfQ8Fjgf*ftKcE@i@tZz5GSY&>o9J1grv|CwF=K`|<69a=v}
z(+0v>8HqSuAmz<_8_V_L@zm$I7&4T0EsOoVn;}l^hXSa)x<-HAMgBl`u)-S?TTLBu
z$0poWHjCab&N*P3pThod%4?5#xSvA*InefKhkGh1?{nj)$#f)(@{NKR#GE-yb2m_|
zcZ>EJ&0Oi7<a+4~{3fF7y$H`3{nn{=8Q}RNi;N!)GllU?U`ACNLb)L*W^tp&)Ny`B
z5sr2_0N2#3@i2!x4a12hAF@UA!YET|e#`$*>$;&DbxKU>D4y)q{Vl_qB**eAd%{hJ
z+gA>6_Fh$S+bc0t!*Vp$C0Wwi0-Bn+j-+?$z?acR1ZmSiXG6&Co$f0;wh1W^x4DC?
zKX7(jfF!%e-8DZ3&pNvC&48RYXx5kwj}I-ZJd<C11)7qRT)ZQDmmn<j0M6%jvZ-^h
z4Lm0jZ3d+5bBBN{F0PDII!t6o@LU{&#!QFt4j&+6Sxe+{cB84Ez3}5!0|_r0CJD#4
zp!A0IUJVmjS)O56(kA!8_@q^wT`gakc+&f;HS=t95*H#m4M4!l@b1ez)`Pq#W-q(n
z69!(!Y`9~Xrct@PH{QJidmX5B&up*TZdbhlu2ym+%a#ZWiR!D|LK<YB=oXrSQ2?_D
zNr=h%gx~I0&!(-MU`z!V@&?d|$pHuX2R?Vd-Kfdy1mrQOS$R=0nc(Iyyc?(xTEj;r
zn7KND-lzNf!N4^;YCQ;8&v3Z!OC+kf+8>9D2MB{iRDVK1O+{_*&!_vQxcuQdt|i){
z#=q_g8Q>%Plb%2)i8liDTj@otMU6PYH;tl9f8jyQShL4Fs?tffhU_T4Rlvc@G|6fZ
z_k-9y3Y<KKBWDWDKW!{%`2MBg1IOsV&dNrA?eBGzhsi7Ri}|yBmKVCk&aF=Yfx-Pb
zws_P$HftafTnwC*O;aa$SEuvtcCWIw&Jl^-#EYfM;5mZ{z&jk${7xp{;wELbT>*Li
zDGH-|F*WaU2KRk&S0<qY&EqbaJ^znmxh^HMGL55UU77&rh{1^p(Y0|g?yU86!Ml`2
z)HT36FzdmlU+ARmG7br*E6sP^qKe>1Ro?E0YFfr+Iv@YIy!%h080E~VgtX1P9IvGq
z@MVhg*NwzteBYg5p)adZm*EuNH9PN*kZlM*#M8)A4!Qx1W7Y*i2igot8tL^6EhF(c
zN5I83nO+|yRIuJQ7NvhYD%lYYbvZ%)H>Y|Q%zX15iY1%SSDkR;h;q`dz{o0uH>Psy
z#nn2}SG@mrjx7PrcCx6-1rOHHp7Lv1^lrM*7CY(l(pT6e|I!8b#%=@4%(R1<`ECQR
z$ge&f_pNfFXi~w<FLL9L>4EYcwK0bDXZNxz5k~v8O`vLD-0w^_OF*eU)hqib!IpsW
zF<9ce^itp=&`1(l?~YV!`eNC@b7_zCihf~?k<L>#0z(hpISgenj(5a8ZGC}_7kR<0
zDF*a$v}7xX!+bQ>v)J5D=pMMMDGFVzG45dLYg7aw7#Xpu>8qVMPdB3CZ17Xr9-iOG
z)-b_nu$?3qb2;s6?=WL76%}@OCF|7Yu^Ow9a+lS{(eu00>1l-4D$5kYy&umi?K+R)
zT)z0Z*t@N7uMUD(c?8t<m;a<=rbKwJB~nieeMxcrxqdW>XaA?z?n~%Pe%kmyhpK1l
z-H#OJ_Mfg5M|RXvc(x@Ne!Rm_%NVT5w`_PYJ2$m!4*bl?K|0tYb?KTh<DR>gXMdOR
zN=ZpyAtp>pLci5CyG_Nz1WBI21<7Vu^0!`f6T5R_YRmmqfY8enF3>6y%jm3&Xg3|5
zL2ILg>SC+PzD+*&soBfwt~Mhr*6>qFC-4Km3+J~OvyTSW4!u&-<&raH(2ji2IiC*m
z+Kz&?rbQ!Yd><+-ikH_6l50|zZ^rcp`yB)p#7UzrZB%hra!v5Nl#1uczDB2op1E8!
zFpHfAbF(C29mt$_6b;)}>1Y^@V%d$L0IVDx_9eY4ycDWLH&b_htqz2|Vw6u1mj~4)
z6rx3eQl2sN>MtpE_1mAeFd23+CR9D`-CqTLZ;lRhpP!XBS2P1xJ}n>&3JfBSdzwEP
zniU_JUF{(lmPj)L7IJZw$N_ateWsXlJw^J2gUp|ncKmV<;pGENy<%AhN9A$FXjQxT
z3=+~04R_%G-MiIfz?0z+OR#j*)F4h)AyAiolL~)obXIbGnazR!1XlTGvvu=lMf<XX
znOHYEK=@1Dn+&ZR7r%^ljp5gfVO+CK8T&kWv=?x<Z%VLSpF-4R2IubiMvNNsDU2S+
zpwy{8S5g0GNl2kTXpltjz|MYI-Occyy-aixyVpF82a)aSieMr}&W>agUkm`3&POT#
z{NFH|_>tz|eO$BvdpXp=w+J+g$E^EhGeyZL=0UXo0Zu@%zc*P>;K7Yt8#8D4)`(;n
zFRzTB<bB6Q@{jM>jZXX!TR2SZQ8JtdU3}nG#@)b{dW*f>xTz0}@)=u^Va=hQ{Rxt}
z`FPClpW!opgCQJ{BmCiO{E8dbps`XX{xGoQ=ty0VyYLHsG|5GH;Vg{-^=p^RXU`b=
z_z3qqTa1Ad9rLV?&8~Q`rP##A^1E`VPUkhXD||S=zWLt8;o1FOT)R5nBp<1HDitiO
zB{aN(owi~&3BZwT^epM))#sXUT!|6x%fHu3<+`<i&vM*(7~8EexYv*V!3D={))Q}_
zYX7n;4f%~NqEUYF>&S$M8WU*`sWHAi9{k4Rn8U%|x7SffoV@nt63o%ddXeiRy@Qe1
z%uD#rNOjC|y5PbbFt5{94mk@KsvwVX!-kE>Wo~m$Ua(XB_^e%crDkE8V`^iEAWDzg
zf(zeK#$R#|*yNV{b=<{h{Ehk4=@$R+fL`oneM`M$(9>E`wdTuN>T=m%`qWDJr*@LN
z)?NY#UlMu=<HUHsUsO2_O1Z%x*wetAx!HW3Dg+}M;Ghv3n6q}vlJ$jMd-|z8uQ9_v
zI%#8|r>=l-YCYzlZIqW_qz_)X#~~+hN^=yJ*Ab>ICmSbxVFO9&K5#zbBMpAYQE(Ak
zV@?gTjo;K1^6CN4SV(?fH8+uny~d78<f+=&Fz23A__{qe(V!Q-a0H*7n|IAiD`}Hh
zh9_Y@otvs%Tt2FSh@aKUTVkC=YS^{3orX1d-n!-pUiLgK?2)8SU@bM8*sznjp&$KI
z8%38ni_iE^4ye7#$H(fAy~HTL)K^q%@)3LRkDm#i7@I>3c3tAwV;jXN@B#(v%>uIL
zi~5iSkMFtkoS|R;;t!wYfqk50Os8s*owd*y%SWXnS3CHC+n#$=`Jl1olIiQF&)j|g
zjoxW*Bli5Xa2NiK+wlvp@YQwt_IS=EA?%H}_|bt)<_q-rS}eQfm2=@hwz&wK$dNa&
z>0qwqegVX`ay|4M9E^>td+gI-p1H}-)r-sbzx2)vdA+-Vb!!3E!q(oZ6i<?vB99}%
z_04lG>gnTVCxHsaSguZj3ziM6gi2icP{I~=G8Rmb6PT4-c0-}%q=#59xb%%j;R(h(
zv?lr3K<22IZ}~V(F~`&6w!~?hvb!3`#G}Y&652Pss;@j#P+%7#^SI%2!N3U?HSY7h
zeFk#DV~pdKrTCx+yI7B1e5psOnHW+VKROaxER0R*Y<?kl3R*`gaF3I<$G4m3yqgEQ
z#--!Ilek~DO&pmp84I`Y3|F#LzRihFB=5K;@AymWK4-19#dC7XXnY2vxyCG3wXdF|
zuutqtR>$}a*O?>kcf1<mBEgJ(VDmfeE?POq199QUwN790`Y;%bE4dd_8PL|TO1FKS
zJ3e8gc3MBF)!0qFrcP`~I*Xt2KfJ(=Kgu-RuUwVO#2@VRt(+K}^tgM;$DuS#j;$iZ
z^YCsA_uRxkae%qFQQrGL<q&MnW4b5SQyKC=6FTQ19Kvr#JTn#AT^9!H&Kl9|oL(H%
z>-@sd{Vxnin=fcQ9G@JoTCIkA_vSfuMNFwL1d}6<ZpUt^shiYP>nVCf)TlBZTdA>(
zQFo~YYUy^3wI;E*`4<eLc~y;-|H$vR;CMxinbn2SoT<JZR%3jxN4Poh=s7j98E=lk
z*m)Jb``oZ$8Gcf`jniw4YcKP+{i*lFYkvc;b=ozHvG5*ji=pHTujI6LIqwS#*zkYx
z6>X0`ViT{-mH5g$UHJn1Je065aAt1VM>g@MpX0{G9=mJ2NQK^Y*W71rty;93&DT1c
zBiY@z^3#3Ce2%Q23dZ-z=N&8grakLReS*F6T#bl#&&yihSijbsY|Pco9;@gh=bY-?
z*B1HP>Qw$1k1g!y$Lq}8NcmnyI^`PcT%oWHx>wzck@*!>bAv3HWXsvZ(qkJQLKf>P
z4ZHCvT<Tlv?Tn=yC5ggab5m8d$)&!^89r8nb2!Kk{oyCd>5nul!4)~6|E_t7G~={f
zpUR**W`5X)x>?7<zQymgDb~FnnCo+2YhWbHMxtZq+MG6KxY^er*d?d%z314m!gccB
zxSg9>?+QHrR{ZG?m(24tY^872B7NwQxA5h7xR+qPud1aUvx!gUM=@e0$M{Qs<_Mgu
zxmF&M_wo_m_MGRsjMZG5z4pni(EH!UoA^$?u$6ktn9zxDzX^hw;mC*DfDPNpNBpA)
zulytyOCV)6e}bsobzg(`+54S#`JQ?}B{73#aY3CYCh_Q)x-x(xae=RVCAOJ+!dmRI
z;&sTZ%^aey@%RONag@FWlvuG5JAML?j%)!K_R%31*z{h<E<v3jp?-cGg9X&5x_fbP
z{p9l9--#JZzPvfPTr@}w$%LE%0=Q}>F~M$f08_sM)E+sCA|HuaQ)Us@q6IhvHfS6`
zG*J~VlPR_-LH{m_<BcvFwcFr9;G1EO;R{>ASa~pp=;#|W@;b141V2HG?H0|7Wgl0L
zi6ilQiovxxTm{wmiWfF`pATkpk&b<i(KX|`U}j><wmguVO#bo#?*tfK7nX6TQ#O_^
zzG@Tsv@Q2ju*Rr6+dL3Zh_eD#;okcf(lsz?6l0W$A)i(N-{79yGEs;n)rMX<N0(zq
zFCyT#3*+$4#4+a*lj}mqVroYRST?6{E@8094z-(>V{;8A+2Lb~>jGXBl^-okF==I=
zI(Td=4rg1Y5+nAAQRl`p_D{HpXQ8+2ZLUb(oLG;s6{}_7(HtzyaK6<Ap1oM^?SLbG
z;0OC;!jX$xFTm=DJpaCFW#^oc#KBP;3jA8j;~Kny!w>(?Co#|wti*ta{3=5-L?8aj
znU7>=i(TW?3#}ZP8)>z+nhz{xZYmGv)ETo}s{$)D?59O1XUR+PV9(i-`yi)Yt1nr7
z;UV`UY+mSI`}q7x2FLR2c3X|fHuH>F_~(^KeT~UBrWRuFRW+75y00<xX`OS<&50d+
ztQuR#>L*_5r`9JVox2~jyZWkL^A)eDIganFF_A1c_ip~3_M7L<FG{&~H5bWCa~hvy
zT>i<SY9TtwuX`u|%_lPJh7IY?8*-0ExMCztxgWdXm}t_+dI5il@U$dY@4EICFOo*+
zy!WAP{Nf|<*B*rjw&aQU!=1?&mc$iaf=2@GkJEC}SUtb-J?nP!A0ESD*PDGF!a0>5
zF0o_Z=1HNk&I?p=)<#}TgL}q1|FD8$G3MMgt6uy*s%`UwJc0>-*rSSCA7I2fc#?0{
zGuGS1L32(`^f)mxdzXItd<7kwWW;rY>ey@!+~XPn(~3Qu&H3O)Hh8k%*BZFNn;O+P
z4^;f~Vut3!TKovPc<{%1iA8IK<B+E`2jtkn(p9%{^w-;j#=N6b{2Z@2v*soJw0->P
z+0V^|17F5yNGmsz78mRMlq>lj6Zk=v2HV)XnctMXD48C8{f62n&#VQk`<WGBUTZ6T
zEB?fc)zpsmp>uTO&o*6O;gFnyH1|#6WZgrR7j!We|C}wqoWXstFbDC^Iob`mIb6IY
zHdz{73C}cm_T=R82=fnUicmQ)Txn57)LAjH&oSs|i7Ut1I%kT5vBtSydsZySILb}E
z@h!a!Wq#HkHHP(Ivk8eAtHt4loMgUk#&rPpa7N}>DP+q>=udm(9Br=fTfVTEdLY*E
zSL*6cd=pRo6MO4`Ui4#=xUi$<_=jU6nEqfOqUdb=+Gc7Db^E}hu=4DQ?|iy@>?5SS
z8x!lG?=g2{%;k`Yq@F`}C+>N9b4OLmklQjI0s^)drB14n3;`sPrt(ZNOfi+L7C`JF
z%MV3_a!A&J<LG3^KJ+z-kuwd5PGW>j1x{~#Wa2NIEHaE{;zY0HCtk1J419u?q=Q99
zCZ=FWeAF2i3)0Ao8!k%q8Jh-Iku?r!PocmQ7`u47Uv~OHu)WA)`{DoOfdJq5(7u@s
zC+ffs95d#^&D1sTmQPIUMUhxQ|9F|>Tu9%-*n`_q-?p4DeHu=%E39DI78P4fuE3kI
z#4^*%{Ka|r?i2uLVq4LhYu6qc_(?75KrR01-|Afb!GsM-7-Q<v=gwa*5@k4YR?r5H
zD{CM8-Wa`)Sm5}0{PEToWqB^TuD}?a_;aoJLKgnE8w+GczS3QQyI?nd*Q#PpBTp=Z
zJ)iE)m-w4l>zkVm*RFWNCv$)oV~ogLVo$yN&Z8GVGBSJ_J9DOX(ZaXT>J_8Kwz}@w
z;3_%H9<{`ZwYx72ky{=c-zh)g99aTvZ4nRhw5*$nFg!vGoOpP!MK(UdHQNVY7-G`f
z<9c;$*L%mIzCHd%@3uP#ZIc&xA`bQ||F?N)jX9>tcdE}>b8h!F<mj<UUM=`?jU``;
z`=T~Num7nTIHcC7FAx^z#=Yx}xtm(UPGX`4nfvu&ZCy-Pob`FvzTX~?My>;miFkq~
z`}j<-M6g<T0mCW2oRfzo3vN~xyzE<J=={CU4cn;=avVPPb~)a1EuUR4_A*}1PT}l_
z-*}AQePfm+FXfC?b3A)~A<s{VsXltGBY0{**28UUBkNIeM){RLywEaJeW*?N=Dvmd
z4w>5KZL!DhZQnTuN$hd-h_<U=Tk4uJ^D!90Sz;!J$)}F?HJ%*bt{+c8%Q2EO+0%*Z
zN%^54o9XMkQICYnnMGz(KCQLQuQ1sMVRV}zF(uK{`tn-;NXoDUc5u9mFVSexh*#wF
zlTROV5G?F_uSy*Iw&yhcHlV{q)b)k2%wO`uS#skSeRNJf?3*Fg)|%^i%O>}K;IT4N
zX$m20o-9%aic=A<z7fmI<yE?4|E_R6Ltjm9Jco3ac^~$+`65ml+p0UTr9UrbVW)Ee
zJBbmti7(R3=^QUE!<}sr3pS<OIW2LwtbuShY+5Gr+ygJpkVzcX^>c&tw))gsf317k
z&wb}HzqeAW+{b_=Ym9s4mlh5iSMX>ndGTtF*52`$|6m3?GKrGB?CW4njQVgLz?${&
zx$4O|ONJ#urKE)`{Lq7L`Z<Sx8Wpe|sm}Zloca2jfme&szt{HG7tz&c*BCqp4}7gW
zx-R4(*Zss2-GMT36LZ!8;v)huQhlqTr$8Ok>Q%&!Q$5Tp>!L4R;#QxVbn{uKeeBpD
z5+h~o9Bwr?81C~4k5fxy5JOJ-mPUaR$U2|^mP3k@bAEE{0wHMIN%EWQ=!tB_fn0td
z0Vpd_Y<hC4J4Bz36$|!CI)#*mEr^P)4~DcXxch!ak=HgVK7Q<`T!5tuGJTnR>tf*o
z*f|V8ELw>n`~*e0Z?V!_dxVKEewa9I6tDSLpD{@;1sxfoGp~_P{A*&=O7}>wqNKNR
zMuM?&pPq+qZ~TQ<Xf+9giQ00PHmVnT`EhI`y0B2A`<f!g*vS^$_+TH|Ot#@@^Boy^
zah$Ga*LeH02LpC!$=@jl<S^I<uP1hLg^sZ>ONUze9^1@^@qj_qFpG+BD9u=~m5=&i
zfeyhP&pZb=Kjp3R?Bgr)9MiV==bS$3$$QyxUKA*G%8kh0=RW*xexf+J;*e%8Wz)Dc
zhF<<&uZJJBX?!T<`v?+OjO4=L{O;;{zlI^#xhh0a({|+{QMEp92V?)z+sBSfIb$x{
zzqx|Q$q$F(lMBOXyG0fnlf(F^ynJ52xX>4rp1M9Yw$8Q(_Ud<t8Y8cm;b*P=l_2Ld
z>Kv{b8-3B^D9y3Th4~`4<8Hfo?fKMrxLG!{o)!<ayIX5F4)L{eWzV~M4U);B=~Nx)
z>GLr!sKwLE>oWbp&XFq0>lOTU&IUU;7k|N=b9jC^7g#%O$Sgf_MJunXF5SJ=Vb+WE
zA;S-N`Js6ZZ0@ICb-v{ZF}aF2t2}t)YoGXE80B@VHOx6Vvo&+^VO+|YhlO3|IvaT*
zntB8swi^a9@zeTbzttDKAvkrHnqRq*WPEFj-_ALA*1<@G$1p=>(6SwY2kx5F#<SEj
z7Zv46?kb-cBHbEepZ?}K<Kcxq9hpBJQwsvF?E5EqVw`%B9pb(tuwW=Lov(vsY;tB>
z7F(6%TD0gL#$)ES+uS$h;lue*{)o#jzRdj?^NTSa_TZM5+!puBvu#Y=)JZrjmuPlg
z6BEbS%N$;^=)r0D2%q8C>!x+Er6wQnPOESB<f#wr9%LMvc2xC!frqVUV8WlgHhlK7
z%l&y<>qotgWxGG!0~lejA{S`cy2o+K=I*{Yd@Vm42Jno%T))Q-J9r$<JeNn#b<0EL
zg}yBMQV04gABW4U{CQ4s=)8~{9r4>MS5H5B?YDT>?A`l3zTF-#HvE~lc-+KTgTp6X
zt5(JA)K}|>@!YF$lyy%UiaoWJn4B!eoxiS+$!qvj%o?j6d3BB^->paL%yP{?JdX_i
zX?SF#@0IQuJr8W~VoOl8>P}YTPdJ8`)Q9{b#~e~yl@Z<c>&)ZfHnN#JbSDrvv~TUp
z2j{Nm(Z?P(QYp@&eV6mz!{V>_kf$}S?BjEL(}@?0*2^B2f7RxtciI8Xg$~Dk#U;f>
zq2%2$lOlhTGI;uVm5A0P#!i6JZ<}mMJjvF-1jXnSZ%oi}t1*B~eM~~tTcSc_&Y>d3
z2%cald7#E``oTgB>QVRePxNsZnVsf`F+l8iiQk2vqH}ZM=LQo_@+u<I`X_8K#mz=>
z`iqNvjsxNgpYTImTOY@AXDMy4wa;7mU~=*fXdh<LFQ+|b4<fLEt1TBd`Pts-l*1SI
zd>E*a-M+EJKRDKnRW1<Xp_5th!DcU1;P1qm3_EsY%$@xRy}8@vpMLp~l=X?T4L$nv
zgZ(vzOgO|Qc}nBhAG?z-jIV|SJxYe_m~&@Gy7_l%eQDlxboo@@#h@?nqs4z?09)p3
zafKi12${siu~7*I<Ee$cj10S9<CY=TdZX^JlR1stmV?a)vf&M1*yqB@Ma%Xy77i<e
z{cy&PT*n9FMrwOOEg*9jlADl5YLR<wnos5h*=kFS<W!gyqsPfBv6ENkfdI1Pp|`lr
zSU4uO*u)Pp=RsS#gy`7t5ZwEmfP-`N?F%m2r=!SX1pBhUp;|bKZqCb}WOnZqFD9+_
z#?5KYi<kHyB=Mv-rV=-}z?T~rIBaWN$vxK;i<#fkc*9OOPW{vh9QGLXaNZntFD~H5
zbDlmY5NZ9O6MTN)*Ezmx2fT^Sq7T~SPrmW-cp7!YR=!-rU?MKAXY9qF<+AZZvvCAZ
z<|K$^MX>~9ETge%P4iIkWS&wZj3Jl#nR8^+FZ({nfMgmsr*J{d)BG1kG~Rr<Ce`13
zq%Lx9h1uNbhHW3ye(b)-!~t`Sfi(6Uy#D+0jxlqDQ8$gb*34D<GMAE1C|R{5i;C4V
zTyfJ}lctSL>cqL*&XB?9Aeyzz{&h@^F@}uI7!Ak5WxdEqkmz<+>3KjC-tYk)d3Vi#
z3mfnzB=XmFc5gYgki1tGu&y<<PwF%0*eAx;p=GBJ8?}?VqP|WmAbdz$ez3A{FiGqE
zg>zsTGDB?G!Y1DJkYzThv1+1ypH@t#{!cVLXI4+w)~sKxk&JJA87pxOKbv}RGY6BS
z3^Z32OFptr78yJ-H+|ouFw2R3h=<!8)>iXl&ZL(-tx@0TmWFn}YOn9F&b=1GSwl{2
z3tup098ZS4n;X%?xHO%r>=WC{D|XN&cEr}TKXt@79ED$m=3IN^(PNw=&XLO+fRab`
zD0F$ac>erw{aoKS@_qfh(7Wgi@z-~_@4wOyzn<w|BfFBm;<`9~g<D(QW+3_CMh<c>
zs4P&s6KC!LWmsmr7WI1I7$ip^=%dpbSODOB4@nUV`tp_0@V4YwOZ{05b0r)2@!aCN
z;CN*foT<C4AL!E;@0p7W32fuX4O_m?P+aQLN4@ug_dDjVUy>Tx#8<CHweR~V@C#4o
zWX!^)8FfrcKm2y~f@cB|?&c(QPK@EBzOl@4)_YX(Q9cA>*1zN@9N0!?f)q^j<|pUl
z-$Uq7t+bIn9-sXA_y1XS{hE7UwK;iccS6P{iGzr=baLU@nz|r~!1+n?kRyozp>Gu{
z0p^B562ceBUf34NSWQbBI42wvBdhy{pY2A-7^0hxgbxn)<8$e{Ky8!$Bm&KMzyC=-
z4ijYf+2Y5x0zL6P<B5~VU_woYDVm)6VoQ8#Y|BcSbN|FfrpAhG?DJTjyHHMTkeN*<
zw!lp;v!`!)O&-&iZRAdRjFGQkdQ9Wv@h5=Bh;jQ^H6?s1%QOPp(U%jkr2cRv?iGuo
zaa_J64qszI{nQVJ5_kKv$I9YkpF_s2>+zMDWGdR0k$=qZ7Z>_LRg}JnZj0OA7Lspn
z!GRocsL3ZS3sU-$E6v_{Va)>Fn9m)a_P=tEJ?aDdrviylb)p=##!e-|gEKNd6YXit
zeQ0Sow{0MeZypT1xGM*bX}9xP8|i0FP#a1+mYj8-w0B=S;U^<T>OAC}T06y>Ik@lJ
z=Yjs%$Q(#sjcK?C<@8FH&b|M5ef9Qu`S$hp1ro0oIq7Z8%Nuo&hm%1`PPo{+#yW3e
zB=1=1Snv|Fszt})S_hhkS)Yb?uR+*n?#2(YxhbiQJ@4_83ucZ}pXe|LaXefKqpxGO
z9Sr#JsQOwLt}(@Ut-r>_3my;syS?@=xBEtPSr71wM>WaBcXICsJNJakjqwv(oNOa=
z%nd8`(Eh|59&nTj$r0O(uk#)W<*Xs}BnRq~%Z;1C42F$!=S==D1N0%kPEgO?XDuNT
z@<ClOGPN~%4E}0N{(Kr9w~_MPj*%fQ*OR;ivH0-Cg?)q@Z)05N8PD~SV|a+)<h40q
zjCl#yY1=(e-}dalqxPq<#zgXJtcv4h?5oC&N-~S%mqApY5g!u{$KLPbOg~)YVW8*g
z0mnK;+h^N-n9jEOpkqus1-h27UYzP`kdBu+)pw7U^+fiu&AgYh_E}wZu|;JNLZCkW
zNl7BCN93D%G7c>_ac*;m!Ejv;eNR30*cW|bf&1WPZ_fqe^%q$q@F8~1k6iVhx3!DF
zhL2-nRR~=rY~Z1rlQ?&IdZnG06SU1AxOA4;!zXjGai*p{GF)zYinsSS=n>6o<V1bt
zm-+QX59BN!ALtc`kM#55$A{yGA0Ce1{oru(?E4~3GH>bK_IKVn9N&HWaCrNPzM@sX
z-uc#BhbQ0r{^8=;&A)&6Pk-sNH@|ZIjl<15zkB%7=l}TlAO5NoAJcYN2V=59eFbK$
z5~GfW>su$T1?2WMK^>H%*tpG3>NUN?8?nQm_O7?hA0AUB$Y*Zsu%l(&=y_g%xBbL6
z;#hfHJJsWQ5EpB$Zu~25#e;9D3Yjzj!4Gk!bsfsJtm7Sh^M3h+1FXj%n!V2ETD5GQ
z&gETPyTdS!5pe5|w!fjBJhUUr!?DxpMTzi3fWf%f(q~!Cv=BfLv$#2->eqzx?_EmJ
z3ya_w=M-3dn9?CTHYq@k7_pRXb&N?{UB+2>n^f#4iL#*+BH;&ndAZEqWRF3TrZx{u
zj_PSUGxXT)K2fWvWNnI@%7POR_67<6DFS#T65#{4j)-MjjK)TN_=4cY4WWro9Gi2=
zda>5flE*%NC9Zz%Q^Kgux5l7kFbN3f9lnI|WPuo;ERc46ad@IN@Ubn6!Q=&R;MBk3
z^DC69Iis5eo!k>d<7?b-Hs}n;7eyTve|)LKx(?J_S=gI}qkXq^PjV|E=Sh1rWzM2$
zOztNy;1!Qs&cbzLjK+Pp{M9a|a5y0e>)jj@vSKio3UkA9lE?Vl-@v%8Yyo^&RvvPw
zv%%~bsR{YgF*4i?H5U5&VAln&9NMV$u-&}qAgRz!y&U5MIkjMt?{Z6cD@4mYWK%5r
zS99UOYX^Jf$ni|A5m#UJ&YUFn@M4{D-dJ0c$aJ1N2HET0HW@cp*kX)$d3S@D;jlr*
zmvx<ktb7^A1^}WvP_#o=HnxWZJRYu|-S^}1SP(uMSOm!pSINqBa4wv^9?)CdgFr}P
zCvh#k9A)fwFFb5EaX$4?o*H{OuRfURqgH%F*n!=?Yr?MU2Xc6+55L@8sdk(<;V4ss
zy*Hk#hG25y*V^BBxu)jb?!a<9I$ZN``msATm3m3e_74WWKFdci$)9sdZJoZ$;_K-o
zxeqnXS2?BXie)Q^K#^nFRwxa%-4EJ3&zcAJlh}O5T8(kH9Hr*qPmTIxKi7le%{~k_
zCd6pbkKI_#i#q!+`?6pQf2Wfu$G7`AW)8?6bq5;euX@9o4`#!6naF>`(eXpu%C)!<
z;fZC{hyBaw?Rx2&()kPoQ!dQDHS#%J2Hciw$CKE=ihejiU&k_%J~&uoz8jHY)^yib
z?P5f&_~6a<n73}SGrSWY4lb_1#1AqvsH6KekVG4K@T7{wl=+L_@FE|cQ?VRL)xG3`
zDUUWXBAc=z!)A+lW&D{}mem;ge$!#r(#5Itrbf)S<HRROV<WXgj_qN?fDOO!WbDCd
zG|Yn?|M4YTJQNUO%v9mkd;d;5b~@Lq#Cx@BYy#2xu6N6#GuXF0t{fwrIT+i)OK<J#
z$m%*b|MicI8gVJUv@0F*jH5oSx&G#Io=GlcTYoj{;{9(PuD|`A!|_kQeYpAFcl{3g
z&C_T4j+ST6g>ArzJ|ch6dd<7-en<Z5$>H5+9~=(PE`IU)c>Rlh2mbK%x39nZC;!9K
zzx(h0_fOvY%5S{+;eFLqYS)oEHhC0B6Y<2-`y?<qU*e$amg9qyX)7m@-Ri=8MbF~H
ze`*09xfUu;{g6fON%A7Q_Tw+LJnH~Pz&Yz#{h#bL-dZLr{JJ79aQl8kt{&X<JMBk*
zEmo9W3o^nryq^q!KU)2A>^TIN6Ekf4)251Hn|sppI)%J-mW^_{-(xp?;Jm>=O1NxZ
zk%~p^=}@Hcg5>({2q7@nspaJZ{>O4cI$VnE-@wFc+Q~!v7Wj}7Jvq_=KYQqa1Rs3?
z-%<ATMbBdftWNDAyr7YbG{F);kjGvEoRBmIf{6@8HHr`e#j(hfEqxs3$k$~))4S*X
z(R;u=lk>YQ`bf-;Cg_D;)VLPQe6zBuOkcNu_^d?od><E&-Zn<xn2nWA3>TYlvlzd8
zg8?JuLgVlvc(sSAl_$=6>lvN!h>mpKum?l5#Z(s7ja}J<&)SH;>X~`W2p2`!JkisJ
zH{?D^b0oIUgaZ%!$YSA7we$g~zAUE`c;QwlIH<K^#X#!LlTc^qBo4-io7jjV3u-27
zY^HA?JI5@_1!i(&<&**Jn-_THXgIu`PdW9wdAIfHe^c9T%w^k=4=!TaYC&V$xeTsY
z)gS1_iLdZN9E~Lcxmj6#S;)gdDloMJBfc<TOs#d5Gi|5F%-qliM>KHx##=72$^0-U
z&Wi-3%L{>i2-EQ=X(#hZIJW%AH}yrv;J|Zr9BsT2!{(e?6;kVjgA5TIwbXTt_@dRm
zp1*uyKvuoZVQkc9`Z&Am!k~We$rpC139qNbSkPRvKm5#t2=u%UOM&8CQ7>SPkJcCh
z;fmTxRl9!ZcP`--nc+ird05CiFRauSHn9<VBV)bD(JxE3*SNR+*v!odc5=-EL#ze^
zSlWV#4oH%`1lJ25m3q@&H-^I1+9?-ZQxuKH<y&rG#~)b)tD1Gdrx=4v@!i7L_$uEQ
z%F-_z@S_@_g&%5S=B4>+jo?&hG}e0Im^o%$*AaGzC4C++pkiEpiZ?fG>fftG@m^av
zNkNczVnHo_s3X<|O!on>HNqHD&TnII9?%cou0I$BZ!BRgG2+ju@Me74|LAYYD2E9$
zvCAG9T+Gtl3}Krw^_53GJ$;e~c5Yznv$;vl1Tzu0{x~*|TOYtuckCG(2Fxvbxw+5U
zwb$)Uez=z2tTkP$vu@)%7Om@Rl2KTm{KCb$N0~eeMREcvHEe^-JZ3$ln?b15-J4JE
zzhOO$z0MUXpzEZMoqyGU@&(S@bMy2eSs+|PK|rjroBcK~6HR;rUvbf1o||x%ad@^Z
zIwnlY5Q)s!*k}zPcG{v(AAXR#*6pxkjq0iRYtEW~2P-*pOJDAP09Rx&lJV0%Mm9Um
ztNLmynryKL?>ai+bH@vrQG!0a{LbOq7vDNOJAPktNpBeGY40;P?;Sq#y{p6J*Yv>t
z|9|ap^ZxsX0}tw<R!|9^x?1h{OyisqlMY1F;R-oOn_Q{uujuS=tMLBz^>_aGzq<M5
zzxk`jU;cZ4fZAQHd1g+iB3>azHsCS&aqTlNCikyU7!GsKvFtNn1zZ4Qqb!zl?AL$m
zs^_hbsa-kswaJx2-(o5_>EqfAI`TBWIg@`ECqr(_M|<A5=i~9_Ab!EkzwjsQWB2x4
zBVs=&!-1p)#4&r0DF(yU7$dA*X$Cx;wvRnhii|qvO!BEydXvlgM;dwi(NW~O3hs0*
z7k@syW24K$#lLXJSi4Ui+Ue{>gse_7AIqO_m`z)vhD=~UWiC`PyA_TJcSssYfkJ5l
zTcr9Oc^PV9)o-k!PfM}+)k>XJwu`HiiDPhoq?c<x{@`%I{=<(BH{bp4;pXFy_3E4c
ztk{)a#(DQGeH=zFCBFUk;ey|1(c8nv4?Z|Nd4BWP55MwD|IV|&bNuGji<{p&eD1{`
zAOEAT>T@;sZ%JOTqU8ma2%v0k#LdVQW21u~jvH6bnH<tZmbf_HHO@Uz(A<rcUqsD%
zZz8N)Ke4s++7FYxkP!z;^-mC)HlD0H_T&||NfN@3YW^ZRe_}WFfsw=)f1H<_#WB4A
z46eKeoJAy43tPzWpqIFE!AtDnw7Tlkp&!1a(+h5F<9o;bELvH-nB4H7pOKN*Eg$$t
zlRlv0E$?yxOe0!BdXw9mWkl}Rcu7)!_6*-TO5Sm!GsmJ%VGSO*@GVOiGmxbhU_vBY
zjg`gCVlu;f`ADZ;z)o!vJ4`za@AIC2>OXnP1qN;YfxvuO2Tiz%pWshTH(y}rO$zwI
zQ~fY2`@GVIp$D|&Z2U97^e<N6i>7nWueAqdFAPX{-D*74SM!fO>Bf5U+<CVAGP?NN
zE({nRn?4#0?pA;E1NU<&QXib0`m=7*WL09?b9B7;cz+u6cWi@MG1<q8ie!+R(;5R~
z9*%YIp*C*dX3iS}c2i?SlKM(c(L1d%d{@@iePbhOc$X|UI(O9=5_T<<pikZAoj-a`
zYmD*KZ)*^xhkV@og<co#7bIfa^QJt=e_G--e&GTm$Mp@a+pTjiGK_{>EbVXF;63)R
zLEa+g`t@<o<I~)#KisT3qKC1z<}GZ#e8WbpdXjQm9;$u+edkKBgHaeL2W1f#ts8n$
zn?^3QVq%9k<Eh8WvZrlwa7FAh&&pNK8#^`(K$;+k4mtArp040zOnJ;I0!LhXz(4cH
z^(q<O4g4e|8AZ4$X1YL(*>WbYsc#0UGhy|d)oIsihW0i%-{M4GXQ@^XcvBmk>~)Dd
zoFra5r68xZhTz{A-4D0r8pNyl%+yDoKYVe+o$dA%wq);fl>32rAUDe3s1+mUc*UQN
z;Y>ZjO1@Jow|!+i>rnYPnU}KS^NBO^aJ2ld<5*u@MFxbG-s;!b(wn|WZNAZ&yz6}_
zw^N4G_tMtC)82SdlwH=~O;8@3L+mGa;f9!+%T4&@1DR``ko(5I*?=c=Q(KKu_OCAw
zA6$O>@Q>d9^}}yJ`3HxOj^EU>^R^z?zkK-1@Bfv<KlhJ+@^JY(f2w!XpX%O9_xDG=
zfj4i+W94?~Y`^+6xqcb!^Z*3|$BX~?#gk|M_Q(Il-~2b;`A`1dKYq15MXR_-hxWc+
z!^^hLv_ElC55&H4I%`Ji1X<jcgV>8*D%DPO8P+jwN3OcDnS1(|$EauYV;etd+~0AO
zJhw0V^yl8+Gv3|Jlz*K}C$}vw-Pa#^-oc$>S#u!d`}vO;g=@R-QQXAHI;&emH%sf-
z?3hcAInzJsbDTO2>eO9w5Z>1P?S3xxMat%4kB?)1{6b$~49<Yc^MZVnXLXS``_&Q6
zyy<E5AHDPYuchwfp}olspcpDSwhCE83NpE=!7=1!FuDM<M$}wP6dE=u0=jEoN7mmH
zmcWon;h?3a$;y?E53u>=FootcT==swe(*l%_f-zx{MO;-JKsKB>vvdqmF@6-y%NWb
z7_(K*Z}_qaeFR2-#@_F|ANBE=xAb>)4<Fq8f*!oSO3hzi9lmk+=;D8T_A9^i)vKTU
z(*JS%5B{6)0pU%}7Xler6UODCNGOs_1Sd*d?Dr7M#lBn+d%2_#9`ZmCy-YS(ZgFFC
zm^{IknBY2vjJ(d=UEQ3Kg%p4nht@(2czb*S*vB_`Yus4DF9!E~!twrw13B8huQq}|
zqii!-T!j-My|V8D%Q4&PTT%-`xiNop6N2rw&YhfNY{juB#K#nv#vQA!CQR0st|T@5
z+C3kS*9B=Vl8p_O#zXa`?P^c((%&4D_Yo6|j!PKPED!Xp+|<^@K)s_cnP7=ej=@A;
z`ho^B>b2apc>qg(K!Cq}uJ<pVB$qR;xfF!j`)(w$VB;Z;xSQKzf9-{Vs!<FRu3ZtM
zQ2C-!zWO_cu^DWQt$PgR0Wud<-`vY$Z7jYQMjV3op%(@cVHByg%j4C`xPy4Zrn%g+
zd{>PbqX<fVq7jbONB(CW^n;9q&4<t-qfwpH$9eaeORX_@D@Vokx*FTp7uae$$9dpw
zEuGYu86&g$*E?R6-q`pZA-zB>{KVreFS0OCXMGEX%#-H1xTrt4={!JxA8)R;wd=~W
zkNr(sbz}3PH*A=jbwHJdjWh?OL&d`3HU|?W^O}b#uV<t2xLsz~@~im82{%l6!86C^
zjVimvRXJyprrxyIKXc;RTD%jBztm1ZD=X{tZud9Dz%_?f1~Lcb38=QMt&Z`LnHC$2
zFW>lGwX1=&M}3u!tO^XM@Cjb~ne&YkFoDs)aY%GXf|p~)5K!-MyzwL{ufOn%95UG3
zF7ai<ELwv56zfYj)>*4`j0?5(fDnuBlui&azIcm#<XZpK7M8Q-k5L=B&jwo|y>qh<
zQz~V1lzb6G<iLaP^65IbRd2<XxfU+brxIwLmzn>}o%BaO@n*i`vt!bK#luv%wN>Yj
zqv{YF-hE&Gin-~B0@nZgtYz~j-)z2^bP`^`2)^W|9OXP5H@5ILoNqM{P9vXqT`M_s
zTx6NK9uKJtu!QTY!=GGy{qQ?izkYcC_?x<SfA8?@^8Lfrhc6Cq{qB2*tKZf=zi!}<
z{H|sV071t+#TG8yebVWX3^S<a;hjvnZ~oF-H&6d_4gU=by|fvQ9JBJGTso#*?GVc;
zPpj6P!>JQy*Z%%Ld<&QPPyKK=M13_szPgXE^ksYxbJgw2W&42b^;W3kkEpZmgSpQ#
zse>@$xuF*$sV{%$(B9d7kNxrZ))#hjj5;_-18arnmO%C%A(>2!#A{xSok(QI{DT`y
z#9Q0$&^dPy$PxGW;CNSqa07x|8=9+C7;r+<i0lLdXT7KJnj_n`N$!nf=0B*!+fk3Q
z&!7L?GHQ#bo0Et34q-Gc0kyFDVD2Ikm=KC&$k^XZxVLsDSo&&<<Fq6NPum581y3ZV
zs2k*^zIW>5!?*RS+S7}C7sQj}6HVB64(~pF_weK!-#c7??T-$JKmLZlc;ZH%1@aOm
z-#qBASG8sL8Pv-L3z*#N_f|xhUaM0^Q>aGv6`}oG`s)yX>*ia3`uCsyXaC;cee(S0
zfBpE&znshr`rEtStkd5MT#6jND3lc5egd?}h@ZTd{ajekddvd>#iH`k1Z$B66aDef
z30nUi*BBZrxBH7sZseR7<4lf<n2W-*xB2Cuhc~|vGqHmY%r0t~;@lHvaOWl@i(npJ
zkc98yc5Xs~Yw#;1q_!F}%j!{oCNP*+YVq&pg)q5`^>q^x-q1;2qo6H|n*Nn%Y^|G?
zTilONCTt&KH#=`Q;P14%UWS*jKonC!g4P@-qv2xDWygaRsllfs+Zh{~w+m49+S43y
zzCTulI4|iB-}taU+%Ya6;U_%D_Qc@)aGVIxpm}by!qG-FC->VHV{+dd2K%6pS@qjL
zJf^pcv0c96;;?SW$Uk*~Z3n9J`&}4_AhU4QYy1}nqq6;g3j=lTisr&V)!+9UBlUOM
z@ngQsx-e<)-?av)hFc5CP_~Ytb;%m6h7GSR?N?uBF_?%MuGn*)Iq#0yG-sBPjrx6k
zjmcKbs>WI<Fc6P6Ey&n@sm6Tmh|WX433vND?NH&!WZ5?j@+q6~1#j^Smd3{MeQwyW
zjE-iseZax#O<QcH1~Z0ETe+)m`rSv&wk!J_%YL!JPj8YE13r-PNcdHKO~~$l+(yyZ
zcVfgw9@xp-^l6{#8hxn+=GS(EWbV<EGWplOu~LO?=t|83`Rs-4nM=Y5x5S#-fg5?%
zqKlukKE_&k>Uvf$?MJF{S)&3+{ZZ)0wuz58oeSX#N0`JxVyIs(ja)N~U8Cki9eKlm
z_`+r94E5SpZqcUI=ANI#jvWaYOV~yxI^Y~1#;h71Je$47VjuFOaYtb+8dQy8RoDIn
z&eq?wp<b~B3B!v(=93Y0^KgX?je&u^2-~menVZBOeM{G-<Xan3N7Wpx?~$P6lsC?k
zJ9ItDX5%PaO+WF^n%`RY$mEFpQ>U!Z@**3d$5_FOuDL_&4ek3^`t1#3gbFO?xN)0*
z^0N8PIP&ILu{571fdSdsH`m_O0$8z4u5*uuKDL-|<J)7B)9E|M&m7)6eBtoH;az><
z`{xeNuD*Tv^0$8K@E3mX%ZIDyZy&DTf`eByAV{BOirfG7TyQFD?80Wxd)Vk88atmo
z)jB=f#{^HA8<HW<f|qkybDS6?XWB9!6?0-Ij^V|g;X_?&U^HLOZLpTJ*rBGdSuQv>
zdiP@^^@Z=nGyS<!0R!^AZ$v&e@MDfN8m#K459QS!{tZ|2@%Wku{$NOK!BpQ=d*Xu>
z;sinVaKLe7Zy^(ByqE^J)V5_L&;03&Y>5jS;imcPHKkl4Q6HXj&R@8drn6?=5L7OZ
zja=daGwAjF^i=-;_s@Ls_1}no^3dJ{+8}`|fE8+hw;1qW=leeT+cKUa!CXiWQ3-O{
zaA*n!67%CQZ0bT^w)OPp<HPU2^;?I3`1b#H_}0ZA=>0`KWZ!)8@aI4Nxx-)m!@qd=
z!aw}x;pPK<J0u#Kk-U@6i7gHU8`I|GT@#HRW$Tp<JsA)Szj&!Hq<C@pTmP0O`meoi
z-Alq#1n}5JoW!S?w0Gk0xF%*7Cqvalak3@a!U$gpL{^=2ZrGSyY3SJErW^a6%x1>+
z%6)A|PN4>x_7k}5`CUi$Q)nq<+0=P(Ou+}lqqlltR4*|JBfe+yxcX+1375C|Kva+W
zlJSL)Ou>z>yl@0=Pe}<<VVy9<x9S<t$kE7y_vmrK0F0YFVWarub4}`Su+_KnYX*li
zbTX&#gAcF;OQvgbBaHqEj&XR89UqP7<qmL}HgA%vU}_CI3dKYWec@s`NQ^7*pkF!f
z;wMMO4nv8s@x+%#HEw3@BR0~9F7|VSG<-=GJElAUhtuZA0_uYw3)sIo<lHd1b-TH1
z1_R-ht#g3E@|Bt(Mld%f+$3L&2gl^gm>9##D=rR-7rwDToc0Oq>Gws>wSj)>(HCI?
zgX?j(=4r8NK)FmU&02vM>Izf0FAU~y*0>v^{jF!8J$w_<H#Ys9c5H@od~gOM#GRPZ
zhaBgY9=YJH5905;dGv9Noyly))Z^iESzrJFKmbWZK~&Kb8>!=n)Ni>e57vS+wPJz`
z>?hyB>~&LEnDXT~HPH1zsNkR6DIC9`_P}32wywA!mR#(Kef&9nldJlXB$>JI4I42s
z?`eK05SLq?JfWH!qNgQxAGscgFEXt?i>Z&6oAH^u@|5)o9eh>~yvWG*@NVVV9N&5`
z0Qa4r;5ZeA&v3an1qO0P3&vZy1hdAnq9;ZR&t}yvc8F;oBix}4m+I%(GPO{iat;^O
zZ_e?!)f-|Ga{exk-_n;4eJ7gt-zwHG<N>m=fH!_U!*#4kJjYmjpe8v@N?h;icbmE_
zW_rVx2G-(i-jUhYOL)O%>LAzeSP0jNd%akNY~*#I*3S$Xq0jBTbwzC<*6StnQ2&Wd
zH*ydACU4P@b-)(49OYUj|AgxtgFFm49^;ie#~xh}EG_`J`pJW@vFPcT8ldIjJ;&ZM
zHn!W_9ArHrr>#9CvgUJ?I5-;5!sc~N`2xG&Jd%CdR)e~E%_kLRAj5ZVQ&0Bl+Cnh%
zOtF#|nF$9APw}(oUvSnRHBz3U+c;suW2{ZX*B)47@by$_f9LY;!<XOr8GTyzxxPd0
z?Zd}UzJK`K#k+?q{^GD|XG_OsL`+jMJgM)SPTf!646)u5u<s*<S7&*+XPlF1s++rC
z`o1~5mo<fOu)%ds24-!>gtDoBv7b7t<>A6a<k(kv(>Nd(23u*Jy=ooyn55duIs0|2
z7`?_JMc(3v@el(Jj*}d(ft*Q>D3EuK_%O6M=0$FO&%oCu@}Q>QXt?Bi0n_kR+;c2E
ztfT85cJRnQ>t5?KSc#)tVzG5ddUy8))>FKWRq_&Ry#+_M%_DUkTe-$C+PY@W<UG9P
zd4bMek1`$}CpKQQ^`9C%{&z1fum9V>{ICBiAECXoZS)|K1aUM(=x8Ns1rNa6vXHyK
z*p<AJ)_rX|@VJQ{$?-(TKTQ;AJbo??A6$I*@S9Km@53Kn{sTR%e_o?c4=--?iS<9a
zJiPTA(*5vlJ*bPE)--(RxTiL$KDuA(_h2@+CosKZipl*y9lrWE#MxKpExw)N9A+WY
z!s((Xz-q6g`C_(l*f_JGIp-=KQ)3wnm;0#*dMG;cqj2C21s9#pC3aeL=*52c<d{CN
zofh886XP=K-TtO+HxcYl0y5)u?s)vp_2I?6evLrJPnxd9Zxi)37aemKbXly(BABT$
z)K)CWGJ!*wFI$2<3*_)Ylq`yVU>qCVgqpJicyeqH=7*#DlnWLuNO#D|N%%xgsB9ao
zjPXOSH^$vOC5Ffx^e2*Bb2oZb>TvxBXxzKq=ohvWV`^MX$rUeR^aX(|B*}F+-90?Y
z$-*1XBae4T4sN)nHBKyq6YwwF9B;KH^}N8bd{B>2Dk)pXDvKaZ49BI;!IUg^UereS
z$vq0bxXOxZ=X>uyd;P1EcC_29*b`5N=2)EGbzwlRy5x~#Z5?~~gS)iHUKr4Z6Gf^c
z?A@NDNG#uPyfA=~XLi1v^Wx(FeE!zWfBCy#`k8xOP%n-*?_T>xhd5IQ&Lwkh3zhmw
zzFG&ZaVvQ<^KIs&xte2c0L^9RJ!w!&br2`~u3BTv7$o7j4i@@sPqMN{Pju3s+{`h;
z(qXR5N=uLRBWG=drp6e(dH(!^_X~-RyW0i7d=OFW#oDY%URUs)44c)Fjls+-d<&6d
zf87lmI-NhKYksVeBahE19EDFf?{RAhA-Eo4G<}>1QtLwQnioRh#x}7o-@+|%&B>?V
zc>4>J$=bWe{;&Pfi;Lg<i~qGgUil0D)gQms#N}42!gj1*De^I~(S*V0amVkAr{Fc>
zeo*F;?O%=aF$1w18II?7Uu}=`+R>->__A70BE3-Reryj2eig!pJ+EI`(4P{>n*!3?
z<Yh{|y19M-;`;gD|LFPQx9NFEJHEL1H9eu|oxbH0{oq)Z;EC9Y#A_zUqf%UngBTbX
zyp|ck&Bv0d-y?r2!EMi7dhluAV=J<nb3UKUo%m60o#bxWu0I|K_{$8>Z}dH6$D6Ol
z)BU!3i1_eEpU!Ii8XqO&bz`nZnxDS@xW@N$Vef-$Ea$|~5>Gr`XR<i5X3hMU4<wjF
z_B(SY^3+yjvxe#Pq=^?}?0n7M`Lvz*@Oq~6?S4pRnU^&D@I4#4W<I?+UjKhOOi5(;
zrR}$#{<-gb{@w5VFUJcd_~P(AeIb-rg4S2|<T7!G2hNlAeShW-F37LV%rSk;T{Gk3
zCF8_sEH&Ude*Wb8`<Ea8!uy~7lb`>i&;P$yFW$L1{N&;1uyA<s<mT`bZ|S=IZ02WS
z;X;tO$MRyv{Tnqj(c_zAznF}O1h1dV#<P$0mkRh3a9V3hm2AvwMp%7qlidG$bD?(^
z)lNC1hoUF0){Z9u16!+(=i|)F3|2R1owJ-}UUweS6B4q;U&lI+k=f&m%)+<#g>G`e
zc<5uTpmDa=<g0(m-j@K_QB-T6s_whYoqf-~CxnC~#IOq?VF$$xgXrTucTiCTL<HAC
zd2FH}ZV!C!APVYJ`B_vT0fK-KmOxe#vS;?~&T{YE+uiklr~3BHoykm?ge-TGs$_0=
z*Va{E*K*FOQ>TC-=!RA_x?k$xJ@~QhP&4}I<3pBJk6$Q@&NI6n!F_f;eO!Gk*+0OW
z6AzAs|6LeMzwUloejB$_PRDo1OCN2T@nFBcTR)C|_C5Q;xPNdtf-%rf$L&kn;dCCU
z>#8sMbu(S0vl#NHAJZNTILH#!^FNDEd~gp(#@ycZ;DIX!fo!Lrd63A2GeCN!5`#$K
z`iKM`bN~VmILOnNns8dq*YDH;(Gv_hHu#eQDg?t0%Z|8HB2AHWjApJIM+Mz^yoF_O
z$9N+RcUtb8S{)|i*DnDg=vs1dIXrNjhVQfeg0MlZns`Co^~3-y7?%JO-T6^x_@L5U
zPo1;QC5Wf7fRA59e{#?`X<U&ulb=tR_B{_QiZ49ya|y8II6j_SQ@;TRWz+t;yqw1W
zHo?Rcr1$IQzo|E!{=P_qkB8syb;!xv{1|)oi@Ed}H0DuE{Ok8*j*;dz;jhjie|?`R
zAD16kU|`gfEWeHGtS3tZ@x-ffh7a#q)IJE;XEy6c<cDjJrvE)h$fRK`n8C+;{P*)$
z<Fp75%GfVFD3hPwFA1`P>&1+N*l~H$AVG-qpkx2Tvm^Iv|6%@EY1mzmY6X`Kx#N$g
zZNIFX1!Lg9gv-qJ;5H7Y-w&Mek5NKxG?rW+AFH5%9695d*uZOa9Wr=wI$x`S{rh7Q
zBn!SDKQlY7N0v-nE{k7wgk@gY8=lF4%cJArw>K|cU(OHv*4WStS-*UF%nY3AGE7(A
z<cXwQ!4_zlV9WlNoP$<n<}&g>{eB?Hb?^PoejC-;YJVST|NHh~$NBqs!!IZ^ZW*(n
zjrZ0M`EZT0+lc-;Jm>;99jb4+O!_I~&A9hQ!9ADSZ~L5A5XSG6Tn0Pzr3oMUHTv2x
zoolTUA@z7)Y@g`w(@x^alG|A@335!HnEKCReG?alp{7}cNN;)_0(>&WLBLc5dHEBb
zPdxZF^oa+JaV9Nad`89h7&u7=(R_amWM;z6VBA}5t{2LQ_Qici3h(Jj`CUV=tOObJ
z)uKA#iWS;RkK5dK@YH+H?}CSZz5ia0>$fpKo{rD`jN2h!@n4TYe4laLpR~*N(`}mH
z=l54%(}UCa?b#PP_PvvR{ZS$qH!|<b_+|>J-yMuC9G}ain`Uo3-_I8ep%)AFkJ_Tx
z9vN}vx(HFjh5bC=8#gop;;4(?H*}~884Lkey8j0rZ4CN?hw-qBM@sCuL=(pq(+H0v
zKJ%tS@Wg$=A880j&FT4qkDLo^5U?M#1GO+q`y*XIhi3BC&#Xbnt(xO!(Zj4+=*Q3G
z6Qo5{cK-a7d2c42_CsENzKEo|GV;-N;GUUD$2W+lf^rGUbA(rg>ikWL(2qHIcdm5)
z``ZwH#_r-AjIfv6KYeUn-qt@wy!`PN+qi;bx;_o2U4aR(n84=`$<BvEKc-;o%1w9_
zsmRALjBkc8<_Rbbkbt2Aalwx~XQo=>)U~sjqGd%Cn^1*#nBOyFtmYpwd2{RF+rgZe
z_0dZP^EZCGM?f5T@oR{5y>oPLL9iwo+qO=O6Wg|J+s-d`PHfw@trPpiwrwXb_szUJ
z_s-1wbFbBV?Ok2fUsZQk)fex4Y4=>rSC{`83QZo7t~h_-ZKj8qcD`9Y=n&st&n#RX
z#vz-PC&?TH)7u9QS9*OsvK&0wR}$+Y=zar@4)yN9qit%!(kvbm#wA10{s-v}52n<{
zHuv{QUVrC<b6@$h=N|b<)k%Jb$;TiZH)>Nx<qQM#Mv$w9+g@v%dscA6AqJ^zK)TiN
zI4v8#IfUzUl;hlAv~6a#EW)i!?6}9B*!&>INw>Fh%wGfoD`BvI__GnWopaJvc>K?K
zK0UbfKWQDS@IN@{KcnNMw(pt0Jm+6kujxAF1_5u59O~JS<osFD>5%)*Lvd1e2txz>
zIiEQhn-y*j|9&RpQ~#P^a{C27+CS~SJ`8ExZ}<`z#OQ7$e^FrMLNH;Fts?E7kYD`p
zb*9abgviYIq4v+u7;G>&5Y9k<-uuGmJjxIA4JgsPvCSsFGxTrZv*ldiQ>~rE{+^0P
z*xh>EK+0Tj@(c;n9<Tzj<@_t#sid<rVj89hlH#F^8`a+`4=qdkdI~l&oU5-Zu(82%
z@;Gk=yayr<duTC{DIB)rrHk)(LtgkRHNK|70~QgyfygH#O~ymld{md=8X=dvsxoeq
zLQFwN(opH`rV#P?VURQF93PX!5)&XmKV)<dTZ4$xGePr2Zb)I<VO@aY<n80*X=!{r
zOE10i$?PHRf=lpf72=W;cL#vbiH%}eg9Su`dk7f4fYDWz=QiuzV#RD0ah95&AYdgl
z*(^5Q5VG-V;2%$_bf~ZdfruF1hFQ)BoZCIkkvGmSAlWrpG*lBL1}Lnb34#C)@)ztQ
zGWdDC00uEn;ax&-`phUUN93*SdeCK1QZO{Mjl#wTXI8Vz2}FPO7Z0GYL$~nxns4$G
zQ<pMCo*iVIJ)I_1+rf`eLqiU*JXZCXfM7<3XpF@K)UXSf%V4IsQhbp}t@rjqin1%h
zgS>+U=#}8ZX8`77FA{a04asq}dz89bZbFI`TP=Emw+e$1h~Ef3iKFBN(G?oF4EpLI
zyV$sL68(#+Xhhu%lP;hZD2btN@GD<~=*00bs3aK9PCeLN?JWDg&@*8uVj=bsl1Bv>
z3<L2d7yn<e{+pB>4p0oIU$wT{gqpa48C|p;Ec7ZMj~*6VPa>9h$%<&-9?kHyATPl(
z?QwrvaV#I*dJb7#UnH~o_Q~-tjE|FrM9f%U9kAf|JRr6RXTBUJZyI^QIoNhQJ1K2?
zm36*G32@^M;G&qJy70j~)1O)s$G&9Nwca$`eP@btsmOX_doUJtp(<{@5A`vX>f^T4
zT^QS(>jgVhemxa0uql4E!8DAh#KFD3D<w43EuhLP=&4ePj>EVTAgCB9DTLJvG1x7G
z-iH7*Y!SJ<?Mua<B3kCoR&Q2+y;HoS5+t_%PgVY>%sX`g23|Z@Ttl`T>D`ei<yumj
zn`q7@@z%+Ka@VGHtTPCWc{@XbEuD4Bfeh6Pk>dR{XI&?$?Z-m`EeS@);$snktRRWI
zxMRY;Laan5b}Lw);V)~v9NKFfL4Ey#{^-ljYxuv^isYj|PW|e_KSj`7P%Aq%ICwUP
z3AvDpBWL#;@CVwJJ8Xax4lTXOxu0rowmj6<kA3LIh7p{&R>csE>YCuq;WSoY2WhUe
zV(>fKd!D{1rHn$pK3cg-yV-l%8UJ@X#R7Z62Em-x0zrQ)Fr&Jwhsi;Fe8FnQbe~(I
zx=e~NB;+FeEcp%^hP<@LJlfryogTs#oqS-RCo;t5OClWJ)9o?)N2Ye>VY)e7p!@Y=
zHIAzt&XEtPJJVUmy~r%?d-=T00{71M9!y@?EkbmxzSgc+mG0E*xzl_#EV(WC{4Oe3
zhVn+oaYh&5%-;n=eK$)?%yO=aKSR0~yq2HJBt0F&O<nt!=0bIj>;9(_9EII5Y%EBs
z8ziw7pW?F92dxvbhqmW6Z242*-unMshIk5K4&%Wq$X;n>H&$_{Wd8;=FXO?gbJ~$B
z8cuOzecfo~5Kwdb9LrGC0W+19z!OCMO@k|0C7<yyG}nM1k`KHcQaGFF!^IxBvEE-g
zdSLH*TipxUda}!3#JZz!B2&QC`G9mm0|hWKu=#1S-Z-m;O<wmVM@X4s-1=Hxk@_44
zPKB`D&6lo@=@|O8JUr$z8y}MWQdM0dN8?AV?-g9W6o~k~)5hC&1;IaEHDLCZf<k`-
zkR{9h@)$t_P>W+cfN3uJ1qr$2?~VU2;%R{KahAL%cdEOnCm&5g^j~!@{iSw&z|M6j
zcTGmByv*fj$%vTWIa1U+DAQ>2=6foRHP0Y~*6M>~33x)>-+0R&NUlw|v~w@&W?V>F
zlZa2R?q>0mjq7a30Yl&e>5l%~!91*%zPYDEl_T#wwu~8@Y(LauF<tk__}=pvxBn?%
zGLDm5V<W>^FE<{P8z<D3WBj<)b7vEo(+%UjgqpxrmYTaWDw{FRg^ilyG+3Fxgl>?I
zR9ja(_p8VFmam}HqxjwJ<zar`<9aI#_n+|jpKH#5|5x7Y{ke78Ouy3xwWMjGcTQ=s
z+}z2(NhLxdX>DHH+B0p|p6Ihro!^Pwf(G`;Sc)?5wXHL>?mx#T;aRVqqWH}S+{ifd
z3}>wr{G5)>*>%5zp=|jG@x@m%6D(|oV7Q(-(fTq-QBFc!v9gV&<3ZGZY3hcm?;s~7
zrFbAMk^71=eZrBMyQg)Zd#xAAaQ&bE_#cSBq7D^BS&~iT^IfsJOLti5KvH-e(Zy&r
z+>u=_8ZC`x3x~c7^aNe=>&WQwgK{?<oWs%)!sy7bxO-Ds?-$wuz_c6mT}w@hjLpE+
z7uV%{S*fQrvBsNd?EN^XYwG_3zW>AHK%xd9k2E1d(yA&Ca?j_(%-h5(Q&8!_2q#us
zIrHc<A0&>$pf@Mohq}i`aZNf9u{!=YFZG|({6C!5|K(Bm7to-S5bL)`SH-*R*KEDa
zpZ^^d|9@Zo@rHdhP-QLLr4>hnyya`Xv7qkJ%>NaD94tusyn4m6l&9P=%0mfbaU8+f
z!3l1m1kleDD{d+HmCwFz9H<MET51`x%E)7WzFb!dH9F0f^;RGEFTPXd{F1CwdfGYE
z>SK;OsiSf^?(}Leli|N9s6DXnkI9<o>!G8ftEO&^zs0yC7IB`^6zM`~S@Z7rCgT-U
zBau!<vQ;(L8H3P>$|8}20WxLQl33CJ_afw2vtNyt-ERU7pv9*|rNz5M=Q;cDn0X;S
zu?1$5<L-b*rkVfZ^YQqgu=WmbUYANr-hl#=@H*pF5OcX5n6aMe5ll8%8@FzPP8SwD
zzyV8%hIeL{LCYDmKS5QvKO5M>tU}(}`h<f$;U6LDW;*)SB{s6vlq@NH3Vd-Xz?at$
z<S5-swN+PfTyC?N+I}o%;!jZ&&$VIJ6DQ{9Q>}=;!S8L3|0ee@2;jk{*fe=lm~kk7
z#yS-qy_)YNE}~1!>xz@pi>&$i@}rffzs?FU-^Ly;G^~qyH4E842_;RRHcZV6emO;t
zFlvu>gZkjBV<VHP%usj{P!9S<F)663Dj(B{r{>)V7P&49YF9HIPQA}ucfM!|)5CEx
zHaDZ6nBh_km)?OCS$X%8N8beR8#BSP7sL<!6tlXRZvhV=WEEdz!J{raQMK*=&D=&E
z!4Srr*PQX3mAkq{{MA=BVpjb8Prl&HiIbm&r9AymR8_OR(hs%CrCnR58+ne|cOZ@u
z`q<p;QO6!&4Ny9W80uU+<^QY~Ip~wff58y+>$xMw`<keFe?{8AqM-H@F@PXTw6f+>
z6?>vZIf;3c0Cv$W<#o~MYS!v%D~mERBX!n0aX-I>eYbdgif0M+!|-g;ueOcy^+!=f
zUypOvmk*g<|04|kPmQl^L*d0GkALbyCw}M00@a#$Wdqn@mH0uAyZpa-lzQ(9?&Q>_
zHVL5~Tv{gMYu@wBRvux~sHg^vq2FZ9OcD8%$}9Wpz7bl12dC?~i<ci*dl;vQ9Lk9E
zw6r2ZifRk>e4L@&5k+Bzl=#vtY_pr_&!fKVy$r7_^g^>=T|X)6^J4h0EqdV|l|*UE
zCjo#mgMIt|>LiF#kxzcLIkhL1*o5(doYu4e@+RoF!Jz~R-A&KJD(V%ljW@}>>3P$r
z>UE!&g=Rf+Id`J!+<q4nnFRRpn`{mApS^DuRG9Tz0>Qmnp&B4@07132bO3>{=wIqE
zpL-_be+tvsPeo}=%O|g4ud9nnj%ddS>TRD*$(y#hg**#+-l)lVjVF9l{XJw5GtBz0
z&=C+H=5M$rzQxW>D^1IL4cU!;ZHn@7M3eOL2ebb7yqAsFukLPK`U_ulxKZzH*xuSy
z#=bYc+B3@%!y9)Zm&A*jkE5OZ;bkI*2IQOf^wu_gI&ZV?RChJf>02(6<;GB%UJtKZ
zf1ZJqJlKyS;Kr*sCj$;WTk_Ky!PzU-{XsRScfGDP(*G6^#i2rBmGDyV1yTLILNX9`
z2<%Gq+-C^NO9!j+Zk%`Naz}M->7IY~@anB-?7{iroqlb9kqMNdkl=vVu+bO&w;t+_
zFhyzr-Vi-ZC)v}jl(qm7fG3()c*v1-fi{)z{Oqs1De0uWK6-vO0Qy($Cd|QFl55Mm
ziqQDlPg%E`*-+uiiH;KW<Q@iw7QZrF>kA_E6Z=7u;aXGcEvSbIzazGK3=zkS2mXKA
zAOq9^2S}*p%q^lx1Z0K|DLpuXMI|4z|9<AE^)+d2yC^d(uvpDqPa}Pmx|iO`z5!3n
zT?jBjxC^Y}d7}Xu0m$GNPDKAln|<(akLRD=W$oh#JEf}e+cJ>B<o>95pR!9J5o0{3
zGcj3tjGR=ho;>eNx6o;-dc5{FSbBy?Sq7A_t9tk5;!_<7UgoG8(L5F$TRuOZAk(#J
zgA@_RJqeHt$EHjcxZnmM{662^dTx2Ze_8>8I9RCgC0<P1Pv3hK5GkFq)T=aj1M>Wu
zc%|AdIo_FGq4H%lW8F?r84xU}0Nxgo1Wn@YP8f!ufYux8f+-r$0nKpH9=|}r6)_S*
zxPhCr;JSyCN<HJD=upS)&T9juLk5rpm^rEskWirmyG_aIH+IP(?$Onbpe$D0zESu1
zI$E=HOwLO>^DA51m%mUp5}HNerdwJG<?51cx<xuSH#V>dk?~aH3|o#Rh8tl43E@Wn
zYk3Jw6C0#GWxbP@2!J935$eK_3%077fhkpP6WN=Crh!%6RBwx%PH79ym-a0WCNw$K
zC~i*eLmV+)94{^18mv<w4@q*>#!GaEgY%Ugln99+ynrr^5|SqZy$+~%rHpIC?ep0@
z$o`G@_ebFkkcHf;zbaNb;5@;jy%H*XURxVm)eNINX^5z(U-O;YQmdpOz@|uYhX{7$
z$TTD<&Xg~jrWh|f4~HVti&FBmP0P9@w%9OO<SnfD#<&gy62wt`Z3P+w!~I`?7N`9m
z*5BF_Mm0qQ<^OaIl?HYM!jkAu!wdyRz6BoC7X?z=GU!~BXym%q?UK?8HQ})@ftHBL
zo9@YmCyF17sd$`-EY*WnywJf=d_GX*d2{t81JZa;%L(*6V0Pp)GSUx_J!Hoo<`wv>
zBhCe)G>5Q2eAw!D1?Gbv@SeAvNYV=aJ~^*ozU-rfU(JOpb}8FUCoSi%*f~}edM(KC
z({xb~m^?h$J2FcvGT~e($(vQE93HSU1Sv7kbB#+dhI_N+w^!RLZ*-yo1iUR&e6@W^
zklIaEEBW6dX9GW?AH97BRE#<2lH~D(L>~}!u-ea#5Zy?#Fvg<0*U};At?OSV4*1Yl
zE?&tJ^H3Sw$f2EfcPMl|8|Xx$)T!XNQgsg&<ggM;b>k7Y#;AWayaLrDAHG)|mtPAy
z-Pr4H$p9A>$H+FT;I*?KGFrlcw1)~vRirAEJR11!zKG|R?tI@_aj$3jd-7NhK!tx%
z|BcU~_zE(<E+2e*)p(#OSHJ8;@%3}b$DFw~403lE4<V{`#{BZaRc+azo#20$rS843
zp|*#KS5^^F^JJ2Il`OIf$%kS7zC49wy!|iez(EP+PtG(=6t@ngq4c$?eD=8mQy0&w
zAv>W1AfvyGTi+5?YX~#(h5OspMY>7w$!Rq-IaG&#ZLXd@mB@-aK;w1k$N-vcAhc5m
z0O__Tp!r-;&kYu@tHrbzV7x*<%>5R<VY2nEJY52TIaH0Ohz0VCH5K271NlW5;4rXR
zad#0d1rX0aEEF%$Khf{Ct75u#bGHg|X()h0)Kh^vM++9pWAz^K89leC*mJL&oR%gX
zJ^UK=;k#GM#?>oRx<OqT81T~A`IqAEtFf??FUG$g*2yZfu8euNIgm38GYUuYVe;SI
z%7$nk!)5!st;`q`)I-~JM4YK%d*%S2*DNG_?JZT+QG2wk#wxCOMIO*Xn|T;5Cwl$U
zA4_p>+z$X1Gf@{H8ypy>qGyu%#tXExZniXwmR#_kk`wAS;=pT$ArzOxgdgte%+Ge6
zI6%PEwDruwY5`wZ{SQF@iqMzPkPaPK)vdKW#OA`C0#@kvp{zPSesVz_(rM@=5q9F@
z8b=qbXyz3d@>}6wUu+Dt2j?z7y@KmRzAszpvV(?Xk<{l%6do)yUV#Cf|EWZSA|i)F
zyo{iR6!cy(`DGLPR~$WXkAEzIXS;^UjrCEU2GhPc%5^{i5?TXiI!ie!KI`I5u$GqA
zi+a}FX_oq;1m{krRLxX42aHwLJbHh0?(_MiVJe@&$OSonGw*bgn-6NB4H6CujCks(
z_=coA|L87^2jm2C1=Hw}X*&bOfKxq`U^b9dqF2Qnvpt|1y1-F^?X`~}V16s+i?YNr
zKr<G!I`#M6EIoj1yOfvdA<RGdjpr&-^kt9$TND#7BI?z3MDcaexv*51x0Ndwc}19g
zl&B?)GwtMm#!(ImNM)KLZhtN^i|VdzwUH{f5`}aCw6g6^at|)k#`6Et+uFnWfQ{E`
zGqBU+<595ph@aO4?NZAMgesezh|>*5Fw}eIP0a%Jm=_IdbT9ZZbvHE}_sPlm;?AgZ
zYJS1rLsB>I*UP40gIAsPuc%Vo4SebNDaLN60?e^s{o{pr?ppxYgeL3!I7c)xEJ1zw
z0sc-_?Ia-hV*W`)xKYlbVP<|;`F2d<bmT}yhQ;_bP(R%fd$4QH<4>h1M`!+x@H`RG
zU&K>D9eS7WDvXNjM~6x#rRKQ@rlQBoRlHo}SgpXdN<gyeQDb}ds!a3NSn)f`!`!v6
zCWEWv*=Dz<PJZQdjsIo+A3LLfPk#ZgNY@&g6BQF)HLfig9rxX0D~87<JXtbt(Ka`I
zEdlfe)VJ)o(@yTSi=lwt_81v3PyUN9+AlKLGL6tpLIEL{Z&vZYVu;VWtQH<|2-%K@
zS)<4NEf)WBsxuIt$;kDlfA!IL?LfAi1u_{Ufy7Ur)vY2_?ke<#gjkl%8WrQ!P{So}
zTu|D(#-f%U6R!)Iq3Bedm5Z=fK9Z!*5WTq7f@y}lGW^zuA>bnvpIn`ZXpmmtrnX15
zL*ht6x}mkE>k!4|0s_-8On5Pd;Bz3bE@cSX><^@WA%XI-q<%`gAHFwihZ=)%d62|Q
z2e%-2V}G{AsBjE@^Jz;yiB%H?_l6<1#C2cKZyWbrtY;x`{X+ZGGKYl_TZ?Tp6pVdO
z*0}l<cAY{?Ok>vUtLk}ID#hZP58(iAcx3fI{d0RPQ0zY2s=kmU01>NJ`cbw;b0~HO
z9)J0C^|^VbaR#bOm))DGWNg1a)`f}mr0Q}Qwd|)~cK~PswPI3AYF<e8AXf1&sx9lu
zN|sL?d{o?=vfMe#SWWlmi0r(FI__JG3?kiYb|NLQ)K(ko&}E+s`;FZ&pehA^Xb3}s
zuYm?4#FpHAlxst0fS7BxyrX-6-F>~n+W|$>Z+Q>#2FA)=lv@r0D{_tiEM`y`akX1t
zw<7SBF9fYi!Uo9{^h8?fLx`?1crQeJU;V*_7YFgaCn0*8crD=h=+X%uhKpS!IF=Hx
za$s5Ix)dqI4}(ix+*subp2bxj_?2pG3}30Fg7*+~IGGOkI?cH)Q4n#ShW)W1uabi=
z4P7}kD!460UmDSI-_T6q8M0s3z;Uo`Mza=JNhd~+uP*Wv@)T0-1)*KnO9oJQz3Ib!
zIDM({lNdRVht<~)zA`fw+_+iEjt~K$5&jkB@$h8w>Y>T&%ASWzYyv+qzCrG<J{W^b
ze%|)KF=6ByF&2?rTL_AcldVb}GutiK%pU`{Drjf*a#u|o=2v=xm;3sWGOmMH^}xOO
z;Tk+)Py6{+4ETF+#f`fF1dAP|gIgT{fvY>)Jj&#JMnv)ejTlcrudii%s^c%PfKL+F
z+OdSAdzf|-fTMqyG(ybUYH`28ZP6nw?Z8KVTj?!HuybL8&?=_C5cU)cjGEdu;elaI
z7$Hc_&6mH~>=at%B<Orh$~ya5U+lUBjtoee8=q4|I-n`nxU9O`qs>APih-bfzz&jD
zf0_04zQoZi**De~(+mUyOQUdH63yT8d6<uY8s~o8;hz2W2Rq?FLPDnE!ny}&E=h1i
zYr{>Nlp3r?-`A8^BB$NRKen`>sBR0YusVCu_0rOPLJGHZRw{2^B*Zy#KW-8uG@^uz
z9l&^+?9tHeO9RWhy)HkoeqE=ktJY-Ta`o%$QvB00BXK2<YXSUL`R7w?ra3I*tM;e_
zodHjLh!UlwfB7>^3$pkCAdw$(FIABMO#rVwPfTO&Y>nih4aLw%(0iCI-gM0GsM|#0
zQ!7!a-?HsCzB;MXT^%L67ZmDWp=nY{NKfr?TO;jcC39NFSxN1CK888*``k~Eoo_FA
zlYa=d%X;xs+B^JOP}s(U{^*uJqmCXq=S5kO%jp;M4O7)`0r9!D;XDaK_+!^w5;Oi*
zD`@3zy*yJ_Zx-Z?6q^zu`Lg@A%z7gHh{9;ro-6I%rX#}xqPiLNwO$T(Cy_7(>6$a-
zXFosNnYX)^%Tk~iXipn8v}@V|I?&znblLp2JB&cY%qz*aJJ<Wu{_KP`n16f9p!*re
zgQx)tRYqhnerLeuK%v-Tr5fOR0e?mqLJ0kGX=r7vL7lol5ZMS?&SPAKmPmQvBJ0Is
zhPe2%Ua#DCEvUL8C1HGpcd8ng8mK4Yd2{(NHL3oJI45ZX#k3Q!LDfA)tj{$`3J8!B
ziJ&sBxQ~+m(pU-k+Beki9LW7!jzENMbRwfcmzR5mP^Nc@)o<RGZ{G;+S+&Oudi^Z=
z;k5m?qI1bJ;0P8@j7zA(Jgic+vGbYmqAuL}a=(u04ygEoPG4)MOTB3kznC(ZpCGnN
zmUtw@^g}o6rU-vgOAG|#HP}e-bwWy$@HkDTuAkM-P4yXR@xI$J3=5>vDkWGPlZAkS
zmlbj?T-$MS?_N}$-kNJ=QD(#YF4*ln{5xs92Z`yqeIvY`Fo=rNaS*XomUPXZ&2mFR
zh{$)nAj0j?N6AfFT;_Sn#=g_`R-YYBP9HE?>`utyDY1DsJ;2s5{U9<^Y@usj4z`qS
zo5{n?g)?&XJ8y~oHJGq^D04z1wFlZ%kqk5Op+KrV7nVZkHP0qiJomPFuh<7R3BnuN
zO-+=*!+*p2NJATs7y1T`YTB*%kv#MZB?e-=9k;PBqKfp$4UD8tKK%)YrJ_y74^|qO
zuw~$(h9;&2(HQ(;-yr{i4~{{kRo+7^H+dbgB3n_3O!6l)?BApe<$0TsQ?58@W;!t&
z-bU?t>L?GM8k9eld^>(Lw;@)I78-irmdYQnh2^>5-Xk<l3WJA@S>Uv?kx*)1b>GYf
zC99zWaWdS@P+5YZE6XUxLt-a=QU2k_0Wm?3%*W+3*~6MQE4Ay;Kly+Q-mVBo#|ol5
zHPRTt9m@Ij{~EiOsGg=X49j*Gb)0;wW-YUS>;B0j+5GN#xI%}FURhngCQ0@lQmzmT
z9#lmMWPt_=zZ`GGh`R1GE16BLQ<4*{ySQTFBsQaZ6bt5pjhOYK85pN_P13gTsv|iD
zj0%KyPltk_*H(&d>kPa?v6+N@(P;*S=04Kb0FWDoRrY;8gi2)-K96N)|MUPAqG}An
z1<h!jhF-boVtTzVTJ&!1sRNRmoa11qPe(6J0=k4n1YGab&E|Djs4)^w9O067n89hz
zZyBSw(U8;P)Sn4v8a0R@KoOBL09(S<?DSun+D`M^6w5z!CMR5#ofv=jF2S#5sor>k
zy(j<(M`n;t?zrogLbEA@!zq^2-Y#44kR29BKK7`<qcZduQX3brD1wJxTjr%B>fdF%
zOUBm~9Y-M@t?8cxWa6446VGy-4Z?GaO5w5hLJgGo@&#Zx8rck;|GL2Sb{zLD{h&4r
zHxRu|$_BahGsO8vGC$Fs^7+PtxaJF9S{dz<KQke+LE4TC{xM5wq(T24VwW=UpsX3S
zj_(@Xu9tl6Qy=eg%q9LYD>t<ntX{Qb=GLH~2D!Q<ANmExI(e-3)3&k4B0t^1ODlij
zU$TCdF(ArU?DP}Lge3GVbbmr)RxZjP_=C)yd3BJH{04Shi_jxQ$znX5xCQ<0A~N-C
zA<1o65SI2I^&WUEPykW`L>OtoveJpRbBZZwg+dycppW_|T)%UX$+|r7Q=m;{hH!Co
z$jqG8s3#{O)t~`vqXJVj5e;2vezZ*{evg5&XOA*<?RX_n-hN}@fNV)e_|f24A-<d#
zTbCXLN`e)9yvYN1a_!zIKpT1VZXFFaLD&noTPiulpyx(1i50(S{46AZ41bclrSu`M
zY*OUj0%1g)q9FH-_woiv*{^6>(WP5qOYtO<dCqG@stPHnPk_mS{tSUK0OpO!e(Q)2
zo;W?E=a|KiiXT1@RHo}oT}jBvg%u0<BAsGY3Ot+0Osq%Q@-^;H+j7B^DpnBRMXY^P
zi4<4Ohx8Ot#jVb{gKq_2a#MZ^5I0bu8Fz{g#ns~(T&zY;ou7*E^zVE6QdYZzUqF1H
zJTAd7y~np*Wm_S<RoB$fvTfD-)4%NLx<2ATTU?9YQ$+XoE?wx>E=;w4Aq28=da{L&
zhhrgTjIGxXn-_`kU4&V}uZ-G<a_uqVfN1b62UB&ly|yUxsrx?8S0aKjRAp=f&NH61
zgtmZ%ON|YwfhXTA5}4)48C`+PFRjCKK0&ciCZ&gnT_Unv16gCrQBb#;D9Zrl#gfQd
zP;=`lznhM7lPqq7gT1#~Uw?MYT}^A$14gj_@(NG+@!|J-e~s!Qf=<NKPa)vbRJ$y|
z&ShLz=LOY-Gi&fhZO=koD3@d}GS_5awqqycG&0rlj2R2bGIKs02hKIwmOVO=9f;+c
znx~BZRJlEyhk}_9EyGmk)tg9mZzT>~V|PfAA1H_tU9R;aN<M;*M~bW(HLZi(LlLbs
zW~+@HqI<+ubZui)pZ0cncnC>E?EkD_K2@Tdxgw@&Y37efQUeXp+J5S8HSDwil(G$@
zp-pE430TJ!pcLK;l&>zMKPwR_ksnfp<{9u`h91`kUi)<}DuYoKCVQf@=>CSSGG082
z2%y%IWjFO~kaE8ac(0L9L`+S?)>mJ6s``BtFffHg`K0vN!7M!waTOToM&Mk{LbCb;
zg3ek#U=~^&C#p<_PkmS3!Q^vqmo16?8%yOxat9@^xeW%<-Va`NpVFu`s>8(K7mnw)
ztwXS4Q)6Y+Q8j`f`^Bui*j%Qe`619>VHI)dZk8mVJE)K)1J<!O$f_MT*;x6`sh(B-
zhAAk~!5yh+m#-xqFZvj|d8n}@Q72ojxlK?{j(i|Tag!qTv5UVS&xHH_)&A?@iX6y5
zd|BCT@{Ana+I7#ItPe0d{;IJ#o{Bsc#Ck<V+adKau_CbPi^>HTJIh9zGlV~mJ|3-H
z|5HzlzHQKJ6D;xm9&{1=k!)~Ei?@b-k#TMo_7s}pUQzuwcNXF|b(`C1rEk{f{rhnC
zJPEq(IX|M<6PwMFP~(VOxgxWq96!MYwGD<i?A&l$+6ihPo85_}c+rN-N~_*VdR?vR
zRDt63y_-;T8!ns|-LQRD+rWLn)pD#IH%WUG#5!Jbxmx^UV|yYAV!y@dF$ew(?ic+`
z(GuKpi`}5en_g_JwR=}?eylGaJ2GQ24opDnL=&urPweBtqISGU^SVmPaYW2its++w
zIJ~Km*nJxJB#qumyHOcBh;EyNCuDJztio|x)KNM7?>c^*?EMIp%Hsuj!d5o0Vd>Bw
zrcQHCsF+VKA~^80TYe8Hk%&lkLw&DqsE~^4e<)7wO9_$5JZ2Tmpv;%_q_;qjr6Zi-
zye_-#EBvXqv&0sOA6b&6-5*}v;;nW5LX9Pb#UYfNQH#79eMiZBnjzg63cyF7&Hoyf
zOjXX9u`?!iqk-mgNWjI;_3cB1Q<EcvF+Uig{&>8{(GA!LI+}3(!B^87mljMzZ<&~&
zT3moJ)2&T3cE#VTFAz#7?i$Jf*FA|7?48izjB)FD-xVJTK=eBQnovIo@;T2hG)qtg
zpVH4-uIX#i-mmyfcE>9FJBEOG?k#o{dty~z>yVs`<ebGu*N4HdQegt)Tvl5g+I_)<
z*ZqElNhFFlfX?69U1}Wj$ZX(EEe;LErqi8-v}w4j7e05#vkV(8t8KKOuv)H(SVf|j
z&VHpJ0F(mZT6)XCpBzP|>i=5NjWF_?t&ZsOqpt3!;4bS+e^H%>&&H4$H%?o&@<Ow4
zyQ$gJQBk70CVOu(kR+_EeARU0tjl$7uI8>zb|^FI(~1Mfm3B-s@(($Fv}^*$ZhonB
zZ38SO8+B5fkJiMH#SCj0$Xl2>J`n?YVxFKPU(Q0zV^Id%&U|EgO%kHZR@Y5npmnaN
zEk~chAIyh7l=l29Q!lNem9ym~GeM@h17JSUBy+G!kC1Mzo+GD8!d55lU$EMkBh%!7
zhxP;2m_hHL_M*a&g(Gz$b$?eQd2im-b)1$kRRQg5uC$1LtwgmTNTLclFSxMmh?5I3
zlum8rvVITW!;hTzdevC)o>|`$S3@Y^7|7`n=bSablL=B|H}d4vsKAab<7IB9ZhEcB
zJ^dhb=Qt`n-C?y+rh*f0hXQ`a=HI+n!S2u7>mGr1cSuP^zD2i^A^TaH-XUFPi>gu3
zu+O!7I_d6<XN{^B4K@`?d^IZ8D+VDTnT9Z*%kKdj{s|ma%Sbv4B@Osx84zZ0gEGw!
zUEHBPRe9dwd!P_iZk?By5vR)sbpD{9EWMxft6Q)IC$co8J>GUx10D}nWFe3P#mtf>
z#poFU0Ed2;gJF=&6Av7#N?FOc8Fm5WHcV`WKArT|+pY3dA4XK7;i{|Czg@EW_*0u?
z-=W7UbE+StU?s2$udY7WZ4=3Q0v1$f42jJO;L|*+Z8=ByvsH}k7DrjuKu**)c=~k`
zd(%l0ke!G$Dp}PQIkqo|R!|Em!+)XC2U>|@^jLE$7K6Bwc@5L=Iwt^xwHo@)Fq7~3
zTV)~M%*u|v20}n5^_VZ?EMQhg&?09H7GTh=Dm%no0`c0oX6k!L3Kx~>o>&Nt6A$%Z
zaQ#yBN^16-bnTA1orVw`6m)nqCJSA<y*K*%<N*=W=gU!|(A{;iX#NDUFucaWlA2C@
zWa!`NJ`W=e0eu?O+V6_J3NIbK%_WY-TI=4+qDLzAixZg(i*%Or6_=4vj3&n8Sc}j^
zAHj7I6z6Gj)=v!v#gp}}v(=8og{5Uif}+;q0)Tt?xtr;SJ6-ba7%Nzw6+Ew)g>-SJ
zWXwp%=-hE!>+UwG+6TJVD0`4U%Df@irTi_fyr27=I-x#)-G>E&(fwm03A(8`MoGuM
z>g9Ih2vn`F7<x1}Q;rHM5<kh_0_X3gx?<x<4Kh34$Ela-Cj{|`w|_z-(Id;fh{J1r
zbwSgO1*8;t-M#yGN~XpFh4nh9^kus8dh=#YyvJJuLg(M%*3PZfnsw>Nq7VflWISKy
zc+v-avx}kkOVD9%SHq%sTBmV;M}TA#9C<KJ4u_uQ<7Kwdf-}!Y1^>gW!R6HBt>+-y
zJA^8^joQSVfduoQ;h$z$QbfB*{MN_cem~((-co-YI%o3>;dnzUMI-DH`Jlnu7~Ndx
z58Zvu9GyA{_B|fd((QJqM!<@Pkqa?nSKJW9SQtM(&c4*6WiYBTuU8Gkl>8|P&aWX9
z_J<^Ze1C-(h&4wm!W;rOF)WT-bONyEHvT*75Mm8g`rQWDM{ozL>3*+&(&lfufpLgG
zHcYs1!(*jn<UuOE;<5JerLY~;;N+alY!I)YDYHYnP5BPux+*Uyh#GK?A#H8x-<D&-
z38eq%w=gbo`yny?M8uEl%>PbwJ*4CUQuoOP%zh&JWXL865&7e<@vNHcjiRV?VwQJw
zQ2Z@Z6rN`M!<(SP)<1lhV_iB=IN&J2zp?pL2aj5AyT|p&o#&zpVc55tYtV?cD134o
zR5Ly$T(cHSnkS<P3YMhDrVNwI3bNiycH%XMDk;P{=yl0hAOZ_W@hLfZ@`d^3NQjzR
zb8?i#2l`k)O6g_on)&%M*U-JA@{$uwXVN(50aJG^{w!Gq{N|JR9Df?@hN4ugK5;j~
z`>(yYXS(sPc%EVqG*&<{s^m03X5l)>WHBXTZ75S>t8up3!_B{Q>Y5iXeBE;A@zq=$
z45J_7Uu{-e3NWPiCB~=kHd{N|Beam9ELcyQ!<d{oR|dLzNK@=H7&>UY-pHBpZ7%rz
zK%~(>x8jE0VyNDS#04qUU206aAt%puEPiSZ5x}_)3`2GVn~s_9G5^xIVAt8En~QlB
zV-Gua9|R{KFu0dy|6SMP53D@adSJQ^ywgtEt{@%ArHLE$zZON%<e#S~hKcJ{AT)qr
z9!iGUW2Ev<TRJWEL%DY%P3uc&D$kON<v);7+Sq48!649;pVMo`@ugn+gZqNk+OhD1
z7*E!5%n(8<lUg^Pey=RoEKG1nzcY$+xo_V_#IGRywIk)}r7PK_zPic});)&;o@nvO
zmSs<>GKX7+)md$V`a;~V^%IH7a?B2CDkhPmZx7r;e}QjfGpv6Ulxkl_ykU<Gg9gbj
zXuwnzKmQ?>p8Fvofe{Ybw6+ejfJ`YGi6#do$5pFfws;9j+1_KKW3lk*PcD4u91%7{
zm%ko4^!iZ${r;<l&@aV&?3udx>^HHQwU8xg|4i^`r}%Z#R+TL}*kU6ry|+OwbM*7R
z%))3%cKsRHMXpJEwJ7R8Oua`S6-)$t%ogEWm5j^)On7J^P;YDXIZM$5j<78BG2TjA
zVenqp4xPw;ZIOTY(KPw8;2C(G_aianUV9q4GI)a!Br(u#z4I@oGgb%z?oX^`2KG%d
zc_lk9zB`RifiUfl$jQe^WudaUXsU_lfi_~(i?1{>u9-gxK5~&#x0tvZZgn#1QQI<p
zf&AB^gbVd=CSf-)-kHDxm9YlK2Q53?)pw(xin~(J*N9aQl81uKOgX<0fGt{g{)R;P
zb7E7hhTvlWW)U)7VVd?0TMv`P^K!Njx+7;3o|Xnu>neO{YAafOTMYy?ze;BM#@|Kj
zCgZUqXSD(Wj3>^Z$clljj0A{c`yO=s6E3pQ$sV2~of5K~!{)Qhr(kNP-PzXt!JM+9
z`Dgssh~ypy$j?u&{TcVhWOm2#IUYE}OxZW{+nQZpr<wmM<$K%!>pj%$%oj5{y(cee
zqWt$d*Oay|80X9QC>Be#z5Az`a$iqW%XBkiL%>uQmuc++Z?Ku_>r~*H<=NsahZY!9
zaqoNj2G#hT48d8k<gf4y=lTTM`s~UT9p4i1uIOtR!!~vdpt>c<@DB(%;Mr&!4JraE
zGUSZkcu-{qaV#ND4Bf+*Y+FzzKA@7zujc(t<Iz5rPWM+&stb4Zl4paaism3uopMb&
z0TJbl<EX}tQgi8)kAG#x<mqKX4Z#?iJ<Br6RNh3OR^;GkhXP2NV?-wy2>H>KwtkK=
z#uP@Q;l5jkni^I7KDdtg>sx#?6rSel7I`6Xyh99&jncSCR>Y!YWqJmQ8`$*#dnXij
zes1q^U|s-j)%FJa8PU+46A``UmLg2Y?%sBjkHTIpx1Cse=rh9_NK9ZEl$iCoI*6nZ
zBg3%K47PZi66Ulr$e=t=^+%A1UsxRqR|b5eJrIkh(V>~Xa3CaLGg-xiv9To`^VanE
z#co$0_Kaq5W|152lU2Dm0J}h!l<ZAadwg{|)ug3~<(vx6OF|A>`@=m$JXN+VEv7*}
zE8G22^cX^^+gJS+`(Z3ky$CT^7JKiD;rVUnVRb@6r+?Vf+)h+6=OuvNG(E7E7mHiN
zwi1iXKjeigbsOt9q4Ctu1qSFM9hZ;F-V@i9gm1Zfi#K|Kv}O87I6O{Cd68!7G&is{
zT)uIXiDF@<A1^uftYo&i$DxJNotdq<*ffN#yxi+}z3QT-XF;~M<&Gx_iMBJ@S1|S@
zGJjM9Yxt21V$&)4XBJUS$GLu})w|mek<QecRY-dA&cyXk&<kj!NCtZQA-YV$A96Fs
z$-6C%W_;uDnGmsp^u)9+2LM*+AaLAdjC3Ky@6bW%Tzg;%238B!u?2ocgbj84Tj|dp
znae5Pg3`06pWxP@#Mn*c@KM1S;cDb_GLghQ^n(QEPzW9|Psj2iwLU=`N7Wm;-`WRt
zJ8q}4$1)B7!q@9vPkpdv`?wwLh2&j?YJ<kUnv^DT2qPRvSSV_GdmzNfQpN`6m>-B1
z6+88KB_q26Djz3m^jUD#W^zpn13+*!Xkj(#Z*{hiE4pYzsCB%*pHp>GB8BX*utR{A
z>Y;6IxdhF%NjnUL157y#hA5`UxRZ&@hraXS-5fGsM%%jH%JWu3wW21hq<_d-EKZS7
z$|T^Fq%KHd^0Nmisc^FF!p^2r9TqH@i(sx6jreJ$Owc`YH@~bJ2`ZNhr*>!DXR8{9
zdknLG@xHRN(D|T1q3PBHd{aQqw{_f!j4NkfbvEAwHY%WnnH;X!&d)z1VDR7LIAj0Z
ze-PI#|DJ~;7?HStS#*}Zr$eW2-V|xK7M;j1V8zLT$L-PVqwhOmRVO{m=NG1jyA`@I
z&JVFLMaK>t1m=Cg2?pYaG<<Ps;BLMO!-eXg&kU2W>q3MCTWGNbSRf{U?cqaswBS{j
zKLs=|-xu3?a0MR+_8$fH(YKwMq&Ib2GR<TmzgvpI`VM?m;5v&7(mmhls85(0?VaML
zbVEWAUk&;sL4&%jA*89WOB(9>_)R4c>g_43H~xRU05t9eq##W`9o8TXNFi(#IOw;q
zc27~18AU1gTo0C?k}$L5-u#-4H~cBf_2!+B1O3J|8Rp1^(<bA?2b2*0#Fry4e+}Mg
zPxHJV)P6Wqj9{Nm*Lx=QA@AF;*ytn+y^92a?JjB8YF7T_m0z|plxa46U-zQG+t;YF
z<(e=g&A-wP4v6mC@GBis%hOKd4REOxfL>fTv-?O%08(pct%m>7^>}_O-4yD-_gK5}
zWRw0u5}6+V#Vv7Mh5FE4$c{%tKahdl@E29XQJ*70ZNoa{^tuCE<@c9`r9wOXbTnST
z=gD(^#63U{4AgP;=T_vJy;~+)Fl$E(^scRt##K!%(MZ^>S9;{1`qvF0;{BEla&GDo
zNtozxjb4M~v8&<29dK)wAZY<+44&|u5XrD`Xr3cPvMM^gR(wLS1*Z`{Yutn=JR80R
zL0QFyc#n6rlq%sS<i_v`R^Zr}&kW+lprE|ul{3G2OLF+}VcTWeORlTue1w%O#}E0#
zBt4_qb6-22C=O8Kd4G5;4Jh&1E6yX5w#Hb!?Q+qJSJ(KOd>nHu9V?~iPdiw-T4Psm
zbkJ(q^vP(gvV46kwb%cG$4Y8SXa=NlbJM-^71Mo$Q7Y-k#d|OP2~Dc*j#tV?>hRba
zsobA>?z<1)(QS9q)#mbfjC#SH$amz>-G$<h@4HdbDPG4Z5kyhOh+CYOy^^kzEZcy&
zNF6s?0o7@=MvZz73Nam-*cepesqCqoqBr7R;z~e0PRw$neQJswM2djlyBUd8Pm;rH
zwu)Q$H5>`3lE!HJrc^N^%NU-M(K0}JIca+Y=nwj);)BxcvCL;Fi1;!ftp#p%^cH&$
zd?NDHVVkVi#9(Te)#lg=?k8A0Qsa3sulMgE6xoO6fNmqPFh%*TPy#_DT7csy5u7kD
zs2le!gW>FgU^+UXgl$P(#L7PubJl}P6%h)9?#=ya75n^^?y$Aby#2ZTGE`W$mXOa+
zay7;!GG`^vN!b1Ay0_IDX&jhBmLb@ezcw5A2Jbq>@>dU!>9+1$s?k`O3^)F(tg@O5
z=Q}{Y7t5J=n1NsiQia!J!}Nj>iQRwX_=or5C+t+o7QbNtVlvy9gF+_+>~(xwHygTI
z-<jwwj!Qxs9bn0OY8ea%2eQEhC)|ngGU#?p_C4<vTg~}wq<W}+ZO$ErY)aZ!n77{t
z!w4?Vaf1}%tKE4o>SF0j8#)$)%Lvg8s8KF^^5J918jg5Dq$NpI-5kVb_}>@KeFnG}
z6z8DGx@u_n>j;d;{{9&Lx4rj>bEpF<%RCt?13TYKFNbJG#@X4``f)t)E99^`Mx)_!
zG<=VubgDjun;IUtm|aV$O+*MM{PRjuy<BV(m)k(a`SIS`<d6n88+W~9VF7#JaxbKn
zb~_{ccp4J(@3=C!x$*89M3yn1^ewWSlx<@$vv$`rc1k*)%kq4KZH%qx*B=O$eL7gw
zhe}`M#y2&jX?3^NYLb)6jpfFKms=)eSHECH@qR1x8!g+32dV-O@5mVTK);#{Yd_e<
zH?Cn`TS)@5mo4XasptLx)wjRM=pkftEtqrV^?xDZg4Yh#t_ldN@_cP+Bt~qrLL5b;
zcOHSNLk&(9a>M~OlR22Tlc4&udmtJw<H*hl1{1#z44&~@v!1YL&R>BKlY=i&`N5on
zuv!3Jrsl?E4PUZOx$W}WuNYOp&Dxj(iJRE&nR)ba*wlQ1)*pCyEUpnx?zyk<YTJqI
zX!@NOxIW0v$1!vX?u)&SkXF(A4YQmIzT6;m;1?v01{<*>=v%x%|E!8H$uZfLMH`Y5
z8g=rw=!(67Gv*cfWCx-n>V@SO-M@V7Wx-kd%C;+!;IhI233nC4%DXF;TGd&!l5$Lf
zw%SX9j`o9lO&{A1g0F`Zhk0f~?^C5ZV7uS;<#`(|G2Q+aXO3k|M^p=$r97&=0Sk@2
zVQxd@Hy8GcOP+Js4$M((qc{W(1yF1%C3vy!g=4*MQ1`fzFtwU*2mWx*XYr?1`{Ox?
zhs~rLo0eR9tQ1{f!YHr~4}8xmYn{7g%13_h37u*ui<r5X75RVlN%SS!r|~Vy6oM7>
zC`su%0HS9BKS$>eC8*@#1n*mW3F#E*sq&>QC5veGKOGVR=j45l(xk(-nE5sI+Aq}A
zpRIgz@Uuf&xP*Ut;s2tO0F;fnZZz6b`J-#my4%`W0dwY`kW*xQ*-4IVWUc3*JpB0#
z1i(9-WLfir;nkh~b>GCFp3Jpddu)1|!554yjGslto1ox0pxgFib;T!OW_UY&O~rjP
zdOPk6f!j6=iyYxT{f!HeHly(|RV;r%jXJCT*4;TsYP7htBqo&Krm8pxedG|ZuGw2J
zH2Q#^hV>glP=87ov(GB{<m5X<_Z)I}ZhqMemFkDNc0;mwtwsNAY&6?~*mDP`!9=if
ztN5@^oSfk#FKB2{1_Y#`;N0DiWLd8C6!!S@YC!rsmKOgLeCLwh@SV|l50mC(*J|zq
zZ=7v=(AN)^I#Dr;9r64SNvhRIT~O*8AVQb%uZ06WvmraD>6x(#LkB2GA3GFoJoV-H
zensXSL2{maPOY%3wZY>8E+QHSwpnOr*a5irr3HRrvjG(>!d0Fs+0V^w3RDAOoNnYn
z>&!lKo6u<<lT(S804C&1>X@#QkfViCqCB-{$;Cyv)k|8rl&hOaUP)0#0l118{ea5i
zoQgUa$z3QpkF*JnO{i%OoY;<sm@@vZ41XPny8}I%8q-~d7Gcx-L!Hom$Gyxii*xu=
z>I<SGtQ0oW9SQ{C&Hhp2Rz3SV=g$9h)GsE}Y(pE$`MmAL6kM<C{$~poX6=}RvXjs>
z%(04yM<RZ#LZ3izB~IN=Ut;B*z#qy;qvL9jB&SQ@ppGG0{j^Q1^VdoZ2emh8l)Vr~
z!7>Qt;^l|wR{1{PYk98yG6=L?ZPb1<>|Lx>aRSY%6aTaF4W3`mr77gXLk+@pw5Q&4
zDhw>emVzE<F3M)~!p7a2vt=3B&n^2dA#{uNbo=4py_wfws3dVbAIQ6KB%>W`QSt_5
zQ3k@|LFTLl1{~>%{}$nVL=9C9pV7TUCO`KTPb&)b*mFk>*L((SaU`etsm~>r>c_9T
zC3*_`OQ#Flunk1&Rj=cxyhI}ch1n*Q5RF^=%{`8Uqh$S0mRjq>EN##80!1~Yg*!`@
zG*T)EGcGNqnu#%x<Ezli6V=JMv#m#N8`x}^ryCEmxR2MkV+pr(g!1dK42pP&;nzAi
z`C{c`Mao*Bk>v(t)~piziPEc%%LUC&WS+W4C9y8i_O{mU$0t!TrppfqyqQ<0Cv4Iq
zBkDi(vcxNl{b#MucY_D4c3^s*f95UVuEW+-V@<wa>=&=FtarvM?oRFKlavyT^!==~
zzj>UFPuny0BRhC*H4n*W8ZTEoEk&=&@2PX}W!8~HyY7=MbVF`!NPtQLKfJk)idIuG
zlhOKM8o9Sh6bz|XS$!8Psv}$MYHE*!RfSS2a(xz><Ufw>mw1@s+%$dfu~GkRZqf+F
z4@4B~ovP@tMQh=zD_Wm(4Lh(L6?SY0T3t(lREZQA4nqGfwg(T$!wiCa5}PXf^&a3X
za1{N0r?mAtv~PZ#w8MV_?iDpY=$?a1CB<<#wXk`cW1Vw~w?Y{RSDR&?YYN!wG4S(}
zmw&6-pW#23w#Udy>gyq7&`&J;={r5JNN?L-)7||!K3Sn(TG)lS`I_<W5GU_o3UXL}
zj@d(4aI+mc7{bV{1Gb-Rn<VF2b1`PmeR@G(3r6LA!eQrO+iXp45PdkP5X}QRFGS#x
zhi<4uW4LDxt#->mQ`qy8uyM0;iv|+QCO_sJQBnHsRfJ5?@dE0rWXrv62>Z&TQu}5G
zWY@iF?DfRF-8g}8e0;&t&#VtQY}_k|Pjc3EJ80?Rn<42yyLj(<aoA}(YXUhpzg@W8
z7>;d;s}>SDEV~>G{6~%9@)B)3yihT3{AishLAFd5IU=&>w3RfM2wMXf0aOq|7F@r4
z(C<jY#&CO}LT)UnowP7b08k8xuP$~^IoFoR<!1M{D8rMQyc#y9Tyu$q;W+5Cih!^9
zpXAu#OB0gDjk_8h)<rKt#KlVphdrpWS`mR3%h}ZBLvrf&Lyd$$FoaS}M*@Ky5twHg
zO)dLPu!17#$v_AOYZLP4<0=c8;0(hYCPa5utZ0^ZR&@U;Cl--0vg<lGxtF{wfw9k|
z^8zGg)MB`j#$R~BM*<v}g39;Yf&t%HjjoG4E0>$JgXZh5aFZ9BJT7d6uahry*ZJR_
z{Pmd3@V@3_I<B<ak@l|M9}aI9O?V}Za6FB7=DRr7<8_#j&w8tbhkL4o^pDt@Tu<hG
z-aFn?oP;bRR^h6(%Q>lT9eif1b2V}3zI8IHyi93Gl@PL2eDp5dXCCcgf_x|~r)96o
z_PJcH7pOJoa>+``9K01y_eb~?-Cu7<ufNHmun5labXA@1x#hU-QUXAL^%O5QzTUp$
z@ZUsy`#q>DGlDK>;1@P-r~#+b_ZU9!?cxYH4DUBXy3v*5oi$y+IFOiytbHfOJ7^Hx
z$X>94)zDGzmZpU<-gFYIN;N-`${qHy?5BnrA@QLj;Vku8fgvhD!{>pmz5)F?U8Z+2
z8HQ{6%BroC18?~EN#U3BHvK?<-W@mcK4$bBer~33JAcg65a)~ggf&LCzu}8!jkxb3
z7&R8NDD1aJTmPW?$WwEYP2d4~<t35@sAvs)ZOOgQYzK%=V{TX)1wigEc7E~vk)d9U
zfjRKO=S`y#<78qp+V(B^O!kEF+-zrT`&0c>(EkHUK()V*(5@wDzh&WnC^vPFsF+If
z#1E1fGn3T1XJK98K~iz>eGq>1x!tv)zF2SXuHQRe5i$FWp^i6vd+&LBsaa?$rMShi
z@-ByAMkrh)F@-_{Qpn$_SkadjU-NK3rupwzpOyd0%P;-0wKaZLenEjODKDhyGsaOY
zKZ=6*f+Q#HVWk|V^|7XxNc3=6s%mseb1W=hOq2Deh@eMLfI#;78&5A!q|z^=t&K0O
zKAPsv|144A7;0GmAgy`*m!L)D)H7-h{=&eXAgt7jq4@T^LMIlESyrN}xV115FG#+h
zJn<8Bs*<2ra-KoY%+8<Zf`ESt{5cIsjE8zc_Gdx~CxNY=Rzmi4S60sII+#3F9|IJW
zbQss?Z#;QMvMupD$8+a{y02Y!{mK9H^iA~R!K8u3&JoMH>~-r=`4e0a^Hr54mzKI6
z<4&{xg{31gS;}pNWhMEsQDaI<)2Sq-FmUC^VvW;hjW2!p)3Ks+zwmrVwm@L%w-=uU
z4&wnkTp-6zJe?}4=F!$ok5T=OXXh5DDhp8jLxySRhS=V)=2OxVKl0~8t<J~Hz)9$)
z-1c-^#6-jMOs{%}AAp7`+~sYJ8;%2!{mQ{?WW#7uyN!Z9<2b&8{-zmrP1G}SfWK^l
zopWGs#zKejH3N+A$sWE7yn_UsF53lp1nG3X{63DP1N+{U3B!?dIH$$FQZ;XSQj|}A
zE<3w}c@G*uEW6&B#-k4t8Tpmf6e=hp#pliA{FF#(8Rd0XQCIy|j9Nfh%8H=8y1IQe
z#$7P<aSQX^K!!c=_rS!#KpTbdUT&ZKc6Pp+H|)+z+OZ=~FD(Q~a^{-uQ4=5x%M)Qt
zh-_HRO|yCTA33RU#oZ52zbBkdoJ_9xfhD~v)_K{{<WU48DU)yPkXBm_<L7kRqE232
z$Ebu!nzbK+BGfGbKt~t+p=SVfdCk0sZE+REDp%k;*c1+vD6fKXpJEu)>0lEC+rWt3
zaIhJ6uAkGs=?p1jAJ=_BS6O!g4$AZqTr=H7L!#qkJO(o5y-9m-bT+-|d-Ftk&O+yv
z$)Ec_yTGsC6%VjxkDs3;>o)%#H=FU76OQ}j)8DRpw+I*g*$U-J4<~iGuJhq0vEx-3
zg}h{8P2YZ5F7UUYV)2vrjorL?%MK3&yeugzhQKF!rRTX{WI>$gVci&QtGu$5<{cd-
z2*#00#m0`WybQzA!l%D;`oj<sJ#yT2kH5icl-)a@x)r_i;%K;%rqB8?6;D`5-L)&I
zGrog5Qq9F&zU(<SCqUaxAy|l1U%wLTlll2>v^!nA!|Lj&wx>YAaUU4=ql2V8dif)l
zfF!YxNE?D+tAN7HJ*^GvKicCZ-pEVakwnPpsji;eo$GU{6SjUY)1mWJ^Oo~f!)9n)
zgkd@UQS!EcVYis%V<fUWQ_yi3mBCzg+`+=%Dm}t8LIULUiOS@-^ow_G_(CqJ;BuRP
z^4nISVBrFo^iV+wcpA)I%t%9dPKF||=~qMvQID<_bP!yDrH>BJu8c$9+}MW{@Wwpo
zGxvcn(t(6Szo(vf3x&o^!2G~|hzp@xsson)F@J*gdz4D2K**Gvj!yxIQ{AtrZTm;n
z)|DihcS0X*DX9+doV^Tt(0<;kop2q4xO-dQe(#v8y3-G-@6J74<lbW5QD|S67nV+=
zXkIBb*S$pDo!cQtE&Pb=?wa+lZ=CU8Cw=F!*I;$OpjkFvgtO+qIOiQRX7==?WL{pF
zLKx6(Hu9KhZ`@WbY@RADFVcUC+c5-{7^_A*9-R+V--UzuHa>a%>Hp|))MRGZBhfON
zHUmPvFtj6JFff&hBRdDAhk_c;$Z%@as&IFeJgcKoe3rs$w(U51<b)EPv7T0(lrjl4
z82BK+F4;^ukAUpBx9a;$v&r_?VK~W5I?lg698v{Cu69Vt=8lH7fA6V%<A1}WrmZ;`
zb3vv$y8OfXdG5bYuTDAM{X#}g_R?|bVkp91bQrvGH%Kdd$--|geJ03=R};$DbxvCK
z;_LUcHFum)SQ4Z1ieefyy26XbAc51XGgv1;gG+(XNG4NgIA}BgsHnIAI=gl!2wd!8
zrk~ga6)!pQmg$~KJ`d(UI%)cQY0AtcIES>1>el^*-dOuPpr0JG@M}*)6gsjT>MuHW
ztS$2*_Czdolq(Tx5}w<JO*t2Vp07dU(c;SN1~ssTLl7PuZGBqVS4+#;8TRZj&Sz}y
zc2he>jhZ(igd2>F*S7NxvO=H7EC2}l4az<YK`S04XwW%;<D<>#2}0ldw|-_EmU#~H
z3*z)f7<j`GQ8Z?ZQ^|jcZgqwjKRz)q*1>pY`eNDj=bQ=yMN2_~P|2j(6fG*lsd!A-
zgNejZdEH>x<2yEMNw0(jTP833RRo5@2f-&uvTNYC#=f`#vBIASE6pHAViludNEjM~
zSSco`c{?3lP>){^^<HcfvaSC*^=nVulZ(tj;%^Hl+phh0Sv7h(g)lL;w}5emaU19p
zgR<%X7I~H>i#CIPd*W4>>RLTkMbqRPGwMDW=VMhElk~omU`q~FUiz8~wRjE>8de{k
z5Ry}AzM#c(1kIQLR0}F#RHqVqKoi)s(BQ~q*R|q;<=^W|ad7TffTr@?dzFm5w;zF}
z`xBQ5orU`gyMfgV{IkQd`&RaSzYH=7gY<*t8~6oz1XtuEoSwgm+O`YD?A$n>k&lxq
zp!PRo1>>qq%8#J7=C#z(x{3)lv;v!%!cU$0t!01Uz6+yQ$3o5himuMoySlm(MIrQ~
zXbcPl&MROdzn_B;!-oN_5Q#J4$WuBzib7KM0OnKMRqlsfH&HZm?j<y4!fCL>Q$p?A
zpQSY`e*waA%h{*ju;L&6^3Bl)J#RLxn*sYAp97x*Ei}qUQCSnF1@~oWhtoi)v8=4$
zDoTJFk61(9bCnUsX2R;xwc8;U31P!U0>sKQFs<^dqUvcc;5%u`nB(S}>$v6A#jpwV
zM^Q4S42J25+CUcd_R)c*&FU-zgZe!WH(tL){U2ESrF5(#XP>^lAU%DaSiBez=Z0H)
z<D!`|O>21IDjG8l>hU1QU<I884gy4J=Z=lOa2t~rzC8-fBRP5;{<H9!XH9lNFVqj2
zA2y%BOu9ciaLZ$d^jbweL<LpjC{kFa*CD!_Ybn{%fG~%mA?JwWzq)+AA3ryLn{PX1
z7COg$Dq1*~g&2x0#`{nVDDa-NpFN2?;5ES`+f|5`c-GPHs_jZ8ju>_Jmve^Zee9d>
zTx`qm6Vqp1L}RAC8z(Vtq8(eFq8;0oLJ6_Mv+c-QNdLbN?b=VHI`h#m(1|e$aoqq-
zpxFWPxVP;EG@H+g1|V>^5858bz-C32#?U6^_{rze<RdRa^faXtt@QfKcTrpGs;80_
zC1;&?`6F7RurHU~yKCRJstl$QeuaK_IuMESSRa&<$8Oy7;fdNaxN<maMe=_iOi;z#
z)X<;(XM|^slbm61Z$-Qe<IgHFDOeHyVywFR*Vw9z=hdOcMhe?@)Jml~o$Bfq;J1j4
z+4)m4zjz-x7Q60|>q>V|4Oy|1M~!=@EGn5owOgN}mX?)a<)vp~WV`pt>lb}(DU4a2
zZ9Q>BdR^1?Fu1Ys$k~%%O&+JvhR}F0gThiZdUgN>t9HN=bu<iZQ07hbJcz|AJ_FQ?
z;yYZ3MddTn9W6VscLS6xMT<+O(u7H8>cJ9XN~nYEfF@+ByCBq^vl7XnK#uQRSJBz9
z?s64U9}%8Y%A^=3Tj<H~Vx%enIM9UmQwNCgQ_wnt#+YeL{rodwGhn>x9<)51nv7LL
zTw@|!*V?f5j*_1I-{%T*ITSwBvh_&lj(rBp1*mdX`_~-{4F~_V%L?kvD+uFj5Z-%_
zo8J2%oFlPk#s%R)TJ{ct13w)HKioI@za2hWgu5?8%-b@#9MlW?mipHXsW<q@Y&N9B
z#%=P7%Fz#TpcGajRobN#j%(5Ci<$}GAq_1L|9Xd;pw9hjl4*^s{LzmXfj@{G2|_W6
zeSnY-_{0eE>uzlzx2qGP7qM1^tjD=*{j$uFhiI~TtFr4it5kA2Hjk04z=}68a68&#
zm;rIdj1LH8kW>!co*mdw5aC5#?RXuX9kvMIw*=uu*x$~_21P<J#)rM^ez-p!U_{ih
z9dI4IAHJl3@kHuml9_c9ylo+w_$f8bx|3+Rj(aeF+-UN{Lgt^Tzg%wvL5a8;`fKtJ
z9(uoQ=9xVhL>(^(%#Jr$tvEiX3-ZXs(RuJ|GI?^i{wDm){#p5=Eh=fhOH>uk#T>L^
ze@vo-m3()8mDFG-RJghTDv2{@Ukt-j%~V&ng0^q`yX@|6EU;~H_melA9$o%z??g}%
z@4;T|%2+I7=RwdNRFAt36Kw1PhJhK0j1T<$I}mJ`OFbkMRq*;Wr+3nca7E=YR9QLC
zUwH+=*4*$K^(32G+=#tNXPV<b_?A{@<C@Q)#@_%Gm^XdFcBa_e#dr|&UFNELTm~0L
z$M1oDa{*(noxbSyrXP7k91WO9GqM;hx$n*Z-Mgfte(hZ_aP;3S{8nnIO`9j#^?7kC
zoi6jnjjIO{w}8*E4ocu>egJ>hl^n5rdh4oRtB$5C`zkh60ftjdMvUY6?aI$-IO&3S
zA|04eQH0~*j$CAm;!(4@5<6~Is^%IYYWyKFh<cE&RjJDD&9Z4DsyVeAE5=r|07g`y
zm4-1S1tyvqX}|h@(_$pJUHILQS@r-AZdvStYBAHq=<#UJ0yU)4?T~3-v??%7oe-RN
zH|;<e`ZezfXD4J+(u?JU@ZT@c5WnHnc1lLpQBU_=jexFOfJJti!ThqrgL_7n<MK6d
z!%d6$%v*rIk&})kIeW1LO*XcmqxFyK#k<}kj=3}gZjkT6xkgmDCFLeN6P?Wk*xyT$
zqDeGmMmgo>SJL{`zm;ecGo^^Iku=r{Lc?K-j1d`tLjaKu4BA_Eo&2`PKHOH(CT$iJ
zVQVo}kAjg(HcshU)YP<++S}G(Eye!+xnFoBMVDvik$d-STn<y)|Dn4;>lmj#4=5tH
z02bD2M!ffm-UqDHSP1bz5aUz_tOZ8U=R624Kxbv>2n*Xd!%-ZtgwdZ3HFGzHQNMs;
z=Qptc#Rju~dq+dT*+gqw(O0Lzgi(n|rz{9#dg2YEnmx7ljn4YjFW|(9=L?es+x8W&
zwZ}|5_F9HLDC5Nns;O$~IaD=jKGoO1M4Q+D1-sifO|<NS@1H52Iy<GT(@@>fz(F!Y
zt{psdheE>(Bt(9I54rB^SsgVaAwnb51V<I`=aW_*jh}Qj*|9R<7KTx)H>joYRqzeY
zFR66Jh+^8IVlgWvou8q~??CH-kb>KX-zhaB7~F$y$j^Mws<*o9;=&D56B4-R4jD9D
z9{9BjuHYN=v&LT!hgDcHxT7P~b#iO%n(y?8RAa;oRm4OnzuN-;A-zOeNH!1_FDu)Q
zm7jwn4QIkkwb$Q{{sE#Bb>i{|PS=I&iJMGy{hJ^XJb5<ljmHVI;|3XJUpamzUEr<L
zbJFa0;Xas{w0Bm%(vEqN$R|~N=dVQ3n5H0`gLw^CPHS-L-*^&M$WKkQ)S(ZBF-dU$
zk(6kyrBoY^2SNdH1dxW3t2{U{!nFumqJPgYFuAfTF~aeXe|r-p+M0AK9smUn1xEZS
zZW5O0iFR@>x#sv>SM}FLpYz(AAB72psj3hv>eyednIdc<;Ck>_RD|ht#u$sXHMvlK
zhl+fNk@K61i?$byNSZYPs+JJRmKQ0+#bMbS1Z&)L$Ax2zAV`5gh4;2kA8S#0F}?%K
zEgeiOIA<9-0=&>8;?lbhI<cV|*A_zbdLhPR)SN#&_XDm69QQTd67&Ukf%E-?CmrB7
znqDt`Gay=TU?$(b{ukto1Uigk28sEaae)_?5wo*nx!2npHhch~2Ym&hk*b^m(Xy?l
zyKOwL<k_)m8i%c3MFkUS^~$>-qiHIFp!H5L3rw)#{G>jDEvtro*mIQ`7QJJN9|E@v
z!4_r$1uc-O$1H%orYdN`6jNu*i`3Nc61Hq4e(97|Yz<Q9>J{^Xh&Qdd9O{qX#+=Av
zu70BuKl*be`|FWR&y|`u>&AJ~5L7aF7U&XIM`j|9McRzAg?=8wo?;1sre>_T`Dk#_
zFa4&+#7r5Q-j(?jJ|<qb=EaUiI)d_(rFklx7Y%o&x*GG^UA1moTjQFQSe5^`XVJ#8
zvT4}nrza64-~Vok+k7N+Xx~RJBN23ly?t+Xdfm|WEF-izruVGzN0U72bW-Kxw9=ex
zNL`kArs|LQo;dgXz+p2~;b(p8fv)8@EP`QQ>p`{_-@bJ%i1$M1#X@t8ExEJg8;0Y2
zsw|i*eIa*Wp4=MYH0=f4bhWtt+!y&<z>CMfUdj%BXoI|1#kMGP-a4GWnu1DP`gc#=
zc*+MBe)Z`_PMd3v`(np0KXHNQ)SfMRApF-`lKhUccV&IMZ4J{T#x*%>G0DkTpk~8(
zz!QRybGn<l-i7l1H5b|%3?QvjDd*Rn9a}DQk}YHxjn@ox)#ziWZpU-f()5Z9TQESR
zM>ZbbgMJra%Wa0+o{yK`rhLANTaMp^d~QP1W;&+d{y5NalGNDvGEFQRORdds(AJHQ
zppAMf%hi~iT1?^gg^Ehryg3xNyJG?@F~)2#JMLG3%0k`7I0jt6pz}EG_d>3@&yXwL
zGKN0MhM509bMFCX*HzvBu5<3(sdswQXo`BVWm|4?Z!#E62?PibClHblNb>&a{UroM
z_$NRD`F}`4LI?>--b=v*9)u3I<=&0Ex@1W+qnXk4UT!(>``i1RnX9oO275+qY3^zJ
z?6ddUYp=c9Uc123P(j9#oIpGl1;BJEFQP50ujeg4TZ-o!q#iHP5Csrgj#&2MLrE7f
z_W<!X^SS`*WNAH8J=`&{8}mW<PK;&K)1^~Alc)Fpzfmsy&ziN{UXol8H<vHH$aEX)
z*~8iV10CyL-LU0?cQHt*EBk<s62#`2C;kq?Gt0PjF<%_qM23`>Ylw8;(X;PKt3B9#
zwLG#FBG$;3)YwIr|DIKV+**fm<mrF3?&rQv2b7*qz@2A&{vZ9{$-cwQ7G}Q)WUf)`
z{17~|-qI8~K?f`pvI&a$+=At1wEc)8j}n6$w=HoKS(raJPmo7Jz)C7BIHGM7^P%@t
zw9iod5ls^ZQb9CD5e>*wX^!Arl*2NZ1*wNXx&vv;KTuK#A32@P9O+y|x9^3~o}H<n
z<WYnckW9mXBy@^Tb)vQ{Ub+m$S222@@s7*1tep7X;(;<m^%mh3mvhE*T_}$~xJT~O
z+zSdbVRq(2LBqO_xcff>KX-g+_qLKKJP@ySLc=H>5zGjhM`u}AwOwPDn306^Eio7|
zmWqzX<JL1HYT)y+*pG2PaVUqMSahau*$H%=Z@uCDx3kdlM>9oV*nM@bB=~GlR=&kW
z#Lb>5H*0)qE;!U{_UPf94NWj|xR(ZZ>N9BKHmB^IE-db7Y`IMYd9#OcbbR(i&SvK&
zI+4Jc>I&>~n^Jbc1{aKuC5;Y|V)}?XTM*utPusi8Uwg;Vvk9qa?8Ms&Vfo)f^y{8i
z4>eH9Rb4;a&^=DYlLo>!O@i!HP=F!!4>>5s`TRxvTU4HN^OhHuVo(CaLY6=RD%681
zeqSHrrRDcrJ;3Q4(Nc1`9p%j(^uXCo+Wq7eg}v`emDl~#j*EWLYT7O{LQ}KUtJaP@
z`46~B-r<^}ZIhJ1Dt<-j{5*K(Y>~_y{^)od;NTfG;hkeoIC{XStlYx1t?9hhww?P9
z7sle?{(rNfQ^c4F%XTq`KH)z4Bl6>!wmVaUgDvG{^Hw^Ys-LS!jo(ZY{|Z^EU9OF4
zc?=>CA)4x-!82J_a<eQkA!7k&_re1B<J!hAI3%H6fip!H#jq)b%&B77<Pz;Xl2{_6
zF}#=(9ODM1ECAd^Z#ef|pHbd&Gt_I8uZ;4_w^*X^k2THb99e0hVd}O&Z7qzA{*(3Y
ze{Eq3ZyoVy2%9ma7MroMCmO)C8n^}oTeEX-wAA+NEUH2d!Md!!fW64`BRwZ(hI@DX
zsJJc@AgrV$EcqEQ;vcmwsu+3AkC;BOyvanOSxpF_dD5SIE=28B5_b7HRP9$@jY&WE
z`DZ?l^7=9~X*k#UBEeoyljoH3U*(0VcVDsRp$UKgN9T9;-cMYUA07Wfe&A4xjdWXt
z;O=O>1fA!l7$=^0|E1ngxhUP}qp)F}1sA{Gf|kv=?=rE1e=ZR(D;hk}XH!RaR$upr
zKN1R%z3;o`hOo43?}jaJvQDinPghuW{HQ(s$loAH@5A%BDh5nKRT7+2dxcBIDWOlv
z{iW-~!^7uJ?lUf#U#jr-nx7qGX)<zTP`!Kio^Re+T<Y04m*>*tP}`<Ll;4?(!gClN
z8>mMYL#dI`DEqg_{#NeAhE7HbH;`S55;708U!I*gXnw-?GM{KPyL?MNkMfQLcleha
zm4SFDZjRu`N;4TNBWg;4iAO@YgEHS#N&2q7uT)$I_srk+`7nY~*5SaizgE+F{{8Wz
zANUY|>czkJ=-*p<yl2<@YwON^-}x7__P+^(nYIsM{mA1Fe%MBFvq-1CVb_<c<`pBG
z?)rO6M{WU32Xn`8h}`K))$=5g6OtEPo7=9m_O9I^_5nM2jBO<rCO=u#zT-D9{SmN6
z`Fi?a5F{i(PK5&GM5$~Yfyx?!a3LKPO0!{*{R2kL8`aF`F&;vKxFD@P&LgDf5EwLt
zxIkWL&l7}`dzJFCP7x;Gcc&N;xjxJNLt94ayo5coQ(}6BhypF?g%HmnVEimWI!YVk
z)*$5X*%Hfrs;XrWZQROQ-vzt;Snt2EzvnwV9;n7e$)g50)EF+3YqZ%;GbXnmdDM$Z
zLr@TdwwRK<i#L1`?ozM^UJ9(>dI4ofVbNNV<cnblt|qYb-%sko;LpwOE14=>`f|C%
zxVpWBABI<O??-oE5G{lcL%>+hqTYvDfZ7O$gbiX((p*;&RZYRsWRTJt>>QCy5-Y*d
zSYFPIsB$4|@USow-CB6GKmqd#<R-AVRMZFVYjz+T*pJ`%$9oSZIewIm(HC!cJy7{9
zinAsF@Pbv-UBF|b_@(rZB6}fEDxhmyJ;HcZ#3Cnz1p#0G$UL{eCcTWNzTwEGfNd4g
zt~#4TYpK(^c#lpoC3NpBel*B`IaQYX`QYXUMi%d_;)%v%G~V~0QL6N<XW+c*ko0c?
zqM~cHdv1Qto_h2FJFxEw+qQkDU4AXrHW;ikl6#jIV;aV5E@>=Jj*r^I58P=zC!VuQ
zuDs56?7Gq-0a_{frp}Y^7T?!BH%<}C@^gP|b)6r9fp+>5Wjk95;h>3X^fH%~p1boG
zVc29;iR|!qKjnn>#h_G<x(ik>G=~<~J{emHTy@QS!Fv+iee!u60|VTuYu35g6Vog&
zV{Un0^_uN}ezxaO@GKzeduukIIwuGV+ac!bF`I9oC9ROA3h2r#!(=<{!A-!=Vb5on
zynvo#*^gIntNoO~IQ$<OHVN*)CSllwzuK$2w3?M_%%56f<RMFu<a6iXnCc*!m!!o!
z+=$Ongxe8H{#bSEIsXg}#?nOc#>;n{y!$i15@a&}Cz_oqvBBePa>r*!dteekd(Dey
zBr1N!z&YdLOS=$H!uDIi&evM7<qBAA2~hwknGmE18Dtx^;qG6{+|mEZV9%ZeQD543
zU*g;MDvErVdLY3W3GIoJT16M2QAFfsw~sXa&iu$+IyJ|9xon=)`%7sFBP76Am#3H;
z(i(T{D570Q#NQ=Jd6T3u3{w+@9~y}2|Lldf150wQ_VKyBpDk}Kvrk90&F^&d9Iw5?
zz%eWIJmn(ChcXlw@m*?nm11!)fZ0-(zoizx*t$yzlES)F!DK12uH|OzS<dV5ea)LJ
zyzEVE+0yBai4NCPGT(v6iHPeE4EKJxYX0Q=gWY?66y^XJ^7-E>Ev^4>YumM!sauCk
z^NgMDy`Le%e1)Pd<{Vu6md@3t<+$bVDUVX3q}6%yp6H+YAbD5cP_SU#3qzQeDE!!7
zyXN;%Di;^7B33Ppp4zvL<&z(vj#px=XyU^eXluE6Qzblv&uF>3srx)$q`$PsZD%|-
zX8HN4#rz5FPu@vnC|&yz=Y@8E?Z>MC;gq?GB~x3E97Rx1W#D@f-jxzy3DuoSLGqX6
ztT+h`o!G@mge<}NftoevoRd8NL6061Kj2$;@45C|hR8!}yKcyA-p-P9g27D<KT9Bk
zzq7fiK4<Ao5JgQ|I@gDiChFV+MrX>S^!<@dInb6<L}__F8kBLTJx}FJF1_|cdmq!&
zAB8m8e}wge^Ea^{>}924(3WKnbz0Uy+Xyw~`dUEPP+ZqDkd6oH<QxLy0-B;|Aq&(z
z+=>w|xu<eo80nHPz<5+tSh}VfIaUIduqb|qQ<a?bgj+f;%iwaPV?-1HJcm9g&EIEQ
zwttAh?kkmi=4CwMUf#r(b=_FmSzJOTl{|_#8oYQNKXT8=7h)9|9_X|C@BWSr4-VMn
z*Sx~cx#)6Sjh8JAb7k>zv5>%}nB~5{ZoB)ouVWNkuvfnJ$FWLna2A@y@4JullYCp(
z#dQ;5EaYawT>ec#<Jxa0+0XXzu0PrRGmz)cLOS3z)OF0BNf!bK*3u$)&e@kA?YI7s
zIoq@*W7qCzu#L@?2;aqB?Xk^`ZQk<}0axJ16DP*)_NNA{0;R`gn;Y!H_0?=q#e_-U
zcsk&LmYf5rFQy7}@40Hv*%3y+SD(y${WTrs3$y<U^|~G)B@KST?CNfHzmy#LJf1En
zJeCCT_>~w}#HWgWEugK)Gnkm5fRCqsi<8c>uXxD0Vfx8b?OneW?Dj_bW!YBra&EkP
z3--pZSx~m+48&K%m5RrLyYN6!Y=eQm9{cns{*>4w6V}|a#(w9IKkhw;^se43E~Dr?
z4y0xe-oMvw`}!B{G~@aeuYQBQ@m;@ag-PiyiZZJcR9NwN=8j9c$A7ja>c;K-!l1VE
ztSCN`>gdRD2=4p9^{*_H1mBhtT6?9>%=TN~iM^~XXSoWTtsf(5*Y}%4Ra%0cNxr4d
zNXj^qVM76c*P0kMrIdnC2BqK5l-k?Q=GIcDPMxa6ivG*AhP|VLb}CuV@W{AvLH~X~
zhE478<HzGc7J)rGKJMvGJeU1obEjrkpod0XO5D=w8n)t+5W<J(JRP6Mv`I<q=1$ed
zr#P#xhuo{R6>DkPhWh#qQiQ+kY3%kt-&E4L{!3Qhbza0=7%Z?FWST&l-OpIz=z|C@
zga#sdlarkIx|Z8zDwzjFn5f^x><^|(5T>OlqXK1Z3V}?3$s<TjvgK6Bn(*+#*P3m+
z8ifbnWKFvRoI_8+khw#~h{5NEs>Vjo33mVD5E;&D`tnDwuCALa{WgY=D?HtGm0hY6
zv_#9G?%p?SUwN$G#%JcOy}rtR^4bpDzBYpZUJO6MLkUcB^Cb9$@HmZt{`m)b?9rp6
z>^hRNtG6}U>vy#w#Cz28W7dCn={%e$iGsIX^?}>I<;y(#zZ3WT&FjPFjsK6;wbeQN
zky41|Cw7{!0EZv2eD5>xu}pUKy_8?`;MaZ6P1>QMX}f-7oo#DDp`-EiB9mkT32!4)
zS$nv9(grx*xTV%M)|XnoVIu-N*6Nmxlm_e^e<K)rdLW@4>x~5i$ESkv{&Op@|6koN
z^0O<N?f$=fYsLIT-|ti555R$eCpbJ2b1rb6G2*#|L&6^&g+FS~(tR$@NK5!aZh3C#
zspIja^!3ottpv9<FZkqeb%OGL@!CJW{d0UKc@RHe`NQbIK|E^<|3IB~>1z^z9fHt^
zfN`ZIi3(_3JP$bN@O;tw9lw`jY2iFVyW&G=%q6l?;!RaZ_};~4`Po7FWc+kW+r?)p
z9}H&cl$5u4N5DCIRk(v1`B=B^7{K84q!nbrS+>ePl9H*W0>x5|6bc0tw;<#Xmy&P(
zKyTk+uQ<T)d1rsmeYt0_3><#)({}jTf5**Y2nGN*Mv?}pl90$JA)5Y{lE(^P1>s17
zCn9i;$hmg`Vmz{yA2yfYg3V6%p*Y617Z;DH)P7sYzf|(sIRn{((ZR#lvr6?=bj+Wk
zAAgPE_Esjf>)^r8qp}-l%Q{-TA*rESuRr0VhXfb2m(4(&g}pGxMh$4hlH`!j0WKN1
z$&)j+M9Qasde`j(iO`yp;L0G?B&#8*Zzeq=w+{{AXc(kBaLV$B`q^(27;`Kf8L&bh
z+l0<8h^(~n#rN61eM~VclLSY6XkWpoMPM)bM)A3ByX&HxYFAmg9XYTMq5U>{>hXtI
zBZ@A^xq_2FLB-_AXWTtqQ;hH|i&g#s1pa5Ae#{<z@J@m(!biwMK}nwyk<*`2kz&K&
z&^`Y2I4mhI1kt-(TNWRly_0)C^2#o%_7T<0jWbPR5U$1XNn2z+xSyCB|NTgxee0=H
zb}Nj<;ZxHvDPX2xwU~;=vharc!dM-@^w25$=HsXBix2nO7ar`kiTS(}O!ca#2_DP+
zTf)EK4cS!X&!OF2M1SQyn<=6$6$`T;pheeH>t*#)EA_XOgbwk1f|o(0c?HiG#!`~C
zD7yr9K~nj&PrHuE`%5LBc_z5AoeT3)_@2j}xbZj6e7ZVU=_t4njTmE}#yC`n8>KNP
z&lFa$IE9~{>7J6ZF!2`h2m@HlC&xzpcoIaFMbDFCTpV|Naz${H_j4=>nw^`59~`&2
zX@xDJfaDv>t;wA+s!27F8@+RDj=Rm3%MbZs#5-*v+UP%Uc7Lf(bX&Olc7l$+t-t3k
zBDa6qjvxFl=1?!Nt9E|8h=$XaMffCiKW?9EM$veTn<Wy8ZjLhI7Z>3bTkIMCDTFuu
z0X#9+ubiDL{La_^>NUEt>S=83srpQ6{BLO$G%C7+>UM%pnF!`b{19eLH&^+XF1~sW
z0?YA7fJJ!7;}Rc%ccST@9TTkqPJqK5i&`kh$Rvqj^E0RJP!^BmR-c{1%@Rd`Jd{+Q
zVkXh$gaAYcBZX&sEWfXJ@h{p>klcg(^$bI9v7QlYGBvxfVsmFnI`cNGZaL4&s~C@X
zi?K~v(7euq^KehU>K4}dV(}KtSko#U!`MvL{^T1c>?c3-wEg8?1bR28DMN8ue!cWe
zQ^VM7&c42X%zp2S$LweRWxxIR(*yVxR#^&{cqg!H{#Bq3p`s&-dY>{yBk^Jg%4?ct
zO2Rjb?k<(Q`e&Mh>au0O2oM00#6wm1%qr<lDGd0%%#(NT@3$vUjM~?q=pnAjEF@6M
zX%8#U%_?_1#|kfniNJRT0p!0PIK{go_VCd``|9I;=u0$)#oH$1-hX$g4uu-j8y~*+
zqc^Q}na=W0bnC4tLT<d#%Igr=!87%%jzqw>jTc&Q#aoQ1?G_MwsxYVEvjrOmPyXz-
zllHMYy6uzq_5lyUXE|;yzg}u+8d`9AV&4As(E<CDZ=bM_-f`T%^7If(*t;xs@$1Z5
zH<6h#7X|j@UEvz|$C8&qMQtXRD*wr7@17MKgUMH4>@gLj*J{{luXdN@iU8jD<d3qC
zX>59!2{)4G$|ah<9ACIreiiJV37`EtDkH%w3ACb->IRMw3;V<aAG~3kN?ol4j~q_-
z9o$u7`M;sMyF{2AFChik2u91E5zBWES)m(UJMxKmE2RVqjuumYN0&L~3F4cbf)+!!
zwY=Ep)hqxn0vz?{uRP3jE_mvn&X?v4|3ts=^29<}Aj&_wRxOi^%XJXdw^b#M+DbV;
z#<$02tT68XB91nMH~J95yiYI5%j1VaT!>rY);(|idQ<MyUk{#s<Tu4!2w-dj$4`QA
zF;YRq{6w$_Vyf+*B}k-pB*KG`sW`t!Mm^QP_&u~x&ZSpw2>hcDZ^=&#A7zWVJ#Qn3
zl!wde{(^X^>C?}?5-r(3fGC|*3wX$)q0vaaXXq!6g-Tqi#AFsH^3rVIIw1q^<Pp|$
z&aGSUkY2~5m3xf~&uGLjj-NT?;)%W)0vjQrgOi@aY-A_3Z51xNIP5zYaz3gO7JEkZ
zn*h;<#_7hCUkA@~A#uKh-L7UTELx|?<ER2l@#|f=gkr1wryVW{e)^J*oVYcJxJM}k
zw8`DpBmbD2Y%K<pKQ%e-{-)XE+O^P?p_k&k9L`9(&%l(scpj_rJTAS{Q{(gj{T2^U
zm!EUjuMk${RdTN8Fo?0KM|bp&0%q*CvEzgmvlX$b=-V$QJ^J_WP0tJ*{wrEX6yznG
z(Yu~_3%r7DV6(Whk4|gyh@dmGHjmXr>pCO6IelyOguL!e4|sp>YcdHFm_?(lG=|m2
z;lF>xZ-Q;f4UJzbL16gZSB3Z9vB&K3<jL7Q9$S0w&#p6j2jNFU3E5|+1PcDHpF{;m
zM~565>WQwuS5lE~E*1ESlAla<!}p3x5bEh~WIVJZrwZl$V}%cX>wjPO@T=c<_uWOW
zuJ~yfr7i;#6d28+H%Q^?RhVbJ*c6kJ1SAFasv^KX%xjSMjnhUL^$kt-3%~q(SfS>u
z3?|(z@kwf23<EV(5RC7M-IZ2-+x81=Vsw-MJtuAZj-3b`vDb{U3(l-_&yTRLF<T0{
zmvLcB)x%5HWRjw|O=+TuVRSV(`2@KBk|s`l`K6{0d|*$+9_nR<fH)<1jky>lDFmEF
zitLduacB})B!c=>jF^cPMU0tpsc!_mB){$}#RB_c9^Fgwp%e=2cPd6^p9JJzpey2D
zP@a`d!^4L=QuDb#;4ANPF<gXO3Jf%jQXZ>hL2(SQ(uG9yEi|&uQ`QzT3j&J_o6h;u
zaxw|nTF)qDPQr+J_KSC7hK;O?&y>fNr4j&?#;(7Pf1!Qa!m_~pDU(DA>$3AsFo^5G
zJB}t&=e(>e0=C0te@bSQN#JZ9bzec#LUhmH*3V?>Ud!T3aGg4+j?_sV8A*t5KNoL-
zI$($s!=ZaEoanRR*}y)0+X>dRX6?>n<My5_Ta}x?;<WsF=~+1fY&Q(*-`&@1-*{$_
z2k;d1-<y8=7Rzqk?G@&-z^cp`CVtZ9maa8{S2tQTJNACNrs)gZ9p>+>r0dHb><Y5c
zA9+kl+AJJU?S&Qm1Ak^vM8AGltL@rci)*|%)WEiPRAbW+ub{lTqvY{t>6|+hTT@<Q
zfAr?<&ML33)K<t<-g~3D*W7#lEV<VA`F~MiKL2L;@4pofUYujK&u5$acd>u$Yar;p
z4^;sP#`+U~Uf*H1qt=32^t}7;ws7zeyu`dc(u4O4!q}6&;>(m0IQy&TUnlobX~1ud
z&E+U#()RVTJeYKJ5)tOY*I-J*+gP3)jv?g13*nmPsG52<ZXEvYsfp5mCYKQQtR<=%
z-1{e|Z-(%{J%H}ZIP3Tc%~f%&MDI10#V_cdmyMFAYOZjS2Wq!RG+&1DCO4MjlY5<U
z3cMs2h)46ULocIzOQyN$v&a7J-9NeUr~mOpT#XeyOb#8`jK1oVC`@;`dQ8Jpz<Wj$
z@S)It1%Q;?q8JkribLpV(!Hvf8)XhSf=|k_Gg`+!3*<B-==su6@pt???jb*FzhJf8
zx}LnLcM{o30=qnwo#5=?zF3O$$corbsAL{x!Ia{T`S0S_YAGx<QDe1hgDWn1?T0x2
zP(r)Dv#xZcdOlZru_~tZEZ&tN5!jb%;*m@UC%~xrO8^uo9FlT3VKzMG32A+PkB7cT
zV$hP?GbO%MkDO@4-`Dumz&$)%b$4V1P8b{5_qtS&`UEZNjL;Nm?LsucL_G!bfaa$#
zN4tSlScCC+4GUfoJQHXnS{hx8Y02W+A;v?RB4MXQYavZB68iHcro=NIJ|Do0)8ZFA
zLQ<zJE~;AFo<eY!d#;jOQ?CI5lM}*t7ZBJTBF7`c^{+x)&%?6l75|!hcZGfgl2<I2
zt?#KW9L1Oyu%al16)?CN<Om7R)L+jFvs1R?!d><&t!)VJS!-x$0rsB2yO&f}l3e@z
zd%C4ZauwZm^$iq>I~T!AT5#v}nl<I{WH6e5C=88Qfmj2=`%uw_o0tqFu*3sZ^(h3Y
z=2W3@9xvXjx6f9Z8aQ|bwR~e-`?wl0L2+&33CzgUT;8rbx5-*-%WN9LQ-#Iyoc3zx
z&L=GN<4>jNT^)sJI`=>o%-(&|M!R{KZGE`gT2}@`l6Gspxr~$luD{SYSIJ>3o+Ura
zI^U-Wgay){z4R^i>OD1-{cuStDDPlJmDbPYV*&JqYUN?@LQlT;J;7!v33mRDlqN2D
zaC(&IyytXe4<F9k0O73Qkt^3Wgny2L^6J%8P%`nXqi&uXg(;Unl*j!z-+LM*AMUq|
zwSevMN?M8B+t!Q#&sHid>(O{9V=e2pORw-_nCoQx`o_k;jNt^9qCE~I9Q1xu^BTKm
z_iJz)pJg3(4Rpwle`(~2z-xsQy|!@Tq#uu(+*xZHwKQ95<2p+<vG;L2CI#O@P;xVY
zMn1z=&nlj&)%Sh$m7R#0dxEeOBaqh0xduZzptUXmXHeq%F>K1<&?bQy@0~e!7LPag
z(3PogIED?_=v8$s^G$iCrsgAu|M6X?qv&7mp<MSwPgg2M-Q5*axv4*={9D}D6a!<5
zpiwYwg_#BVnrr4Q7Zj{y&caL?GJ*IEpVYc!{&YCGFvB`_EaCu7ifiH2a;B{qA}@|%
z!@W{U5Ip+|;JE<kW>yW?7(%khht=iaK3jy1f}d_Vk@^#Sq|R20z%H}2dm$d@T)muW
zDp&Zau%hYW2#cZ@pyJXQtBwy-Ksxpw57;?`{o5@#e7{vZ^RQjiR&M(T1G{=XW9tX(
z@hp8)R~g!_u8j52?xC?++i~8x2yCyiD8+JuJp7N6kW?NynyUr9Sm`0<o)k}DGZg>;
zKmbWZK~xG+S*CraVt6AD&x+74#rACfkzYZvSLf$6Ra)Q>4kgMk-)}kUytAvu(i`h(
zmc~zrAdj+0ZPB;_hXb|SjY%o@`C|hdZ^XeF5cm35?j#Pe<6GE+7lfRhccb5b)ctzi
z*we(N?<1uB+O?^NzCo6wMVVLilra-b-S_Et1Qm7dtcjqV(5o14WbBcUqIo^2sk3PN
z6@)Eqb?)*NPuyd#+fr>uM)UTD^BO%)`~Wo<+*=q+uZKsOWmy6%`0Sb+u0<HR7#<BE
zIzmPt39iC5%~MLkHPHf;M-i_2g|bX*kgsj$$ypWJ@BH8m?HJEK!u-U*Ll{Nb!B7Qq
zcr2*ejz)uxDBgsHzCFH8qVY-^*E&n&ER8LXrJ`~^kLwHWDyN>g`GxUVUQuaP%-LlM
zS}oe(U$pA#%oU|o6`$R^ch9SKufp1Yyv292HMp~|M<dW~f&)b;XJFuc+tdv8tvu-1
zXIJ<oauSO#Jd8&yS!B<Xf>#DT2Tb==r^H+0eHF97vR9|<Wn3#czKaJ=LBi3^9imZ1
z$>-#T>JlG(8NMDaH{TAbp!FT~#N0t9kg|ciiYpdY5UaET+~Wp@h<Ca|e#oC6N@y2>
zo9a9I>(~;nr$!E8(9kfkdLXMV4iNF6S(^J7n-1_i;EU@Wqn`ub(*31(1OeqKV9681
zp&k$rMA&p)U0waxBVYZcx75GxQ_rpj!;#c+czA7VI*k4r#-dXU1`C}m8i(;f+ajhz
zR;WZ%<Xk^!gX)|lwJ<>u2|jX(&nrT*263E8jE7+Agmv0n{LUhin-qA)aY?WTlbx%o
z+*Ms#s)D=JV2~Co1+o>!v090(6*6nmuV&JzM^hxKqQG>U$5n+DO8cl;leg+=Ab>|y
z1L0uE@~7DA8(~4X5Z1Cre{HL!TALZI)JyGRpx4zmS{*_=FFJwS1)?j0x2v=UKK~r-
zbVIP9O#O6qZLnH`PUv}6rrHT4t}G^k{20pz4nJoLy#tJXCT8^sTC|dOn4pbazzGIK
z)_J{6$l+YR>{VQxHKASZuHo3+Uw8~#>av6x@eTL)H7RyARoK?HYKWZ18R3r+in8o6
zpo!VxBol~0<=O``62gq21@d>8KrY){XX$MyrAT686vz&u9KWNxo*8lP>(T*TwF%$O
z`RBNCzq@^wesZ(XhmVXGT22mz)<uB0^VYMq8~nEL@B1czk_Z55?BaRxON%&GeDj6R
z-6-SH&}78g#{v=RC4?}YvtE95Hrm;CVBjr0zV(IQe);bb1D|;K^cv$|ff)<kETK8x
zW4Tc*CwQfZ5C_9dwx>rdM2Jr#FbDPUB4U*2|43^c7gGWVjyl!PB#O%3euQksT|Lez
zZtj5E3-GkNrVgA6Ve~|sz(Fx)5%1&}i`kQ>EW&LbOk)m$eq#O4%KFap(ybdTghoh_
z3i(t0ud&LU%-O{iTCCY>ohYE|)Ijuc=8R36&lGD!OuW`ICUi+{cP@So1PK!==H3C#
z{R%BLC;B_8y)b79S@pz~m*k-@WGP59ZY$Wcup$HP(ij#z>BGuQ<)%z+&1Xiw@vAqQ
z{dJE@T*)+Dnw3lDEsjE9#fVO#0Af9~L3i93at(9<K=3U`AtN|=Mk%S6qh4fj>?*jC
z*V@&XCMEM`n&lg5==VIhp~+MCl{~|yBK=(OLJV8-9S2su%l8FuL0Y9aMogJllpM4n
z5N8+<%mIR@;3`FUltEdKDUEi1rgk(}q(#<?FFl>!`^k(|RJ<{&K#MJJM~xAUAu;tB
z4I<n{BjBqP5Z@+jKhGkBsg|ln`&gmEPM#XDb33qjyOzE9`Ya%EwpEweyDx9E8#dP1
zSmj!~=*QoQejnKv1&V`|040HTOnu8Z6<qWs0<i_e3Lt16b*g4wFMkDY%Z~@EASf(v
z;q>X_9SA<ZteP#2r6iXcP?X4^wd<POz#5o*&58We`dP+O?YbR=6xdAk?+TW2PTTmY
zV>Uf-1O+1`2O(ENz7*t28oT<U6a(%W`laQJgtv2d)rSs89k#g~TS^KGuV)DV6=YE_
zuX>uk{WC48+RSAI7pH*Fs}}GANK1HXPT(QKHd^puE@6oeYu1|KzFwbcw)f+KJ#gZv
zor^JG8B~4#@AE5uqM<5nKYm`lo!?ezldb35g>SgU=7=MsZ+l$h9Qq-zm`MB?Pz0b1
z3F?Q3Osa;tr3}SdS;aND_&*)I?QOmzzR!18;t@*sRO;~1J8@^-DurzoYo#kN`lJyo
zHQ(u9o;EF@xSVC~oSvF=UY`;^r3CukX$g;%N5Z_y5)4F7C9s#$Cv}aDR^QY}@H=7-
zp<s8Ow`AkLNQO;LP3_(?+Pjg<Ln>z_6AO0XEvTpFAoU%ByIW(Zdwkfr$}>*|jr3as
z!Z7*No+Js6M3aSwqU$Lwk)xe1ATqc0d>&7t{fAGucQ>x@AeIEq_{a;I3saIElqe+Y
z6a@qYW*iH4Ip)hO3ZY~jz5nX6Z|hb5lt(G5WSJg+@V$K{1(a*4un8p7fId=EAdq+K
zj_<gPKjhC3CA81<9VN1B^xN8oEW|RI7V*VeAmXAwSvCX^tq&G~4#hAfOqlBiUt1BZ
zCAt#>PLSuW?*l!LnS21E?+K}~23RH5O?E{E;Ar+#9G#S@sojcJ<DdGzy5|P7J(@9A
zC8hG##9F0JS*m3vC>&=UwAN!tu>d@jgm{{~twsBO(kgDdxht+=a-IxF4KQsTrS}yX
zJ`Iv-z)Fjh2Ie^gDcx7&Wewz)&q?bGR6#a55VDmU*Z%tnlcN2jH7FgD6@7d0n#ke7
znmV+k3=Wucm8Z%I2?H1($~nqPfL~&hs+cOrg}khXCD(fm<N{jN{IL_3>l*;RcpzZG
zQ!3yRTNoI|w_&ZN5SXnJrcMJ<3=7PGPinvZge4qx3Y-dq1Tj24Y$*nCAd9^olhj_}
zYJF3SyQlS$j>(Yw+Q6V?4;;08KMGn!rFX^AKME9xqNTtDo!+vMHG~aLxS%7#RFt}k
zG8q<v`s%05$ig;I;c`FLmVcjd>27K430K8yDjKWk3)PLQ958u=<u%r@<#KCSy8&DT
zyu>#cJAKNg`w!v0F~a!w+Tj^221@>WzI1mj!A<xXW1e8_ltENZi6^am@a?$$J;<Lg
z#64NPpGQA(N$s&=yKWGDl*U)@2+Jf2p<T8GhmH#Ha9OQ1wo0&?SS0{qtYis{6A$+n
zRcSzit1a)cpS!WodrnIc5|~r0TrW>ycRGosT|+!fX%vSxHf7}v8T$YqSv8@ZZ=o}Q
z{s`9*))x?#BLsGVL}Sz?`aVC)`ZE|e3DKqJZ}$Rt!oayqabEw1|K*mmhHJtE$PV|;
z7%iUmyY)J{4;@sPevQTKp<}$mcy|*oZzdgp<tx`mTn?=AnxMlL#v}qUKSYvoC&e{b
z_4B#G8!mx9|AfX(M#3{zk5WaWhR!7Gs<Q~LbI_D&1g<O$sPIKq7X&rFMB2sdJJx2A
zyg2a}I>s}14_IkVP`-FBuCA@K`o<=!YiO`?gvk=%LnpfYntx_y=eEpG&%Bn`{sC~F
z(GxE>pk~8`r43@4GYi8L4xjW<k15POSSf-!thUUZnuCgys7J!EX@E*tPqT)aeY^NW
z$tndC_XkcBPXT=0va!R;Vd_NZ^W66go98z~``la$PZ82DQZ|VWI0FISNdTdG3GZcT
zao^{BG0}&ZQpv!!pHc8EG_IC@V)7`kA*6jipGti)*s&eW!ONQ}qwLjDS<_A_eVipt
z#cM3!os#b#VEG6%TH}OD1O%wFCftbH+O2HYkJ(kN?RM3nyKLd~Nt+XrfeSA-3HRi-
z+*FaX&hyq;aM_zJx9Ji-%hq465D<v(7EZG!_4H}4KoD}0w7ZQ2sggE4v*781imIQ-
zO!a9VjkpY}^uv5ZgYUeNhGQsDt%dYznf_c)3vBL*<EI>r@y~VFwNq^Z_O)H-S@o8y
z?C8jXbsrzJZSW=QF5PY;2OqMrBM-s9(e)lMu62HR#a{zX;-|~Y8aU#q#Pz~F-c0Pw
zq`q|jG^V5A%@6(AEB@2$b}R?0pQ6<K?x?cuoQVE|`=M@t4_>r@F(r4ZAMeshE<LVk
z`^0?Xq@~w(T6*V=b}3#{!NI$2?&MQ$cNrS`12sUnjs3{3y!1i~uX(%8v&CC>8k!LU
zRSK#?&neavqd=B|&L!Zhx<X?Ej4Q0y;ym*n>zMd=9<M5{#TBwkC(F*8t#A5YW#yGt
z(^yLg3M}3z{Zbm6&}m_vyo<z(<)Hmi{tOQc+1SXKn+u%aD&?GOxpHf0dmPcZ$6%dt
zpK?UQBs(?WdDgV1)lkf`BOW}ylO2=^q*NeD&7&9^%i)Q$3soO|?z4Mt+3<6F&_b?U
zf)XD=I?^{_;8h3OA-+lqALJ1uLTXrzg`GNy)lfh>PeJ^s^dpqFHLiG8fg*5*Hb3y_
z6YjdcuEw4@bkx4`jXT}k@~Yie+h+Lw#=2VOiW2Kau9#s-=qB#f*P=k=U-#H)8ylar
z#>P5pYi9Ex=97TAMB4~T!NF%p-t?95$%3J)i{Q;uf<D~0P@4M93MSq;I-#VbY$j8`
z{UtAzJ#z+BJ^qKJfNv$a=|5z`tE{N1MMG3g2NRiGkxE6(1XKp>JR8){OitMh>m8*j
z%EOSkh=_|!X)#*)j|%1jg!}J`B98zN3#~PE(hfCPZ9_e@K0|ylMz1tzM7?%Ln4FoB
zv0d5Rz$FxPk1K99eq6)(kQxBvA=f_VqA5bF&W3qlArlNNYb;^VTm$2Jfuf%2(6yQl
zHk70hkQu}g!cv45u@pvR6qoF0_a8-Anzc(V+F{iwEy@^#8oXMMHqRQqT3{lgCZv|4
zWFF1B2!ZHl764vAp}#G#FiB%Hsjd)D-*<J;_el;J#kAB`3h$mH_kVC~BI02lt<z9t
zA$@D<n$7!HUI?XD>U$)V>=6X^=T167S#@;Gh>o}`=3(CR;}e#Ku$6AxEa}Qy-1Yo>
zCCXJ-EhPX^bVnpX?!M{|mmv6s!4b<oebBO+l$19ib~-0tVS3iG$Ge?SQ+m;P&Q)HI
z3MIBxr1fkh?Kw-;-o4mXh)SNQ(IA#<tpq^9*a^=fmW~-oYO1$@1J6@s)z-B2a<le}
z?9Kz-cCz=BZQr!suDJ9yHu+qK4Ly4YE~$7wI7~|3_eTh_J^>z9Ba}c89W%`KI17_7
zBnWr<e)8QQy7AiZp$)uw^vqIL=W2AW>UTz`q6{MzhM#@ZVc7SbDA?M%(6+RrXoE|4
zDB*q}J4`G+{d0Eb6Jsm|D7BleZonIqVZ(C~ewREL{dxRe(wY+7O7DJX)b^j4wi_?0
zw=L@{v~%WSQY8B6*@$s0#@O`+&!qVc<jm8t_oJ70?Ed|SdKO<;$rJiW`xF;&Lti*>
z7{Poh#v9S`IEl7PXkc>7pX{|Pv?qP>1zuC0<WXh^6Mhz9!%bOyH?PAY&S-J?uvn^p
zGr80|(8b)q09JM{usfGbR|`E<qMx9Pl9lo>IXMLTGyn`5Wv$11BnkB4Gq3t@_pQHK
zF+SY$@f2gB25*EacJ(MjkaSiSYArEbDTjhK2je-%{5d*2#&)X12t!!0^pC#qxpXB`
ztyb$i0aS7gxZD^Ets1LJ)0!5nEcI4dg_jcZhl8~SsOC`SDhPy?G6|Gbl)ty{^S}O0
zvrn9Kg|E<0I=wI(&8K_$a=WXG5S{)H!5xSO%r#03qV8%Ll(V>~eXfc6@%_yk?o{n8
zg%^=)<l#d{tiS)XwYD_b0L<<;_ugkmpwF+l;cDBybv?{kt<@0oU<k$U>ERJ;XIV#c
zLmi(iwc+V88y+5quPL)OytpdiGeip_0v(13<YK0k)K8)nj%kY-wwRk!h2{#W^e;1y
zICt-SI?OgUZtaKGF&nQyDlNZ0EU#`+JPDVCAF^trxGD^zWER6Ij+eSeSb1}&2aKg#
z7PWWS^rmZIl3D8>-A3f^L*yZ^=7Yr~IQup)-YPm#gytL;<mtAZEOgr8=4szEdJUxs
z9yo<l2vYDPqV<|@lqA?iqa#?eFho?ILm<hjEpz#Cv@@$KNL^I%ovL8I^gUv_MS46B
zrEc=$N_BNYjp`0uwCutq$IJQ=S0IR3Wz#xq-Ep-Y8OhtnKk*NC|3i=4PyWQ~>;r%B
zE7rK}3aq9RHgWtBcr(_w3ZDFT-vf*E%{2RTSL3x^QPBuHOZ*1r>iL;bn<D7)ytb~Q
z?=-@B=Zb7Dbs2T|im%A({<8ey5-ZDOob}qlfYzW8%lGy=j}9quwLPL5=oG3$gU*PT
z>g=+a_VZaLLKg>&(-Tj^XW@<Ngip2M`{S8%2-otJO*XUcGQ2c8QFc!P5531XMK1?f
zt~HF&O!q|JlsHv2BbJ8ddJ9%kjZvzs@`Aa!VO+sh7uQssy#&E4A36Qb`ik=QDum}W
z?&(Zej&GIXP>xTYy=1HA3MyVwYt<}It*vij9vHHLo?ZgG!fy#5T-#OZvJ~T{6q72u
zn(wr>w^=iEj;@0i=zCr!aBt$lcd~ojPMn^xOSd+FgUEEV^FLnJFmxWzA6-`Z%X(Qq
zUHQmt<?K(f%hvmYvXTp(!H^w?j5Xl6l@Arl(+E_=2@?$i9N#Z#d`KSs^4IRLfBDzX
zIr*m%dGP=|z@ekZo$>Q{cfYOcY_oOkYpe=6>RI@RiHT`DfBQze=)7%K2dwUW<Z(N8
z;*_0(r{2xiUuo;twOcv!KpM|mDb|u|Bord12oBd={e*99(bCY+1I>SVx5w7V`hik)
zZFp@}y7ld)G@!N-O}(@s8lVh3F||p`Gl23~+Gkn!JA%99=-`k|!RRsSfWQB&CwGav
ztO$~SKPkm&xVfmtRk^XX(HfY5t21b1)uEa=A+kuQHaIY6BNGd@uC2;h-{<GbKREVp
zzx<ZEpZ>eiq&_QoEGdMi3Ss^cI?hKvWF0SDKWm*?-+(($P{}A{^X3R9MAmB&5#Lm`
zRK5gp(tRe1N|?AF2GG6tK7gfV&YDqFJah1f{r5NSfOu!^=2u>W(6o;GxVPY%eFWqh
zpBT4uH*YX$l@uK26hh{}(5Q9c8oFiEdTW9?)LM?5`bo?O@MFq!(~=ku&F8L89MvNQ
zm^ad~>3r>n+gQ}w!$n8OKrRR_Wu&ik+Ds*|44~-A9zJe4tn6-`STfmDKUZB%o&p}s
zfGloWQ(m%pJxoD@Nj&o)<|J;Qa7N_-j}lzjnJIl^;>Yg7H9dYsL=lC6>X1hxr^!G}
zhbCPS2$vv`n#{$p<zW=_M~+*70HQU%WX7lW?4-e(=5*`i@H=E3aLf_{QKmv`>7-zz
zPBCnx$)BGYqxxc0lvkvPHqsus`&F&oVolpGvwh&?$3FHq_V_dV>?hy!8oO%OA6xDE
z3y7#WV8aLQq1<>ZQ?9Ih4vgTLn2?&<4&1+FK}b8T@BG}DO;4cVoMFiWk&K-j6%@9o
zquHDI_)-2=HGS(ZE~uIvi{3ju7nORIhK6up6Ij3p#!|Mf1=rznDLoS8pn6<C``nEE
z?kA7f>#l0Fn{L8c0A=NiP6Va={N6$Pr@cM)FLgU?%eHE8ZE1LE>$q~9PK2%+j*B){
z&c|n>%DSo258!6^ORKiF9Zn*L!o~%BQ>7Leh9a2Icqd$mf$BSLAxu<B7uF4~&q!|Q
z=siD%+&fs8M2j4wm*A&fDk|Q&xudbjGw~LnX8}T%k}t)bp7A5$HaCdS0-a2w2-Vs$
z4dF8~t>Ojf6ZC#@{)#mnYp;^xxg1*Wm{!J~-0)<zbW5Ls1iD*-m%(rqP*mgjQ{Obq
z9=^RWZo|%ktnv2zq<hI6Bg-)YIM#tigwIyyf@-WxP9PRSNoZ4r!1Hl}i5>2lv38cn
zw5_SM@`Z{^=4a>M%HzKTUPV3d{4c(gJGHgvPmJ{+d?ypq?}6wy%cA0#(FXdes(h|c
zSu(&tWZ4;N7%G!6Ny#@orSey5c^SKhJhT6>ee$0^XFWZAwiQcfH?H50J@Kq_eeCWX
zw2d3qIw8FScpN>^W5>JuY&}feuJg~ajq5wzT>HqA`>h2l%d4)x!gij!)ynbWDuuyI
zmokrw5suT+88^Tx2YrXuQF)lnpQu@T4idyFq*T>fE7N@Am0nW#yX9mEOzLN^@QCXn
z>}Sr*4Kg+nY*K62TC{<P-?*p;&)m)ug~#awTIPh)|7oa@58Mq~&b46MRaQ{II|Ttu
zXaknQ0ty1T<|o3stA&cyK%~9}c$a7%&p7dsX|yz}oN9tJfD7?P^Gm-<O3JOGvN^6F
zm5H%mo)>e>S2?#%KOSceBWVl@i1LPZD`m++Fw%?A9a<f{SUm!Of*6)o)mVmkbewJX
z(3Yt2?#~yk<tkWQ>${jI+ZhH@$T2PhaE@*B(iIsS89a=_4kH~(Q4)+~?qY_+S66au
z>O(J-g3`)bS*|^{(+-qFdAukJQsheUr@l`phC2tcMBNS;KOu@RYwp5b{*44>Wa;6d
z``DJSSa5%#FUI%8pNMzqL=lWPhg+kbd`mnZytQ!NO_%~N0P=A5?+3(s$m6M5Ld+=D
zKU*QjeD%}T;r{b8)ipm=jgrvS6}oTC^}}Ox1e=|-i?-CGZxDXbUYc-}ZStn!3oh8$
zXl*DOGt3#?&mFg6yjT2OiDHx7UU?g16g;2!xe~mf<p$s0)oFEjfJ*#0baIS&CbUiK
zn0w?eOJx5n#)dE7-|J!-?c7ic{--grlwu@I{T9~tpWm>8*7jh-1{tEilpj8Pz$(h$
zk?LsZLd(98FHhZ92+E#=Df;;^AG{+OagtS>agi45o=Y@aqpA$qX8@k#bD#f;J@)vs
zz=~}cQF>>XYv22e@3jV&1>E`{pR;@Kf7A{(H{*q$VyOySYvU=~hm3mZmDk&v&6{oT
zwukNR`yRCuEWJCy{LsXby_;{|ZM!Z<U&Yv#Y?|<iir}iG?<e)qk-HmbSvt*WFMlsv
zaundjmNs(hduwxL6~9)Au%k5?_;P?$FdMjaj*QP*OFb514I+});uB;XtzsAJ5#^R~
z>O?ohM??<|wPWgwxhK8n-(@s{j9B>48rL_pSlfnn2wH>9^PaXQOL0u5Z&|eO-#26j
z5GdYt(*|49lCjd6^4$}a+1D{<|BdV(i(Rc&<|os-X>fA*(9b~A{{XCcOVHksk(*;w
zQ$B#k@v$f!u0;;I(5-i;3LfEnU0g@U2&d+=vlBfZ*thmRV1NC|&yp!}LVG{1*|;rY
zm8r2?zj8Y=X9m{|JPsg&y?rP|W@fCdrO~bisWxt0Z{PgRU3Lf!QU}_ki_Y8Pn3T(}
zxY#yt+v>ESV%CIM`hJ3J$<fygauNj1ZS(U54XXIw>K%ZE21fQ|4=5&L9plFHY5?#A
zYb;W^?o$MWgDGWQtP>Kx*DD}}ydRvaCBBu?a(}NRZL-|q^CFN?yu>~81&bE$Q`dZN
zACnVHH@0q~*f`?$_xivJ-Y?6ZVtkk57wm^Xd3hb0Rw4*%+{O*ic+J6N4GrwW1&cL@
znkZZX8(15f&a@)5Z-q^Osi>N@E3dc^0$63cuf5DISJC?t>PPn7?TEiGI39EihzeZ&
zY8yA8{iI(Uo`ZKx7?qWcObU3D;QBo|eiEkA@oIPmM7#Fv+4E`sgpRA0Qgh8WP0cRU
zB;!IK7Eu;|o@Kx~w`&HmTerl(ar^+5T=6c|>~ma2L|`$xj@e3pt3o{Jbw<)f5#~^M
z6+G%1)|6GrHBIF+fhH*pG+OIZ{Nb*3n)`f0Z;STL&W0r{b$Rvnp*~p)RzW!_CX#Q%
ze5-~DomX9#T9lm8PWo75vM?}YK?g!X0terKq#<76>mHH;+9!cX`(jgo&%?D--o{01
z#wf_UhCNsv@Ku4ul)yKs2M;(cAUNdv2CZb%dW82flb!2qrGx+ddzq%v`487OH#+61
z4_Jm^LzNyoggb3#9YMyWo>70N*qeUJ`U&o}i8vF@>pHNO*I4iI<2C?|$->CVU7nta
z|EXtu+azEp20}Hif^D7c*1UEN%zwG{_D|XryE<&`K)3?V>QjOGZnjQ(X#cRi<=Reb
zBNBE9gNx<=mfkP^>gQH+Z98}*g0pveaNmJKI(%<xZQXfnual3e%1>Z>yq#5rSB1I4
z|4km0X|Adc|2%T|Yc*NVN*Rn(xRHMIn|IomzVaPsF_Cp$3g7FlyT-1*_B#98*S>BK
zKJu8=v%5eg0{#r{wDTAjo_Y3wt?k@k7p~o8Q_r5X2OoQyxj4YBe%S6@`>0*I>q5I8
zD}5zOq8#M`GQR2YOiWu+H*UMcz4Cl%?gB3Eh;Oazp}eXzf<bplovLMIV+g}2%bcg*
zBFg(ZtLk$1jK~wTbud10@maG8Pl5{P`4^ph0#r&~N{-KOg4<RPT5cOI!XK~83+(C;
zF|v-k1~&AG6WH}>S0*QmMS{Cn7c~F^gykTt7HC&Br3)pc_$NA=mMX#8UEOB&&0Ef(
zajKAL)7bEHD7cP8la`dLZnndfJxyf(9OH4@rY`%1pLvV*o*J~*VqmFIFjjd?Rw1Ot
z%%6M54L$)P!Z6iFkj*wa1$a@G`p1JRz$>Q7rpEgbJ}_iB$N;a%E_mpJmm_sO^s>iC
zaG&@-KVf-giM*~f0whEiglh;!o<}>gZ(T8}H0_p9kI4u=3J+3()P*}=>mEmkP-JA2
z<&5su3;*z5*s|5a&AVW0@G6y}N6Ep_pK7;~CFKww*0%-X_~_<uU85jIOQpN3o`OPn
z9qY*3yaI;4mMb`l(*fdO-TBObty`0^HEYl#F?LV(P1_glJ!!j$6C@92N7E5DH_8i%
zJ{V%@i)5uG7yw@(4)njOvdUVpuD3D&mNE}O3~;s2F`vxX6Gz7E-Sr#Unz7U-C$sjQ
zC;DxOC67OGU6)nWN|%AxQh6G2CVflPI{fS0SWy{(c|g6gpP=3!7#wUVZ=SEoTl10Z
z#9-%o8rSOBf8~gir@#IJEOaRm5$?V35$o>hMgA{yOXCKiKW%Mm?G0~yqcsD&JHB(9
z9Xzn#DRJj8vWOqm49cuy+t0hec3yO`wSVQCZXAw{PucDFJYoZb18iBiVB62#j^Q{1
zI%^E7LiAmNMO?<i+szMLu7^H?tY=YZpGu{7)@Q0-CzlR4OKE)$T89ZDq(6Fi#9n=A
zoAa;}1ar8FKe(Sg6w&1F+*D_^xMfr*QsJ?aY~6DTh67+ZO>Q#v2>@c+#2{mx6T+=+
zu{G<u7@t*WLUMM1Ju%g_7oS6PV%D0<hh%hc)(Pxu8p`<=gakmQ#Bh|9{BGY@--~<S
zr&nCl9V6U<!NCK+T2hw!QmUhI3-07IYzy-&H9Cb%_`9_1LiMc>EI~lEycqc;)M#Df
zA>25=_3b-Byi*`qBMiksG(`3GYrpa9w*8!Q?Bjp_7xvx9pJ0vNgj;r?Xz(ig>3xUo
zt+%|>c3yS0J@CXK>%IGatnDLq&qLp}3AR9c{~!FO{mSM|R*iRr7>@+<Zf+I$NeR;F
z94k%pR84Lpr~7ohdg%!Lh~N$3aKUpR%E`D;9sGIm9d1f+A0r6L#H1J6l~HX{wzzF>
z9kpDhqy%uU(<`VN!y;x!MBfp;<UNjg%5}kf#N?{n#gu%Y=q|V9vL7NOq_%BZmVfcZ
z)jMIp2zn*yO3PHYIws#S1*$>Z#uToNl~pYS>mVwA4)<GGYe>@Kme$}N+SJLI46U80
z;O}_bkJ+hf2JBTgUPW|$Vph;MX)Nfp8d#zQ7qA`u6)q8HqINBAMZPb!*QFi{zT)Z9
z)G1wx;O-O!p7at$bnDIOdz$x{;nuKvX*Qevh3UD#Y2GDzixz1tK=-X715JS$o1Yi+
zr4g$!42=qNwz;Fi{;xN6SPSm)CIgdz>WI0^w(Q4^elo@QG8fsk7t~lC4*8v|*UgVt
zX{okL@^&aoFW8#;dAnqDhylJ}+KfV|n`V;9l!vyaHVD_$hwFJ^6@+%Ri!V8vttz?;
zosiTXUF%N?EKpyI`HZ)0asGY@T;l8+j{~Q=p?T$QdDZ0PgbkhUb6dn!;l3@;pbA_E
ztK?nfzM-<g9ju7VxXHw*JMOu!QS$5WIYeWEEuhpC@Pv2z{Mkws+0m}j>iWy&?d0GC
zvnG5gWFx!diPLy<U>V84++(p?K)C+OgFWCN_|XU)U|P!wq_lo3j4O&aDZ#ZR<rx-t
z8Yl>q;z3l`++^(t>@`}ytT9IWr&&t%)rb4+O{ulEv7?rI1$%Jch<*3DG23-Pvz@~>
zR?3%xk;Kw+2}`W5;N|~XX?RsNpW6pr_|VYMLAX^dxz5iI4lZEVPTfe0M5x`|sm}At
zKaJ4%9!Je#vTp7_c$m5IY3Bx6!4`4j#8=SLz3X@1XzzZ{d+g}pBlh3}4*>dzIZ;bI
z6x^}IrisC@ann}2^7@;syMF|?%3Dz;j@!eJ@3a5<+PCehCl6ZJ#*Ma?HL<xV@J~qO
z@R<{LPF)0elBW<H^5JV})1B}Kp1AqPEAtBz4^mJUzD}DW@I68q8+bq4#X6qxan&Dz
zS!2Qh7YnkY%7>Tym>Xk-?q_@(_56jB7*}XnxE9y;uAT0DG27xh;GKkW?>@p~9_X21
zl^l~3__jF_+_RFTFeNx6^I)cWjc@-ldZh|iAzV*R^ngE_`#e7&`r~L&349fNDYJyN
zVBM@kP-<$bv%$ep+?-KJ@LYgiqE>!BkkP<-p-IunKL-xMz~K`=F`l_gKMM5p+$dGn
z&T-X+_DC*3jz<93p!06$5Clv&uO<ENE30~v;*Qqj6(_|W!Y#(a3vPzqpj17K;O_P*
zk4I0EF*!o>gHpngtUJ%|$Bz84IFAZG$()+xPrkqWNL^fCK|d9cZMD<0x4t!#DobDP
z44x=~3=d&Lwt*=}z~q$m<o7;v+Fo6@1`oe^`^F=Eu8J3LVjaG#JMS>A<)O6!qfidd
zTX|lIr_y|?qj0Q-_1Ya9)>#wrBBb1okkz0=(6y9pW`~Q%4vyNFA2?-O)@JNE6vO)v
z;%~;1e?IFu?F5WQJ<c3eDXLjw)$=h!xC+3EUCD9DhN(Gy=)y2s_%ABHNn=5yMM-p4
z^gfvfgkCzAJgIf)_dfV2iijDSO}l|d9dqU^!ue-E`&nlc?dj<uShaXk4K1*NzY^%D
zWTL<OyT7&d>o?f__upqVEd7?@xEemSBxtqAvD}YS{#ukEQUt3Gs*9@+WeIa#9d+Lo
zZmk%Z|ByNDk*20?y}I>sBzow@CE6AAf5CQWKS|H|P%YIO=0e*;J$_`wE<`wQUxUjF
zmiH%)4%=;y_1o*O#LA*i&`7zLZ3NN8WQgI&VzuFPF$s7CxMS@`qjeyxH>^Q8mp}#4
z7Z12Vw9b3j3$(o{1EZV9MKo)lzw0EfYbEx|%h%#s#2}=MH0$AT`?|n#8A%f>F0>~N
zXl~v<$@!OP2jc^0J|eb_4j#G^-RbL+j#b{}NSAcJ8+1H>2qF9A$zImnRXc`5^r(_`
z8k@Ilwhb^2TK}lISOIkk3@W7@L{OTg4Mc73M7y>IcgPZ+X`SR6f-7h`c;bm?tQ&X0
zofqsNznEUvGt`H|ijwN%QiSB3&A*9util@hq6*k%E=D}&iwSX-@T5}8r*mI-f9?m2
zTZfL2fQroHCb-}d*+uXc7`THy$FUT{n1WCvxDJl7rmnqny~9ZbPONKa1g@+xQsO;V
z0(dHmf*+K=Oiw_SMc45}pcnX)Mznwh$Gt7YJ&Q>-({dDP>&uB0EDM}VMIh9@3f75D
zj3WeS?WW$*FK{oB%OzI!8JK-pEH!3J8DI0P`5!@<QO3llAc-m!wMkJ+{lHF@3YJCp
zlT(gPLFf8*={0b@b0J?40<5agP6M`1%|>{%3NT7)e_)$Bh$7#DTYR?C#wO}$KS8W`
znl8y&6>IX>t%>Y6-Yu;-b152YN6!!foOMeWvxtL2Cdy>oIbn@5va?xx-7A{xbvL!!
zcwem@@6nclemu+KURg0?4Rxb-PABeNWhpy)iXdSNSYFD_)<W4jo1==-vhZ?>dYr!%
zPD#i8PoGKPM?MiQ5fgVy9bWXVZu7jqr`s}EJ*z6KS*v%_dKsVd1dpq$YeJBkWV<(l
z=EOp~@Y0nDeCYs`B#iYqsc82Z_bdGMSMD7>!!2H&qduK+6gYWv^^Oq{gZr%PTIYqv
zfYI9GKms6wyVh=}A?gpI=x!lOdIikY?T-)GbN$oy6Ij3N6@7_`BSNrBq2%b=wBFH~
z9xTbwX9r8S42I^EW7%tM@36M@T`U*F-JH4C13$2hFl;rIgSPjnK^vLQGKaz>K6%=<
zvR&Ct>@izDOkV7cVGVB6%pF*-A(pF?zz2~L&7rI*KU`BD<^K`o&rgVi##HNhbEmpl
z44bS@bGSG@`P6<pLi`i0$rN155!{7md+)r<PUFJ+-NzoYTD;X13r5p~lAhNRobRh&
z|C)^=s6YPLcOAVigI|&IqoZ{V>*M?F@R4J74es(uU6Oe_ncLlc>f?^8li6>L4(|JJ
z>TxgM5Q?r`3d^WYGNbD=;1plfNLWldU95#JR8!sH=;#zwzrdKPZ^bh51`B2gC^mGA
z=bn~xa%RHX9M-I{u;V-|rznP;o3qNJY*!xd=`(VfR!Y8IeAII#@<%MiLXvZrtNufs
zG*6ac!A&8QCUnEqKW>uh=(fh<rf-6N^~XAQpfAB-8tZzVDDge)gfWjNOf}0rMlr6m
zwzXOf9pZ~pqvI0%fuiFt`V9VY3>yc^IDY~cvUSZD(rdWhpWIu$BRsiiyTc#)R&+JR
zQ3EP&&m!E4D&;NUOStCpvz)?q-V7Zav#9rJ-cJfBdXZBpYQx4()@UNMOKDJyYs%_)
zSg^fVpg6M#kCx&mRY`>Qpp5lxtDNe?hV5nP@*7K_?>5d@dz^N&EGg)!wD#@QcJ0nq
zd-z#AXW_S|QQFSKbG`GG+RX@@l&7Z~i@*@0s08<}&Fhhi6h92zjn>7J>hMZlzjdS4
zptN=Hl)$d{1X@UJTVuJs`RY#l#-pd~KD?Ag$KJ8I#Wwe&NO^|X6I3nSg;0B8BcLv|
za`o*hr_sLs>%*vUD;3_PuhZg1Az4)s%~ev}mGnG~Y<dzy=h0)`zy#XFys9`5a*dyZ
zAOFw)_)n*hu18=mV_uLPT1#vb83z<AOk?o>`{I{e;d-vM?LH;|Bn&tV;3cjxF1x&7
zne;~Tecg7DitDC2k#ARNzVN4%{ch%fC9Rd7{gBCXh%e&hu`m5>Edt;xOPItQ(>cxL
zj&QEX$rV@vGOU64&UXjw=1Z}jur}jsj}WY?tJ*H!#QxPl)(HzR4_a5!xk-q&0F%c0
zNC4&5zv{@u+q|a9x)4q)nM574fp8#Dq|y9eu%X`eogBwq<b-X*g>T<UT>U2I?Uqa0
zt$h}VY3reCA~2$|Vqk!LGcUS*F9HNFI*TS~QZPQa?=6Ii`<z2K-gce1tP~+#@?4gJ
zF$AF}pE_WJ1jkXJIk|=kv8IU)@X?R{If8k)oqX=NTbm(-Qj~tV%qWV!@_um72U&aG
zY5Sku2XilXGw!4GP{4(QM~_<{ZuS?$@D@;}>AfT+!%}r|1HwHDDzPZOe{xX1&vs9e
zcjb>q7^_|rCaia~<^?~xRDbta?cq<>U$;+VJb3g>7L^>tYpA~ucR*Upv%!AF0vKVN
zBO=%$2+XoJO9MQDDOLn$4MLTtXuE==dP=uc>{6Zl9ddEk*Veh)#1;e4dP%ZyIadEi
zU{N$$DTU5xfU3eXwMAOWqy-5}B0?{`n1N88!uqtp_?p2KEGFdOA=Xq8V5p5HI~_3l
zJ}I}ya*b=HMK{7FfcZMOr~ZrXH2xu5GqCUC^1kBxD}CNt8<q@DDS#$+f2`^1{-)}{
zF4=^_16ndMA<M6#PW$Rhc%Pn;QjPuWBRo8?usD7J#xul9ti6)OK)5x2Kvw&SlL?np
z6hK6~m4Zp*FPhCU=Ic=i;I7QSkgX_^G&@&;VgyTneV%w7^G<m%i_k7*hsZE<cpWQd
z-c0^aCGV`<5r7Dh7Q1ZmB>v>`YqH8SML~9);x!otDgz(_V7Zv>yz*KH7tJYaI@j5S
zC9iar7l;-}2|m$CX|)r4l2{iqwo+)pbGTb7kKiUM;ZaQW@YkxCo(0g+6#KSo{ktM)
zR|bjZDz5q}9S)XlsB8%4f5BOJ<`LNUQ~!f7TN&VVVZGga*;@O?Lw#6R(9Y19;{((7
zV^?<A&W&hjoLRxQRP$mA#o}7lU(bO6LkN@-JT+d+q4OOZx~#3MgLi-hG>?<`PeG1C
zd;9h4>??fd?k5Lr7Wm$POa8Uf#9;Xb0td`sY6qTlmo>4o0g<eU#j@HdI()cnBA5FV
zAoz)dqPTfd9ZY&5hOHcit(VvZ2M@`8nP}Av5HW1pPD!|P*WSJMjjw$Ts|!2Nh{nhB
zs-DeYm9B;XzVDv<?9SWwg05*N*h^qnK9wb_{3yY;oHbjOpe_m1=H^Upsg4c_Ie02a
z?kN2HM9;o+xrG*b<&vfu;ehLEt)r==jpd9zB6+(M!)~bt+z`!o)<!*4<w-gfpN6Zu
zUHED&2wx<I1^QDb?6@3@KU!cHHgCl8xq<h@r}45Ao{}s;0V7>VED7x<;Q-`572~6$
z1Ka?YopDCWxZJAgh>}V!9_4kH!%bUT1}YGo>qXU9iKF0~Q{XfQB+(uJ5K6{F&SP8}
zVhw**ihIb66i6Ajl@|($Eb+8lVKH{Nb5FMxW~UH3Fs?YGn0v7JO`Ql&{nz}6fLpE%
z!~9tR78_$(L3CH^>k$+~6s`rLpck@=;=WY(<kZ!lzSVZP9zTk34LToHAtPMyDm)ZN
z(bjbX%cVEn8H)XYAbr7_%><=n`%a82DswrmDF|c0ybw)-^D09COYm0L5Dq;@SdYKK
z>Vj2HVUXUGDi2#j4VS|x#SSqCpg6@Z*UAyhZ)6T=MS=Rz!C~8goBVa>H?uAqC56_#
zFDBst3BJCTb?R-MYwhF_;u689HE_KF`6<KNZ8wL4HzEoicc57Gm+*F7d&YjQX%kz!
zWswt7R(bab0sK%NpkQM;lGy=ZxTS^|4W%{}jun60eR?H-qUh1|<e<F=oZq7Fh~CF7
zcE{zFaq|KFn}SC_fiZY^1UgL{X^BGv$wk`kvk_rk<47^sWWej_?6TcA?6zaakJ-I<
z-Q@&%1t^tFr8(LO?35(bDWU8f1}n)0BC|<K>XOtixnF!l9=UO0;DF|Ur;G3Zu;+}r
z7nc^IvUO$UrLPKQ;TXa-g^0;^3L&|(${H`IwbxzNP9TGB``n!;um-Va4vqfXU=Ccw
zWr&y4^oY0tkQ71eI<W%GBLIvM*;FvlI>zR;Z6Mr6*3m-b<=RzTHGo~k+R<BXSa09@
z?kOj*H`cK~=sMhY9|!pda1jCd!i!)y&=93qV_KS%=JxEQh5jRKix+-QjqqfaBj*Xj
zksS3bd0r9+QBVLKX^Lb~cSr_obbJoiz6B=K29VFWM1nmHC^vEl0Mo475TYGBa?JKU
z^Q^NR$jYGi^d~o$aa_kG{3lpfT!%&E6VNrn`O`iAs6_ag{{AN~UbAK=3zt?SZRY#%
zIF1X_pi!lkr!((~K@&3{z+^h%bkTxKJ|<KR+)9GMTzK^jjww+C+c!ZISd*nF^Z<!-
zdV+zeye<h207?77Yg;&N>n5hngUC;!zHUWA0(~MTC2U2@sT36$C}%fm-`9otF&Od&
zn0730u7j8Aq&1my3sW(X5;n$(hUQ^3QcSFJH5xe09`(Q`1)g>jKcJO1HsFR;pnU&U
zf<^v)rbq%Qj-f!qdLfIu;He)Sfs+LKf`nLX^Z-^5Igf}|6QZ$O-L$Das_I~0_U=JE
zGKkLJz|zWfYjCH|SK$&>ht<T>k|lyoRQGxI;bmXZOqIHr`hy$ldlrgWIF0+HT#~W)
zxlu&S4+_JI1ukJxjmBY6poKCnE@Y*glfdo(<l)0xLdp4sGGbXsIWS}6)1hhq_<>RH
z(%MohgtguLtwQqsrg7ln4~TeZAbgMH=oZ1>QpDNtl%yzQ5o2GFo1>B%3p^lv{@UO4
z=LyhN1->gqKnZKKa|C^K@A2G^Lo#^eim$1n@Rg-S=`K7;Wo?h-*D8&`>Zf{}uY?Y>
z)f@QUjS%xRI4}moHcH=Pc{%^pZPvsVY<IA}P&<J9?5j4|hP9rtbnSKk_v1vcsz5ok
z7WemA)|5_7;*Eh-PYUtY&Q2P~Safu(h+z|s0^%B6G2ecD7m6aR2Dm^rJOkr+jIH_*
z;1vijItKIB$r7LQ5F!+?W)%~76HE{6yN1DZi#{tfi(BlD%PXVj0*khH8yp;V!RN$m
z$?ohD=MuKG4pH7}62K*hOUZrx^*6Zn?04P4?iavQ?vOGjNYIzUP5D%c=Gq*LtlTG;
zr=&hf9hX1nx|P*OY@ZhqUq_PN%A{Zn{s-4>0+TSGEf8A@#f}tv@pyRNSE)$=9~MBr
zW&d#%Q)81F5*#$_x`1i;l;znS#O5b~8Ei1H)Xb-?XQK+DaJOx>0#^3G8CQ7Um7&5t
z{IxfIs-=~{k$8k?eDiLg{o57HO<4qEgt;g?4Xz1_-v^RBU8y7-k+429MeGYjac6IF
zd9FBsxTer<_}J+Q6kCpbsOP;RUv;7xRtg|@Z0@qu_VwfiN;E}r1LV9V`aY#Vwj|Aq
zf})Z~36_}R<)&qNl>}{d^fiGW@6XPS!j`ZeJP|<k9`8p5EzDm1B%BDVTTlpLC1(Cs
zfJot*TN33uby=NgOQ`ME@M2ty9~6UDIRla8w#^o9zt#$mf8B!FVaA;2v-Dg+t%KT5
zwtU<Ik1ww_DNabPj3r!CABJnzxB#V*<`D_|cs&59#k?UhLm=e|=45E9I&oD~J}hKX
znum~`q5~*w5!l^UYj|8ai~E(0wgW@wj*aMJ)ZfA*tnF$lt&8ibYWru(Q^BrU{j+^G
zJdv|&x3^iQfp>+Y4uAD#+<bQyUx8O;C~(VIcIAj{KQ!NE1)fqIjq*OjHDnGyy7y`E
zV@$TIlSW7D+fvcOyU+NV>uajYO+jJt=!cQ_wxR)2tSSJy+9KnflE$Kv-`bRs!(h#E
zPl9|6N?dtmNq$g1Ej2EM{wD&v-qYLqp76^Zb(5qi#?3$e(q+{1B)Q&ld7|d|z|erM
zvd~VGTX2=g7}h8!us@A91Lm_ZDc}Ccw%puizfe<Z4;~n{b<I_T%EwZQ@E+5qxE(Rl
z;euO%Ak+fmH373RgBG@nh^`y9Z6a6>gEB@^bq~`6$QpMM(5u9<|E3$(dxRE~`>)4g
zfEl1LA0g`kqwf+}Wjzr$+odT@7sD{F!^$6IDVPj%zo#!Hof@}%5#i3Lg|LFom9@8r
zNVg*dS#pG%o7@J5${@EFFUyFzk~T;d_&2@vt=8M!W8ePf*ZCNxH|_;>+P=jjp?jZq
z72s|j#=}L0Pj0$WJwhh+i*GGIY%UKfujb~rmp@pU>mw8k{?Pi6t$qq@$MAg<Z52C|
zV&CDALFijl^hPWsXwr@3jiDr%IwmZ>_BZ(jID(G{ITH$=4D6DSBDO$*^^xv92JZ_B
z391JKFGVbdGywp88Tn(b=(G4EVl+29%6`v%taaMph>xpI+|E1`@8kr`8H}1w!Ul#8
z_&7f{U{%A%Z43L)?qF$)CPIai2v`%!G~*_e*^y!Q+Hz(@*89ncUdQxiV1iOE(2xgV
z0T<|*8Es)T3jIiQhn`8MpCAIOn~wHc14eIxbOpGghgOrxv&M|TL(>(D0{aWqD2iRu
zgcr^=k8LnDV`$|fAYw-vm>SMA(8?e}U~rZR)@Wl5Q2YdkYsq*df6=L*c*vj6r)+pK
zusfd&>|hTH6m<_7%OG#8X-|OnLe+a2??tn6?N4_i7$79(*b>V#LrIO7J|zKD`}3Bd
zgbj&h!VKtOqVb@4R6~zne-WR$2ku-ClQQFDlHWZCN0?Yc##ae@Pv?&J_ySd~d((da
z%yi`k+DeX{HbTa)lqz^QJZX6}DrX^ux!EvX&Dz9S;IR)y&k)Qi%N{h;qN4=s0%6)(
zD(t6UvCeY@5(;Ad!kG*kl^5Rezk>C83#IjTbacjc;HB2edOM9#&#(zmJTx5$-4#F3
zv=Z>Ki8wG;0s4%hJfKc)*A2iIXpV=8RHWz8L){{%tC;Rg6~Z-t<T^9?s?dN20H($H
zQ!QJZTU}SPOpkSpQeGtTx?WQf{gdD=hD>v$=0@RL6KnnFVD2?;-F9RgEAdp2Vlsi3
zj-qQ0C55~s_iY`yOzNQf#pe$4@pER7pJ5;H|0D|oeq|E0HdPquL;3Ou5wuUJ(Fo-%
z11Lv`DU$+OxJ1875Kw|K4I9}>gtgaBkc!*p03A18%x$#wDhsiG7P_BgImNt9vP4nd
zvem@%$TV$55bFdGl<kCe!ACE1^n={NHsBkAd;WAkF2Ms93_fGQ_;K>7KFZ6SGIW6j
z=iP+jVJ$b$Qi4xdAh_B1=t&s-3XCSuX;(k>Z4TwwFdkPYA$!ntcb~SZ$x3)w%?zHf
z@&2P$(X!sdl-tVZ_znWK%?uocuZ!cpxR?Bo=7%gwi_xLOR;bIy>)Yj`PYepY9Hy8<
zvl2AHPin%SKSJZ;&MYcy1x|%ZzF$>1%7+J189VWmi~L>~!*h`g5%XTEVH?}Ab&v;q
zNaSJKAF#YhbAhw8yE%{Nt{of_JdxpK(=H1Jp0l~b4>68sjgaC5RmXcMT(Hc#Rx2km
zzwn4vr@W{nSm;|Z$}knC2zo8WQl2eAt#?1d@dFmji$95B_6%;&t>@s9|6`Ub@2m7}
zQ&~$%UAA=f@}A9%j+M3&P?SA#q4$7Q3VeM6V&dXY2p&>yQHg}06w`hv89h+c?KJ;D
z@2vg%Q+ewdE?A~L&mQE&XMjl%-kp(`&v<!C@AD_{>Feq%*0AG4&Mj~;U|y=CKJ(Dh
zar(frAG`g3-}uX~c;6kpdSj(in9ssA7@h4?(ppztZY9U%&o$>~*pjUjqmqWDoYQoo
zbDcWjJ;paJ>pXe#g#G3J`8Xafc#9*ryXWLvG}`&s`K1hjNrjMfcpmL{PyCOoFa0M4
zxO$)@DwJpQg>6MyUef7{X8721v@`@5)&paId=?@FQh;z0lx^7aKy|or+<YY#4MCMH
z1O!AOjezEp9?&GUo(3(j)5fzSWoU?qkiM<S?^n1;{FAQoKw2zAgBIn#Lq-Mhk=qEw
zR+0ZS00Qlk%z40eYsa7d?&|x$(8B4OR2?GCyW&RsAr@m!3;_oswNMkijvm3Z=Q>f)
zQCg(vbmdLRlgg5?uCeTjau@_cpe>SS$iY<aaNiM8y+ERPmmFEsi^YlSqz;SqN?stJ
z>Y$JDtbpeJ4IuS*n1qUQ6c_e#pYv4&;55NB7LJ@?k4>yWs?YL7d!6N^rpijzwIj6S
z9`&*b3E-7F2wW<`<+Ol{WRB$pt`__V5YCMr2syaZ7bQfmPj6fgSL0m93qdY;c=cd*
zCUDxLxo|pOBdEYRV`DuquS6=(unv*BssVY{FiwnhBZu|VRy4YTv2crn^3Gvd7$UlB
zgt;iQ?tEvt6h<)8cpWQ|>Zv9G06+jqL_t*X#HfuNyr0Z3#Eb}1dCEVILSTU%Cx~E;
z6(ft4WeO$1^d#Sum3|pBB3xYU^w^O+0=oYy?4>>VTwvFqkBdC&g9If1W1YkhGXWCf
z!zKzisL+rFyom&bIo27=U8@qe=t`6Vi%CeNzc>}0x;rU`+Z^=nNOxq1dx;A|Kqsj(
zmGUS**`m&!uk;V!9MHH*Ar!j(+MhXO1@^c;qw=m^P-Z-Y(l90^TQ+*w6-hITwRJ${
zbpc0758QctLx<#^dx;zIBWD4{0#LGJo1=BPQ>Pj8SXERG$?Xv=I1$Dy&EBi2cIJNx
z7LHcr_gce3qMh<DtkUmu#|KJwu4R6lra=<io%SXEICGav3GKo%=P0kE(0ZczbUDLD
zOaOuveeub8yK7%$Z-Cj_c^(#c*2n*k44Yu8KYg!?-j(uzc{3NFiX-r%5wjtfnqdW8
z_UFIz2Up&G(?=e7T(wx~)YrGIv??_&1+h!XNJ(fya$NpgeJf8ht>@PiCFrSnIwt4B
z8zs>=ExGvnzyFjw*WT=o?(wWxVAp#}D#!h}lekxSScKN}j!$kr<<ynOcNE*7-6wXc
zUEF@zgm#)s4dM#@^%d2VlS3WB@kgz2;tBc@^p-aVv^}g_$2#E4=;JOxr2PER-W1lj
zu&G%Ujf?TLiyOWn`W4fk!E15r6?Wpe<MvnIdBnc5f6N-euh*YjXK(MSw=LE6c<D;W
z(EGl4UqB2I-J>ok;sQ8twY%?vI3D-kO}HDq%T{QGu*%XMW$fUwM_@Gjp!@YdAJ`+q
znM!-vQ(>;q#3V$^sWZ5f#X37Yco3sV2QeYgSpl~h1op{^Zg?=Q4+gezUR6fpQhTq@
zoIYlw`%#3U1TU$?=%5LJlxL6i=~G8+{MciRD;dYtyaZ#EL*PKrq~AtIj$m2$JF6@p
zG$~?yfqrz}gYG@$=3Vi;-n6Y7E0&_Yzfm`NUwEAreka8869m1tye23;{OUsQVcgJ9
z@m*+*zAl&K8MYE@BfxRP7V77_P;)`hfbs|hpuA@VEeY8KYIgF2V5=ohF5!(=zVRZv
z`{5_-qhET`?msbQjRahM{RM07y_+(2Azohjf=D;`M*E$Ih`PezH84b}ESV%A=u4m-
zgr341SyuVfl6PT%aF!oFX5oRmEnMIHCo>QJ?$hXC8nP3!+4<?&nL<A7?f;M9;n}%`
zCpY}uKmSnk1mlcB^ueNmL><B9JMB2pLUKFj6(p@1VR#KZ!4$HS04VErg=Y4cb|qt#
zM^4s>@x>Raxj+e=1$J7V+*C~*6O476+4ee=R?TPNAYRQUUru}x9~OmpT;U^P?3@n9
z?PO-erc3a2{w_);@Di`2A7dw&%)pm_;g*&+bPT#zKmV*RcHfTpOWb{##wakzlt?P3
z=K2*h)gIAx$B%QFq(peuQQlA+SQb{xTJ&DFn-wgRGE{_8Qd!YL@xU2*M*jcoy$7^q
z*;(JY?|t`$$~kp)g|6zXmb#S#GC~$f0wlm7k1PQivp{Pw7;FWMXW29!me;ZYj~Qez
znvpO;ff2)4WHgADK@kZBq|U95Ro#`l(yQ>&o&WFu?eCuRUR8I$_gccjy1VM#bIuN5
z_<!FHXP<rcaYEB)a9LRn^0Rq!Ph*PgTWI@}x69X`jGNZ-d%pHXC&A}7&t1H*1;0>8
z5!%I;biSyYcIwpw?>V`0<95AU$2TUm6sD*yI8Zl5#m+{jsK;<ARpTU=A8>p@mGTd7
z*LU2{OqIR+&Xrqkpz#;2+SmacG;pkebK$6p_chksrba<G?kv}u(@u*0?Yh<zsP4Io
zitB&ikKXpe?|$XK`{XAn5rNY6>?_m>jLyz%oE0WW3OB}Iz~rTB5+mCvOQE!Z0|>tj
z>$Qwe%RgDULm8xo27iRwK6!cH8GYaMmw)O1kn?B<TrK-^x_={omL<xl4H^QWS_#5C
zL&{}YmG_*ULNHL*vXZX8HF~3NLn+lNktM&}$E#(~Lo*$HP`G!^UisH(nY!y9H7aWK
z>%c2G$}!d1@-%+*`fId{EfaJSFF}f{$SRBmU=lL`rvj0h4URP)T3RyCGT*VAbdw-{
zv)XR}T$mi;u|r24(}-r;N7Pu1-mqV@mg?x`k7m=K{g6+-LO;<#R9S<ges%pbw{~uu
z{Ln4EQ53CpQrMkUN6RXX@v(S-cJAC!J%LvP#{f-(E7xNhN4!sD80b!&JW?hfzN3sz
ztkGaZ%i$xn%v_i(lZWmp=MUeny!4*PkzNGE_`hhWp7K<ka%1Y4r?iO-gAp3e7>uZx
zy<Me+>$)xLCN9;BJmT;bs<RLtQ`?5sv}Q*e!Su_g?(3Hq@1N1euDY2SY*1%0F8{;e
zRVxU3x>;PISvbCby={{Q460<Od2%Uu#$}JbcIo$1uS#V^d~wf(0o+E%rt}8kWO?L-
zQk5xNL-I1I#%%82Mv&B!fCYuRW#6@3?|+S#>HF^26OCiiNA;44Qq5S8X!2}C?^=&&
zvQ0A#Dj`e|G3#XZz<G3H)j+Na4tQ+*w2s-=xf~fZfuISx-t%uRore$lyX|~0xUXH=
zdwZ|+iU7a6D8AXBAV{x2qWXB_G!(v4VZQI8O{cv7{omW|JaX~b)53~(K|8zjUj7jV
zu?pDG1GX4oQ7;mJ=tHAUg{7%QF2wzX?)&u}cdatpuTKQsbk+JYp=I`oUG$mGED31U
z=Le_b*Sl8h3D?DP>dfQi;kBpA<71O$?!f(}b3moK-Dma2dhfse9pCvqH~!H7`}v>{
zlC-JGZXs4XavA3<S5A-X!J2MxqwmzguEPekbyzT<3T)YTvb=q(-sikxyC!H<DC%)Q
zfwcU!1>~I9#|WemGClL=HNM8m1eS*r_)Wg;{*yE;MH_ZrOEmp%q*g1PJ$rVuc9DVE
zIr2Q6zzyxWkDhzZ`H#+if4{s<@1J!0vuk&JS9##CHuq0!1uIV-bJaAT<9hrd&8KQl
zhZpWE{at#(=nYblQuyiy)N8j}nscwk4ON4fUT55~zx?6jYsw#JHOL7K?2l_n?|=H#
z@p8p0I^{;)NcHs;IG;}SYkS1aL_P=R<_dIK^-?rBeA&Q;r-$y=JIlNO<osW)J~J~p
zz3SpE7w2@GobB`vci;PiA3OY;{omgDhIjqVQhjZHeN675<DdVlzrRlv=@-NLw62m<
z|7NDn_%o>C1B%ncg8hUE2KQvOZ<9BqzjW0Ho;`R+Ijddwsl)NuMcI|1uhnE8tGJ&8
z|Dc03tiFmp7`6Y9oc!F`!}<&PxM{lNhFxWNC34HI9ePqsgJ{VhH7_g`r+I~Sar_fM
zw)Vno@86Hi^}kDPR9CiDEgW4t_wZ-CeSPa(1MQ}WCiRQ@wa)R+m7ZQR>u%qzag&yS
zgTtJjbRPpRLLiF%gC-+Xby{Dqac;T!>hdESR+KlXPV+Eig(l<HZ&BNLLX#dWl{cNB
zl~gk-)41uInbK;e0l&;4v9*fA8!T?>e@9ul={s2BKkHSfwu#O<M@J{de(ux1`onL3
z-kaXBq`snm`>kVVKJwOYQ*-gdGP+g`^~dy0^c`nkaC-Z?dycO?`*^?H_k}zCI@IdT
z<7LatL|LU*-uhdG-*wv8Micb--~bY9fWIVeoO4zEOAk$N-nYKIN*i&n(}d+s`o_A`
z$yULjWKfL$#Ti;ZbE=@7XRI#AH=osm&Xd}lUY{@I21fs*MH4A)>wfX#^r7ibX>HQ9
zK4!UbXPMG!h}r88OleH;$XsXS^S$@J>A&1|+m1he`O9xz*5stCj3m8y{NA27b)>D*
zxPtp9`nd`AvSGCpL2+)TDlDAOYOJwm@6NJ!@1An^y$`AVWp9d_Uq#58{!xoT$)SDS
zJ||K2$geAJ);<9|AoWTu5^BcU<SAa>s6OJ9_Imo@hdxq%@Av-H`#(MVmK(~B?OSjB
z*iZb+UDELpiV~JvKO2oigi1O-H}>MrY<E;MLfXu>yG>oyng`$e=rhy-z4FZQlNv;7
zDZyUt7=5SgBFE@!u+iD7nXT|8>CtwKY?z{9L(oW9yo|wSa?ibHeOaw{JYISev%bVr
zo^lZe`7@#($>S%g-=udN_5Sxm_uQv%*B<g_0p&CIijff2YQweb*8b&z_y6NR*t+{)
zd{H`VoSS{~is{J<vlq@z9e?cIGY`$p^*-NOf9P{pe8=xU?G80XJU`l5(UpEvEN#>g
z+p-xSGdncG4wrE{-kIBV<qm!3ZL>N-HEDQpwJfF5nFi-d^HcU#8niQC`&>8OdJ>^0
zVBFk`E=~^0{Q03yErbK|KF1?^ul|qz_(SDE4TxX-g6DSk?cKHe!=Jnte~D!k5dVsW
z2Q~5>S4*!YG8*8HUb|QCs_Szqdg4CIw`bWQUV$aJ-Sv9k_d2}~rQPxw{Ca?HfT}`y
zbCAbDwG{zn!5q$6vp3)=!es(&Za%u&0d`FLEzD@Mi&@@JV`B>KDKNTE@3D!$cTko8
zs<o(u=T2Pc&;FH#{WAZs6ZM51d;Z?}kG|!5N_jK4Mr=O4z2AN7*vy3=A3wbJ-fMdg
zjqZxJn+6^|WIVl_c;d(%It#txDCpEEQlTBIK?JY7IJiaXm$Q%FUd|k3Frvw%0W?sR
zsg#!onSrEF1S9!G(`+>dBeyv}c|?Djx~inJD&U0?rvajFI##V-_2U=+>ZiVCYWmG<
zXU<Obrq4{B*QDIZnSSS?L+|T+e60KU`!~M!{hHeU@&ygbrM!fdAPn6`rT0la5j~@)
zB<tmSbA3&uxuP^Y8E6f@tFE&C{;b|r=M{}LY`Q~-;hX)w-ks99Hu=)5i8kChGw=}x
zY%3?u`Q7!47d7E%ybwcmTbtaiTXRZFQnfjfHpgQSn5|>px_J!Qi1ZaXyKw4}tMy#q
zTQx})29+M2P3!a>*XzsNhQno6?-KKA#;!J8>Zp#4Y}FEQo+48Z2-c}8#$jPybX+(E
zp4!yGT9zcr0Bb;$zmRVb$R`wpac}o7E%nuR&$X{dU#|!89v*g#cW70hmebDIGFayx
zwW-wu2gJTCCk&v^eEcofo&DHbf2>p9vR8hjN1boodU5i{c0S|eV>?byPmMjGPm*C|
zZTnv~Uq4>f9Z)VkP3k;TPllp3wk-2hohMz?Q-P}iY`<K&c}02E^LCc&cAhOS*C*SU
zC?YBAJ4LCBS-0o&5N}>Z+r6Tk)$3{x-Epv-JfbC$)PH^cDuP>({Tl!L_4KEI>csTa
z%*5REn^#{rC7--7b6Tsv4oRZBAA4W<;E|~fzjpKY|NLYvxU7S2P_#{;`c5(Q(>PO!
z8)mN#;#w*$9I#ER@7$!D_N%Yaw}<t)Se|m|(@Fyw(%|5l=b6~PZl9A*|9eqOXIM7x
zI<3ADL>y{nnn?GjI!+7E&wT!l^1HwL$K}qu?k!ho0_i!=d1m*IKlJgNZ@u-_|E9k|
z@g%d@WB=2?Iy(80`(M}X%>8<>=2tC(Rz%I6*3Gc{9sDDMYLi|`>Yq5ErObL)c=jIM
zSY1@r(71$#gZ*6G@TS&yjm~L=GD;`2>KnfQmAlHfzvv%%d_@v_0&Lo(4V@nRL)SBv
zP|jK&11W%u$yAcQ@P>7y4j6Eu%xsQ(LJwfJ?HK8--GNxD-nO-5x?Yzro9%VqbmTq%
z_#c+?u0L~`Mf{xm#M`c%{McLnO{f3n*D1Rc_pQi8xA&9f)X^W-mn$AA=TD#W)5*9I
z3fW=I6U+GgDeYKjD9v?_V9Kp!+Ombt38aHP2%>mxsV`}2&^vjs4nyM#w`~lqat8ul
zqoSW|F!CtU?It{U>etgvOz)l3pZ=HcoI3x{%Y~EY%M@?@$ad5pg^xV;zW%@6e%J0l
z?JUvfXvb#n{FT>e1Et@bzHnl-)_+1zQfpFyhhch(Xots720`btVgKA&y-xA4RvHQd
z#z)ctuh6HjYEJssI0rej2?PTd?vSt7XH@rZ-)sGeWpbJgUuU$^p}{2bV}}M$o!0BY
zIGd=20pHi88V`WbX-2P1PV2L4?iRQ!)CTLF{>;yAU+XVV{pP~rPjo%=nO}PK+|1ZJ
z$5)=-JgYr|kVS}jY&55F0Bq0cMz^CCo9KL8+#lB_zB`|%r^6eyuY>AF|2z{73fNwH
z<32XKOMq4c#sX+=1a<PVn|Y+ByEZ*3pPQ18I*}i+j+`b&krwK<gxY&17!N&gz@Lyy
z-ccVAMY%ND#Mc$1%$QBt)fhnb)~0TB6#KjV{(h~bc-8ff9rzJl{~BDD5-$AZzu0&F
zW7EITpZ%w=TDkK%Gavf&`SP}Z{q}O~_%RKmM#>)T-SSWVmmetK_RTNzJt*VQtR9Hx
zF{#Gh>-D9q=iGc<`P8RBqZ{Uvp2Qvu+Y*K<SiJ;h2Scv2c06(1yG?3k+_SW@Z>{#s
zVjrdslcNfaMf8k9ufCiR&-eZI@0EA`m*3Wk8SM+Af$?L94r{-ZRo7g#dF-KMzx$?R
z(^GsmxO?W&_mrR5@w#_>K>U-XX+G5tErmn>lRvfT%*^zER3&@0dQ0t=KcZDWGh-Jo
zT<qyHP~B6<PL|{P_B3HaOH8(X!=|!P8{zN{@9cWbBA(M2+N}AZnl{SES;SG^&LAhg
zLibtU|4mnT7JKvBS<Pl>SLGHBm$Sn}sc=Bfo3oBAazI=BA34AcJ4<bAqbej+CkcA|
z)A>$SnD6AyhJoCSp3L{fU*Ddd(wkss=gw^X-OvBVTYlo{4miwBKl)_Y*@F)sF8}eD
z-dR5K(NB4H=tVEQrM&3}Ute}>*(jYE!Q$0(oNijPh+DPG@qWF7x$@(mb_Y4Gfd~20
zL0wQk^YCq5v`+1ec0?)9=STKvY3l|J&e~7;l3qF=?;#&OcD%gzeIF<v`ty%?<GTCq
zeX!hk!!`Rq{1>18I_1AD%X~SHk~5I_@U0`W7q)+Ir<~R{p>_t@N{yfPKN!&s^Ynqk
zez%;CiKXy8?Oxu|jk}elv&tG+$wjM&cA!|bbW0f0M+e)|qzz!w$fG7cya|>Dh9i1c
zm-pS-$S0mCihgytnq8kMzj)WG$#Qa_Tbs=iD{8B#PtR`K`5JlpuS(&~)F(7ET!H{>
z=2+^kNPRghFi|3(z*xI}W7)b#J436}55Se*6r(GR0Y2x^DdYrN#5<#YvfJgFd=*z?
zoO$Bdz^O8F{3)%Lc=Vw|<@E8>ZVYJ^;Li;(_k^qTq;}Je&6_nL_fnUY+&t|kkKR1h
zSfTTV3;ne(J^ov-|EHVY@NR7~@Z||B#``l`9<L6_TqKncP<zqUGO@L5dG~%pIXkIO
zvT@(4fV?YLXcM}Xv2#3eZr6}in?3gFDKx>U2GS`knbeMRnsCw*B?#BRuJhv)XUax(
zf@ifG{l$w~KB+cuOi$QXt~{ep@trNafwXyDzZ^WqBB#b$%n4|YgVDj4E$}37^5f^9
zAq9R)eZeLTDld-A&b&f5gSsQHY;b5)(38p$wN?BL1_ZR%gNzHr3WEY(I9(pm31>yM
zP%lW#JJ$u*S-*WAtXMfRvQ~o@b=Vfs6`}GrPZd*#I(zcosp-SFed6&C{;2lVn%1h*
znKPoN8I;Z=dcyVgop<lLZK(s?%BA$b@Sk?|zwoQSvSMP_D`%!p>T5L&KjlSs7jBYx
zZ&ja3Jj_r{uaQfS<Jv6sim%^UHf`7DQv$R<&2kC_<X1Yc-oy&nR5p^c=^&QJnK$g|
zmaF%uEgU(kfr9Rt?W5V=aa1rcdE$~aN_=KU%8`QywXf8CSF%6bo*J;}F|(c|YR55T
zLm!nJ>8;g$4KMy)J2yS`ZCgf8zo38Xt#4c^hKD}?eXG`--u};YGxDR|dw*-@$mlI|
zZ+i33ckjLDOKvmx#N-=Z{}0ORU;7$;HHFEIR%;}^=sS73y;>{OZqSOWo$4#Tc*ou9
zhq?KY2P+R^w?keI+zGWzIdTynX3#B*Zc_I1DOL5Ku@6c^DO)~nEVyC+*vJ05{M>)|
z&*k8wdi6)y9(wpd`JBE6)0vz4;J1A1y2pO>cYa7us`@MC7r$_J&5E~Q^QvFc9nez;
z>gDVg=I$IV8?TzZz&I?W)r}IHIda2(NkDN)sP@Ji`)Yi}*DDCJp88duQv@BZ!8NYq
zOc&&GtUeA@R&CXdMJo^Yz;hQh?i++GA4h(ZQrx<6xlqpJOI}F<@M=5tV5Ll*Ra+?s
ziwR{F?e{log!diF_-EvPve3WnHa)U^;Agdg+drGVczkSDy4qIMDc$rE=#NBwK*kuz
z=*ZpE*FW~$sLu{>QU6|N4^sD#ICRYOz^~CZh-NHTlqNSJkO{2goSaFY36VpO94n9B
z|7e-gB#Y<MDJv(o^m6D`YqVM3hWH9X&}{w6=9>I^soul?y@OXD_<KtEL@RX>r$3|4
z@5=Y8&72rpsc+W14bTm)CK@l4hb6vbPE`if(1S6MR?&}Y<IlBMYyTjvDyr$E#(A_$
z)ZiRjkfphfzCN%bPf`d%l*!uPE*~@!QI(S)O?E#!Ksrksd+e!6<(_owt=X^p(DP-*
z2908b`<zxVoI8H7oO}F;cIWRsU*#5k(=J23TU$%4?oDWXHKtX`HFR~qbmI08l~X6Q
z5&{3_20(2zwmfq}dl{^qDI0cPReE}o+|L!7$`}3$)`3AzSU@AsVUgFSt?Nu1#Dk%H
z2eW}tCFguuW>TMwo1J@DX=IAOkU*B8tX?zdPH3;D_0K3heI9LmmGW#-4(T$jx6RHT
zd8Ax8{+Pa_Hu`E2_%%2!HcZ{|%P-Q7zP~>=_4wuv`xTsjaP0WKcb11V;PFaD5ju3}
zX!$>X<sD_ixzChudciK=D<NeQxMI{=%0GOrUKP9H6>6#_JDtP83j)V1!&O5g%C}>T
z6?teAl+2U<vB^IxGj}cYyr4L-a;)6_sRQNr|Le!g8BK0YsNaGIo61g}oh+*~8KsGi
z%{0lPDF>PR<;ULp!yhT-9U9p!KJ-+$Gy9oee7zPz|LoY@@tres7a3*Buh^7hx|}?w
zcUBLd&~jGZ&5ZX~c<-7m^Jn*8q0L;@s~u(+XiBBxoM*_mJZ5|xx2%h5+1En}`W<pL
zA<8gY7nPWl$Pta4Zge$6c3R63c#<5A8<jp%xt>B+p3F)gzVvfZ-=>{9EnS4B-Z0Rt
zQFo&de8Z+u)|Qq3wc)+Av;HUl$)@wu<3BCwzP)$w56aOa8_WOmfe(h^#O$^Yf84v%
z{@@S3u58jSnyxHuA3`2^+=M>Wa*MvB{wG`hTe<tb`?cYVoEVR31&ReS^N+183r@A6
zmS*_A>AGvm6<1uL!G%g|QYM;D*&2HKp|d!l_f+5g+aD<Je(!(P>?XWRdEmiEJP4WS
zb^hS4cmBYA>-EiG-AK=>KK$g?d#?P@QU_^m;U4+e_pVq!xA)cOKiYq*ma|Ncu3J6P
zo13}CgN?)o{Sj6>0FU0F!8zB=aMPI>8=dD3a}rmUs4?WN`6vS&lyY30663s-A#gO0
zDgb3t7EXm#hb8cCd==5=O+M3^?am(l)N?K#|LD;Rcl_AIlwNA-&&=rtp=hVX&RvIo
zWA0yV`@VPHE-{j;lAbzHU+2E~j-Q@Bf8r-+r%tjqu@(ve89bg=T|M^bF^LtOSLhq#
zx>MR+b7J*)x#FtrQUcbtev3wm(^7bzSfno}P5vc+ntc3>24f7MsHO0xV@5*#Qa{hJ
zgYP*_F09m~)ohv84%e)tVc8L_fE-oplgjJQkFNNFZV>+W<@laV+nM~tTV63T(|Mbm
zc$&8BBe#8i;>d~f<)YdVcK4>SXNlcMZ=Wq6`QkZ^9nY6NT2XYvjtyFdrWGq==d?-u
zDQ#k+mQw?js(}t7rp=6akCFDW35lz-HqrHLOuNHxS$|INhjz;ydVl>>e=}E3pQlV;
zPvZM!^V+Vy%U;UEM>K(j|0!i$?^x~FzNUBjwl{zL{E5lAnTyl$KtnDdDF5@h^(#NP
z*qZ{xICJm2w#<I^%pZ>T#-A}Yb4tsn<Q)=0?It4(M5#d+{P&ZUV`b{dN6YMKZm@)#
zGm<qkQ;@LmI%1pOOVgW@3)A8{T6xYj^j@*Gj9u}Kn#EvwAaS*HE!x*o&bi~Cndo0U
ztYyk{raUR=YNxyr-6C|Ktxv&y>tokG`b{dRPIT!(d#?VFmhio@JHEC%I;P2NCJ+_6
z8t9%pc6T|d0SHg+@*zJ1;fw0Kjy`s#Y}oZIeW6Qxakwp0A+Y7A)dpo+4zhB|e=MCP
ztDM>@$AHewn?#7H7<8DbGjUCRnUz78zIQ)6_qhC6aUSH*;9+tEQGcp7rqk6*><u@T
z6>3|U_|_g>9<XtKj@M_7Jgf(X{nwQnZ~vdsd$Hm8y}z|~&DrB0o*g~$jQ-5z*vO2Q
zXCC^K^7${^<4+MGr<P@wU;p*rDXY)lS6=rm*ZT9avlZXq6ZWPhe97k7^6r2ALahSV
zYZFvU0_~h{JmS((`mu!!P^LR3G6^RaBcI@4McbM+cbCb}eW{LuB3u6Qn#!qD7s_wF
z>o3bATJZ<WCan{m`0UuUqNiz(U1|lDpm%TQ%D-K6;`~Qdevvm+H_A=V?C-7Erq`5s
z1pxcW)_Tx&an*@3tqGTyC`ySqqF3AmjjG)E=I7{1yIvu|uWAVY3I9OmNQ?H2EW~Aq
zV&OMY#khUawaD2oO%}!Dw#rXgO#u4BQ}MIfKv{b?CrKSc7Jr9ZbzoxCHG1EEw^p?2
zhR;4K9YtgE*rVn2!*^<8YP=;;i_F5)ZI67j+VwYT=SS_uv`Ra>WWAucWY%ZDjvx7(
za`y4R(dw?1wX_Uv>YBLKnD)e>^JV8XFO}?S(`!iVjD3}lB;o_BDxTDm)-Ki5*-Nk6
zX-TuI$)=eHKk28RkuKUn2~HYz2th3xnweW)#x^{&^mJoCu1Q@9VLPyUw(4U!fAXjv
zSap9y(VvuT!Q6D7`bTY*+W)9P@TQ&UXbF5*8)*s{4XlMpRdqlO{(6YV=h?uV3GVvT
z-&vtS@B<f}M_QXl#i!;WuldR>T4qkHPE-w4grOV)Fm5%@y5<Jbfp$!tWJh(Q&m`uc
zAqe_??XT0@zOVGwX;oNHAFI*isi|nGqCUwc+^2No{+MX!z09SAZf|v;y?xNlW1Enl
zO$ujqV>_p@1rJLI=_~B@bN=ipz1cOXr??v1W;y4IA07a7;^~VY!g$0a0L+JWQ2fw5
zu^!kZ<Dm*(4Ch6QPTfbHda^|MM)^c70}BU^6o`ANh~roB>hq;Um6Gy$kTAMN8=`7c
z&!hUPK##AyFER8-ZXOw1vw1{xT-Wp!l-|VQI2WmE)p9~(!7tu_zP#!icbBgE1X;_B
z!m6NBuZ7L3)iJq)Zv;BXI{zGf7FLVM5foDk`<E`Xm8mGS_*B`*Z5h{2=o6|Z%aO+?
zbuU$IQqx#ce|oxCHeK~B+52=kd-R}IHJsa_N8Yd0YZ&ia%4-<C**kyhHT{v%U(kkT
z8ujdDr#rD>fIVK09{xf(cJO}9G;@<%4N2px^b2YzPMw@Bn|ANjXEybYNS*2Bou;T?
zQYAc7;0FlVD4BtNvcbyhh56t_W#wr)p^`H_%JMgR@^L+VdsL~+8i(u+Tr!j@;D~0u
zMmOA~_uS8w(N%M0%?{CIR!w?M9y_2x$I%Ii{R$CS@=g2EyWY8G?S=Dio0`4weR_dx
zhc><#>z;eK^bdYcODbmcK2Fqo@cO{-|7qE`_C)!fS6r>ZzB-10MQjONXdow5zhUQe
zx%t)?Yx3#YYKVk8>Vx3`0B0QxDs-g~<>yC&5k=){x`AVZhP4;|yiDDR`^^uq;MIqd
z4<0Z7-=F@Oku*!P>ExmYc01PTqkG+sz5^2?X_3eO{n$+pzF0Z#BHL0!|IT;4Z07vw
zKbo07J)r@cS3l12?iW62!IPq-<G*}x?({=t>d`;f%-`cm<R$^l(Vf6mhRele8pli1
zgI1;`t;m-?6~hs2I7er>?dv208_UqC*Zj^-hoq+vCqBNCMu0&FGq74RtVe;mQ7E13
z=gRcoKlPq}w6~P^pva=b?A`DF2YNI2t)mlLCVDHiB;R_3bP&;gk)?O~e%&{IL4&*2
zV8k4dOB=48I8*lC{4zDL(OHp{7($8jq}Yxp9|N>GemK`ZLOcJ$>rCU=)4OTq;AeD$
zaG-LC`WlUA3@#ZT&FSGCGrC>*+_+ZYFyN;7$-&6Q(<iiqt@HgKep&fN@k=7Ge#*cS
z)0xkn{olGHlW)?_g1Qw}P0;@ryyV*MP0!I%Hc>dJ8>!EJ?oofkR8u6<nL*rKx%a^N
zGNXaZ3!b~Ktk*_2bF<qEkI4d!HtUQ@AIh{#<H<p++cMSBd+$40K69VGAaR;qt*NED
z8JLu}sIuK~?dJ0B-zJ_Kuo15&Oi$^@CRFxC?zr(Y-5B<}%p%RbWaa7e|NOSwZvD;0
zykq7kQx_lnx!IB4^E(|rF;^d~Ybh<`H{bMNcMBUr`+fEC^`*CZm-a2wDk)wEssp6Z
zD>}G#N2ij55Ot~cD~iodcaT9Rktbp@y-m;OYBTzJy3yBQF%WOzUIC^}8JW=6CFZWw
zV6LmLl&I6Uto`n^URStq`h<3PJ$H>beWcBQvFCcVczs`6_Uh@3pchE8jR&dP-+)bQ
zSb{mWf<YMoDot`RK)I;zGoL?ms;txsn3mMe!_Q?0Y;t+icDm|n4$j&gO2#RV2W*0Q
z-hhp=(9u9mix7kf6B${R8k^7(5WK=f%dksNlN}ngx#eI0J*G*e&JJzDbx=fj5pro^
z<GJ%|XGc~%ySq|Pv4sbNo$+(5Ug5?r+IJ|P*ZwMheaEr#+E=|m-;Q6Sfpy@Rzu6X{
zm68>z+`1;M-Hye1Q-a(CXf3osmScEFh+%Bfj{KC<9l6@8Gv$#(Jb6x@kxuT%^*!X(
zJFY1k_iQXDAA6)+JbQ9%ZnXc}yFT!?+pmAkzh^S{DFe$>!|sxbPgY?+l^WT)Ta#wT
z%j_v0*kD82jf#x?zB8du_vu^OguccT4DQo^cnV~kwXX)Ph8#ja_!s#^UC!g~SpF0@
z1xoh-PqaK)N%2I9xE6}Sgjb4UBFJP*@5*b-)C1ZqFT|?=>O%j=uDnjG=TwhnTW_YN
zBGA(;nC^Szdm4wt0&*ohRp|HMC?ebNAU4i)J(7;8iw1@EX@BMrS|03#-%}5`yr9=@
zWLUuwx*M~3`hX9%5T3vWFY6DCN+Z7F#t~aNUFSN}b(3EiO^XyYRQgH(40|TR(FQ6`
zZLwC0Dz6rY34gVK;SI9anCj=;`mN>ssiX3Qxtk%m)W9T57ac?wJ9`sH^@U^G_vjOq
zN6R$dQ#Y6>9>(P1-N**L(YR5w%glt=kiN#Hv69$<Q^kAWTP>VjmUQuVHh!db`kpRL
z19%)y+3+=EEgu@Y`j&Fx&QE$0J#tY-uOsNY@Z-C$*UC+;+F>JW>nUBaomw#7gSH(Q
zxGf=cG!{&IQ*5BO;o&x(6Dy-*3NE>ccAmf)9aEP);tvGcAI_6c@{nnQgmcaRq5XF`
z=H4rQ#6;PkJFZXity;gOoH@?^Mrz}wdU&X6gWBS8?PWAJuGh}0e}^4a79UsNK^@Ke
zxB1+k`f5}w?rE1CfJL7OW)ozg;3$5n_Z(O1)u%G1&G!0?yueGiw(6J*AXBTpB}Sx$
z->IbQAlK-hSh(~&?1^E*1Pr}jhZ;%RMhBObzgRL!*U=sYdQI=j9h=G*?>VTA)wwqa
z+4)@K{#}}EWnxmBQG)5&BM0==lJbh}TQ2;OvK@EkMf~u7|4+~L^q4|KElf3vtfXZR
z)B0n^Q}Wn<1xEE_mXS>9Q*F%nP3XI?8Yo`EE)1(^ISUReb@eX*8W>&431qkrAVq_P
zk$QloK}9;RkLIKV<(tsAxA_LSmvB&^rr~frjX+*)Xr{d5ax8%_S_J6yq$AF9{)9e5
z!uFrb2<ztNo}u^u-Xb0oJvR4(r*728_04z&YXtN{w2OM;|Injn<@}qp5g6l}(Abq$
zITBmVft0oDcKSLi0%@0=qnoI-1GK7%B3jqDd(w_hI<A9n&98jS@b-k!IX&$(ZlZwP
z@IVuu8g1D7%(7;sKINr>$Ml8M>-#gk@6?UK&oAc2KqLmCf7d&&=udawF5Fg*j%%^Q
zn7;W+CorM+G8u%kyflHUM?9#k+M!wHeWgEn(Do%$Bx7+J8YIrx0Xv^WS`vM-JWZOh
zGl#%YOyw(bB7INQqg{gt%^E6sZk~E8w1c+9>2$R$dYybvzQ*L%lm_V+&K_TTx<7%>
zE$OCR+p9cZciXanYLeOxnh&1p37H7$IGF97m0Wgp<fC(U?TcJ97lf@krY<wlx*4Uu
zW&MIko>MQQeTsC`PzTqojpD*O9F1dmOxEdWP*sM`g2{V2Hrg6X%uvG|b&ZVjGIWw$
zOolM<8P$Nq9ggBhbkpDM?$wU$r?oP3`sy|JJlX=@gr4+=C8p($@mK2Gxj#NSGBME~
zU9bG%H);wrRUpjNmVEAuAJeYvyt}F!J>{TnrpsmG>)@fY<@Ck1dg^_(=I3NrrB{>J
zW6-;tAn8k?GdUWc9o20Afd>wkJMMe5966!gWqD#@>d@DdCT;$7=-71Gu=|<%T8y6V
ziz$4mr?Xm-Fw)Z`5pk07{K+HTsWT_ntG)OS&pG<Y2bApu+@3V-eXv)~jl8bYQ->(Z
zc}u{%TOJ&yk`PIsxAL+aIF75{Y6&WSpIK;!upP_1qfM%PfXX9xq>-ESKt<k&3k(8n
z-k|NOXh(X`qF?cii2Q}N*Pvu+(?sx)V?<vp?ab)&jqH?Ou|<{9Rr*Ax+UnUOXWOh@
zZqYw_N&s%@_w9j#Ss63xA1pXVUBoBgZ9L@uOBt{sTk=^rX!EsLJ=K5>e7kzhVYMa=
zj;Vd0))OCYoC)~6Z=_WpC$!2b?5;zt|3+1f(1?}|M*haL9kG}n)w|9VPp4!_Akk`^
z5lsvvr994P+31+$>uD8(2W=XZBgeu4n`wwl;=;{F46?`{0$tLk)d3u-P1_e3v<Gb1
zD%-xu8}#h)x<MV+L*RXTwwDJF-K7<FG0;H%3tBe6Z_id?tUhk-rm|Awsu?{@m_2*?
zr7NZ%->odS2c@U_Rb5aekImj{yDeOLTX#xfO#t2gDSgdQuU~}dG7qmvX;qMJlt;Gi
z(nPmb9JWH}ip~H-A<_4sen6nc(-LJr(IU_~g%-{h{gUWV7xWLB&?X%k<NI%dVVQpP
zOKR@5;(+?Cl(9Y6l+nG{sU4wDViin_c&#hYX{K@7>6f1Od!6-NEsyn+Sn<v$l_5{$
zPc1E{E}~D8A0m_54!Z^Mf+sX_jnH}M)Z74}k~9}~jo*={@~Qr1j9fPIyX^uomGdiL
zm4+IGvU1IO^@F2Y6{&|#mM!T?O8Nb$CIeS7J7wEZ6O~DHy3&>N-ikU&Q@ZO?j-?#&
zp=d*N0!79M*kz->@^syE%G^CN-?4-CG3e4CjcnRcMz4ORZrr!X_2hdkhT&^LC!)bB
zaBOAMDX3I_wZ68~k%@5+7Fp<PM926xX!N%4DPw0&mYGNImrW&)aAN{ze9!gz1n3ps
zX`X#(@YM+6bkP;f?}uuJCq2Ynj<Sf1{a^eD_;*haK|Ppqe;R!xZ7VC9xrbT7Q+95a
zjfu+GCn%3^a4i`{&vw8c2j>yzz7!iJ&rn6zaIbiB<Qn-}d67|6%Fe5=)BX;}%j1V1
z^+O6C8q9eduFaD6U0c@Z6Op;WvddH%ICn@G^Lo+8m{cRX>nURc(VkV?#+YkH=i?d=
zJ^O|$%QwE{##rTnpD5lwU^&190U93*ER>_RZ%PsUuu1r1oTr$s*Y-K$Lz%FHXoDGP
z(Royy$)|B)wRcCWPj1+^y}aSupI_eoo^$1~!`cH*{TXAq7v8+Tyz#sBd{a6x7qmi?
zTYP?d^2kHmX8B&?Qf}Ji&HET=wT);85fxcdeuAW_9G+mUNL3mBP%Z!r1p}A>#o3fB
zw-K-ak$ij<T^bqw;dB|Iu~0Fwa(p&s&X7h4P<z@SX8raZdN<^V@X+9u&fgSud!u&<
z8H}vb9~~GWo!yjmbJ*p@Pz6DWa!U>x5UkMC3QdisZX!Vi)ee=p%OIN35zw3N)(+<*
zT3g8b#mH&Ls}(4559d=M9L%_J4oV?E^qRa>T17ZDe$ydMCu!JDO0V=NAM^r8P-ETg
z24VHQXI)i(=a2uojOx89GO-kqPUR)HTw7LX;4wBaR(Pd_B}CI_PQK*oqo)|51i*;0
zh%i0Z-L0qgH+H&uqG#DeP&beoLF?v2Hnwn;5ZEDz4!+^zeW4i*E@e{&Ft{jn$+mS7
zY(W{~f)G5S5)(T=y*)rk|A@S~z}d~7X<{`AsXrzb#JJw1K-IHbfhsICnAIeXPU@Ie
z$w8;5CvGzr&gi|I`GY9ac*>vd7`C#vVoUS_zw{H8_Yx!5Th$%`2?EM!AM{{EcJ|;$
z@+2;}kQ*)KPV6WZ9fq_po^1??<9cEK=(^mTs!ZYtEe2_;)^C>otkgT=XSMvi{dA9p
zdd`E9bsIG!sk%%UG>C2s#ETpH2)T?Pub=vO$Bird-3!00CUYVN`xI$oAfzTn^(qNV
zfa9}^^N6Z9=gEu~2P>a${`$%%xd;tDoP%4^B^93mr*?e!Cm6ajkdvG|cc`4yrbrAI
z+!@(&F%X{75@n5pG^iEdIo_FvZtzkwCSRk@h?dBXOsp!Wrti{*ca!U<M*NMT$oyo#
zy;Yj+zA)Am;L#GMPlfkb1vAtSBeX#fPcE$+o+-&|-HSF~0~97+jE6Ger}YV(Nhpor
zs#N_r>a^m)M*kuQnVhvAQU*F@(uB#hR$H+PwVNWP&y%xK0VDe@w1l(xvpjZGnCT7L
zWd|178#k$FsU?#KQgG3d2%hf8%>c1sUHJ0}#1&d{>gB_A;v4*;-f+am(xv53>01b!
z=jLU-LQiC&Zo0)GUeY|#fQ`L5Heaz@ONI3w?U(NK&eZG;<33B?zES<_w!PN~)~1P1
zzTy&?NyPa4Wn3=)m-qZ6{h%EQyH4u~7<En2?iY4#-%wul@@JM++N~VB!k=0aenqB;
zgRk+@kvwuX>CN<;009Hz()g$%9o+WWzbF$jgdIc&n_>reU<-wy%^8C>$)dJ&r9Nx*
z#@D>C9MOIqcig8X^19pNt2TRfZYpp3o|l#_8#OT31kI>!+}9}o>DdQ1b|=qn(Q7{4
z#k}SdUL*M|r~FBJSs#$tzPC(h;%fS#yY+RGgW{`=_*njX<@IIsimT#gSh5i8|30dX
z0;B3Trf<Mu07jv=AILb0HVxfrp(qDdiG|Yi4?m>Q#^0dlbpKjtO?K=1=hr>EjOpgx
z@~b}LXFL$_-Y_Aey^7KUTPlw@F-|kJ#r$MD5*Vq3bqhL_=XF2^)DpyPXKH{RD7s>U
zp2RA<>$SuW`;#5dlgAi~`SPS+AU8gfsS&R@`%lP#eA50BRd}y?<BnbB?1`i0u?O!{
zJzy7XZuI19>X+!d)^FWW)^6DmH`2AeNcnJ(KpxWcpi2)6ea$q{SK{_I=sov+H<f7(
zx@Ps-0#C1dS|KsI_eSj;ugM`g1hpw>*7mh%%fPR;fD3#rq!ehligZd}Bi?mU6x~l)
zyGwlyt)mPCR7MkLW7j;hjP1Eja?7zWtKOOJu;NdzyATDY)P3;Eev4Qv7gXYEF~9Z`
zGOA!u1Ob62dv4lwb(uVMO8bT!LkRboY&^Y2D<ZaDxld1JSGuhj_`5L5^EPj=Lr0Wp
z&XGN@!}9o^>!Kt{TaseWaJxYrR+;J@<X@plpnbQzSR2yaTTUK6pe6nKbfLy2TdurH
z`ylPtgGlaa^uR~uQa0KG^l|k>tfv|5BU)8;)s>sd%btI&9#ou`sd{Dq&ducqzxyTS
zdhN$FSI3613LWt&Y2*GA9IB?qL^*WCBJ`on<QnIRCFLvL6^~47jv_HHE%6RISXxf6
z2k8^#J6?XX@%ZgO(Pnt3Cd-SSxwrg)ZrE?!r->o~Wm~CV>aEaNMPIcZnVyWBP}6wo
zA7{4l$Sa{-@lim)tX{uCf1Ass9L-A~S^7sN-7Jl0P2H*uTm3E`5~jmPM~4dhrD6ij
z05;$xNCT&-c~z)3hANATRp6g+z@Y|W$5l7z3Bmbt=%M@c{yIaiFw&~E>&ull+)~!*
z8=;!6fwV*N&Zj#>g2A%FwD#I%qQG+E%+k9WS3B*NLu|Mu8CU8l_G@4Dyz;GIf0LhN
z2r)Yfe37hapwKxaK~946_?!f=2FJ?FIpRm|gBLqbU|<U<mU5ztGuwf~4p|Bg*rB7D
zpG_OqsB);{9z9+D;;--3N{bl}HvXqqKEJ&2yI$zs7~wO%PEVSp*J<t0bz)MZ@Fj*(
z)*z|>2?;3-{zd{7<1eGzgKwV;1M#K-@;^}ttkfWTAVEa}pYVftiWBxtKOGE)%`9vI
zHrW`#nh;(SWx1h=peL*|dS`h?JMn6%j+iN0dFIJk<B+h*M`uQd+ttLHpC(soOF1yU
zZ3ZKu9}Q81pQaQvX*5Oyt2)dL18`EC_@&d|c*QQ`2j8p<hFo+O4n_uTLo084Fp@S)
ztVPjvA^5?85LoD)etphuYq{d;8_Lw}=gQerCxiz)#Z^7%3O!xevHym$dh=Fw&O9Xw
z`P_CGdRg392h}D2&Q9|(7LTP=H0)wzRJV`;e_|)!{InAdEKixi#GQk#S;62z3Bpwx
z(Mg2QAyXq_V2=LLj=__-CO9vCC%)_`&Q7Vb(p|$1XR_L0s$xuP#3WJ5Z>uSvWUNm|
zIp@i7SF0^p2XKL{pBEYM1xp8;tPAYoC7SW4QBI0)5%j~zXIiU!=d@vx{`Fh>h0a0_
z^Jl2iEW{y`8=N90utgr)J(z}1*e^vZ#qqbPCl6><mi9$s$tZwDc9qcN&_xZFW?51f
zk=9Rm(hkR99?HuPbLtwY7q~h!2SYv$%vNvMTsCW9cH*%|loCF`7dlw-%V21g`dJ3P
zZT<4REm71}VrqNE*#OUo3%&3akXhV-jW3+^wDfV;^*3vQ-Rg4mz=K-NqDfIrkkNPU
zxa#_{T2I*K^u!ofNZG<RC|!ln+0p|OQ22VvKdVX3Uip@n+)(a(;E?@#wffH2zxu`H
z>z{YE25@@%Q~Pq)NtMh2TVT<~hI8e@Z>T$#6F;J^atvv+4NNsMtvQBGvmB+sAku>t
zJjS%g#EYK2zx>4a&6VHy{ZEv;A2?F3+`7KJ;ngoJ-~4qqY9k}vD8N@;9}{buPwVx&
zle&XgT*!%s$Q^A;oU1m_w`|&8I{I#UN2?%tV9-@t($N!H-h1bb8TT9V3G7B|=WEv~
zuu$K?_(1U<Z{WzX2^izEv<x}mB@e0mfFXaRQO^TYd@tx_JrAD=thiz7Xmtlvq0Og~
zXh)FC7%Sei$uZBh7XPFj@d%Bb;1<`er`#~9pV@Tf{&M7z`*riK3haq0X)GJ9(oN{j
z{o0R{c4Pq^u2U}47iCspAhUCW2YDoa_#GwS9kjANgirWnU{2c^aaxY7FJN4G!_8`%
zI_0RwwX=FvjJ+jBbR)WD@73jsYoDQqKYH~>w$5=&lnouR8$t39X1N`)$RF$*et>U)
z35KZsm`;0osy?FrnoSVBqLufY^%{oW`>Z#^wS4t8YiL{~7d{6A1*k@!f$oic^0kWK
ztvpVnfb3ZPbe^w4%tY}a{22TtyFM}7VMVQQbUKE!0ni1##M8Nnmd3fVPqE0hl#u=#
zTA`rmVRKEoY~G>IkgB~u^1$8Y@gt9#>}L7jcC9YixQ$nX(igx19gwHi2Opsq`1oYO
zPnOA5m$dw;8MRfEqJOdvR(zC&x`4019o$yv>nnS1c$V7ytNo;#*ZRk`!6$txc1mQE
zcKS5pKqKwS>C!^zXUw&#@aF4xmH+GCyk2|vDqfKj@~h1owR%J{B7?`EipS@}-rz=Q
z><Z`f6LMQJA{D}y8Ph>2Qo`1pC+5!TAKJC>doB}aj>zS<B>m0xd9G|+x3awUTb^6K
z@x|9`o?G|PD<>SM=0)T0$`O0(PvgE7o&M-5PUWJJ*f78BnICn9NtK_5*Qo2L0sn?=
zJN;Dbu`k`FhV4tLpz-MkjcUu5ox5e&Yy9Mkn}c*RxCCgSATwr7W8zd_&&yMR27Eh_
zm9NTSOT~vt1L#3Mbd<KEntk7O<Fhre*is%p`j}>jrWCibY|_oihRy28)F5jsZxK@Y
z0l?M$AVCTsKJ8E&0WCkiX3w_r7r*&tS;8XvMquZ*^<|qJ&rihA5xsCaJ6NsY$Wkk7
zHky8~-+3wuvXd=E*?~TBZfX_tun9_0P99+=$Jv68z0MUeY(&-VX$8Q|*Y7UB@RQ$L
zPMkbr`B=)oL%XPM)-LT0Uw!U`hj{GVvCKeY;UIBrQ@qwUzF`}urCA&$?s}r8Z+{eh
zINtarYs!0oR#gK#7j*@OeiF(Oag1`ZK+Tufw{bNsup1PWFw-aXc@8zcqx(f%wGsbG
zv8jRQ4=Z;@z#rcRVVyUG1{9ZalJyB$Ew**ThN7Ylg2}dBnyfl__ZPhZiZ^6od6;hG
zwrCmRPR%}3hqJ+f9y)?pZ1@uLB4&y@;Hek}duV2TEI{QAl?A>>GGd{5Z2r|LTX*j(
zYd39EgEoJq0UZSItNL?uYTROw8g>;4%gD1nxJ%@x5s(U*lL$jtf_~LNUwh3}+DP)a
zUK7#ND#ekD8pmg-w(ZbBPpeI|j7PDdmFt9aB|T^<)kJH(q>+af0|VPD>TnMJc#64W
z$L4bVb^FR^we#o&O+NB;1&XsGG@*g+75Y*F6Q;=B_-h;U;NefRs2nRh=1Zi=Ckas(
zqC{eYYj=1RWz8O)2shvS*!sq7WKw>v8)EWPk`#W!H;D@m$a)55L}fbYl7{~o>53WH
z5f^P$(BnKj4|~;K%Qmc-p4UwtZOAIgsuep>@PP8d5q)a!eoeG#WkjWbly#^qaU~PN
zKaGIAp?l~HDeJ6uYW2E}W#6-2P*&>r_`!$m_bh+ivRh9ucC&l2^r3r_5YhewK2evX
zac!@m_e3Gf#h?utB5&dpbsZ%m9=~&63s1-DebrT~%8q?E=<5yIomV#rO!$rK9YXq7
z&<dYxXoP%9Qt*A(vii_`(r&}6Ug@<z-LU+-w|r+gGpR`y*|Vp=?OWIBwJg0dBVPDG
z^kv~Yfm`C9ae-mzo5qd$M}0L7OTO3vTiC|j-Ns3hiXr`Y)|ZvKF@O0Bt}8cQt<`_3
z$4u65-=gKO+^|z0U3X(FB20VT{>U2b&5^=eq9^_dkIgzmzM$tbL8UfDlP(@#&<Dw{
zz1q)hsW7N@3Z#9*?lwspRehozt95IEuSNZY5BWpi@CVNE(a_EHpq9<J$WNZ+CE4Wg
zbEcCz1&!z<l~MH2la-jP%(3Bh9nWt=j;H!fo46hDz*}U5Kl<}fYL(jYJvTj9PY_q?
z%SaD<7wl0@Uais6>7ANbUZ>^2*o=CT?KJ1o*yAGGA0ZewOJ3zN#xO88j+0)xMi<iC
z_)s(o#5gd@)%q#E<9a3KsvB=noz#<JtvXRP5Z$iF<m^|&!3%iE002M$Nkl<ZgEX)W
z`jnHbKqY<zr6AX$CxxO^^V{|_<V;?yyy$B}sH;~REtHBd_OdRLJM(gePBC6c-*3xH
z>y(~_{GkKI@Espze`z(iPG2K$oWmDQ^{c#rGZrTf{l%l+D48Cz<5Qv<c_gCy5K^I4
zA51Ept0e`~Mt1OMO47E|maf-LdQW4V)f+a7wpL5%-elD}P1q_eW;)P0b&d1Xw@nZG
zrazKj$hsVP!OD6_79-%iffX7xaUq{v*KyzxZHXqv^mLt7L-u`*fS|{oK5gI4x@Dih
zF%|qPddmsXM%20~ek(L_yKDE>pi2LYjpSqS^&f4F^bM@>`>HpUa-d5{67~*U<2>*)
zj`jtCWVs_xlnOd-!yEzMP|o#B{t4>%TT6S(hAgY}nP9%~V7l@@xBadg!U<VxoP2Y=
z+PEDe^||2t)W3MB2&X}$Ogfuxa!2*FZk;+C8i-ZvH<i;`3PV`Cc}Ll_Q=cW%=dS$C
z&lI~hTm$7$O!NX!9qm9Sp`XUt&@A`@LFCW8u27XmK5d6WI-3nBT4VY~@RnUyd7^<Q
zRonoKYBraU@9mmrt)On)_)!4#etVg-V;A?+>y4|u(g0p`(Gz*7q^q_4{|jGuoe0AK
zhtp9BeZ7Brd8Y$=GOH;uZs8P(T~ywX39P8Jet)StUFOTi4mvQmOcnzA;a-%BN*_Gn
zOFl5Cfg4pPx$mmYWnWh}2?U%?PdC^ghNpc&6FuxV8^_lz{%Kwij9=5S&d7!=l0i$3
zJLewLS{+qb-DsM(EySrNht52pCkd0TEMOWm7<f@0osmy@5!?FejBB08pd@sSu0m<p
zg|a#l=Nkj%#S@`TYz}-gA020h8_vmxD5;wS?LWXKO;FOiirsUMmj2lXMVs=07irB+
zf-Vs7X@t-l$?#wJ(BO!Ne5@zGzfv>tyeGv|gmb6$y-ICFM4jb^dE7fSQPzlCPsDL!
zq>2?Y&{aTVkb;6x#D~4O#s?DjNK3nN9L$(Y(Clbfa<y7*iXI1xFlCfT{iEZTjj2DB
zZFt4CC%CeMkjg7IT!G@t2!UF=Aig0kmf_lKuPO%~d9>Vl=L6+}CIA@(vy^T9hIRV%
z;r_Bk-yzSHI|vY6A^M5N01KpVuJJ+FS9BGh><qH*F-f{opDnxb#;eQWqsPi!cYI0k
z$luj=;G65Wtt;2+hJOA#WtBUAR_$bZdRpLV+lp0N&!;*M+aX`b>2~?_J*t<w=JP*n
z{Q=!seS>uJklvAb*sD%LC*+Bc`hkMm?Mwg&;)GQ^*+V~UE&BSOzLWLNaAB94PI1#l
zyg}eXdFE6nHIdex(uCURI_1-(hw5X0MjvdL(XQFGeT@Mog#%l#qPU(<4k#}9gf?5v
zmD`?qWK=)o=R9rSsVAPRb+dl);-o&;w9SLKuAZFHp(6`Ipj)0B7wER=Wxv?SSN%+7
z$xn?2E7u>D%bPQXL!jI)pM7ZHfK7CNq{*R`ynZB1ya}V}Qpb@C{ovD_$F<@W<-HG_
zYbihRq&?}<MvO?X-3-{OPa7K55BhO<qtn6x+u*60%T&AKY6^j4o`Z?x1)JJF+a<xq
z*prWf;iI9c&W&x*a65@zbSa69Yi$W_%kdRG$-fz}ltH=NPloL134Ls;3F=k-&dkm$
z&mU)G%zWfi2J@@9*bb=+tdK?RXB`{5FE>A>!Os}OLFa_1M`)3KWB5+!Po|I+EC`8@
zv8xz4q5gyolLkj9;gbaUpYc{avKkjsgavI4_$m$`r7g}IDRfeH$3tb&VFv!9C#>4_
z$G)TZSlKe7_jEVuM(SA_Kd#pJ_OK?_m`uA`lge62ND!FD6$zlFDBE9BMc+rJ#ENqQ
z5{K6ISMu5h5$7!RC+xxnc_gn$ML!7=TE(qNv$55B&5jCI+jIH~<QlXOqK#ysr=@cH
z4^=(MTh^2IzzrW4U(|y~l?}ews9#;y^+>X_+JLN4Z;>Y^rio0y&Ail!rmd{D2Q~%r
zW<Tm%Yu8KYkqU;whI8uRAdYJ=3%?5*&Iz){)V8n>M*C<V6HoeOf^m1{fhamIEtt0o
zxn8=oq!0$KXUMJ9a6C|%(Bvqd&ZfcEL8~8i(&V#l$P{uS1@<6V2hOQ0jsth}GZ4mO
zUS7)TU(yPH^ktM69S|ji&6OLx<zlFi(`1>JeP^48U%6Dy=*LWI$v?=2KUi9+Vq56-
z=Js{^PRJ7Zqg?n;*gtHSeMk5Sb^tpukZ#Ity7)-)H0R0}nrKcL(!mej*~c*12>yr*
zH~S!TtNi43O^`3~X<W+<1M>?zddz`+wd?QfNZDL|=2j)#nx=5>C;HJ%dm25ngeWN3
z_n=YVPR7x+L}K%mdz^`-w<Fpxgz0r=Ol@2%YS**C32aj3IH*WcIzUjQoGmII0EI#}
zgbM-`c>xgTa`khHoi^bYV7gD&rzUz@d8G%xG;VIxfHdfaA)+YYnum4?YnI64rOOSr
zmI{Z29PPm8bpzUJ5VD~$V1q^r9fNP^AG(4mXylU<S9~xQ9<EeMlgWLa_<@jOtQ#^w
z!86yC!6EHpluI0y2Z)>=smQ>+Q_)6T9ogSFDK7C#8`<f^SWiW_ZJRs7pkrAf?28^2
zL<2KDNk4gqoPDayt<<OS{QkJ~($2j7a|iSUTTlIT!<=%!G#W*;RX*@W*E9)05|5AA
z7T^m?%B26nAFSf$+_UBoHGY*gqB&p@@<LzS^zF*d<O8L{lRWKs302;;pX2k-x`BwC
zsz(OYrF1TuLJM0hH>B=Z(RHd4GEHQa%42#*ie+?bw`|vjf#<yu3Y|r-e(3@3iG6rP
zxI#8OMopNt?QUO`4<>&~#9$U*!N=0W=zv1UtZVH?l$%?3_|w?E;_0UbDl^X}AtMSU
zhMuvcEm#J8?CZRy${+1d_={)b!2|nAfYtis$V*=K!gA9yulIfq_!UpAR_KZ2CVeM*
zOz*vW&?i5l4uV4rP;`oAU0<TphqgNlQlu+9vQCj3TmoZZrb@bL>xS|TFMmmS&a-c#
zL8p{-)$28S%D83QCe;t#DY5qoJB+P!=_C;xNb>+sSJ-e)-?fXBr~X9_mls{^if;A;
z`Fa1$eWiOrleXH}%557HX!3QQUXzCq1MR_8M3QO@kf*^W62os0-Z<9!nZAT>)MNZA
z&(m&jfnVf>g7Sc+Rzr03*%j&`rEDkq0<gqK$w}u8M_ory+;SYMmgWHEfv+18_#lB0
zMSq=5tXVDJ*{9b%_30noz;{Nq%kwe^Y}hHWu}|3-&{wilpMoc8sVnjjC)Gpuye6N^
zfRS)fy4z1>riAI#bn0Q^7W$!~@)*DBgz#8&&?FG$E8XlP`^y=yxh+9n^aufh9=6c6
zbQshbayd`<K<XSiArF`Ye)ybmv7G8B>^{^LL#e#V-^%N@N^z_#a#@QKzRIcVH8){$
ziIIM1+ttVPSV`+uh<LJ)Hb+Bj=-_dhXjlD+vkuY~0Ub{y!dCg+)7A2g-I3RpR(bFW
z?Tmr)+JkEu+BdfjwT(zj;p<W^3qKX8e&f1f3BVL_L;?A%NZ19QbM|BChh3mz?$lwO
zu{3n?fqp}|@oD`FT;LhlFu~2<4dZLqlq>dMuXlI%_(qETEeJea1Ru*P-3Wn-XmA1@
zNoC!fUT;#R)0}j1y&zZB2`oI>1irO=;NQ@2Jg_0J@_>7X!7ZGs3~96IJJVM~C-RU^
zf8{#K6NY7kdHw|Qk}2$kY@%JM2EUMvn;8%pj5$>wqfY>Xz&~({>ktcHYpz`np&`s7
z9{ob62Is)VH><V?lrVG?(#FJqp(t7g?8SNXBghTTVcUT&$|0`$U0R@gcnHUACpkw4
zXoZb<XhAR!*(tCgM!u$eU>meJf@rQs2$>`?+BE&Gv69CyzG#(A%uQ>6KlFlr=$lv|
zP1awXVP6>>n#g27w9TV@)2^tz`quc?EM=g+oIqU#Gk7CY;!>p&UHp!E<r{D1A*7C+
zhnyCiD{|`qty)Gg%@`Gb2s|kZKVPW`H0_5fmiWUH`=tMJ742Y@#U6x^yXLJ}#H3^+
zt7TS}I=<6xHzl4fo5EB7_(^-a0*b9lp}0lVCCX@nH*Maqk|)<*2ghu#;%R)GF9nkE
z0y!(44R$zeIB|f0L3Hg#KO6&oC`_QivXeM2fJ*S%6+9d%z;Z#!<YfmTz5#Cx)9`U#
zNp2lfBnBK2yZm2CgORE;f!@L(jTMFNV3(<!gp&sD4NgV_oIt}Bh|+-*hL0KoKEW$y
z+|m~CP;SzUbJ9)zrtY%jvlPl3PKRui2eaU3tF)Y)9NZk}-|Eh}sSv=Ci~qr<R4sR^
zmNBm9ru5C=Q@59qNqm_F%92hUS64Um49e{v_LXXAOAlXNTSjE(N=NII;spla2CCqK
zo>57`L;9<HR9LV8+omA{%gC#u@BtgW*WT46LSHxPUW%9<EcD4QPHr^dsB1!??bBub
zL|sr(`$qas*xfP-8#Z5xeJ6P0BfiuP$;K>w*toGZ^10(OrXdn_OCr~xbe$u2>Tk5b
zmK^wr%YqLP;2+o`k7JT{#lT1i!_+0}DY3|fE@4B;=6T@fl0+{vpbL6Xoc1d8gm%b+
zPIG0mZjd)$q1{p=oAav2@RRO2?MiGNRXzt~ZVM~Tz*q8<%XKJy0AlD9I;0)&67a`=
zSVp&P=hm`KyHGpO-ZH?)7P^t~#-J)6&8!&eg!+&jz1wn?p-rR6QUY>OCgjnH^!2r5
z>gvgQUr(zEAVfzkFVhviQ*B}!H`s<BgzmmkkhtW;p6xnDKDRT;T}<<pAow+dDqq<@
zqHck&D2iUTePAvL^rNMtx?s6H#KFZ+f+TDDn(_Bu03fJ&w{%w6EHOZfdVnsLATjZE
z_%itNWPL;rzx<tbzp^46ZK$wm+7b5QkCzVE(0wpbV?NNA4&W*g(yusLF6GI%pd0b&
z^R8c#6X`KQz9NG@q=l~q?XaMJk=b->9pci?2a%-&O?)yDBwo~^pb4*#*-{ZL`JQUP
zhHP%PjJZoxdKDXVvuNo9A*XTTREh9?q5&IO!gs>T3kPk1G4>A{<bT2en>|j@cKa*t
zUbDCxtArO{58D2<ZQ)v#t9BG#biHLzTtU|@j1$~l27<f0yL)hVcL_2;aCi6MAq01~
z!QBb&P8c+U-#m5S_ga15-`=}dtv;u_tNNVYYc0SF4>DEZ6t|h<f84j+6Ul!IHUl{K
z2$vU|Ay#!qWV|Ti-SDdhNk;o`K)zG4=si=|KWl})DZVcKfd5m0wH85E%3Vam?bu>}
z-t*Z5tMAd#uC#gsi5d1|j&g&v))(GtNys;@_uQJbik6M{7tNH&Oz|RwA-h=HGmZF)
zts5zap!{moNBU#Q%dOI+q^fz9a>C6E-xAk$FRDz7Yk}@24m3SoxM7DgWuYXhNuY@c
zs#hj0=EnTc%=>0IA+tjJo$3}vS0?gWhOv3kFa}APi{&)J6+z4^;kImgw4-WBo45X_
zU#P{aER)6^|4##54cLcu_`*YBt8Y3~D38!A`V8lB(Xw^O#b8G#ksaNky0Mg24C87i
zkk$w=)YPKj@pHj9Wl*_kq#BQJ%4lFy)t*?{0D;N=&&K1q!7NT^W|oZe3Rg)c(-Zwc
zwNo_!re4|RfMIijp{1)l278m!l8BYs#{?%OoO8lOy1SPC6YQ0lUDTZ0K0Ta+i7_PC
zRD+im5*OzCtnAg;e22v*z*+R7Ij{8549Na=h-*VEU(8L7Pv-xoA0uyh=0T}02=%4W
z{FCL$;;9>XH9e)40<4by21FBOuZfa!d{q;7^wW1@IqFEWC|G{R-2TsH%08d75c8Ay
zsyoS=LS^3%%hM)i%a~mcyd;99yA)aZK>cKX^YWeAuvAi~tkCJlP&2V=RI>0$BKSi)
zWCfh8PPop1JG6Cv#O|=hY?A8{zx8f;3%lrhtXn-c!zeJU`86}G0Ye)n%i|Kn%zVBH
z^MMw+$U@-aUSEq7)?0ku+r}gn7biwAtM+FEL`-ACI%}kJjS~2!!6m*w8k>;jl@Ebr
z4+T}W-g<5c+OJ*nx4L2PaEJYuMF-9hs6TVfIY&i>f%qayU*1-5Oz(fHF_lU2NH>!6
zatvzKS+1?pu<=_JxNqmC_)0#P-9eS;%a`g1+;+I6)nbz4cUl$D@xJFDr51sU<7wGI
zp|V3Let1komn1x0h*XV;usxL|mnbX7g0Uu=a8bRPLru?YZ)7Gh#$!x-j4ovnfD&)b
zy>6r!_mz$Np?_!pL+<pmyIx@o-LkF=4&cuYmOPILIa%^IL2i4ZrhF>VP#29hO~haw
zm7PdgOo+4)w|t9qW@fmA{6EEtHK%XUz7YRpck=hE_fXF9h)rK)(rBf+NiHC~DTWY(
zHs9gQDt^rKPGjCi14Y@On%Fm$Qro$>R_O*XdZ{2~pb(HeF0$hElc+xHO}3m+$S3@)
zw-zy@io)iDn|9vbJEZwS+Ri(z+lj`D&$<y-ubN3A5?T&(qQC#bYE>I;G|*Q1nj)b5
zeVe!kb(&*nCivuSc0WdjhsZEphZHSy|I<2yaQo!RnGj5<Ku<HC!T-BRTxkJmXJ0+4
zohCt!ehW9JaMv=w3}}H8U9ZK-N)g@Q%Buf2F=$*ciwP3AUoz}@?6|LtL1>q`jfS<C
zMFO8+%0m<eCo7F|+hXkR;<p(fR9~Uw(NF)WoYmz)DW8)+NNb?qb<Dc<8LnktrXArm
zgsACG)O4z%0*jcXi@csl$H*Ju6X+_v{D?uU_jQjg#-n0*G6h{Cx`Cml`FzcJ&(QoD
zbKbN5oziJfNVD{9;v|+TAxeus0<JcX<AHb^mr2vC(zgs^R~}(wGDT%_Ehs;D93BKx
zum=w^Hbp9oe%n}`Np$hg@o3t$l**nezj=!ak9nXZ;U<Yjyw0<wjrOL#+Y!M|I*F;+
zLc5Lz{tm8J8N+!e(~&ny*DSd5fasW?uTf2|VPsf2Ia%7>BBH&k|KbROz&)xrOYWz?
zvAeG!2Kx}+*F3Cq9{^2y*F|NE75Uh_mdKPgg`4*aFTZGhy{`$On+UbYLaFjXW@1#J
zN@B!U+gU#%@#iN-8|a=`oXI`$C_6QZv4hAo?vg+eaPZ&lhfTyCO8$&vt7~|e8rE@V
z;GPS1<D`(2Y3Jr1rZVn>El8D3J6X6@nJULKIV${)<D@tq1Kv`SoWlQIo2BB4oPQuh
zJo(9P*bOnTsYEs+j>PMl>w6{8(?G4ZC-aEOS;FoI;TnR;yqiP{N$|XuL5a<C3;p|u
zy%}lBNCF8Sq7~BmGhWh^(&xuddEfL6ZTe1FpD1w9+?A2$5>d|)ZgUaErhij7V9`ad
zED_yjWuE>NljP=(Rr8J}g=h^ea<<+j*WnT0f96Ew?DaS>;UYn&)UzMx+ZyAcX0y(G
zA`Z;mT&eDOZOr$Um4(NKX|rmm8Hi9V9XQd9oZk!MdU~x?UgKS-0M{KFXM4Wdnb&lu
zdmMj%$FRaQew}R}l=@tmpb-L@QhI_mIgA+Qq>cC$H;jYz7Nz+tu|$AC03qx}Lq9&m
zRuKw&Yf?>}DT;ZDpR)ftGY{=3jXvXmnIJ(iuZJM=vfp1xMc_-FXkMDEGNz|<4rLYZ
z&hFV0v!HQ%*1cF5gmvFf;gsqV(@HG}yhkkUr&XkeVO<?*q2<$yGHIQn0JMJEX+cB0
z*^|=$7>d*$lpx1MR<hK3!OL{m!!Q~bvtMJYc2X!(^Jb;ve#hihGntb#bV4{f%*p<&
zbWAp8vK86=fXi81xiWpTHZosRG$vviF@>8=SD-_=AyAhx94Ln$RyJEIESgNI&erp;
z{P)R_E|Kl*F5~RPKF%)B-ch=5oyVnYsCFQ&(=ZTZG2F31I4-aM!N77FiE&_iCzbA*
zKS7h2lVmx<a}<hj4@>-Q@5$s1?bMjn8|9aSBuh&fue0=eE)kHJEH%hNqHFoFG+Cg2
zHy@}xcR;XgGg0(Rt>f;sg;RGp!r>fFOA)0El3IOS5D2+QUX{!<^>w?AwWNZr8dK<~
zS2#xysr#IeOZK9JC4g$G0auU43ldw9!{>B*u_%k^IXNl)S9o9x^w(a`WyAt<%8}Y1
zfWst2WlSfUj>*8;v(+jb>)}7B5=T=WY)y;k{L4AmYE{n0XNUfll3UIA1Yqd1yS=5%
z+Kvex`pVE2fY^AH4AQBR&T`PNY@}w-PWeAcKyTRe^43VS`g8X8EZAM*d*urLOmBZO
zDvk1;W#ii}EMcYg8|Nv@YA$@oMjnc;^MjL}_<6L|%ysIYsz@G|63)kILo<z>UghUS
z<j1q@CVKURM)b6`CqQ?l{$=ymeVN>m)4ApZ*N<$gPNy+SEovJo2gM+ZWbLQMh^Q1(
zN;pB|Kw@*k$WN$PgrC97AyBTk-LLzb(c9+4k(4l|Sa8Q%p+Fga)EM-C@p>aT9S6l{
z@2}~$%+KTwdc|2N5A~aiQoAtM)|g(fhDGSju921%1p&W&o?ioMrvOLZj+aEXF3}lk
zCjx-v`)O4%qM}ulq~4smrqxeGjmeIp9}!;Tj@uJCN}l*L6Fj)NO%bnAt5R_P#iu2t
zf6Xgv3leD_-H#bU2_ps9`-rJ0)cOo5as3p@cV!xY&bj3K-?9I6f-s7ItNRs%7tMkD
zzxzyJ5pFjJXOP&@Z~sq}|AH5zg<1b=F|VfoJ}PbYWBI>h%m^WSDlZo5#K%OR*`>|?
zPk6%r-S9z%`49EuD^%c^$N!z8K639oX#T%a>lEPpqh^^qG5$kBrE^UE>^}qfpA`Nd
zcu3c`esIOxb!bK;=YJmf{}cYNhE-~qp}faBg(i#)^8cR{%#c2mPpGczAFO)z^auYv
zu>ZW{{|geR@|nHc{v((B<^PjZ*5|n#ChOXJCDX4+Zymj?&*h8OeZO2t1GhB_+Y_Rj
z$2QIw`(WJXD7=bkazRgO?sG@NNi%l-;9}BXi5<?<pA3K_+@rbGEF7BO-|)LjoOC(W
z(H-_HQS4|$CQv0su9`~_?1$3+%`^B<V+kh?G|>}jc+tq>{l!(^-kX{Zz_Hqb897G!
z3{CqIVd65BEKEcl#v>V-6KhMTjGEwB{)u+Zc|Ce7ct<-drgLzr@WLRF|7-UIn(t7X
zwn9n>RArFqy|$FCP*bAe3`T+!x2y`Rr2sUPiE(aAdejJvpXBVEQZA$EDdsc2xvB;q
zyEc6hQ)>5bs7MnDrtD=-Tp#gI!$h!e=L^BDA&2S)V<vYDqL&vIp;`j;S|sKhAcX~~
zHHoi;?><=aMSDM7U)NzET95#U8boiYCmH=kmMlh)`lAt`6RhR%TrR}7DwHq(Wv{e5
zoeG>6B)5$k=JWY(*|KcaXT(L8QlrXxXtWe3!lfDZ!QdY=#v+h5axV3TH7SkKWF_UU
z4Q%J~EXiAAE$=HfUE-+(39jH20lY!2;UP!i#1((N(<QeZQ)7FC23lRGoY#<8(|}n0
z1R+HNFzeXmR(L+=t<w4=J?C|R?jB97pKXCo5&-0w<n|*5z@bQ%MFe)#&W9uzQbTA&
zQ^ee~h|ELT(C={{@BAb=LY<w22meNw3;S!1tpB*GqtDdPFm}O|SybNnBv_@tmfHTK
zCWqL1pYgEqcp)iS6x&xuB)U5trB51TrV20oNfhUG?q@MpGvZNIX@;phrWZe*dSV}l
zpAu$+_RD6YU0Qu~6CUidy(RMRnd7`GgR$i7<jVP&J8;kGBqQ(GAE2TV77gEHQsZrj
z0fvCVtVHh|iKyh77g*s%b$UoeS%_Np4_5}}ruNVMi$+mh<e<uZ^90@uI?<@02~ogD
zbJeGPj7&CRmWk#D<ebHd7^Q_c%dvdF@QMgzk$zrlI5D@>FDUh6q%mwkDsDaSo*9%N
z2+QTwrz3F>%OApXvyEj*(iJkVoP}YwU?f3YDpspK#zUpRaT5F8diBavw)rg4Sbu`{
zio~~brSCGoLD)ou&=oa{fYhK{MIr^nurej!+z^ILxkV^jvsAhoYf9)fD_#FT!*-%f
z1is1l3~&pmekBdu0uHk=^6*ROXL=PlG&*%;E$`(CBsb*iU0F)G50TxNyz8RoMZk)c
z-L_M^CGB4Lv&OK{fMyh`wJtU(Uc_nsaSr<!5j})hiW)?6maZV!no`$5LwWZy$l1@d
zpTc&eF$HrZ6$ustV(!?z>?{@?en+oBJ>7cTVC)I}ya+O0RS|`ASw~KaE6u*OGAO@(
z#_=jigs*$L@8@u`5w3Q=sY*}trRU?9-fD6lkdK*1*u|h!ZiR^<5H%h~EoI(sbF>_T
zqWlEIlOgIlRV)R};}7NiR=x|h^GQ{J>GBpy87k#<OsZdjwLGVJKf77r*7kQ`xKAiH
zP(IE}AUBm6@e>nVvU@EPcM6nW&;5b039lEX6dft){G2mI(ybLm;sgQNH;-|Bmg@W4
z8c~1xCZQ2VF~2l&JW<jl;fzrV03kmjX}+q!`=@t2vBoG%&-msDSPX(W4C^8El7hml
zn4yCm7#N5Eeq18+6~3rCTHR7Nda&d#`AKLP4y;45&qNPrw_#Yf)>JP3(dyP<xFldY
z1ROUKm74WNMEqzE<ODJccRh2OunNwpe1xM=PNc2Cz4|>B?}acw`dQA6upRztG5?lw
zNBmMDN-4MWkpAQBTk=-+a;c}f+Hev=ey7@ZphZ4J{a+!HJJRb|9=AYc;fTtw1Z-|E
zK5>?7cFK-$sJirlN9S?Uhh7Vw??l2K(krAOi+NOM{RY=V$J<b;wbd``W2<MdIgzq(
zFX{EEJ{3p&^D3qX{<~3T1{++73`z@M7>O9I6-5&$b`r&VP))8b=7ethi-cQif{+rF
z|83hp(oTswBVPsUf-HC3-NA)Pa_4A8^|FSvkPtcsP^EDS{e!wD6PznQVv#h9l~Ha{
z%UG*w=?rE{qnt%X?>>qBz6nQ+@V9T9q)$?GdxSC>s}%6Y=4#(m%`h8hD+wUsE)#XP
zhb1oUiEFD2eQtC3NBwpju)NZ|f2)4WK+BsJ24O>#azmIY)lPQ~n;IVw3$%ht7An%m
z{fkDyG5v}H<L2GF1eD~`?c2rjD7pa}J+(R7_<1t=KSDLmu|2p~(_@774Mqis7KgPe
zbk=e5BLnBT<`nZP`!EhuKIDurKNmjI9F=;#4hZGPUVzx%sNa}rP;2LKKer^(Oh>kz
zr){MbHB)lR6;K0$)5Dr(DfN%QRYA!i;zA1g<kB~;9ne7x)ep&1U8}f&Q#perl#?27
zl^jw{o5U*J{K`6{#auowXRDs2)w0CXlQ3AVUk|~>b?~MNPQ8p&e`E*W2^-}K@x|sX
zBxyq@9&I1mF!yp_tq`AxZZT6o1}|HuyXC(rf#pA`H+DDB>Nj(-*jpKwe~Gjk)g++Q
zcOR4uA?X`n^Mg}V$8^0@a99@aRQ?#u#9H^z@u%jIap<KX{W<%)$f>TM1E`|8znUR&
zsGxsK*j=(!iRQ8|^?ts1MgmJdhdxygXg>r9!&d$*y+_#|h*KC1nI>C?5%>BbbZF~j
zmCMSOi(Rvm<QqHfWVrZ=q^t<s<``l`iIoct8|<E_6%H;||3s1q2#x%f0wC8Y<Pt|V
zmpbE5;uo?w!t%=#){peH8jx44;l#?jDU*S<CR0}9z-Ku0u*vvZDz)v9-0idY3!3#t
zjW4`ZT|rW3GCX`);yWM_$FD!uae*W!g^Hsb8ndtk=<}%}t239tE7kVE4IG!K`AVU0
zI2ID7G2&Ok1$Bhlnxx5q-5eHGORe<)KcPv%+H{(lIETE&Kx?xw`Fw^<;$FBa!Ow_(
zLP;={*M46hVNg!s)i0H)<CBP0)|7ro928EgaxxJIY?REPa#Iy#FkIug<#o4D<EQQG
zb;Sms9!1%8(_>uKtDH{xO~kS?!1_@E{3{akg@zLhRRHNomo<(ka!#2E=4CujsfgSP
zj!q=2lxkq4ym00j!#6DAGs}uFv~>JVMzIHNL3|$HNu;?M-kHaUy0?K0D{;=nMvNgu
zn7?2G&QR}(LLWNO`$N=Rtk142RGU{?JRQcocTz)oL%Jy%y*I>=&Y6keAvr3w1&?!V
zy5-{yrSABETl8_woqlEe2S62U7ur&$6Q1d$_AG-CeO<SzClR;vIT!al39I?l9FJXS
z1pmtASmA4_syarf+HI)GdN{wJrv9X;HW6k+xB8Wg`NbXFm%*sd9OtHnJ5a2X8%grD
zZxrREl~m8`CRh6)r4#0&la*zAGkkbXjAuD0@r8xaWST=tk;{G}%Kb3e@=6OOuQrPE
zon}gpV?fN@NiJqP{LWaK$FWAvW}-wAr;3ow(|yGKSy>#$p};%r>}#0qc{Y8BA2{mg
zsbcSa7ibu%BrI?|;0Zc!LhwK{C|s@oN^*=KE1{si&Rd4<fZ#Urt>j&u{~mce#2Hjx
zaA#+1DEww69NQ99Rb+<u*tFfEd`qPKM{z0MlSGJ~0G?RiPKdb2S6tk%bfXG?hfXNL
z_Ey>J6ZB+M;CJZTwO<W}W4NoSL)QHqmqqU>ZwNQ$t0R1{bx+nM`3BGDS@PJOICA=4
z%7OGG&#8SeYA-Uq>F@^5Pc=jyIZ;7Gw!#S+$txP_5PE%<w7?#gyl01#n42`Z4Ds~`
zjIBYy9MgRYNSm*%XNDjf3y>Wf#1qgz5Fs}h=BtAs6Et3F^`g;&*KX#TRn`5upk1~o
zStVN$T48Q(rG1c4&L>O%GD$HPAG?y(z79O}l#X3FwV^ugu^S1ThY!b)?wF&wN*gVc
z@MDktCcQ_3wl(J|>Pn>bkvC_=-3w?vB#wXMvxB6WN|`Iz!jeeRy)qx7=nq9T{`nr9
zz?YVcS1`a-@^gD+K*xvsf%buX?)#sm#u%)pP}}4KVV<(2@#cG7BLrf5fFe!N_ZVTK
z?_aD<O6qbHk@KjrXtN_c#w!BhLJ3LBiS-4k$GA~05EyYo5q|Ose_y0u1;HX`2;-u(
zgO<&#gUaO^@6`l$lT#=yPg7?if%$O=jY|W;Uw3`eO&yZGs)9sHa5~Gv!o#R^`HcxV
z9w<!50J10f2;W9x=gd?(Tw0Q}=A_(rrS#Y6uKN+Dz7xn1OD_IE7w8Y5;A_`qE6G3b
zt|=uk&5FunjH--FwjeT>yk}HXqzYJPXVjc)c5x2ea|&dfg-#gh)kpBpKLOC}p53xW
z6^6K#>)3~7oi2B0COEz}*wCSEU=Oasw(+vj!Q|g1*LJ_A)oF)QO{NBI-2YV8mMg39
zP9iO~UFQ=-Q}`vlpX+O0W-)d}LDt}WiluRekzT$Hn^QSx$IV1ey0|Jpe4xlTn}UIg
z-3AoI37e!(^C$y?tBI?B(X;@oEalrFJK&D`4DSYI*%`sSIxA{4eUEX=XN8s75LFg{
zQjXS4EI#roMfc{9sJ=9S-&Ex~^^+C_tsG;&{9$X|daZ1w@Zrhk8fTai2wO@@42%ST
z@+_TSt66BNp_cRa+>Z&yOs4a~NyscL8$c<#DWkS$DME6(ac&mB2H!cM;jmR|JB?Ro
z;w?-Rbr0_dlWvs|5Mn!ilw;_jn@OznjU~NDFOCtMSVcdd{Hg)yqX3!;Rk+>5=M=aH
z(jMpCQzHAz()jGH1Xk-6sq)pHzVI$41XkxGS#m?ZpdJijsa7O7Li8wxqh4psptM?}
z^)FqQ#^?Cz?Yxxqsooh7oNNfg!2H9+X1GDpqz_aNc8j!0J>C1Vy}R~`q9=k|hmB#p
z^WSVD4{_Rc<-9+CxgSLfZT#EVuSGg-YQ>K*U0-E*nTg@9Vk~bI#>`v#&zFz_n(Ut1
zjr{SD&<~a`i+FAVc&I{N^5YgFd1~ELoj*sLjBqWT>@WAUi!NqI?K56f8agHz#W*j|
zf`t_K6v67@N4z*Xr=I#HP1^s|-l#@t0$cc(79QP9hG?CtI36mD>A&x!D3&IZ9tGK!
zm8i##EL370oTlr{kWjNVKyU=&&0V0b`{4Q6uW)WQBoYrw>oMdaRJ5Js5Fb9PqukD1
zKdC2h$e5CT?ZMheCow#2qf}%&#y`DNO<E@spZM-M6lLkIXXG>I?K0cwR-R@q6~;1T
z_13+@j-uDKwSSr}K~UDCFS*YI-BRz#C_gE`nuT6*0Z!nkel%*Zp2^RI^oA5WmS<qA
z;BmTij_`K=bU(%CrR0TeHj@*8e3PV-n`={<PW!by@<5I}l?m84R{_Jd^s_;zf{o}@
zB}*ErZdseP4=atz=00FhZd}?NdKCHy$DFq$zh?0EhPnS-n45FX0utyWp~?EOqW9-X
zo~?~7-il;p(QeAIP~NZ077Y~}B-H7lW%Gra%R?!%?#UMm&qPv=OCg9?t2&@9XxJq$
zHSi|@Q*5C^EtF?p;o}?EQh>NB^GWKndo*!`Qx4*G8%U0-LU{|xh>7lwL;Bzm@kz8Z
z!U~7VPus^*Lso-(UilUC19OmY@w+t~0AU-G>R}rKo-J~O>I9wOO7-AWh$2bY8i;wV
zy;#Zf3-K9B$hi19bYP@Z2_YQ67VJN#W(t>iIs#C6RyHhDqpUsf(^C5sX$rX>w+ADB
zN_s;B+wEQ$tNCv#vHS0|!8CpEL;)5*0fSlJMC_B3i}xZ#zR-HmW2A3_Ai|J1mt?oz
z?@DiOlpp+CjXds?VoHO{w3&tv$j>WCM#NLtr63~x{=wUjm<#QURWg@M8OND{QUhsg
z0YsY2Om}KR-Mc7O_rWn?7#0sJ6Pu|HhQ~$5TOEA{yhc!pqg@U_4I{lSSCK&p#hDB{
z53|jpD$XfuZswXpu`OLL6+$YwXB&cY68@bHt%KW~y%ZNqWy{@fpGnq=Oc|4&6^L-j
zA63aoc(7}`>2;O(Nw)SRgt8ioIj?@-se#fdE`EUPNF`q~Y|ec5B(wVGd8%7!MTFCu
zpqCqW49^c9cm06){p9rMQ!##81YCABGFTL==x#qUP93CbfCej&>2++CrRymd;EU8`
zzcGfT^e&ND`=;5b5Z|1|vg^-~TGI;A6pQba*+>htJCD{`vUN}=$*L!4b-4HJq7f)5
zfDUAjyN{-t)(JVMAQW?=5uN8-Fqx2j6am-z)UDALQGde=GaO-l&-RX4!6i-|goH2z
zLDPoNb;_gfoeFAOYbDI}eZm4fm0ZUOS{<hE5GsEBn4OzRWpv#t+2N2hlG5>`Phu<I
z;VQ;=hV2HspIeVzkoY5GdZ8M|Sxl<#4l7-uu6^;>AUQ9aau4T!4bQQPnZWhXd(34N
zX9++TW=QkM4LyqUkYEEwG}G$6_!GrOTo>nI{d~0BNB~0O;nY9H^EVw2rgB;3?2PDB
zH9^gSCHlr@rkAj#cDEZ7oTTfwKtrjzPcdpnT5SW~Kg@C(@Q-q&Jzv5BX0R_%{s>9;
zx=W)Nlp)9SZSu5laU6O}Uw@^GIzMEH1^#LzxQgYmzUw{@|21YK_Ps!VKLP65lvr}K
zpYj2@OYf_F2B8M;jFhY+)4<K}WJHLwLt&(<1B#eINo-moT)o0Cvf`rt?i6@~#OhY}
z4f}lhEr_7sPnyj?+DYo97XqwoUvIlN-TT}2u|43$4k(s?C80zW4v1ATWR(nIXzJXK
z8+v_{h1e`(h{nn-fcizX$0LHZ3qMEA>M_ad^u_oi^~~|z91ncAHc7^C(F<*zyM>c^
zi?z%C;bFQCeOco2J@|B#kZwlG)e7|qN(y<|>zVmbfvf~okMZl3r^LWh%Hn_l{p`oi
zcGu{7ruB)jW6?=Zo5|acpgC2;){O=dJ`gX*z8D2EOd0<N#X17^Mu=E6g(haoXRPrt
zYwRh&cQ|b6eojgqQj*G;d^jXr_!w!$5@9<Fp#mS~t}SEduioC;y57q*o!+w|b<=-e
zdO22%UN%<+Dw)3)uitI=tmb+q3XJgeavU3ZUac0xtd1?pl1DiD8%@+ciPMQ**a3-M
zH(XF2<K36yk%Wz!`WJn=@w3?rjNP3#NF-qEaic#erjCN0))G9w<R;T*2!7*2*S~jS
z9a}0L?so^3S=2p)V+;gN?i_G3p0jrK#?-ug#64A;#=R-#NP?B~pZQJl@8c<PS6QZs
z4ra-GFKN{eqp`A+_E$pv8F#?UGQGa}J)A!LD%d`Q3y36w6MWA$MRqhn3s}l)O=Wa^
zyoBSK>!ihb!4VA|oFrh{t%eZOwOAEcL?HqMWuwZ|0-u-j2C_=<+<PkPZt1;^y`_c+
z#<m;faN8lwbU^_A&Em2PcKzb(x@j|;2ZIsr;QqLeH#$DhZR@FDGFkAcA(hMZq(sq$
z#d9X|6?81#A7Z`Df2J}_xX5u8QTr6>`0DbDC91YHCql)6si-OX=bsK#IfwvjYcCS}
zcA4V6d?^QZ2ky^!RQwr1x`iD=t*&>^6&ijd@)yQ~n3HT0lgr7ew^m1C_ticu6kp9>
zN7q2uKizx#9PAqv>r}eEorYNKYy$`JtWNcd9CiU9CK93Plc!J$S#PX<oW38tQ=*T*
z?s}3?ck{8QL?1d%a({vA3~W^c-Emz`7E1c+uz31KR!lu%gR^{+FXCKGll;+;i`+PG
ztw0RG#nIz1;V4~8pKabyNZY!0-{$73%~j`ctJ<Cg1j^<l$H~G_O*(>WlEKr)CtmgK
zhV6IEwZrdz)t(c*6XfTAmR6R)!YhRWzgYbc`6)Y+d_3OqP<Fm+VmAq$+|5h~RTe2I
zWtqoxKt=Sgx4^rx-;mADz8XL7pq~m1j{vmRUV7%G+%EC&!~#b<CCVtX@b39O0gHv6
z274w}k!XI-iVaqmHBgmj|8=utMeWMp_07^mvqJ|tjm$HmU_5jSag|5<JJQCF0TE#N
zjzy3|e9eZZ&P0A)6Kk_pZYks#ADFUriWGT>+mnORgvOUcbV6{qkhxoZpB!PM55!?(
zzP2kG2n)_)dz12lO&dk7&Qg3DykGA|KuDta(RM%=zDu3CoGE}mb$V}9&$fF&3Bbhx
zQ*Aiv-t`ln<UwJ^f-yg)!d}Wpo9Ra4C0vo67chc&zGq1m77DEz1sbZ2BQmj=URv{`
zuzwxlGiM9tSoh^Tu~V@BC=KAs-CAu7L=C>Jvskzy9VNW1tlXIDIg#O4Ws?N)Tbgs-
z$$M+h&7&HgPN<FRJMs70eKoP<dP?>i7PwK0-;i4m9}MD21~dKp`8Vr%o80hoBauto
zd&C?T?KW>v*(0c{#*@1D@qzs!;5mMoDkY~Shv2Wi>*VKbf&IA3mBzNV$^=tullPda
ziEHp@$6J#3+Y&=x3l^pDI7c9B;^|qyI2fL99w#w(bnTzQ0>LpHLcpF(Pyn;=f!|2K
z=^8BzI3#F=@Nm2W%=1T%dR9o4_^{4@V%C#Id(^d8EL5eRDiO$ep(0WU!kj5#LDxW3
z9m^(&hT)Kpu5qWd`_7M|06Y1q+w14n$3z2q{Lx8xieJVl6h?UX=XC=y=MlEw-I9km
zB9tiPu?W@S-KR!3EtNk!cf1Q9AJJRX#G2md9eZ*4O}UYT+QsKc5P?W)Bdn$#=9sK+
zp2XR012k)8`f8`HVsl&&vYS|Pa6ck0WEd_idT4D}XCqEEfxWN!+$g)$*fJk5phjxc
zE}*`8*6jJPRl99pgkD11fLi-V$3GFz?suD=Gv-Gn!`A_$`ee7w37Q3mm>Lt>zdfd`
zfPTIRJX)AL9}D=&_B1@qlj`IP5&*o@lHD!50-tvJjV%uHTjJq)$_uo*88Q4#7K->I
z*nr;3=2e!=LET7R`QAGId1|*61jUfiwblgq5&622sFOx`<^wESK|22q32WuU1nWfD
zD^x|%<M>uwS6N1!t}DUOho`Expp`m0{xFp6f99%~1rM8FNaEQ1TBhWj@>HI-)}HMG
zPmhY8xyXyG=k72r_8jjl$b@ZlKNA7olQDE=Jji=f`%a;;Ea{C<n@di2mXX);aP$?X
z4k-l|>Ou|0+%27(@Wwe*3F~9ya96nI;=3>J*2Ha$#yT<NQUNwPn@Kk}EZ&s+gO!aS
zrxynjfvPn@{9kqFV9Y(3>bta?=YE!-4_+P-I~6O@DDdQ*L%gfzuPxAjg<PZ4*&)Qf
zA)W^?)rzy#a?Wd<Bzwfyd3RG67cOg79mh3Pdi?7ct^02I{1$j7b$#YtOm7{Sm`aLu
z12&#6lfr?gkqJ&r%Hw3*%iW9fo?XW;oa6<ro|lKSZzQcCn1me1LAx!7<mq~8)zAW?
zFq|e3W{YF(7ngXnJS)$Tw-+HkACuNy%fj7Zwi!RN0f%W=%jh~KF@aGyyPnp7>*V%`
zQY*EoNB`m=&nlf88Bv==^Vx}G-VyKMqEg)&;;_p>{MKd3_r-(dAx}(~esZCBl`1OX
zKgfsyXpTSrjFL&aoXp4Xa3niJgZ<&ZWOVes9*CQK6@890ZcIqAd_B}Z`J;qyh5F`3
z0BhM(yq!N$y8;iPm%KFHNdA5mu%qLSQn@RhB(BrT7v!?GH?}ss`fx(s%Cw4_$Uj1R
zw_W&iyMy*@xZ^us_x#RNl5Tp`5wSn``rRmu;N7}6p*vKKeD9m5@AUkweTwS(1fqtm
zpOs_xFzHxJEsPZ%VXaOs71*q5bqrj(Hdc2}u{XA{)4D)tyA9$g_q5oQx0OD;q4A#8
zEz113gB<gC&N^z<XxzPNR(%Ty9#nh)g<9T;9EUrnp$Ok&jBKk)%-R$u2CX0@##UI^
zG2ikj*{&GfBB5?!JWVIOD1Lq3h)sn;Sx|A1qGYk=xsckR`dS}ThdrSvOTrt*K{cPv
z-<9M!`7MA*?*2>sjP5Asv*!-STbk02)Ya+8Lptt07Hoea2L*`iK{EH^8|ZiKC{d^K
z7nXRVe)`ig?wDj(p?Wx^v8;IbVe~kMEb@OfyRBsRq0xmJ`D>@zTA|@0Fsfu{z5|~$
z3CG)-+FPuhhE1Lv$>sU?MiBBtq(0=+&0tXI!Ia%@vE*zdv@kt4^G3hTJYx&<4~X85
zbvoC4+4GCnl*-xl3Y@Bo<aj@ynq#NC98CC`LN-Lxatkws``o$Zd3u$EZwemKW_Bao
zH>s^)eEM44Q=qCx)Yk~zRmt&1nna(&mXS|5z-vGm3~6b#zXB%3T_Xbuzdd^K=>&DF
z>n-B=qh1>AfV<ylM$4W((<sO^a8j7W_{g0+-p#BV3`t;}m?0=odzk=#R+0H5eJr{7
zEdr7QwO$LhIJ{d((pyN(re(XImQZW`Jp9u!^`>T&)ERWCytC+dRIj~x_l^jDW;gvD
zG22(8q5`|``!R2~byrr2G}rwLZ`8W%=&!9S2SU2%W9^SD)hL3C<3P~BOqLsA-rD!<
zyoumZ8RxUEXeucGe805Bjv3}osNV?WH=s2$jAOrPhaJ+BM6?Th1l|+tTLoBry}94z
zfyITJ&Qnt=Kt-2+oYx=AQZz?YkEf;0+apfsPStnSBcE&KCfkaXjGO!&d!KRia!^in
z%A8O@kE<6RN4OnxjRd}DJa#!7BZ{I+>)T^?qlIthBRQV#x*QjzQgH50Wo)bZ7e8(?
zS$b~!Yef34qPY7h-ADOmV$?=|EE(M-i#@G0jGH;7VeC4SQiLM@9>&sp?4Dpo0qg}H
z;&}{g`r9Gl#K>{#`7Cg3^vkj9yB27T@^((;y$ob!Z)83X2wav_dK#q?r*&JVA3V3D
z1^D-zVq2fNf}&g}`O&q1@AW5#)g^+V+RV=VK3|jQ9<d3u6XB$}EQ74me<?kV2-fdi
z((609rDb+sG?>M{g9ZX5JU5I6w0x;gUuoi*t`_gBvcPyi|48REI7I)AMDqo~7nE9S
zRYW>V%^yR6vQ)an_KTaIH&-Irmb(1e8@jBEJ%ZBMyF`@K`2iy90R`e;e2-IhEyz)3
z?ls-#a;}C0L!M~c1`d9xZI3n2*Rwp36pUlj#GNe1n)akUM5etYJzAftsB5q$=Z`??
zTK!DOc=*X<e)Z{aZR6q34g_(65tMI=b$wL23%sL?0=T5)yY7A=!lD%|Z_TQ8U%_fF
zY`1u(jKP*kuOI->sc%qiwr|Wf@RVb`w0?KM-$7(5O7yz-NstByICkFI!F#c&@Uo&8
zJu3cXQ_#lj!ja`b@Z*`ZhUQvez4v?4-M#<&AONTk<yX$S4d#1=hd%(m-56!TwAc96
zk#|}*)FwsDC&X1gG6~4ms+@FPEGwa;j22FC_GhC)Ib#bl{IJz{phhSogYC{|e26dI
zkud(2Fr-jx-A@Jh%zSV|84u+>7}ZXQ)xGOQIucn*7h;V<LItjL{<mBXjw3B;q?lb?
z+rB{?I<q~SA*%LcSH#2inv+E>0rK_Tx&R{7S{9-C&jd))D9$cLZ&OEM<e$UP4EW``
zHU{YZz~2pzALM_X5fF>eZO7jUyp3tcdsTEkmn=~EB&z<Dy|#|i#3OeC{Hvzyd>tuN
zyvu<&Z&UAz9=wH)!WbsSAOOkIa`-i_Tcft9vq_ksK1ri72mZ+(q%n$)e+&ys;_IEm
zeuc=3JS&q9uF@CA&5!}9{;rQ=5`2_oXY<mL>VN4ZY<liW@b|LjN+q>BbBl3hIUpa!
zcsXTx5u|Q)aIb}jedo(8Zh2s7moU6oj+_-N5zNDKbCB}r!G6ynfruR24iAgozYf)z
z*>`~IH?S8+COGbR*9LKjv-_q~crvd}D<f_xTsA3tCKo&cFMAW7Hw@NxOP->AyuOlu
z%|9EcE3BKOEYM;R8ex6d(}mgabRTzJDczTGE3rKE<epb0l_RHGb>1tx^>9gIYf5_8
z`}^$tR^W4N{;~l4lwr9(fAN5}xjVu0jTlnfYkuJypi<}O(v!iq$LX#t)GD6K6Lujv
zIYcykQKhEoN|M8Lg%rxd#tL8b6uo_so+vOXY=H47h#`mCkm7qFcMJ1Q?D)btTKakw
zH1d5~SNRsXH=ktTL>PrF!Ew(Uc=e#;8?cCw<(B@m1CbC^JeY`7xymiAUR*BTwomeu
zx~H`LMU@bFhfn2TmS}7>NENiecZ^`tW|VXsy;3Lzk%VUJJQn70&Gaf8Qrk~+#1;%~
z=x8b&MCj}`4?*Y9ex6rniSBBihHR|9|LNJp3eN0(o{npbi<}{IOCBNv6j1VzAZ6tl
z&DprbUYw%1=C{>?EQqqq96lOXf4C1O`?TwWRpBDso5~U%QxI8FK&JrxKmQCva7N?z
zfbqRSwKNmLredqRv}WY#j#k*6fON+z33XIaA$(W5)wzP3oVZEfqkI7dqr@x=T0e_T
z&l=AR|Cy{?`KYGHf*dmA1*z>*(+j}p3Z9|8ZNZX%|N2qtlOf)NhMbKS;4b9Gcnq4{
z_?Yh#@3Qw_%OtX}UzH8B#FU3z_$v*CUqwv0)CLB!kK5egl|2`EsgJzrJFxZF*8$tq
zjjU}gvoyLKa3sD96Q1op%%B3naw!a{Q=kljiTAHJ$HeOAsT)iCM)5Z{hFlG1<dU6<
zl<W(b=muIu_OnSS($i~CF4o;_GiZz_g?45HD(K5)r=*7THG@ZvZ3AkiGXC0wxgj`0
z8XWpE1<e(Lh~J*32LG)Ea2O`s0s9p*YnRQc){PjofZI(PdV1KieGnrQEhsfAQ#lz#
z@n-iOy-xlc8;Y%$k0fE6DLWE@d>Sz4wVCodH}NM5j1xb;jNYC6dMLXf%OAP}V`Ym`
z9TM~%0^cDat2&?7!>APFRsG+SDUZ_ZX$snwNx;{Hla!&p;-Or}Mi7EPG>mT@|Bsy_
zat^T=xjPY$Ur*9}4PgrFvED5$s!jZDZORW)Mk)sN#w})f763BSf~e$w5}FF~K?&Fl
z9!aU2n7R;VLH@|3c=^7Wn`NV6)*g}@4H1FHB^)9vg`bBVoJt+%!@ABRw26X!%u3g<
z^S1XDEie53WO|(~xPG7~uJ{^Ziq`irzUSX|>tZ64tBJPjc^6ZzO9zuij7gcmu~;t<
z#yVGDDid*y=q&q2b8V~!gqClJ%-d={C636O)Rtvz{!kEQ5B^u<MT81r?EqGgOj{4T
z?0S9PlXx({giB)AED4+C4L4zmd7{mik<sgp@_Q*KFN-Emz90@(^x@-$j`*<UHR=un
z-O2I<zoH9F()DOu#4E23K4Bs+Qx4wY2}dk<ibxdGTqXq8J7}HUS);|!qmtQiCD_bJ
z6i>JU6vH*~iU%JP@4Qu(YGk<-MBR4%+s(klbkNz5Tx?1s@ApWH;(U`MqWl7k@uov8
z!Cb!GnN?uHkXklOTzApQ6=52wo9hvSQxclvzPQqD+Urdu+M5dr@zUXfyM)D|*YB+G
zgYTlH*lhAQ!u)u_&u9_qKSZ^4<=#2M34KAHo+<o_)%^X4ZIiOMohvBy^g8GX$F-al
z>=ap$2U7dAX3vPR?&$b~2D`9QdKodQ80`yKt#!FS!!CE3j>_2O0z^T@uI_=~73W)0
zSGG?pZa8M2Q#QQcM&ME>9rHXZ-4+O5K<xR0mf$F@cCMt<;b4pIDLy;-j|$T(E?(^F
z0UT%CB<JltO*Fq0gVyCDclp7)IWbcLW-c&yC2<vb@iZo`QB^bfC?I)7*XXGm?5m<W
zBfv);ljR1=P9b53QziQXM$g%fYWelGHWNwritCMPr{rM&ZdXrLx8F{RtQ#Sx(DCZj
zo7ta2k=L6=@9bbyccO)!ki%tTaEk6hu+9S)f0iJ;UOzlN@er>!$#3%(WHrTPb*Y~)
zWlq%gXU&M<ut?dK+!2_g*2?jj7vZ`_Mx+tL;=?ABdl#C+E3N3E`AoG<^s&8zwLgXB
zY)svW9Z?7|Qqc2rjy!?v%|?FPVLX|_iz(^G4rETi!m-u#b-(R=y2hJF6!mm7wGhQR
z<qc4InbBR8fcCf1w%IgAWJ9D2+Y!I@KvNnUwifo((^ZrM<5bvASMj$+TY~>tGAgL0
z)bh^x?`9N?RcCU3Lk<Y(#z{T=2mS(Lk0hK6ZSZR}x)*UJ`$_52Kpb;Yob_L4;4Ht-
zQ5{T*%#Sx(&IUw$lZQVtQwqq7w>!?q$YNRD3Wd|3NEPq`aa&G_0QY*})gYP<s<>Cp
z$c7p^W16VK)}uS>AYQG#i_d-WYO`ATCLP>~`gL!y#Qent3n+LG@z9>Pp`wtOL`Y_W
z)W{<QMEgV{!cVj_e-@Q1h)5(?+~Zyrk$t<{At0-}F4(K$&pUX9C?^v`@_1pQQeJ#>
zzSL{`M}dtUpC-tn=?zuwb|uJPzl!53?x`8r?xCtDnlESjA`%}_I=|i8gtStw=aXMF
zC1;)Bw+xQI&_k|%-bk48V?B^^1!BFo4HOY9KpWd3Cpmo$Az5cI+hShos<HMU^(eq_
zE6{1@Ir%wqZH=CgA|>kBcw*-L*GL{6^A6M~_cge+W6S^Ppq}O<T*zlGlYTBZC26Fq
z8C%2*MQwb3s@x?^>Rn@hR8y*mZ`Mkt=&Nb{p<v1b%vPc?4VM3q0(?lZcMVvu!A|t|
z79h6HH*zcP&h-~OES<w*FZ*UIe#7N!dpo%|Fh|AD>6q+**L@CPXz655pD2hBD>-Zq
zswsYG2sD@(2jO#<*GJU3O?k67I0#R64{l@kX-{sB>0TZ<+UVVV1;A-Q|2s+ae)-Ge
zv+cz&t5;8d$3wR)?D{;e(r*JjYGWiT)<D>hrG|k+Ds|2*5a~PG6op+kMfp1ZO3bTw
zy~}n*<O#@XP2p&@EZWbitNUZ&q8$_ibC@hn@T*eC4B#dYTxb~I#r*To;N8NOWov)x
zP$(Ox2Ns?-NFm%xD(eW*dTGJcFH~w+C10P5qr78#Q~8kWb<S&Zn5BD|8?y7eA`!%W
z5ZvQh<tt?Fo8MQwWb7*c<J`@bye5b!NC&gFwhY2DeNt^cNghr${G(*U&$ruj$N5jA
zmhtJ(3V8Y!80>*XcK;PgtRb#<L?U>UiFYh`e<Yv$faWM$`g(UGf1{<4FYa5*jS_hP
zbvubG1{$w}qz=%kfR-++!PdzwYV@(LrA-!RJ45huT0=v~pISMq9MfiM3s9*gB1R72
zD(vJRThX)f+R^+Idcy^kH{^16i|W<IR<(-$3;`oTj@rigixF(NTk<B3O5!Ej;I$Le
zJFF^*!p2<K0Ukg#ZfA_Gi0@(1k|Y(tt9ZPyW0Mq=GYv-p4COaeaa+DZLr3rfk)n%R
zDbm4%5^v5fV#Ha-&#TT+EK*^+?)TJpd~KOKmvjXS!mS(A7(ITgK5xP9UF^QtL6Gww
zs6!NZcjV;>G6SxIA9;fW2+{reO<4;Yj^K^6b9M2{%9C>FouZMb?ZRWCmm-U2&%8Oi
z)I1VpE`JNTABL-c$S*Yy7+$K+>OoXr!>0r-#XjvuaE%jGs7|>V-aO*%S#;m*-ooQ5
zKObtltz+z6=55`xT_rO$K#QekB8eI#$6(|*iS+t52F;|Dr++S5l&|fy5cNcuxixmb
zBrTi1$vYa(^=!=;%^KMQe0GRvdp`7+yZDlRtjFj|8vKI(efJ9JAeM#!>U|l=?pPF9
z*mQHZhIQ<r*=am1bM_Va1`vrw^u5W?i1)*xJ%)ZBOp?u0I~>fI|G{!c{rj|GfvC`t
zOY_m{bt1xO!00w?Zy-bscSCDK*fs%+<2Qnk<v?kafuhM+9La+oANO~hL|@QJyyJVM
z>pa&Af~;2Pxa~;(tG8}kJGSA<MQ3=O1_I*lO@LuJ&4qNtxbrl?avi``;{Vs0N=Gyr
z&|b>k)(DCrIfB1+!!i#1lGhRM3f}PR1~GWd>%Gzz>F?M(l4jE9H`9GABkKqpB{5w9
zKMwu7|Ec#&r5!w$S`ZZFQc-81xlsmy@#4pcgex#uGlA@p3j&~aM1sTpm$@+Kkw^@S
zxsDq0YI{-aC^MekZ0~m%^ATmC2O88IksUi<_Q4m!C(2HUQqd~hSptjSLASiI=AGMY
z)rjep{;V5&P;nSy&;tiDlxY8k=%%IVN8=;S$(D|w!ECol4D875!n$mO*uuf_nmxeN
zxR|Opzu?-0u)FxI7ujEPmpKT5ZB>}iU<$B&pd}mcXy6r|HbylszMILze@CEy)N(OS
zHapZyYlhW@N}gUaQ||m-1c(}NtYx`QXSGN3M6`qO^RWw8?9cbFzlE+55fECkZhwL;
z#O}(UKwoPwa%SBWIZWCIOx;}zL9jh`Eus$^;N|zRNYCY7v^;#tTBl0#7f4d=)ZdYf
zcO2XCkmB@vqfv58E*Rr^T?<`NuU^cwX-?)tS|PuIhhmn;cS=jPL{kT)ZC1m}BI3-O
z(%{p0uUndvyx9WB(@!O*-2gdF3gA~4F9er!AdtnA+AoaTQNiMe=Sc)-$io)U#bWQB
z#@))w>)Y1C43^A_;BE*|hBW{?$t|yJT&|$)vcl-7V-!C#)%uEBtw#VxqK0LJ!Vma+
z$^M%CYX5KX@$A^wi=(8qy@8gz9_SO}eW~`bAj(ZjMAc)171Z<i;g7_Cr+89lYdNVe
zxA`3vq6yA_Lgl<i8GYuMd_+=%o^3jau2WwqC%;3&RT7pHY)!scA~pt;n^vGZRN2#&
z@+ZQ2sPn~H?7-Wysg_~s<vVm>BEl0WP4b1@f4xP}iav8E%dh>Lg62g41WR_<UGyfD
ziXm&USVAJltQp<v56$y2%FP_Eqh{x4!tLKTOwJ+28X4JedHdtbq2BTDt!~9y%Oh4M
zR&3UwC4ziELSAi#E-6O;Z0WpfuU?L%?g<4pNc<U^--sot7zy3m&6dC!QfNGXjZYJ&
zT7JB1QU4^ITyF;zf*XFIfGzfCSwqihdc_TMR2t5Kzo&U{<1=evLwrc<)myJWwT+*U
zf{78`8y#1$`wS^LFlL(FdZ$E6cStP;+(7$%_dJ5KhO5?6l}bHldma0HP&&FRu)JLb
zS$~p6q#c*y3nqu?y?dRA3swakk=NU(gNK3REy>nz1HMp)p_)8ahB?oMro7dVj9{hY
z8)x#eTDLINgND@u05^JV=3SYqUUJ}?LC2EkO@7M{Pn&ID#b|zw9XlM}mMO+u6yjt@
zBNNZ1$gJ@+x7F8s*${W7z$#bKww4(_$b~2S<EsxTx2{O(L&hH7U)io_-fVKmVBwq;
zhib&Cpo@e>YYJX8u?nAFKDTDOyESh>Pir&5*;)R$(U0jxVLL7SnL#dfL?iyOSC>Rv
zcyDYG&@eNW?MON@AKN`8yj0JO+qUpmfZPP^oAPQ#VFP@A>)8M_zQ~9m1S;T_VP_%>
zaqrAX>aV8tOVXaxuZEras2ZBpvxMX#GA)CY+3b<}y*R{Jxfm-1T(dT@_p=~lkRXRc
z0D+{hg#E9DY(3Vu(u|;K0|D=bD3jTm91??FX1T&M0}JlfD3BFuT6x5b3qanGEBlt9
z*}lW*_mZU19@5UnM-Cs;601kZu*wqJPa*RDc#D3M$O|IP*1dtDmbGfWZ0auN1jOl)
z#fn2$FvG~8_?@1X_CPH;iHu~>fK0;b8&3SG5@~6k_qZsFM?%msO7@kZIf5;}a#$US
zgVc!SRB-#b|K*uOgxHEaX}t&#C3s-Dldz51-gV}5+&AZINLH`tTr$B%sOO!5!UpWV
z6H8K1XSNswR?SSF+1o;NSK4k@BR~FyK&Bnq(!ozPko9T<+jfQ|jM=bLQj03<wuv(!
zucg@?JBf1RuKPf;2%uRQ5CZe8-aWK3G=u#zy}ed#w^=C!L6|wz<7SRXQ3|w5pE>px
zqRQ+@!5{ZsBLpNWPCAvG?Cml&dFv;QOrM<oHY_mx=ZDfom>LQ9IU<MKg<*@D6o)xR
zrZlEtU?COG)P-LV@;;WF${Fl~NJ0&VUP2+bC>!e47zr^;^`ULN!5de-r&fl^MJjBL
z3dbBE#Af09;=sCL@&%msK5Se22P1pLsIx!hUK=}Ey1<FBa8|+VF5+W=7JsS(+QZ~M
zBux*p1*=B>9Lv=*q(u8{W8nqUrm`BM>%Rv*egAjA-_PR9rhX(mP3Oz8pk*=#XYf?O
zqF^VRX}%IjLaINe04xDqwtKN3vhkJSUGo^w{9~8@v6TBis`}2TCZeug5doE^qS8S@
z!3qLGAV8v^6cHk#6e&TfNbfC0KtQAkDm_F+K&AIiqz0rDdJQ#%5?TTwkmT~+cYW)=
zcmB=%nA!X6HtXzto<|?x1}CtKUW%@K%{$;MZVQOc2+rqJoa3JK<&ocV65*`B`BL09
z(L+^P=Qm9H?B)}~9}x37A8WzcS#qnee-X7wAl2(;LocV2S=sf4y-KL-)+wcP9FAHF
z(tqE@FT$<vKQ})(322?+H+-R^-Df%a(I~*05nSe6gV$iUTt0WX|2F(B<-^MJ>1*tg
zd-Z1?B&oQI#-4#Y2oA3vcm6G_0!Y}<dx@v>)q(%mgTgfZ@ZZ-x$ge^JzIMk`on!-S
z-orXKgRhzV`T8+>z+8#ai|Hkdr2CUUD!}|;f7_N>FS{rLhaGt4%+8kSe_(WhvH+EW
zEMp#AjlIDE->z_g4T%3ZCRCRNg$1pqjpM2I_gza^+jG1Zqbqd4r9#q^J<+~j;6K-k
zE`FQFKu+9VOt5OU+MTq*1980G;%I|41@&)QfXzI0OUeCevJ+ncwpXm|0dmLHkuFBI
z%KcQ7LY8h6`*y-g>*(A{t(KB_TG8TFMhdTT3mC+W&r;9kUwPZI+9m-F=+e9HiK}6#
z5;|iaM}3+2>zdcRNPXni?u_{epHB>lf)kH7Mu!Edg|Da->hq3g<Es}A7i-A>Onxk`
zeX*10chb$l$~STxX4o!^7UJ{i$z(QF)a))rgC1oTH>ac1ZSRxH{O2U_^IYx?ck`jB
z@K0yMuC1OAJZP+%Fn4)$4)G`|vpcW5Y3224_+HkI#8HL37pGu*VsMiX`@#Zj`h;y~
z5R=1w1As`wTBl&GjrPP%FIxa09fF+NOv&DR*s1Jfq3hWCC`T_GEQ(O#w&(y%+lh%9
zW8o+{Bdui=*i7Mexnldc$5(zw$}Y2NC1$h1L?Yhh%yh<?ARia6p~?*d&ky?0T2WRT
zP0oOU8+R^o`uGt|c{j`~i*~2iM^tty%!|bg-fZi;TY@*Tw^W$1lQXKB`ETkiSf=m`
zcXZFsw19!<B>*=|`UH1+>LB#{?OM+9&QXD=oiY6PqMEl2T5MH&;jc#Urmn8>U_Xm`
z*+1%UAEF5nauhYoKSTI#$kAo<8@Ery`V*mRA*_T*WlnLf=Z()sQ}_P?yWpP!B(PJm
z;%4!;z;N()IXGr%`}wd)u#AqM%%!ZtLw_IkwrLnq(og4%e8WP!HMHvQL-e{My(mC$
z#9M<-X3OhMknNf__)5uvJ|G4P)qO<{Hi0LaZ#p;kPr4fFL#c8eihC3BqUV0{7_+2t
z!b_XQ+FU_a#Na^2)mk3ld!PPgB`$$em+jj3ygi?KvA^GtG;F#r_$U2=N~Q+k%1KAn
z^Vsk@`vsTJs`nlleKz~3uS6KLpYu=r=jP_78Gp!$?i*hBSFcE4nDy-nE4CaOuHHiK
z=_<GIslBj9ncDiCL<dc73n)`0aKP@I18G0A6Z1y1i$B`B3@u%LJuXz?MH)0eQM<qu
zyoEa1dkwYb);Qxofzpe^CI*j}hW~tJ9_za0d6`RvUBQc#z6;@QzC#wKM%y3qkrd+8
z9;KZ`2JHoc759ha&Z~227#Nq^&JM&j9YncZFz}Hr^mZQNZa!#4jJ@|ipsI0gQi+iU
zTVC)W8X|i}Z}({UL)RC4SF{WM^hqrx(iW=&%no#g4_OycKXEFTK<n0yUCHR~!DP3Y
zADD|6?rXfAEO1`D1Pt_HSa%)$j_pAQ@>_UZ18_Sd(&Q#(-cdds`GTS-wGp83(24VG
zeBQh<dREOQ6Km|_-^?$cYyNhWrecIFLXld9_k+KwNP)(yuY)@7);Ng-UVZJcY!a}3
zj6NU(xZ62q@hrO`z~}NB=pFy{urKG6Z%6ssLa9ywyID_mq*61&^T$YGCIBwyJQ?HF
z-EX)MJnaekBuScFyhvR6Yel2|m^^rN<8>2AHTCBjslf?Y3)omGL9CJPPmf54#KpgV
z7_>*$ET|&yOSw;F<g|o2`TpfTYATnkp_id%%NPTjhwGiBnb9~1q><Wszo9mWbljt3
zq~uyMJpRn1oNbnL4`Q8n(_~M7^DV6MZ%y($)65K0a_KpB59pZYXfr@qJa<__+rYWZ
z#cjAfqifx$@RtEXDC?M)sRPR2h2`<BHi*lf1q~J=QB1`5yU}GYEhxX?X>vL&Dg!E_
z5FupgJ%C}Vbh}|Ahf%<a%31J58t}595vT*ZC%yLC<>2wf*y}RoixI<V0k@cj2662=
z%bvE`4SKIv*`V5Vqm!?^In{T@#$vE4lE_7zn)px7i^8B|E^O(Drq@Gp!LRC-1{@or
zO}qRLPstN>3e`OUd&GZ7?nuFw*ferVT{)k27cEt;O|<5NxSO=BU=@)cxuI<`C={5=
zx+b7R-ZFGqTT$ZXwOZ`~3w&a^T{56xn}D)!eLg)U=YQuTr%ak)+skzc;owxixrPmm
z`<`nezHwcSaaO$1e8tM6u9DRkcIETJyj2qRy<PPp{wnrn@Gck7uZ%n|-vR{kGlFRT
zGV{{1qAAb-OZ=m%O~97^#@x5Bwj5SkZg+hzB#^6SJ0cFNqr^-nyDup}Ic4YF<Xz3l
zZj%@s8lG-Q8*?m*jswuni<h+OP1NUHlEHjB|7#Cj!FFenXN9A0TS3I$fSh^THF2aG
zF>vSL>y&n6(ZGD!?%jjikK$ZypURZE*}<qBx@W(I#?$1*RB2xX1L!9cN+dli25AEJ
z7LU%lbqglscbtJH_a^KKH*ax^tDQ8kFpXB07ET_+iT7@+Qo6x<4%MtIn=MEeLrA`a
zYLUIz^;668-Xha0FZKQ2Ntg!~_&MJFi`->Jf3ij23XTV@7@V|M%l&r$6r0Ywh#Rbr
zQe?jBoK>crt#mR}k4v6W`Ti3X6~m(*;QwVY>rR*!>Rsy>T305=TqP~#%GK<4y>>ng
z<$PR<z}dhzF}=nP!6!+NS{kJOCXNQL;?v`w5Ae0@y}!w)%Hn<ycp-}O@LIjW73hg)
zk4o{{VPvmcz{EFmELL@x3_wKjo4dXbqd>1@=B;5J^4EXeWW+?S{<wnbHob2}ywA_7
z{Tuc=z#D&598Tqf;G6!sM2*Rxp@IyXZxo)@EDo<~s@Qp==3n?_1=eA@#766YP&^F2
z_bvE5ohhCj<ff%hU8`5r_m9s(srtV_>H!w9Y02}+!eQx=xYhQ#`x|Q!bI)Y|5ZMt-
zlH58Ii$iYHkqcDFI^uxZN!f+e?`;(2X9maB(Y2FiUUUPVo+MsxiaxE<#5(mAGN`nZ
zyL{W#-oAS~PRjc!eaT<u!^#!tmnI;Pb(ps(F51N}YQu0-ZTL;LiLzqJC%vOv5i9F~
z)3pNWzCRSo+VAas%toq%oF5cB@`>eBW8eWq{=@EAk6;7N!wwnhm8uipjko&|p+kXA
z`tx;1TJ6R37fKt!+9&N7#ekgRj?qEb8BR<E8>{J78^61i$n%<`L;uUkC~5*sJjLd=
za(fLd0URS}`kNQ?<7LARKu)W&I;7~<G<GaA*C*A;kw0jl1-4LoMHr^_m?QQRX>rYG
zzsD&^b9c)bnm$tH4k5TZS&6M>9?q!8e&s5CUcRTgks6r?A6As*g~a9T2CvOFSQQ|u
ztQ^wa);Hh=HCqa6%$?83z@XI@OgXIusr66Hs<*pgYmB352y@4%^sL{jj~qL%wFBO6
ziuXE@O0Hr>cE_9zlCYqv3^K?C=T}%Wq08^G$p5BU)<Ow6Q~Wwn?p9O*gz`uj6eHlz
zIP8dhqcO`W6S%0l@k;Wxdj{t>+qe|ju|!MCE-%-YMirahY`mkxX1;T83CC-9^=%H!
zjUEoU4p_(7@{grNtRQRux-S0m-Iz;ny?V8adUbyHXiaciOqp$nmGf~S-kjO@;ShH0
z3aI7?9-i@ylk1pbd9bI`(d1NAGd|_MGl00F3v!G%49*uS3hQcrg<m_>lUf%e4GD@5
zo%TpY*q-<6UuwH<(A;oPa0JYw;ts1Xtk3=1O<>t$c~RPtao3`iTg|k)KL1m3qu`6J
zs(5&T02<Q98lNP_Rnj{k)%OzO@Ml&f<SyBH!w{9RATHZ_Or`cU{+9*>8vL;Lbeyf_
z@C`-Z#`D@)19txoCof=ZJY6pG&W|9}Zj3%l_v`)pSnim@dJ)(JhIJj`CqmpRg#5P`
zYX)rvLpD*;E7|?x2C!zMrB|E!K+--zXrWlBVdRAxNAMip_kL4!_V_<r$h`1zg%ES+
z*;$onydb{VbCUAvcBq^87u%3_Gj_Tn$H4c<+9&*=t!G*BEB}BO&#bN{=+D0`w9p1p
zfirqF#Z3b0cFt2(SFiVYs(y7=!(zG0xdS!Z1?tj2b40m%)Iks)HD|My;wMUrjOw<f
zl7IBYbTL0tGN5za-uinfEuhg7+f+4o?d&q;a$gtY_HNtQ;MNd}&7W`Ye#kc_Aa<wb
zlLO{Az{K;`VebXBD39AcEaGL@o=V4D(Y^6$5YXv8c-G=Z(}9${wmbP}2-2eUQ@3)S
z!g-zuAM)d$8$N@t{Kws&$RB97J%^U>bpNvU(7(31VhKUoJy$NQntNabTRhEw(Y8rU
z;HzQksk8EDUVzMtrHtdfgC5-RQuCQn(*{*eU<}k~iPo>DjrvsE@ekc$(gPBoE8oP@
z<5c*jgko8Gqm<h?*(?TH+0MKy;0d|Se^JrB;6vN*iy>LP+kG`g{P%!qRm)+9bOUZq
zKUg?2=oO~-1tujq=^o&8)q3XC3sgLO8AB^~?N95iBjy31sF5O~WxWX$7fVaW(K6kJ
z;wc7)#Hg927lpb#D(KXuX-WfpT4XD(j(shwrYdeG#Sh}g><_A7Xii<5sxPA*I5CqE
zv=uC3t4K@?*;S-YTSf_dlH56uzjf!12b+bA&7zr|S{;g|^Lm9|tBToFr3~3FEaaAB
z!Yh1&*hM{)r7~aZz5=48*owT6pe8Hx0Ukv0@D4e3OBE3nKA~nzU-|m4eYSKwre78%
z&}g%*y0QC!+7fY*1^QuvXYb}Vhvt?D=&ylZv45Per6}pP#~==<?C{hj4XGz7%=p_c
zZ+ZsA$tGR9J<V0h(wET@#B$jtZ;vK$GE(Eh^<-FY{ll@=)7nSZ_M$|v(P@%(E@;Xp
z{_C@~{h2l+EhlQ`L_Th+MDktp&&@*B;ZVcQG=am^CI8VwTnJ-Y8I-cu=oOsSNX~Ym
z58g&>cdNABBiee3uho&A;tHi_0{M~ER}(BZfPOV%S2lAf*day>Eg?lba|U(*DMBCm
zGls~L%(dMqRa1O3pFpSYS<kCH`^k%+2p^W%VpE(7uaWlicp?XtyS{<F|A9hHwqLv1
z%I!#wY8h~=rJA%=V9!+~%r?x)8BnB6R1Hd92j7f_IgIC)GYc(fH^t+5-F$wqB{ro$
z)%HG|(B7Bh@0Q$K;B}Y;_ZC0`!k#q)%_sh;H0)qTj7I7fZx%!?d2t10abyleUVLO-
z*Is)$*o|;sVy}Dp$&=Wrfl+{#$JF*pZqviX2Vm?B>>2LNXh<n>E%cRlOLF_7h0kKm
zgzpV4m`l{i!v?IBc3Px}Yx?{A!R^x~QSa>?HXf<9Vbj7E>kk%bQMF>PN|RNraigCv
zxQRzR2HHd_&~W^=O@&Izztc5~suIIlx58O>;w>I<!aEhZbR2DFch%@C*Tmr7QCxw2
zV+cN*<)u(Jrw&9%_a#U>tD9K<`O<x*%^Vq&^E=G5;~|e!@zYw3wx5R`Z>%T}c#T^)
zlN6+mv?W;t)>^u6qIf$Lk=lnsHSC0ou;$EBwzk-4F3>gU3EBrUf<9(z!a3IWQe#Ie
z?@qy}@Lt{W+c@~{CFYzjRUkL9>Yd9S(;sBDj#p!@Dz_ktt+FxQ-q%vKkVqSq($U~v
zU#r?hKE}=o$@+k`CJQ-sSYF@{(Cq3v7AM;4TxAa3Mj>nc`IEn|^G4|_W0_PQcQ|S{
zdYlvPDm<OBJ3sW{bOHW7bUa_NW!r?$Q-SH&bizF-kG^_rOtUlJx`|K@+<oiX(_A{Q
zOCO0?0$nq9jc5xe9^6zAT<MqOy9-ai8c&KxTikYSe#QRw74Tu4U6;!FyR0>TqF_&?
zb&8zuwQf##n&RCKz9F}&xrFFs%6S);=2RcSNqX~-#V2EW=yrA$D?5!)e<SDxo*Dx;
zyVofB_1YYu>E90^=esIonGLom{>YQQ@Jg3vNUVAz?qWt0tJJDMOrOrPLCm<)+OH{H
zs|uHtt~caZi#J@0n!V1?qmrxqtk5%KaLv;O<)n?L!D;4z5r_d`W{8~`USzN~8}M**
zwP9J<7oz1c0V*l_;XiLu8(bUk+2g^yE}>ev0Hc?LaYn+ArVbd6$N;)D_~3IMc;~l?
zc~6_92$`+u@D+bevb+ozIa|Hs!oHYUbj5CEpuj<5&0y^Zy``I1&!Mazs%Cpy`Y9yJ
zrSic^Y@@UZhyAWXMw3)dk;zG5N>)g8sQZWy`Ob>U#|ltYJXIz^-i_hw_B3W`YMa;p
z{#JAP_<*v_xpj+k_}l+Xy;ZW#@jp@CPj!7Bx&J25JfC}Vfd3G<AFG-q3tg^OQu1;U
zvvQ7pr{q7!9w+9KTT^y6-kF&QF7E?ccTQClE<dDEcn%wer-|N?=u`x8YxAjlq1CxE
zKu$VgGaW=5sd_rQ9qyizd9>bzqpft5;O&`T8*_OA%D0-=OIN1JFC<IXC)6A>E<Ht3
zVMrRQD)Q)%x#UC}hmKubedQC!oxWZP-cwieg{3=JOXe1qy>9U$T$%cga~(+)Ig{Io
zB43pb^Xs0ce5qN^nEoJLda-apr2NUSX}*eP$9D8Jg~gB8Rm3tAjeydGOSzTejS?-u
zlBwdRyWX8;rwp8B_Eb{_#zn%560)dhk<s0H$O^acX`qR>n0iSn|Ir)XUXRN9J;#DV
zXU-au7YK#gT+iItG|@2L)#Sn3e80CzCFvB4Ni~+qE^~6}S`FDRwQ^7m<$k~YnmMlB
z7fE%q?2voDfvPeq+bX@HYLeJ87VS6x&3nOmUFve)aJ5SOKmMY4V6HWCPrIfq+HLBc
z6>VXgrn<5Ggl6NoUFh9xOCLMAyu<F@oki6Vtvvi{^U5r8ARYFlAZ^X8>a+Pu4%q?|
zKuUe#&5cmFER*G)Ia$h9wN+v$!cUujxSv{g5I)Ii`)WlFo3||FvWW7n4iU6TaapmD
zO#ZtHJ7@P3R*(!$;Npnyt=Q^Z5yRD7<`K_y79G9HE9MblzJGgktSG^`IOyx3r@@SK
zeG%Q}By+hQ;Q@Mg)&04#mra9LSmTP@tit}Bin~FRU%}nQKdvDlx}JFdV<!~6H{m?I
z=PmSt?4o&*c83<Zc*dY^PH(x;Qplv(pKC$ZP{O2M?}83gwuhUYgQFARk+f;$KY#o0
zk8}mvZ-upN&E*fNt{yy*NgbwdJA4amA`@-xY`q7h)TxW~cXE1hwT$oJ)7Q#gZJ-MG
zJg9?h;_;);c#BzBPMzrd%Qn!fY%Q8#F~$8Wu`?uZw{q&CPI1VG840V3dX4wHPi?fW
z6D9Z)6W7OLAuA&MC)$7B2^)Ct5OYKRwblp2&+RvGg}I3EUk$gvj)KT+JR(h@%cm;g
z+|t%YLKhwc$V9jPy(72%9(Bb?rfOSfy?;`-eQb;s;$!d02|}ytMi~b1^e)5ByD#Lo
zeLoi#T;cDfPYb=t`R+@L;5*C3kX75zd5&#f_q)fa<ciTw8>WBV4nb=tFb6AgB~QVC
zGw$n+K=|^O_)|<JlWBkr@^?RGHGw=8PXRH8;~^M&8RTgl8u_>c$E~vYb8Vs0Mfya1
zQuN`d-t;vt0h*?VD$)yHPHR{L?{#iM=_cr)8n}g6XP{S$XOb-at;AIqD4*f-sA>Pe
z06i6;)22KI07$NyZA~xqKa`75$z{i8+JCgP`;gpshnHaHc)!uk`fhFXsZL&(PR;vQ
z6fm|xbia2^>4d#EY(JEVe^y4nQ&);UV3oPY&9k7lelX9a)+wA$Fg*C?(7s%oz@1fo
z0F^n{VXqzy-x0O1Fpy^^-1Bb==dQMenVYp=5eZ5;^+77WD_IVdp%9dr-Y%5qsv!4K
zyrJE$G42?amRvF_Q1n60HdAf42fC#NV1(KD2l;O1;bb@IEyOkyQdu+~J<w(VAQEWn
zt?ugv9B7r1Is$F=jCioS4Hx1?!An;+x73u0fMvwYG-v8_O8E?(rg8?^)&A~J3ZJr9
z{aCRs3*#L+;O@MWS;hW&@uITVwhgBou)kCcMDK7)U*nhY775tuJs0*;NL#$t8&0A&
zTa$y0zi=N1qBA{znHm5)Ot=xQpk_T{;n0#atjAjKWD8p=scDC-@_af>S-5WxnjbB`
z`EZx5rJ-HQiu}{g^}$JX4X4IAS=)x*m+Jr}7sbA>tu%1aRKebN?U9$8b{^k7(iJ9I
zRY6kAqH8~zgSkfhKJLD6__SEIXSYG}RT+I8-P`!SPH4?j{-ey~qxf6*1vxX`>xtUQ
z62>;XZ){a)xn3-C8hniL`~~)oVh?z3$?Wy(D<)Ha@X9Lt7srz4g~q0?^}W8xyn7dU
zw;;$vZm2p~#%Q$W-1ziTY<<vMHJaL>TxX5PJsuv1S=?n|HGj*na1)zKO;AXp|LjeV
zQCOC{#cYds;9uS_&xNSCwTlGql5qY>1w9}ycx=T~$s}-&6_%*DITr=F@m^ScEyI|}
z9&wQa46I=|S+Mk0oSP+EbG;i%_ESq#+`k0!o?M7_yoV2~Zq;!4&Rc`m#%Xoy-hcf)
zLmwu-wi9lczd(H$qfUUohy=#+`?g;~C)c+!OOB_(UOyn5165CZCWt>zR<>40V9_4Y
zHQdZUnJMAkb~kFm!_%$xtmMQDeoTf&OV8IIJ#^Q#j4BKNQ_6~LRTThYe{qy0{6ar!
za*V@w$sOPtahah?BZ|2{V4j!d(IVocrVh^Pb&<1xs4SPH-^&+#J9B;R#c5!)fHJ+7
zLWBzKy*s1T*D+SJGv;VIn7KMz%Blmdq%LghKfCzxe(XN>o~OpGQXRJH?@lN0%6=I4
zXq}5WP5pFs{M7dwGWCrwhA&;`iNs5_eVz$vjvV0s(QmdP1>$3SYC9NRtulW4%_8n{
z{+Rvig>AnlRs~v)E|r+2k{6u$tdW-zL*Jipz95+)byHWWc{D^jQ{%;7QkyVb=Gq5E
zt(l%wpP01I^%ojzxFg6dEC-kv7RKMPtz4gf82o8t%^NTk%&PZpCiR&f%*B$hjk3k6
z!%l~L#P1D7KDBj(`RLU`6p}I$XO5FoZ}T{b+)UcV6|FN};UfFHv=gKrV!(a?uo?~&
zJ=*DU+8oVn`&&MUopxkn2mf)<I1V^T{*|j6Qxz-PnLj#@>Wr)W81D?2&Z}L6h{>|~
z2!>mv=1vzKSbBw$_g)hcAm}O1=#%>evzcq=BS<;EbvF<AR3j>!<m2Kar9uwAn_z*>
z&1s-Q7{|ZAM#*w?h)Ad$<52|vqZL(6(nou^U+HqiSB|eP(?3)hZco@$2j)T_K>K_Z
z@X88~=~+uF%gTtD`ii7i3i&27u2#yQPGbt(^P@j{cJisLY?;0p;MC1`ny6~{gU)Fj
z;{E*{EY~rCLv)XYODZLPzpEM_#y9UO_2z5DW0(_>3P|qc)&)iqIa)f-9PLW!*z!uj
z|JesU2dviuM#rP<(6ze^;v|C@nJcUf$lYZXK|WxSQOT05*)1Lo^5Q->`bm&KD@HCO
zdqdNyo|%fl6?T8(U94*_HeMZ*3r+9Q7e3p0RXy6Yo#M+9y*HgSC%K33*+`@;o7pO0
z?>B$`Ll6+XNEUAJX=Pbe5m%EO7p@F2XW!PzHRBBu323@CeK#W1Ik^WK4{>{^f(Y}s
zR#NzrywDsO|E;ft&gM^jsr~U@3s|Vbb>G=^CgX$bHs`hnuA~K0^j&BaCUGgBG^C<t
z>DMAf$6KksWl~2vUFqjq7C5P;qfef0XKw_}N^-5Z#wc(sRc*hGiH7qomz$^84$WDF
z;`T}w2K=TaRZHy!)m8iE!IBMXx7nKpOIEh&g;giaHN~6wP)#9lm*18T{{kA65j7N-
zipH9Z?x?Tp$sp{Arvs|l%}ZkM@8oqlT_b}2yXHQoUr%HmJSO+d_RYS9F6es+L2;&-
zRMSK2m!o#qo?`$(yWHNL!N(i@nFAbtD)%>?`Y4*>CbDs8@>aS4^})k3$@QR-cfH_!
z{;It$BCc+@R_3z1g9-3>0IzRgAVU$E?XrA<^Gk<!Qq2|33)dBZ5oE)TZ0p>3jsmr8
z^_t(W=7e^dOGhT9X!DYiGUhwY7S)ODw(}_mt+lpaf{aUo6Ji;7cbGNjC|PFd(+9W1
zyZ$8e$n@G9d)|c8SWmGy2`QAQ<8DaLR>WhQ$HZiTV5`JFJiZ6gqLxm!9JrlSc4<~~
z_zH)Pwu`SNp;;3Yr|z;SUp24Ut58V4oygsO_{97dEa{_M@{+X5qe(VWn)8qIaJXwH
zb(uwSF+LNnPgJ~bx|01)SWuVP*GmdOSMDx2=Cz;)M_(^|2^Oc9OBYf)X9dbiU)2N0
zy`t8l^h$rF;N?l-9FaFr0Ubu-8$<d)A%{>6w&xGODbOrzVNW3KJX&!jyyx{Tj#lKR
z@FRI&A4{D9bftmkF0rWjQNw>YUsh6UmDHULY05j5(xwsPa?SFx{rF|1Qoevs|Au&z
z_RFByZoqM^2z`OE%>~x~cE2Y2Dhm@BUAUZQ%SHk@#x$*d;&-slJ|Lt-oA`KJ_B-tF
z#nLMpJKz)>xR8U}EtBT&TPxyx!<(mca_mbkh&1Voc6aq4CL*BQvYZvNX*;Z#d2>SL
zYUwE848Wu+#~gP^ZldysL$D3}xwCtNk-71R?Qtg)^jG*K;7m_ou4jnDhPPpzmDy+=
zDg80DXm*W1^@!C~11qJ(@DYg$KCBq~`DD2IUN&;;RY{c!^~^om<7nHVz`<H#bjG?<
zwfhqv7vbg4wO-;IEfrp`b_ZP3&^7gZ*f`E@p<1C__r~I2&~#()VYso=P<(LEa>Jqa
znyMocyXr!}ir5fehry<cXkAI*e}#LQdSfPeC1tO@jQ?P|riwsMpyib1)VF3N`^TVL
zpmHLZA7clw9g2o8JYc<Edt`)6%0+wL`*H!5q32F4247J0V=*u4g?>Vz8QJ>?>Y#A^
zmT1AY>(;DDkEiJ(R^Ft&f(6mpq7_@Xs5kLG4n#h^-=;wt<F5ySQ9S-UxxAtXJ0S3g
zUy+3@G0{sTlQ*V`TPc{jxGgsBp+f`sc(xw^H)8wdO5sz`^(*7V^x(BIfunxmh}~(F
zB?23o*wF<(goOEY38Y0eltJNH7x|?m2o{$vgk@X!NG44^uDYLvFzZM*^}Jo$Ls!PW
zluY3AbW#<nQI6+25H^Eq4#=d&B`oMz9jZRiyOOL729CssZYJxiC@d6uzs7V&aO-U+
zlr4LoTX2?E|LX2dy2=UV#g{Cc1~;|~r&m9S{8x-sam^2#FIh%bSN_Vp+;}x>(<zVX
zP6Y5V$O@Pp*Q2R++kcLV+2B1VH>BygB)R>dXNB|HBcDS+w)3{e3i5`m^?Pr8M4kRk
zT!)y74`err@nNp9vLB3%w@iG3v+MweQ}B7>cfQ(rnQ1S47CCUGcXJf7{+R^XdPZ;r
zT>Hr_gE^GA<8LDEh-?v!4?Jdiar}}+<2%1CY#sHC{Cxl8ll(uwN10+_yaB04C+;-n
zoqr0Fof>&6ynFgKRZHDj>G0W6RuX^I1x%w=T4d=$rO+7#lyk@5&w53_L!0X@=3}6x
z`GAXKqpNN2(Sti9pH&xRck8X-JkgmjSZIz{W_%n3CT`+87*N37nctW{B)xlGGt8%0
z>BM*1?mVl=J4l=^hVCOq5pY=*5vm*ecFTAA-esCu{@R3%a2KPwcE=&@!P-Fjo%0K8
zCF{a^EYKn{s>5l&sF2qLJdksIHWXP)fGl5G?%<ez?;278&d9aP>@TXdQ;>eKeH0B_
z{=pH{FVEpr?Dl)z;@!rgxJ6>q79Yy^Spl&JRu=bf{Nzo8j&ZW;t<}D0l{cMl*7)9l
zJZoQV)E8T!k9ghc{^3Xm(RpPkNaSsz*Act68DyRVF~?MsZZN*5wX^)rOiHHvFjQf;
zXfG}V+ay@xsD|w}mq@DqQ1kK3K{_PnRPw^mcB1iuCqMA#6&qkAd?f1oZRH9H5fQ{v
z%YJ5n8zqbxi)f(j*hBbM<0Q84|GRl6&fuSu(n`+52Y)q)+?H?YcW!cib4>EdmHh;2
z;ZyncZ7fb?I}{?$ms0y=G15iWf|P-NR4(^1F|Al#CY{G^?D03UP1o4F>lIR8m2^E=
ze_|6(?yxCZmbF5?Z#<3Vu&;FEq6(oWbh?(>xB|k{ldg8)Wu^^2y~kiHGC_&T4S}aQ
zh@Kj>aurUFE%kP5-ow+&Q;vUH(0x7r9>5n9XNb2and8B|n{N{8f})Uida%c=)L2Wb
zbu^_nWDh0D9JKOuD9uyTxr`QAsOQN}+K~3X#@LDb*GXPve8zF`U<|=j#4qlaIUjGP
za89mq-_s+fT#JGrJMl}<!7AC)(|0~k@d=pWRS2h^i|$zL>~f#9?H_oIW?#pFo{Z|{
z;V6VHRwJwTAN1Dt3~O(aM{O?YXP&QZi~_{0hB_3cfIn*d-g?GZE(NSK7Kb~(+i~=-
z_sSB+zKUEuFh>o(<o8?K6}ZgMAJ5!xm+h*Vt01np9A)R({zLbgZ{J!vSk*=nkko}-
zoOr%mvT{C%2B#fDaho;oSLz^(l@c{+2t%jeeW`1#QtHVaXP2W#*wuTy^MqcS)Zfhm
zC60RQK|TUDx;XQLvSSZ=%$6K1-;ckb{xIY3CvX0ttdEbP0}isFLCc)M+EsBmy!nmS
zffU8!TsJ3$z8tPMhMmQW>VU_`XcQxmxfQ1<*Jzy7z+!RXrG0X37R_&uBJnPGWr+Da
zenR^aH{1zmpOx1<w2ZxNXg!1fpmI}OJ!|e(@${x*yjw-4eXN7GjajukX4NDF!rvJJ
zCJaW3x~x`9np;es2+j5-uCrveSg~G^h9+OL#T%P$0QVhC1Xg_2Vlnd{UDjsIrd7>R
z^dWL5<Z94CX&G=pyA_<PZ{EEh6v|%nzUSx$|I|=HJp2;-+>WA!Z3EH4^(2}mI(jW@
zx)R}|WQDpQ>E8N2zzY58A-J-kF=6;mciqdmdosuPh;fPcn84?Kfn@W5-+HxCYjKEA
zFM?Z{i&b<6nu<+<S(p`MhK+6pW=vIrxz-W$`%G<fnL_M?rHLvlcXFNoP%rpUbMhcC
zcB=@)&}61ZY>y@B-TQ`KQ(;Ee=D><%<R<zH<DB*I{0@G;Y>SE6n|@#ZOv7qlyey1`
z4So@eb99@_NYh$9Y^=Rg)1Y;bk*=}YQC5RbB>dox-e>(211aXINi0<_L{D@Fs%>O=
zmrW}Bkzamk9|mv?J?xA%U$=Fn#H>Py5{HE21K`X72^08)C8jX?(AjHo#s^5ujizXw
zOFyGzts#dlOTdTTJ)F_GG?1WaY&dqKWANNVO#0i(v2RW-l|y}|)pljC`?B@vza2F-
zy^FtyzFyQ)1mrckR#Mu9^X);4f~o=K33WGHAsd_GjI6SjedgloJ|mR}<!iA@^r8GP
zrImvOynm!Os6G);UFA+J3FQ+9YStDy(CED2xvxs1l%kbCL7yH)wzrsd5m$txuYDee
zqDTf<j{QbTUX|5Rge-;-tr{E&$Z^bdPc)vsvI5am&+;daJ=)<l>I&sn3M9B7Dz45{
z>psX(;x6v~z4Hut!A%<@fm!A#dxC!X<aABs*XejB9{o%_-u1x0>f(`uTrsV6e_Lk9
zpW#3}>>1p>4L!&bKOEj?HbXI<UTe0hM;(8pI7THct?Ju1P(;z|^mB1~qQ{7Q{&6|D
zU>dONGeEJg{LioW;CsxM9Me&UMZo@?z~D_^`Yn19Mr{N9eYSww&U>J}PHTH^H7QhU
zc30fOc$UEm{v#%~N!p>Ccq1uMNao|%v6(9tv6Thnq>#I;=IoVR^_+rZ=J5GQ#;>F0
zlDnhU))ZIFCP8t%VN`%tC{{{q<vsdyIsn@sf8akug){e1^ijt8j1P6)t%2H7=PG@e
zTl;#nOMQwetF$w9WlOGnVU$E=d*8CZ!nd)ynSKgG3y%@wT40OFO14UmYuuUe*_GT(
zcSGp>*2F-$9()@N75>DicU5%dHD{l3<vN<+fWo%7R*0CNPTSZNqo<r!PK(!zy&LBJ
z+tKEu&}RgFV}B=^?dIu$XlOd=xc?PIO9v^7BJd4Cj-S(yC_V%|D5^KkAXivCXx3+|
zypgjADXqPqW7}wahm{~LjU&Yh(+)`k{9(Y+HP1ENu;U-!;4%4Pd+V;h|GOqfN%GIk
zQM1p}&25i`D&d+M4_w$J8333$4A9|C_x81dz}YKXq|BKQqnlA9mKBHP$)l>i1S}SZ
zl5M=-aBvijBbw97jDk2&@g8XOYV;_YSvu2(Lr3CN(2<LhXL9|IJDqq-jBqt*fq&)D
zz!J5x^c}!SIrCn2)y4eSD9(aZfH88ece8f8kG|FWb~9K}+G=t@|6t}A5%B`-mr5lV
z1^V6j+<V}f)2;0@*=2n2w8t9+X-X%5PlI<)#R4EMr%o0FLSfoCy2!t!iIc-cy_;gc
zpsc;*n*xo%=4el0dv&;zKj8>G_GZ$!lFLQ#zZL=Wn9Id|0vY{bChdU9!OEoZAveMu
zdBDug0<tB1x)4({2rV8P-se4_tWvn)mJ96uCzm)6gIq~{6m>1P{)68A11HiIs%47;
z9I{8P$Re&RP2y;eHiy=vnvf!KP}C@PqmOJzQ=IKY&00ad${A>Xca$rJQ1;U<m{Dl=
zZqt-;G`Gea-7P}WF!b0-G|H-Gx0$?Z9wb6<_i=|q0OPcO2D7$~v_LDG(Y@}w%)b4M
zgAl2S!#Wa|PrBRcC>G`#-g)<WL0`<~Q9dY*S(MM%MboG1<WHFAR{giSMXId9Q2$fr
zCys6XnhVyqijzhXDOt>=0@W&JMa%R)Jsq%@nMM*7fk4E-if}u+82t_kk*5d1*MCly
z7WMty8!vH?`B0c4>bn!2rpiGpzy=4QGsRnf7<nDvRoIcv#!==hDt67e8g;ku#LBlw
z7y*y(D`a#)@sYSn`>wxrnIXIoCV}XT-9%DmR)>kC&SXk3G!3~w13;0Ek(!ojZX~IN
zlW+1jMl|!!299Qc8e<!?`Z}CbW(-GrY6!P+CbB=L>%U{?d}ujVC-D9c1K8d{W;gR0
zJ8$7MTU;j=oCWS|hCFlY`d=^qkHzt8&42fD=xZ8>BP*(?5W*(ob8ufqJz>R;(oW8q
zu?J5e?SuB#>nN<owYvTL6XWYfy@9y~V4sStx)6niE)vu~M~~O-!cL(YSm&3x_E3uG
z^u_hny7Jo%!9|$4EZWiQWRqM}8Iwdx4`$*%gZC7mB|96q|B=E0|2a(;TvA3`eIlD`
zXiT$>ai3O8MbOis>6wUQGgFhS?(gP755heWFG!h<xJK{4+%SZK209PD=O+3z5(54%
zj>09+4P^O`_*0rE3gXrBiYiyIS9#r!j(mc4KIiR*VL<S$<)T6cK7P${32Z<9pD+JU
z=KEj$+y1ZqZAT*{)wGb!gMOb)PH62mO~t+E_d0qu%?hzMOzfJaGKkC5VNRQ-;w95K
zeIQ_-reIiCtE(JL@6m;p`EEncRF?oY)PJYPR5XU=#gFVJi6aqC%#k_rA^>5E5h*f1
znnq!M#CI~gN$HNveIII+N#;=rfeIs4{$EL~9~8wFFpu~ljHYqYoF47v2i_gM9cd2#
zTqt8~7dJjL4msjP9%jiBDaGRbpW=6jU&Hpn>eGY%WB!WFqm$`~ZyLy3p1^>;-$cAR
zL|-*6{Yd9$&b6gCOmzr-ie!|FL~N!`BHe>1&>*ADe0Re4-{T<H{|@`jQ|wBOHTwo9
z%G-+V@u=p%=-};!**cIab#{DI!B83Gx!GBS=#z!*BAEr4t@T54RS5DKa&}+cCv&C-
zFkJ`t51J2yti>~yBHqQX?C1@XciqI!<~u9WYa1gDaWwM<usSM(fg@^zvWw?!3r?J1
zd87O2;S0>m^+NxTYvv-yA?V4q!X8XnfHFFIh$K$RU`oyet}hcw*kz6kY#x>45eIu5
zIbpbX6nX=h3=-MxTicgFU{}|V(kXH&tnhfcb7H{D&k3>>7zs;EwRa=qsJsrrnAx6j
z<V7?7Cg(885K&jcoT|*a`Gf!G2G(8g1jc5{-EqfdphdtGT(vvJpQ%bc&Uy042zr*k
z8>-<TzVVR!8NHOZ!Xd6U4L<a1XxX2pWgKqyPx{UN#zs;Ss0!0U^)N(jkSoFZn9J@x
z!8dFxI`LqK*h@1ZO<Tc9QDN>#`$P5d$nzN2+5f-h{Kp%=2_6dp;G0}X3UR*ow+@NR
z1=T1Jr5KzzKGoU#MEB#V!4PO_-i|&FwM$ebkIsM&qbOv_V|ba#z!vy%<@nEQ{;QV#
f&x0*fb_STWNXhBl`{9uj$CvJ7gGYrL)}j9g^J-~c

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/a.mp3 b/src/assets/all-letters/letter-audios/a.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..d3b62661990ec6cc1761db4ca2285f9073a6fc9b
GIT binary patch
literal 14834
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/b.mp3 b/src/assets/all-letters/letter-audios/b.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..4d511c81aa451eafd10120e86c9009b39fd37add
GIT binary patch
literal 15990
zcmeHu2{=@b{`aUMB-xizO?EQOZe}dmv+sLUvu2n@Gh?kpAr-QRED<WDBukRCNM$K|
zN~H}+d#O~K_l%{hd%M5)_j~Vq?{ojpzw_X6&iSsN?|RN)V}V=<0uD2}yN{(S@QV=e
zjex;%Aa@H>_qlTf3<Ywxaj={{hr{3)kh80eCkUj70D-(6oI!?b!-EN=APN^kq->@!
zjg((EG$})9WFuuSv;)i`*qjnTvyNm_+#(&_Ns&P$99em-v8Z7<KAaKEpl}J0a0Z>p
z!G{|u6UZzg1rPkrzpSSWnI_=|87Z6cZ$JQL5OWrr0zvCypd>g74bjKx!Z8Re2Brf6
z49DuhP<n726b8q`uy_;_GJ7Z+i$V<9WGdd(!fI9-aAu?&z~u(x_4LBR!gRxsx-9l)
zfEkC=gCX<~2q-`S<wP*Kgm5U6qrw+4Bg2BiA+c$}TpEiB;maftSs`2_Wo6(#WX=;t
zu!F-7@l1~Hv|qX;7DF$b5UdB+h3PREdh<CrT+2{E$gDxX<lwkR1XJ`}DI8V^n?$h;
zr7*cFKZ|gs{LQC7Ap#)(NdORyKek}LHWHgc;Ii1JTo&WkO!Ek)9iGn&XtMZc_%LSh
zv4~(27&MXtg-inyVIH<*(hq&XA#D0|)W{?~3Z23L5a9s2;4}1q5(fvo4U@wqFi8{}
z3nOLViY|>t#*<-4GKqpgLn$yM0g9%ekWivN5(mY?^r;jo9784G;L|E+L|Cv$A$-|<
z5d;_oNhDKAPzsVjg`&wYIFx`Q!=Xqrj0~GTkhpoQPHY-b5Cr;s5qvAifE5TFj6%dv
zC{QdM1N_iOp`chafe0m05mX8sun~v&VFlg+s0T8EORyktDMrft8im48Pz1sq4#UH-
zcm!q*knk|roNBxSi%g?N{8?)AnP9rJSoFD4b7oT*Gzw5^&TJOM+<dyabm0(9FB+4~
z3gc+~&@|0U`K2Zd9uEK6E(-@dA%sk0xe*w_bc*Y=GteJi{(P68?ncURj17}Jr)-YE
zJb=JtQs^@jZd|}j);tm*;B2ltjX`lE5$Jrh(7(JnZGsyulCNZ%fK0+uS!@OYs6z*5
z<aEJ93};fnn#KW=J%Zl@X1jnJWy{RjOjDrKrf)$Y(}j#DkofJvNSQ+jrI4qE1AH^L
zX!8<MAA=$ys4yH9iJ>B(Bz+_dO2MHBP$U6^n8_v#=4bA(016=XkK_MC6^BLTh7s5l
z)6GEk{-wbF5J3Wv-b?{Hxt_A#pYV6O=>N#$xe`R-Fa!h+3FJLS9|1+dP!uQ;MkGK<
z7%UP?hLMn1!b~0gu;f4B`JeId{}RzT|6n8>7KuT_phzSY3q%$LbQdZb4kZy`SPBA%
zBB8J|S^1yz@23>~i;?}4e*fv#`d{ETf5+hW)Va(y)Z>ryxxzNo`^VCs?FKf?&1_&U
z@yE@)j$lUE{7)(b7_|8LWsjy(ktBUM5sCxm5EO$Up`k<~Fpdy7DtxBw^=CTyG)R1I
z^1Km*AW`*U1T+SUAW{fW0u>kq2rP*Vr4q2S+$iMVng*Yn%4RW~fu3lj%mun4(3CM)
zls*zOt%{03qkxTWMlG4Y+`%xYf4uXvKrU;ZIM|=%qSELTX970>=tNN8*XI+4_ot2(
zo_T$K4?>p_{C6fZ2%I1X0y~Jp<`^kEvY3>ggEWWrT#)`gBC~;VCNQ}_b?rI6*(Oe>
z%|`4WHoMtU0rt7SUn2fW@MhWPPyfFXy;=4@S|Ttw5|x6&p`lm=f&>M22rPe<K|^s^
z1dfOyQ;`(vk3Pc}_s5F_43EOj8`wbl&G7v5Wnv!34=De!Zuo+x_wTvl;$Qf?!3kXW
zgW37x?*D5Y{SffWIWo_Uxya9%^Dhn2A6kFWZ2<s&YB&JxTsr@>Zp_imd+wO)Gt>NY
zNjxKMF2m<U%`1V~qOhQ_X~0%u1vG_eUpd^r?@vGgr}yMPKcr`5%<ocs8T>8xugYNk
z!N&ZjWX%k5!+DP%_^_FsmH(_V?eYA3lyEME$(df(bc5N!Y*ye*tD8?lV}`Ow1pY>6
zMJH?q8j_y<KN5v7Nx-TcNFi}&dYqr%T0aZC9}u-5E-Tn?B(HopwQ)ElX->;8>|_u~
zzqFAM989Op7+}sK^Y>LG3Mh3P3O!rfzc$tsV4HbP1UTTp(t*JOkI1u)l%EX1I?Z<&
zFd4{zX=G+Da;G<M1}l^{*LG*A$sz1%80OK266hg(i)L16e!Bpqa%L89U>w2qko;lt
zv(g_6ItlP*o-F=!vYOq%5jdQ_1)CMj-{bjYGl0+92VC=<(F=na%zgc=gFv5t1o(x9
zUvU0e8>VA6Q)fR{<IFYS?E>&xL+{6Xjk%5pRQA8|m^S|3D1Tb?ZzX>T;oormhU+gO
z@Rx{xXV-7I{t^OziTHPR{eOc?^lzVxP?*3=v@qav58z{z-^XtRek1T3f!_%HM&LIB
z|JxAYea+Ye0xevz(S)>c`6k&%@*mVx)Xa1w6%q|iOjJOJJ7FL&Q@u;I{EUmGgO+`X
zko5}v?^CMGjqJ3R`wtb1nO}_e)ZZ%GV_vl~Ze!ac*6>&lFRrJv8hXnt!Q<Qc^Pl~6
z3#BdYe{hiIB;?9+5<Eofo3&$K1;jpc97%ADeJ!ak>HpB;BwWfW+r&>xF`DyG!aBPM
zY|;UefG;z<0Rjo2NSmIc)sFA{eB{e@cVCle(1Js;dfpDoAjnem)Pm<Gppn7;*F0wk
z5IG1^l_n*Ak!V70rcO#M$QF6zzaX0{7(MVg&of!4ZCGmP=KEMJ!O8_7TVZ%BXu%zw
zz#Y7cTU=UgR(!`2B;yNX#M}Eov=SNJL!7QpHlDTP4`59r4}!~2Xe_-Z(4DS7qLn|S
zzvD15{dWDL^P-E=h4-acT2!{kq{Ujeb$u{KN-kyJk{5geE}G2B(n|GkB8$2e=m{UW
z!}MERYiVh@a>o=ev0|&zk>O68E`N7{*tkV}{K+6t+=6Q=ViF+1ht|~~69I6F{0heT
z%O;SR5(!Wu*yZ4Tn?)%1&w`(qC@xqcvE-(pxPkF8p%!T>k5N%;HLx){+ax;r@|D1N
zu>8WEf%_K0EKGDy$L~sLvE1E*%2B+knP0L`?Aqnhm^j?_ij5yscENSFZZm-H+5Dn_
zUZ}WJI?Kx1DzRXV>4L;lNI{)44SH=%fW^J__7<=RbeyP^lu3b`kI(X`k2fX`TsT+0
zw^L1_-RhjdI*zIGuq3Q_k)4<69vt-mBXgg6^2MRIpLS}i`5<@gEAhC*Np_S^l&E+r
zm|G>LoAweDfAIbD@Mz4^`s4bASC0x{fWLJ~x=?E^-<9wg{BDy(?UzjTlA1^@Z+Flk
z(j(=k9xpEkrmef<C=*0f@*s9Ez2W=N=Vj~WJbc8tDqNdO%2{_MxN}0pWK_9%v4RWO
z0hN8|Z4E-TOp+M%jGPvKZ-skuaKG7$9`!8e91D|Hb>B@%Mp(^*OIGW&OB>_6gEe=w
z^YMQJT6o{dnnX9>1c{Ci0TnHfiZfbQaT;2A3Z&8tq}5f-a*m0`oolYarYn;rg=I{}
zbg6xQ4I+?$b=N_$9Ujg*c)ah1{Y8Th8mGQ&_x>&&d3n+PA;%9k$$eopcef0vXcc>y
zj5=Q15Z*L)+r(~&#TyJFXSgS@NMcWGnp=cY6x>DL_&Gbvo9+=b*{9@MzvPa^w+jUa
z4P^GqhTxgX@r8R@HA&g+zNhS#Wdi3TZkp#`28!Yu)Dw5drac}zzzGOW%s(ub@1S_}
zc4ieqYiGZfhPOL6Ke|%T`SkAR)+xSkE@dO0n#BsQR#`?EcN7zcXpUSTPbi2|J>bS!
z@oqz}Pl6_8WrDI(VQTv1>yK9sRE2e|;_+^#u89VjB&@mhZRp9-p#GjO;B}<vB1zT(
z$l-NKvKTcpk(%NO`O{G!9l&<WOn2YNkce}-aL_7R&7gMheod7vcsUj<uo!V*DQJyZ
z<xoJiy+@ih__~+>O@pZSx~ErI9mBTH;1A|G_HM=6F%cjUEdX$juI(Nb1Zd?gFr^Zd
zkdm_4;ry$?9H;E5DEHi9--e#$OeIH7dx1%0ndM?*>+7XgGzTG|JsAl){$Q^d?KqP=
z=TyC=AXeQwW0iLvwkYjL%`<e)$rN5{$$4tkmG8Y>;$?=`0+%xJc(2pWIWI6Vt|bY0
z7h33pGXeXNXl0G3#feX$n}|yuVZ{bAE*gGa2KV7TPZ7NuP4fC4!5eNnU~|UG?72_W
zq~!h58nG8cFO}nr#-CQzD?}*0d(RGe7dqzZ8=QUf>||=XoN%`A29r3oyZ0GYn1?>j
z?<Ct5#WIAvQK0<rOWgrdXDg*v;{-F~jT&IzjXA0pO;ko9PU8~pn#N{kC)7T-EtX%q
zn4Y8k&Bj{ZyZF4RxmtnFDzgvZvFjybs<hyi0kKpw%V&nx3tu796xxR`34aZZIFL(2
zogxOeTh}hj$!=N3HS-K)VY-$4@vq-lrX9;0-}~w1F7@tJkK0l+G;a0q@xKx+n7h#<
zh-F8|0(A^hq04wgxB&To_D0@tHYh0|1R}H5Uoz&RT6sObX=+t@Q{;NaP~9Zw{H?%u
z+MDlYmed<ogykbGc6J0BWLR=Qwhx-qcD*q0-{!4m7uv9%o^+NFuqd~HeA4o&)XJ4h
z#N|pUF1cOY1r31^W=YMqmdKAAu3Woxu|woasC-Vf|43R@aFK_bM~H&$&Sce?H9iYk
zlfsv_99dVEvMP2j=Z$EJl5=rkx_}l`tvF7=U3|32^wa{Od!>kdL7cq{i4KNu$8PsZ
zCgNefqTP94o;JtBu8ar2PpO$GP$=8MV}6snE|UThvn)^lZfD*EY6!Zmjdy>0L`F8C
z>T=QBqEW04y46r8#SfDv5MS!*JeaVk)*$K~_!#4M5F@n?9H8Nt0HG-fnUV=syWd4w
z%A~A8a`s;FwH(D<-B4>3Bk1jB!R$jXsfnzM$h)-daDmRUs;(Hx5yh-0<Wq8KdmNN}
zh{D%Zclr1nxRGVQo{xVj2;98EeVmS@!yk&!fc%%Hgm_dmLeEx4t7QYHZY1)}6$A#x
zQ6<-6UqnusjPV4EQZFQVi0M(evrOZhzxw{Rjxhtb{ku?v+~h+AryF;2MXUFyuNt!0
zbJu7Tl3$!B0oJZ6oOEqWw)q_Rd06S_i9UN%>j|HwOie2^r2ffkZQZT?g!uf^8YlOO
znWz~sW}+sfQ5~xsC=t6bTIuSb@%NTPx9{8b^gC)A47~BlsabwO3E!B0H7>(dFhRI%
z09@#w1r1-h!a?AglkCA|2}Rpf*U9Ai@9fe}Q;DEe+hh!r4Qo#h=XZOm^`&zQLqCqh
zDT&_Dz=gEJv2Lic7MV*QLeGfm(JsYGG_rUBjXH5k#;cWY+?;q%P**+QXQJI*$otY6
z{Gcv6_RMRxn@GMEEH&O&X1%#7@ww1)?L2f@m!;IUW9{h!@5u6MwPQfAgyqCt?o~#;
zJcM|DZqI{BgU?0BUpa*oZX_-@2;bkeYImXFYCis<An+-_z95<%eND6ok&nM+h#SBE
zM@Lg)fm4!a@5DXVjrM`#H|~iOj6ONi@(46dpUyo}G^tS+t!`;sl(ufYc1G(|$Nr0n
z-6+k{Gf4%(RqyHJ*H`yAoYBKH7T!)?C8ZOSp;?-AMkh{tIE&bRrkeV;IDxsvKtc3y
zL239wyS>?P%Y)ctIjy?)JYF1ly-?@)Ca%5FXtS7Edp_jyo|BuDVaGpN!&%m9Z8Px^
zkTFboSNs^Cb$ZpEtJ1smLD(Ro+Z8KH1LLxAidb68LShNNPr?kFu2ogu;ZAL{)s53a
zU5ydhjUf4e-&`J+^dv&`wd7;nY*N+l);3oOmsrzI9jUUF>sjuc+Gl54p-iXtq;vbX
z7o_R1S@f_jcUxy)&x>D>JYGZfYCB_^@vYRoOV{#vyt_koW1H6|J0L?>GwO5~u<f8}
z>!j@o3h}0?@uhmp7HQ=Xcn9MH4_8xf-r-L4XNj*kLtAtaw&Q>&AAc$c9N_OUPD9eA
z9*S%M0GIOTxKzNQX9J?ug@My=iyuYxz1R@O+)%M&xMXTqF;QCfNY;K0VWe=$VNOsx
z6_PC{9e(VnsMKEBCo6WoiTxyfx8b?fLl3irP3mTG1KfLZ+iqMDxuj@#Q{&sy45>yh
z%;>NU=GzONbBk>4+v=0ccs$Cj6xZ0byeX)BwcGo)O_i<>VTTTT3asUQ+odL_hEuC;
z1KJqbY+Z1axDf)DiE@gMS$i}v)xIUVFwo9>bZh_Q3Fym;$_@DY#g@BNlwBNqAD&8_
zJcqm<wqwm`U*?Pb4OG>@t$|f)MBkg*35nAB8>q6qA9sGbU;iWz`}UyL1B*1J05REn
zerp?U@7D`skz-^pAeADGo6%dRyrk^=KgxJs1>2}LLhM!|+a9Q|axyT;o2Ywp@KN*r
zMTqC(eg}_94x>I+LIGEJyqEoPmbn3Lyf1?h@sJKki}zchP9GtQ$6K)Z%rj02!g18I
zl8UjutbCC?KK_hoLDGgk2IHZa#3qqVhd`iZrD5wQ+d%;KYF7aKk!@Y4i(MkS1zlh^
zh!-i@hIj$+*Z6>i=<v?P%Ec*F6A3*Ud96y%TSp~8dlSpht8cBHsxo_kKTyCPsU8T;
zr-$)2UL*AGN4MI(@PFiY>wNBR-jYvEdX=~DPJQhgEubAJdSA4Chj`dmo?e(1tj6`4
zT1toShu*$VfG>r-*5P-pw${5+#qD0%(#p0(KhQE5Us=W*;_)7R<5iv>I-j$xX+OZ4
z)He3$75d0?qor1-FMY29^L)3f_Sjf<lk5WS5!X-yh;r#j(@n#zavnN0!q)B{JC-ZK
zT%SSgLRW=1y1ZDeQ?6cHR}qN`*GMQ5sSu}a_2~B@e>A|eNA5p4`da?Ox2J7T%(2Ph
z2Nn6_4E!Cd5wSy|{YzH4He7gj%72W-YYJms<B7d6J@^hx__Rdnj5E~r(?&^zg>dOI
zYg3mIkC<2qdh|IrM_Fp+zP%@FtRKhH1F=nf{9U6LPQdTnW<-mEKqA2pK>`v<ZUiW-
z<0ydtMGy$A-|yh$nYOpR$ujxL;+HA|bWzvyBi-4A5^oDO3Y@u={#ebZLTllhOF@D5
z?Pc5VZQmEdI3ICeg@btcoe+^Zh1niNZ>l$w6v%)hLoro@ExdzccXPfko4Qm1PF~=<
zA@JmQ@7Xl=JH)VERispcjliwC&KH5+OT<qvQ5e3`nYHsxq?BT^yTv7mv!Rg>pM}<o
zy%c$6uOf2DLVrVJU%ZD-uwj6`hNOd}V5w%7G_-edf^t(5%utTH9IB|!*@CdoOJBO!
zv-0WC<*OS*O27B%xAq<r=!{xy-m-$-gWrlT@=_mrkRBm{o|MGX6g^osn4T>s6ss0@
zhuCg>^0d?oH$aEWCpCIlXD{wF*(&8OqAQnl%YjahC5I_{f2LcnaBh>ls8%d=X-sBm
zp})C{#{0098~5c#@(52+;sdnA?WpaWYc!S$I<YJDMhh-f>>Tvkx4Dl;8e1`Wi;w>f
z5IEAytIgg#kdHs`$SDo=_qRWtG>89%9{r%|($FCTdHb5g%9}-~$jsf3bG^2%>9J#M
z-WnBz&dJNX8@H~96r#zH$PHbmnr7=Ky{dYvO<asT9Hjc36tdqm_yww2z+?|GohE<N
zX_HHz2J_XD%Xe)T?YVyHp4D+IT*JvECLK-s(8E6Z)JsO(!y&S;!QA{1f?OIp>_sv7
z{B>9N+j4oim7#6AFWNSGimcmifp~=0kX=Q(U;8w)LcM9je%$f?&dRTEO|?$8mg40*
zFQrJ`c+FcoAh^CTe%}#Quqhk!B-!?swX$7u;>*KM+oc4)g|6<u6?!=;-Q|&pIO)tb
z?@ph}ii8iZyu`?No~1d~)z#M@Jz;iIUBmatC4cxzb5j|Pw%*RSCr1{yUiA)sFFz0&
zRuCQ<d$mqJP5Zgz!F2j-AE%H>-;u{x@2tTk9_gSm3bVdWc^hDdUeT_+-<`bl!TJ6*
zt`i>X9lq?hZ@>Ap14<p><DVT3zHU7b<V2doUq)oh`ijOM_-CEole_wCbMZyhl9H@?
z)imGcy{}ZZGg`9Qpj66wpW-)L%U#XwoX^u8^_XGecQ3CukU8!a^{sWa>zAp$w=R0*
z)yi1k*d5vYz#DbUO~A~Vz687!ajZC|$XnAwFfHwJsdi*MLoQp_P#GeXy1RB|@K!rb
zn}tuL79U}3d8W7r?@}-|;K?hTD8e*7S20cqTDH0>Ad+yr`eT0ADDP|it7>-Glgh!o
z#QS|=#c51CO6DLlQmg>y-T%Jeo;QBVuf15B6S~n7w^G^PU@*V9psnhzt=G5?bq$u$
zy8S^?3nj<=#dn<2!I<E-C6^iyaC_ectJ#DJvT9`@*~)`<CnqN_DBnIdk~wC(Z+Qde
zy!VBLYJFeSp&G@vt8?Q#l1$H@ImVp4_v(J>{Tnxf&u-f-J60J5dy?Y1B)={w!Y8-J
z6Y;6G>Dt+^FU}7dfi1P@4gNJ>cZe&9251lQ@jn(VD7n#d9BUUaoBuK%A?qt1{lMQQ
zYjEI}kB%T*Id?zWGEhJpl;t{*&V%3tcQl@OljK7=dtLig8k<&i_Dn~Vw1c^8E?i#a
zq>;I7`7ua!qu50~4E!3Y$&sO1bCO)`X&rw$(9)I`RsOWR*qo5rs*}$kgnZ6C;du5O
zM``27>fzJJKWy0^@l3W&Z2ZKA^$wd8_a`!&6^{sQSK=V`?9tb$N`YM+t4rKu_on%1
zeDV(+tUB{R*5?{+Urj!$Z)ea+RGQj89JJHrBsBlgu?9pgj(e`=+bIXMcYD!9essBU
zx8hbeGPL&7+O2E6k3aXeqa*yv8Tj?dsdr;@Y&Bj7edlFm=47ETBWaiKEa}&Hu${Hi
zV~iNWF<6t~?f&4P54ShIc|%ZI*42qA!sA!?q4Nqh8O@O$4D^l2Zp>+~)W^INmPtI`
z<k)gV_(3JD>K^uv`@R9OeIZzJ*X#o+IZj~zlAFyNvxMwT1iJY6*MI~O8$8FoNk8z<
zBzT=5yaXokbpJ<8)E^Uflc}=FjP>mu7~S{u-lhiU-l~m>d)Kz43tfRtH7NE)WjIfX
zeLHa-4TmJ{jv1)#J7YYFe)d-9=%Jl%lpg6L!`bg9LWl-g*`fPaZHQ1iJ#sYoPLe!p
z=z#sOZ{(TxNo5oV<b$$zZBZ4cPB!UZ3KqD3Kk39Oou!>g9n3*S-5^D7-G~>h)q7;;
z`K9JXa^=;l%Iuv}V@}jfd`rF{{cg;iol|}I%(BAj+r=H1RZR88D&_2SlUokBmuYC7
zTAP8tObOL4Cx63eEV8(GV!MmTt0L|qyDk*HPFHo&#gu|T1BKdiN2;j|!pEzIVX5`D
zmsXNK53XZ}u<%iOBYKN<iitIMu_Wmn&wSt7gH~x*>S{)fLx<>X+uFZz(mSs0CTkui
zH@)P2^%aFhEu56b+U+vbb?*M)snum0Y@ZG<JZz?a#Wf+~W7<W%@o(n}MAPr}B;54U
z5#;0F7!AJf&`(kzF=z8%R%D~Y3Br&3UlTnRP^dpfs<X7>S&ow2C6hDPH{?nU3e<F%
zMI~M8E%MjgAIAxL32#A2cKWG$9`ze+FC*F5pIX1AdEH&gRuR9a-zVG1m}Rx6*KE4^
zBmvsrPWSCBDGa0RVvMzPc~^cEJmk3$UAAXEYjk<+E1!3&b<3G|R2iyL5N+~Zjwg|O
zz#F}<(Kt)wRmt|n_yBN%fx!1umscna31_@HCp<p+JU~f9vrrUl_(nx7_QDb8L-BiD
zKERzu0VAL9Z9T+wU66LcVoBSm#=4VLyDM9z4{<-=*fM!X(^U0jJvqe7O~>}?<LIkf
zZ(35?Ki0-_KU}h_Z0@ex`|4`{xB;m)QsH36oy~`iXcO)v-N>Gtj9&`8?t0K0u*XEL
z<KE!Qnv<~AGG~>KX&>(BQoVJ>%~SidACCS-Bvq;0wD<74A<kx;*vL75>(a3sA;^lQ
zm=o-t2j9=vUpy)L%*BVq$NxsOpt)n`*ypWt`7hmwvpivxbXFBaZU*+x_hG{MM+5yl
zpes}2Eo67E+vmf5MC?th*l@M?u+GG-95X-D?FK2U(TT?>cZdUZ8a<7T-M8x+sd}la
zruu!{UWe)!M?_9sy8-o58)Wt+68hJYZXcBp?Oh0Tza*i9cje&9ZRIr~QH7CjVTxzk
z3@vti@4vWPvU8uT0FrD6j?vD{6tZi-nelSWGWCd{l#Xf?krx@?9_gY~7{>}N=`XCS
zb<%BGb~DmL2-@E*a?QPJrN82agrs7VPLgDfRbFZ%RZ1pat&?aYku$CyU0b0TZjv=x
z;rZO!J?_%`fem(2%=L;X($5PH3za)KA6qQ>F7f>fqq^s5ccPU}9NICOAD)O8uhBO3
zqIhQsACpsdFg^4nYcl17Nmt@RwS;lChLHXnDi#?6QigHP>mQLIsMh8KddjO*zg$;P
zh+lw9M>j>S$}E1d?%{QD7w|yv;WzFlZG>9YZha73)5ypFRy4TDu_H)<6d-p|kqYcT
zl6^S+7X;|hbP!nqz+WrVV$;!x-L@)cWS^;Z_TDINuGE5<MsrQfY$etaTXl5A6BcFI
zOWWH@;e3M*XO<rI*_E0+=r|Y}w95mVRt7ylAqHfttzl&KHSNkQlj&E_l#>FEY~S+o
zsy3Y_V9Ed2j?c<_jfYYv*7Dx>2J-5wZb+GcK+daUdaVC7vHuxv0RQ%Ap_fiJ;|k`1
z;ujSr0Kf$_7cJWb25HXr|No33{{}69EC1~WkpCvUXwiotyJ!&qfp>cU2O^*g7!H}m
Z|G(Xb|H<~bo38u!nLqvC<9{sv{{VonTW|mX

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/c.mp3 b/src/assets/all-letters/letter-audios/c.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..bc5a455dd21d4c71626f00af806ab4cfd0a1b545
GIT binary patch
literal 13299
zcmeHO2{=^y-=CDV6h(z%LYA0)%$6k#g{JJg>defU3}!~h*t?=AZOYO{p~c#AqbNm*
zh_s8YB`Il9sC#ouCGVLTT;1F4t^fP}m-l%)kDh1F`F+>VcRe#tc67o-1bkU>UA=6a
z;SVzKKRgykMYz%}T}SWnSR%sJj$t!$kHg|f2uEi-cLYKWgFtvP91*4#5y1c}5ELSr
z;A$@4OuPU5MQtRPZKmyE!oV_utwDe8k|+ptiCX5$iV9>=+1eK73Z@aX2wpG`6avTy
zUJyTo7Gb6humwzz27eYk#%LqOB*H*5ZA;Ms5>|$^7C<1<1WiJ*a6}U%nTp1d@Dvi(
z7zrCr!C;9P92JGd(XbR6k$@bzw9OTerVyJ$bEeylD1-0JwEcy`U>XJ!9v+SkC!ht;
zYM7Zy#bEImJRSv8ph6<~LLdUg577~ckjS8eAuNa+EaVFKNRdo{DF_vsX=}sh$Wc#t
z!3@Tjczy_4>=&9P;9(+wU<?k8#qfBT@f;ySn=n|&h(TZE2yu-J1~JZHh#(YVfi__v
zU#RoB2xssQpT0o^O#YbwI2vEKV7xXK1Oh?<WGNKzzRWa^K<w~%W>^#b@9^PC@S#WY
z0Unpd0NGqP5yoN5W{v3!4uyimQDd_(U=YZI5eb2H;Ux615(a~2#}5$#d=_X&H`9in
zpt)Q&jZMMhITSJ(#iFp7D4YqAgJP0MAc_bui8wgjsQ`g3Rw)rd7qCJ_vPB{&BpeZ>
zGN~xG35$v%6WKU857{gf70&^%;)_5X$GRNi!UX{YjTa%Zf(=`N#hKtp96SNVViK4r
zya|yFOJT840N#W^CV?y>nLH+n#(?XA4F~}`AOy{{MKy}T5>a@(D-KJ;QE6DB5uET?
z?5JuQL%`;8BEOZ|S`tiGfgotK)Eps@#|7b1bA$v)Yin_Jp>aq94=$fA2oEtF(<J5v
zzo>~s!{I)+i_V|{p=_?e1>gk-fzD!QP`FW9pP!1--Ao%tvf~T?OknK~@cCengu+D#
zn<*Ga0tXxtx^j7-3kwJmp=I*LL$L`i+$fO}F#(%J;|L%g0M{YIksvO3q^TqYmT*Jh
zWRDc}fRQfX0<MwVNt!|sSA2v-iVK+rute>_OgjV!10|^h^GS}l;}VidAhWRmn~Wk6
ziA)q|!Zv}UPXtgDq9m8FSQ1HW+8B4ZKM0Hcdi=+TLj)XQH~@i`tKsbZuE36oV8KYQ
z2H{SQ(Z+m(zv80*n#ZFhh-0ytARewBESboHD}YEqF-<5G6q^JPsT4ex41%10x#!>F
z;eQj+QU9=HDvO9SVWR*nnSdf<i6$s25euSlSbz-RsT?){0RM9TK1<Q>jO;i1{mrd)
zEW`eN87<l|L_KvhvrRFgaXwnurkKB${zx~l<FAI`xg;7l<2r&Bu=;N*1Rk`s@nvtq
z;SgA491}$)z@vjiVws?rOp*x-&I_ER@X3-+E(S@&%^o*`@GK4)3z(2lcqRy-01i9~
z@Dvss#Q`WI+(g13sU_m(Kmwj4+!M{Tg>YA-!PSK)ld&cwkuDBAc;JmrqLxj<Qb`0!
z_xbGLb9q9+IBD2#Wa4mxKu1965BDLIcYk?e_m1S}S*QBTH{;Q~;6EA61405B02By9
zA!gdk1bp!G5RD=|8lpePV<b$D0AKi7&mQF)Y2iWKk$C-OuNx^8c$@q43h_Om8(|+m
z`@bi4BkW&WAxKmf2P9HWQ1C*-g0~SO1;r#2;8sJyQ<)?-hX8UUvky)rk+`p~5m*|L
zGHzUt@%;TNF^*#l%D+~PNRW8@9xW}=gFlT;_`z2u=h*2#T18_5zSwQXxiK2~QFH!B
zBXmsb7kVuWz-R3SrX5Y^&z6l*x^ZtEqg_VKKbpi6X`>lFDr#H_j1&bOgt+idVhgtf
zv9BS*KX)fMfZ{Fr+efrS#`qp3k|El0zgLFfEBo>{$&!q4({V2!v~bDBDtc29dp!OO
zj1YqS5b>&p4u*muL4c&wji=%A!vriqw9nZF0juGLgjxDmqEJ2yUX%ksmQd2;e0?o^
z=`>$BYJoyQu<w)oh26;&-8;9BYWaelJb?8@8-d{9Ag;s!YXMudtrCcEsZ)t2Benfy
zV=ZAe$y*}Kfx}aYBnte3Jkm%-$pCNLB8Op<;S3NXBY7wk@7+8>7<aVoj!?5hAu$Z&
zXv2V@P}m}}1P}>-h-B-AXAurV5Y3g(b&hT4EZCWGqC}&~c4Ym=Q>kP+BnTEQ@glPE
z;ze}s617<D!qLCabpS!){r?LZzQFmdHi$zeDYMUuQSuD_Y61RE12gue#%M!?3;UmV
ziH-j!$`_0Nq2#*|{sGqyxV{U4?;`$@T|eOZE(E@d_(yjAufe78$Il`lAN~d{9RAS*
z{te~F^#g$)2>d|c2LeA3_<_LxHw1=1q^&|ACaS5KSIekdDOdVW(ygB$r80T;HeIBF
ze%#?(Gp0<+kw&EJ+ubmT_qhVucUKQu13?HmW0{E*+49TON1e0JZuaXcw>t4e1~o|q
zs_w*FkYg9Wd!?qOcu=`jYeMp?R^_<|U#VG`t7+YgYy9nD+(*-igvwV~i;0&x?;<EM
z)08tV=g3WxVkF8;j9WcXdXCopX&aTCkUJ6D4eS{i3JDZPk2Eu8D?$p9{pwN1ud#*T
zo?-3k%Gay;ABXlYbgqrMe@oVyru6%Px)Zjywnb~*bji{Glr=0c9P0bD_WGQ<;u8ta
zSL#3MWB1ET_r<(6lYiu&xLk?eVx2XddVolepWD7NB7TnVl-u?1{FUGYP)XFVLeuXS
zU)Z&?TE{meo;TGMcg*l^U_4&`s!p!lbazZD?eW7BJ@-`!Qn7?3mv=qb)7Z9mlOg`d
zk)j#UqoD$gu$H#BULT>kS8~@^t8d5Z#m~F*lT!{&vzM}w5?C3zc-K13er?XXji1(v
z@aG_;Iy`Nwr8Stcol7py&Ys`_axFGJ@6AUb=2s#RlP*~|LGx14lQ($J-e|Po=PbLo
z0fQgOACBZlRcW>#Yc||clHaB}P35WIUbWt1SCT!S4;fU}E3SA_`A|x*?f$0$sboyF
zbEZ_WZoz<04J+1kU!`MNx_4n=<78PwNHgXB<jJa4zdd<p_!fWdsc*`yZCg5f{O0DZ
z^)z1du*!qJ@ls-{aj|)y>(<2P9f>=@b;@x?E2<TzM8)f~jM5tU#wr)oNXe_)sh$t|
zFR|K68n!|$FQXFVJQ}2g9YnX>7hR#|A%xTKf)|>)ZOCy<T3^?h<!+x7fJ;r1uJOO(
zth2{nR<&`xnU4Zd#aX?sY&rGPb|dLWXNU_9J;H~zRGe<xbtJGP?YF^McaPu7z0tYm
zSBI|a>o?o!9p;^VoU(*oG5gy5ZBY&cqR&m1@gCAt=r}TOW_6K%>a&Z}PWi=kO~`%M
zgHHCH*HnAXiPUr3%x!PVf|3`e;LEGfj15B~{NrP#yH>a`%sLei2>IY_#Dtlup<ZX-
z#>&C?SHt=6p_?_(ozF|%q1!od=8<j+i+q0IE$X53e)r?|jFz{6g2w&P%}e@;-CoBN
ztkl;#=*zy0@VC|5)`Ho(4P2wyu#de?;rG~~grvydyE~t%4AXYZ$MoGB7z&kL_~6Ds
zR)u$v<rFI$H?G?zs^N}@l~c$wQu6|k0yldXO{XcbGDXnF@+UEwQ?5-5s>|M5K)mi>
z)UiB&R?JXOX@5qGOJg3gV8)YFw3|~#i;1R>O+?M~85`FA)X^d1>wk0V<SiE(7bjh}
zO~1g4{gk{bEqG0AZBvxnsVIOAt<!mbd4Rn^{p`AP-f4T(Q#5rN_Po9MCI@r0(W}`!
zBzncL<^%O>Qm@_JcBQuj!Feygp`BGWcT&=wH(l!w)a=Tz!XO6mvJEU3*Ffx*NFpiX
zq+o7Ba@@-Z@2K9Phc}vIuAV`>+O}`z6WQI{J$K@K?|f)Kx;w)CMp1Y$GPlFL#<(L<
zg#TK^q{luUH*uXX;PSzphzT>CSfHNSSpK_PUl>UA+-f`Zy;)$y;G0dVLpXoMw@Iyc
zK55(^dNNl-T{j1~zP<Va`I!6dH@~eZN$+uZs-CsHB5)sZx@pQeFYm$=g^eB7r0zte
zd?-e1&^2t!9u5156WGK$x|~zpg?LLIUBB5g|5NYa=53du`*RN8)G+sS^3|9>e_{@j
zaWw~>W9sU4_D$CQ9jxbTD%LlJq%ooDzNQJ0Ucapc7>7<R%RP=RU^as;*PAO|?Y~#j
zAK7%VY)6)bPt${n1L<H(#oiAuPF~l4&({zfCZPF&WQIr6TI~fN$Vfqo-y`9nl=ETz
zUG_ETj7<+waw+~?E&d^mr2QG4l?mZ8vdOcWpJ%j`)Ryf!J?ykY&4e7QJE2I9?j`kj
zk(0KHrZe$)HgDo{=hP`Xm5ML#wsWbL3QM5n^z&+=7SIE?qBEfmonFc=Kr8&-vFH@r
zzz2M;*RE(h_%yz$p~QK)2>+zmNn4k<G)!X!i10_i_|NCEjLlG^{bzposnd5K{HpdS
z&FGBZN%v2^S7tD(%A-`SEb0kAtE5VxQm)m^MfxIMq83THY=4s({&LyL_RE=T>vJy2
zDK5HcAz#%ke<Zp*Am(xFHK(n13(RjETDs`=p>wLaY*+iu?yc{oi)2X&XKrO2S{zqW
zt<imUafdsSbW^9fr?!3N*_%G(Ef?B*gR^WsNb{~9U5U$bDcIe?v^cgTI?^a6=4FHY
z8%oKBo;C+TbSdiW#fWQ~4#`ukRd7`bkY~o4(yo-`-KyHeevkdPGO3h`_}X9YrZ^mU
zd}OEA_Lo-$YEb+stE2ad?mqnmuV7WRuKb9f-xV@u<H2@)nJXI)U#+q;$G_U|za*vL
zHDchGd#%!{Kc$fddrlMOd}F<>og20kxZk!=ef_jO_ESZeH#JYo*f##k?Y8b5!s6xL
zs%3AFo-S++^<{kkYXw<~YCRvXXXJH}!%8yaPwC1bI2VU>Mfm3-r0v~3o%*B4@E-z!
zyo&AFBmKXPzX%bRLEEl`ua{qdnRe^mEw4Ldt*6~tn^6JxAP}EX@{HB|x&T@FX4!}7
zKi#jN)3kE9%1bHJO|OS;vu2I;J!z+No80#AGEhDB^FdH|3uqA(lyqqpZyD+u<F!s%
z<`(Jm)gh;JZPrF8apLbjRG*|@pz=Pds5d{TIeas#Rk{fM_P6tWrRnF}k7w*SerI=e
zY6YW95MII?vPe}sfs&OvH7~85SFZut+2p59@V{!kVQ^|pgPK#*(Y<TboUMIVE?R83
z?^ca-=mF~1vnNaQwW#_n)55r!J>jSAJ!flcN^zy;*9A(g-HmI!Z{=gZ`1H(~IWbuU
zT;0H0kA-dVQCZcSFHAge#Die9iT6mxGrjbep~hyp#C@0uZz$@%+CXMaEqjCV2|eVK
zlA41aU45qNL%qN2F!|JE+p14``-FO1!-p3cq}_2Qwx!r7&y}UCDo@kfp2tyldsZmI
z|0F`1;L&{hU9|s5{;Qageex>C`cI1LqKw&9{Nu%zyOtgc+obQs@GsP}@t*G)zvWqZ
zZRpVe!ouWL#ySDH@?D1w(>55Sr99j>b<1VGOnxoLn|C0<R5jtu(%YV@jNa4(xAv|y
zAy|a{(p%$aI&-G|J*Y#6*t6$-xJ*$6v#GDdXSr@_A3>3)H;`4%e0yI%_HB&CjwR=7
z1V2}-3#k1N7adjal3f+3u-FKy4=QapRz@kRzT0NrGkJ>5%6ALGdQD2~>Xt4F*r7a)
zL8?nRI=#E*VeF92tf~IMnsBM2M~1s6_spEU%6$8MrH4!COLbA0LS5BOkIJmHgICGV
z_*i_sTdqH2!5n<?!W2)6Rb=yyYtb)moIE!;@FKAE=(OvHT1`_5pU)VItaxAAdrEk^
zmlGb+I`m}4h0FJ$6`9Y|&!^vvX*6%s^a&(H*)DLXIRB#b10QLrsDfVbs2#k0V9o&^
zZR=U+BwBvS<bdAZg!-B?5&mVd(o4MVKJWhn|DS$Ze#~qv|F2h+S#7M0Z9bSxUv1RR
zd|#IvJE*9kTM{=n*z=WJdZgSMd_LX4#>mt$K0UCE+lFXZs;uEOn-E|ypu6enUZ>U%
zOzDQSd0x*#!CR$PW%--spF%FDNG(1mqB_b|t}V-h>g*^_h<+i7vrE;{cV~aXzwj|B
zZH0IWj9vAn%4!F__La5?`lio6Vj}g}_U5}|#@C&)j-6;uTi?;!)o@e8@k!qO&en`g
zd1)t#^ej^54ayf!+H>YWjCXdDt#<O-W3@Unjl=qa+l;&eD^hD-IB30#sj#CTYBD9;
zxwUx;ub>vn`qxMJo_2{&%Py9&oRGL<-{DFn>Af~GuTSQ@pOzDKH%upR?v#d1DYb1#
zATH7S^0Om9-HUn}_}eXq+8dAFL{~vIF+hkXRD0%T)3M@?w+;jAE;>XH4-dcHxH3GW
z>1TC$E(@~L<&u^yet118$)U!YMHn*QFjKfbL4^M$gtX>LS8l(<X#USmh;({-Q89m{
z|GfCcDZ9VFPmq=9Q5`bWMy<)tTYmdj|BBFKQ3b9TaD7#S+Q&2Zi}qp<+W_=*eZxZ=
zs{qG*W<9?QbNTsHH?I=!jfJcB+=0yWmP&n8>YN*Qb>5Nr;O6uhM1T9oulf4cchwJ0
zooD}xU6-ALlQppH=wWY#goIw6cc2#5K|#UwpmLRFaeIoLP6{c-YC=hKD7}3_g)(=}
z<B6)dcZoxkObahBBxC9%gV1$GJ$)yQZ=iE3?@)IioOhM|+-!b9<C`niS+dHybXpQv
ze4COc*Z$_=o2H*V&oSif3TL79=N~`26MCULV|BZ!u=F--S|(RIdU3wO;u8ab&BV8J
zs=^x#U7uJ*pL=Stg0iq~=`xqh0<>RA0l>SnptZneh~l;{CFA40rPr=qyQ(Fl1*6`}
zqMWFyk6q{oe=I4z>g&<+47844lM$7|Ybcu=XZV0Nt@;#gr&iajJ;oyZ&m$(iak$ML
zm;X&%8#w<@8Y4hDynoi*$P3Ll<nBj5e9pu6qd9x9N@)4Cm`-%t-58piW7wcvTJE*g
zAlu6*DRRgSKi5lXP+rX-#nuU5U}Tj%W6DJ}$4ECXF0ybsKq~Ls0yrDExvlW-+<e+3
zK)3wyJ4-~);vB1W)30Rx{{G_d2QT~6xb4p(XDzG?)Z`2gmzK7uFSSBow?B3-t}7^<
zS|;5Qtx}IYIFR7CV1nKp`(}@mE`@5UR~Hy%`OyyM9N%>N#P3E>WXAHtq=SW7cWKg=
z11X9O0}TzQXsPUpbL`5rbJG;!poy!3bf&}4pY3Xb;!Ym(-m)n-O)-IK!^q_f<+$5%
zD%_<H?8|U-a|v*BgObjc(`GRest>(-=0{ROC@q<I<HiQd2gAcdEuMnLUk_%(nE%5U
zjDKb9BrnFY7gHSkr&p?3!hlcTM>RTTrkL*#tK$gY{=>5W-Hfp9|LGT;|BD)8WwQ|u
nu?U3R$oz#@P&8~fa-{$Kr~B}K**;gx#s56>#s78Z>*D_l8^<tx

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/d.mp3 b/src/assets/all-letters/letter-audios/d.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..2c26762c2a5c534300522576b90d3d3b998e1696
GIT binary patch
literal 14835
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/e.mp3 b/src/assets/all-letters/letter-audios/e.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..a29be311ae3cad11778847bec86a855f76f94f07
GIT binary patch
literal 13299
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
Y`gix?KiNJvs|Ej@`SSm|^L6q61v=<Pd;kCd

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/f.mp3 b/src/assets/all-letters/letter-audios/f.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..5deb473f16c542f55a06abbb6c76ba492956ffd5
GIT binary patch
literal 13299
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/g.mp3 b/src/assets/all-letters/letter-audios/g.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..dff70aa0f3786dee7a63dc2ed2d5cbb10e6a4b4c
GIT binary patch
literal 13299
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
MeCdDP`L_7~0$NaJ$^ZZW

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/h.mp3 b/src/assets/all-letters/letter-audios/h.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..46bd296dd8fcbf21b29940bd22a959503b0cccae
GIT binary patch
literal 12147
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
Z`2WLQ_&;qP*LKd|XTR#d&VO3`e*sPSL@NLQ

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/i.mp3 b/src/assets/all-letters/letter-audios/i.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..b5917fa02b24fcb18da0d7296c566664a624e07e
GIT binary patch
literal 13299
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/j.mp3 b/src/assets/all-letters/letter-audios/j.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..335cd4711706d908a425932b65d644791a7ee597
GIT binary patch
literal 15220
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/k.mp3 b/src/assets/all-letters/letter-audios/k.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..d5d25c5b2acdbb3f2fa425162ff04c481bc597fa
GIT binary patch
literal 12915
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
B-6a43

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/l.mp3 b/src/assets/all-letters/letter-audios/l.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..0744fd71aa750384d9438ee7faabede5b96331e9
GIT binary patch
literal 17142
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
Kf3Ns!_5TG@tm=6H

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/m.mp3 b/src/assets/all-letters/letter-audios/m.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..60f290503234946fe28b6b7ecf657f1780b38203
GIT binary patch
literal 18678
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/n.mp3 b/src/assets/all-letters/letter-audios/n.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..d911039ed3f86f47650c1b2164411f30cb3693ad
GIT binary patch
literal 16759
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
X?LPcZw$DOc_ups!!hfIe=i>htG*p6o

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/o.mp3 b/src/assets/all-letters/letter-audios/o.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..96941cc7e491e8a7703094955da322360bbce963
GIT binary patch
literal 15221
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/p.mp3 b/src/assets/all-letters/letter-audios/p.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..f151fb0d1637d7fca367a2e01690fc74e6e8efe2
GIT binary patch
literal 12916
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
S7woq1-)Fw^e@EUe{=WeFKcwgY

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/q.mp3 b/src/assets/all-letters/letter-audios/q.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..a16e06f30270dfe4271b8f8bef6e1899ec436bc2
GIT binary patch
literal 14836
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/r.mp3 b/src/assets/all-letters/letter-audios/r.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..2d6c1996b8b32f20f5faa5402af797c1a8855176
GIT binary patch
literal 15991
zcmeHu2{@E(`}ZV7NeNj>CQC?T_AxWr_pv2pmuA&q3}fsnOQl63vLx+UijsYe%34t&
zOQZ!YB9)~D`R=hjdY<0r>-oO-{r>;|@pT^@hq>=_yMEVs{?7Bh=0MOxE(HOX4#V1B
z-xBzP7x+cM;5d-Ap0@S;X9NrdvL=}6&wYl&;24mFCBX&+l0bq$c4ihJHO&AoBH5kF
z29v0+bWe4e;j&5@FrA_<V~aL}nR)3_chil6SX8SZb8B*tI~hlj(bQP37Jv_6crmDK
zA~=BI;pu}9P?sT6m?SD5_?vSZDg&MoVY{o#XmcKb0cT)cCW{J2t6(5xI0_9`#i_tC
z2rLG+1q=j^g~Cu!I1U1X<6&4l3JIROWHgq8)mRi7-crwC&KdAYU1m3%?S+Rz{r&w_
z{E;e5mMfr)!$DyPC;|ZiBp^P4o@`<O#M4KXV`A2Z9@U4;qI<FFOiwV!CXvMSWvk1`
z0MEhmD`9w<nJt+2^ii2vmkOE5fCdn~pl}r!l)->5*6?BL`vFGg0{W?jk9D9I6>3TK
zVfwPjRDD0HCtLPM6PDCJ*7OS|0P!CT0K4(`5iIsbW>JZ3CQF;mWc*xdk-*G?7b^pv
z^!^n-j9Gm20zHWgI@yd$p#zDq2wMty!Jn5e%VTEOC}b$rgUSF9@d13nXXODWW@dPT
zrw^OxNv0C?)MbD>Ds(ypk3kWUR1_Htp~8tU2$G1RL5L(O4njgw5C}Mtgdx!=GcIRM
z=rPH@9NQcdNVF;uO9HfTWF!KDKp?RY8jVVY;Lu1kZ016e7O8Gy(Sd>>dMq}<iGl(|
zfmX#5NkkyYC@3-v0;i%-5TYs?4MAdXKm;T#Srtc|H-$F?>VZOJ6ZME}s=5rPMj<d1
z;NKb!!z1B%G+Y@-co^&tc_xKU3;b1S-Pz5wW->kIOU;5sWzeZWsadd?U|rpr>QaG&
z6>aIB6sEtA(t@WMUFy#~!7+IFpW@Op!xMcebfy)N;pIWKoLLM6K5y&Cr<`<Gmw{sl
zp6ovh=<X(ZdQv@RC9K#$n9M~Yz=pHf)^rBdicIw2poRYF!<i7Q=s_GOGXfMcp2lP`
zh(H~hSs-T$9;`N-0!DNnAlU;s95BZMR#flVPqU=pL7#a92G0~So=E1<gSw0l(T_Tt
zN`T(%Bl@C*MAI-tG8KmaQa}|4q2fqX2%LmLK+p&rd^Vdf*qP84wEcHe0keO<{|mxC
zOd8vt$f9by0@?eIHg>@T89>^V3NSfT2Ko!@ohkaiTk%2(VkiJ<W2q1rNfibmBTz&L
z7KOt=kXRClf~Ap3*#Cl+|H=ygH#<7NJ{p#YgyRq>2nB}2K~!lRiopRJjiM2$SR@gk
z88q#G)Xx6mx__Bk7c%U>E~7a!28UDUGg}SHY3K8Wtp@#T>CdqN!PAum^d(NaS;PoB
zMAv^&AwZ+W|5)}kBv}<sg5Z!8G6aJmqah>`1`R>rXme$+I?LoUAaS%Qi&_wZOjCss
z(HIDVL?uFqG@unAuw)8^M#Ro(qmX~37Dt=LVlpfMPE?m+1FVRLBas+50tLs+Pz()$
zMgb$;EZtBz(;W<h`s<S)EwY)5?7@Cji$?dLS`gX00V;wx43{73KOXz`Y~FDBVT209
z>rXK=h(7LSM3y_1<)bcR&h(`IxJ&b3&+pQow`6XoEQp@$A831CZ;r)1=yO~4m(gyH
z&VhmM&r<}N_UpShr@pxT|C8;TQ~$du0)r#ds3;s7f<++65LFZk3n8f@(GVOK0gMq8
z8j?zzZGS*6am@YgBmoQ)DD0w1VnOF$P7{kY7NGoV;cyJi4B+$C#kujP&I#Q3o94Oj
z^#8Pw77YB1a279Pe&^@I`M>I-3toTHNC5zTU>rbpKAnG<H|FIQy?D$M&5Zth63<$j
z&+vIui%MXwDD<c-Ixv<P0IV>xRv-4C2@2T2*+Kc2yY#G$#WcmS!5MQg|Ih~WZ${={
zvNhYq)fT;f;QeQZR?f@H%!(I3qXw|4o<1|vnu-_8i^X)CrMks3bWcAfnaCOG3_OUg
z03kt5|0?9`Nd{(RH!7Ju%W+OlnofFnCt%my*-S5|SEsM^$5!;m9Gmy@lQ<bf@=s$V
zdU<)!X9Lh>QaA%E5(Shx4uzhp?Vks$4XDk&C;}RA1P+D40`JIkM9N79VBqE~7zi22
zfEi?FZ?b1bZwAwkK2N)I(iC6T3=E58{fHjEoQP&;Xb!~yR()nCZ=fH+p-4_M`O)dZ
zgiZ!lv&a^wJsHf6;0PQ}RgcB=;tcW}v01?9;sfs4%=(4Fw$A_j=!57n^A7M64?ofT
z)fi^>Y_`sRtj5`U!0`fbt^r***qCQTptApi*G%yLLHjeNe>?d{2>*ubH(dV+fqx|Y
zJG*|v^^XwvN5a3e>)!^~@;|;Bp?U(RX#T(#AHer0zpvj2{6^q60>2UXjlgdN{(nPY
zdLn)o2*mY_PltF|LT2;1H|p}6M3y{UxjqUG1{*Bt+hWDdr&O|D?@G2sl`w>V=|ymI
z0S{#qBy)7bhM20!2VpI}AL^$xmhIGxKC9Z$e!Mrm@sn@wm*<lYgpzxoBQ!Dl4R?p|
z8s6Eh=NDOJptcemIvP=h+`t=iXfIEwY{D9=gpRxBTvebDMXVTC(~^j4QfNd&8Xvc=
z@Qd(h4NGw-cKfYQ(bKhI>kmkBpU@gbF3|zKwOCuxfIxxxxR)p@O2~!!PTNjTe?MoL
zn<CegwthJ;W)-iul)+JzNJGa+)2+3HW#Lr~0p0Ck;e1tbD{4kI*2A#!p&vY!#_v+`
zpdP#>1|xkfrI)r?^72NXirv=r*s@z=waAI<cX~UjKo{5el&bcO`zuU8D!|=0UhT9?
zD8|&uz4(#W%jAkN&2N=W->+Ydy(B9XqlHz&LIace^Cj{yWsbhp;Ktz=6)gAjB#Vbt
ziv9s$e7Y;`fCt^@e3jI$C(E!aKi0YhD(G_XcL?R);Aq&DuS{C9O9Bi6EwRe>)*nI-
zWq?5PRUi<z%{y)GRhc&jf>vsCP0+|TJm}Pk0ga2rJ2zF<XuSQtuV?T17rD&TXCl+m
z(?$V-TaK`GUN6Ts34C}&v)a6?Ui9|PjlDTe{N#yym1jQ+U0LxtessDj==p2MT&r)+
zdByu|_I+HNS&PY5Su-^93<OGR@gvC6)A1lg(ptV{d@EPI+q-`3O4*C?!550fx!k<$
z=WgAV$J90U+;G9SCO^p?aJX@Ie5B4{GN-4kv(@0`%|IjHrx$d6qFNsdwfQqz-fv)j
zPI=K=$A<}M$a+6LJu;H)oiecb0?)ec2fjBvRv)lSG!b8Q^m#7dYM=83mpUF#mydcM
zK0Q5_DK7moW`pa?t{&+3-hg&DkK-zcf_J4Pe)&ytxrB8D)ENvKdI-FB={lc&sJd`>
zPZ7%0D8}`I$w0r^rTDwI1urE+(|iJIyR+<ec^zNbU=MX=<{Mk$#hE8qv}?vCUqtsU
z;o$EN;t_S;;VvHR0Rr)R0r-nZF&wkhhl=O$ACajD%WlwKC2?%cR;ugeec!(BZLQA=
zRx|qK=ra9XLwT*RPRPT9t<Tm3WM7es*f23vs6h*SJN>0czDYS_boBe4CxY%NA)aTa
zgIvU?y{ydz24m347F?I7-zQ%ryIwhR*Cw2FFXKv-*^tMh+S_enBHW$HIn>T|-y6HJ
zDu&DM4v|xX0?L=I^?rIJCXx7NpOoR6?K`KYzJEV|-v?JgF_KxmOpZ5xBB<5>X43HG
zL*MgWzZ0K+B`_!;C=heOy?0o%x9uZbFsUtD{?Qw^^|VY`2cu;<QzWL>uE2~B)1yxr
z*RNNeRoUe-4P3`;C)?W$Cbvm%S#3#IW|VeaTTeKm2eN}LF(@y8kya;Y^lbc|g8un%
zbAet*|8030>m6Ta-%#4}Amm21tFwaa#oqfbvuUIQ?mD|X_-_-|Jcx`~?R?|mUVi?F
z;=OF|ZP(h$%24A<Mde+`8(w>^72)6?0peNWXk&s6_MFEb&alr?KXz^o|2tE0`z{u^
zx(%+)4pMN!x+f80(rsih;#VM|LeT7vp-S3LYI0K<ByS|HXsW#BdPzs^M%a+c=l3kF
zB%_RGTX)|gk5eG_1rbul-Sh2M)g5G&6}D`6Wb>d{byC90axKFv>&RHS*1;&(7d~Q3
z#<vNy4q^ssEpKee?{s+e!VeYR=Y+&=wFr_Izp{#JDIELs_SKkMJWR81JN;6noyl;K
zDARj<t~<V`n0{^^Pbq$2W-EpYfp66tCXIemJF#1%GNFKcuLn{(ffI1{sMuR#_qOQn
z;1qPK;%g&2Z}46-!StlZiF=R>X_Bv#nwRpxYGjs_6dJYkYOgF_F_a!IXVlghkm#M4
z;_#-j<h){U>VXvH2Hk#jDbSgq=l7GF@A=?Q-muQ~gFu9<M`T_I?Rxb#b9brNDE$3>
zcGlYL(#F;X`o@&g;!x#_$J6#seCT~&04+I-E7W)0p2@*K2E-%h(DrT{*=-(wf~$R2
z#j$z*x%`x_9W#zURD<TT4svpfPkC1K*)_9qTS!|%XL?hAQR&{oceRRgit){?hAp{I
z&b-iEUmPxHg&^7Z-0mQD%a~8VckGHv(iu2_m2GBv%Wm{i=$kCNku7E3b<&L-$iB5^
zi&(+Io-)&twAQzl_F4~HW26MDVb)jdWirAa>nHR?DBZAm?4MPNY0K7LMu1$@m`pyC
ze75M()dzmYvZdHwd%H}_21Jt_-udd8<9^rLl^x7!JC2*&OfhYq{&K=3Z%UCn%#uLK
zeIg@6U$IWH%EtJ%8rp8tsXK9Cx7AT6OI|DMOcK3XtFyaK*2=9(BH`RzIxZDzj94^2
z3zZd8-7D_2f^bIb1JW+gMIy%wAKD3PJth|x8s<Yim)&<+Q8z!&$o!MeYQdcC+le<u
z4@*fjV{z+~hPS_2y~F(A3gM-CuRU#|4Qh14_4FEzi~Q1YHaf^N)3$l{pG|Y{KNZT|
zVP^9V`Un2!srK1K$b9}!Oi%Y+F;U_X<fSWyhFLbq7k0z=-Ymngs^sh9g<&=w69%mX
z!$Db@f#}DQQWD*p?N`>NO2|>K8)Pb5b)+BMfW1@ov2J7H=IZW)hTK&agU(+f(;U2Z
zCF3lDg(G7-z^m@{ZF-^}#3Xoc@tiojrh4@7j)(0k%Ga#k8y;_S{_2VtyQ-STuz4ym
z;<#SI->d(?8`JzjW=W8(szRQoLR)ERV*dB>2gto0*LhifO(M`}KABJ0O9Xlez#pEg
zqw(pDFG21n2DeyWiAS3}47LwFWpc?tZ;yl(Cd`GfzHs?zmVA<#$;Kmb@gi}L!F<*H
zI5*o85uI$6K*wadVy>r#6)%nmHh%P_ImQ5HvZEMN@b36XWl9a{YQ)J`$GA?mewz-C
zD0_yjE!s2{qNse3o_+Ww>9g1VY`S~Fl<c#8f!~v>PsQ0W!?@H{&Dy4W&g`C+td&K4
zy%<!@!9OFE$KJ8c-R=+k$6Ot=i3|PrM22EG!O{eh`@~r7$+;!Du<f-GyhxiTv<AK?
z4B=qtYOP9hS(#<ppKgy#tvSA3Qzd_;TVLOxpUqIQ*+k-!vg_mqaDUSMbhS+R7!cdi
z&Ge|=n>q^wL#KY=vfJf{!5=$YjvokW&_p8H8TeI4+SUqT$8u9DdM4TuZ&oCGc;$yD
z_8v$e?Z4t2@|Isl*x3X<;vTX}bHd@t^&T3HzE$~RRz;ljan<5WNA{;=7rrahw~)TW
zFqJHCJivq3v0l2t@%Uu4-5arTy>EUpiI~i1hfeR@e(a_JiFLT{y}aJXzOQv)amJTE
zH?)aK6b*Sm)>vxg^5f?clOSn24nc?2O8wu#-O*R;O$I|0q|Y5cmnqVES}=}K$Qr+1
zWc(!Y8^g6M`?#QXJ=!vznOa~RM8L6>)rNdz_l{r2mC>FQJ(#$E{}$Xf*l%-Vhkr?#
z{%&!?+6F5V&vp-l9S8qx5D(7AW)c3PqV53x3;bVGB=SMasUr*pI=H056F(G%!QImh
zOS~l%zmex+&b=_<3$evnxU;I*OAZpDXNrjv-e(h^@F#`8+SGlB#mfM@KK|yZvXoD7
znNI9;-A&R7O8PZB9;Vqgopn(et{rF=;(>RDf61~`dGZd@lGlQqI@^N7W!Lz%*}l#d
z-<|3YYf=rWc=o;zc{ayG^nU(SDXn8tj78g%9e!PhIS!GtQgUQ;F^Z%3hqaiFN!8E2
zv~-jjR@HQjsy(j<?-x$2N~@VL|AMjTOfj_FXeR6@W%%+)xp{eMz9#f!=aH=|o44yc
z-Vk|0SoEUr+uL3N*UA$}UMR7ZE1R102Ch%gi!P+8jBUF!9HKJxz)2@CA!t))#cM?D
z&d#kxQG>ZRcJ}NY%RDYE>nRl`DAs<*-NO+_|JpFo#uz~g);{%XKh=4qU~nkc^&COu
zE`q>l_i$+m7eMkLMWK>@h#Vdc{&^rC4Lh56f8@U?zt3X)H%C%TAH7W|if#aHPCWJ{
zhG5+CqAvD*ka}B$>>7!XU`xfm``wzI0_%z|e+g_Z+fuR=XMQsMbcdk|HZ_<x;?#w5
z+Tp-^?{AJJ>_e2l*dDf$TTyFIy>sckkYU?b1=KpfAb*87`PX)b39!2zT&%Z>p4!2C
zvp=tR>NRG%C2*+16%wDE^~$|dtx@)}bVJ*TOD0rhYEf{Z#2SRJFn2WQOq{5Y4B93|
zk>q)F|KwHhIsWdnB|OHxSJxXzhsiPf%wYqn5ATi1M>z#cO_}!}*g7z!u2N&CVGq|8
z)K3-a&l5F#S_I+W<R3;hzf!iX%??Z13{Bw!71z@RmmfIr_JOhfxb%R-wbz69ZMvFA
zd*Wqt&wVc~>LzM#P_W2uxtvXot(t5a$B!v9zEy5rW?Gk3xuWY#|8=XhrJIc68!%k}
z>N+BWtr+EFc~){D_^FJ0P7NmCdr^vNTR8ZafOz2cZSMjW_(yb)i+%Qsh5jpwJGdcI
zl;~=i-qSrL*Y~<KM{f17`uhoq{dZ6wCa=+SxmD>IEj4J!dB11liWC=*=jCsY+$b*3
z2+0msX@RT}78Z~n%h2IFV!gz`Jn7U(`ZaCt!6uuW+9_8=+*XWA^f`8rs&7|ay7I8~
z^_x%Kr}Do~C3PNEx;fguw>{NWs;A3=?pa&e{nE%t2vYdeuQl?+7tB}D6Uhf*_;wo}
z)rbv#Nw--tT%;0o{8K_>D}5wJfTg`Wy5sUu?5auoM*j^V40A1@`a^8akoFR|YejUh
zD~+#d?9>hMRhE)4Mzy=$Pd}_Y;MDF?0_!_tP5HWCA9F!7o!vN;8gh7VXJb>X;DMt~
zH+62e*LlPGq67SLD!J0vIh|VZd3%{}8I2h$|26gWy$U2VUG-YtiVCp27{BV%n-jxp
zq|e~?lu8wyx4i3g?h5H~vJc+RMrM1fwBy}VsBy<jv3*e-{BMGI^z1qOvwMF2nIhXR
z;vcOfjSu(HCImypa}05TiL9X#Xv_GUyXWCYOjXRcn^+r^2bC8bf4n6Aj9+R%{+-N^
zTmuP^QiBU32HR`3JQ$are5yf|q`sGBZkO*F-mTg7tjn+QGBo|u<x%lm&vo@z#nW~Y
zn330|i<!ZJsUfeW+r`2vhqovxjRkdK;_ff?(|TbU>v8htG_!J24aBP&8kb~xXX#}^
zs=(%U^o=IiqtM<hyu0#sm%Ti>ft{qhMalY8*eYC1wa_IW{yoaw&dSyvM-FU`y)>b@
z)+F#gl#APBpit^UHS!MPlWg80%;Rq@#sk&i;`z%CM4XE@hq)Z<mq;qw*wA=cq3F}z
zgpn7xM;qm@Q;)W<X*dvvj=a)rlXzj155gwTrJfdR`SFJNscou#8~7uL(z@|-T(_*8
z3%iCbp4Sl88P^g-EQ9Wb+%on4Mn_P&HiNRCQ}nfpJG!^0GinZNH7WZas^Z{(CzQv-
z7U;jh3-}M2*k}JS|33=YBrkhNO+~G6vQ!naH*J8tc~7q(tHEVuHP-8)xs#ibhO|j^
zs#K}XnumhdGWye_*W8FcpQ*YzP17nN%_ia61BYN7skE<!>B6|3D|zIWCv7d*+)aJs
z1+%Q0k-JxMkjLd$k-?t}hstQw<TP_lt0$Ws8DEo=lig_2a`A^%FkQz=bb`4A4L5Va
z6NOH#6Xnk0zx`;8pWxf<!GbD0(uPjzbU!}4UX&ztqUlbKQ%g?aPQ`rn&HFA|zGatQ
z^H-4Z*>>lIP+63-pgh0%hr*9R*DH)R-Fv)INj;=KO(yAdjuTE(3lFPdDDG{|g6rHj
zv2A=4Il`kvx^1$f;o{Yv=(;*HwNm`!`qP^AyDkqt&WvU3G&?q$wKwkbDc5Tzbr~s<
zPW{I9p>ijHV0-D9K53MJ;@jtZf>97yz`98bp;`}bqrlDDcUG9MuL_GgoF6H5^`m%%
zikCA7|2hy)fXfc|fQ9@QJwWI1f6m<dm;bo4i?0%RQ_Q%5!bMaf#K7I|@hJiuKXr@t
z{C<jvuZzzGI3fI2xYoJyejMxDwez_9uP)fHQIO0YPq_XXPEY=3rl844j?(gDJj<&b
zEn+_~e-yQe>rt>u;hl%M&0q6<Et_#E&ZJKNVI=AdOGin68<-%!#%X$@aIJSy`p07P
zUC20fqr(odr|FDde&Rts+_KwtPS)$AYA(lw4Bi+#(HX57=Uq{SD0(TTSh+qkvEN;A
zM{HA;<U^gXZ3aDrUc;zP2CRz0(#AG@Qg$S}TVv>Fo%w7s9uLOus!N-C=i=Pf^MsW)
zT}yne5v|8C$Hg3`xH6wg?=;-eerb88N<Svs*iq<RvTtu!@AUN9*DehjB$MU4A3>*2
z#CBz_LWasEG_zD?>Dag8!S!ste7VZq69TAy9zRLB1U~)qLS{>BmPzzP;RPIm{4_dT
z-lXJCzK5=K2z|PH4u7Z}hkxeJA4D7W*dHSf&EsFgqn3y_R=h7p)0#Bcm>+1%^Y9$v
zBrPZ`c>*Izv9Vn4J?>VwH6@BS`!+-Obff4&YQ{BGgqTnB^i&J}ThG4loskS%0VRj7
zUh8sYcgG%|JprvLu4-yn^wp<13hS)ii@8RiOeb3$8-4h%C^+p@2>z__@ngBc{U@OK
zF3){aA(w3I?#e1Q?@>w9%XxH|O;1<9+r1Iw%r}|bIFT@1i8&8Xe;S9&5z(Fu*jVpf
zYM*{Y`{TO2<|Jjs3ekGE3r7u(-k28Hm->30a*Djg$feh(zj$|z9VDEqhz&1n`Ra6G
zAWx@2mFwHh0y^?)v(!~bQgKB8;nXSj?cP~h2S*ylPB}sdVn_PqckoQpXvBcX>TQYg
zK}2CSKclbvP}|0m*62s9bzWH)xlcb-zE18$gY2;)4+u3aFaGH>D{(jaP^D6CV<N2T
z$Vof>m-X)HmqappEsgecxCrbt=HP!flqbmrn12?|f7Z$qZKGZ+od5LdY+Q?^4BwG*
z&r;}z&?Hz%$PGI!4YrwqHAVI-aIId#b?bwmh$N`Gzo08M-w)-UGj&$d<W6|4fh6ta
z*1?vytqtQ0lO~+)yOz`dSz9;DeP_}t4g6&~REmQ3K_61p@pVJP_=*gGCsUJBw-U@9
zDG3A$qv7__+agL(G0FUfXNljSkVpyAXYNPxY(f>maMj5rNVvgy{7TY$W0TBt&MSL^
zbXs3qMuQv8llAL^PuIvipHg2ZaA+xC0{7{o%f9XvMu!U5RIQi6D(N5e!#L*Xn{VzQ
z)z{X)MRoL?ceB{s(c|_$ZyzQ*3EMc5>MGIF-IfCh*zwWlNV7oPljQ7o$9L~+X=#U!
zX<Ucpgjm0|p@hW9tFH3|$Oc><p0+K+E6M0WgM$h3cG%sccf}FUWiQ+opa$yDjv-Fk
zrISMsBrzXW9dk0%&Q)pHSiK{~0I|+8<E>4i4hR2Q5cia&%{%dh{1<rvw*}7M=JUU=
z@VZW|qN@If3O%t=J8g@wsL{2TR;Tj6<<S$qd=<0R&Ge!|P{}q0v*z2kwk{2^RubLn
z*|*1ELb-%gdvi<@bLNGo=!KhS^7Oht4Es0h20PwreSDP82z=9T(Aee@q`UtM_lfRZ
z3R{ky(DrxIdJW!UbagCplh;wB@Dh9BPv;wWlLU&f+j6gniI*5{seIA;m1K%@JTYJ~
znyF;$)SRC4K{##Qk*mu?Rg!}zaDw+Pe&ClR%c&)$#+~mSeQc!Mc~-XW`O@A-os6<K
z9-F@Ha5+}Anf0A32o+5mLAiPt5JpZt>%x_%#MxYi7>#8)RQGsqDkx4U*z??=y5QsU
zHV^F0w$$>-)FOlZeEWbSy6=&KV&{0|CH-+SV9;17*Zy1Qxp?h`S8spVygz$+vShOb
z+&pYgQ?%BrP#&Gc4hvD4wW5+jriZj(H$<dLSQ}cV%wHg0f7@_O4R&~(ga5-&9u2cc
z?^gYB{??CE&LR$-QwXK#fk2?@p0ehQ(;M%4o$;1m+qb30P!hUhQ%t{MDYX8rRPoJ=
z#N|x4Go7`Jq~dO|;%Ri@o{;qem1`%i`HncdPPP@ay|cp<x=(pCr|9LLB2EJz?JnvR
zT5(qL@4r4sPk;31zD&Jj1jNnz@3;T&w+P_h3|f|KTK`TW*o_}7{sIUb6u(q5G!z7$
z>%aegr~i*Ea+dPn`~vb{YdUoKbC5|W2*fux{{vqEr~q+;=kWh;zJ&kL;aO`N{^#PK
L`S<a^H~+r?@J^X-

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/s.mp3 b/src/assets/all-letters/letter-audios/s.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..d4096148606dfb9b819bd41cd0ea076af107b5bd
GIT binary patch
literal 15991
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
K=i`5`{=Wb{KTECv

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/t.mp3 b/src/assets/all-letters/letter-audios/t.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..1002934b1e20459e204c71599aaffe9a5f0dc5f1
GIT binary patch
literal 12148
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
Z@c*m(@PFApp3AI1&wS1QoqxCZe*(dXQ<wk%

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/u.mp3 b/src/assets/all-letters/letter-audios/u.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..22e62564c220ef018dcba19f70169219c4807ec8
GIT binary patch
literal 13300
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
G_5TJ>{$Gax

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/v.mp3 b/src/assets/all-letters/letter-audios/v.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..9708155d9f88bf1d8ac24003e91ec3a98f2d4767
GIT binary patch
literal 16759
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
E01p!JHvj+t

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/w.mp3 b/src/assets/all-letters/letter-audios/w.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..db0a1b9ffd6295a5cbba45da7ea944e2e353440d
GIT binary patch
literal 15991
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/x.mp3 b/src/assets/all-letters/letter-audios/x.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..4f25663ced80215b03405c6563e73f20e15a2a57
GIT binary patch
literal 14068
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
P=6|30yuV%hw)p=5O7_4e

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/y.mp3 b/src/assets/all-letters/letter-audios/y.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..8a69c7135760d067baa4b5075f6350e1020d084c
GIT binary patch
literal 15221
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
E2gt+JOaK4?

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-audios/z.mp3 b/src/assets/all-letters/letter-audios/z.mp3
new file mode 100755
index 0000000000000000000000000000000000000000..d262963f94b07fc77d1154ad82260bc0a4384376
GIT binary patch
literal 15221
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/100.png b/src/assets/all-letters/letter-detail/100.png
new file mode 100644
index 0000000000000000000000000000000000000000..05d20f794cde1c6ca0997df381be2075e4f89f1a
GIT binary patch
literal 14331
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
S!!-Hd@l=&G74z?#zxY3nbaQ?H

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/101.png b/src/assets/all-letters/letter-detail/101.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6e5066bdb91a1b259dbd7831c9708cbeb149f78
GIT binary patch
literal 17176
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
Ho&Wy=<|J_Q

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/102.png b/src/assets/all-letters/letter-detail/102.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3945376a0f054f6c357284402018c0ad1a341d3
GIT binary patch
literal 14179
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
UG2)sK%%8o<NJ1qFUhDh(f3L>FZ2$lO

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/103.png b/src/assets/all-letters/letter-detail/103.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4ffaa7d39dde8f75644209fbee93bec4a3967b7
GIT binary patch
literal 16478
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/104.png b/src/assets/all-letters/letter-detail/104.png
new file mode 100644
index 0000000000000000000000000000000000000000..17fbffe2c7e1d592f23cf163921b67e79953d6fe
GIT binary patch
literal 15057
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
P0D#hCb@`%4=E465D0K<U

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/105.png b/src/assets/all-letters/letter-detail/105.png
new file mode 100644
index 0000000000000000000000000000000000000000..5329099b89779be1e11a57bbbc95eb961ce838c8
GIT binary patch
literal 12911
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
X0OGE3TQvS(KvWbo<Vzkte*V7z_iXM(

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/106.png b/src/assets/all-letters/letter-detail/106.png
new file mode 100644
index 0000000000000000000000000000000000000000..c80afb6b1d8a417af85d1e5c4c73b3c0c9dd09ef
GIT binary patch
literal 15671
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/107.png b/src/assets/all-letters/letter-detail/107.png
new file mode 100644
index 0000000000000000000000000000000000000000..656380e7cd8b3893b69d03bf178272d164e2ce0c
GIT binary patch
literal 14864
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
F{2v-kp7{U(

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/108.png b/src/assets/all-letters/letter-detail/108.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed900b08171830b366bfb642fc20f73a70078188
GIT binary patch
literal 12223
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/109.png b/src/assets/all-letters/letter-detail/109.png
new file mode 100644
index 0000000000000000000000000000000000000000..6366ae32ea1a33000b617207bf132f6edadcb9c8
GIT binary patch
literal 17312
zcmdVCcQl;e*Ec*O2~nejAP5qo45CJlHi#Cz6MfVXy^N9|IzbRUx*<sPE{JGRM{i>!
zdKum5@8$cufA{-5Yu)Qv_jCX8uJu|A*Idpy`<#7t`RsG{7V%n5ftY}n00aUND=Erp
zf<QQ}z;`eHUEs}GiSb9^7md5TzPlF8#@)-@)fyyi1+%bztmI^FYprQ*Zsqf~*IFC|
z!u7V()_2!eRS~s>IdPlcwBh!4ashgSK;lx~F6NdF*6xojtZnU_C73ZyZOo7DtR$HA
z1XX!eU1Y7Hc8b2P)>^)5+Lpc!mLgWnQj(9wy+wfmoUGl=AA37FI=hK_OECX4t|;()
z^O}eG@jp%69VD3lH7R}7*N<gkuGWtQxrM-%&-q_G78c=tE-3PXPk`$&AMbM^9$pci
z=K^5f=c2qKqP))^|Hl_IK+V<4MpRP{@*lK-PZG>fcXt<29v&|*FK#b>ZkVer&vOwG
z5guMX9zH%W&;sn{<Lqwk4R&^8`S%EN)^3)rb}sIAFz3fNBbr;lJlrLiftmhm2~IAm
zs{c8#v)g|#3Sb$Jx48??b8cQ9C#Rcr{nOgbUDNvioyLFJ+D+TX#hORc+70I6Y6<Lz
z4a>hf1HAh`6S`>#%tln*)ehJcb4NLtrH7NXv%8X<1T*j#ZYw)0(dX8@mgd&{!eEi-
zg4SRGK}$=ph>#^OSVTm~icdt)ieFIB;@{)^SN-K>1b7AcUPucI@d-VDE-xY?FDL+!
zlM|Mee=aXAAj13azDmw+?&i*x*8iq$2hjeHz9Rp}zM`_O*5>XoS8W)~@!wML8VYlV
zxj|trk7Z?Vc3t@KGgWg-JLj91>^B?ruXW2=yV`kLTR~i5PLKcLw5Z*GF^m5m2maOH
z>VL{X9$->DH{$ZYh|j-Y0Wx{>_@BxEeE3gwvUUb^$Q4kQdU`Sg5J;+3NlseZduA*1
z-Y1iBkHQoGgHk=Wq*we2!$IFdK=1IwX-Ho@iB+<&b!p@mRrB(-ewsP8^VPd-Cm%Vu
zar`mANiQL`$aAYUaY`-v&(vK<TpOX_kWkRQd&E#K#7c=UY2A=y#Vh=nx({BZ+N<Xi
z90YQzqL_)(p#@t^pdX(CcGxMU;>h9ZER9Dmd~6~LQzjTVhmNWa$AYuG!L8VPIG`Yr
zu<1Nyn>Yr+YoU#Z&nJA(vf31$RB|r$I`b@TpJDUPkAKHxd(?(FZ>EjwAQqM*0`*k?
zs<Ai|`nZEYD>dTB5IKh9F283SBVm$Pe-|cKT6Ql-jP$@<low`{W&zU~MCHp&Adrjb
zt2yVZy-@AG^K+^5tE&Z{r*Ot*>t*`!v}@_1#3p|;i{?3?*{g7I#6u_V$FzHrdlB8F
z;;u@BC=9B3iGgC?|0nfypE4m}4dvFA4&vgjPATx({FUyZ80P{`soIRsIn6G>&Cwtb
zug}~4tfQs)>)l?)Ek92+LKNeItB%45<0b#liPW3iW_%uc5J*M#i+$^=KgW8_#YkY_
zMOV8B8$8fuv(L{#@bnY*>Xs=t2=rOx&Y>EFdH<cdq~~I*2opT;Vu3gU%`zPqfo<zA
z#RZJC_K)l7T7d(!)YXP^fdNIURI}xBpT+cb3D#AD2Ok6yFg^d<U^VB52@L%E<K1v5
z<^*Q+w#;m=l|M0N)yag=YW%D;-*%l~-JsIAallB+E$WGuYJy79Q`)G5TwKs^>5`;M
z$^##ED%S)$x}?^;u)iU#^disBy;`1iUb5M0Ui!9tzWx(<wbs6!bMGHksi97G_;V*k
z%NXYmtOkBLSR+-vKA)r)`0ep!F@S=66j9$hE4@~QruW8JRxUmF`~w@8gqM7-S^}?r
zwujMi!~e*0UB3y~_^TZ_cf7+eeKzQ4eE^2lX)u65^}&$9S%&L!ai42{zA-Ng(GjiZ
z<nd;o9Y^}}Lxv!}Oa8VcxsxqW#GDW2{O_6APO>5;E;R_0GIF?fAm#m<p%v3V>UGic
zscVShx|@yS^bS?)o>+@QVZwq+{^)*e_PI{OQP#=B_NaY(T+k18`|%R-<L!#xV6)Ta
zPXwokVpKTw0S4c9m0A(&cx0oLmGz3L{};Hfrv-B@VYj)pGJXdXbigM*%y#0x!ehN!
z6{jwL;hT7`;kjbXs(dHUHnN{2Wk>kB(V0(5Mj-2>U*NXaUz4`|*@RcZdy%(5KkjIh
z)vv5H<u}xr9B<9B29$}Ws>8}B{w8}Z)Nf%Jd`_)A3_HA>{8kcI=7&^PnjH4}V3(`v
zeILNW2d{ws`TDIkEyfL}km;JsFwGuowgZH6WZv>b5h?M!lr<Vj0PN1S1s}=-UHM=i
zbBzt`d;hfG=LiIP^Qzj@y?0!Ao~g;q8&b*AnRq%z2Q!`C%PTTvobhNSeSx7z)uRu0
zdc9$$wJWbqW8&byg)#vVRH1hIaJ{7<#Z`gve~M-ES?JB5bnQBgE*lb)mM-E_fgB2q
z${qp~ST$5NoHSzYMUQZony;cW5Ner4Y~wR1#UCZ=ElA{{jj|tJ1vv=x``MnHrjTQU
zyr=kO@DHy5NV5>ErFm0Ko&J$H?X#s)(s*Jab@fu=z@tvau6K7pAleW1(e^R+YG1w#
zK|k9Yd<h4H-1KeSX$a|^OY>^$cN?l85LCc$cl488yvb}f$r-zHo$18YmR8t@6XO?4
z2g@wdZMi~4rK_wU(94I#E5*mRS01Guv!c%z!JHW0k%fuJX39=IWAOm3$12)>+QIMF
zvmAAt#42`m9Io(!11yggetsYVfjS^H3WCp`+1k&tqtEl|$_>|iT)jT><Z4lkxzGX}
z5PD6l2_|@NpKd>A(4qGX+qQO24%Hpbl)6+_0StDKfvlin%`^NGr;@j}_p-73{nD*L
z$6F?W=VJOEfHlz3j?zwik3iAU+J<6ejV8YyceM%itlG;H%Ua=p-W=z(>Msu78h<g~
zsMVpDv|%DGIdULA4ey^dZ~}T$6tg0P?wHGLI<Bom1g0=9CQdjud+xlbepqm#sk&j!
zlC>agPe~gQNgc8K1lR@MfU?58(HLLtpA~5*%L&-fj7!Y4oS;&T-B8plH$yW`89zqS
zDRk(<V~1#;SZLn8o2$EqY>%%@cegpHRuHg*{*JG6VBfKHtb<OOOL2r>vgw~&Xr?D+
ztJbiG@2Wyg{>s*wv`#=zJ06?C2YwAyRWD_E4>*yp8?eSFd&-f5-jw6#PRDteO<WqB
z*xmc=nW6OFA+hbXAkWg|#gTMp?@m{LhnWt=yg|Fe_T!j)Al@(*nfW4*wh4bR747u*
zrk#it`I6S#<gGfJ6$F7yf_<C%uiH9tK|u{XK{jo*=e3YPCUWgO`&MJJgM3f<j~&Tb
z1)LqmqE#;QO9lMm@_^k)!>%8FinzM)maz}^x1i^zQ*ntYDT@oolo21wr*M%vjog<2
zY}(@>8^*~?aiUuepGL%61PBF$TEw29k-HB^a6zA?mZ%{!ZsfG%WY2M+${*t#?Var|
z2<*~jl*QBuKtJH*QuC8^#=F2wv=3B%uHv1oS>=_wi>os`nY<I*#Q`mnleO+$w#1i_
zv<vpZBD^6{xc(#Vjo%6LV%D``w?Mzu_xR77b`FRsT7zf{(x~^kNXLj7V!G(+m^XUJ
zUDr85pb)Nr#v$QiMzLZDVr3vA)`f0+B!dLR+ZGC&^K`9ErR$(}O_2iZYZGdyb$9*K
zon~Pi(A<5=d5o=3;pSID#u32yYGfOc-8=*t{oZetIwxZU10wG%53g#*3`K}Z0^SpU
z5`%pr^AiuWNJ-YsB6)TK0?k>}p7?9y0S^Q(3~mAXg#{vj`#@t*2r2Lb4H%IB-mCx1
z=Kne9e?I(wMerXw|C1H|Gt>V*L;m-L{m%(n-uu7WhyN+rAa*i<lFdU@ieZh#!g#(R
zhthK~uC5VtcIrw^_6Gy!8J`YB4z39_%Rc4nBF5BnMvCPu?nV4sB3CYWn$@SsmCA=n
ze-dw(q^;a^={6MgIW8uG8a?ML>N((`gGlbzd_-3ZTfX>gfPwoD3>X!BrbfYy%M5F>
z|M+CdEky{IdBEY@iD0J$sJ&odmVg6&jROfjBPc_<D|~vY*OG6-OND?1H-VAiqvQ44
zUg9i)YYC_@s)VeqaWQH8?$=vB_7t`63vWG4fr_(#mm78bu{}Dr08TBJ9~~QUy8TTy
zjhZVt`HphT<64)&;&H3Pzhu2>f<wednT7{jKkl)A4&+(>75y+-t*jw34@Sa9v6iL~
zgO$&HdoDRL#)X(5shS{sf}FNQ38$V6%pVB~^H7qCcHk`v<*~)~Kr!Z3BgcKa--G$Q
z*92)qt{NY-cC3Bzk+RBdC2Lw&yH_<bGf>|!ANi)S42h2-UpM@&Hj`3ToBnn-;eqZ$
z6KPVi#)-ximTuFOcd~v~*fnXtAJ1k48LJ)2-wQuDT#OgcsD=2i*E(|sl|}JXIV{v#
zB~>4CB_0=WZliDCmkjcWb1qDSAd8)MhfUY#FW)~3JQbl4_5DGR33=#hDEIvG<F6D=
z&#_h|OpaFI*Y$dBhbH%jdq%F~F_l>Gq|$2S5d=hSn3Dn1Fku(AXBLq#e)KWX&#P}F
zb4U?&mGV?-3^r-Z(vT`c%6^ItI2UsFHoLqqXWq+?_;xh>9eQbF;CrMxTIHGeKsu%;
z;x-vDBX)1v>7#AGUgyTJz{7l^M{`b??ULo(`HW6E4AGJ59qgL&&`kBJCQA@!?cCFT
zq4_6H%6ijcrOGrdb)2y=J-w5juQ26K`)3DnGl7$0TB@8w`BNsw@Y0nx{8p&LA62U(
zf$@X=6TQ}x^Gux1^~zM`O}`jk)ceU}K`ZYTA1wdOqIboHvc)W3zCI(}O2}AXOeJ<H
zmy<QD&Vf}(?9q!{^&M2shA%{JVm|2zw{$x9q*w^>!QI;)`J(TMRQ|CO+1nu0U33ff
z&xxE5C6PY!{4IAD9A=j2uP*WC_O6hD#~-mRG)vatZdCBD^yl<1!b6(eM@ytUhl$lx
zxof{Xz0d!wTvoA;`gKuh{D#uH6|&^NY6w_`F5ERmIk2?%*R>*>=fP!!DQ4sqUZ~a-
zCjo!&b4#H{WRqCT&I*Tbb}@{ln{-CDyN_;x)xr5v$>5s}3mtg}UJON3$s@mYk#l7|
z?v)MZ=juNzO#N4ta}n}XZOgs}?#mv;*IB+P6M>5leEetgT%og;x`zVuo`{^JnDeY=
zv$GRSLOUR5+uN9A`OS(XeLe}cZ1V^9{vSxi5Bw=iq|ASw?>?<rIE#k5i$bp$(g<3X
z%A`2^%NIC$SA>MvLr87XN<@}7{X35<F1IrzY1Hw+?5O=#lvDAp-7B}Xo&dkN!x;)x
zZEjJZCnB%w@tGr3y60CmwoZt?C@IJ7j;eXdo2|eNoT_7~kMT$XZ*KYOf~94=YmK`k
ztsHbar%w(1W}6(Pi5|mwgQ2+9$6Nz?Bc%$rYd%oLt@+Ql+cGAbpw3HLx{;OGZ&5n5
zXVKc6uF!K!KF|GPe=VG`&YzCCh`$sSS3TvYt!#`RH4fZV8<s713ON2^%boaaa(BMB
z{;Ax{3S^=0*Q+vMg7a!=|Gt~6<9tA~U0QjEHtj5<SD^gVx7*Z5&D3X?v+{Z!Gjr91
zI1Vr&2n%~RdD2r`aTU{&ICHpTmU3KBYO`!RqP<ue2bVpTJX1B|vNC$P!sOdCwHGrq
zlQme1xg?&w0^u|M2BjH}Fch6eQ`N6YydG#C_~h}aaO#l6@kG|F?!>!ReGumm({f;B
zR;{sEn0+R=Zv36Q8dG)|hnMXqcYLu(_vgf0Vdc`dG%*@dLp$IcfPrZpzTa(E$ylmE
z=pi8o#-|I4UXY?To0+WLjn0$Q;y;@cc3oYaqy3~8!A^Y(7Yl*5>EGyL7JRn-FN`X?
z<$Mjno8*Sr{SB5A10LO$(yTH?y8Ep@@3LmbYn2AP(MwQmueH$b<pK=6w@|46^lMY<
z`}Ra3at+}G2h;(ER@Yy@t$)@$@AqW%E@G`QJQB5o2^>g^F+0yfRW4))?Y4i)O(}`N
zzG~o#dP}y!UR2Q=8+h7QtLMlqATuPCW)EM#;!*zP*s+N^&Z6=19T{73hzm6GgdZGC
zY}+hQR;ZAHb4O)U(xTgzcgzIBVsrzZlSzJt|J19wG(3=4LLTPpR;cNGt<Dczt-H#e
zc5ihg)L$eP7;gf&_%U|b!4WmBl2gXSBei>S{4J-8>j3e}Q*@1fGYWMfX18u&PdAT)
z4o1kqaoJX!bmkCkMP^l@V6AEKaXCYzqi=Wa$n%VWJ-ymqPSUHq>F5;2*`*}pm2XQ^
zU4Pupc}C4^WH3#0Dutg}HQp@~he(tAlAoW5&Z;7nd?$skbprNv&1W87=ABDg(v9-S
zpCk=u<+&;yOCEy(6}2(AuFYaE5*JMJ@$S~D{L?zrx6s|@bSaCT8`|F-lCa>kpH2Rn
z;e`}f5uFM*TcZ3`q|!M}x0|ya*UxWuMmT*rEXCrBGu-2d$-CxYQx)KQP#tc4P1?pe
zlqQHex(t*#<bF?eS}Za9JtZp@c~t?(UyB(7-e?8|o0Zh!%9nLB4|bn3j3n!Mc7V%*
zP`>c3GH(g&mTaOY&Zyu7b24MVUZN*|*qcL4U>9V@(3}vT@%EhKA+=4baK)rYg-u@l
zV|J66!>seLYp1TEBaV(<P1uRIjIWmy>4gYKg0ESDL%>#nExSeP?X-yDRqgXvnf2u_
zv2SKN^f+P(Q5P`lU8kRVP0+ET+>;Bbt0X}&$YJ3JdO|Daw#RqpIX-dt4h1e(Y+2or
zgYB<P6<kVPWYxsuhLCc5jtbFfIj{X~{`{DiqL{AdIPgr$bukqazmReFG$)`cd8i+X
z3Elo#eQK7efA}TG2FWYv{%NXxl_5EY<y@aAg!H`}JQR(?Oc$KS)3!U5UF*yhz95k2
zAV!DLS@%B*Jt!}rs$3g;YjS{~>imIl|3E~)U~BZM?@siy`;ztFc2iZ^rTCz9O{>>7
z#=;0mJq}g+T{G-ikyHQsekv>e2wiW6>Ag>sRV=HNzi@$RJDzWt^=p(VhR|S5xMvP4
zNxt6!mJ#H<-!;Ny>x;dxKjK=Ya#Gam2e;TR#agXAvr%wrJos%dE8z{@>yK;Q6A?Kc
zb^C-KT5K;r8K>v-{_M`yfk!Rpf9?2lHGDN6>?q=tH(vd*mU9dHYt_jJ@AsCptkc4W
zxGg_qdkGAsyx$>pS@vk*>V-}?KfUz{JwF+$bTGPG2K(j}n;g9}0#=^Y7}tuGb&xNl
z6A*Zu_p!gPw?(Xs|6}e#IuHDkf92a=i_*zyd)J7CU`r{3$lK2w`XQu)p;@(rdBH;C
z>nhc3t=@lRq35Jq$(g9D1dofbU#|g}2)pL2om4??Y%C)zqo4hN8h<LgyOGxt_W9B1
zo866OZQ%mfUT4Lp3XvkLABG{8ZyiF9_Akw9?bJq{VkC@X9!XgVTMA}QG--cD(MAnU
zj9HYuLOi>7@D;ZMuSkRa@7(jE<VH8;pN_W+E<StUY4~wP8qmhY4v#3p#vFgiQkn{6
z%)QBuK4hq!eiU6wCiw#QX!ZBz69<Kz6N`v^|B9GVo~uo2tHt})D5eY{$MLN!g*Llf
z$DPBDvzCcxM(1uu)ZDhx_a$G@Z&!?Jy2XSTzs!?}d0{GK5r|b#AFgI3pE3Ku|2o_@
z#&Dbg+H3O|?lPE&F8&*Kj;qd9|5tcXQz;g+;5=^+)eQ5wY|3P;a(V@rM4GjT*BD%5
zC6AJ9rty%)Upb!9h$G?;o*$HTun@fYG<2ve{)_h{$u^RV9eAtJ*bi!gRJcDbqzNMq
z-vCOO@qvmCT9U{h6y$?FH{q}_`mo!cy4GC%o+TCx8oXy#VAU;&128DQYI*RI>-G<E
z0IkmylLE_NS<0KEd6Pw8R%4MT`4YS6j;_+80l?#FxX|}fY93(vke@}#5D+gZizFxf
z1qBm)mo-u}_L(v#K%VFn{)-%VQ;2+1;OH;<ocQkNHt(!%X23<it9=eV@O_YI6LiY%
z8y_xbQLn@dcZs~%eK|jlL&y{4L%U6bj$(%6GmbsCC>qbucE9y|HJpcop(AWpn!fCq
zBbsCi2v0v3rB{-*=!^HtJchr)Z8aPy6y=<v!TF6+6`@Lk-a^Y_-xy;{ga(x4*?wF+
zrBzlGAO8t7{W4ZU(UD^N9JErpn+oL_8T)<nvUt(1q$+wB=eLnX@24l}vj+Gfq?DN>
zNsK$4-7wZb9E-O`@_0-TfxX)f0XR#DXaNuRs{1kG#@}wIkQff6GHz7ufO%uWB;ymb
zjf$$djk#0HLxn=ceV4vPA2U?m#W9q-%^$uxJ!aBaHv9EdvkJlU&Gb`eH_7L^U?LL<
zE$k=<T!QO%2cFPUe~e+U{by09D7~IYx&@BXx&?41XL+&S&}l1WH{|c|arfV4yesM0
zwtaCzLCX>4#KW(%Pf}q1MO-Z#tbW78+F2U1y(EWy?Y6BvJOP_geD2<iQ64jC1+z{1
zz@n;itE`wMS^3ptfVd~c#4FwSG&VcsDP5q-OiH=vrlldZ2`eJm)8`m-ost1}V%vFv
z%s;5CsXRXR>Mu!OU^3yX;3Y$)3m*VyD?%HwY4{hRfmff1=%<HrX%Ys?DC+=bYQK^<
zn(DY*_^V`PXmvCo#jV$NE^M`4NH^rymQOdBW)!Fi@g<$c&o}O=^wzT4Gpg;;!JJt)
zTog7H__QY+1Y{ISRKU-NlmL)x{S{Mx@Sxv!HN$>8L5>#fuqIk{J0*Pg0ilp!$gb+u
zVe?L`-}0FmmfpZ~V1OE2@;cu5`!ctkQDw)1YWox6Pte~C+_lXZFYC^@>(M*%uv@Bu
z+|%E>;9C|XcI&?8QIcUnyCUi}Rv{H;p%pzAx8;!O4$l55jscjqlu$imI_!brZ=3ll
zPl{TNM7bgYt_7DC<CB9n76;fhyHN|xr(*y$%piTx4)*cxO$26~q?9+ixG6Pgwell3
z<)e;pt4aB3D(X{~pq}c6TTO`?CjW(pdTdsWUjO(>tC=q9LXGo%VornK_lOHBCb;3{
z%nZ|WuKxRy_l?FZSXv1XgHd4&Suwlim(!#@xku@2nU&fjj;7xzXN#4FN2^rIeJ3k=
z(u@K+ATx>bQIXXNBS%+~F^7jgy7ZYtNF9HsRC&R*X-zX~yEv`?NVGlaFK@6OjSssl
z7`_#pEOgHBUcLv`aK36izbz%W{7fWSW%fPEq%hp1&8jfw+#1k=ZGL3$rpsQ8B>?{u
z1nXKHG`&<{BoA3?e@c>fnLO!XLRSvd^&2gmO4@B?_#$h{Ya+8Y9kT45tL_+_5#8!o
z6=Ln{CqB}ca(&yCkYu!zz=^stHDZ-&;VEdN&1mF-O!ghsI^|eSFC*bU9sa;tkwdVO
zn$AM8q67pe1QsCgH?85<rdO)1A5Hj$7`eG~VP_OCQl?t3TN6e!ACA6QLt7kyPkJK3
zUTR|CuU$sVa9w*Huk5!qqsnzWykur{q|_aFU0dH;P{?~*F3yKp>yb?Xzm6AG>t4!C
zHvGl1J_;#FcTPBh`Naw9WN~x&7R-G{IxwggJVj2kD3wHzN#1W_Di#r3>0O0{I`1V-
z8c6lH8?9EiWkKM}bI-_*@4W7>6Rf)maj$4}g|wPBe5?>#evz>;X0IP}{Mq>3?mGfA
zPdV3MHl>zKJk<u1y@~9bKy;vIQmdUan&eM{+XAsDQz`89o<YEN8UL|hjeSFg*KC-s
zAC_E|hJiPPl$E)4?hRuZ(Q3qTvSYKfuA@(B*@tv8bgAxEzF%a-pz6so-B*#IG~Xf0
zqwpaobm#Xw=wPI9D12h!pnV!Dm@{Kp!)+{NX{NPGzhNx70>~2sw?KiofpEs-q57Hq
z26zziT%v{xfJ<9n>&+3A`(L|6grd6WoIfTBH+w+R2L!te9??G;_aPDGY3jg7%?pX9
zYM}W?vUEKg&$$#F8Lbk+Nzu6U3fdnpT-px)7!J1FtN5NPJfGE4HQ5ZsXqU>tVKRQd
zxlv~%M#Fqaf1C25v}hGMxVAep{I!?k$axDNU{x56DbRLryDA-O2QSQJ{Wb8^T#9_}
za(I`*T5VS(RGf4>_n7*#Y)M@30atgF=;Evm9Pv;ZW=NkWB-O^L48+^g0-Jou*DNw)
z)OzZ<K6)HVa~#h_eUKnL<Sin#vIBV(GxIxC=sRwQ!p{`??{v?bPu-jUme3X0&I|Hi
z71ZQvAu}F?5rPNhhZ;+*$KzU@`mTzo#pkRQw$qyC20uDF3x`FiF$e&BD&!Rc+@d$G
z1WiT#6^Wf$qwBA>TIW{LlaG;u$lR7>PlH;!QZD_b@6U(4%emnX!m4ORL$eqpLrB%4
zu!nL)e@Gn#SP4}RzrQ*9#XjIqSb49Mhl5)LHr%jJAZFmt`n7k^f2wE3y|vV<<V?j@
zl=>A{?}Y+D81e>_9*vcz_oy3wHMo*hKs*~#^X*Rdpy&*rMPAD|9o=zs>Aj|YJ2i<P
zcAT=}F}qCgH~s75d0LzcFSq7RH<upNrfDHz#AK~9x~{<-@Q3d?ouYUW0TuYPaz~l=
zBwB2toI>@9V~JMS9-zJAGsC5BSVfPC5vI)kik7ZOv%F`^m9_pqZOK1?twv-az+n*a
zIYW)T!LPGek@>zaWZ9}7nj;ar@20d|S~@;5NEQILjjQQw<wLB~NWz(BEWXi*5)P-c
zcWE`Z;lwvg&WA<cq7rtS6w-(5$J_^!gR)_O#+bf!|13j@pa!{@8S+RtRM<~VQJL5Z
z7I{vKZXOPJx2Kg_p&K1&HRS}Pbxd6E`ew#r-AS?yljL)6WJ9RS&i2zg2{H#BgS?$I
zRubAYLr;;j7Z0{;s{4WSA7@M!tzSK7k3Q;c5ixCbnEC+1cIGb0{Z?g?7|9LQ7RQcP
z-Ie3Sagsnd&?Pt3iQpgPFz_9Z;fJYv-ff(i#tEBM5Fa8@SF5ewQ;ywzmyFz;#~ax6
zXw-v!yyGAwbm#{)@OLgo`S{g)i?R?_)EhSP1S)steO#LQsJhw|Nmad;9|h52$L;Wn
zkcaE|kxwvHmm{r&?ryVaQJ^5X6t~<T#c!@Tc7|>W3&Z)dUd%PXhr^#H2rXHX0ISnf
z_aNUJH~8k6n0Yq8ww7mwcU8Gy!a3QWKrH;bp5`bON*2F>X>cT^79`7N;AQ^)FrA?T
zPZxVv%>`v8gzBQJRqWm$C%)Ewx`p1#%+htM<uMuG#aNrTp2aEGXu5j0AQK$ddE*+`
z0M{5tdu;zUYSX57eS*YqQUKX$GbCw;1<qB!d8u*d#d{1js`87DTs3#-71O=f>)(<5
zv*%u=>fy^^^t=PFHv9L{nylYRb?A+KC%!hN^(gkxZQm1tQ^<pJ9_>W$jvLX;#bC$$
zgytv4zb$CL#B$TC9L87Ksnr?L08os}ux(njRsc@HO|{utoaanv*56^Bux?1%cT$N9
z9Wd{-_N&)c?ylec{(uD@n>W&}fBm+IezR=1AT8gi_mz?rt=XO~_<>^ya+yFj=38QF
z?XWnDU>@3cFS$@8U9@rf@V?~mnk<Xtq=YEj=*t*KL#YS;pVu1KywkK=L=p$ea^O5M
z`vNm=XD+KgwQnVqNCEy^<dKxEX*0?esdtuTCh)=H@9#+MvjnT1%X6d-W(^COm+96H
z%8?WuSgyQGf!bSh00D^566b@jZ!7v!u6$SH?YF-nzCcbA4g6lX4ZHa4<doNmhC@sE
zDbfA5Wjyv>Xixf>V;4th>>K7K&ZLbKRgyZssdLsU_F}9cEvmvG<xz?eO?Am@Oj<&!
z%Okn5_-7TzE+i+rcC^{&692dhi@^n9L_uN|sSTGi-p~iWB*RiDp1LUgp8VHc@JDYg
z)+cDXnqwF4xVcfs50Q)jf_@fFGA<!H@L`MNEsMALJm%CU^GHo6)5tg$t664ZGoLPV
z8j!Z(-eRknjrml#kArrjm%wo#DE{o>r!}m5H|AwC^iODoE;x?bu-<5nJVJikUrQjK
zX!-m>8Pf~E+yY8HMrgF(>96VfV%vtL^(`9N)cQezQG~*uh_v2+m^VI)$|&S1eB!C?
z*tTGu1blmL53pRoUYex-`4di_s%y8gbx$7an1<Xtnt-YcFG0CRb}<Fpq8kZX58qBv
zj~{HM3HuHMaR~qqmj{%lwmXu~Aaks#gQ3KAu9a@2=W)vHm~Xr5taCFAX&%Xf(1%-Y
zGc`}`NIWOFf)GSNxIw>JQ{Uy`&TCufV2(ec&|Aw_zx6mb5hr0_`*@I@XpBLvG}&ZF
zYg`~ef0Gy=HAgK;;X?_z>j+EjCksE`T}RaKb?DV1)SQ^!CPBHJxBJGJxrwU3b$P_8
zZKJe;?O$SlI1}Xki9OmOFk{aAo^oZLKmS$2IIyC{$U_%P9&tvw3w@#WLvUcdlE;4j
zsjW1$wK!;Zz^A(L^(>7sMC&CnqqtZs$=SH>-4uU~ya?@<_d+4)s#gJP`N&Xkn&CvS
z33Kp`y{DTH96*p|&vs0brS0lOFHWDchLu%~Jux6I$=h=YQI`+}B5`L0xKrjo4tTO9
z4ea>VUp%&OzGDM6TBF-dm7>*8A(3ca&8Ls16SpJv24+0AfVc_D6kEd7FPTlsJ+<7m
z@SiU6lhr~dyS~oa;Fuq)WTl0~d(_oG&3ZL!E6!B~Tm`NO&~A_PJ+7Sr&o6j$vZ=xh
z{a$pJRaK`UYhy!(wF<lBMBJu|MZ|rcOlx9NqnQ8#J@x7GZ3mlQ#+~=v|0r+P#2W(Y
zsl4gYf-FOOLpCn6ka)yy^@?%nT7FCqzu|TWpM(xMc8K1avtB}|%yWr^$PhZ^PcRd1
zFS~i-4)3Yku#i06F4W>ZixYGDQT`w^%}}jwv@>kCy?&SY1uWUo_EU{ls4GhQdxx-<
zQ@?T7vC0Nz^!?Ec`_3YXMA3wvX<|J*uCPxdpb*Sx1ojckx)>Gc9+q&IgL?n?i-wy%
zcC6$#6?y0rxZ%`N<L)}Wr$E;Im)Mt~uws-`w{HyAP|T6h?BOR@mcgdKPs(V#<5b%P
zjj<dLXsSLe?hs@*{+*g2BQUxzS*(8VSv0ZIwE0la*{2{9Ab65F^)$4~IX2)v&n;oJ
z*HTb_cI+Yt_oxCn(MNQV0Z_v6I;+g{z`tmcY1$%$C;yx@)2}$Gn!BRmIMMDW_1&3{
zFJ2|wCx~B~>y64JWH+G6ytrJf7TTz~y4!_hdSO^Bkue=&(xx@eAX%16j7xuP)E6r%
z;h;(CL2IrcyDxty1h$h)!aRc#SUJATDtsp}jsO$K6l!wMRQhHHu5C%Pkbk#Z*5{+|
zJLxCR{94EN;*t4g&LCup=!-noSfP|)^H)o(SomjEeV!{p`mx<LOUIw5GR!f@TiPG)
z`?3o5mC^~+x2}}s)RW@?8;L8)0v9cj4;yZbJ{Gp4eHI;c-K^F=d@d0-QhD}m!U%KZ
zYEQcAB5F2pOZ%{c4;L>421xOEiIeGMD__b8WzmdCX#CyLj^vC#9YvvF`-k^q6>NLe
ztX?BQUfGy4%4l8=C=R;mHgoIQi`<gV^!LuKX}*Lk0|wNRcdtrz*Nq<P115ROrQw^r
zkpf>PVOP}B4U*B0^qK8@{nm#7>rJajXx#CV#c`5F68vQJ&{cn^emnK6s3WPc<Q<mx
zB7y*m-^%%}{&fvZTnH5K0uvM^nHysdO~;SI)uX^2UowWKgCXPSw{m-h$-aP5WP*Po
zVGb5LTB$Us^rg0Gq*mghiQS#<-6RnUUz13L_(c?|JVRA1@K3LLl4e8TD>SRIq-Zw=
z2c1G(C_SSBWenTXJTkL~Wkk~>zC-z)msa29W&mj%;Wwael?LuT-F*i-1qgvaN-dA=
zO%11(9%0HzlZ2`VMD|(PB=OWyLs*1LOBm1Bu}aB5+;wqdEL*k1zi)xi>BzPF+A&yr
z5|qC_T6to?uTv2h5gfir<|&>T@9yXI43D^_iQ7hDOCq~z$g5E@i78fxrUTDL>)8x5
zVG5zqCv6A67X?T5q{4G%!neIdmXw8Or^C!&_r=UKgsG{w^A34xDdG_W7D7D9qMcT|
z6eN0nA7Tj@3I-WkMPV~=X<b%)`I65O`(n<K3dywXoEJ8Lr@#gWf;}|A3n4{UU8=G<
z^&xcx1`wg(`1_AGJr2eR42z0_6mmT&CT^wh4$I`uE#9l^mP%clY5WTUc1GYMfmzvx
zOQ2TcwCF_GTiOW@LvZylZdesgHko7#jG!v1UDsVSy0JE7IRO_R_4F~^GGQB2Q)>-a
zzr<}=<WE{2xZ#_ef}^C|O~f*T-y*&;wi35R?K;bWQ#Kb7N=%9lzK3@6e^_#y5Sj!8
zfNJ1sms2&tG{rHDcBj4d=QXsO$dZFy9r(!&vI0B?#MomhPwRUDaIkVQ3$X{#z_hfS
zAFE(TY}ns~JhJS50Q|#?W*cRqzTp5{qJQ1dPN7yLlJsr#W#gc{SkT1Vlt(OZ-)`z(
zFPJ@gHO#bAviCxcRcO)3)kpUwS4ZsYd{gV1(%;*15;e&vHI19NexSk5&T;grya=VT
zS1ChSr;I38Ao9dMy=%MiG=~8drX%a+A~l8c0s}N3Z1Z&oskSJIyf~rbGzyrL+z1yT
z^Om;3CT_SY4Pc;TBY<h$s1sSQ2*cib;TO9)-n+vS91rN;)r;RT_B#P?(Vt^FDOx*<
zXFF1USASfQ!!CZ>wGP{~Uf>o!PE(b}NOdUU+L6Tz61o^*6WHx`Oeq21tk&Q)&7j7z
z<!)4W1OZOJt#Xsvw~^ndYSy0Y@{Yb-mYFzKX`JiS6IR~&en8s!k}x82TEi=JC~7MD
zgAm{n@HpVpWC%)EwTgFHA)T((K*S={;W_<uH72}bufwb4bMfLg31b1Fodnqu3N)_Y
z&?iREreT?T$UY_EH-1GME_N*h*@DU>?OZSUX+2UNd1>`;K(whPjR7<Laj8Bqr=Ns5
zvQVTm?NynC^^D54dq`$q2$erHO)JVM!?X8!yhot}lNaF2rc}+{r;;a{02ra6P*TJH
z>711Q&<GVWpXFCfajOGLKk^<Nb6j2DwTy2R6)w<mH-t2Qp?Rk<I6Sklocfwc4qgD)
z1p=$tb)v!Yx?>ejZX#=r;Mz5)V9_R7tquP(03-qo{m#Ay$#CArFBq2Tma;RCn$_av
z^Qa2CFU~UlNje*r5>@xr;N=OkkrHqqtk~jX!gFl`5nlWj?Ke)XV?<-D2JY5U6&k1c
zB`wS1AhtV+?x0e2D^XVCinvkfB4)|S&<aFL{~6@NyBO?QYy%j+&Z-2Q(aPoJ$iWSp
zm-m05e9ilr)2BfpLq64gsytUF!paj6``KoOS3gspj@#vK`rdK+GjOZgM1d_%J94K`
zbW<WRO34EV{^KMoYi9<QX{<NKEC`L#I_<2786;JCnxbR7m1^8S7m&6;?Pd^Ao1(0$
zA~WM^rw5!E3?Ef|VAGrRpmpc9FIJ$BGnz=GWg${`XlBe6zoUp<Z4#r+vR5xq<3WQH
zP52l-sKx!)5w~d;7b=myLG&kf$hiZzMHAdG+gbGB1MPOGEvc~0IqQ7vxAdpwHaO8N
zGT0yZ*%4TQ4L2IUJ=8SCE85~9<w0*2j}$>7C_H?7HaHUqukXaE0Z{w+HpMbRp=dMx
zJ%ph**(H~>?8~^AP72alG*I1$hMY;?*6x+h*Xw$1&K<~<@9=AMX9*D+7jYuIerejf
z7pWF=+`+dqo=dfA;;N~7w8rvjPu;i8%h;Y|wzEsi&OztHjZ4vF9M82APT>@7Q5-uK
z4o$ktu?%rM5AV+x=okzUzQZzG1Xzkc*`u}IoL?J&^UMJ!bgA|h^ic{13+x6<>+9bM
z1*TB+S!PKK%3+ge*-uC1r*NSS4mTmN%<9k2i2gxp;z_O}x)1F|d#1y<sjBh}-QA!s
z452yPA_jF@{b`<r{ai0gp_^WCz~dS!=2J`oAwZTr;tidji6rqPrzo`{rU#<Mz4D~O
ztE3!&mh(cl?%_&|*@>Ew(wFB>6A8YVtd;~eBd;6`+@=*x{)qbJIHL;Aq;0)dDpE5Y
zqU7N@T{6g9JiBL|X$ljxQ8YkXMgbtAJ0nQ&>>2f(v-L3Yn^3tzZj4v;uneID^o2x_
z=Ntofv<35kRk1=*|7Mv*QCRf18IOOQS7z9Pe|^SE^+=dAL2B)5wa(>744IyfG!*UX
zEIh{ylXR4K((bIiQ_E}7RxSbo=Ny0+O7;=k9<fvJG|4frML0x3{JD{1&bcirFD|VL
zwp{!l#dmg4t3KH{cA@db0(ecY>4?7S*4kF#8+vec2k#>{`=cm#(IupSt*ts#0^T@b
zKfHKO5*PT&dIOJGT$D_**hmDC7utWqXgGqfUO*r2o(i1}-}UtJ;IS}Lkcq;&S{^Nd
z!#G8?z)m?ev7ip&RfO4vm~(Q5;!I?nqQC_9s9g6K5HN3}ksh_jF6%DFt{ZNoVVPGF
zlY8psI>WaB2*uKBvEWRgrjDatxJ{o;{XS2=#<*4@vEXY{84(9u^opIb%F2O?S7uYu
zp~z>`qEi<8azutOC6AO7j$k!1WCZSX*sZ~3UJd>~qaco?W)C}xbozbU^nN!wQw>{B
z-gp%eYqf1}QnTEKac2T^{A|dSXl##l?)MN?@TPvQ%S6+V+>~=&T(L;-O<*~gmz2@a
zF3Bz?8T)K}&Q#sw!!V$BndJ&o_LN_&kIWwljFsI9zDom}w6jLaVjp#%Y^Ha(WFyOn
zJXwTB!jgfr=w1h%S;aDq@Xd4=86z5*XJtI8w$0F7i4@GYGLageUwdnE*o-0@A#;g4
zMw?t=CPo5%$V3;8kQEQ$G;kumvJ;OuW?viY&O#D=MoCnMIZ2yo+D4Pymjn)nyYS6S
zi-N@FQ29mXPWdFI-{eCpG~I=_3ndbLvuTrUt<0@{P`QYJ;q-(uB2zdWUUqVD8(i)*
z)plzI!Wi+fny1m#=>({?-aIvwu)M`v2dewZ`9P@b8)o9Jj}^!>H*w`Hf&d1^tika-
z{ZL?Q|1zx60IF{AaEztZw0j#(o|AruGP8Uw<MVrIb3#DZ`{E2nIAa?!?}|Ry1A>as
zc<EKVs}1^WNB}W)>s!6tj_^NZ09^TvAd`HJ?vI@b;PdNV<?T%-QK}0Apg@lc06*vz
ztR}>0NoBFDXWH{7ZbJtfI@PK-2V)Z*2;Nbir`@X^c0W_@<s?ZHhJO|DSU6&6^$npP
z{DI2&JDxFPzJXX4ig>DZ3+RzjK`QIvLt^I7LegDhI%z-%hMK}^$jqME;IQBVFz)jU
z=o6U|!@D7{L9OZ&KW7+$p+Rx%k!V~6y2IAQRZTQ|V=Ne=g^#cXPmSXA7i7$CmX)#8
z+9rqq-Z8w4n=868ply<BrkJY5wj?gl)oUjQ;uBH0^7=QzVZ4(5+g2rgc6pr*Khzq?
z1<1(BJGcIeWh$C{DQvEKC-fbJA&-qj45n9@OC4+Q(%?fJ!?&eX4%(xQ-?9Wo+{B8I
zuprUD4%K-DgK2k15L1JW_~Vh8EtCGIcYEEz1R7AId=Ip%kvkbg<oc1}TO;%7N|#i3
zE;CC`V!CUvKg&0bo1_nx?Qow36B#^Zhe)kSF|uECvY!J&t{Cge@&D!=?NvyQKGe{!
zOwhvt{diuYK>8ayc`@vV!9RSPFABV3ze(i$-*YVgf1e~9bjkq_DEn0k0xjOJYQYQz
z{M0Mmrv$Q%e{x~Yt9an!1f)PEkn%rS#fU);GRB(^$2Td)W(_~JfL`P`DaJsrp1u1(
zFUq|EApe+c2Mf;ycqJ^Se&Pq@9fzNRK;g$S4<yx_U!rwuG@a*UtQ6K(f&6PsuI;hU
zJcdsCb&Tdf6m}`@?&+e1B&vRVxa%R^3Ia%tAL=MNhX=pU_;Qmz{rrqt1xx!VYo<7E
z;x6ds&e<jqrd=&860;9s$x?ib?vIHP^45VPh)>eJB-Qb6GPqmzE=_3b+wjJpjf;bw
zX^8gQ{S`<B13aQF&huo&pMpRKN?3O@n9GC<Ij!JBvLO`3Ul#QcCb;Gh&iN_VKUv`S
zC91N+G&;%j^P*Se;SpOThw^cch@5hOyz_8I&=2wZ67xfykLw}wo?W?FTP1fDn|4q~
z7N7gAsW$VymlM3f+e<zS>i0oE3YfiHVaRlI-A%ml;&8Sm7So@z5B>&+ovXhBDsRx-
zSq1_RUY1DUfVjy<_|I$R>trb<##zUU9~ZC4OJ1$DO01aq1;aZQGG{x?x@6Ss*+`U~
ztUj`O0crCb-Zp^~{)Q(G_og$S)(iQxl=w_k{=WEwew<zT2cclY>0GW5$Pq*<`DYu*
z#uvUlwAJ0nvw7v1*K7b)A}mp*Fr==Ms`n;M4ZP~;((z~_W}9uK`aMWc+8ITVo%{=8
zxm1uQw{&kWSK}N-9+Ac?)RBk}8V(8{R8yO5zvX*rb$jT{d9V^)ZJ%JT^`$L%yzwnM
z>eXRRq_KERF?I4yWzgK|&dI=4>6a*}om(&a#Xv#n#jJM(B{j<E;x6R=sSp$2yQQ>}
zc!IK(YwNfv^7)!;n4d;@`(I@f!dFFR`1`%G{%n667{z-cZ~neN$3m*FN>B_h64?2)
zTcEjs^2@qSu*`6EmJ&TWY5`<VS3TI)Sw^3?K2kY|u0{OHd<qXdzPxN{<srR&%Ix1A
z*JFvgqU8kg-K*Z)f3(-QuRW{%XOLX-DNtobc9<@SO&aRoeaTn~G|0)F$)lzG#9y<m
z+HrDIfVQM(FBS~X(PZMesVMTfsX)=bsX)0U?*~C@&kl0JUs+clHhe+Bfnp=P@?so7
zoViOxN+hI3QVKJ{@UTjhAVCA$8ueug&qd9n>9#OEAmyGm@}^$qwRXQYlA9Zz^s3gK
z`CJ%~ZOh;G4NtPKrxb3{g#gL=DpcbS$J6Xz_P-kE9p@Xbjv_F7!oUb-=-(+@;Uv9%
z`K~%{33<I8{7#__81%M$jl3YM%TU%`Ye?rmLvz3@oij6^YQUYagiFec4dg9hq<ywh
zXXZbFrP^p8Y8z==-m<Ljx1X|0^AsK7zg|4G?6#lm`a@WnWG|2q{U}DL3r6@TlH{<L
zb4ZGvu6B+YQAkwr5SST_D(q@I`y%U+#5XU^Y(0h^|H`Rs6vk&^xQLW~CQt*dB~+wI
zgBTa(l<i{KJGS~2rBH!?MqI_xS@~z3v1fyLQqe(yy5bQq6fM~5bS(So-65ltC}OB|
zx$in*R_svq(u;>ds<}*igYXGlkBvM_uM~_7tRVX9`O}Xty(OGlzl)&ZtN3{j?oC<I
zvctpy!7b3sH`UhYsK7n81V*~lvDMS@nXI{fHYxOZ7I^Thd|pNCYmQ982a{r}Z0SR1
zz|h+|@%dL?l@cR~&CLgYR`SGH&#9;Cm#G>~F5B3gGUuDqfT{}9!$y^KBpb5m<bzA^
zo42SRVUe;06n`{K_F#me7~iZ_JaWlp;q-LjvA*Sgwkxp)UVk48yV-1?ECJQyRi*!>
zu1)a??ea~9npQEo+80(rZ17qkSs2eDfs>x*D$fEIfclv&zqIF{%|Pe3Zp;{H`k+xV
zk^OXeKQiLF+=erlOx;t#Frm(e8r$rqQKtQOoKb>}NBqj4^L-SLQCB`tkhyxNf_X^N
zwGF<`b6wiJ`%_kzla+DJXL*0`yA+sVXj}4fhy^hgHAGF&<>nvjmBWL*(%#TToy@9V
zR~`0E0Es8ol3Njs*&AlHElmowtp}zz<x2%+4mcH(pdeXjO(9?jnwonLS2C3kIWDK;
zmPw;8c2zr8d}OoPDH+62t0wwbzSPiw0@u#ez%0X2xDH(704VP}7XK5LC`eb4q$)gb
zz5q)GN{76efdWz{|8A0gz|>iFYsGy&nXO5-GBi_1rn8QoL(ywfQMPu<T*tp{E2kIO
z?`7|&BY>L*6inh^=xC6qp?bSbrC@Ox4n3^1ztkD6at}S^GT@$HDMK{KCm>jr3X$Y7
zT|T}5k;mh&3?fgPDG5bp-50zLKV}TqvEW%>ms8tLOlT4s#1dWiu6y}X$ce-LB11b!
zxgWZlY;9iqY9Yxh3|n@LuhmN>C^%=Y6RBgqE?eV)f*^Td!U9~`Ys*~UgRj?&F_PB}
z#yjr^0;$28)27^U3m+BTQ;RWQt8Hpt59q2zOHeu}7qB7!k^m)H299oLfIw>WP7bce
z&_u|cNu>|9!M|5f6pJ2g93P{hi0Te0g^=Qy_XVvNwTgU|JZZ6JPLj-B{eXh=Q?K-X
zoB4=f>6ddmGsrD!f8%z*KkL>I6$`_E0zV5CDne@1JQqWC7q=KVeZjt|ei|R~lcn_O
zOWFs36Nj%sa|~Nu1I<qs6~_Gz-ZMUmYdfCK$zhRhbzZb-v}U|mblz(wRC9Pn-9P<3
z<@~D9#r-fik;Vonx!o;%JOmB5kFbxl?+<-2N>@w!!1#6W!Mmr*X%|;lv#J?1g!_Bz
z%izf_QKZyr7qi|zAE1n&cE19?kJqoRhSv^o^6FmYv|Ntx93R`zF~j>pOT>p1?ClO9
zEJ0HAN)X{F9`9rTeyzXKE_+Zq8@=e?;$r2vnjgaV^1*6#sQPJ)m1~TT@cJ|Eg+~r?
zJkBlP8Ok<fluxNo4GzdScIRTUq+!2v*^(tLxtl{)3rk)BuhpLun^sSA#pz3Bok*l=
zKOW2V*7Ma8crg3-X`bGI6$|ih5`N1UBucmG`+qkq-g<Vj>h&p%pu6a-fZIxDo)?WA
zk;e>KmB-tAK!Du1Ohnhn%HK*wj#@7AlmhY??mcGHDvXcaP+~PuHccG(8mMu6Vmgg4
zyKwRpvwof?WpjvzmT@WAhxVa2^!HrszPLC-T6F|`vHa6pgsZe7W3SQa_uELTtDCJw
z;~7DqA6CpQ>M^mc;yNSgwY#dk<6=NTSdbELfmln`tzW5FrCPmG+)36%OAQoek8Okw
zC@yvxd8VGP83m~eEPwst1%(;xmm%R8(oNRu<U90x@ecRY4NDLAn$Z@1=g2@|0Ri4%
z8BsSVE_z?;qO-fj8(wi%xEBeuq3r6_18b<Js<`<+20M+BUT)6MgGU^XOAN~<x|9J*
z@8o&N*DGxJcmm2RVAV|0R(aRAHV(<l#wW5IK7)bDv$r2K$J;-tw5?R*a#O>ydIz#r
zy)GH|XvNeW>;r|d>`eR3Oc4;XOBJD6y1o;_a~|xw*jS-9W7CzSe&teTB~w=r=p;On
z^3wYvoH~y2YHV@QrC3JHDA3L+;QA;z+4&#^ll-b6T@ip-?|OjiWqxUO)G9>bybu`@
zphSQ&h+p)W?CNjws#D-hTG8i9MrfA~K<Kqr@S?}zQdA=+M0IySpA(@E3a9fp$%aZF
z3YI=h;{2IA^8HmoLfJ11%RSEWhi794Ln*5rLuc1_9)gmg@;IN9!fyZuNJ(Bzu3YBL
G`~L@_2K(Fq

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/110.png b/src/assets/all-letters/letter-detail/110.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5901b7f517cb8bcbb0c65214b728942b9d27e42
GIT binary patch
literal 16010
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/111.png b/src/assets/all-letters/letter-detail/111.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f1f0fb2086982b979ad1858b89a5438a3cfe57a
GIT binary patch
literal 16242
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
X>=J7I7a4PP3tm}4{dwuLw;}%v*6qRi

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/112.png b/src/assets/all-letters/letter-detail/112.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a40ccfd099875c5698aaa45b25f77305b5b10bb
GIT binary patch
literal 14481
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
Z7r11djiz$L0;3H8<fWCRieJ6;{Xfh=j9&l%

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/113.png b/src/assets/all-letters/letter-detail/113.png
new file mode 100644
index 0000000000000000000000000000000000000000..c49675bbc0f650b3cf48b04513fbd146882fcd7a
GIT binary patch
literal 13571
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/114.png b/src/assets/all-letters/letter-detail/114.png
new file mode 100644
index 0000000000000000000000000000000000000000..e38b2702cd5352d99e2a859911882bfbc29a097b
GIT binary patch
literal 12753
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/115.png b/src/assets/all-letters/letter-detail/115.png
new file mode 100644
index 0000000000000000000000000000000000000000..a14ca9fa65fa8c1d2bc4c30fa6a0a71193412cf3
GIT binary patch
literal 16777
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
Zdvem{s~!tng$9A-q?F&6yfY5?{{UP%ojCvi

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/116.png b/src/assets/all-letters/letter-detail/116.png
new file mode 100644
index 0000000000000000000000000000000000000000..679a93a5900d6b1ad5040eb8970799974a93aff5
GIT binary patch
literal 13239
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
W;m|J-7!v<e8VyxlmGZj}BmNgyFYD<5

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/117.png b/src/assets/all-letters/letter-detail/117.png
new file mode 100644
index 0000000000000000000000000000000000000000..48c9cc722b8ed78d5348c3c6bd99c037fcd04609
GIT binary patch
literal 14170
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%0DR%4
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
Ai~s-t

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/118.png b/src/assets/all-letters/letter-detail/118.png
new file mode 100644
index 0000000000000000000000000000000000000000..62cb226c78409f08b59d07b17ccf3ea28ad19bd3
GIT binary patch
literal 13543
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
DDId?-

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/119.png b/src/assets/all-letters/letter-detail/119.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ff945aaa38764c627a1431f0818ef920b6a301f
GIT binary patch
literal 15821
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
R$k7Yd`g+E?CAS`j{|`K@!ubFI

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/120.png b/src/assets/all-letters/letter-detail/120.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c6c3bd0805c929d8a71307c921d31a07b7bf3d9
GIT binary patch
literal 14171
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/121.png b/src/assets/all-letters/letter-detail/121.png
new file mode 100644
index 0000000000000000000000000000000000000000..98b8627d5b3756bdc9a58ef3aed2c4bdc5c349e1
GIT binary patch
literal 14163
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
WLjSgVMK}IuZmNo!3Kjo64gO!hO%X`|

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/122.png b/src/assets/all-letters/letter-detail/122.png
new file mode 100644
index 0000000000000000000000000000000000000000..cdccbd4d7aa76f47cc6410b4a8dcaac74552f673
GIT binary patch
literal 11837
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
E0~qHw`Tzg`

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/65.png b/src/assets/all-letters/letter-detail/65.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e01a3459c78e0214cb0eb9bfb2c9a8b12b6d5c9
GIT binary patch
literal 14791
zcmbVz1yq!8x9^K6C?Fsb(nw0@&?Vh1C7seS3^{}#BGMuaqI60(44@K{(hVcsAp%3+
zcmCh`&b@c7v+g?Qy4Eb2m;LN#KYRb4UGFAROGEJ?4h0SX01uUw<a7W40|9=1-p2x;
zT$Gr^ga46x$s2m<y4iX8SbEw5&u!eSZ0VF;EbVP|Y%Oj4Jbv1W0|2J4gPx(6p}Lx=
zwVMl<C7OoI*To%N4FKX&zV4RRPPSfjR<`yIt`hVIE$#Gl4mJ|>1`u@~b$40YR}M=4
zp0>LF8hY0LPSzqe^iq;^;=ZCF0~cE_OFCZ{XIH4GuLS)+d_}>Z(T}<5>HZ<{a+09`
zmr#c4T6D5*p0;!lE<sLfUVdRZArUTKh=?$s00$i(53e9Mj|exf04EQxD36FJ4=>$+
z{G$hV^R%%O)sa*9kG;Te67;XUyxc{(xqW<mxP17z+&t~Mc|}A-xOw=v`S>_N3Qnk>
ztCyuOrz@1<-yGy@q1K)b?p_XVu5@UQmR4>sF9~{3(tjPn#a&(fKN-71|3gur%D8<k
z-MM+Wc(`3$(C7Mx8tSEE`@hBbFR7t=e(tv1I<`<Zn5Q*p4?Bi`F9vn@|K12q2udTW
z>FEF(#nM^M%^K!n>*}Q}CqWPXhRepmMwHi<$J)}CUx-tL7h=mP0I{~_6cM!M;S>=O
zwBZwh*ziLjR{!SnU#;hn6X6kn$jb`}^2+n_%8Q7|Lj)A$<b-79dF7uAi17S-t+FfB
z%hJ`__TPIufP4SPTDkw{T2Wa~TT3rDPdzs`=YOL>>y?|A8}yZ%JDsd7+Ui1d&(tlg
z9bC~5S<#02*SY0vJsrGlZ4^A+T<HGMw5Y>>A;o`B1OHlY^Z%<sZcr$0G+h1<`2713
zh)ML1|9Kg}FaLR+Y+b=S<OyDuF>b&c03d71a?kaAXLlE{-80YpHjXwHLh<h~b}lMw
z<uK|H6?17%Bt$Jwt1uts4Xo)<+3&mZrBvBw_k3zn<+9ftV)C#X@^J2d&pGGGp{ifg
z{DbQ~u~-Mzox39eFFEQ{&K7TRKhQ^>a-A-O2DWFD<1oH4<@jXU+8(%gW-jpau{qr0
zT0x@NO=a7&P02HHb5>zx>=>4y@~BPcak&mzn-T!{^$05{##q-bp)$-L^GfzrzVgp~
zw^OE?h&7m>b-n&+z5B|ytO=(%z)6Ua@#r1%1%q-zM2!2(Z>rb;jwnrlDZLnM#JjPp
zZ6)I}V~7lX7`Vo;ll<oU1#Ki(uwyI#bYBzzP%SXg@ZTJJDMy}0RkR0uY4{v^5V_|>
ztHOA~BA_l=u(SMo3kxv8r&nKA5NzG@c38TYL?oL+MNyK$OX)q)`}?KMy=~%k0D$`i
zlyrFNW~*&-YF+Oz@OS5l&t}!C4{YQB>2MdwqtTdsI=FM;wzRkae^wE8&_CBO5Vv_#
z;naL1lG_hG8pi-e?-%8Lb&z^C$=3cS?s7Zgm<xq)zn$$#R6c*bc|re)3kV5(P;}B_
z@~6q|z{QW3JM`e-23bIFZjYp-zX;x#!2oP{FmCf5<<C=Y_6-ViL~s$@QnlVLj0LwU
zUQJmncY*lx-Nf%*W_tuT9tNtalVJzP1Z6WNJ#|xinZ9Oq?g?dcweqADh73_D6(1;8
zG>zo*iBmo*dpHy~N|=4}0(xa5ebwl{#LInq{vh_;_H(J}#d!9Rev^B>89eOTyTH6+
zeMIU=Gr%~`mh&GCMZio0M((%yIY@Y^C(aJOTw4#I;gfVtOt)qCI{~CIC^q-w3lbIc
z_peR6d#rPI{F{FZl{j3i-2OG&8H&bU>Uz#`Ybn0HJR>>3o!;en&_kQzGDiz(5eGt`
zMf(Svhz8qRO76a1X>-v9-5+Zoq|{))R8>0dz5R3AB<FsW8a2z%1YO0gokmD9a|z)#
z0wIaTW4Vgn?M!0ka0M)XQG4p3^v!Ig{NoxbI9bKkUi#qHV9p1f^G*93wf*4TvzQL(
zu`?#XrOHfHeO9-zT5ccAG2;G8a7(Df?{7qz*>Mdqe0_7Uh$?kZI(g8?Ii*MHvO%Zr
z^ILl|fQM=6S4b;r)n|3}OJL1|_QhrTrn$aX!{l?^5KV4m6vFcAq*;$9bnYc%-0k^N
z@4?l^EgMt5t#~dF;!s@Hc!E&Ovofm__$1Ee&zI0Q$WEj@b92;UaAPyIbt7lo*-+Pf
zHP;=nq`KBp+Q}Y#E!EB`wBSKI%m~mil{yOjd^oqCT+@TEBK$;Yt)QRbX1Wz~kHKv~
z6g7Td!*uFaB<Y~pW{u*UJNS&d`qeqxCkddVY#^gu%e86ase|y%>$?hp#q)pnFDHkj
zj)LZTXNnOPeNJ#PvP@Sc+r7bwI-y?kpcBgVJSYH+<}-i4-E=blP+!15>6Yhk-DSLX
zqRZ(lv4)T1m=dlhqY3kWLj!bZu<7d67e!YM^m6fkFW}iK)~L(=#Q0(9aa6A41VjSn
zUsLTbIZOm}=r872HEqT2>G)VQtT_cK_`0<CTz{Kda--g_9zTk4qjz$Vl7RRh4<r6U
z^esT(NB2ERg0Mk3Ab|>Ri#ck>j{<KHkT`N7RL%r;ZUG06|6?HD!LdWt$S*%r!n<Qz
zU4Oo%`Qq2*9-@0oOwttLctSI=>Q%SS3;;8q`4nyAY!hu}Uv!@RIISZfUs!C@-&f_7
zEzq~Y0O&IGPK)rWlLI^}`s!K3xD&>+D=%UuW-~Zsv4CE|Bnh^#vSz_KF6<=($!gcg
zf}cHQ^O3W*&pCx30@7SXcsfQl;eCQh9*;x0sU~lgrn*MWo)g^eXIJ*$0qE@Yu!=dV
zWo$G08Xt7BG+z}biD^MkU4svE^{9b(UA8DaW+T;h0{$U91oz_0mgi)FrAc!ok08$U
zxIk~<)JBzfjkIlMUvqzFO8gH7eb*v~bmzI7XA@Y!>b)dowv4jIk1)HPg2<b9uD=!P
zG8)#0aX1x5otSJLIVnfRPZTD?o9A<yOj<z`*!lAn*Q*GPGI05SLp_OlPlKO+JH&)$
zLa`G!G~Y^YWDiGuA%}Oz9ako~xgSdqtTk4^BK0MQ@x%w0t06$h-!%2`i<P6G#&^((
zJ0sj!pJ|>zzA>gH_7qhAR5>*56P+TXHEbX0{llcc-|Br_PxZp&ae0o4NtD6+((3eI
zm?7{7ax1=NvHjbqve+@JquSi8GW$e?ob4x7&Fze``b0>-zFm8Xf{#7cV(WQk_uUZj
z{reLh#?%!P9%31Kf<|q4g?z(Fzq)h|%jasDF2nUq7q8@3rVat%oHnHUXja^{be}t_
z%uY`yWk({Nv7&*m()Q>*WQHS4yOCl<rQeSPqr(JO3g*|hdE@1lz!-u3!-SXrdzrnS
zXQHZ?OK!fHDT2*Op5ZU>8MyOHIJR`fPtb7a8N>0oJiqE(!ITXvN-scd6GQs<8*@R8
zfP#4KV^al8V}~{Nel|9K^QRE?FV*P=H~_H@s(8i!Eq1Hn;Ikw@g`UEf7u(Bfaib#w
z9xpg+#W86C9>vgu<s*qiUFtIXk7iq=(H!+&h57kuoYCp2L!0Wrvw=hY*n@51>?&kU
zsy5rPN%Lm1U0936;=l{J^4<??Un+nQj)-j0A^TU7^%K!LX(?p<-v(Xder^F;)15vZ
zGe1rG<B<J-ID$dX8h6%2AX(Rc$I0zZ2!E(1^#QcC&}k?v&XoYzyvUq58rj1LsaZue
zW?#m}vEl*9vRLk(p6k}eZfwAvu+V(vF&Q;2ApE}nH#P0?8PH+m892`Z1Ark%VO9(v
z1c~`S`Vhha;D7Q7B>;f`&c{joBaoWaJ6$Axp2kV^=b=ut32pCt)wQp;fA2MI47aQC
zO7~#f$k3A}L0in|{{DIMNv-ddCS^F#iEX38_bAbNI51mgb@2F6%J0}?;yZU~<BP+b
z&x*f~2Hy~O^=8C!KmERUm-fCS9m8@$<#^lQkA9W%H}9~n!L7(yi*)e_;UQU9fz+Ns
zx0J;62eXn12}8#U`;XvsC}8f#Hw=-6<9m_ecZeC5JT*1@loXGB?|^$)#Qp01Jl=L?
zjgt`9nWDzmaSwb}D91rh&2k#mUXf_EYJ14U<qZdgoTe8Rr(-dLe~?*qI@~H*aayMU
zrRgZhEx{AWP9AE;9H(~^L*$`EGsq_%gc4NBzVcEU+Jh&^47}c86&F=Qy+&e=LdN|y
zD9&2dp00-+jb$n0V1yE+mir2D?Dd?+`VjR7teYShJF&rsfellmbPvUX)Ss@a9h$~7
zmTrS~wo@$cpP6%4yU5Vci58KL+0=uc8*1R+rR7o0U2qw#J$r$}n<6R+i{bu>BqfA*
zIL~5lN%+X5F9jzW4}94en3}Ni-Ug47_l)RJ^>SnZ?_;X<_<F~Yd%O(DU1tKiUTGqH
zh##IBrV#x#ZU<Cd2r(?{N*XRvPHct$2WE=&VgU_65*Py;^|m2n4;h$<t<W{y$X&tg
z#5SBXIzxC((&iCD1ySit<c0q{Bzm%&6uWX6jcFfkH86wJEfn>;kv_yoE?WC(OmL7x
z2o*tzrps;UfqXmenA)2T-61@UQ{o`XAp|#1^D1%*U^&%&*K~8kltvtE&JvagF6MU#
zI)IToy5$hwlU8?7`jLx93(wl?>K6HC4H_FQ)z?~=f0%O6V6jkfj5t9Q_~U5Pjeo=v
zl?0VSoP*I`OFd&9B=_3u(6s!+J2XT>l<VM!U;k#?54VMGgAxh5JOqu<*JR4wXBbQt
z{*3PFQv8o^Y7U_C)INI~9JmN;JjKznC`w^{2rhP-xLs%Q3b^<FU*C#IBxhrHlb=wg
zkTTY(%8C;epbw*}(RK<Yr`#+c44*xM2|h;es!CM#E;I1VZ*q-e6}jV@==%|a3&d+;
zdPAYU)AOg;*`gEVU%<rxWb|OQRC8>Pq!H=f{s?Z;ey<bzT}7d~s7CAXU3<khOMpBm
z8XCySEYNo&G|60`MIuz0mpxCjHW*3qweS@0nn(PY`AB+~Hd8I!%)K#AMwkiZKgUSA
ztd4(QQg}L&EISX=U9V@VJ3XuMeFRYl>t7ok{~?+rM7RI(fjd^6KW<^&^B(M;l7KB%
z{XgzcpemTupoWDj7RCmXE-1Yb7FS8G!$w&_GT(yMokEde-x-&Ap;}QQ;jdjBsd|>C
zEMwR2f%Gh>oJS(3^X=OABXpd+yJgCdcR~s9zv$aLNFk<#QFS_a5fpnaDX-i=f}jlJ
z{}JPQ(97Mv)0q7d+GO+d<mF(T#)eRsTeLYAA^aKKarT?moQQ)|{ghv4Vbf|s&yAdk
zs~u;tZq^8$>iBD97-kWPm`3|e^ve2PF_+s-$-`=^{slWg)YPKV!0P$>A2bQ-QfzP}
zQ)A_nRCNzC`@`}dzt;P!qaWWsLf_AD^}WhPf8Uh5ikS_ZG5veVJ2V%yzN-DcPfY|S
zm%83d(4n-D3ufji<L!SQZ(JkOnMtCO`#<csCFT54F}rWzb&KbY(HRk%&&+-%G?5XU
z+5OUlZRg;88nvX_C(qw3Rg{oLO+>zezFNf3AgRCqX59Yn&0ct^!(4Y3?0H4o%+*Em
zqLof=a80*!BNs%2R!DT%wfoClfxYXP;~;PK#L?~W>OYg0T)`zpW#6t^$BLcc3B1fz
zVMtjFohc74DtJ!<Cb{^c6~o{C_HC%VZ4%lqT4OF`Zr|;U_$J`~yEb#~<O4(S>2jar
zOy%|Csk`Rkj`yf<o3*9_zXxf+LXomxMqpbm!d!^2xUpA9s%)h;d(?5ij?|yKsNVz4
z@GPwS;b`LqiQ>(!t6Ks`+iyV+zg7e6?DSFT!x-!(3j$pV>BBFTe}%F>p5_KnpVy@5
zbAGJz39|XNF;T3M%t<LUxinZ%3m#4BU_BuJ<d+82kBx<`*qDxTKfw6|az$@r4N1up
z>h=-IfC{-Y60qMWu<tihB^5l_Ov!9ooS&+jWpLM=z{wjF)ly5BOmqid_;dk26WUdM
zQIE}X9W1|gyouuaa|Zi$^cpGq+AH8;Pu?1GF82DIos=u-<SYpO2g$B$O4nJ)xWdbT
zdi(5dC-y)f=$4gl&viknjf#?__vyB}cg^oL`Gm(~`s@Im5qJ1!$L#hizb+1nY5#0J
zuU=jcV7|>x7nE%5>Z-V4+7>nEpvofzeUnce%_3_S?2`KO*nsmT!_NNA=EvLiqSjC+
zxPcb*Tn6zR=lLN9G%-DT-s4I_kz3NF&8ls{yv}kP6so22F+3&At;j%z;VvyGl{R(H
zSz70Yp5w*0>Wux=8>hZa)YpBKf76g6$YUxT(=D>1Wui*zHuMFh?cg4P<|U+S?b!E=
z$z%BQ&^RRKdQN9@%_!^-rs9;v&2~(+`$B<3d-qG@?z^Y#MXx!%;Gn=PS%DjV<c<;>
z)7j>GwTRW`mp|4{)h=P_{VrS<F$DLTy3u>Z7zgHFPtzz8s2VIRzJIx2^|x*%aoR%!
z_4bnKQIyVo(1nUocwZU6ou!~Q4NE@}>dTqsOhzQ{z#oTcsyl%mYv4hoq1@0xfO@EG
zU~KtoQCQQf?{-JTNrt;9wgKHwC?3=}E$Fi|fB7v3k~@RFy@%sOwvJ;)rLFmD4s<B#
zLrd3Dn8@*I%{tqqM!oOKV0Dpq&02-Q@wH+7uI!hDpa;UJXbf<lr;ZFGLl>AI)P7LE
z#3ZrUo;6dptvf;T3+1j&T@%$U6Hud7`+&v#x_AYfNsrT<JxXx?<ETq_#nI7D5EEK&
zf3m--u6$Y&_BYj#H=U~yO+WsQWVa`}gp7ZDB9ZnPv~zs>&_1dT^d{8i5lmAHY-_lr
zg-_tS-z0faZwJ=;!O-QmGwvh>z1k{%FW=vj@=TTY$CG(J?OvfD09hzOulcn)OOKD?
z6ijjIdDgl~<LSjmw?gJh{>HUgBxQWnYc4cO&Wrcgf>SDw@E5j{-4MF#oJL81_FD7T
zyx>z<OTC|S$)1COMZDncr_v<j<*IkNJD&@<$IDtQ_1P<<D<*zI5bW}Iax=FXQ6X1e
z>*eOL2ifa~W10P~&ARIqv%;lwq|g|*I}&L&Z5p6Nnmy*eqbAv7Tly|7=IflMkkUE-
zv>qW=NJlv9L-4?gZa-lTV%2l=P|Y?mAHKS?#pPMfnni=Sq?gQO<i}}K7vQ1KpO3Bf
za^Ge%KIZL7vD$h#H$d{zE=o5mQ8#fqjZy_97}+JK{xs`W0bcwbpMbvE7Mi5KE_S=y
zsQsfqIq7m>CUq5v#{R1OA=3a%WMzb>Jx}2k=R&Qzcvrr|LR?ExD%m6>^^#$*P&oSZ
zzAXEcA9O3EWS`<~&n`M+*O^3`PP4qnx<Z3HJ|NOi&sfqo;>$Xj%k)jE-Z+QqWzabO
zLk_(_NL?FA1wVN3>z2dM=CL>10mL#tGRqL)%^pZH7$uNY@YaBNzuxHu+3;`Aelkw1
zY4|PN#lv9&%^G;wJez!}13fo!6_U?7RB+P!c4LXQSksr&*-|iS;&^E9VYV~mzrb~A
zs>m6AZ^Y@d{$?t(qBLBF5H8I%D`Bb-Ft;}UHKi#0oydXf$sU2SN4P|o&Omvj@Pr62
z>IqT?WJZLGJ=j&0=)qjZ?nw4_n`FniMXF{6ddwbN{;GrJCa9i;9u-2RwXnD)6#V=t
zS4ki;k<8~sB`aziBB=q>SUfuM)&g&4FBhcb>&AdKxvP{WFR^+e%tykJ3u5>3u*!KR
zZ=4(}n6?wV;xqfF{>EzqbHh6CqWVfm!TUQ{kFUV0(^5Hhq^?qqT>k4)0cM2#Z^hE{
z*N|ew%k&Tji3O%U=DV~lm71&+6p59=Z_uanE>gG4SPICJF|oXEqZMkPuTD(a!qdez
zcUMygm_>VAn;xYeKauN6Zq^@bA#5pY83)yYiubS@)Hq4;Qo~9?9FZ4dk$O$gQnh#A
z8Eb9{>Q4su!7^u}UiwH)3q1$LP#xdjekf-4nb2Swg)Fpd8@o`Wrj63mB!O@1v7j%w
z&GX@z+|htom<TuMWO~!*Xi0sr1Y<eb44hzp*rn3s#2sTfut2(xqIG!+p4B@2!Y~TY
zwaGmlKDQtRQGQKr)<V(3oE;*n{X#J9j{og?Fz~3!{m=ymbb2P93$ocm(;qQm?PU`p
zb+35n5_oCRa8#qV>CU@GNkVPm(a?bRHs1r|Y-`zT0$eSgMuuae{aDBV7+je*&Uk$e
zzPk=^s=7^sz9Yrv?`0~c2~V-Fu-xGzxb%80?E*U(fQgrNSoHNcC~5u0SC%3Yvc_QW
z=j2<?UqA<B(f<3C8N82CGA8Fyn@4@!*g-5SONxU8Hbj@ion$zNcF{;ozLjs6Zpv=o
zAK-W-hz>TnFEAIIw9?~J(<V+A62-~?m>MhwuYRRbuMne4&uKd51D+vW6M8Tg;bULw
z-$l*Syq6?5P3f>8fPsl=K(SxILLt8PJEw22Rxq>s`p)>oB$=x;mG?$FGWb9?>hz=u
zli$Vs3<B>#8ooMiIi|Hc$|i@#Il;#e3b`QsoN~~D6V!e8AKv;-yxiwnk*7Afa6D2L
zC<Tqc0ujqf^DwF+BflT45SU|H%#%AOv2Z-XKlGhf|3+xq@S@fu*9%rMnpYT5Xo~H>
zcJ|lLM-r9adqfr}`wj9Ld0tQM-ZK}WUiwRIE~g-x!3u&c@8EAn`^Vq)P~v5rZGnw#
zmoxjbfMg>0m^a)}MHVc#K@!%qcdGr^2P)H2GQ3~4^xKps7f)X4x7#PoB9p^Q3iF1P
zP!k%v%^JL5nQ@xF6tG}YesAjT(iMeK9W1~*tfFjm6V=!)lw~Mv!)1;I#=^Rq1Igj#
z_9^#(DBGEs2K(#FSWOESR6(v_{t2uOeJNA3(4l$B>w}C*ZjN1XS<}kz%)8m$5QIZ<
zOhSa%knTS;pkuT43fLoFrm#IGv%kLhWHq#6edqEob#{{-3#JJu4(YfJ5*K?h+3?K{
zlYvfY9mi~={QP3h?(H|q1)3<mVPZJ128;;au`AGe*&2P~!zZ&(K?3QwohYA!o~aH)
z5aehBfq8)HNxPr%w;<Z^#_ra9_L^q3nL5zpia!|pmH2>s--4JA)KgLE&1bwiNILc-
z6PM0(bsZg}teS(00s#yEgeq-sG`h#B0&kWW!5aAKSM7R>s<LTM0}a}+hO&7Ru7|q1
zQCyX*oM8R9ey|e{W`~28zZ(nYUcO*=I=E7D4Xb!l9%+{|q!-PT4;Ij6qUYPgo2Lah
z2*{LbSI(M9Al~{XI1RUEw->d!_&*&2kP~6to7Hj3;nY%dq$AVudjBY8{o0jBG`F65
zkC4kDSR0s<{gdBGPYwD7tZTU!@Th6k+$b2;o!n$f#nMA(`1IY<PV=2(cWnabL96hd
zeehhJIna6M5DHchvsara&>si(*qi->Ig44JUga&PvXt1BgQ}U`JWE}!D51qnvbe6+
zZp9v<u@>P6v43k+!GcWf7+(b4=m^f1QL{Yi=B(cB7W>19V%tJ-gl9*`?XK2JfJCSJ
z!aURL8{P<M&H_9{hVAcWbw46Fo@>=<wMP2XxfePY`AQNepJ&;FOY|^SJ6gG@?TmE7
z^=HOdlo?ioAuhs32ZVXgODQmON}|7cByzqzMr?%><tVf<cp|}%Qc3NxuUnzqvQa_H
z<ZF-_|EZ?OrZWGvmD=;cg_n)qx{Km8AfsTHxLP5Pl0<MjQYxDG=9Eu4gt}S*OU165
zS!M$nv2j~?q+*hRa9QJjL=xsp-SPYsd;oLgy$AWsl-=BR1m;Kl#-$YpH(Zg5-^N3c
znBCz$@X^YZDPk*%exaqL;7$V_W><nj(ek%TN>lgN3qVW?L&BePD#a9o(S5=sm;WH>
zsHxkY_sk0#5=F6zE)`SW$>-O&w!cw`c-Bo^l3bp2UMjf0W<7RavUJ3rOMmcf-(6a|
zn?-z)lM8+mRCf3Kj03??H(4{udN_r1;=w>{oNg8f?P*ViW=+}x!ZAa?{x%(ig>n#<
zxiYzCd{WS`ueH#;$0syZCKt~%1L$-tBTgJXavE|R8<?}Cvr7ecZK60>vZHG$J5yE%
zz<{Ah>FD$U+G3sqvV-je>eRv27bPVpj(Ags)2m*)9;XX}mG4L6xSH!tnn<iGVrvSg
zeP1~?$K<uW6<ypHEe|AB$6a@=ud_@x7*I&P?|U(x>wD%P;D`<Ml))P3*uSsCx2LC9
zqqG~lk*7Kl8O8w161RD?<cGr>Ln5@q0M?vqC)QL;UtY%!|Di<09@}kzZ6y5Mb$-Z!
zy<c@&S^L?F4#Hj8OiBTILhANNGZ}2%<j&le6qO7mh#fQXkrs_TC?p&^Bu?oAYggVg
zWdA{ITzH8t4r0hof%h@oJ^gUAvX***p~^kPO3fPdUz7`rqpiW2j!yIqDaaa?tVK=F
zm^iTPZ*IFd%U=ugVf}$8D2ZZaEjLa*iyPYoeW87tNd8j_bfC(le-xEkDBN?=@~m56
z9Kv6xHe+H)67B~t)@Be5`yR+KqIlTJ3ii2F<`PVat+2og#mAxnjrD=A;khc0xGUB$
zHiG3&C;2$*(Bj(_kRl^!=PbXh*-k@za<t^0$%<+M#l!%R@~s0;UrlwdY0BtKGQ9G$
z|C;Cnyp#1?9NKi|NA1JH@A$bnNkES;PGOm)3)cEy9S+z>q3h4WQ(09_xJ3RQAG}k|
zlFY>HEM&GOXb?L3kw1P^_r#6VuqF{H`&>877;N+;#Jj~?4M@ZMs992141ZB)KZ0}U
zn?7mmj$j4LJ|?hPMtp}S`n2{D=umN5!bjGw5K|)5SSC-!MdcoWHGj#MdW9`9pHLaV
z;1E{F2O3xQi{tc>6ZtDi^`{~1(O#xJis-ubwKlk&QOe^~i`v44`v@K|wa|J+;nT(;
zYchw)d<bi(wqxmxkn!^FsThph0lwO4SjD{o{al31Xy8R9o|&)<S066Y@dkm9wt4va
zYN-@|g*A|>RPOuuK{UEr3zyjwne<zhVBWejrsakw!XR__MLIKZLxg;9=QCl4z&O{#
zDxN7Y(;Dz|EdN>KcB_)p$@?BdjSQ~PLx#&c5rO=kS$H~6x&O*4!odP7SE3wzjxK=L
zo2`ehGmf~D&Fw6h8L~KuSio34aAdw3Yqurp_lv3u%fjFK+LS1Y5Y*9nEyHk7imp(I
zyrXh^?-N}LkW{^y%kuV}z<y8~E1opYRbbY72oE7VHEf*tEz(^o9MG`<FaD@4xR|D{
z?<$fk*hV0z6?#u+8*FhIb%rCqo8)SYd1Xt|U#p*FR%7Vwqh=W?4$<KhS~`dObHx0*
z^j(2A9^C|zUlj4`T^9|w=NE6yl&Tw7hxuci$CIy(wA!W07G(}C@wK7x8f{0oG6bni
zut4!X2&hbGM0%LsZJ*||yYU)RLce4|vku&I{Nr*t(nj=THHB1(8`aE2y6y$qr<II`
znzy-)R`))gx+9SogV+Pf0Stz$!BGz@@EoJ~2>b_^fyAJ>C2`N+uI`GpTk$$})W^nw
zjgR=Laah|wRSh5(TG1d&kFMh4+sEa7>t;B_$}qjJHSW!TQBqcta_7KO3)iCNS1%w>
zhl)?}GW8#(N$O0-a>SVKU0Sl$cyy;TLi}n?{Bj>`wO7s<1{c0ji~tj(2sr;QxG~t7
z%_9t1=oI?J`4n{RvO$s2=Xoc;@JYw-@r@qARDVdxJiRZuns{?uhz>%;cY1+339yP)
zLO;cYjkJ~CgfxA-3tSfSvzmZ0GG6iRTza0zSwBcghX$Wt-q_~pKi*dw>mF7B6M39A
zXo@CMs_n#jh89qZmeyesUSP@h=lNX1LU*<VxX`Od=odq$rM~-9RJ`udE5q5i_MR3k
zI^59jfkYJ4=p@p!xO6|ni)u;nX^68IJgkj~;<q|;XGA8L3_3_uzr=buq=QF?`|ak@
z&{sluFB6z?o)r^-o5}BjZK|gcTvWbu_Ytz-RyiQ1(0apl%qNApXu8BdplhL~{jGTT
z6nm)s?CoDcszO5PdNE0~Zd^@#Z`GkACV&w>;>$lz>Q4lz5*MK?1KL?YHM=yJy7wZW
zV&)$@aqYp)FfDH@{hA-&rLC508`~|L<Bl}^Xa$IT9;*Fy1X9x1oe+X(n{UUs*BQa#
zFndY)po*M1Ue|JoE@PAk-ut#bH^AoedGx!lx_EREGKi<pD0=WPmCY%)3ntVw(qF^e
zwC-RofbIH2t<a|aDcJL7O=>$WRSMVJ@9ha-*8yxz9ABCxom%g1Cg8(j+?+!|Y{|ZD
zX`@wjFG`Ua&{<nf@*K_%HhRxqLS-Ih_)PjRU)gjC*S!R)fz;ceB6*04@!6`V;<Bgs
z8i4Y6@BRpvHjf)jl|zKUjyqqW$1wZy0SF(5Y4?Mk{Gzf@nJ4q|^2D83>u+oE1VAjL
z`D{39sR}&#{G>)tFgRhntX*3mCBy28xI7a`<)}NW)S(IDXu7=O=*{1>9Z%+G-5jR3
zy$2Mg_}G{I*mvSajvOe$mBdhQyM|?s?$Yl1tfnkMDp)K|1)XnQj*^qL->FiYdsH<_
zWbUhpp%h|}JK%c;kS?!Y%3=15P4~&@X9W)~uy<hMiUl#pN95=nC4ba;S1X2iq~J{i
zuS{&NH@MBnR-&i)^27mMNIn_xc<7_eTNva*cywtKt-K2|dmQ&R?`9&~Go60{8GuY&
zJ|)$CS1O9I!fKqRdldDq9n3NOZv6}ILc?%clEV)Als4|YRV{q3Zf@we<E;VJxQ`$@
z7Ns2}`%}eDOHJz>z~Z-@U-(RpVthRO<P1I_+%YzzCQRrXwHfM?Lz?mqs|W4KYoAbm
zs;H4SCfNHtr@GO#@2$Fbot-zA@g@UVqi*A@2fqG7dk#^ngwL7qJ$nxJr2VLcm83eK
zYtqC?mfxJL*8UNuon(iR?I~z?LJHfKi&>WwUHGJ^?-me$uefj*^<>`4si(&?^e(L(
zH_d~zDD6^n<~*nc_lH^RpqB#rENQKh^788+v8Im{USxsp2Xu5dDbIwNdxEZIaT4}%
z7gl&H4yrh&R`nVb4`&$cT8-B9K(A+{<K%HFNR{$>U6+_4i>zsmLDj8MU8R&%Cz@4k
z+3JX=v8%w`#Pp7AAlS42?p(AMr@>pqbnRM@H*S*gc<ipZ_M<Uz=R6IcY6I{_8-c;D
z@BG?L>z!BF@TSdI`>`2vr&U(Fa*erAZepY;ZD+*z67NO+d7BU;snu|sS5Yyp<5Jt7
za8=gs+VIi)l9XLC)_k*L3Lwt%tZExfw}X!b!j*Kjjhf0@Hgbu--GTfeIn~M-Ap*mZ
z&gW#79Z|pd30h|)XL<aN@SwwkDU|arDzs$98ccl&lFtLg*2Z_F3JD!XO}LCIOZ35{
zH2;adsH9*{9XE>p=`n@GeM!UdDMOYl81^%{^l=S5r~Rw@;guBdUF}!2ko?yV9Ue#;
zKBgj%w^Q((&9PaODQ?Slz?%e%p9eRBI#HTGa?y<>%Wl_--@={t*eifpomUcvNlT=$
zq0Ro!9!BrEqDM2i3wWS!<l#KoudKNVnK^kXA)mii?YZNPlc3VG!O6#R`MqFiLn$=@
z%xmpNmke3d1I+UY1&a)8=jXjhS+Quv1g58s!ZH8hLS4sYKlPI!uf6z_)wIRphZpM?
znM%B<)KLrb!|+ga8?9gkd|@>yE5`cf;W!Q>*gp)D$@AwqB(Cz0idi0sM>QLxAzSQ~
z>8ttAn?AuJ<9cKLrBlLirSpfFJFr=0PA;iFdSZ~1ul<t;${Uf_>+d<0mRj>mZAma+
z>J-#7|KV%w(svwOu%XugEoD-AJ#7ZQB#M)nmM)*vskvds;q6D}uGFOX^Y83fh2VBZ
zM0WakRYZG%9U#FXv#MBEx5-We0m(?}`bb53zFAq&6*sCZH9cORm#F*kX!kzir267C
z;@J<5uwmUFcfA9`xPN4T2Ay&|N1ASlK;Otr+x%{(OpOwpL$WXH6)ubyYZM3&!W(6J
zg<g3DV8@upKI^J{K2Z&+h984jYJKMhtCf4y9<_NYx;gsQ>vzZ8Xy7&`j-^3EgLh)t
ztiM!vDpLXfv}VjE)&8pj&?#{_h@kLyJZH(_JFf9y-bzd#6FaPHqVUw2l$<ibMjVY$
zugNxU3Hvy{qAq5zMmNmiFip4f4y-hwCw&|o%mQYC?(2K@B4=*7U6gLgU@f5jbo56D
z-6hjwUh*vq8<x%ucgL>NeccH1ajRVUx{SfE1P)kWS8Q(SNS=Xj^e0R*boloW#loU{
z07H1CvJotX1F=tvV~Ht5IWkKNuX=)Rt=a3g@Rg2ajv$|ORsQ^-K4$}Vai6{6>@<*j
zw2P1M{RqYos33{|cj^t+H|3oTFTk#}`qSNQlt7Hkw352RXD|t%+8d{Ak4N(8KH1eV
z;ngIaa^)o}d`sQAK|)X{wwJ%teE^r5`ujlAp5m1xXWPS`frUxSI9s6wRtV*EOlLi2
zXwQ8~eYYy9%jmCe(V%{_A5#b1U=tn1Y2Byf6bh~IKQ{&y-P6OhOK$lUIXc9IA3AJF
zZ!HOGxc<kt=kF~a!$Qp93xjqkcQWwrJ4Rp?2-q;96jB>h4@K0k*`*SGZ4!o8*3GrZ
zu2+=g6MB2Y6%I*~^tJBKg>iTGYJ?6Ojmz(ix!pv_VFtao%q3}<XFpEnOCOs=>P~_E
zfV6~v>dNd~@ZB;egDIYU{Ym)FX)5%rm5HOo*~t`q&xO?hZU|rC1bs9VOCs$f7_&{6
ze-n09CK$)3HwC0^qTU-;@H1fFF}-S|Uhl5$l^|g1<$$#Bj+qC)m9fxBZFda2S`^C8
zCH%bd-=F#TpUiroY5%WT4{iy6zMnM!fd64<C1_s^VH0YA0SGI{#$7fMAmlR1{{2O2
zA`LAQ%g+-JsWWPGj=oX=$YcbESmu4;zv;N|0PZ?HDJv^MW+p3RTNgkF`Io}jGmZ9c
z#VKsSE5PWXq`H9Wo<2QIzsb`(xdR)RAu<FKE5a4AXK5CYT)p)suaRqggfJ0~?N^GD
zC)Sc?B!E_LXJPCyxua*9-N!!hl!V~PQ10)0#WN?obr=8+|KI49fP&_>aXyvf7J)~q
zon%zU_Kj@KjDca@*jWbm!3m*FQ*neUR@{L;zl!ZAig`ZgwJ7Z7S$=bBhAP<Y{R$%B
zSsqfi=L9bsqV_cRt!d6yj6R~8o3fK-Wh3N7D+E1dB(q80bL<@byE0Q-0hG}LV%R)3
zG+9Q%CL%74!jQ&z^GWoReb`B~XVyt0L?olqefH$r%!PAu|1<seS5-x?k|uH-C@ScH
zRQA_}JL_A6&asmX>DpZC6ej7aVoqyOfnnEtzZMb}mdWLHF?wHV0;vpN?5QdSSG-AO
zHEk37p0R_fK{ORMji8(=k|+hT#M7_Y-iCeH-HBh_<Vl>zpfkrD7M3hssTDO-O*XKv
z`lN1L(I*c5$+sdURz9BxPKh>cXY{m4k%W{4+PP=~y>T7<u|3<3WwFC{DJfyB4*E4)
zI+K0_*j%&tEA7F;&=MN{xt}HBQJ%V%b>E_JBq0KmdymTV)PB5VOrLYPd1>OB8v{F1
zxf_D#<+VPv<!FroJO6oK9J(+_#VuUUr)-;;pWQjo9M!o&dKTL_0H@G4trTwthi_41
z!I_u#&q;2V*#I>^Y`|V8%?9@SaT1J7Oe(=`-%Ye4(vFqyto<nG(S=9JL!g&6NuDjS
zOpCm*df)TV^lEoZ-&LIN7fXasyL=Z0AOiE9%CKWLQbY8U`-q@aRBFv%r5ie~c_R*?
z3=U~l0MPrQAtgSGThf~IINDj4T<9qZakC$8W||^YKL1l%vv4<XPlSyC=zWm%oGq$M
zYo>tDRpyY@HRY7Ebm=d8Y8CMXqXhgt+rQ@%zv3X=_MB$&dlFg7=d}f>K9FT!;SU1<
zUFkpLjpKXdX$93TeMsHqn@wH)_Vb^zmmG0L;P|5{8&vPq5MorIj)yqym{X7uG;SM9
z$-XhzYW>w)g8}qDLl0t>=@=F8xvV3jdN4;29cLh>ajluHw9k)(5RQJYwE#dTpHIP7
z{oC?~B)0E*$;E0JyeJd13aL@*S1NCo-HZdJ9cj7<ZigQyHw0k=9c)RQY}OpZGrH<&
z36^aAdIf_|;GPSxbu*%bV??1mS^uTVU+>z!IK(N_Hv+)IX|vc_o7_4r!PM@pX@Y}+
zr}<?h!@|PPxz<IdNZ)UJY~HY@{#F7*SNRC6)q#X-&oSz`{JgSEdpv;0Y5VW`+3k&6
zerY~y{#@7F(4|<sw_LB%1^;|MJ;mk6%C0WY%QN}#^WIT{Qei`Lqseh|MZ?8I%v{N0
zvC5Z%^IoOk5N*6YJ`m3biC@FMJ-kQ0yQQ+_{nKK1&0?&VefuDNYR*G|g1V9z-at&^
zV9eK~b1flBTz1UGwN%g~(9cSWkG1;it5AMftB(GJ>oWOWz_6fz<LYnrt(lB<F6)AZ
zCL?87;bnXNPP&LN|CV>Q7)^}EG>JjR-|p`6o94XLkvB?J7d{@ak>%wRT!aJs<Vr6%
z<o}vZehf}0!<y98H8gEMEk<-QeNR~b!mXf?6G+z5+<W%@cLPLyjPqXh9|IB+Atvjp
zlaw3N);zDkk@qDPPU#=>FMQvtsI28?pYu1}RxOdG%njDy0*z{%!sU~Tdj0W6rU`4?
zcIu%c8cPQBZC}<^v!Q-%gHlwKVvw0B%`};YloZ7iL+8Q#V3s>amMP2+zxFL-*E+Zg
zfp4_9HZ-V`S1uPJvhFk6u-%XNKrBIPBh~E5+p8<F+n2HJ4c`aek5fu;lJ1aSMkr}k
z{_Y!YQBm2Bd-FZvr)#ddPee8+Ym@oZ$u_%`L9_Rw>8J2D^HI68q0@-+uSOhaL029#
z_1D_P#*OdnX#py^m`Odc!cr%{;(@^oj=#%cuif4lD-f8GID-ba5pMM<nNz2QudS*6
z^}QN$k}|JuwTkj_=rXW}&K{>@vw$PCeS>G>Ht>07a2WN^dm!YFz^{d;>MU_83zsd?
zaXsUPA8PkCvlazJ+bY6ay0=+uqI!-y6JJXol!a=Zmwxzwo!BgSFgsl86x79Dax>+O
z)v6{B3*HfQN$6sq>|I_f&Fe<#>T9!hG1=;v7_+&?r5F$Zt6${AnG>{>=zo6}*@FKc
zbNGvkwwx2v$r?*b=6>o2L@5O^H#}5}5-wwqvFlrTqZv=mghrR@+d_o^((>{f+Vr`)
zghFtz*uk++rq*`#){LS}<o9jMg5oC}tir4-p%uC$>#Ee-p`4s>g(;!mwRZHG_kUb=
zd;6BCsOYAx;seqp13$MwD3TB`v6xbht$9AYc}6TMF?MZ8k>#ffs~e_{`8vX~MK~eX
zxhcI_R60Ge%XPA71($!INdR;p1U2D~<a~AX{rNw)9?NJ#!bnJHsc^CE=MkMchs9#E
z`o`P({i*6F5J$h7RjpM{A6xCF{+(GmQjOd@01ruBofaQ)FvC306{PNTz1Dp9<kRg)
zuTo*sWu17M>)K;Yfp-P!EiYv`h;XB`Xi#R2{kL*#88cvbf01Z!^RAC5iIweTfu_=+
zz1_zX>AHPre@e<$SQr6CU_npcRLa+q*1?+3fBDmUV3?W=K!*%6E0Q4m)5E&UIK$n=
z<=@-e5>k7655X+y<CcP-M!t=FmmLETJoRFCk-53jjvPStF{&^!MCK|W+X(lm#L{%M
zjGuI+c^|R{8=06m!Ihe#j`e*@+WOZekX*--Wq!2}#peLz>b{0l_Wf?}?q<caAKl9g
zHH}gHQt#!`b=pSCus@r$yo2>UH8iarZ>jui=M%YMS3cd=H57RWguvBA$tM{iFXV*H
z$SCn9x)i=i)U=guk$xF6JS;Acl6+|vRLV$HU&gOr``IR~CC4|v^heF;S`x{!H}{l@
zG1yJcPiM}zf`1g4#J&gEd?4iyeVVsJG&<gsCuz4TYrw~x_0zqTftPga9e#L=%elU*
zPfz0Oj-#LTRDG`wO>x?XU+6EUYHVNw(rj6a1Xnj>H4ocr!wx>om>pvRboXkS3xvK{
z)~+N_sWQH;Cnbw(f(2H6`Zg~O0Cu~7<d&5iE~j;WyO&a*+0TvNsVmq}hd>tgmE_9z
zzg63U<KzzM+&ZR#NEQYLSwXDg!124^UYOtfksRD{(b*|DipBu!$TgbLMlDv;X!w|)
z=Km{LTUU1r|86~F;?HpLZ~*B4vf=rVxvzgGo8rl#eO~0iUxLs2{vIrelq_=tq(Dgj
z>q3Xz2Pvhz6G?`DxKLc@&VJ`a%8XyfU~TDzWPrQKI{_ED`F*G+)}1z^^Prg<3@M@D
zpd^~8@^Pywk_QP^pF9C~ng%7gGk-BiMZ*gA_wR@@ESIlAuOR2w+-&Sl(X<GK<s%Bw
z=YYGk{l*dA6ZPQ^-Jn}((ZpXHHizn)cimbBDV<&wdH1Z4(8Lvre^SzWvSnx`F0H9E
zCBb!)FzA9o$6c(Q+RZDvKU&+EVCTWG_Kl_?fP*Fun}}vO_3UCtG01&YiG!AA=a$R@
ZcqnL>%+oxAME_}}vb=`eR~d`Y{{;m58883<

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/66.png b/src/assets/all-letters/letter-detail/66.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6a4d68a47f0ce3e7abcc4ba37e70edc93f25c0c
GIT binary patch
literal 17127
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/67.png b/src/assets/all-letters/letter-detail/67.png
new file mode 100644
index 0000000000000000000000000000000000000000..7242093a461d289481d14b1fbec64105264684fc
GIT binary patch
literal 16533
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
PhXNF3)nv+_nuY!!lbWNz

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/68.png b/src/assets/all-letters/letter-detail/68.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5c507f7fd3d52e5030b77b991be348545e5fae1
GIT binary patch
literal 15651
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
I^)lpt0rE=Vpa1{>

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/69.png b/src/assets/all-letters/letter-detail/69.png
new file mode 100644
index 0000000000000000000000000000000000000000..eca51351a1e38af5bf445d5688270360c99c4671
GIT binary patch
literal 11688
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
C!`ll0

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/70.png b/src/assets/all-letters/letter-detail/70.png
new file mode 100644
index 0000000000000000000000000000000000000000..158a2eb72343e7ee7d4c8c1875c29e286c232aab
GIT binary patch
literal 12238
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
YUh$C{ixoRTy<xAZrmb3}{4nJI0uF#L3jhEB

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/71.png b/src/assets/all-letters/letter-detail/71.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce3ff08a557e8fef23b357137946c67771f82add
GIT binary patch
literal 17556
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
MYAKYxcpLct0GyZ_r2qf`

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/72.png b/src/assets/all-letters/letter-detail/72.png
new file mode 100644
index 0000000000000000000000000000000000000000..09ea9cb1cd9fdd9b8f7f87d388e2c2c1de2827f9
GIT binary patch
literal 14331
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
Jzh)Kme*nBtqdNcq

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/73.png b/src/assets/all-letters/letter-detail/73.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e28394489a8b8aa19b21995612ef5d023046c37
GIT binary patch
literal 11176
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/74.png b/src/assets/all-letters/letter-detail/74.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6aa84f98eee9d731b895287f1fffd7227c7950e
GIT binary patch
literal 11590
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
UMd@fw;+M@TiW&-q56xfv4}ug8p8x;=

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/75.png b/src/assets/all-letters/letter-detail/75.png
new file mode 100644
index 0000000000000000000000000000000000000000..bfae4a0a08bdfe3b5a196967fa7cf9f5f427f409
GIT binary patch
literal 18576
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
U60}|U`v3p{07*qoM6N<$f>nQ@&j0`b

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/76.png b/src/assets/all-letters/letter-detail/76.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb6b4384d523e70747ce80c8c5d496b4fcab576a
GIT binary patch
literal 12192
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/77.png b/src/assets/all-letters/letter-detail/77.png
new file mode 100644
index 0000000000000000000000000000000000000000..07d9ca4223bed3353472b1c92a57d98e2cf1e055
GIT binary patch
literal 20634
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/78.png b/src/assets/all-letters/letter-detail/78.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ebc71b6ac15ea43949fff10db31147c0ef13d43
GIT binary patch
literal 17929
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
B;NbuO

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/79.png b/src/assets/all-letters/letter-detail/79.png
new file mode 100644
index 0000000000000000000000000000000000000000..5738ac9761c1ee32412f5000e27212f9291af2cc
GIT binary patch
literal 18273
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
FV1k{%EKvXe

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/80.png b/src/assets/all-letters/letter-detail/80.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d79dd9d284fb5f642294d90cc6c5b57b9c76419
GIT binary patch
literal 15315
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
Q0q{p%S?5vJLz{^I0nYZuUH||9

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/81.png b/src/assets/all-letters/letter-detail/81.png
new file mode 100644
index 0000000000000000000000000000000000000000..9885481e678f7d5a9c9e87c06f9275d930c1b82f
GIT binary patch
literal 18100
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/82.png b/src/assets/all-letters/letter-detail/82.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a3dc5100b69a97cfd3205cf53e6c9eafe9ef1a6
GIT binary patch
literal 16898
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/83.png b/src/assets/all-letters/letter-detail/83.png
new file mode 100644
index 0000000000000000000000000000000000000000..967d5a9da74d9ad3830f436cc2d6510f1c5f0f09
GIT binary patch
literal 18630
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
M07*qoM6N<$f(?4)qyPW_

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/84.png b/src/assets/all-letters/letter-detail/84.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab1eeba407442188338bf51a246a23682152b632
GIT binary patch
literal 12128
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/85.png b/src/assets/all-letters/letter-detail/85.png
new file mode 100644
index 0000000000000000000000000000000000000000..b08582c09582bb55256793c2b041bc7d6f4ce989
GIT binary patch
literal 17095
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
M6D^feC5zzy11DjAe*gdg

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/86.png b/src/assets/all-letters/letter-detail/86.png
new file mode 100644
index 0000000000000000000000000000000000000000..968f76245883a12d12504175629458f2e53f2497
GIT binary patch
literal 16492
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
KviZ_40{=fL&KJS}

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/87.png b/src/assets/all-letters/letter-detail/87.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5a309d9cdfad6590b5fd0a960f13d77ab513cc6
GIT binary patch
literal 18597
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
Y08WAh0p`pJEdT%j07*qoM6N<$f_{a?>;M1&

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/88.png b/src/assets/all-letters/letter-detail/88.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1a9b85ed26553b7dfa54d97587bdcec58362187
GIT binary patch
literal 17235
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
E3)8M0Bme*a

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/89.png b/src/assets/all-letters/letter-detail/89.png
new file mode 100644
index 0000000000000000000000000000000000000000..99d04ba01021301bfdf827950b31141a8c24183f
GIT binary patch
literal 15065
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/90.png b/src/assets/all-letters/letter-detail/90.png
new file mode 100644
index 0000000000000000000000000000000000000000..282f5afd846710e052a04e977a813aca99722272
GIT binary patch
literal 13852
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/97.png b/src/assets/all-letters/letter-detail/97.png
new file mode 100644
index 0000000000000000000000000000000000000000..d58505f2a7df10cca037a6eaaa7581ce2bc13b0b
GIT binary patch
literal 18849
zcmd42cQ~AF*DpMgA|fIpxN%4Cj9y|e2%~o*7)+GWTNr(m6hbBlq6g85-ea^xl<2*V
z5`xi19o@d%&-=XJcO3iO`}>Z)_a8gQ5ymywS=U;>wa&H9U$~BzGT9xvJ0K8<OjSiu
z4+Of_1pM#3eG7PU^2PK6@QW4&GeYUR+Mv8G+>s!8YgbDold7|YEm99@VeR{(6DbV>
zUH7p!FhUt=YCx=9o%t=U-r@Igb^}_2K+>{4ZWdOKNEDML($?NZhGo0HnT5&TT88DB
zn5Lknn*!3#Ud7KHsqd#{VCCm%C27qf3uTh_fdCyiBT*JiKF&@q9uOZHmVf$%0H3cO
z3$QT#^9ssQhUH(AGSbvxQgC%gGKukvgRO)_9y3Wu@(YPcJ{A_`V-gk=5*HAZ6c7>x
z3kpF5B_V=BO#ktZ1sKiU+6JPhsPrFW0e{J`*r8Bv5CH*iZ*P8Y5q?*9TLB?SNl5`g
zVF6)bFz^Q0!`B66;RAN@VEuOwibxMDcY8OKy{ik;RgV^yuAV3v7GS3TT7t8irsjWk
z?Beks8wG5cfRBZnfDpf+fV1<}y8e0F1Eq)jf2Q$YzU^V)>xLB2LwdM+x?2JAuwngo
zV_@(8=L2262+Rhe?QRbU#llI^)ymTu>4H*KlwkqB;kUN8h6o`Att^lt5@1OoF(g=2
z%*qNZDQ+bQmXs8?7M2vV77-J({C7Y9ReSlzib`S%qK_rSg~f%0V3LwBF;OK&MF|C%
z5KLZFQt;nxRb4z#7A{uEe~)bsjQv<#N$9bHpy2<sEkwZ`X@PQeH*j@z`nMM7*tw!y
zJ?vcFm=qMQq%Oh4rD<Vh?{f8!`$|y%TDKz7-QEjnt>o_N%=FJrL+t;HS^WRofq%8P
z{$Jfe0bo)BSL*WrQlEc60(A1~<9`|h@W+3e6Ve5+A$P!762cf9Kp<GNs-nDs&(ubv
zubUY@?w9u#u3UQKh6-p}HF^rx6$1{BVfSpP;!WMr=tcEveBnrCh{}sG;4z!286GWB
z!-~8Z&vqv4pGBi0YS&f^l2i{gp4MY2aTQkT@zutps^K471AaW&IK4g_xR<&IdKa&<
z@ao1N2DhN*T@kr3(0Bju+ur?z)V5f<`EKpa$?b&m*GR;@u#e>Lwl}>QT@GMFEP+#$
z0-Koh`yf!h<TPEXx8r`1zv~#~3s<C`^ktFCqCsoyuz9Q0!2ylHr{ak1YLiTV^xSOB
z$Fzgipc=m2_pxvqSqKP}ViNU(A{rmC6G$Dm(%*E^RkxR7jt=_cSYKaZe90ItaM>zD
z`}e|I5Qu3+cR`2{6qKaqd$|)8<oCiyKYUwV*-OTZ=M=Fkef)k~{XLEh1R7UdR2{6F
zud{1CZI>{|?ze<e&uv4?_dNKqr(XniAJ<ZYKtw95RD>YJ>2QL;<#UDbZ346oPtmM%
zAsev6I4@2F`qs6y*f`(Ddig^lC~!U^8R&tru2~G<e^HJ<MWA%e-@u7MAaADpif!LH
zHNREaqXdD}#3IR^^V!&XD1yJcwv|xpRu2L_Ke)RRp~SM==6bO(L~wk94mu*=($pZg
zzEEtvO#dnc0+of{IvekmAwwMhxZHPXa#%P$&-32wqB^@|YeK)LCjx;Sx1qiww1kWA
z&FJ}|98VfxHPw3`5c`2&lSA;mn{aEw_tTt8+dPz)Yr;Lk7gr5+;im$fSV(yL!ZZpL
zOqXrIr{ZEE?>_09l%5h-{vAp?IQ|V;=d<=kBPyyS_dK*Q@p3)rWMRo_oug?kz!ERg
zv>h;~TDlt9<k=q^KzI~G%-}!OD8u&%=Xbn%4K(rQz1e1h2WM25RB6+%Sq92E!nQ%6
zNE$xqLL1R^c9x8B6$)Rv^qTYB^=h7pkJR!#t4vS$p$tXpGJrsDh$Ai{oAxPvmz3uc
z3d*CU!qeQN!_I!haWodGps82G2|sXg<{e`UzRP=;M$p53Teb%|FG)diiG!PiwSgB_
zz89yL^6jCwT;PFeN6k$!KLyH;sQdTLzou^XDt^&|o~JakYX@#^OU=XTa3GLdgnI#7
z^U?R9c*e_7gbK9YP3kaZ$MRxWzW<CUyuU(XZ+B{wtzw$+lj8V{CQvyU2l)yJ&P_j;
zvwiV&?pQ?fxLv)LwRzt936z2j=P~(5eSKee_?WTId)uV5_I?EC;@;)vC0Fy#+!-O}
zOCdfIP#>`FGwJ=-%Atu77F%rws%BG@&OC|uF89UC^p*2kfd&Z^EbGoA2m7O3|2=}?
zZl2?Am+U2?iJJi3z2W@;1Tt(r3?N?G`jP%Yzax-)^0-G0S}i33xAQA@T~n?FLwkSi
z2V5eG7qvInX1FhB7%v<rhZ<As0iCRc={wd-A59FqpB$~nBqf=5<^?W<n-#k@`ytmx
zdINuG_8(ExYo(j3ZudSq-HH!78I>*1^Z<c^rC^x(=F{rZpK%`B#FuRS^qPLF*CiaC
z0)|QMK#&&fL&GZMfb_pPWNPWw=35c{o<`oQCy|(58}aqi<GHN6(Q`5)A~Q3qQCsDn
z0BHWxaLyR_ZC2&Q)bT)uqn`fG^*_J;r-F{wmO8)7Q6P|EPG!D+$&JTw#4+6?BcMUA
zPDj4uh~&#xP`se0@#nB@@AQddNdgJt-bt@rC(&dIU@T*HE$RUZCR&gD!7F+D(oI=Q
z5zkI@`)45wdrO7#&6(7Bj{TazVh-d|v$jZj$UYtNE}RZUn`zhEZSOE4)Nvo|l>z$?
zK2V&=x_4(;#@BSlOMfS>>muRR#rG-ySaEA$klB3y5qbIJGF(acHhG}4cLKiC_7$2U
zwc;~b-Zc>D%S(ug*~1&2DUdDJg>IYkpvBV%c7_8YL4;<TF2G(5$UHw_xo)qCdrm92
zayFgCG9ly~521&h+8(3VK%c+lV@6cJZxCMo)<7cy(R1dAGX;6*GZBZsSV%#j(Wn#4
zm%OASFV?V*3%shUlT7I=zG;6$cezW%L7<TvYiyqS_v1}%Gg3G&Dg%SHr@ZGfrd9_Q
zG`4frsuLo7{ATlY?bvwC*;=##J>>bF&<)|4natt}>}&)tw)OYnN(;jwsxzp=*1@IM
z5_kw<8OH%7jQeu@Wc>5ZO8c2)NkrKAfOX3rQBCnRKq)$2-3e%0U=)4f;zAju8yslU
z-kEJ0x2-wzP!X+Of<Ye_$egBj*S|vV06<YPL`7(Ibc$E8Ema%>tB`{}8@^c?vocHY
z3>fn?A##x_;rKqY=v}bK5;!UQm*}UBiLv^NXQME0j)q*r8lh_-hsP`<o+jgtX0_v#
zp85k;k3G$^7uA_|HlaS3CkT~@U6WdazCR$)=fj&TV~+4zu@kuRE6A6P?w5(2OV{Ne
zz#;x#CHNc<ni7Qu?5)6eAdq<S*}hK~EGST#d8t#VJTl2q!%aDkT&b0CNPLnxgB#z>
zWR?L1Yck2zMy~rcG2HO_=#j>de3LF^wp?pr_|IQ}$~!R}7kAX)@BBSV_u`rz<mYyg
zt48TL)sS!qid2>x@L{Tf*pkv0E$TYT1$(Bgc;b_p&g#CQ9qDk<TH=y##Gqg@mZr9Y
z0I>R_S5jTt%F_4+IYd>7i?hIc>fG2y5>T1s5`N6v3_q@czV;}m4|B9Y{N+|u`+}o4
ztctZ8lGg-?64I?bek}H-<K7yVr@5xV8+euS3kc}jGWDD#uG2xEegTf>2?Bv`Z~Gwv
zc2+;$^m8Qwy-`48XP^1zI*zs}R}q8cMrcaHqU^{)Or{3DGo^v8$|To8a$i}RcuG&j
zUbF+~!OXH@i+;eoa2<4;D*A&mdSv?==ncl9^wbFWvW3dcodh@p>;N{v1O+~{0uO_a
zfDiW>fgeC4kQ^HL5JnFC`0ro(@1Oi%*z9Ub{|jsTKhdmgHS7fm$mP|xdY!>XJt2Xm
zO#hUARb~l+<DO58!Xhy#De+Id%<qtT=q2{6%r^Gg+RSta>-8Wvn^$pq%y@I(Q<D?V
zuC`aFLrB7In?S;Jp;OQ&n(#0@Y@=8vPRZ&)cpE#N_5|;P;o2ABd28(PBhR{KqsHr=
zefi#KhR#`I(@pm(Rq`)n#I(m^5CUtn?VIO0vc!NS-%NUHDYA3swmeay&gHbWaL}j_
zq0~ZE#-w|<q@=hvr=b`b6E-$R#5xNeVzk`areFCZ*q;ebu67H=WjAm=rb@db#>Md?
zEH=*HS2xaZgw2KpMTFsafU(q2<C}+Wne((+E12l5Qmf{|XK*&L&tZ`VF?M$G*ky55
zvFfP~%g%QXpJKNzkC*|KE31P&i?@V2MklNGb@C-7#UFPHb-p)?lO!a2Ga}wC8U*^%
z%ou;fvp^_QU`|aiH{NKIfo*LBl6$)KecEYy?U4)2RF{VKOHaIF?Y?+?QRRxj<OB=Z
zrrFTI*wbh$D}DAS2F4It4*F!iWP|btR74BcCvL15W~r&y@{0MTr2ic^86B9k)@<iW
zlWQg_@tdW7QkApL__T593DUn}BeOP6$=T6y3pStZ*FAoI&O@<&fXkzkT*G~({H(@5
ze<Q)@p~aU1*cx0a$9~<*eq&-eaK`4z$WNgXTn@HzEmQTJ4ltqTuYYR6@`Mx9{}TG%
zd)F*FX+E&?D?&gcA{pdS8Rt=N3AM$gr7&lTF`E;f4LX}fSn>{9O!rYFSR0K`Z@n3J
z8d4XluFo$U4tFaQ{rYUFxq3ppz$JC<kcWbq2^ySivajwXp5PIUo1XZfL2fQQsY!m&
zx#5=H6LAl+N`^bkNn0P)cvu@bxG*HS7;`soT5RaHZb&{Z6MImwJ6x<wg$PJd3X$UD
z89_K^CpzVSV*Vm`?LMO%)j)_TGS?OrdyeNVZQ2uFn(d1qn>w^%u75rmuTC5H=jGji
z=0%p-nA8CN9*v0~EqX)|O0Ret+rcwhq41o7!e>KfIA=^%Q_k<HL+%GR0D<4LQ_4{S
z(@km~rpAVM+ir+SL7p2YVtWfJUgI!#V9Oh49$wZ1FrU2X!c`N+`~~&G8@2n1w>|w0
zE^$NgTmUc`!B8oEHNvIl!h;cMQrwi!wCWLva*f`uOtL~6UHm7I$01Y3xM`NW49!S!
ze>)gw`tYkla_wdrc+e4-3EqrnQee9sM*d6dO+v5HlXosw_tK&KthTc?Dz0AEpWR)Q
zQMFnuJ-C1YJGYZHByF)2b0?~jq%_Ais%n2L&XC}+HEWN{GI^4bLj{PIsqD`(`)`(p
zo$fq7EWOlaiT~w$_9DAS3<ku7;XPn<+0q8fRyZ#{yUDXV^M-c{2wo#a;(|lMvy)Z7
zwCw>s{JLeQ`pU*45&>}@oEas|ek>>5HulQxy6^BOFoJwieOup5zfjcc@bU3x^r4xz
zIxg~jXv2D<!SgNVKHRDMAz;&dnRr$GbNu33y=&LE@Nu3Ndisyk(|2iX6%=2yV~E69
z#uu|J2)~9#CV8Ff@2TLMPIH{`FV$@FF+^734{7e+XM95=(~&~E7Mnqcf~+>W*!ucK
zcEm5=iXc*lIc^mTG?vDm(>T?e)XL$!8BwM6o2ELo@?sXZKs)kbEN?1$v?GnI$1e|g
zhl0+Kw9Q9NJ=#%kO9#-EYGp=c_aJn2QJ(^olV@>TEY0=S-Lt3J9?cjc??)fo4~q>|
zwBP<Ehb}7^bm}R1i4peMO&Idtr{SOS?>52M58ZI;d;2$7m9`l@mHaBo%x7HjD{}69
z%QL-d8^WY%hSLlNc2N9L@&i}h*`0*!eweQnUd!-A?aA%CD+t`J-uL9V_?kOq9+%gL
zJb%fnhYgO|n>-{BK6<V%eXt%s{tZ{!wIq>Vdn11Jd-upf$iw0vBe!)ZEvihBi#;zU
z{RkGT5T6N>KcC~2Kis?njKpX1PH;5nd*3eq`7Wn0YArDi>=v(lBmewKwNy__&sPmH
z(+@kCJdHpzVulL$+YunzxEnyThf{)ni_;`^yUV0Q-WxPtO$y;eXf~pro-Uu|s)!Fm
z8agxg=DfC9Yi@oq{+xVGjaixrn(tdxok*R5Kp#l1N?pX{)H>!eek*49Xz(g-WjlcL
z+uI!cMF$^|hWEill`nv$)o-`E_Xm(P^NrR+^gej8?&a&ZTlB!6IhyQlJeHbvZG2M8
z7&z3$%oR-BN-P#4E;^=nQ}cP<(OMMpXhgR{e7@#pzGv|9G3`#KP|DrG24~KN>%fau
zI#i@yq2BXx_{CSTX-%aEaFF+_G!k1|4nE3{-&=x@KHCh8StWmPyI5j0&d%G`{{kv}
zNnMjSR2+AMX8HWu!fO+`^wzi9j2=U$8K!~1ZG~SP^9{Xz$~rk<jU+n&KN>j%-kJI^
z`zw5WaRU?NI8@ows~1gry)d*(E33)qOJrIaFbLLeIaTZF<GsD+=<d?Xkz9}KMLcPo
z(MCNS*p3BNf_juAQ5g9b&c^StrQODHv-JI}GDfW1Ft%hBRq3a$t~1JCxd5r3mv3rv
zHj4BIA^7W5wEf+Pif&F7!!ToF<?QCq`VBdmphiJe((-TH(t?hO4GZ%;4MC2aP5C6+
zl%}F<*KhB8{9q3reS%*q*zapPlE8%XJ^RX4RzqsUXEUUpo5G%~;w}%``F@h|$XKbr
z*)ck8Y*mxYbRqK_L=pXh62UXWGWb`{U0@!mf4bQn6}(mxF4I$2S5Hrbf~%KJxD{gb
zZULs?GPVcC>aW_<3xl<k{mKFt)TbsH9>IZ*u|gu#ws>EB;LhdGiQ`z5^-E9ocn#y$
z4)Lp*)1bb*ihPLuv*sa;UjC}7M{Fb^-JdBV^Bco)pAq=ps*3euz~8m&_*o#A!ge$A
zhy1lM&z&JUD9tAOFxab|7?@b^z-G^&2PYq(L8nyoM0d(&?JP0WC3(pvMP{_1h1X*8
z_*8pg40RsiQGl+E@@f~+D093@@=;6#*vXS<;dM2u2$b!-0};dPdTz>b+6On}lzYn3
zq}ZieTHxNU>`n^IgLMCI?N}pGj6QLvu=(vTJWyVwU6}{eg6BH$rE`@?_fZZ3JVX!i
z?8y}X&R?8ZJ874tyC>AZ27D2bfG`DgAmRfF$&YA%y^<Rp)X<7Jta84Z+taq1$J)){
z^A7Wva9)(nOFE;knL?@~5>uEGFtD_zgM57eN`o_yfF;sP-OxF(6Nvt3fUS-hq~$EX
zX?U~;2p6uZjbAmBImVL31K8oA>w;%AuITH_K&kg(l$;%oluN1+)Gx;CH!@e<%YT`}
zxT*HM$bTs<s81?}8ek`tD6au)pc2K>OYYU|H=kE%9Hv`gM3}H-H0q<OnI*bwCQ~_0
zo){SCnEnuq^JK2EjZbl|OCC*Ws)|hLH(9SWwNY}f9F9p%LN)gp4F~IG=tQ$jRvijv
zh#WZ;igXFz3L`h<o=Tx>Sji^5yPNLYVe;{N@!-B6m6-xOLDb7B7Vy18Bcs1(4-?NG
z9N6<#MYb<c9~@)EKG1C*W1`KO@vRcFypxmMN$G!klu{TcrhRCj%m{Gm3h05&o&+Y|
z%pcb+&5IYA=6ZFdi<Z>WL{jLJ#Jf$WSZD7R@C60C9!JgcR_ajGsf+!bXRW9!j`_ej
zm3r0Qph6VF`5*$@|EC0oW{f;Bu%Vl@f0Gw&4i&L=#b|}`d<*Z+;~{6wi-L>(rB?Nk
zIle5vfBBE@58^QLt%rq^^=PGA+70~r0eJ9(m-JaJj&q(mkZnIX$l)}rv(%RR5Y9dt
zA^QCCXHEzXqo^6lC~7+EZgzVMM{S3##AUiV)6*F4*uS9}yjHaZf#uHw;N|@u{v6+a
z3%PPGQLNtm#3<|C5;cO8JK|5x%%0HXiz9BrA%&{<LCK7c!K3f`<G&Pf_NtF8_@`<_
zM&9(z7uMFIoUZ}BC<1Z&?*y&xE9YErvBy?59jvHe0`Zz-m14Na-iPkLf%*C6)-tRZ
z+6}@MEh1Y=NB`JIY2^w7N+}h2s8l+Imf37eN>Bftj1I#tdjWpsM+JVTUv2w!l=}K%
z<GKWC-wdNORjr^H!&*jj@`PSe*T6=J%oYB6%khgiw$z_&r3g!Dz$?i0=Y}jOW}ET?
ze`Gd>)@b2&O$FYCd<qwk5@F6k^EY4&S(X^&rg-2@8c4t=)IQSq*zHv#fnIh_`ih<s
zCYgt<R=WtTKJq!-?mT=OY1F>#mz9*7Jdl}lH~E;>aNkM5ezL;8j{w-(W)?2lie@%p
zuyR{a_go=6*(3-5vV&(xYCl`GjLuHsT3p(p7C51W7dm4yCISuZ2h3k8>`+Zu3c|!{
z8wpskeg;(bL<JS?P}b9Xj=`n)wLdEkYe<BDn4bPf`ODM}Gv26@E&MjB;I13-z%FR|
z2}A&pzV-fDy|9FM>rG=tnu$X*Vrzm`di1P<@)wRq*ukWsEpt6n8(O?dM!Gswz(EYn
zZ4w9g51g5HwafOG*jZIx#6UigQ%E(WF*WKUd306G^U&~E{CKR&#NXH9`uf0Zyb7w^
zN?qo67_dfXCI33#Bvi|=uRo7mzRq@L{njazzn&prOpW?Ws-o`XT9IhkJ<q5<A9Q)B
zK<{G~IkcO<!HH~IbU3dqTYr&^!thcxSHNioYXuONi0QHwM-++G!D2sD<(S%SM_>+l
zeuuTpG~T+;IL(0#)*?5r*$wGA`rzyz%0M%jQ}35e$Y3?hFCldT|4LB9WWCGXcrQ>y
z;4mNOD##V*HRr6md7rW9FYp@%Af~G3>h7o9<mQ1y>|(e5N0K$i@3f)&9FC}~d}OjI
z(rp(Cy%!wIi?w?H+>k@x|4W7wK*+M}_|?LMl}_%s*6{ePnW2E~tf89qZzt6(q%2S{
zGBMS(Xr9!b`!!9pPsQw=amUqJKxN5ZMbxY|Kgat+{ybD%1H`^pLX5;UMokD#nmnO|
zSLJ+)PkZC3j*S^i`l9je^GD#MQ1mc$qgaGc<(6uv&8JXS=bsQ>TJ7!Hi@dw`e9F>m
zR*mjSz0vC9%(nT;XwQx4t4Qh^Hf&8CZ#`$+sio~E|92+}gW7295AEV`WXnL31PBfa
z-vXPH`*Xie+iBDHT!0y40eRi|*{9Jt@(qStv)<RqA&aNZ_pY-8Li1<6F#qJXr2d|-
z{$liNlITH2HNYc@zl|!^0zfQtg;_+1Z}>G$@pG9Tiq>koesDIp(LdX{Be1}6HNS4V
zG_m_>vcCQgTjN@jZ;?kpRQnuN@8tEhKYTl;*Nb&}&&kgZ*H_OrGs;^|_i3e=Hr1r-
zLwY)iYinN4-2zC;#|-1t<av_dBc}VL!@q?mz0GYxPg>x&0|Fk-E9R+!{c4`gO&Q1T
z&7f9_l+eke#&-&iM3dUyjhnUR#nL8TAs|u4V9Qx+*}?LNb6=U)Q8R;?VoHrmt>uAY
zfP!XVl)5eYrc4x>2e$%?J?_(#-aTNBOrj!gz*(tA(sP|}!%k0K!9M|W<b{KmD(NqZ
zkv^k@xBQ)<oT(cQ*|C2`s!w~hs*1{3;edk*;9OYIyE?Fvk>g#ei5R$us(wdZ>Zo2P
zXp8b2?0U>1gU^x_V}jm(W8>lQHa;n%yF#w2maB=wesvNI1l{cBS>Q6!b;CU2hZRX~
z<A3V7w54h${)P%euI<PV<jZ5mJn3G$q=Y=eEjz8F7I6C97WsqL;g(+WK#WuO*X%th
zo`xK~TTxeTnd!C(R!{^5vk5&-tl*EElIdM`dQoa^rQaKve)1txgtEHUA(0hIWgg)8
zc18k#wC+sYC#;VH;Kd}>#Pcv)RSX)HlJrxxV=nQZw{dRIQ@eDG5=plWZqdx!*Tx&@
z*H`mh2XuhXunIcl8nO-<<JgzocVRAeoMc%A%ZTHO4Qu<lrn2<g08x_eWjJ$`*!r0`
z#HdNAv&H{n6b0OQ+O%noL|(k`L(;kd1UUfYTO09!2OK*sH#AmrDu1C^cl?K6PYb<c
z@Y>m1iTet7zqd+Q;XaWLTV;TQn;5_*+TMq1S(qbHnI^+Qu)R#w)8jaW>8xRl&tX}n
z82TTm?#|SVs5UaA*DnOgXP4B?sQm@R3XW0=12WkL?G(LlYo1Q(wbqKhje38j(tOFc
zN^h>8WWLWBns0v5E$+`wpX_+z4^B|?x~wuYPQ;8Kq^*i`#*PCL5!^xMI(MC%wW{PR
zPw{1t+F2>ridK2n-4rt(o-5RXkH4iVoF{eUeyxSfcQpFcHSlxM6Tmsg{r4)EbbNa#
zTleiu^48iM_!_)crK(-z24>Q?v+gv{7Ht8R*BxZ1Psu4Mh$y&<Ykj+NUX5<sZ!*Bv
z)fd#^9r20^*ku}B8Qd^&yx^Ravq~}9t(aA6+%5o7Wj!r*&xe2%OnH)vg)${;)n*(=
z?Z}B8eZ(IFv_(3$gskAeqD_s~PKzvzJYJ#yEl)W3SyKD20iqR0+^6s<=-jY~%;s>x
zpm`!C93^E^`}hE6c@<xZTMpO(25+f9{$n;*BSp_qWDR8-b$}khmL*fC$EIpobA>j1
z{0`?q4$wg#T*cMy6t8o?!`&6Vp!?%l6}^)Vlb`&|4b}%0gwhL9PA>>0rgu*tXF_N)
zI9plE0Z5*{BSSOPO05}rd#}ZJlh};@(YOR;RSYg;RGbC>bTW_`0I4owt|EZ9TAz)t
zurxt9q4B)HmXhwH1w_1_Qs=fm!A&3iphyodEjP~GvF;6O=4sm4$QGj_-#j0tYchD9
zJuQ=U1+09S-nrq6Pg-b;wBI#vT;g()aqOcb%b9PdXwuXA9a_yP5Rdz9JyY}<4fT4R
z53ge63Q}7e^h8b9uh%Cso1hAcitD86ZR?X7J~VlD)3^G^>ilacYVrWRpelbMUgM?}
zGm+_&Mpfi^o(8)o)`Yatr!5L~ji-ZpH=}Ml7u(JQZk<P;XOV|CmA2Mxd9}ZQ!h9%P
z8#6BPWU*}jS0>r*Gk2d371#oax>Nb`NY7Q=Rr`cSL*{p-q)X0|mD0C4t?NV%uz~94
zV26Z9ROuXF-$)7-2uE_&F~>v$pd>a(>#|o_At>g8SFjK;t!3P8V<Q2-iEI^bIW}*%
z;at0}A=$d1KW}enEBX?^=I_OsA(rwLmBV9M`XWRb!u^_<aWP#MlizTglh2v(k;$YN
z{=p=k+zMumV)>EGP+;GAQI7htETU9tt?_rJj(;rI)xoO9L?BO5e$c|-*}KdP%Gqse
zaiQ0X#pZPWzRzd?N4Hrb9SCQ4U)v_IG#LcI(Da{go3MH{21(LX(<q$%%8d4{$e7%s
zho=HcpA=SVr%DkL;%gFThB@Myk+q~}${KE`0QVT5Bbi4$jx1|>3&haYC}1a%0F<Ri
zRAyLVU_O3I*+aP7A?w&t<DW={xldCMV(5~2#L!{nR~nXDpOD@^v9Nk-jdJjC00)kZ
zE7`ekoHoUYtniNH+{NhAR^14Bp%{GhE8cDsh_N-ff3R>gDt2YwO6`1hO5y)~D+9J+
z!H*Q&5##Hdw@M-c#PV>?H0PF+MOv7vE_%nhYY`7~Xs&No+NjgWISwAP4t+3_=0)gP
z{?j(O4CLy%KjS_@UiT-{p9TU_ywks2$1d?rTEe?|cPoQkO2ocxJ;Ur{QJZNc+cYm-
zmNIYzy?uYj*u#oO@(ly#@3kWNY9;dOKtt<Z;%NoUyV6AR(jx;ellISzPyfNlZj3-7
zZK^Rh4K1{gBFzS6?)Z$l*m>t^AAtu5MyDUla>-Z>4ZGh`13cIF3cG9_{zb_-5#alG
z27Xh7^08WoI!BW)x6Kc;cbOz$RZi&Di}Gb{BI(|wc4_ams1R%mEVndWj5T8NcS^t~
z-zr4oGEDEhP|AC!?RaFG-9+Ia09ZkF+q0jO@w5gt5Kn)7Jl6TmO#?=wqV-6Zr*9uG
zVA?ImK2Nn%_%g`;1a^9CrNx*h|LEt+2u#1W3&lKhdx3Y^JwDN(r&r`{e<tc52l$~)
zzdmq+mT_TNr0J*SHUC~t)s?^7oZ5vU)okol@KH?CSCdz-u7Zqj`OJ>E)K5E;JPrjr
zV<koH>a?P?s(8++#|0sEI?DdyZ%dh-!&QL{S3GQ;0ECiZN1q5q-Oc>D)#hEFX;Y`l
z*`=iHaibP6MuP_jasOd_-&vrXGMj7thPKGU;aP{$4!ZtmE}A=I4q6C{w64#(=E5@?
zI}iXTzZ0#o5UanJLyu?Uor8PidRK}>^X_>^J*7;K6VCpZ9~-EY$!v6FM!@_yn&{FS
z()z(;e?m^t;tr`^L*kLQfkg=J7*_=!iBD)&8hRv;Sca=wL>?`4w$VW$H9#!+jRL_v
zVkYZy|8NvtmFGd=k%8EP%iG8g0649Yyaq&cZTM{E^u8R=k-{o4M#<4H(SA}GV#_We
zWk##~P;UpuqU)${Xs@M72Ba`<W5eR#amX5dOeZOA?<eqOd334KIz?I<(Xi4i+0(w}
zsMTq>7e@XH(;ov5I}#uJ@$Q{A{*UH_b?5-U(#}`RVKRG?%hG$mzP{yBBg(mskGp6Q
z`5hE(u`vz~(FWKg5dbaj|Lw{h!uUSo16O86<?;eE1GLaUjTYE_hX5}YAlp6_mlj@H
zv-FGt@l}~3>1ct37dg<Q)lLDNLVi)Cd-BZJn8zaOOu4u7=YMMF<h89^xIE3(1fotE
z-EkGAt3=H_*=S|-?b?Ia`K3jNg_B_I;`*Lmtx1DW%RuH4+1ljZg5AP{&;=mtb&KZy
zgX<;6r9&;nru8#U)HWQ*lQs4vS}fnOhEE3tjFO~#dE|v6ME5#iBVDa|mH5Z3<y@|-
zPcgIl%>DNWohx;*!lOaVBNXY8Ohe&!O*%SW(*rY@B#UTkvzj*&RnOsl*T-4Z)*2mB
zAVdodFb$mzQWvIV&2Z6rq&*7fe(mBpb~5l>4y|KlH(y%4!m?1gCj+J&XpJ`Er5d16
zWW{U!jLQ<3!U>Y6SBDAI{k3DCuGI>}vxXc^*@{+E2ShveH;}Zk5PXRad?Do#?T44%
z=CSko9c)q}o&C-Y!jURBe~QaoZAz?1s^S6(3$(ym!=Wl~^IH{_QLz)d!!7(kL6)%F
z!qX)B`Y!TfgTCCX@P{%$r1`xID12?KPG)6)Z$G!=6?DG%)ZH`EDw+PyXF_#*Xk9ig
zTErDDdM6IjWXIQjl_C4u7$y)ukY@uNeQbY9&953-ekUoLS{PPL>1^`gkeOMw#&~r4
zr72nts?9^lod9TG0unn!Erxi@H%lx$R2qSSHCTA6R*T4wbN8iQn(XZfb;EWL2J->t
zAKul^PuuxVlfv3$t{MohogOBw0NkTtWUNq~NY5B^QHzMjG@pfQm_i?&G<|A*@TcHt
zy5EVf{A1!xpxsS7nU7FO)+TZm@T1*iT6%ZgIgO`HAsZVXO#=vIK$_OWur?2mcAH_b
z4hO5oGRoFo4Mu_Z(zmGWHBD?V^~%g^m)@M9q8{s5C3k+NF8cw<g?f~DXN3vSMJJy6
zjxLjayvj&WWzB3-MrhV7b+YKmr^smo8SA7BUXILzC;c>HEmD_5myRK8m07Q+-_wJi
zMCW_b4;8RzPy=}oUK&I|RyJMrb*1Yh{Fs%=*&dx{AitGx+&Sop*)PGWY)=bZ81gso
zH1yaBci;N!9h{8k+#rE2+#>?ePPI1RCPH!g0{?Cnex8_5BdT*E#2Z|0UF?YGvGptM
zPQqWB@Hgy!qTITf?M;e0HHLSsUhnd=o{hgFc}iPG8^%T(^1%JA1g*)p5_l?!^I><*
zpjeUHSr2Zg$}<m0LvcUy-!hIRz8<l`6V4}F;^Z26*NB+*Ysk^No9j<ax@^Zy(H>c^
zg$KR0DuyW!gC{BiN`ZV?)_bCz@1ghRtw^Nsg?IPgPY#3mB0y^ifV9d(v})g^)O(kv
z8JXP>l0m^vqMDs<uJJVY9NnjZK5xw<=K!2Ow<JjkOkTmorQL?XA#?DTs<$gg=;k#$
z0w)xC-7PkvclvfKF+ElBYrR!=x*_p`j1No6d>L^2-!yZvq^06U)(v~Q+R0e2Y27=G
zN*)kByN$DYj?pG7fv$-VLa{8@jUcW;k-_8D7o5$Km{vnP>8W8y5^eq3R;Pdb)56jn
z^*pxpq_|vXDYnrO4o$fC#OwRY*Mal3Lo41o!BiSQe25g5YJ=59s`-A`#og+wYjXwC
z6+<<9!C*9RT)q;S$g|R)KPSDd|ICaR6LK%GiFkXfoRzWP`@h(M9APZVb~{!17yqjf
zXU*Q_QTb-N)q*qBx^F?G-etr5a7T6kLEe6PsL`+GW-IYJ;|}|b?5~rtJ}QA_3;C?_
z!tF*2*Qe%<<kB2K;YsaFx$g@sY`P{qp~A8|C&qtO4)==PB44_CY2s*USa^-4aj=rp
zy5jP0F+cBMuQ6RA`(<a~++9TNnKKc;`lNkPQpRU+D+2oQJpw(q_E`4sko6xJ4ylMw
zQ2x!WdCtiX9BT^bGK#^Vubx0Kd?Q7pc1qklk<)+9G*HAvSDJZG|F^L3Qc;!Ej+ir!
zJK_<1=D@MkDZswvb-h=}bc1t*{d(nbfzUdUNWei1hJ)Y4pj=SKeALS><yu6G!4tZq
z>dgrO_~9(Q(Gwo&Mp?RE&9DBFfvW+8>b{@WbH4s^gM7FYq-$S<xtOHaBk4t!UIw7%
z?Jjbk(Mb_CSmL@_#yO!P%AX@l!Y}cJGDuX|D3LC%9Fv!w(Wp;1g`KX(St{sOpZ4lK
z%ou!iM{6m;b1<Ag7dsJiuUYM=DK&0w<c=m(O<Y`cug0u<R<^i%gif<Dil<SCW=8WM
zwXzhMmH#dT9!NG5pXQ!kIGAg5!U6@9@1a>)ELkrGkLDJZN|3MRPpA?2?RoG(Tg+(g
zr%KfWu%l?+>S4&nlclrB<OVT$_ME|~kZ0@8-M$?^(m&>w%yt<ccn+EgB~-s9pK1EL
z88!7F9;kJ$CP>mm6#g-EkD@kxSc=O8Dqb<U#kkFj>p%)A)P-V|(j&k>A;&(};xD&(
zPs|sWmuu_KrW%>C2mZHT=vKLSf4PC@RJK0N;LHgi%y?ZSdq)$de+H*scR=OAvraBH
z{sfcJ8#2#o^=3o&^QD#h8d!^Q1fcvG@acdVIuVxtCmCC#9-vOVS>Zxl@+@x2d!!~-
z>=kZ}rTnBu>-4MF_rZL(uEtdQdIxe(Z@(r7u{74#W548TrRb-xv(lykHj;l-CHIWx
zZm*8%R?+p(@dL$6;p%zCJ@VZY28vUYu>O5iO@`7^;UtCfr8LzV;D`9vaE|Qq?^T|l
z%f1hw+<JAK+!ltfrTYS#e0RogEMF`3ov5lhz45aX-x5vI$1}pC_H?PIjAbTI9+-&>
zNDn!U(XVGV07(haDp$`z1S#vg=RYzlc&$aK<BE}U`kF+;52!XbGIiN;Gr;udv{1>v
zGOJZhhVw!;L2iyb`qHzNyJ4>=!A#JJ=XNsb?@9{_JG$sVzsBr(bHzmm0t=I$s*Suo
zdj6Usf)lKu+0R?WL=SR_K>9@9`?+!)s}+ndIXD19d-@x_YQy|&y)*Si-kf+es5^@`
zYidrP-l#wFp1VAtuA-<7HT8Z5&gRsymb;*M<@%PpsgUK&CJ{qfpmr{Pf5$qt+QMOT
z#&M7l#24k|G1w<Kb*j(l1NfJSH+WSu^|ujzgOyMdp=&q35sE`~{C(CmnpytYbn2;)
zOwUuO{R>@2krU7>r2tymW}hx$>FO{BU|=SciNf&MqoESrxp<eW<|HRw>?so#v}pnO
z&OeIivcZA*Du~llsTut#(Eaxt(^XVej-h$?m~H{9;#pHy^B}maP6ss~Y`>X;vF;kN
zu<u}RrNBDsoWy=W5jLSEM&#O$US<~$11{;-laTRpg1P<7iv+Rq(5a7UHghhMm%&al
zK1Ou4PL;(D`3#VgpSNbsA?$mUtfu#Y5lA$h>^+8Xet($hjTPnnH#2n2@fXBP-$c?A
z&b7}&tG2N?ne34l7GG%h<GO_<Aa>#WK(H{@LkBD^(XA!6J<@r|cU%Feo_roXl6RhA
z)P$}Dth|`qYb{mZ24H!rUfEJLbI&0*J-xc(R_g5MNuc=o{59<1BP~B3S?A}PBhRE(
zsPSX<vK%tx(pxNh=kei%_zEwM?tm{mIhNlu8-Y+p{4NbJoFHB8{?D=3Z?pHlDa1H9
zEx#IRxvu&}9y|TxXNhupT%-(Pq66h<qOMbQ3?dYCT@~%`cDKe=#zn(O6$1bvKLq>~
z#-7j^Wulm&;F$65^7hPuE3OXV6}Vx)+O(~!ngi!yj8e?;?10jw%5triY>prdX^Vdk
zZ)$BW$1r!^-1*+FP&*3LTFRUnPb~`a8Z!KR(nOtc%u<ZLhBb_VT{RM=m#$=+@SJYg
zvYA$30g89Lu&XEHu94<kYn;f#Dpu%(k1k@Ui>`(d!UEu~ZFA^>a%@D6EK1QU;H>!r
zP#u8kRoV`IuGf|!N4HG%!7N|!n^1KkZLAlD>}iMdUD1j1)mN6}=Q85?>jRQvZGz=a
z&N$6x?(pfa-&Zx5sUON49L6=C;7#fzS5FGREDR{a&*0YRy{?~0waBvtfAKaT4dcXy
zN^xHIsy%|vvoz<K?tjn3nzPL)C=<@3I<IOmFpsFD8?Gl&Bd`D<v25Lu!KoS8+0McL
zTr3L;wyTYX<yl*VE|1bvRM0(%<iOfpYV~rA2=QU#e*EgKhN-LVPrJ;;rpKCdHZplU
z5L?&Jf~Jy5NcfHRC8>o-(^RT0ig+AuXD4PQJ_3T3)*5MYh6?bfkX0aJZ_C62wdc{4
z{X^)^dc}DLC)k&r>%`yR^yB08)`Zlg51kjJ;_{#|a+!MrD-BltGebj_>JJXcOdkT;
zyoadty1N?vh&)Koy;46WJ*B+(Z<+q!r)M4UMX`PL3?BfUepYc>uC4AtD4~kuTG<}m
z4V6hhstPYP;QF~gs%|>r*%0I>TDF;{%*X9?RU`Od3uN{z(ydv?7}P6CX{Iwxej<x?
zXbe{wO<0g5e5Yw=0?4b-X#B)$ZCCWvtGnscx_`sAD9j}9=76eoz!suotG;;A8qeBq
z6#Eh=meGX)TClQ``Q`E}0eWFvo8Q;n_M|U)uO&4DmjXYWbH%09%U*D+8`Q<#HIZQ*
z=_E5z&NU9X?%K?<r*CDtBKB_g0hzrcbDk87l<Z+q#Nm+t)s>NMmdy+Kb;HO*4!-*F
zC5b>ARRK4DJDd=hcJgw6?geI9WC$Cu{RP!En0q}rq7XNjhF86mDis#CjboLbX&>>B
ze)Oxz_7|KS>O>BHzYjPBS{g^fo5IbWu8@X^=XJYd{gYbtWK|n-B0{{ll=K>1ox(}4
zqKroM8b-gNclp(2jlk(4hSpZ?C>44%TI+@Nul_-IXC>a|bj$w}$QynL-aH2s&r(mb
zcqm}51H3z&pSe9D@L}%GK#y$1Cj!IqCzxL$xDgROH_yrbKzqVh|8nP<wHNAJrswTY
z7pe6gg@{bJ-=Wc)JmZupA>~+O(cR(O_kpWEAhX;1f{1kYtnlppf2#Pmz6y2^<cl0I
z`1G(erV%p&D77W#ELe=Z=Xa5f<fbdOdjs{Fm${Y8?<n0*_iFtd0RDAr?`_MZ7MFV4
zPLxQC0{Xt%ab4cb?Au5cw&g_{Og-!XmPFh1q~HhHz-D{=mYJ59_Rq8qsPiM^R}b?_
z)!uAT|8XYBIN(O;oO6>+toNr?Gxt-bIVsIM#MgtqR1B*UlD}m>7%72hv;aqPcNFvJ
ze17r)ZK>-=Ue_ij{d1b^#D4b|)Pt4GGc3c-nws9@G1oP{5#!tPmC7^eDNaRvYYB5`
z^OC01P}r(PI@@QK;dDftiT=1(;ak(Gp^-t;sq0S}=^p=3K!che=<ZKnlK2<u{#ueq
zOBmea1kziyCyrUM8};`XYBrTpt8{vMWK*#77wCv1R44-1cb%gdxF(?yyrd^&I+#kC
zbVswzu#Vw0XT~g+n&ztJXrjnaT9_v<wQ&8buR+#k&4OnHbuW;0?;2RO5|)}~?4q`v
zlGU%g#4`G5c**P*0SH+JqxADKnEBIQc{=QI*}>kJgL@!erQY*1>G#;OMy;%b$1aAw
z@Nv@WSxaaQf4y?C)FG}Ww<#IxH}hJaz6}ptMmx&Pv}IN$JWTZ>4ZEkcDRohyVJ^v9
z*W<+Hr@SVX4+Nmrw;%Clv)_yZw=Yk<^V;tj%xpHq5FPk802O9&J!Q`D^^Y%mA6zpb
zig!Wgrf8nfg{=EJs&AXu-#U@Y988^MeFGfsU99G#j2_5kX4nhKKQFz@&z}$65EMT^
z5t|ttpjD*uP;-|gjtaRHZM`<DqeMJV+?EGHgV6+gPnwI>b}o7c1Kd>lg-oJnocciV
z85(RCyJCRt75?B^6d%th>bY6=wgP2a3q#Y**w+!^l7Pfp<X{O~>gg8Z<6I!+ud6#O
zM>)fB6w3UW6MTbj*kNB`Pn91#*W;}Yhny=-FuN`X-UDIE>=Q$cIFeIyTA9ld%?FJ2
zC^eh6ryC985)%5Ax}TNG%B{Qlv}3n2ct@vgEcH9ZTxaUI>KSma#+~~TV;^<$0FIZ8
zp<V{ABbGV9>13uOwtICah2+mi5}g!o*VbKPGdoZ9XSE(rec<GO$3zAYjC&KPBVAiz
zqc`#`-H4prD+WYxoxrup7fbK`Q{%V^O?_v>44>Of4b|EjJVOhXWpoCO_2Nz?has@W
zLzDW%*$PcM(~o((!z>;Fw+H9C4LN|kNIGM-V%JcMr-j4nB<~~tZQ#~q9{40>LyEVO
z6|(L+&1ST2>Iffg92N#W^>dcm{!&#u#LpnsP+a#QBVX?7zKJi6e|7pYxL*1Es`f{Q
z9o_5)4*X+8U<s*B#mA296pl%)+3@ISyOE|^#ek{K61@-2sQBr{Ov$(!7YWYP+fPHo
zu}XlFcmQ|94K(SnOOq>U?P5um%WG7$^+!#et`5Iqz_~o%GU1A1nOqLu(L72I>B`#|
zRM$1KFvUt#*qnl-4~7#P*?IQc*y0-6+TQ)`?7{RVgZ)%*8Eg2+)E_^GKbf6^zh}oa
zbj}mCUgm2sAOuO)CO^AG#H%NdEY`zU1<Vcmn`+cl86UC?em!+Xss|3u{q~K1w>aHV
zEcpsEv`<(yHqC76+<JX+R}8FH`a(TQ)#S3Cqr5DHB#hiaJGj8lf7KWB&MnYg1E@8A
z0`-HH9{i{wgUCu++N!sqVZqoihoFJ#4;dUwE3fJv8m|z2IdH)`=X#ox`56`%2TxTv
z>=dcg_P130Tsz2j)H3-&G*dIi#xS$X_cfu<uIGIn*Fd-qd%o^-ei7%G5yI0qe%l5v
zR68)f<AMsZNf!jJwU$doyHfC}Pq;yj&?^!FXZW&TU>-c-0E0_75t`BcoN@<<>jg0d
z?_da?kC8LPW~~wy(LaDQQBUN(<QtWhvDB*hH)w43&+Su4fb3s}63S&z<Ex56Z3h64
z1tiI5pPR=*>g*j$*;n{dneF!}4+ljURmz3}l(MAaK8L%wbZter1g$lW_!}A}7K(}@
z8lIgzk9M-F5&4R3OO`x$<&llJCF^sfV#*6EThW0f<~NiwUKLNvv*b9_QI_>1g-#WF
zF`Ki_M5b<~MHnsvpFIrD0sH6+Z79T|p`q&YtX%N8Yw?U=3x=I<$qeUXe<K4Pk4<!Z
zl-8xqN{ZRoXvqIg4QIj7hYMOne};;FykkaPXWtEpvw(_NZ6{#b)=L7A3op&aPuj`V
zNKh%mC8f3t!^E-VihmVOcQ{B~(G<#(R~B*wBJvFslSPT>w=cM{H|xwbzg{yuz$dEz
zj~NU9U;Kps0ny?Au4exbH2!zE7foXA0ts~hHHkTMYCZ6PwaGm^od^^xsJrCZe6qkx
zb<7N~PAH$66AGJ0jaja!Bb1}SAB;OxyJrspzF#=NE*XtFs@OXNxT0^k7YcW=2ufQt
zRF@GX_c%LmJz%2$DC`8FjU0|WMW^|^Y$?_&FY}^d5mAs~1bwqfNQ2`&8xf?hAZn>J
zJ8kJ?yD1)|q>kQV`<6YLd-~TvWl3#$>t}Q~CFQTEGmkHCQqIx6&7(fhodT#_k~#P>
zLiM{t!(}d4@rCdk59ZFMH|P*lh_2z^TM_-*w}BC2W*1KQ9ltgadwzsy$HF;YpDmYv
zZ>nyF^i5oBJd|a>BKV*Ig3nIL{GGqWXes(-=@-2ti{2h(R}gOqSRbhZl*qe79_z<`
zi*8r+A@kORpQ~~R)UREvS^n<gU%S^q6E}v25708VxAK1$7>&g0=YVh}G}@^~{oPCa
zWBEQI4L+;XJJM0<OrYQh7U{X#&EA8aG4i$iFwQ(yfJ95RD4`t{)ip7CanR_qm01Al
zJiGy#U;@UhF2=2M$#}*>cy6yX{2WI#xQ#VR{k=%pmnx0DcqSwzuoNB0-LIjycn_pg
z*y6EXSu%_@?}m8Wl5BCf8l~ETyQeQ@7#H<teGft$+Ir(wv~T9mi!{mrR4fG_7nw0n
z<8fQe?iZaH>Jd$V?lmdFKifZjdHG|h*srIhbNLWFTGui)4{OUSC?8DpDe#N-dD37v
z5(tjYC$(ZdV<Q3;$t&8%4ttgbGssHL8_)IfNPIHnEJz_bf7IiNS-`06+ro?k>2=BZ
zqOLfh%iCwa*XC|E9%0NtT)xDh+nj6JpChzKJTcMf!0IHuXDJ0f2qTUM390)SQ)hsC
z%(KSgsdxWhbUFCh3gXuBVnI2D?;c)u`5i!Rdg{9ug6~ni*6ZE-V!Sm0pbii2vFUIT
z&JdUWwkB$K0V<ivpt)+=<wel#Woi6Bls!U+Y~$mN(_PaK0>a{=Ojq2|<*uu~bchQu
zuRgozcLXS+)kGHpSXUTNem9?xCZ+xLd+j>t8#Z%Gm-yz=50_J_oq*pt>H<e?yPZr3
zu5_~x+d=sLuK+=+tmKMY_%c%lFY1ZYY|DFSyEjLA@-`j)JLem%7yw1y?;y%ElppCO
zH?tPjyU$u_cbx_VP9%bkgF3&pRZau^W+VL(v9(X1^SejvyD_CkJ&Vf1L0jQB9NruA
zEG`LLEEc|`e*>@(iynHu$L2mPL*_s<%yPBhhUjP?w79pJM@f|qntw$i+w<Yv#a#14
zpM8LYET=O9UQ7HY=1=!g@@>IY&+oLiu-!JQi+$RcIY$qCN?P46k;hx(O|Q<bsGT`^
zF1j5z+UvUi_DUTt;XIiqZ}2>DIG*=uC^X=Mv3CA^UIo1{_@#rg)R+xgr>Y}Fv&MXJ
z{S^t&N1d~9DVNJpfy%c8QsIMmDvssmBznZx72nyB+S3z$eqQL38_y`yk~{nbkHmdf
zRdJu4m6xA`p4-@%%=&KPD+sf1vkR(Ir2y_3uM(wk(}6&scKh2~&-Q(nj$7t>(o;_0
z0dts+)2QV=tCy{W=PdKSOYWsjh);<@oU@Z|6BwVD;P}-3pY#IKoCjp~lTF)9-T*KW
zWwDc9ZXwR2`FeVbR`$;HjyKNyv*!K;^v8&F53VHrK0Z^<UGS4QvnCi{O2?fTsInC_
zYt^tpV*RI@wgSD^)h>w$GVY4d%aFO~<(hk293as2LmB?zh5fjZ)c_{`q#m=xBX<`b
z*^0kLmo7BLPbvHN&g2&KFO02z1Jogl{-M%XGf)2qGQB|?zIx3=+nmu~Vzn=qT{~mb
zPfs6&E7e`GlF6JO7dJ{&lNk?0@-@>Hb)o~GpOCx%Af<_iQipd4p#5F8X6Vl^QcPB?
z$jE$~btdZe*Y$EA)9x&y*izA5^=<f>Fuigv+u1<<$mV_h*k3h|>XSa+1KszVr&@}j
z31qvx=)aJVyx8sUq2eXqZ+K#1w}n^?UDifi?x^s1E)+Y7duR3UxE$PU{-7qadK%b$
zz*vYI-QO|t|M5(E=XdRCg7fOi#}3(3UrF?${?K$&NIf~|K8q+^pEGaWcvj6}&xNgV
z!Dm^Un!opK_gU+*ul`)8P0)+V{`%@8Iy&r`<<1~^ko4$`PY~Mi_cK>p+#YbxVWWQg
zgY=(?;jK-J)rqlg?HizP9M&5S&7Y)v4FKr6NjOYgj+q`DAKuiYSq%V7J@#H;bqQ}X
zztrLoLBp>$ndhLhVp}5M=(pc;!iN0?!j*G=$;NKK_Vm~J&}5}Pq`p@Dt^cS*E_>3K
z1Z%TYMXMKqejt#;2fcEpx{#ZlNPO`M+Nn%iX<y9Em_H3tj&%l$MI)b|M3u-6!&w%5
zMdtc!f&#lgJJyw6;tmdG%nSDaL|mlU_;YwwpY@xIR;1(Z0aX5oc)mpe&2vWe$rQ%p
z?ZFlJTuOQ~a%ZkWm8auQ$fPo5xEIYqfHl1GBN+LP)k78|mbYejh2Eety`snGjf1Wa
zX}TmfB51=E+nejl{>-`~ICZ?1UxUHJgXqA#px3u`NpJ31ktzc=7-DC3CQp#kn+90-
zMva2nxz%JzUe?AuT9;w_qJKF#q0cAI&MJP>6NPIx56ok+`87iIliP!bHcR2tQCX{s
z3TzCMyw_@U0lKG4Xe2d{z{8-AGBU?vn~lERbALyrUv7<z$bBfK|C(4rP)9((Y2MxT
zWFe-^B81tAbX#KE=BgNr8UWIoA1q3~%~v1cUW<p*52c7J-=uMHYnqrb+m4C~8fr@_
zXKHSC@jsb2g3q}6mH(WXRssSFrUn9rk~FA#K;qQ!+sc0n#R5A0t(a|TdGX&34`<dy
ze9En|Ja0y-r|~`~z`q+wMh}ZG^eh7afa^_ED(6Z^o$&rTJ1}>0MWPIl#d*i#Q~qf(
zxzD{>aTFJCjJ3qKH9Zxrk3ZwZyuI9Q0Dv$@cmDa(eBt@R)tMIybH%CK_!94bH<vrN
z(oeeW1e6aqv0kwRTT)x&?R5`CQ?UoUWc2>kEQALDfLb)2O!~RfiBh)sPGNlEox)Uh
z=yt!<t(s7;nfP>c(H9yT9+FaNRr-u2+EUx1jmh3fD%Kl`OOHgO-Co3N^gXZ6^Q2DP
zTe*Y&pa1}{mUsmxh6Uf31yA3W{W<4{!E!+c%GqLnX)f2FpU7Tal|L#P?f*_DbNogl
zht^blOY-|-I(^TbM1BAO04s^~zBN1h-t9{7j>Wgc?VkAo0069j+d9+xNWi!n-^sC3
zY2r{aIT!W)PJacpfdBvi%SL%3#d0)y?0ebl<<<Clt5#Z|Jw5O3=(rlq<+QsCZOZ@v
z;Lh>9>0C?8YyWm?YGM^dx_W2<;r8GE{g=FW{G9ep<BkCUz-`LOSC^<$R#KcE$faxb
zP5*XBM>?9x++Qx2+qs1R01#Muk;r(dq2a{$#>QsXB#2z=zkqgniI&UzZ#2vn007{c
z@H}s(6p5T&X(yJN6W<bFXlUq?Qt2+=_glEV003}JM4mS#(de1)WHQ6+^5?DhU+{~q
zt<8R+(CZZnJtdJOw;TW<d_+ZZemp+l#pC_onw*?oSJ77MFRjJzznxBZxW9ad6pI~1
zf&c&^i0opqF&FfVeQ$Pl>`sc%H>CJJ5(z&1aJ+E(bW5~YY>dTX4aHKa(b+NOzQI`8
z_hS)#%Wzu&fSN?JFx?tmjCfwr*{tX+myJcEbH!pYQ;Nmr;s*{)ee12a3bpXP{{I3D
Y07ZeVH^Uz4umAu607*qoM6N<$g32gl&Hw-a

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/98.png b/src/assets/all-letters/letter-detail/98.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8b20dd9165d70d7fdd3f6e0e82cb33e017ab3b5
GIT binary patch
literal 15108
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-detail/99.png b/src/assets/all-letters/letter-detail/99.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6c7372cf0f4316ce302eb1b9a5b802883de9d8a
GIT binary patch
literal 16171
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
E3#l(-kpKVy

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/100.png b/src/assets/all-letters/letter-imgs/100.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ec4a407f0697e324df0aa600a4f219cfc261279
GIT binary patch
literal 10512
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
SD$s5K0000<MNUMnLSTZ=ZVod5

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/101.png b/src/assets/all-letters/letter-imgs/101.png
new file mode 100644
index 0000000000000000000000000000000000000000..acfffd394bb31090ec07aaf9b84038de1fc48cd2
GIT binary patch
literal 7977
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/102.png b/src/assets/all-letters/letter-imgs/102.png
new file mode 100644
index 0000000000000000000000000000000000000000..b863cd4af3735afe0dbb1447b8760d32b8d1027b
GIT binary patch
literal 8214
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
IM6N<$f{VMqcmMzZ

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/103.png b/src/assets/all-letters/letter-imgs/103.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a983d81143eaf4023ca86e2ab6b2dc9825b53ef
GIT binary patch
literal 8385
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
X=EyaN!%lf<00000NkvXXu0mjfA42a6

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/104.png b/src/assets/all-letters/letter-imgs/104.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d55b51704fc6fb4d4a785450ec6d0914ad1d757
GIT binary patch
literal 8021
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
X<S^%Bz~?U!00000NkvXXu0mjfC!Ig^

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/105.png b/src/assets/all-letters/letter-imgs/105.png
new file mode 100644
index 0000000000000000000000000000000000000000..8782e2b792660083726653d31a88d9ef5c9cbdcb
GIT binary patch
literal 8679
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
FV1f`a!Os8y

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/106.png b/src/assets/all-letters/letter-imgs/106.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce61746680a011d9132e666cfec07ba267a3a89e
GIT binary patch
literal 10485
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/107.png b/src/assets/all-letters/letter-imgs/107.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ecbc6f0ee1e2ccd1c425d182abe2e5d3436b66e
GIT binary patch
literal 8343
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%0D)iXh+P3e;6PQ?0qe5tK+t_Q876JPbB
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/108.png b/src/assets/all-letters/letter-imgs/108.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5aefbbc5ef3d44c8cd9059eb75c53f5929ca452
GIT binary patch
literal 7827
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/109.png b/src/assets/all-letters/letter-imgs/109.png
new file mode 100644
index 0000000000000000000000000000000000000000..70a44e19d8da3093216542d57ebf8e6883400695
GIT binary patch
literal 9001
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
P00000NkvXXu0mjfD;kLv

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/110.png b/src/assets/all-letters/letter-imgs/110.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee83d6afbd273065ee8eed4219c6ffb185a56006
GIT binary patch
literal 7932
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/111.png b/src/assets/all-letters/letter-imgs/111.png
new file mode 100644
index 0000000000000000000000000000000000000000..12ed6f768e9fc9778ab183c017d6623a8698b759
GIT binary patch
literal 9017
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/112.png b/src/assets/all-letters/letter-imgs/112.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1e1dd6351c22cc4c88d4544b8bba2960504d2be
GIT binary patch
literal 8187
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/113.png b/src/assets/all-letters/letter-imgs/113.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc34aaa7cfb2d562fee1ac3580826514d2d2e558
GIT binary patch
literal 8221
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
P00000NkvXXu0mjfFr}so

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/114.png b/src/assets/all-letters/letter-imgs/114.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7f9753fc85e6ae2968e04c6843e0a1152fb0963
GIT binary patch
literal 10219
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/115.png b/src/assets/all-letters/letter-imgs/115.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bad89b191eefaaa4e67e39a9ec37a0c1dae8aab
GIT binary patch
literal 10482
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/116.png b/src/assets/all-letters/letter-imgs/116.png
new file mode 100644
index 0000000000000000000000000000000000000000..950f7f342629e7e9121783f25d6a4d1cebdcdfe6
GIT binary patch
literal 7977
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/117.png b/src/assets/all-letters/letter-imgs/117.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fe665807967bd79b1412784b8a920cbdc215c60
GIT binary patch
literal 8642
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
UH^6maz5oCK07*qoM6N<$f}6CcF8}}l

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/118.png b/src/assets/all-letters/letter-imgs/118.png
new file mode 100644
index 0000000000000000000000000000000000000000..669aa761b8066121ea10c21f999b557e54eefdb7
GIT binary patch
literal 10249
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
P00000NkvXXu0mjf(2<MG

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/119.png b/src/assets/all-letters/letter-imgs/119.png
new file mode 100644
index 0000000000000000000000000000000000000000..05a2316ef1c5b6781930c9555a71cc5e8ca171e3
GIT binary patch
literal 9442
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/120.png b/src/assets/all-letters/letter-imgs/120.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e4651e4f932eb189eb4d50adc1abda68328e4af
GIT binary patch
literal 10409
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
TSPARJ00000NkvXXu0mjf$PnRT

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/121.png b/src/assets/all-letters/letter-imgs/121.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2899107c076109676aece42c0c2efc9328ea101
GIT binary patch
literal 8128
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
a`u_n2@ds(0N><DO0000<MNUMnLSTYVq+k&M

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/122.png b/src/assets/all-letters/letter-imgs/122.png
new file mode 100644
index 0000000000000000000000000000000000000000..86d66e2260f5e301d910830492dc8a2004919f98
GIT binary patch
literal 7930
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/65.png b/src/assets/all-letters/letter-imgs/65.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc5532e69fc70a396e80da884f9174154ab571c3
GIT binary patch
literal 8155
zcmV<1A0*(3P)<h;3K|Lk000e1NJLTq002S&002h_1^@s7#Gawe00004XF*Lt006O%
z3;baP001A7Nkl<Zcmcg!37B0)l|J{r_j+Hlb((ZS_K=W_5O!n`$?z#4&N#9;BeF<X
zB8v*B11Jc{fcVLxvd4fTyYPX8O(L6w00|@nvouL}_TD?`z58|dyYJ5bpL6TI*9}OV
zAya()s&3V(v)8Fpb#D+ER@z&t4<6Pf9y_|4*VUv$Z(4U_z4&-er_)k4euAV!k@CuY
zy|~T_q`~)P+S%W~PCQII?u&=Zw-=nH06NZ}u)i+sXj&gmn>0D|$LCj{e+;-pys-B1
za`A%puzyg(v?rb)q7Fe8C=23J_x6$t$O148vJwHni}yVwjhnYhT0%)D2Z1HLQ-KUZ
z<d*ph<k+*mB@f^5bJwM{VFDSF5Q)hx=U$*S&?-O}hD%jC<pVriw&;!s7|en+e(|3_
zN}=6PxOsEIaAkV+_4P%?v5p=B^+J&>MSE3g4TfL$iyLZtNVPCOPmVrmf&AsK?@|)+
zA$i$evyT=q6Q{DSz4B63-gGE2Ot*wRJ2yniTl+v50)<Hfm8tS_lxTzO@F42>a`XHP
zAt*I$eI~TB#Ge@cg3J>e3P7}+nL9`<EM9s&cz`xZBDZ9C%I##kqh;-BlJ+0eemIU{
z!eoe^_Pp)oV`ohqKF6bmJHw8?U_*n%r&mf?S|~xXSNhxA0Si9}ArQR~C00-%`6EV&
zzpGnP+gc@lz+@>MyKgiK0P2*06z-?j-zv{M^OE!>lQMn!bXmQ6wTvD;T57hekj~~-
zg-HXBZqGSh+p7CVl;ug=%&%N4Fa7o+nLKVZ`*jJ>Ia~>$v~-XL0$=|9yZ6ev+6LLU
z<Y&_O-kVd@>%)O0d5>&i+T<^N*Of~b-i7I&I=b<jRz)|y_sTuPZ0Dwk+<)cu`f%yO
zdr-&Z57+)8JDAe~vGWxPP36`e_>rw^s->-Ihl0{;SXy>$hS4D4Ff&u+98Rbz7EhkI
z^)_u$gv%D)jdtW&(dx6sq#zV;MMfv830<DVON8dw1SO|VAI1qe=ZG&2t6sg6t&c6?
z#*O*m+O>HdtsfqOWkpB-*pjthG~Cq;Uja)b5`znoyL7Zj2UB^IMpaGQmWxRdbTzI2
zDJEQ_ia}3ma8P<%8v#dU`9Ky((WpxC^YV1HI|3S8F*!(8*ZW>iQskhiioCbANhedz
zwDRIfa#yRAAf8ZF>DAlBpJ+kJL-f8d-O+culoe$-`|8)ulx^GVWajj#l1%nVfJu)n
zyh+N508r$#)VVlkbv3Pf13rBuu@@jf&HCIt>Fe*8A}lUH7L#-;C0*U!Qd9k=P9_q!
zMpW$Ll9D3}2#kR=u<);>u+Ua1_7e|#hmSuNPF}liqbz>np&5Mkg0=UD`(S}35!|=G
zd_4d{iNyd+cA&)E0(0u(n*sQEJSMN*bSx44KJ*ie<ggxAp)1aT7#Lll>yrmRKOx~@
zN`k&#iK}-F21=Q2PGn8*`{lV@p%yIZ+HPNv{*-Ex4wHl5(Xl#rvLP8d?w&pofdLE+
z({563{jmsMf9z?6x%fA>I&&usZ9`NlhMH$FC5gQI(h`0C&Bfo>n#(%b-HUy|9tm%-
z+{kpp%rX*S9c1EwDv*<6vh=CNrs#~J;2$3R!?f-+AIh&TxJ1d2{Yw|#E)!?X(dYH=
ztkBxbY6R6U=m+NAhMGfR6vBv{W1df@v43!keE{N9s;`eCm~#-l`T+)QqUj~Gdr@xu
zr?WxJV21lDv3x=SyQJiGHh=gYkj{0gh?oUNn^@8rFThSUfZZ<Y`2>VH-9-F}rM<a&
z5z>ycsTxO=X-F6ZGSJ;60akjvs8HK}EFpy>MnHuziGefKpknqmg2NdRj$NS_{=!ei
z7L`@aY;}Z{iT0+A)1cWJN~M##lj4^Y7-96$VUPq!Uu!eg;vo95E@9Pl<X?=QG%N@x
zUOpFAj74zZS_cal3s!E{wh{zxf8X&^RxwK-<1H=KrCu1+1S>WHDd0fNn_OXr0#5Z<
z^rr_0Bo+qZC1O%tvqQ#=8X*-U%fSx(8ewY?u^}Eu%}AO~$v{^Zl8%w|9Sw25M((f|
z>^_Ygt-o|k!+FXT$6W*55<cu|UH=po&DYqkDg*=r&8qj;$VsQ3F9ij8a@rZEOIJsS
zy!hguDW=rbH%RT)P4eY=$4GJjff=#&gH=nUv$G51Sv+i~;_>p)qi1wFx~zvV(b-%b
zknr$Q1iPR3jdNwqnhh!yaOp%I2tI%0k+N**Qi*dn07FFB-q9s3ZPn7<(yHdo#Yx}l
z_tK?f$Ij_?bl_*9mwfZ`#bMZY!WS-lP1bLym1Dp3MY-?R?;!>w>_%+v*j6W3Uw4ZX
z7iaf0MZ$4%#UGjyt<us`x$T!%OK&eWP!#q(_S`%2)BnB$!OD{{<wf$>8;_B`f%LMf
z|NQMgYvz$o_P6`7P!2rtM(IK>IA>awJbCkZ;%TbDAOWX?$J$<CTrqGEy$c#}4iq&Y
z;Mk7FXiUs+Ztav4zH^6k_4LaFKR-(j+i$WA_V!Ba`ei3ZO!T$W?#vxM4Ze^_J(9>E
zqcT8Q5uHJd&iJ?2-;~#%WK>t`3df&|Z@&fbWHhH=dBYEJMq?Bxg&nVX-SRti4XK2f
zMh4V9Ve1g7UoIn*Oi=?@dqb-%dGJBfL~%z5s{_Q482rQGQUNF+AWZ<vXLYKImA2EK
zb?n|R*Zh4yxeCA}8pFoGJTS}1TTef~dx&zN)OtD3pW3|jobLd}h|V}D_gHOx?>zt9
zr{Wk6piIz)R2xm9juttX*_KlfVgO?YG(KBu@UIKbg2{4hA8E(UBQ7T;P0Qro6~b`;
zWr=)(7BjnPFP#eG?D2qz?VEGXEe6BmHMPP*Ew~cMhwr{8GY>up9rU8?%F=ZOhs-cZ
zvLXY<1Zcut@N7=QErH{z6->JO(kt-f>@Ko5l7mxzco7`U(wN_0eS_?5*bW$$n7s1v
zV_@O{ePT{vF3m?W<d(d$gg$SjGNJKbr(l4RQwLNRRJi!A`(+TJIIl1t{ZwCCPW|D<
z%AlT|06Ssk4C!j$sTlYZi^nmSL`(}dz`4ZDl?MuZ1PFp*LH3vg;uefdN1SMg0H_Sv
zvLzB@h7dfDf?*&uU$P-;NS8W6a-`Qs?ZFS|1^s=}y7ukbxU{wPdL{YaN<-UlKVeP9
zvjoaHp3y;9jKy588rZW!F@ynUG*2NAec8w2=4tJoIRJP+o{*~3fA^4sW%q6s?zT-$
z9~4$r?$_7eSUnMEFYNo+l)`w^@MGL=Aq3EFF~Loa=~`d&hNA|;;B|+bW{(z+cBR7b
zl97AO{<O^8P0!SSmx;#4)y2hr{!(nwb2&qO4Yd-+j;Yo{MI-?tskyDer9!!O#MoKa
z?oO`xu}n~M*|H_Sy9j4a66FtyN*<*2XqN0~mpBf>JR~Enk_7V0M1BFhovc_<rm#<e
zSzU!d@Uj<r*OXT5vkc5Rv{`eswQT$%GS?r1(D9g@#RN7fIZLu_CvFdu*a#`LJ6PKo
zp97?S@kG89jjhxmhecxAG7$Y$#?Z>mu;P@uySch9ogN(LgM$#cB5+BVAIsqcj6m7|
zhYTKtiP=u}#A|5z4Cxdu*}h8(%W=YoiCDay-4bkR);7FL{5cblFeS#KL({x?S8MfK
z03H`Mw##61CyvC>5{}UExs%NHz!L-E?v@55wDFG+=Mli|0gjPD90!U<i~)_n1Q}H#
zUTe36ef{DUA?V@6oepq>j!GQS>oA|v*SEtqpjc8UKCbW7=?Das(&^#_MUsFS1_x5I
z_~kd`YhOMJykiE&JwzsIo?03l%$Qnn@QJ?U&D@I&{T`2{c)Dd|<*Y4eYw<ekKO6(!
zX$iLP6mRcQxIm1J1Oo*QfXXI?<;z#gB|o?ZIc9<E>gbk|;zF4-bDFGKUn56-{y<!V
z<jecG8oS|&i)8N^Q>37%6k3a%3-jq$p&vhJM8%Ai4!5g)o`g!P=6L0Yej$c4#nIR<
zlrFi~f;xe{;O1Z5i@V5v*}Sb@UR<(7wr{VOrEjg&%(`gAIGKIWkvJBtm3d!3M_yUF
z(ini|$cQ>N@ObIq-U#cE%8?RxHLV<QBL2t->zyq-<;Z!bNFg>cI$ujmi&RupNL5vp
zG&VI!Ck{Hi{3$OhlOP?)$tRv5KfdC-8A2)$G(lX*w)Y=ZIqQSWAR3OQ6vaAT(1D0B
z+ZvQGxe+(7&PlMEq+)CZ{2`R_cnJ}QmWpxMDMOmiJ~}Bcmx$PDlX#p^aX);9xO0mI
z5%k1;e{OMUiH`MjVM!s`bx8J}P=(FQ_@(OHj=6mKJL-@QA!vbtK=Sf4Xx$JTdQg@w
zTOoUo-)mB)Git=UmR~i;@9$pITmN=?+~F6(Cy_%ue48AGCCb%G?;j1M^G`ZLwrtx0
zb@DJwR-(c~FsW<tq_;0A#~(3Wq<g#dP_wB(j`_Dsr5$FYm%nt=$>E&6agL2AChUFc
z-E}zGPhR5{LCS#vf9%*XD%owf-!D(!wLn5FM^z(wulmkc?7og28LBzVC`pXKvpoj8
zzPe~GA}ucqd;8RMDKIp0%6?LcHQC*`?GKptFTRI8oe6`d_X@V&|LdGDgMB8ValLU2
zQF{zj8i$$EF=R7v#Xyv8CNaoH_^0U>lMCR4e}t&>6M6C<#~+9joiB&aohAp(o+u^b
zr$}CD`K<8qQ(~Dn8T3)V5VnMK2`(V1Hl}?p+p^kHKFgv>n9Gh%M~zs1%CSsFrdWWI
zj>?S<ueM|W2E_r1Lbuhf-nGk5Rv}^%F`z-vz4Fr3j4qABY};L6*@+DO@Yr8pbg7Q#
z{(R~5(`4o$Jc}s%NQ5m;kSU(vz05l|YFSNLR?)VT&cNK!Y^zd0GJpV)a;DPKG&aV>
z)t7CEi~~4F4*%Qq!8!;;e9$U21mb33VgnA<EHs5NV-Mma3QY&O((F$AiCcd&3=BSi
zvSsa>Vf~-_=y&!f_A_xm6*dbnfa5&lo-5Pm@{nU`Y+qN0>)!3!_fzE`jVhlqebJAv
z0fb4Ohe(+%S;n$`pWcGuqcHgCuo;NHZc0mnfgC^o%*ervDaTv}csCpWkU9Qz=Y2ry
z2#QSG|DU96%qV5Z=mpZ*x@$K{XTkm<CN{2ODqw1l=b0(W$1sB;W5(Qu_f}`I?`A7=
zFYSU1S2){Tx-9Mh`?uGZ;VEnPZ(e?x2Birzu}|dm*Kgc}el9>PMT|Inj6FOaa&fY7
z@w$?6Ot)BbBP4-B1Q||Q^5Da$DXlT`z;)M0&#1Imf9(e!s1U>P5JZC@;|1w6GNT~5
zPG#89n6KSYV2J`4k##il#7!buO=KC$?StgO01;?FQbr=28lY6ePSey1QvaCWqD&At
z6Ou8Ys#CKV;G!$9(h2tC9CIk~+%ZO6?kAL0<D`auv_XeGO3zSZgG|+D%wb5Veoh5%
zuqy(-`UKw9yJ4;M{S~^%EJN`v^WBY2E@Rkh8SYg;gByBfU?{zT1msturoPPOMdXy^
z_`&OL8o~e{xYy9(v?za0J65|*QJIX)N|fpgIzO6=c7H78+1ooqr)sj{>~9+mJ$Z%M
ztK{RpjQ|BL(f6GI7CDD%OAVm{5{@P?=H04`NW#_gviSt1CQ`GTfv7W)pyH?dFr6`b
zvu&_sIARDO^aqE>?al^ECJYD7&DRsVYTuW>?)I6HIXIXtl#@lB3lrV)WuK{(T%n&T
zW?!UoWx$yU{nVKKkulCNyzFx;4M%qF9mbvGo=J?8#w0N3wEIe?Z!XNBA5#fyNI7P6
zl^oi9CYx3x4J5p-5ORpr5X0s9sfM^83%-S}sNgb7eT(mvtxNqKcU5H7L(OOYMJ||$
z99j76Tw+jI1y)S#isr)`O45HWoA<l+XtnCtXa2)$hn|*omC)YNLCik@N*M+5JCGu;
zLe@DAO1un2%cw9_5EW--m+y!FRn(sNgEwPFzw6wS_5WEB5Z3SPTsI;d@TVj~f9yaI
zCgWbZCFObhAP_zRcg&*zv?dEZdU&A{)O&IU9DLw~m&1=<4pW0AzE_Zp#|F0+jp=Rm
zyn}fn_{_@xS`lq+n@7Y3`hSgk#nT-(xxzR>C^*}h8YfjfHlt6E&KjNI_L!^=foQ-8
z!eFmB(5Z7HPIG8%#;QEMH|&2uFRx^DaWW|GOL&FY^8?K6j-_!`5El208}}jh)1w0%
zFtYyU7|y9bRuOb*k=J4k4KwqKidyr7ps?5v!ZBdAq&SU_Ts%1gOOCe>d2V0O;6uci
zNoFZTfV;-jKoT#yl89;uDu@ca#IR!bZae|;bgkEch&oJOcvg%h5~y+Z#JxidS3q%`
zBZ*r}j!5cZ?2r1K(iJZ1kNTRy|21J=;UgnQPH8tp*<XiRdv?{=PK?C{?}I4EII6jB
zJA_CUhplfsJ8SVaZxEmB^mn!+AZJOy)|pw^>qob2c&Jvf0A-Z;go{_r=3@ngI6RlB
zVl>PGty8|uA|5CjugL9mX`~pDl>>BUkFqketYY5{8D`MXd(^(>n!^K0{Sv3;BMd2~
z;)XHo!o_WOzkdG7TVveLiHsY8Pb_h*kI95}HIZ^lNcRs&va<s>&3G{!DPgz*_{{$(
zxT}ecZCBg~r6QelvPWN`CW?xraO4=h7Rx9A?9vEf&w!+BabKJ9I>V-4T3}0wPv1+t
zGJMn+V&M!c_-J8WF;2uwnHLD}WIn8y5ceqh>dgUDt<Y;Y8h5g|UErp!={I^6qjO6z
zo#Ju;)7<-<kQ6w9&pTpJ%s>hX#Uy8al5ke%(&5(^oJZ!l?5G-3HtZe3IFLBA93%Q}
zDN1p^#6E{_iE%CL(U2IRaeOSVFb|&+fInm{7nfDkZ^6_dC0@~yH`rd9dI29^oWRJy
zPrEdkz?H4XzY++Ji|CMRHnNVTSf(6e<MLr)CR|Wl3}GteowrxW%9U$m-|3U3p}9q#
z`SV|;rgp0we(-*B;N01=cjaC(VSI&buWynKo3_ieNma7X)JZa`yi6K*?vk3V+x1S8
z*TrK;kARW!QF5#R-^~<Rya7E+a6w#e?aXt0@aW}XzsiqeIKEHW*d1GyIXRjPLl++(
zG$Rox#H;c4=Bhcd!NIvOK_V9S>jx5r%luUGc-*$!4kV*!eH9ugwQUrv4NSaH?da%~
zyY78ZZu|8j8I4a}Qn;7mtIU&6Ia$s*e}UX{&pq<TM;?_@-1_E0xg6)q{idcy`N>ay
zEaxpaUtWIsRk`-3*T}BcR+&6`qFVOzhs~7*3(k<KlP60*@L5ncV~{6$g)44>!H3T*
zshs_Q>;HRoMiIk-+M6~^^(1&0L=IEe8%B)qsua{5=a+;1$pLx%iN$gYl+fGLtKU8H
zo{T(>95Y&~;04>ZZq@G|`Bg(dzK3Mdw^suLGP+`nOr1JaTAG@rzOD|&!7>5d00ie-
zjtkB^L$18~(jm7Fwrmtl#z=h9C5syNzp=Ek@oLYT=e8>Y9`^f@!ym`no7bL#kDVT8
z+bMz4I88fma8{r~@?qU|c;oTPYs>I0Q8&IT!g9iV%?aSH9dP%y)}8vyz7zu5{Q2iX
z2?=@P@yFmv9eBarAuCtBt1x_R!=*@NB(Qb%c6Q?JF?K!lJK;$;!$ZU?d1g^wIWBTV
zSMy#4@c1A7J!O1E5&Z18Q(|}{LNS04$XGN$S(kO-SI440@C#+c^+gEDN7EFRfsfIj
z>(>>22X*&7cd4MoSoeInMpRs05y}h>DkIYg7&QcibbwJGaZ>>vaPyxDFi3)cba!=s
zPr7E_fT7Iyb%f0=8AUX|dQC}bqHk1h$&QLJH7>ql)jHXUi!c3X3q)s3p8~g?A_=^N
zWe#W;>_Eli9TK5r%9AP6XUOr#A1Cjwtj4Q|dVNRch&i6gDBJdoKn&d7efVb`=%bn(
zoNH5g{6?#!q*x|QoCxWW%K3S!jEr8RV9B{%xIbO|>=JqQxxdJU+RZX%^eCCT|7?Hx
zs&zm3)6eGJf8^|GJ^g|2=MVI>k2>w4F5pm-Uby!0lEHLaSJ>ZytglC{*4x)DbHDir
zvN^nYK%oV?JA38SW2VZF&N@`aSCk^nV6Q92K7aGz>dXXbiHvmFhMO>~=1eEL8{#uc
z<W1CA8gV3v_ka45z(zB_+|rZS{?EMX1^Hl8Ct?ehRx~<@bfCN>f%gDM%ONu>qzj(`
z@*Bp`OMkb@@4C}F^^ZXu?>u9%B)7^!L}#9<eaX+qhmLenGJ(S1B5a{~#g$SpVwS{4
zmy16LzkqLYpSE*0M2XfBa||-Z;$U2xwS#lpuzNNbn`>j}iN06zc_~qhoUYJlI#|}~
zW%%(R@KHy!$foAEqz7I^zD<vw?7#0cnLK;06ius?{Ps@#d!}vpT)yeDx>U(pz`UCI
z*v`;tTBQle-H*R1E7ok409POR$oWq`?jV_W@C?aELd7(8Xfdg?Ujfn<#AQlyHEG!8
zMXrLV(5!NZ*D22oW1g1_lO4|*!YPw=eM6f(@zVRUvU<Bzjw+Q?jz35am^lF!XB-0W
z@GgGR+*M!OkZfzdWW)GLPi7S1m>pWvL&&Jrj!BJ@QJ-TfGZqOuv_E&gwRyE<A=Q)*
z?ubIm5PE7?8+8}FDh_n7=7_w~@HuZW<q{c9#5YdF?s(#EG}zlCoprUzWJmL@-KCW`
zYOtgmlX!$0wJXR0^nwkHM2tI^&zyJwN&+NEa<m_x$%39Fqve7Q#c{{?e;~;ozLRC)
zwNdugNV_sWF*)!{$H>vAeqDR?IxIS65xWzLMp1gCqt3%o>`)P&H0O|?96tE<F?oeP
zaCH)nDG3_$6yDs92y8mNf`YTqBWMApMb0}+X<25d9D>ur&h>2`U=)if;nACJi<CeG
zunboM`?F)sTem3`@sn}&6c8eB>bV#-BbYatH$%vXcT<AF5)sAM0su;cf_KgSS7NDH
zrAcnXd-V6YMGwf1n(BxK6<`AUenJxXF2+4)l@pU48>*#iSKA)t3&_Vy;7|E~QN-Je
zUy${0FUt`&E8EGJeNXnud{UcLkb|hJ+2opgtVTq!rLo5-0CDx(@5!=fo<@rvFmx$Q
zKk!hQu+I$XZl~3Uj@ffeHmq2Mu{~T6P4}or)FHEbe&NDMid;dV6p%jQ9J|FY9XT>b
zQiHQ_7f4-g4c5GiG&x|OadVF;qNlAx9{KsrVAln|T+Rde>iK8uy(D|_FFSJJ3_c2G
z(uYr)Hm!BBB^SqM+g3$na|iCfrhVJ4EK=K!;gX}QbvTd3Wr6m!2*#0GF1-Azh*MfP
zR~a#xe&8YayyXD&TY^<qK}9%^aqyhOzd$yvwvRx#6OkA4re&C?INo))004Iy(r~++
z&SjdQ+owZ<XB^TjkHAi1nSe`3j1CcV@i;*ZsY`&^Z{zHbW}xz9;T2coTUOknXB6Os
zgkU%zm5wNv*B*UJQ+OsfT|8cEaSC(FuzJUanur#+XHz~o&a|WL(kYfaP-yOu#=j+4
z1|JzZqDVaW;5Af5WHLNxOA#=ShyYE?6qJOC(6Wjw1Xr_h0tk8Zrkk<lwE*6%nXQQs
zf`RU;SN_6>s5s&I=oFUQ4y3hin>5sJkt%%6$-+E=c^;1;^bYcD{Gf$C<_qf4tVxhP
z05-!xG9cgx3+Kl1ZzCg9MuOmpTGQ!~+vzj2GZZ4F8WbY(24#w4nETT29+mnUcT1jY
zRh^#m^GU+zfMmSM`sz1rQ9<}*LYfeKCXeR+6d1-Nzcd(m#D7-MqHNm7N!E`mgxAxt
zf;G{7gsoM#mMF4wGp9w(>LTsyrzeV(Oqr6FKmW4)?Tt4u@8djyAN+;#g%eN0WeLWk
zD{x*GYXOS4o_!WyskzsjRAR1oh}5oJEe9VvFPZ?lQR+|Qn04uyh#`>ysU}kp#=*CF
zHl~wrR6JSR$uvyBqwQZRy0kbune@!fs1W;fh60;b*;2$n%D#>7u9i2Rd<yMc=5swF
zkmJstFSCz0Bw`4hMU0}M<--*#rE$w<_n1?gVjH(@(LQGw&gT-KFVib|_K7$IjT{Z@
zEWjwQ;9C`EeA6i)QOv_<8ssQ5Q8h?FYAu?mM{Cyx!K`L&-uCqy@Q-eAv!{hjf3!@R
z{W;n9@I!TgcxgE*m_>y^osavFZ22f2zB*)~@GQi`_01<P6)O-k@(5>KCkMyXt1*Lb
zG|h`(x-gyBA4|Yt@qa-{C;QrmOdz8cHbB`;G6o`whBR6h***%0qH}VTM)qkju1}1y
zIEL9~pL?dDw%i<?)lM)6rz*+N2i_>qn`zx#qsKYsJq{Nxk8umvRbL~$Z7m;2p`08Y
z!;KMJOJo|{MOtQX(d8Jqn?+y3*wS&v$moqW!h>4N39VXnUPgsvh0j$2iR#zPZue3p
zQB|fm!Wukl;xWNAHmH{ojvN^`CQqb%?XtLG|9%DYVK+d>!&D;rKkU%O)G8#9jSVJ_
z;WdkpxKo0ufQ&na2tx&s58?w`_(Pjk2Gho{Q=M6fcLh4G-Nc1I&T&e_Gr2YX3?K2D
zGEG75;zeoEaM65S3d$egsYK<2vN|3J7~*0U_n@6g{5$L@0-GjH%WNw%KtQ)Lm*ki!
z$`r#k&_j8qK#WI9P=SD#xE&0Yl$}TBAPDg5cBmGkC@jXPb7>Vo)nonS%PB_Nsu<(Z
zmKA9lEvw0wQzCF6O8Wfd!1wP@<atMp|HcCw{|CB$^Z~>cL)ZWS002ovPDHLkV1nx-
B(pdli

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/66.png b/src/assets/all-letters/letter-imgs/66.png
new file mode 100644
index 0000000000000000000000000000000000000000..ada80d13e1427a7aedde8fbb746c5460c2917f28
GIT binary patch
literal 8068
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
SKZ?Qt0000<MNUMnLSTZ^ACCS2

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/67.png b/src/assets/all-letters/letter-imgs/67.png
new file mode 100644
index 0000000000000000000000000000000000000000..9de3e67fcabc7de8c50710ac9a16849e98d81624
GIT binary patch
literal 8448
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/68.png b/src/assets/all-letters/letter-imgs/68.png
new file mode 100644
index 0000000000000000000000000000000000000000..875b2560fb6e787f98d026a06bcfe1e491a5be62
GIT binary patch
literal 9453
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/69.png b/src/assets/all-letters/letter-imgs/69.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff9995c20475567e3b95ceb097f8fe702f8e6a70
GIT binary patch
literal 8788
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
KMNUMnLSTYGCe{)F

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/70.png b/src/assets/all-letters/letter-imgs/70.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffc34d5aa06cd10bcfa48b28b457b6e67f4ab4e9
GIT binary patch
literal 9108
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
S5D}*U0000<MNUMnLSTaWx1AgS

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/71.png b/src/assets/all-letters/letter-imgs/71.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fe265ee6b907aa59d416086de1555b9ac3dfdff
GIT binary patch
literal 9375
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
Z{vQK)KSTJyuiF3s002ovPDHLkV1kesE&~7n

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/72.png b/src/assets/all-letters/letter-imgs/72.png
new file mode 100644
index 0000000000000000000000000000000000000000..e075d63c7089d0291a42708408f3eb50b7e82adc
GIT binary patch
literal 9268
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
WTfC4gx7hRm0000<MNUMnLSTY>^xOCV

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/73.png b/src/assets/all-letters/letter-imgs/73.png
new file mode 100644
index 0000000000000000000000000000000000000000..703522182cfbbc6fd2ef9b1d671c38a63bf09eaf
GIT binary patch
literal 9305
zcmV-fB&OSmP)<h;3K|Lk000e1NJLTq002V(0037A1^@s7D2m8v00004XF*Lt006O%
z3;baP001NqNkl<Zcmc(H37l5ddG~YQefD7(hG83a5P<<CxC{u0OI(r|lWJ=FOS9Fe
zZL|W~+BBG{$!F>pqe)PsNt3U}Pn&2KQ=>L+Afn)cvLhhdu+1<FvoG&*Z~y=E-1ENg
z3^Q~fm>hWTa?W#}{XA#ABXX)~S!LK`9eeM${<0Z?f3^i{@44Jm;Jafp8=w7+x9$Cv
zcnz2=*G<Uc>NTcZbC6w9zDuTDu*d+6nK(`sU3ay4=EVTDu37qm``iH;Rv3`lya_U9
z;#l#L-SWnFF7uB5;!Afq-uD0hhUd6dBA$4zUyXMpC*X)1Pe{P^yh6_f0N4xQcmG$u
z2K;<RHRO|PJi8`?9J&BCiIo6olIKalbAqiNKv~N%9FmNdlN>2HN$?bKQs9Yz0bnJT
zOeHUo)Ea}j{_`9eM!@BjA+LJ26!%-{?<UCgeeLD5EwZ|Lp%(}Q{feF}ylb^7GkiBb
zw{+8@E3c4fEEfO)Ip?A!;%&Ou$nSKlz5VW{gDopYOc;$qh{kNxef6c6q-xQ;Jx*%d
zW8Q(S@5{K#Ii^JQ0tg4XNU1_iA#LN}cmEAH8|8V(puz%1Yb>Ppz|o|0=9y=K;+O)g
zMaGEw`#0VypSt<W%s_&bXa;ZF&xs7R@B&~yGx41O10{#r{HN(MivYLJj6Bg-f!P(6
znXH^UW`_QN3T~?#K7Q{u*~B8aTPg3$E5m=wd*7sd`MGPVFRUDY*7chX?0Wh+*9%+~
z3_FrarX&DGxGtZ&Wbu{%Pn`3o_Nv$Gg}7e3`(g;1!V`SkSjadWxIs3YHU&GJJ*)E8
z^3OiV=4etcB;MQic=D@*vNGHyw|sgE9MzGxVBvWeFEOToY9+qDNg_u(#re*|>AJ?z
z9WPb&#;^awV6D99lTuhp6;Siw#<u|5oLa>d!n&?23qSW2wB(dHsqK$%0(2!Yuqm+#
z3CzYy_uX)lL2NI}e)1#aqu5;3Y1{-_IBK0>AzSJ8pFCn8W!X<N&*@D6A*Ag3sC_P2
z#%Qo@?OO)yi`CymJkc5^GQd(+OlaFgl~!gD4YYu(GS=33T>kLbf8aeR;hd;JN<7+P
z)N?7agO=mCJ05@6bKSWpSDpA2*+`hQ8L|=;t1iwm2YMq{ZX#~rKC+9$XhiJGD}&cp
zL&iHQL+b{j7V5762wcwz+{-ejC$+w<GSubfl_R_z>JR)x^I8rNN$C4>-%i;FjYI++
zwVnN9I9aAecH8vOlCMn*+)db3)eG)iQ+?4ree0$Dp9Om!zt=ms_c=6~@b!_P{3jb5
zO~{5v(_eV$59PH#+<X{aA46z5sZ;o`HM^gA_Uu_V0o(%u%~S;X{K|7*kkzuJB3;{m
z=!GN@$Z6ZY>Bs6E^a`|MO$rta=1NuKMIU_zm4z}n-rL{tb{}q)$rXi?=<bnqFRw8%
zB?-0`UU8`e10ng=lUwAbMMJ+|cFoGA7EPLyL%+FUiu|fZ%7(_|t*s3b4o9Wx(#4V!
zjmhGxJ`Mx{S+k{1R@B9$cvRVK76I>ullHaC9yqZ5&}|cI3MKsMaUxJCQy>_ShURW5
zDTtVNUbcU*L+U=*FAG1taBb86mgw;79yu?>E-8?cCylTENE$+Qa$(*=Q^9r(B{{GV
z+K7j?!?xXga19z{j)cqREf|*HB}adeY&HEFfm-Y9CBJxx1i~Rxfi0Vfl}(g|;LIT^
zqwf@45cQ63e7zHHPqlbbFtiMrpbAL{%qGu%P*YHr|MVe)!1Q#i0t8HqGik+|oIaPS
z^UgOp%YO1;pOW6MCq=UJo%Ow;2Y5qI&8V*7j)BJ}%4?G<R&~UPpWXkukjHRBT^K#!
zja@#ITEmV}D7TN4O7N4ypo~~Kps;0HK(i7pJzNoyj8UpTmPp51Aon@Zj!D^6zi4YX
zZs^hB;+@@i4rq)8wQNxdgh2gsj6Uf`su!i8tTXx}*C5NjSRFF2cH^2(!-?xVRyH7?
z15h+8SlR8}kOX1lQ=Z4M+o>l6?Jdh^$%6iBE}t3s#vL<cVt-{P%j-AT_g7*0tl-bY
zbw2AksZ|&T%s4nj*6A=xWa-TCmtf4FxuM8NNyNXE3Pkcn;&=9kXP~?j72gMv(kI1<
zI-au+qsU889B2<GB0t_Bi7ZfO`K*xfSNakR0Yf=bxH%E5rVR#>{#QnbqZ-6(=1X2_
zTTW3@lDk1DR<JplCc<)bk@W3&A`zHdvLn77d4pmAbxa!2G}YDBfs35gsU(J+p<wP+
zi>g;WFVfZa)V0^<zq9+9WbUQqsn-`zZ-%*wj~uF(eS2!<>=|PoE-4<;w4nMW_qDqh
z-yV*ZeD{LI-<8*2yjd2mc=4n{4_LUq`n<we@vN3v3s#61Z${5~qXdIdzaeQ@F^!6k
zW~fWS{15_Vu+v=li6>;+Ti=tqrj6q+{>G~ZjOYVg24sZrPd#;Quxwi`Tm&Qn>~%;0
zEgIdsroP%|j{v?*VWteRX8VPAy)xae)bGt=JfZM|d*>Il1%|Ya#>6+bumD|yBZ;0K
zsXKB+>JA<?-J)v11UnGdutQElk+4jjHdRW74}%tA{a8>sn_A^<FBHD$qUwGpp;ni@
z81djA73W>t`msyqOZlV<x$n38CBL*--q;%#uV}0+y6SSd@XE_1mYaim4BapiCY<x;
zSINSwE|m+GES4X=+9+*ZDfyS5Z<0oY)!gEInV0OzZfU(}_N$QtzgjxIB2u`OvlVu?
z&eAEUgon7QJFWgmKvq2Trkr#32)SlKg_;eJ9!!`<{M#cU2NB;x=q&D<Aul}eLhQ<w
zFZA@{g4n&?&qtFT`??c74NzlHK74PJ96NFhas~y%A(?yGe7Huo;>ZS*k_w@JOtHt(
z%&e<%WtcNA8&_j`0f%Nz3KN<|e{rR>HMB~qBQD8!7k-KDA#v+h2creTp99LFoWo$^
zm@$7S9Fv@asYXIl&>jsqK|K4JF+ks8CWbO7&aO>FiyS%Y{Fv<8@P=W1#=^@no*pR$
z<%rM31IFsMts94V-(y(daH_HqX~(2pB=b!Lu)_{al};0pC>%9wZb)X;fq7RmD$`jb
zEZ|_$5eT%D1S8wmb%q=-P-q6)R2-yHhS(Jo90~{5Mnb%i2{urYXlrPYt#7^~>z;iE
zZyYS7<m$iwdl@!nq!bMs3OuSg&ZkJ4y|Z@ZDj>2z0~$eV3_zFxBP#(<mWoP;%7&L-
z_Ca*yGI90{!}!VS4OEuxg#*D1m>=(MPnQKl>2{LNJCz48!qFbhq7J7fAqtwrDpSju
zYr+>)+T7U4*L0eH^)*J-=zC0_`UXr5ST;IhqVJ{iVKSN?xxfh?5GTx%9YLAYw%Qo2
z=PQ%yoCXM&SD$<uSNaBjA|JbaiMeO|%)A<(BWC&;oWb1544s;^NQv)(phHB~Nx`}S
z@EJ)<pv}@cASK(oc?)2fG9z2QX^R6q38xb^gBRq{Y1tsu3SfwR7x0BrSS(^cq8d?;
zW|JgyRyv~*yaT=5_m$qOFiI<B<}iytcfFi**+M0#1?H+lCCxC#271@DCcJ?(O~b%z
zmbyrk%&4m92`o^x@sS9ayBw=GriqhRCd0Hps~`-dV?|Xzq&IoMW^nl$Gm{4D#85G?
zXui&k;9(}<u_R?90+H#9f@;1SR7Qii6P76$B!s^EMuykeaz`T!;F$<Xc*ImZ_?S~(
zQ7TyQgaJ5>i_ht4)I1YaZl5aS?E*>`KEqV?VhLdYy)!F+P><Ha|10p9=Su;BoM`CD
zKEPb0>bzx=L|YppcVXl<rJ7Cd6w+XUogwX^*4t+VuY;eRgRt{=mIeq?3$bW!<aTuL
z{{qkHMjpThp9aeW$G)9dNd6^IN7}>gzgrU3K0&mgyTJfmf6MKa!}E|oSllP?;Fex6
zIw#Okw-e2+0R-yd<6|+ad#2As3c3h<*74k5`;1L>rK!EOGAyz=F(?N<DYwb`7}V;G
z!Vg;!U;vtTyx^y+;eb{Xyt}z&FR;uQ1`|0z?P)GZ6lTMm?D?cjto-o9p6_ASmgr2x
zB%B<EP<JnpwH%N33ZYJW{g)X<;FP~?3nz=ew>duPXKzT`$p~kcom5@$1G55|T>&kD
z1KY@bo0IICOw?IABgpZKd;gY{_HY1r>i%nU%G&BWIp3*G4T)Y?{q%q<$pbR6_FtD=
z5l^-~A9P|HI!g2BUwNyJs_!~4|4B?<udiA(yR~>oZXtF7<h^%309mJD!IH|qYzRAR
z+spHlC7WxKv*#_7uC7Kb@jX86<JId3)Nkr#+iZxGxX&-R^ikQo;eoks<KFJqzI|Cm
zz)ie^QTuR5w^}fCL<a|h&O3iPROXg;cl5lBbq2{h-h-{l^JM7A^JVAzKW2czD0|>E
zpij8T?w43NcftRWyn+gJzlj>?es~fgAc<W-GQcS%lZRfJJ)~`wo+PDw^m*99?2y9;
zUumkUUe{y*2e=HViL&6B&%FQkeJyj&zax-H+94j<vc%A1n&E)<n8q<#2F3zTShl>k
z61{FxLeYZH4?sJeJ)lnzV$I!4zLrdMt_+1aO&mCxrmH@RD?5KON_G{!6H1gV{QB#N
zGySIl&9SO_aSW(d21B{N>Q&-wG@cngF+5o9=rhg4eJdAp4=j{OUT#T^x2k$Ttq)jG
zTvGB@enGyJ4lk8R6dOT6+S1%2hxQ(jp6)JC!^i<+Ix9JS#KCYZ1-SAtBV_EP@e+&W
z2`q!;#Eu=T`v*LHFIx!v+^;zf{pN3m4lA3`5Q#;xwnp3Q9JmwD5e!o54<C`8TXtZO
zLPcs{MP@>wkj$<+SK1RnDJzN?$Nk;9Lo#bZv6N$fzHVPAXZ)9{F{AFC`ZY($E4U_-
z6GKRHq^&z4@9n{=D<;?XJh9E}5sVl&Mk?pcF*~9}N9jjajFzfP7D;Yyu5@B4;k8Zm
zvJv%K(Q?L5ES6YKt`v=EoY$MYzV*vQPJZq~vJWj{<!&iC8kb|oyXDbmcgo#g#BL;)
zmmqw}$a1NeFb+dFS0+t6OD0v?g&a@DjmVYZLt>Hu_P^N;U;54m;xr|sAa7_oqGmJG
zFB8$i+=%?44wG7V`1%I<#08_|#;ebQS*UbY0T&pRcITGKqZ@)Uddhgf0vO4(3pnP~
ziUK)z8s@D{anu3r4p(aS9k{>%^|=_IXkGgcQxOSo5;r)aq4wAuFA<uO-yD?ES}b-?
zL=2qPe}~xA7ME3<>g3vmV~yh~ZlW}-m{!&0#pRvX-W0bZ0cJ!d&z#sgbo8)8@#gMm
z*YWr!FPi$cliK*ueaU3|@>Hr@+K)HOuJ^V|3THJK07p$3123N_Db9in3MFH&L>fdl
zmRVGxrr4CJEw+}R?0kD8dfgUNg=J-<M@z-@3DSPF6~hoL7`3-b$cyAH4`VSUgn2{5
z;mu~{g>wh2>qu)|n?&YLHes1qbZJ2?n3*I2mXjLPq5MX*2A0!3k(?n%F`sQVeGG+(
z6_(*QQDRtVVY91!_Z7gI5gDtyQdBlVqPbAN=@*hRY#bP%{S8tjq?09+b>aogD5ESw
zu)^lqlyffxUhY7JrL-Jcm}$0^&G8J<VRBMC9)lY}3TT1@L~?uRgDp~2GE9m_js!4D
zF+<XswqFT+nJ@*V==2eY0K=s7PT*68nR<kFI0*s>%Z=7}N1UnM@Ty?Nfea9VR&?AT
zY&J^~nvFG9q>|My%rgkGp6-03E)fETgh{~8Ih7z$Sq3POL9L7!jeGD3!+@2<XNE`t
z%*n8!Z8QNG<n!Odx7~@=a&<PiCa`8EktC6xw;J6VwISEe^og4SKsXFWDBgg52ayew
zzVOYj<ETeUe)3N%0AgpRDY@a^drY$&sNO*Nr^Q6xkV2S<C@ljb#bsDREEzHoos;JK
z7CI?RzlE-u$FoQy@#HzP`-K}!=4mr=V27Resy~dGI&m=c`h__ya}d*!J^OG~E%1HR
z<kM%uoYu1KmdM!N>9cJAY;ueTwr!h63eRSf`|y3PVP$+Gk{i?3L?lSWX_^-B*k_A}
zchj8NBO_{}i7K!HYA`Wum}aT%I@648ObJNikpqU9WyHYv#?`=v0EKs)ydg{Y*(REW
z(}y>*`q<JE8~MSUjg;x3ydP6Ec-UHM5~EE+PV14dwjdA(AG%V-7{OR%Sb`GB9G){8
zP;SAyuU69r0YZtiqJ`BviSw6|(vcOYMY5`?Y|R-#jHqD1l#`B{!)(Cd%{NDeLvjtW
z1`wBCN!2XoY>71k0Y*$5uQiNm$qwW;GEe}JrUs3VD62+GfHG7Ny3N@w#(g><E=CX8
z>bBBTIve+E_tlWLpMo;^oLL|WVrGj1$mvfgrQ{l(tuG<dEF+?`BrUAs(ImcW_!ay&
zOPC0llmSP&THB?izEQTmv0e+zH6?k)#nOf~aNQ%Jd@3dHwl^hCwmOq%G-e*n#Xk;7
zDSZHBlS`U}5@pQe$}<oByX@V#0TAj788rIDqjN^1AZHvgEn-FxZH<Hn5zsvP-m9R2
z@r31@N;Jn9{K{4XmRPpK*|LH1tWdVDy%U}qA+y|htbOklIwlx0d@)nir`)P7?6dj<
z+d6cFBHCOn&pbRCpHXd+pnbPYGLMoQ8hmCjWUxYlW1=FE^4^=EwV!&pA|){@TJwyl
zvYM|YXth9m)|p9+t;DQ`QxFP_JWd}mzV$wj_39pybo#7Sn~MHgHrKTEUDv0nJuVK>
zJ8UvTIQxP-@oD#_nJM51f;88+Ss!l^u&^f^M^^PS|M-v7qo2B9g!iec;boiNtivQ^
zkm=fMC3taMB5yZkbyS0_d#Yem%txM<&5Hb6Dwz5mn#TVX@AxGksOHV0ynL>dE}a!x
zzU-_hx6)0zwNhq`*%^*UazpLQX9j<Y%oFPQpl9TE#+7kfr7Xdw!;WQ@ft$%84tHOT
zh379J46scc&JV_4L$<b1UxcsDm9UeDa2x18Cz5*O_L-pz=n)|a{~jRZ5i!si<AZ->
zw==GcfD^e4+`_uShoO`@!~$-Vlu;FKAi1D=qcr!GhAa12ms-Vq%nM6h$NBO2oxvZW
z&REvNk*Q`Zh~35FzID&!`ycCe&hqJzX*i%)EWu<~Fdl7p!hx=YmwE(?D<6j-{-8SW
zY;#`xi$7f_11_-Ma-I~%Izvw*IA3NLY^eyOI4t%an%IB2k~j}2aTL#4fB%;FH&J#*
zm2=uN0CEWd3Z%>3#-{8*Za16)cjzqqeu^+`9s$prU)m~M1s_luE8mjVJ7*^U()B`5
zLkSnNE)(iU&;g&1{tmwo#zc_cN$t|oGkg7GJwxuCDMPx0d1J%L_&GS!HwimuW6*64
zNAnmCL9hTwRdE>Lv<IV+$=`jaqjn$>ZksLRf^KLFV5vAGIJ~3*UH&RGpXWk}#Hzj9
z<S-5tWTrp^Av=xyKUx_lqe<6~bcJ3Aj8O^>RMd6XCuXj!l@nIrZ<;7&vAoEeSS+1r
za5}Ov8A@LLgAG#CAC2dKcttd)qiamAlb@H0rvi;`Xy+%ZpFQ>S`&r0OOBp-?`SIYZ
zQxmDcbnKATV<fe0@i$jDVpM-Z8~*zEyy0DW-Os^2=5l!n1FWr8RkLpxJ$Y!2=Ou@Q
z<Ka+COH0Y-ZTr4@_+Z0dkhf4E*i=-Ud*h1NTYi<rt9g9)Q3-d{R(&07b=3uh6Qlqq
z>e^dt_;W)N8G{p+NBY(o?E5JzV{P@NBU8cn`#G^uWtd({SNAdORJB9MB$g_39w_ph
zyXRD|Zl=N($?CHFoV;^)eOU92=Ek;pd3iB`kWyHjC*ep00fFOec4!<_V{ndj`eXuU
zPmmMMjhYXWP~Po$-VXv^_b*&0HqA}-Jjs#c)EQrpkrOV*8tPD~-}O7$wf%AFahoSy
zyyDG0gB89n+$k&L<?01fLY}j&V$vr=<LBIj)*F{Z>wek0^BFmM@KvnqGROs6L8#CW
zGs_f8mTtrO2vfSpNC#W0fJw{w#C@mCwh!D63a59?nsbW`slZA;c4V6mza{*{qo=#!
zADuw-fs3kF>plPxoMJlV;rL^#YMS<}8nLdYqyGAwa9$v{XdK4*0Vy5vF==l(Ank26
zPzW}(Ah!8&_JU^<LTw(yDZENQQzOT|BDng>d;`yFYAe1o=_|g~XxWEFdhCbp{=Mwo
z{WNv}y6$wG$o+qeA`E^*<uopAE=jL*RWO`4B^)WiSx!tIQaw<FwXoi)1SNDrI6;ZR
zsHoW<VTI?N`4$&3L6P{m`1XkkHB&TrS2z)<toqi=_P`hcPdO=-Q?ACDA`a6Bqoesj
zR=m3o?Hy;Qxet;~6arIIpLvR4g|Z+jGR4bQl<zUN&?v$xN)<so{KnNRjX@FgoMhPB
z_{xe4zx(c^Up0HBmd2^v(<D!&((1b}o)>hSwW(Ah5)MZsj8+lCX*YTW8FaBspTHJg
zPgfT{)k71;4hT1`n5^Ko;V_TSnrIs<xcY!L8I<!scIk8Q9dCX~krbB<mAw3135CO`
z;R$E<4rVhrN!;4e(KBnrHQ(RwBOUbZl$3!c?d*N*3s**Sa(-V>RDkmj7#lHQVuqE(
zb`rj*GKs4M_&^&YPxKB@N*fl&>T7G|*x@?7$FV6)<C%pWV^vn7k~B8hd^QDBfPMAh
z*e5T?XIn)QWiP~q7gGr}LIK&mzeRQ)X_a|XhRX1gsI)XSAM0*!y}0}{k8CB_VACln
z<H!>?&n+BY^lsjeVt)*Xfgrr0wLLDsUVBjf>Y}j{rAFYoJP`2onuAhWm?QJ255=}N
zVk)*Xn(!^!{@ou+TXP$f2w_ZA%y@%Q02D>bj~X{xit!~bKLJQ#>+G!$8l<+dOFpxB
ztjZS+$?ly^@}IBmlS=I0Upl8;^75jR?CORA+M2t&yQ)Th=HVS@Tp7(z+&m;+6#ZpM
z>Cj7qXs=#fw>b4UV>BczU8NEE?{|;LwgWA)V8$?MXpPGz?C)O!<`zH^K{O#QXEE{o
zJH6uQ{)14;Uc{R&j8AY%0>Xx)5gCp11Ea=O;Lr-rnxI*rBH*?8@R;a&C}hK~CLTGE
zmd=DsEX<W9ML3m#86M9h$XLwdhR1+6E}b3S7Y(`M-&O;`pwgf{qyE|3&WRP|Zpcr@
za5@G@jCSKJ0=%8$1*ZZGd~U3`T}jz>s8x#c!ZM;9O^6#?eb#)_T*19tjvbdxn?I1I
z<Lxqa>R6dJZ9H%SX)@y}@G&$WCO_75ToQ&R*lR`cdu$&*jp)E65pjt#mLBvnpBRA&
zK(VwQtUtf#s{7tD)dz7oVb<zxtB&mF*Aqy27#Rn18UsCh8zQX@jps6ONjE5RSi^2D
ziFOWG=ba6lk7tcR6Jm=t-+T~_70jU2GKz=&<Q;Vhd3e1m$J>JPRe0Al9AVKw0Wgyo
zM{GT2pdOSjao{Ht<YNZLc4blNLbGc>-YRYk<%vcK9O#f^HAmLJvZCtS6;sDQI;?U`
zM^PMSV>;tbJM8GTcczX;hbB@zxjoabt2W2zP!srf|1jECUpF`8B_H&>1Wqf0EZTA+
zp2RM4w;XS1mgZy4<})7-io&_rxGx(jWoXaQyok7PPX}(EorpM-!zaM_0NSJA9okDI
z@P>jYl*6E_l@#8*u+UVrd5T1F!5a{~5A3Rux|(C?#o#d6XM}*yaY8a`;&2%=d6e`(
zo>W&tx?9l8!GlPSf7}32M`6%Ug}iM~-jeKW`(a+ectmC#D8g`;DG<w%#;qIW01hD~
z@FjZyjg$&v)kH^9j_#|)<R~RmK6W9tOG-?4sufje2cDu^CEP?(oD|+Z6PE7?tGyD-
zEgVF}>KHtW@c_w;v2a%y!iA)}wFN_QT@}DF4wTXpeRzz16Y);W_lxjl@%a+$=n$_&
zq+m4s4YGKUtE2I#v>f?xgcAzBj#}<t2STx4iXbzP9DO&sM|9v^tkF3|h6ssr*<Kf0
zv?<U^Ft1_AwsgZB^8s&#;4@)$0Uys)9L%a;)a$#!MZpX{3Qigdr)5-1Qex<CM^8Ol
z@(N3gr5UI>;o}Q?rqWSkWq8FTG_4*(6YH@?7B_`9779yl$#5<{L0%WLUIcR0JQ=32
zBnV~T%eN7er%7qWM6|s<a%9(b>F#VX-VuuAN!hqbQZZ$^1ThG55%7#~S-~>>ZY&G5
zNLC1aqk`!v^tDV`@0~?*gmR-e)}m6hftU>&*2FlbxO|kHGpYh{qZu20wdhH@(Ufzg
zcv!jQ<mCej|56EaxAlpc!I^rXnu*VRuECE9EJJ$Mh6({Nm<UC~G7?JR&zwjBAe*u3
z4Xm>JOS?a38}K3D)eRXCu?*NI!gt-RvPuB6<cLY_VQ%~ihkV(3rqFnqF<CEKZUQHu
z3JMUz@_W(act`0G6V*wD>JyhBup;Nvf->;66}oS5V%jA+vfB468z$8n1`&ESed8Uv
z1;aGHu`-BI5rz~jPTjM_<~?=q4=@U?L7p$Mf#jv{d%7U~aLa@D<C#iR{1lMm4&T0t
zfn`9Y+juGm;rX)$Awr5vIQ+c~N{b3m2;|4o!~lN|h_%jeisLKAcvlaw@=w%YfzK$K
zL^wdON#`*7#{BGe3-i(3PZ(!>G-MR(=d164RTzprS^w;d^5%d2wqJ7GD_#1?N-cv2
zXb|le^o(ZGKmRN#^Q~God3r%gCQPr)&is=-|5=pLc%)Wp_wVzC?Ar{2GI93IKbZou
z3H?c%i6vZ%qwSeEVdI5*1!2lDS^IOOKZ`Q<Y{4en34u|A<<JqMW!Tu!>0aYcsTBS5
zSEOh{yS5rV3dh4gNamv5nHhVe;TQ(lF=;>~sCLiDF=GK80kTim!4+|EE)tjhTe;?9
zdkX6rL?BXe_7rnZk41Wo6EKPaJ~L2bcMdu(x<u2(lNSVA9gLATrE8G+7t62B<LH^a
zF=D!r!u*LDGRwrj|DwZQpOBx=vh2RwjwF>a+lNzYIua#3YUs^>vi*GBfrI8lfAtKj
z5F0mAGTJ}2nHiK36L1-$a4<+-Gb3J(Gwj%d1nto=H4Np@AInh9zd?P}0_qYQ)k*%$
zfKfrH3R2Vp9jIgkA|^{z@4aD_K}&=fm5jk{2!k~4AHKgCS(*5di5>XcX&Bm1nmrwG
zDzI`-Q{kN+K+D4$tYV4VY|F6wr6>^ADpBhaf_Zw+)YDO^@|cm4f6bxYxQ}sd3Zsm$
zqD8C>04WjUXS5CX1xnDg%=s2FjFAE6D-*oxJC4q7?0s}LTQMUiOu(XU1Y!YK79Q3&
zdAQqg3a0>ivXM$6ElNT0C^=<Nn!IOZp}A3JWK;e)6F1)^0S<E$%uG1T0~ocb0w^*P
zQ1NjC66P8O`9hj^vI+Xk0(zj}3mMILiCV;y<8=*K7qMHR);nxd!T6$bMp~$hQIs}C
z)%g-l;2X;DL60Sj@^7Fmf8>K@{Q1T<Qv<vk{!AS_Qz7_=Y8t>)aH676B&-UdIy7k>
zEyScDN}r5XeCsern-LzsOeQ(l0o#LDD#0qkmMRZ3=AUOXa5ob8)R^thb&yToGW`0I
zo0^$t@?idDvJ79wFvz2l7(h8|wJF5Ec3@VRe6mK9w5o+bTjeu}^QW4nYpT*Lm|BN0
zz7oOAi;w+6wys?Zkc{;$d|!odMe4y@mxDPfAt;x9@$*9E&<kub!O_GH<xZ7uY1%v$
z)Wj0Mt}z^i_jxm(MgGn7n+nmo{y0Njjli4<vfWXkWXqmBwLL0fxEN#JO?ltupsW)v
zgl&Tew+IHENR^2TNAw;xL2{vjXxuTcX)Bv$1<f)Z14y&<V3nvIjyD)m>sw<X4=ZDA
z+S*J|)7$ab8_1|K1PxtSpQ=D*{Hb0;CKJr8m25QDCP5L*+Jg^oa6uWCxOHn~Ood}0
z<9dl<-VfT@^|YM$Nwcp)EFVgr^)%6At%u-F!=b>Q#MNPg)>SAdJKimITh?+nt}~S4
zp~55phy+p@O@TPQ)hfl#8a22QO>b|YH_=tp4Q)BCp)6Vk*?FfGiy~b}!UJe4+bSIK
z5R3H$@?!F!Y<oA%8uXfH9<`R?o#j}mF=}LJG@e1#kXO*-8Vt|PlMWM36b3>#TGYf6
zc3Dim<M^~xDYO!k5gHH_QUzCrS&J1kZV;A=QKhgRg)(<CMGF4ARTiypps5t!qm%)K
zwX|%R-mUW0Ft&{Kl(sfyt=pTXiHqb5v4TcGGii2%-p~IBym~iR&TgV200000NkvXX
Hu0mjf%kr=o

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/74.png b/src/assets/all-letters/letter-imgs/74.png
new file mode 100644
index 0000000000000000000000000000000000000000..96c99387edb6643d048bda60898d326e3c2f6c1c
GIT binary patch
literal 9374
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
Y00ftN#s%z)YXATM07*qoM6N<$f-+4O0RR91

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/75.png b/src/assets/all-letters/letter-imgs/75.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0464107ca5a5367efb37e2ad9b3a0aa3ae1cd4e
GIT binary patch
literal 8251
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/76.png b/src/assets/all-letters/letter-imgs/76.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bee5d41cc67851687e0fbb63cb41d917795fc76
GIT binary patch
literal 8531
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
N002ovPDHLkV1h^zi0c3V

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/77.png b/src/assets/all-letters/letter-imgs/77.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2a4a939b6e39db99aab63a30f7883eb0474ca22
GIT binary patch
literal 8476
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
KMNUMnLSTYY@{n`@

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/78.png b/src/assets/all-letters/letter-imgs/78.png
new file mode 100644
index 0000000000000000000000000000000000000000..900f91f8afff37e1e1e4a47a3f9930192aa81e0d
GIT binary patch
literal 10530
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/79.png b/src/assets/all-letters/letter-imgs/79.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b7bed50dce700094f7a89a9ccf7687a88759f91
GIT binary patch
literal 9086
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/80.png b/src/assets/all-letters/letter-imgs/80.png
new file mode 100644
index 0000000000000000000000000000000000000000..babc069e5ae520c241ab3431500a54149a10a093
GIT binary patch
literal 8203
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/81.png b/src/assets/all-letters/letter-imgs/81.png
new file mode 100644
index 0000000000000000000000000000000000000000..933c362db3eb624cb17ef8d192134c68077579f9
GIT binary patch
literal 9635
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
Z{Xa(se^%PH-s=DW002ovPDHLkV1nhx#<l<e

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/82.png b/src/assets/all-letters/letter-imgs/82.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1e75d807034133ac5fd4818b98bd296fdbbadd0
GIT binary patch
literal 8431
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
RA4vcJ002ovPDHLkV1k<rJ0So7

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/83.png b/src/assets/all-letters/letter-imgs/83.png
new file mode 100644
index 0000000000000000000000000000000000000000..e015d11eccce74bf538335e7141044bccf45d001
GIT binary patch
literal 8497
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/84.png b/src/assets/all-letters/letter-imgs/84.png
new file mode 100644
index 0000000000000000000000000000000000000000..532a2c74da5dcc1b11cdcc1f17a7f23207911b0d
GIT binary patch
literal 8011
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
N002ovPDHLkV1nCOO*H@j

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/85.png b/src/assets/all-letters/letter-imgs/85.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea347866bfc6b01c92fe0123c6e3ca0f69b6b92a
GIT binary patch
literal 8928
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/86.png b/src/assets/all-letters/letter-imgs/86.png
new file mode 100644
index 0000000000000000000000000000000000000000..be40773c019bb6123be66b6e75bda20ac589105c
GIT binary patch
literal 9329
zcmV-%B#zsOP)<h;3K|Lk000e1NJLTq002V(0037A1^@s7D2m8v00004XF*Lt006O%
z3;baP001N?Nkl<ZcmdUXcYsyZx$n16n_ig06v_b7q$>i7BG@bOY1Ei&i6xfAs25R_
z+-sRcy(T`zsPTDi$xW{BJrysBC7NpiMFmk&Ix1B<12asYGpFtM`+aM#bIuHBkiqcB
zTX6PX<y&80eeDtHZMbz@&}E(3;{y85Sbz4|K$9)_>WN=Wvhje8xF4@`KX~f~IqxC?
zmW0&p`Q$#7eadp51(Lwaa_lK5Y4V6sBW1|ssdw5k1zP=wi$=-I+a(zE$qO5brFvkE
zRB!E+&mTMY&W4w+D{|ti{yfWZ6LVaj9~Be$`S8yb7uDT_D|^2DRD8amh~p!|gv`12
zCy2Z9(6u)xCCBH8g9<60kbTvCzt+O;4__h*w5ZKcQdKUG{^Vx4^_eF%O>!=ZK#qKn
zBoHHd^AnGHaZ}N894$Y%$L-?+iwOy{#Cxn!3$oqqr9@tO=^}r{+PawIP(Yu=V(oJB
zuNP~XihO!uP3*+8&XRaMPPNHN=gySK2erzn)Ar#V)$y;x+Y822p@@ny;hi^MlL?c@
zjdbFx|Kx61x=4<gc!F0%v4JNR7boBsAIY+inRBkaUf+-Z>{hU1JSFKbw)(@@+#s``
z`*&3w^H85ujYchyn=pCg(s5V+*`>J|9KhK))3iyCVb<8JpViI~W#PJsQe+)JQw1w|
zvMgQO53h)6c@lx+KY7mb@PZ_;7wLjz!9CO5oZNB=xXs0F;Y1@H*oFW21GEy@cH=Vk
z=$oZv=J&hQ>yjYig}*)p&<RwAfgJiE-vl#COW;*AeR|H|lWM~rBSvPMa6i1?mG#Z?
z@Y<a+`=XJwpnUZDTXOuFr^4z9S-O6o9J8`Rq$Pnz(h0<guY6{<_(Bi8`=7s;?A$_`
zdchUq^PAS>2)#AcDA^EptXm<QR(vXjrByQSl(S^dswEQeg|ZSf(`lFA1X?M!fB&<8
zRt9hS{TzKio|dj2HdZ}J+Z#motgmog9z({Bmq<su<~@Deof@|Yy8t4gNa*Ek;Ph9v
zUxu@<`;orMWy`+3a>d=rPReirEzu*j@e|TiGfyo*MUxWke+W}v)8BZj=b<p6Aqq(K
zNOfK1iB)MzCS0#^z{G53tgIaviV%DN)1J>Wy~*wNto20gmYp%VU-Pt3E#m@lf!m`Q
z?2AToCub*OZ4Z9czQdNMzcV74JwD(@-Pl+Uuq_yD|N6ldu^uhCUx79@h#!)QO+<o5
zIDlFPM^sktf^E&Wj`i)DHCjqod&zIkAHSe>#(vy)$=LOm=iRl-o<yt7`Dru~mGdt2
zxqg2T-D$M`eDSTDeA;8f=Fhv}d%*WvI!o3aH1FdFFLaBGhfCeAB``4k$4EfOCSW|?
zAt(K6QI|Tb*hMFiaDAk1*JApjB49VbKxFJ!949EB&6$Y-tZPVOC5(J_f1)$$N>+A2
zwtc-(HhsNLp=0RJr=D@Tgo2KI@>PSBmPWFNo&9*HMU~`a&#Sj=kUxDRZ+x;t)_v0~
z{f7*efkTH#K~WKgma`-)%O@``+9s3#UM~X+N>U98m>k!w^>r+1uWqgjZ>^YzzUIck
z#-CBx(jJlg+>q)+siJFH^6CQVa69DavnLF1-xP^f{qWy62iz}*#B<8C<+Hb*lyyh=
z<@o&R+D<qt$jf8r1bujIhTUWs|9pV}I6UU-f(bs^@!Ix0HL)8BOKEkDjGA_;B-kM%
zuyIkL9A^?<<4eR7GW~}?Mgfo~FpA>GpgLjmA9dWx$fQZlkK^CtKbwuTBVT>;1>(2L
zM}K);ST6xZv#YdyPZwt+RvT=u#`NEwd0Mlloqw*9urT(Ww2sX<l=rtHX>Qo3csY9a
z6nyNlwCCyp-P1q+rPd`JwMCs-U1$;yPqC)cWoCB(<_()T1y4%_##h4VHVsx&Vk?^Y
zgh6!Vu~S)J!^|751|T_RD={^R$WAew#M(c*cFsX0wo_&WHpFyuq!S}jhMgPd=Aj=a
zoXOB!eW2-sl24H)+bG0f+~_dD5daca?HiE-NFg|ItQN{)ug7;L$l2q94<WzTh!45~
zh;MUzfy>Y`o<;xEFlS|SvSoyf`NaQzToPGO<gt;QSkdE4q}i4q%==pznKdCW*Y9HS
z;Ko9Z_|Jn@*F3y3HaZ>oEn`CC0=~p@&2y#Mb<}^d=d6h4q{AI3o>9H&6&_g@yC{%|
zULTCR_rT&0fyk&^#|0iqhsnze?)K6Vk=V?_717e(Fu}S#YUH)rnYlU9ZL31T;tzL8
z*^e)-oeLr&cTX+2s;Q~%4@XZLxoq$em7C#wgFbryiwTj=c;t)=Crt=9#nzov`(AAR
z-N%2>w|dG6Ma4tq>(&2p(<%3U@_W|rDfGz5d$lJ%cg*p>x;n4Va9Q>7Z=|7q1$tF&
zf#BY>5ROuea;j^BQLu~oa?KGlrDpWyvgnPgWc#q(z{MBO?Rm|F$~`hd#PjbxX+*4J
z@0X!qAIxewlLcLGj%^x^*CC`aWJhe<@O2RO1%^z&>#a?Spod3~j4b}`Ip2eezEU}$
zpXBD}kp*dPXq25>x2is<4XYXAwv&I3_yH`yhK?B}rF~1$F$FMDbYxH6uK(5d+(&Qh
zfsf1@+4$1cBL)u{@uhHM07Acw!Tq!o2Fh>$xLj^Lcc|p&hopX2oh<)&sRTn<Yy&7O
zD@(>5I|=K89BF6@%NH9OWybglx#z{za^E!*M8Ywt+rIOTit`@-pP87+sFCLRzjO=c
zw}`vFL!3@<a@z<~7elbXG#oP=^k=OdopR5U@5uwVoGKw}I<E}V43Yexxc{~mT7g+7
zmP-8*k>|_KnR9tYMk1>o8}Cm9mqj}p;Rilhvv{%Wt7}x)zQe2Jh!IC(=r&6iX3{MU
z_a+vC89HMzrK{yAG)9Ao;M`l+ZNl#x>>JRL6O!MjNJdSWDB<R?xY2}kG}TL6A!cMj
zDLy#?6NG|!;sk@z*7%MX;T(xH#3d`IMrSr0p=>aN4#o-NtCEER9h?XQddi3gKV;$%
zY25P{X=`qhKqyN_AAgnvb8;k@XGXxtnkAAK-|P<vO&p`7P<dxej=R8U&J0eRUZKoG
znjH1W5t!hH00S8!OtRdIGmp+Y;WSL2LBS5S7S@&%hfa<R0uW7b#AG%ZOOrA!&ds0n
zz^MxPA(2O}!}>FxnjYVVZ5^veH7;gwmRaIp-0tLfGNq$FaJ;0lIwQcQ6>GXMam~No
zml3X~%w97x@w8Ji;+ps9W6At6C!8q76=liv!9>hXnfd_RLIVFx<1{lQs7|L;1{LFD
zPfSg_m>X&9kQW|$)BxZa2xZIZKe|-YUHvQNL&T&0p_3%j26gi<iG>m9NF7TZjx8gF
zpbMOr*tKPwZ2M|$vgqa~I52yT<~4K*rPDx^5TAOWN5^=h88ATDaH!6MxS94Dt67a0
z1jfPo^iBE6+=m`cGBNwPCpB*CBnxbdQ6`v+?hx8At;lF3AaL@89~^tka0h{mS(yw2
zWXkwI(^oxkR}$V3)i$PcRIaAj^r=<ONp(kp&0A--Db`e2=6jtH*6F6Z=0um3NXRVB
z3}K@*)Ib>n2@^(BUfiHZ4*6vn-dvek;S6(xf{00mytwX?!MA)t_f24~<9-!Lh=Vt`
zL-EpJ(%jB6jOnDpgCT%7#Gp=G`5-*CXWt2=A)46_Q_L(k^@z(s-&J+)YgqCA{}^r?
z>-#x&sc*}~`>m5?z|Tj8x=gAw!FA6wO`?150n)DH`;8NqLJM;Hq`XS(F@2%waBx*D
zkXU8Q4))#S;yWF|t>dy!aopHEjNeyr;ELr&pRwh!a9g?02~4QPE^~8(<RgEtEj!rv
zL21IxD_ewRLm?RWFF1L_oKIz|C9tn_&^pH3>jPWh+-Nt>xwWRfSdedhe=8HWj}82{
zziroDz|=}?u~2YKI@bSqZ*!RK76%bk%m*XSHseHt`|jy*2a10y6X=6ZN00JLAg8J&
z5Q#msA41o;mU-+U(6fxerqi10rP8t=Tn`!F%0#3+mK}^oYtYFZ4;+oyANZ%*(b%T!
z65MCl&!8K+Q-ZN_E<0;egGv|3ObOE+W-7^$H*1`KCOYR=v9<K8->pg166DH3l3h|5
z?0~=4J+d-dVXJ*yJEgFE=s6>{?f9T^`W<hp-`KM5?;cyn!rGJWk0shJl|bH)PQH7=
z`>goLiuh}{jCQex$+_pF2ae5;N8MxU>-J4t_Qgi2tSo(Z-L)eMhu!>U^GCI(_YF(O
z?!ux`65RGVs~%9;jD;`NUKAQ!klk5aI#PCSd7DUHc7n0%;FW8`;aEj>7N-B+aK|Z}
zAG7*6X7JvY>85x*JeWr>r2}Wk;{U!rG4&UJ)efDAGKI`OF-qdGNGn!gSID$8p5+1C
zg>E$1fF@cI$_gYIAVTdoxbvrbws1>H435Rxq_pB_*}G+-v^8!2c_zZ?c^R4D0yrGr
z^K$bZbbg5lCam49mR`-q$pC{7tGF^*`1h-2<<dE_FKbY0PG|u3duB9;g<5dWl$Lm`
zBR`Z?u32zCFvO@OXd&_DjK#yokyD3rRuJcl>G!;QbQ<J-Q7guN1@GT=>QO#_UVac#
zS)y!)Iy5JtO?8qq3>fAV4qFVyRFR{0zWmdS>sE^<qb4ALv-p8C5=EuOQc_li6?#A-
zI5pU{WvjHbG-C*%Uzj-t2_^&lB7yDUzSY$-WW;c6&u2*j6HcButXi`(bj<ZnN0YE=
zk?zLUq8)Ruzj(@wYVifLq@}G>3b3or{;*;|e~CvT^7-PACED4EoRkcdIy*NPhrUN+
zNr>eqnZvHx^KWjJE3gAFs4|<IzSpGDPDV4DBfqfl1t$xHv6Osd-j~WiQ)^6Kd~dUa
z^0MUElV?ay9tjyHxP3lo<Zzih<9L+k%5Pp+sit`8olR0RxPVPaataHsPEzd_Nr~bW
zY<+1~PG$c-?Sapl#NF5``_8VE=RrIx<d^Hu84i3n!A1*+;avRVx8KF;-6x|b9VNx(
zB`7m&ai00t#am@0mgb|Dwu;*qX1S=p1Sb9Ke)LFoKTR}*SNj4y^ZKMgq$wsPIYGJk
z!XxGSnZqHGVSp6_=r8I*17w5SSBm?Vpv*A9PRxh#{(@<PWR%NJ4I|3dnE1;Igq<Mk
zb`R<k?vfiz+nn5Bv@M#wcFC8Q>?>)I!t$W_8lY$FL%2BaFe32DAM6bcw8XPyQ2$a*
zTEyr-O%&RYF@0qB-d(afd#gCltdYK<K&QL%&Y>-h?f$0S==-9+wt+wV!wx60^65R%
zNK+XPOFEkO$;w5a;Oql~ceY<9o^rh46itZ`HCJ<N3yjBM=KywXxOC7X7368t1Ps}P
z{9FadXK#OKmJ>V>N5-`OafXCD!V+ojlvrm(I$N6?0ttVxESOsX0G~8BMpQz*M}iZu
z#$7R~9>(n@wtrd<%puAZOVC?K5HSO{ksNTtG8>4;=U)VdX+{_dZ(qR>$;k>!b|E|q
zW6rM6=a=|=W|4q;aa?oBQOBblNwiM|mw#jcym`k;W>sbKm~WSWX7R*YFr6~U0nL?R
zM^9DNIG|H?#F1E8M^qyU<1K*n9K%S1>oefIe(N`~<*Vf~WZWe9MJ4H^1*+7npjaox
zfRR46$^u>07_@|0r(VoKYZBZL=n^m{?OOVdy^~;6%_dgTf1vci0UVqG1W}2{+fb%Q
z263(^k>->ZMdsX|nj(CPgfSAqVF=>TD+(q}W(n`ZdYB}%b(l<p$Vi7~rj<cX-z;<F
z)hC~oEo)aNDV=rol`{0`ahhg5z3AeV#-lO0<tYrH9%Dw^G@k(=JQ<~MUY1w$TV8`k
zjnHciJP_ostuc8qOQP5ZwfTHk4;}g~*iyy4Vxn@$pj1u7+FRO^>G?1GS2E7X#kb$w
zC4HboubAjNpkEhU?JcQU{i+Wab}8#kqE}3GN8H|`>!I%1a@IB1?3Z_-jPJ-qv*KR-
z%HO-t7&SF{aj#2$Pl@luL`yveIfO;8{xylevSvs!ey|ZeLng4cdo~+1Mbk_T3f*T)
zV)IE+S#o_Nt&RJ%y(fzix#SnOYEnBhjiovdZI;@fm|ld-1s)(IHDTMaMaVJ0<XI5(
z9cc9Zh7GeITo+(VaeXq)h(Cm>UpGP00gSMw-ysKB?UM--A!jLKS_!?H(Fk;*NSW)%
zz#}oQ@B+`(7Q8UeCgqe%FIC2Ek4PannsyJS$2DUMsp7|xktQ(RG%G1l6s9ymMvw+{
z<-k-k^#?<;XWOPEjR_}DOU5m63^l-S1@dqrO@X*^Mq`l?M3~9Ip_mm6L)JI!n-C@a
z`tzkBhKn9H6qfZ>=84h{UaETFqai7f5lSIUH7E(&2xJ14loe#aF;js&k|AorNMg)l
z8BRemcG;bGC@kYf5K2nPnPYHMJEWoOB$k03f61X-xhA&&GNU6|0CAcJ|A0BkWI9tU
zP{c5)j<{(=$u#E|Bx>uBp=2C$j9p9Lr6yA9F*~r_ZSgchZm9+S^O`SNGjYCcoaHGv
zVl)9d$*5&hs!i0i4xj~~ZZB&YMM;@}S(L~GmVqD`BcW8jSM0rvPo>O8K^O>c;>K^7
zM~vnQHGz_nQYu4?Qk&or2MmLzAbBz*;Z2TJw<T^hM|_O)&DyGSI7PtcBrY?vbO2y_
z$H0B(Bm>A}Hut=f0T~93$w@C~Jbh2w!lm}XQ+WKG9E-ayiT7|uZXKC5eD-+XWB)uR
zgqd!yf-~#5{yDWNC+k(^-U3sBhc(O^D`Ro({cmUhXZU>a#E2tn7A)J`80$vVp~5ED
z#PgQy6rDEK&XB-S1)*1+XzQOkD+1pe+rQ#Jm+oxIxVz8|*C8iuvp!@5=@qY>F(`ZX
z*wCH09(o1xotvgeq0b53k1OJX*_R|-=WX4LPOk*GJH`hmIidJh{%BzB?PIcTVsX>H
zz%6Jxr!kI;KSvd}HWo8}I77xQn?og7R=?v6taxt0e4%Xi_~3nRH~|kx^kWwRRos!k
zBJsBjxZQXlx>2HF#gW{EFMj83<Ndp#xckr}=$-;@lKkJ?s`fhhDnspmV3zHh4;dwo
z7pk!UZ%tH0^H=QdXc`}wg^slro{-OBkO5b~E-zdj|39^+<JG+M2b)C8KHnTPrJLwM
z3}y(`_*T^aG1iX#{Ej;;?mFw*Leb}+Udlt(e{A^9%0QEdf^qdQ3W7NHJaoyc!z>;R
z3D=!DXH{&`fmnx9gZWWsu3nn+06lz~N{<)#Vts0tiMcIvAf&x4`|f>)FL55u3?Bru
z?*?3VC+O3)lXzj(5{%hz-!?XI+<|z**^$}c=>|k4;Qu0gC2@nB6&r}_>Au6E2$KEI
zp3#l>Wb(R+)w%i6J%2#P59snf*V&Dm9cTP@wJc8pd68NuuVrlT7EFcbcv)~J-~Fwj
z$i0W7IdrFQ(}$!CZkCn?>Z^RQgcHeY*mK71D^eR67Bk*gk0>iB3N}55S^h=5#t@Gr
zHjEiN;)?z!4qh7VXbzPmoIp#n6IlJ}y2;yj*1hgc{1SnnZ{9<==9z{n8O1jS{l)Eg
zBrCi8!jkgw*wk;6ef6s`8*80%V(sEjl7NR0>6J2SYioTooOfpjf<+GogZa|gS&!YL
zz1SPe!p>xNZB8)oyJLRwj?NSKUD?>WhT_jx)Zesa{kD68SiTmQ6iVNUV(C+ouRD*X
zH6;YsMWq8fQPC*wM_?DTtgI;J#~vKk5+7jZI4_=^csV!bkA|c2r+B3CoT9REa^$!l
zOU{6)65G8@R($rjH0)h=)2a7;{siXrsi|cz71AqZ&?Cy-T}^#TM`w?p`Y&i?KHS9H
zC|lP5UBA;vB=FgQ&;JVg&rujdhH>$wD-ZM_Z2R1L#fm^#)bj$a*^$qGCYUnD`S}_z
z7N?g}`TYl+AtT0ICQe?txb1szxAq0uzV)p&IKw&z_ii^EJcst|)eLm*du!sCpEPi8
zG~DnLzc1h`#KCG13yHEJr;87F<{BH;L5TQB953Q*0K!8??Eq;jRRV?P54pNRW-0qx
z2u&E|(XhJXkW_?LMxF^S`q}K<QVF;0khRPID0}NZ-W1BsI&1n}3paTnhy1c8=@o)6
zYG)KTCEDK)<y4I;DL+a&BMs8DcMSyMIV-OUS!)~1QUNJKDeI>O9qR#BWTQmZqBqgI
zQd1P{d*D2m%JXixHTYtIv!~tr){<TckpVb41ZF7fG3ynX(d>kB=f<L~vU~eNY23RC
z3c!-zTW-?2mU$DmYsURiTJa5>VJBUg_U1S9Y~abMA2(Aq%W+EFVEp5SzdrTJm*!lQ
zV_^>EouY7%wLg1Gf^BuD;55sfK!F4J7z`~&t!G>wSA=j15|2f7!$6yZTGkM-YN7B(
zXsZs>Tr3+_AxS8lFEM0i=SX2mkrWmcO9;orW<LPE6fb}WeBsv4j`ON#KK_=))0=m%
zl)(em&bImufnczztP*G4S-E;o&W}w3ili<LbK&DpC;~rRz-Ziuo9$b6NK?aJEjL%9
ztwVa9De9PpWSbR@4qrntKk_caP1Wjw{iUFw2%jKB@z@a2ro&E&y&gs?!AWBr7neKQ
zTbo;(8ZW6j|H(IdqX@ztv@(|e`L?`%ePU}%E6N7w;hM^U2bg_z(N;NnSgBN(<Y2N1
zl-WL6zp+Wy?`V+;L;6T%1%}c{OzL;<md)!oNDB^k0@yQE4JyY*DeOZMSljU=vb1lx
z^dB@(@`?(e^pLFI(kPpDx628m%5bEfg<4QQCMGW~*eqXdZI<s(8z`fPmq;8#bX#NV
z-nP!B?^mDq)IvpnkPlr`d>gEbIm0d|{FA)=q5&`s?nZUuo8S)kCIqj^mkxXq@Z1|4
z<jiBLqzIoByz%J{+?v7Z_SF7TS%zkeOZ43OF2gN|vZ^ZdGuvh3+I7+yZii>Vw6HKc
z#QefsslhjgMdhVX7A_cA9pQ$}(Ef$8vmq=`gHAziK-wa4iMGdN3ho+we_(|KcEsR`
z&Eg-FC)ovgWk_)O-z#MtlxMiFTwPEfEN(6-DiLRWo46nE!LgagX`i4tmkg9JgkQ0#
zK_WPfKeAt;l=jI6FKF?wo*h1o($PfVP2sj?`R2=YvS;URDaQ4Znqh;bptKxSpcVeK
zHlN&!^_rEwTnUG<`IqOHoKLV;Thf63iJdpy9RDWw5t&{ttveg;Dmd-8_YuRvhJ*5q
zrRz3kjXiD#NWqF*aZ#`ZZJS<!;MAj|#DRQvwj+~A@Zt^v+p_A4?6C`Ef^!Hj;54_s
z&5>t6b7cNXpPV@{B)=S2h(cJ`=s{tv5_F`ZLOh&VA>g7%;Wh$#PS8t8Q(i>cgYa0~
z9+34N($>&8YyRESIt%+9`MaL(-&l6+TfcCX6?tW_)R~wV&%$N@p%5l4ezznVj`((O
z*)4l_)Z;4}S{i*7zNRV0r)GUS^3j_I#2K6?i7GS&mDCDt#sI^;XH`p)62Xi-d*9j6
zE}M3>$x%c5NN$!NQ}HB_M)p&pS8NoFsTp`_#HS$}zuYLzyBZ{jk&S`+<W4g?;DV9@
z89QZ!nd-xXIvYDAhGy-;lW}6zis`^2%op$OfBDm&IMHQK{KDrCKHvmGKtk;k6<9^5
zwP*7NS+U@Cz4q@zn`bb8<pK9ULOC+>*y&Qzw-RJMo3ob(46k9hXbK9i_>iYt;xwXX
zdKB`KgHF*&7a@I1oqoi70_F?=cs-q37>+V=T#(wldYSB8zuI)X$swG;P)0n4rdJ_H
zpL+>Dk%32pFP<NnKaY@*aASisZ(S?#XjGhnx;)HZ3Obzttquf9#tp-c?%KsLLKp>+
zVXhZ+BIL#-8g2!050>W!TAu`|5}Fx5<`YV<k)TA+6!?Z^&?fYV2xZA~Fw8Pj$Kp1)
z2$L$qb)%dtDH||Q@=Hpg41Bby{S7-~#8D-fohzkP1F@pzeiQiuJ<z9;IBm)4Qw~|!
zQy4n9k57vjtEfU)M20YND(G7!Lnls?og3C-soV(>@ekS$<rPTH$njD>=m@})fI+6h
z6DFA^4^|-KJ-p6h;FwSAo21Siz=tXqZ_=WD=<c?Th0!{whTd9=VEG9r&y=S6I@z;j
zy@XqFw+~)kjH@(#2OJ>*d{vde-8~)(S?@G*0xxeq!O-f3K&M|x@NS9$Bw>`Jq6@FU
zvRrD8954NckCFD~Ml9D`B&VPR*K7;)It%$p4|HXFv_*y3CSipjtX`1;4T{O01>ba-
zIP$ckB-4zml6V|wJVkHDXnn%5HepDE-s0e|ew0Z;AAX8x@TxKalfX=vLE)2zu{l}<
z3Z`7YT>%ClWr4Ax0RaGA3i%G!0eO8&B)=3l<vb`7qu^A4W!~T*BH}X|r=?XX6b^NG
z?Z@P?uBt=dEH(90-a*e$PFaR{x^gXTHbc^9P#DTU1$+6bI4Fq08ijdUA1#C}%i-vU
zfM#MC*ObwpN0gj+E~JPdglbmrU@2j1eWMsQ7lYIa_4e~G%JTOY7}Ob_r(SV|jGsPL
zOH`mVrvLibQ?g;X`Sc<~Rk`ZkT3qa^1jkgaCoBMsXBrPrR|FNQUPG}Ev?;UCLREf#
zPYhm>mjA;aHKRu!5ND(Vv)Bw_<MP!9RK$5V{!~gUQ@2wxpg5$g!>Wuy_(NSm48c8x
zj^@<0t0W928*e=Q$7Hg5WYU>uC2!7kFZ-_P!>SA}uquZP?vcmzi*OcbK5pG~V#v-E
zs)r7j6E8Y1Q_(*p@31O^99Gs0?2*xSTyakibz8Q}7xUjq&q~HQ$@{@=Hz(7FBXZc4
zF?ejxAHKC>uOmJD?WyO|lU?GM{_7pMu76NVsV?<;li=W~qX&Co^GmOek;YS(?Xg*!
z94<Xjrp<8b_39XX7}$GP)C|DXUC)m-Fa6Ql*obS{SX?1|_SOPv*tH|QI2k|v$}90V
zd8##?<dY*0cs7A!s~KOxv1aKo3K%;a+o8e^!=@hVV>~id3<zgn1_>uP9RCT#xS1o6
z0me<4SJPngV5zYbLo710Iu}#o9DHyw*n{r+>S$}hY%z%GaYEjo*Y)zOg&Z~Y1Q~Pu
z6eNwX>2wT#o<cmM8RMlpyqP+12&Np?kUG?&syBmIaz37A>tsdiv!X$6W|L-~!O54^
zuu+Uvm>Jh~%(kirT1(XMpO8UgdT1(`knnQdNAq6CTA};>6~Ptxez;3}nJQKd;ms8o
zxBMt=Pj*_Jv}xG%a${V|%VnDJSj~e=c&cO}CtXB9YujvV0j8-*uY_L0I25BqJ%*?>
zU@$-RD5i~vu?A<HRYL|cbH9+CUnuYV@42#K;d}d)G2@^9Ww!EWIU^^^E9h8bsSkR}
z&>Qnq1mIYQutsrAQ4y#QSgR-knQa0?0e`gya4L~$7M|$HWVR=yA~$ZPs?}0H=t+DM
zDG+k*u8bO{$q2AY<sfXEV!h6lWqRPEswYMK;EvlQJ3m*!DIOPVT-R84CsCsidab7o
zz%dvD8HH&dp>lv18XYWJ1?g#@0-Jh@g+dzu3g!Ltnv0oQlNnQiZ?a^FvL4DTFPdu~
zRFo;t!ry=yG`h>DwH7Gj`-BV5*Q>{tCfKLiRS<2)DxBe!2v}xiV4C&p&vfq0BM!qi
zVU%wb$#ezG!`}!2D(qXTJV`f4iARt?WX4*-q>VMmM9S?9QsPIhK205?=zhb8$+q?D
zO!WgiM^2t1Q_eXZ%$xRYa2faJ0!)RVu*3nTDWDZtzx_Zq4Qm5EL;ubI1ynBvF0WA6
zB_><dgjFm3hQ#RFM8f8REW|0O6^MjMgtt&pL*ZD5qBE#xX$*0q2E6eM;&o;6*{ABy
z<`L9b3!-?;Tl&PnpVHypN)nex055I-Nu?8BIma`_lg+dB*@PKL$9jhH>dD}(T7iN(
zNs4I{!HpSJfHH$TBEmnbc?yOiaApK%ltC5a)is1oz7ZA}v>q6P_i2+u+SDVXh8OFZ
zOj`xow^h8Bv7%R>5>QA61IrkBOXV|%xHS(O)8@}#7$u<tC3T#L0f1VfQhbV>3ZViZ
zF!I#Wh|^W+!pu<Zb|GdpPlgN}t-@fG4dIzab^SXXULsw&giSR))Js~^7$IFq!ZH{b
z3drW0$}>vvGCV#FJoux$Y$yDAfqh1~y{t__6hk#ng($PMo^eX8rkZC=Awit)^f;A7
z>?V&f2HUQwa4MF{F*{WRCM*K;S?&eP2jA&&<6#7%f|Af_ag^95uWzG#3u|bz9+?15
f*J<zETblTP6PM(-4T5RQ00000NkvXXu0mjf=$j1@

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/87.png b/src/assets/all-letters/letter-imgs/87.png
new file mode 100644
index 0000000000000000000000000000000000000000..31f2671f9962feadef0677b5ee8ed9ce70683c64
GIT binary patch
literal 9012
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
a+y4)3O+AHx?L(yi0000<MNUMnLSTaQpL;I=

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/88.png b/src/assets/all-letters/letter-imgs/88.png
new file mode 100644
index 0000000000000000000000000000000000000000..41419c5722722399300a04a60cf5367aaed409c2
GIT binary patch
literal 9632
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
WAX^hfRKk=10000<MNUMnLSTZ4pQ~g5

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/89.png b/src/assets/all-letters/letter-imgs/89.png
new file mode 100644
index 0000000000000000000000000000000000000000..0bd8a2fcf3566a1ac69ccdd65a1dd1abc906d894
GIT binary patch
literal 10479
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

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/90.png b/src/assets/all-letters/letter-imgs/90.png
new file mode 100644
index 0000000000000000000000000000000000000000..5233a79faaff55c925f6e2b3f7966c67257df981
GIT binary patch
literal 9281
zcmV-HB);2;P)<h;3K|Lk000e1NJLTq002V(0037A1^@s7D2m8v00004XF*Lt006O%
z3;baP001NSNkl<Zcmc(H2b@*ax$n16pE=VQhMA!aRS<zeBv^)yf;F*4bItu-({7^X
z#zesQOl~l9G0(&v<;Ir8_tdA?mPBLF7z>CfqM{T*iu5{6VR|`j-~azxd(E5~W^fR^
zZ|R)9_gY^stL?QBIo2}2H0Tn?Uc1GgKhF0v+pyxc^Av&4j;*YI>Cf(lj~C<7r&Xy`
zTxOOp*LG8b>ips@GU}`u3NU!YP?>S%#d^;l1*%^@@0HY&UD7YdCkLa$W$=h0;wD<<
zonOy&4?O*yTO4=e|9i)EQe`5pxG4{fR}{zRNGcW=U&?iJ+!O#Ho)3TbeD6BB=lj<w
z3)WL=uuEwLB}@U7W&ZCU6c<#qxUTqI$6xOPlvt!tI%Agn`L_>fJK2$glYmS<CkdGd
z=mS--_K+N2;|WFR-OtY^N<Ts_C=Iyfr%GP8SU(&tS9SH5C$`A4^69S6=l2j@nSRSM
zZG$Kx)l25BopHhW5{_iz$tS1Hnl0|y+f{$3X~m6;YWCDE>_2=E8lf7if&1obuSwaA
z$=jUdhR57ppL{GsODAdz?Ls?<16w4GLA8;-x%+$9s?ll=REUcT0{YZyXykRlA0Gl0
zghl@%_&~)2fO-=)1Zh$jI(EDQsh7yk-S9YxfdU=?%zG9-t9L!{t`~>a{9j{b0vm1|
zA9}K@0n-tTFljYE9UpiV2&wv1@bK*$WG$NzZUww9C=LEAuU(6g%d1^pKCN`v$ycr2
zwdJ`bDc5(QKj=s@krW>ckxKEtMP^>`f5bU+bSJz{52W?hqO+lB5_gDg^^gV}q(L=;
zHVHqRGNJUx#h3pl(@{$&BJTUQx$^uTSsZMU>n|CF0Ci*)JUsdA+3FUUR$}kfNa#Sb
zIKO_N9ajV0ag$~5{OSKH)zVpCm7D^afR=|eo(Gt7#w#fyY$}zK>EHMsGC3(ua^n+g
z0bNQ8njHWZ_?1X3t`flw!%FLMp*y^wNyU-jV0eUwh@4)SulFE;dMW`Uu1DIFg23zz
zh|F^1?@frRiYk!_JPkA$+i^cdha{;o2cjA=4M9slsdzu^URW6WCd|Ps8OQynPkiX6
zQj<(0cxet8K-QTwWVq9?rmr$YV0gw)JVvlDuQ=?DNPa=7|EhBM=BK5Bl|8Wwbk_g^
zDcAAc&Ninl`Cdb5pd}S8M)$V2JMbgjYb8KW!q}I)Hp>oJB;;#4*xW6Jqg7gBH;fI;
z{?QoUBEl{$pL+B1@>#ca#cPj$Hf($1c6ZPAB}kdzRUyCp7n99l=Z9EeLQb1=zr6M8
zb^9>%u?uZ4ouYO3))!tnWx}-#V-PSfhJd+$W68H<nanO}$M$YI5%Kvl8aA$d!~_SU
z0$FT|0rUGar7Zprk9-Fy3#B#g`@eR#?yHxRN^&IL+9oSsU#@*h0%A=+e~$Ql0lD?5
z^>XcuzP~NJbn!e(rd^V~fBya`d49JP_KnD@PpTvs3`^OZnUWEX$jl4R1p%KdUtb{$
zD<YCNu<!;;fLE2IamD<5cWvBz!-(BE61-%n2n@>N^ZTT#wpH@8L;B30jhjA|icLFZ
z`X$p>)a<Ma7hU<#837JSzKp0;zxkk41uA4(bh;wgp&>s59zu?|$Q|Z(?VjZl%*c>n
z;pD0PvRdT8(}{W=*9cT!St(h0eZ&_GC<40(79wje3&mMOQflucLJ)Wd*1X+}u%}sE
z$?jW-N^pfH1U7?`=^j%Y!Sp{6p{7Iu0T!T0x4FZ{XYRO9_HEt7+xB9|&-M!MrrkST
z8@_SVPcX-MxV`#^_ukch-}MF~HG6f_-Ld1bh5FwAZ$Ht;vaektk*uiRv&T;#e^by$
zC7~_U4tV0ch~>>EpO-|e705Yq*2U)m&|^R&c*S@Ob|F=EiMEXmjfW4*$8Wx_pv6Om
z$)E0dP+FQXU=iP&OAwD*(BNuViq5eXKY()Ol}8`<c!})Xpkum(Goy$Sax;kODxsr(
z9J5b`k+F;6U_^(E%Bh{AcVlhH$AfE@H>(9wUSM?v_CY!#@Q=k_l_eN!Ot~)SZpU8G
zX|G=}L8f+xxnO+g7e5^*Bf4ulT3wF;+ZAcS1plLwaxQnB<Wfun#_bs;E6p@YWZwAT
zci^Z;Q-RO`iN|hD`a)SEv75WnINGxpKRts``-C`Q$8~mK+&%}8zQ$lY^vG(7r(rn@
zCImEI;Y~V1!yso}++R)~^rC#OAf!<a=DVjzw4fm)HzA3wU=+z-muP3gb_|j1y<_pX
zZ&LoJv5lzfl>ore(xYq2%gcSUoMp)brknwP=7lrLm%c30((vpRS7d##^@T*{oZ{r$
zGso7#U3vTWR?3cT2j!G;gCEGx>r*qe{I%3ui)P*!4Cmi@*33KQ?SEV+(-;2Zs7m+P
z_+I%LIgz{xbrYs86gO6jk@Fhy`@>!$d0j7)O8Z>%48wT(am>T&=AtKM!>YTbqGrv|
zvw!jCF0ZlMOOJvO`q^i%@E2}4h!6n_A4eTCsB(BWrK|NhBABrt-7^>|Hcq?cjj<k5
zw--zCh{jE~PswiZ^{F3(g>Pm~HiiaA;%#kGv46i*>^Y#rqOkyDlpUMtb|^_86qJ+3
zjF$YOey}3EAMs0bO})JD27<F@l_!p1h6-!TPHisYqvVXU>%Vf&6e%8AB6s~|r(_l6
z$vfL);^q#K85f=>(=M1Rk<1JwK_MJ0I44gjlj#@Ek+Wvcln39emWGz3{QKi;rMkIQ
zGV`)za-uCg(>n3&)*`!}pEtH7l=BH!D;#c}d82@Yo0xG$yZJ*tS@^qm<+M}!%cWCG
zbS^}Kn35CPl)vm3+0zO$VP$;FIC<sXS0WcIex=Pe+pFVleL0+H+R++stAZK*^4Ujg
z<<R~^FqL009g<0Nr@-CmhO>cbSOqZ1BspSPitSh9uy|Wc)+}2EJ&fy;SkTP)`UTQZ
zRWHe=7>30b{KYp0BvrZ0AI=v3Ip7?~*asmFsnY_%h-74sRt-ttj#3=q((l;^m}fKp
z(D4JZvo4(L$jN6$WXtMz)Jo%~pNIMM0Ld;!|4cd%tYX8;p;-4lh7As<ES-=Um|$Ly
zp<W>l2QXuFx`<2>sIZoqO<0>)>lrs18fh~uZ}77?ZUTaAT-h9OTwjh(w86+WG9I{&
zq_;VfQVsD$A()^`pZ$xhe(fIw=&{Vc>YFn0oaw-&i|AeBDy0INEGi_j(FbLE>{%7E
zho3+&D5sxy0mTFpSAv)#zw_c>IzgX0ds?UG&wKbnf=s#eB05GbbkFy%>BQrT1@ook
zlu_+5)T!|(4-ka2J?P~HmoDwqy~ZVI1O(m2;IsFRJn<iQNX72$?WBi|pCFgra2;T1
zcEWoB%`0lO%R`%?W8#VTY~{2qfPSLhEQJgKGGnZ;bQaD8=cZL3%aTX1j!G+bq0TBB
zXB32mNx*xPNr*BEszOpwsz@A6IQ@<v4@uQlb5@ao-~k&AsEI49|GrF?J@*XhcPd?X
z5jc5gkQ#LeihIz5;u^HP!WdfTCMYBXNn*2z;|PsJNF#uPDRZNdl9I2?oh6gbn*}&P
zdqho2TUUSv=i$&4zwO0LmCPg9sub;O9XzUQxFyNyw{eH(PxcSQ12qc9LIN5qxKcQ~
zXn^Qwg&;OfwHG!D8Sy#22Q{UI8g&iD)U_K)D-Q&#a}BIM9`vv!CFt0(?o{ID!J1bE
z_8UR{xZ1_E-%kkhOc*-E?>)0#=>eXFkc3zIiie7%o164!KgsqlQViuUf_WlvZX7Mc
z>;_62Jr$~arUWp7-ket7t6N56ugZ6)NHzhTaNwyf2;8J<zJ8>H>#IYzU^`?~xk-jD
zU_C$fRtTq0W1#-V3H~b)TBo7g`Jp8VhO|N?oEf?i!~4G@a#~Tx2<&y~tq`31He(~1
zokplJnEHd|Q0_5A1}%aB4E^;tmKH@(-&@*8AK>PlH7LW^RIwR}SOo@^i18s<)xFSV
zAq89bE_dA2pFF`vr=+H_zBDMZF5asEKB}~d$_UKr4#eL?6#$lZT>mBI2taEIUQ?Nc
zuRu`a7)NpdwXHTgo|6u9wELq9vG}vk+U~}xE#4fDNHEb4duO+kSl!`pr+sIqvGTj@
zMG%zFGz1fQcdv_$eDob@I2z;hwxgO0aiBYp=?KUKPHaPWtxK>^)&6YWIKPWgAa&3B
zB>N{V&)#!IMqxumGuJx@lYPQhmOt0yPI8YztoV=F=f@HaFZ-Ry>ZXFMDHr_M%&KoW
zBkL(FUau;facX^DpUfO?x_tBjx3HY5sk2M}sVeBKXe`c3<geSEICb)TX=$m(7T*(N
z&MjZrd7sM@mX}VxO{+)untFNaoQGxI>U$@ps<*ek^{crhzEu1J%-V|_^Qr|?N6b&*
z(8*_xg~?I{txavOW1m5yhuiRK@(k%a;7r;4@gwYDFw5?_^cWMVMC)s8oHX@+OEkL#
z166!CY+sZ>7m&bPKnh^@X<dxUI#_vG=}JP12c3a8m`$>8&l@#m<tuA?7U3wCDD)4$
z?Bn<Es+)M`Pkr%3qep{cF${Rch^f;74qF^+c|{v$O+F_m>pxnIkuxEIaQ44=$UR<q
zj0s{aUo`tiiFotkKro|60&K8Cba&4>ClD{3{`0rd&vajUbjQ;2nGxu<*dNIBOm8$!
zC*yjP3tGW;kY1|7J(#v&?SYLFiDu^Sc9)j-7=JxB<mKnD%F51?f}#Qmg~Lj;uC`A0
zZr>$stu0UwGY3qytQ8m|4(5hQFfSh5UxthvCXq-~;29Jra%fKl_g?SjQ`ge1JNEwh
z>c0I7hgXFnVeGBZ_Xr;J0L{1$VUkk0Z@+9_|0yOZCN@Zv!UO^VIkoI`X^i`&FgK)u
z`{K&IGGTb06yyDT#g0J6u<w*(Mcuh{>yCh%eQ78of-cFChSs=zwCymbMRMDd8}uDP
z|Dl7Wbn--fBT91Aen80}DLZF|WM*bcGqw`mT3ab=fLD*q88#wMA{m*I+rN5pXZGf)
zTOl&CGJhvKkP(ZwO8$YE96H=855Kfo7JVCUBe}<f4k~{@v6KuSiYZ)5MvggIMwZ%*
z99M?+&y=D*5s8EP)msruzuqKHO<c00ecOA~bYZ#`BAk;Ml2`FY9Q!fudsTALSp(&o
zi%*7IXmp}L3d~AdGYjS6)qWW?Y8YV6<_$xXX*#+jTTUO-SKOKyaKO7MCA)X*IxC&I
zz1NtiU-6UC=n1ctl)rz~!9x?>cwkgktzQZb`Xn_1ec+hx2gI6&m@HjeAy-TvqJe9O
zlB9~FS=Hjk<b$`~l~fbnWTNGy@gwT{4(hizR@)kGIUHN-hLgW?l52i<S0d54Aen5%
z)_tvP`REf#;;aT|>jOs(MwE}hq!^kj3B$(zlBgfUSjVOcEyYx(wU{k_+5G+*jJkD-
z!nVRegQR5aaA`bHk7)=tj2i2)Gz>)-1hJVCz`CGn-#X#W3)dXj*OB^)1_@0%2^yJ6
zzTN8}#q=ehpKA}`P=7Tou3TsEyhTQz15#UEt78n6iR2XGZ-hj!(ZaMl_~9FX(-|4j
zQ<7WQAMYDrejOJQ(r+jPp#PPqVPqCdT6N?PgfW7$37r*Qo{c(v8tC#3R8R_vVTJMf
zT3L^0kPnNK{PZz|5wxJ>U`c8BZdxz7`TZn!zyJWF6)PmRTLE-A2w1ajHL-2mD1=@8
zlYy?hAdtgF5O}iPEIV;UKXY*Pn-VYr7(=obc2a)$Yy$BifMrA@o48P-5Q=!Z2*y1F
z$gVxfz^*wBLsGH=P!T?(hVD~~yNC%8FqOP|!l<+y4S-DEY6%L+pfm6qs}!2ZUOaTr
zqGbt3+k$|4l-mu)T@=7<A1H^OCpDzqQ@I<5nm(_j?_+!(tY@6h1N(B@dmKf3Vw*zG
zIQiW3;0Hzp`Uz~Zt$O(tJyv0HxTSO~<(P%=VWganqil=`2HEmwU+g46IGXM4X_?sR
zjWEaMj!o}>Bp<x`_fCBN?YDPydhX4Gp4PH?O9V!+<~ep=n6jL<m{ddRX*-?3x3jgf
z<l)~FrM+|<r6C={F*BGI=HAlbRl5U@$Z#uO|C)3%faV@uiwa{pC=xKm3d{OOZu*(6
z)~h+)2ci&M`w|Fm`UK5Sz!+gHO%=rJF;!Pf%}T2Jdp)EfXuQUDmadztKf3Q;)t0Rc
zSJQh^Awq*WuIw@RpY2&`ZTkjF-9gX}X2u<AN;bfx7Lk_dx_$V~pZ`q4Ss5U21W*k<
zVF^!M>sAVAt;9NW-T_lbTiMQtZUnIDJ#k4ZcmFH*MmRY#qiQ6YBk%ro2|y`=wN_Ft
zpMSk)1u6j66iVa5h)Qwo9lLHlyTyK=0mwKqa{;xZvL_K1b%n97KJ%xwsa|$|vabD^
zH>aI5$7qjxYHqq`6Ke{{Jx|p0;$jz%E-~U;1n<c*CIOa?STWB>`<-&>h1zVxS<Q|b
z(qtU480+h;{&>eB8899Is&#{wTEL$a#JI<p)&?ixO<M=9eWq(P5ZhJkP^3cu5C)9{
zAH9hbC8Kr$;0&4x$Qn>KpFNm#0eEk<wDr0aQd+o66M*Vk9#n|}YMly;^$OigctgMl
zV5CI@ioG{E&s>K^C@9<Xmvy*<P#uhjXP&KqN{rS6GZlfIAv-G+1SZ@7qP%uyX#LmW
z2E&Ycm^w8-1Yj}v9rvswJtI7y00Y7Fj13j>gwgCsIqtt;zq*Yqoi2OTis<cSb5Gkm
zoBe58kDEhGSX*=oXCH7SJtnh-NrHxX(P1(IPa!1eHrt+t`sLi-G&cOTv--PVD=R8o
z`)&mmA-ybDTp|9mV-kA5#_ODViT6doXxJ~k%%2eYP12uy5$Sh_xQEXHL*w2w&I=|<
z!Mq891@li1^HsW*AD7Cw!JC7zP-dWU!Fc~4QF#QO2YNy-C)^k}l*(+pbog|BsZZy`
zINW_PHlDwOv}J<s%kszGg5)NdJQaR0NrFy1#MeM~Iich`H;xaS#fS(<@NWR2jOYWM
z!5;XRb~)k3@HwHmkQUzcKLDdtpfBKyl0upy<x5O0Un8|$wc*Y^HoKOx9_zw_l;b=y
zY_tDC;0z%ij!e~J-|`kVcf~!C&&L~f&VsR_F*u-?C;mi>KNfCug1(lxn|uhHE9XKH
zZ)Wd%sWuw>_8(VDj~lGlpCLJs=D>64+2`5~TN(l-29JG&6#HvR;%9(lCbH$dd)CK(
ziMA7JoMT>wq<aDiWJ^nG15??7-l-s7M02q4#wo%wJ$$Y^rJ!E83*MtK7O#@}o5v^q
zDdh&9gAvZQe1IRqSbHYMJNyMOCxZS?a*J(0k=Nsm47qu{^l9}+hXfO`(=b~Zi8p71
zF>DnfJ&K?RHUMcVP6M1qe>il~ogXwE>`8$ePL-klRA4<|X*g9JQBs8=e<{*uNgy6y
zx_yJ}d(KXKdm{7&>yO(QN8`)T548l|28<d7-#}HgR>sFKJ}5`*z+XE;3M0|byVxup
zp)?&?lL#a(zHhbc?vBUH_n#lmXlfap>10Kdv81m$71;dM@|TYN{C*noFJug!fIQd#
z=ID6RHx_TmDlwDVF!PtosxhlSB8PuIELzkOZC!%!n8fWREI&ReD?9c3gHGzZ+jSHD
zg0WzruC6YB-G&`M*te(Z>y$0v^Vj6&WnQ!J?YigFWYyabAC_R#!LpxYudX~hXSihJ
zL|tS3ZvLeL5*myXmixQn^!E9fjj^J9&VZyp_HjmJU?G;5($abeZ>k!hWCB~28TaP8
z&Z3Fs%W7$`8M3S}D<gXPmd|$oqPDtWax@wdC@DF4Q3-}Z=ukM%=77dYHP&X>N=?LZ
z_5?NI%&>l#g!Wd)b?@`Jtxu<%$e2{J?J1s&7(MP=GGI9NaWeW!<(3y^%f=_9Emb@6
z?1k@c>#g!#;f~oDua{39h4VujN=AM)Fl^$r$ljR5>vzib%`eD-Jy_=85FR$0>%k~T
znduV8uw~eoJrL*)<yp+vS-hhOSZE+q_};1GwGYA$24{3ln0USPDZx%Y-pJPOTP6I&
zqph{-CdU`PcUJi_^B%wwIfm;oPsblyy1QoE(*7&knkui#2u6LGxkE9}_enwjuSjFv
zE@^Do4TIo?7Sz^1u3m7jU8t>NcZ#Sw!Vt(Id<+CAFW-=NEPU3hUhu6(-41Nh<9+DX
zzsdHk&*2R~%gv4xy61QdVfZMUWB*~gB;4ku{$O-eFqDs@xmY|T+h7RmVRNMs45K5u
z6SNo@qiT9YSmk+Ty`@D;FeLs``1Xkg)#Vq4+hE*RT6XK}>k08ii{bJGu(9$BJO1z>
zevlPwtw6rx>~#BgrzA)vur&3ArwUdnwz3$Nsb0FFyoj-lY6xp6V+hjWH?F!h2177%
z5<z#(8w;o1`QgJq(08SV!?FFgvpg2GWsA<9?01|M$z(hf42E#BGmN*VNESo|1x(><
zsyH^P+ge)isUA`oZ$S9cip45!6NhzPQs9ohv5K1*Few9L@qfIf&%k%QS^2q=m)}>S
zS((C9rrZGG%HF|h1}BN@o0{4t^uP4CJ3;K2$}t%ODeY{3>{}OvGcx{`otusG511RV
z!^8?Jf!9g+qDl*Q3Gjh7W}X-wV3daXMyWh_P!8>@z;g^Qh3P!q!%?piiAFMggRN&O
zXanA>7vVj5F+SVMl`uykZoDWGFakc=y0cC;@2{81qxwowepu>iY7ezG)}LK`*+ZWY
ztheQujIsa8>n7zC<$f6LgAW|JTf!eiLw#dR{<LC`d~?<i3DY77U7j*{ZuuT5$jOi?
zWBcN@Hu_Y&0ItEeXgjxlCJnU>Fd~%EPO>8!)BrFPJwI^hAj!j*xcmeliC1T<HdV>N
z>K3_d<`AP_I3Qa$*T{dpwL?nr{(jEHVu?n>l4xm#0~%^uTU*KoT=u}HC)^mdPhQt2
zmK%O1zo73NKl0VBXceatXN>v;rKKPwfB$g5Y}i#NQ^)m_s`{9$#ryqpAly_K!jBZ<
zb`}fIzcVTh?A!yRY)607qTfPL*<d&%gK&Oe;Ls8rTESTpqy-QGZ_<ZHPTzw;R&S}{
zkprn~j?0LgOqrdFQyEy{@l1jY!8)!e0=hA2Zfc#?=ltI+1A$(ZUPngdOE;Vr$<ADz
zm5AUa(IJtoIE#R2=X}8_fdJnaBB_>yY}s2cxzV8XFGdRSfGQN|wjjLg4jq=Y>o!Tv
z;YJxfdWeh}GYm9AG|>?$h%uxOi`Un4p%#QCIBJFQ_t*}68qtJBBKjppYa2$Hi~3^$
zkSFzfD$mTl@UB&g-ix0jR;})a^3YCxJ%JL%%-Ek%?Q7d!6{@eQKAjzxw1Ok2H5}Fw
z$a91`uS{^>o;(;S#EjN&K1jwYrX)=p)x-PbPb=c`z<Vh<+~AiVAiBoj#hmFV0H%fg
zh{a<C@HknEfj)(x9OE#zD-25u(ysAvy`&;&k5`LtSCbstz5l&87MA_0Wc09y`;`uE
z%8lV{Omoa>gdbCl&B+7dzVT#RX4}{+%k>x?FhPIo{o#hnib(-C@t>|6$7w~dMJ~r<
z34C+aDu=6TrS?#*e&)kTQ7{uP?hE@$A@VsK4M_^&=^)J03ki4B@D4B@fEiKn4C}??
zctS%M#$l&xkPN&&uu&0hogrdqAsWzm@7l5(C-e_t6hpwIpAiB*#|g;55k)fiq=C`~
zeUdG4X|2O3hX^7&{^JIKIsk`$E#Pi=>iR@;!~N0hVd$B0pa|1l7GESosy|sHyKo38
zjxX7LNKzVzsPU$R9N2LXi=(8B`pPtk=H=^fY7mXm4kE?8D8N>_M>Bo<oUnXGx7w+s
z@9RTV?2aL_*dL(i91B+i!>9~MYkeK2;$~L>$2ic+Nc7+_`;Et%(aq=L%i=S|-_#^-
zzDV{U#2a*Rp;uG&0jb;nS$`+se;Zh-fA$3;oeZI&4`4s?(}w|^n>A)l(ZPgFxovMY
zTTCj@OK`6WWHVibV?E%l61*p@*}%s=4F|WHFY3*+(xPHYkBXCrfirD1N<tzSZU>D%
zMWQ+R>S=b=T=4OMBU8b^AyQN_5~<auJh30Ex}=iGu|QBV^NYCo1WTu|>cw$4V|fZp
zWyughh%evzpEO1aN=6{}w#oi28>O|mPNO3bib~<oky0{htoShrN}<D3<<dIK_Gk4h
z$f8&!%o7a^?*NCKZCmFzi<AiMYB*xiC?-Mlg$*$=kI5?@D5ni9LBCNeb(IG(lC&a~
zGbOKIv1CNE0EPeXk3H~e@kyDTGwnb#lb(LA!H)^7K>T{j7zDr&A`lMB02qaTdLjjY
zOk-m=h|1xQdFOdhLmT&oDLCMND}aG9&*p8FH3Gz>L@b8AUihsE<+6C%s8Oa80tWHw
z@k+&U0xCNjeOOi}ew^=+zolUeLPm&s<Q;b8JYFyczP7^fO`$z00Az%x7!-uR#v4iq
zqndf*6}AN<I$ymE5)_Vw%F_01v31OO^}NCWLqng?yyw*@PX3BRINY;XnXFO<#_)iD
zRUyRz9r9+R5r**mGx$nMqkstb_cEw05P%Q;`Dqi!!Y{pScz2a7efrts<}-QjxpKxu
zbB~)&cLa`@XLJX2BI<T++#<1-<JzKBF$RnndLqQ>mWCIc-L{>$O62XPRqvh<di{qF
zJt1_uBl15J8JIfrJW+d}p?wLuzqCH%y}!OH@BH;eCVY2tN}r+ua`i87)-!9}0-S)#
z{~2Q(MbOoMUy3gqkKUJjdr`Uc9ayYXYzKN2l3%##|C=!?cJGlVZ~fI#1wZHNtMSjv
zm9g7DD%^=`H2?e+sd2id0~90G+-rxTKX$m})Y`&vK;yu~xv3|t4$o#-0~IBysR0<{
zQT&r)n9M!8@K!9Us(RF6{InS|_uE$i2g4rt*&&khksj-rO&mT`;K>1!G7!#8#*9Ri
zExlNIZ5?ONv@_XI3q1y`%s>oN5M57nFd{i?2&*I+aO|cq6wC;rf&;%}JogNw&}N?S
z!hH|PwsmW)EJs`mFpIpp{AWtT(DQgu208_Xv6Dh$Aa9<L7CE{eqQB@Eool4A@%#uW
zjgh@M6V1u_4EF4xffkyA7NT-i$uvSV6ab76RFu+nz?yq{%ovB1%%3YCX}|DHI<X_}
zzkA!Qm_8SHyou|H1v-49am<vRyjf$4c`ZY}Xa{dql*aS4A(VAohoh|1l(Hd&U;b+j
zjT$~W%{4?x$XcF|W;RE4&7X!oyksnFm1nd70t8ujzklmCdHRk!^|`wrej9N44L_3p
zBZew%t2Ae>_TQ;gnn30Pi$-W)yD%j%8rgq*fifC1894H5#|5m7TpI;!Q$4tP#SE0Z
zu{OcVM8A-rr)dO|F$#5f!qiz|H7GnNCKu)O;shl4;9y>{T3-IcABfmvX=`qjr*8XA
zkL~FV^MC&UXoD9F05cfnR8|wQMgkgw&NG;FDEkl%63^LYnok(e@D$<J1WgGv?v=5T
zb~S|!HfKB4A{6O07KmVg)qsEpzNJB{SM1vDwIBcG>+|P<wmHp7#X3@kv^~w0O~*ZD
z(EmEBfagUq>S!c(pj@@uqW{`~?l5`EsU_8F9tgdGTPn&wV_C0PZ#M`9B)rEAcl)+{
zCLw(2b-ZQB$*0JWv7?oY=^V-1Xh7vUc-lInsO?LLsE(uZ(2GSQ3kEUodub4Z>&-Jv
zs1aEI(F35<pwy3fslyc?Xi>m$Glto~qT!}OnR`<!^3S*2q_@@^U9W7kdCYq&sI4<}
zDLiE}MmASM6W7$~wt}hh=pp3kIQ(bec*PUyERL<``A~(_G(n%iG_itc=zuxLZW6>l
z)oTdS0Jx)|#ur8qL)2uR?mc+$thYw8N->X(qDCmwk*T>2UC+7(4)|((!Wy?&MeNne
ztUhVyYm~NfvG3A|M!U{Oyoh2uhh6h^DX+$Ofg}$V;veQ<BRy}bO{8diu-;>4IwqO}
zMrp4z(Zo<O0@`*8qHI+l<xej|Ko&w7MR5Zj#@wtkhBocIXI)q0vehF_i9MPgRfT6e
zc4{=b=`M{7x)cs2KQ4=SZl07_aH7x`z|o=_ws6Q|VY3RRyo^!Qi)dpC5rP6*0gO?M
zaHiiN3=P9NkEUlh6^b0%4G9nw8*%DIC}!FzfPuBVcx^XUyYbWOj2woyNo9lEnWsh_
jse2KD(WExzcOU<6P`zjh85tZ200000NkvXXu0mjfu7SWx

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/97.png b/src/assets/all-letters/letter-imgs/97.png
new file mode 100644
index 0000000000000000000000000000000000000000..adb4dd792853d954d3cb6b3414efc044f412234c
GIT binary patch
literal 7948
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
CKucu+

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/98.png b/src/assets/all-letters/letter-imgs/98.png
new file mode 100644
index 0000000000000000000000000000000000000000..a52464a0aa8a4a4bbc3aad16b6692ac1ea608758
GIT binary patch
literal 8104
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
C!=6Y0

literal 0
HcmV?d00001

diff --git a/src/assets/all-letters/letter-imgs/99.png b/src/assets/all-letters/letter-imgs/99.png
new file mode 100644
index 0000000000000000000000000000000000000000..4988e7ba9199b03a89bfb52f8903c955537a839f
GIT binary patch
literal 7875
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

literal 0
HcmV?d00001

diff --git a/src/assets/libs/audio-recorder/lame.min.js b/src/assets/libs/audio-recorder/lame.min.js
new file mode 100755
index 0000000..32bfe8c
--- /dev/null
+++ b/src/assets/libs/audio-recorder/lame.min.js
@@ -0,0 +1,308 @@
+function lamejs(){function Y(d){return new Int32Array(d)}function H(d){return new Float32Array(d)}function ra(d){if(1==d.length)return H(d[0]);var k=d[0];d=d.slice(1);for(var q=[],C=0;C<k;C++)q.push(ra(d));return q}function db(d){if(1==d.length)return Y(d[0]);var k=d[0];d=d.slice(1);for(var q=[],C=0;C<k;C++)q.push(db(d));return q}function vc(d){if(1==d.length)return new Int16Array(d[0]);var k=d[0];d=d.slice(1);for(var q=[],C=0;C<k;C++)q.push(vc(d));return q}function Zb(d){if(1==d.length)return Array(d[0]);
+var k=d[0];d=d.slice(1);for(var q=[],C=0;C<k;C++)q.push(Zb(d));return q}function sa(d){this.ordinal=d}function M(d){this.ordinal=d}function ka(d){this.ordinal=function(){return d}}function Fc(){this.getLameVersion=function(){return"3.98.4"};this.getLameShortVersion=function(){return"3.98.4"};this.getLameVeryShortVersion=function(){return"LAME3.98r"};this.getPsyVersion=function(){return"0.93"};this.getLameUrl=function(){return"http://www.mp3dev.org/"};this.getLameOsBitness=function(){return"32bits"}}
+function Gc(){function d(b,g,a,h,k,e,n,c,f,E,z,w,A,v,p){this.vbr_q=b;this.quant_comp=g;this.quant_comp_s=a;this.expY=h;this.st_lrm=k;this.st_s=e;this.masking_adj=n;this.masking_adj_short=c;this.ath_lower=f;this.ath_curve=E;this.ath_sensitivity=z;this.interch=w;this.safejoint=A;this.sfb21mod=v;this.msfix=p}function k(b,g,a,d,k,e,n,c,f,E,z,w,A,v){this.quant_comp=g;this.quant_comp_s=a;this.safejoint=d;this.nsmsfix=k;this.st_lrm=e;this.st_s=n;this.nsbass=c;this.scale=f;this.masking_adj=E;this.ath_lower=
+z;this.ath_curve=w;this.interch=A;this.sfscale=v}function q(b,g,a){var d=b.VBR==M.vbr_rh?t:r,k=b.VBR_q_frac,e=d[g],d=d[g+1];e.st_lrm+=k*(d.st_lrm-e.st_lrm);e.st_s+=k*(d.st_s-e.st_s);e.masking_adj+=k*(d.masking_adj-e.masking_adj);e.masking_adj_short+=k*(d.masking_adj_short-e.masking_adj_short);e.ath_lower+=k*(d.ath_lower-e.ath_lower);e.ath_curve+=k*(d.ath_curve-e.ath_curve);e.ath_sensitivity+=k*(d.ath_sensitivity-e.ath_sensitivity);e.interch+=k*(d.interch-e.interch);e.msfix+=k*(d.msfix-e.msfix);d=
+e.vbr_q;0>d&&(d=0);9<d&&(d=9);b.VBR_q=d;b.VBR_q_frac=0;0!=a?b.quant_comp=e.quant_comp:0<Math.abs(b.quant_comp- -1)||(b.quant_comp=e.quant_comp);0!=a?b.quant_comp_short=e.quant_comp_s:0<Math.abs(b.quant_comp_short- -1)||(b.quant_comp_short=e.quant_comp_s);0!=e.expY&&(b.experimentalY=0!=e.expY);0!=a?b.internal_flags.nsPsy.attackthre=e.st_lrm:0<Math.abs(b.internal_flags.nsPsy.attackthre- -1)||(b.internal_flags.nsPsy.attackthre=e.st_lrm);0!=a?b.internal_flags.nsPsy.attackthre_s=e.st_s:0<Math.abs(b.internal_flags.nsPsy.attackthre_s-
+-1)||(b.internal_flags.nsPsy.attackthre_s=e.st_s);0!=a?b.maskingadjust=e.masking_adj:0<Math.abs(b.maskingadjust-0)||(b.maskingadjust=e.masking_adj);0!=a?b.maskingadjust_short=e.masking_adj_short:0<Math.abs(b.maskingadjust_short-0)||(b.maskingadjust_short=e.masking_adj_short);0!=a?b.ATHlower=-e.ath_lower/10:0<Math.abs(10*-b.ATHlower-0)||(b.ATHlower=-e.ath_lower/10);0!=a?b.ATHcurve=e.ath_curve:0<Math.abs(b.ATHcurve- -1)||(b.ATHcurve=e.ath_curve);0!=a?b.athaa_sensitivity=e.ath_sensitivity:0<Math.abs(b.athaa_sensitivity-
+-1)||(b.athaa_sensitivity=e.ath_sensitivity);0<e.interch&&(0!=a?b.interChRatio=e.interch:0<Math.abs(b.interChRatio- -1)||(b.interChRatio=e.interch));0<e.safejoint&&(b.exp_nspsytune|=e.safejoint);0<e.sfb21mod&&(b.exp_nspsytune|=e.sfb21mod<<20);0!=a?b.msfix=e.msfix:0<Math.abs(b.msfix- -1)||(b.msfix=e.msfix);0==a&&(b.VBR_q=g,b.VBR_q_frac=k)}function C(b,d,a){var h=B.nearestBitrateFullIndex(d);b.VBR=M.vbr_abr;b.VBR_mean_bitrate_kbps=d;b.VBR_mean_bitrate_kbps=Math.min(b.VBR_mean_bitrate_kbps,320);b.VBR_mean_bitrate_kbps=
+Math.max(b.VBR_mean_bitrate_kbps,8);b.brate=b.VBR_mean_bitrate_kbps;320<b.VBR_mean_bitrate_kbps&&(b.disable_reservoir=!0);0<g[h].safejoint&&(b.exp_nspsytune|=2);0<g[h].sfscale&&(b.internal_flags.noise_shaping=2);if(0<Math.abs(g[h].nsbass)){var k=int(4*g[h].nsbass);0>k&&(k+=64);b.exp_nspsytune|=k<<2}0!=a?b.quant_comp=g[h].quant_comp:0<Math.abs(b.quant_comp- -1)||(b.quant_comp=g[h].quant_comp);0!=a?b.quant_comp_short=g[h].quant_comp_s:0<Math.abs(b.quant_comp_short- -1)||(b.quant_comp_short=g[h].quant_comp_s);
+0!=a?b.msfix=g[h].nsmsfix:0<Math.abs(b.msfix- -1)||(b.msfix=g[h].nsmsfix);0!=a?b.internal_flags.nsPsy.attackthre=g[h].st_lrm:0<Math.abs(b.internal_flags.nsPsy.attackthre- -1)||(b.internal_flags.nsPsy.attackthre=g[h].st_lrm);0!=a?b.internal_flags.nsPsy.attackthre_s=g[h].st_s:0<Math.abs(b.internal_flags.nsPsy.attackthre_s- -1)||(b.internal_flags.nsPsy.attackthre_s=g[h].st_s);0!=a?b.scale=g[h].scale:0<Math.abs(b.scale- -1)||(b.scale=g[h].scale);0!=a?b.maskingadjust=g[h].masking_adj:0<Math.abs(b.maskingadjust-
+0)||(b.maskingadjust=g[h].masking_adj);0<g[h].masking_adj?0!=a?b.maskingadjust_short=.9*g[h].masking_adj:0<Math.abs(b.maskingadjust_short-0)||(b.maskingadjust_short=.9*g[h].masking_adj):0!=a?b.maskingadjust_short=1.1*g[h].masking_adj:0<Math.abs(b.maskingadjust_short-0)||(b.maskingadjust_short=1.1*g[h].masking_adj);0!=a?b.ATHlower=-g[h].ath_lower/10:0<Math.abs(10*-b.ATHlower-0)||(b.ATHlower=-g[h].ath_lower/10);0!=a?b.ATHcurve=g[h].ath_curve:0<Math.abs(b.ATHcurve- -1)||(b.ATHcurve=g[h].ath_curve);0!=
+a?b.interChRatio=g[h].interch:0<Math.abs(b.interChRatio- -1)||(b.interChRatio=g[h].interch);return d}var B;this.setModules=function(b){B=b};var t=[new d(0,9,9,0,5.2,125,-4.2,-6.3,4.8,1,0,0,2,21,.97),new d(1,9,9,0,5.3,125,-3.6,-5.6,4.5,1.5,0,0,2,21,1.35),new d(2,9,9,0,5.6,125,-2.2,-3.5,2.8,2,0,0,2,21,1.49),new d(3,9,9,1,5.8,130,-1.8,-2.8,2.6,3,-4,0,2,20,1.64),new d(4,9,9,1,6,135,-.7,-1.1,1.1,3.5,-8,0,2,0,1.79),new d(5,9,9,1,6.4,140,.5,.4,-7.5,4,-12,2E-4,0,0,1.95),new d(6,9,9,1,6.6,145,.67,.65,-14.7,
+6.5,-19,4E-4,0,0,2.3),new d(7,9,9,1,6.6,145,.8,.75,-19.7,8,-22,6E-4,0,0,2.7),new d(8,9,9,1,6.6,145,1.2,1.15,-27.5,10,-23,7E-4,0,0,0),new d(9,9,9,1,6.6,145,1.6,1.6,-36,11,-25,8E-4,0,0,0),new d(10,9,9,1,6.6,145,2,2,-36,12,-25,8E-4,0,0,0)],r=[new d(0,9,9,0,4.2,25,-7,-4,7.5,1,0,0,2,26,.97),new d(1,9,9,0,4.2,25,-5.6,-3.6,4.5,1.5,0,0,2,21,1.35),new d(2,9,9,0,4.2,25,-4.4,-1.8,2,2,0,0,2,18,1.49),new d(3,9,9,1,4.2,25,-3.4,-1.25,1.1,3,-4,0,2,15,1.64),new d(4,9,9,1,4.2,25,-2.2,.1,0,3.5,-8,0,2,0,1.79),new d(5,
+9,9,1,4.2,25,-1,1.65,-7.7,4,-12,2E-4,0,0,1.95),new d(6,9,9,1,4.2,25,-0,2.47,-7.7,6.5,-19,4E-4,0,0,2),new d(7,9,9,1,4.2,25,.5,2,-14.5,8,-22,6E-4,0,0,2),new d(8,9,9,1,4.2,25,1,2.4,-22,10,-23,7E-4,0,0,2),new d(9,9,9,1,4.2,25,1.5,2.95,-30,11,-25,8E-4,0,0,2),new d(10,9,9,1,4.2,25,2,2.95,-36,12,-30,8E-4,0,0,2)],g=[new k(8,9,9,0,0,6.6,145,0,.95,0,-30,11,.0012,1),new k(16,9,9,0,0,6.6,145,0,.95,0,-25,11,.001,1),new k(24,9,9,0,0,6.6,145,0,.95,0,-20,11,.001,1),new k(32,9,9,0,0,6.6,145,0,.95,0,-15,11,.001,1),
+new k(40,9,9,0,0,6.6,145,0,.95,0,-10,11,9E-4,1),new k(48,9,9,0,0,6.6,145,0,.95,0,-10,11,9E-4,1),new k(56,9,9,0,0,6.6,145,0,.95,0,-6,11,8E-4,1),new k(64,9,9,0,0,6.6,145,0,.95,0,-2,11,8E-4,1),new k(80,9,9,0,0,6.6,145,0,.95,0,0,8,7E-4,1),new k(96,9,9,0,2.5,6.6,145,0,.95,0,1,5.5,6E-4,1),new k(112,9,9,0,2.25,6.6,145,0,.95,0,2,4.5,5E-4,1),new k(128,9,9,0,1.95,6.4,140,0,.95,0,3,4,2E-4,1),new k(160,9,9,1,1.79,6,135,0,.95,-2,5,3.5,0,1),new k(192,9,9,1,1.49,5.6,125,0,.97,-4,7,3,0,0),new k(224,9,9,1,1.25,5.2,
+125,0,.98,-6,9,2,0,0),new k(256,9,9,1,.97,5.2,125,0,1,-8,10,1,0,0),new k(320,9,9,1,.9,5.2,125,0,1,-10,12,0,0,0)];this.apply_preset=function(b,d,a){switch(d){case V.R3MIX:d=V.V3;b.VBR=M.vbr_mtrh;break;case V.MEDIUM:d=V.V4;b.VBR=M.vbr_rh;break;case V.MEDIUM_FAST:d=V.V4;b.VBR=M.vbr_mtrh;break;case V.STANDARD:d=V.V2;b.VBR=M.vbr_rh;break;case V.STANDARD_FAST:d=V.V2;b.VBR=M.vbr_mtrh;break;case V.EXTREME:d=V.V0;b.VBR=M.vbr_rh;break;case V.EXTREME_FAST:d=V.V0;b.VBR=M.vbr_mtrh;break;case V.INSANE:return d=
+320,b.preset=d,C(b,d,a),b.VBR=M.vbr_off,d}b.preset=d;switch(d){case V.V9:return q(b,9,a),d;case V.V8:return q(b,8,a),d;case V.V7:return q(b,7,a),d;case V.V6:return q(b,6,a),d;case V.V5:return q(b,5,a),d;case V.V4:return q(b,4,a),d;case V.V3:return q(b,3,a),d;case V.V2:return q(b,2,a),d;case V.V1:return q(b,1,a),d;case V.V0:return q(b,0,a),d}if(8<=d&&320>=d)return C(b,d,a);b.preset=0;return d}}function O(){function d(g,b,l,a,h,k){for(;0!=h--;)l[a]=1E-10+g[b+0]*k[0]-l[a-1]*k[1]+g[b-1]*k[2]-l[a-2]*k[3]+
+g[b-2]*k[4]-l[a-3]*k[5]+g[b-3]*k[6]-l[a-4]*k[7]+g[b-4]*k[8]-l[a-5]*k[9]+g[b-5]*k[10]-l[a-6]*k[11]+g[b-6]*k[12]-l[a-7]*k[13]+g[b-7]*k[14]-l[a-8]*k[15]+g[b-8]*k[16]-l[a-9]*k[17]+g[b-9]*k[18]-l[a-10]*k[19]+g[b-10]*k[20],++a,++b}function k(d,b,l,a,h,k){for(;0!=h--;)l[a]=d[b+0]*k[0]-l[a-1]*k[1]+d[b-1]*k[2]-l[a-2]*k[3]+d[b-2]*k[4],++a,++b}function q(d){return d*d}var C=O.RMS_WINDOW_TIME_NUMERATOR,B=O.RMS_WINDOW_TIME_DENOMINATOR,t=[[.038575994352,-3.84664617118067,-.02160367184185,7.81501653005538,-.00123395316851,
+-11.34170355132042,-9.291677959E-5,13.05504219327545,-.01655260341619,-12.28759895145294,.02161526843274,9.4829380631979,-.02074045215285,-5.87257861775999,.00594298065125,2.75465861874613,.00306428023191,-.86984376593551,1.2025322027E-4,.13919314567432,.00288463683916],[.0541865640643,-3.47845948550071,-.02911007808948,6.36317777566148,-.00848709379851,-8.54751527471874,-.00851165645469,9.4769360780128,-.00834990904936,-8.81498681370155,.02245293253339,6.85401540936998,-.02596338512915,-4.39470996079559,
+.01624864962975,2.19611684890774,-.00240879051584,-.75104302451432,.00674613682247,.13149317958808,-.00187763777362],[.15457299681924,-2.37898834973084,-.09331049056315,2.84868151156327,-.06247880153653,-2.64577170229825,.02163541888798,2.23697657451713,-.05588393329856,-1.67148153367602,.04781476674921,1.00595954808547,.00222312597743,-.45953458054983,.03174092540049,.16378164858596,-.01390589421898,-.05032077717131,.00651420667831,.0234789740702,-.00881362733839],[.30296907319327,-1.61273165137247,
+-.22613988682123,1.0797749225997,-.08587323730772,-.2565625775407,.03282930172664,-.1627671912044,-.00915702933434,-.22638893773906,-.02364141202522,.39120800788284,-.00584456039913,-.22138138954925,.06276101321749,.04500235387352,-8.28086748E-6,.02005851806501,.00205861885564,.00302439095741,-.02950134983287],[.33642304856132,-1.49858979367799,-.2557224142557,.87350271418188,-.11828570177555,.12205022308084,.11921148675203,-.80774944671438,-.07834489609479,.47854794562326,-.0046997791438,-.12453458140019,
+-.0058950022444,-.04067510197014,.05724228140351,.08333755284107,.00832043980773,-.04237348025746,-.0163538138454,.02977207319925,-.0176017656815],[.4491525660845,-.62820619233671,-.14351757464547,.29661783706366,-.22784394429749,-.372563729424,-.01419140100551,.00213767857124,.04078262797139,-.42029820170918,-.12398163381748,.22199650564824,.04097565135648,.00613424350682,.10478503600251,.06747620744683,-.01863887810927,.05784820375801,-.03193428438915,.03222754072173,.00541907748707],[.56619470757641,
+-1.04800335126349,-.75464456939302,.29156311971249,.1624213774223,-.26806001042947,.16744243493672,.00819999645858,-.18901604199609,.45054734505008,.3093178284183,-.33032403314006,-.27562961986224,.0673936833311,.00647310677246,-.04784254229033,.08647503780351,.01639907836189,-.0378898455484,.01807364323573,-.00588215443421],[.58100494960553,-.51035327095184,-.53174909058578,-.31863563325245,-.14289799034253,-.20256413484477,.17520704835522,.1472815413433,.02377945217615,.38952639978999,.15558449135573,
+-.23313271880868,-.25344790059353,-.05246019024463,.01628462406333,-.02505961724053,.06920467763959,.02442357316099,-.03721611395801,.01818801111503,-.00749618797172],[.53648789255105,-.2504987195602,-.42163034350696,-.43193942311114,-.00275953611929,-.03424681017675,.04267842219415,-.04678328784242,-.10214864179676,.26408300200955,.14590772289388,.15113130533216,-.02459864859345,-.17556493366449,-.11202315195388,-.18823009262115,-.04060034127,.05477720428674,.0478866554818,.0470440968812,-.02217936801134]],
+r=[[.98621192462708,-1.97223372919527,-1.97242384925416,.97261396931306,.98621192462708],[.98500175787242,-1.96977855582618,-1.97000351574484,.9702284756635,.98500175787242],[.97938932735214,-1.95835380975398,-1.95877865470428,.95920349965459,.97938932735214],[.97531843204928,-1.95002759149878,-1.95063686409857,.95124613669835,.97531843204928],[.97316523498161,-1.94561023566527,-1.94633046996323,.94705070426118,.97316523498161],[.96454515552826,-1.92783286977036,-1.92909031105652,.93034775234268,
+.96454515552826],[.96009142950541,-1.91858953033784,-1.92018285901082,.92177618768381,.96009142950541],[.95856916599601,-1.9154210807478,-1.91713833199203,.91885558323625,.95856916599601],[.94597685600279,-1.88903307939452,-1.89195371200558,.89487434461664,.94597685600279]];this.InitGainAnalysis=function(d,b){var l;a:{for(l=0;l<MAX_ORDER;l++)d.linprebuf[l]=d.lstepbuf[l]=d.loutbuf[l]=d.rinprebuf[l]=d.rstepbuf[l]=d.routbuf[l]=0;switch(0|b){case 48E3:d.reqindex=0;break;case 44100:d.reqindex=1;break;
+case 32E3:d.reqindex=2;break;case 24E3:d.reqindex=3;break;case 22050:d.reqindex=4;break;case 16E3:d.reqindex=5;break;case 12E3:d.reqindex=6;break;case 11025:d.reqindex=7;break;case 8E3:d.reqindex=8;break;default:l=INIT_GAIN_ANALYSIS_ERROR;break a}d.sampleWindow=0|(b*C+B-1)/B;d.lsum=0;d.rsum=0;d.totsamp=0;Ia.ill(d.A,0);l=INIT_GAIN_ANALYSIS_OK}if(l!=INIT_GAIN_ANALYSIS_OK)return INIT_GAIN_ANALYSIS_ERROR;d.linpre=MAX_ORDER;d.rinpre=MAX_ORDER;d.lstep=MAX_ORDER;d.rstep=MAX_ORDER;d.lout=MAX_ORDER;d.rout=
+MAX_ORDER;Ia.fill(d.B,0);return INIT_GAIN_ANALYSIS_OK};this.AnalyzeSamples=function(g,b,l,a,h,D,e){var n,c,f,E,z,w;if(0==D)return GAIN_ANALYSIS_OK;w=0;E=D;switch(e){case 1:a=b;h=l;break;case 2:break;default:return GAIN_ANALYSIS_ERROR}D<MAX_ORDER?(K.arraycopy(b,l,g.linprebuf,MAX_ORDER,D),K.arraycopy(a,h,g.rinprebuf,MAX_ORDER,D)):(K.arraycopy(b,l,g.linprebuf,MAX_ORDER,MAX_ORDER),K.arraycopy(a,h,g.rinprebuf,MAX_ORDER,MAX_ORDER));for(;0<E;){z=E>g.sampleWindow-g.totsamp?g.sampleWindow-g.totsamp:E;w<MAX_ORDER?
+(e=g.linpre+w,n=g.linprebuf,c=g.rinpre+w,f=g.rinprebuf,z>MAX_ORDER-w&&(z=MAX_ORDER-w)):(e=l+w,n=b,c=h+w,f=a);d(n,e,g.lstepbuf,g.lstep+g.totsamp,z,t[g.reqindex]);d(f,c,g.rstepbuf,g.rstep+g.totsamp,z,t[g.reqindex]);k(g.lstepbuf,g.lstep+g.totsamp,g.loutbuf,g.lout+g.totsamp,z,r[g.reqindex]);k(g.rstepbuf,g.rstep+g.totsamp,g.routbuf,g.rout+g.totsamp,z,r[g.reqindex]);e=g.lout+g.totsamp;n=g.loutbuf;c=g.rout+g.totsamp;f=g.routbuf;for(var A=z%8;0!=A--;)g.lsum+=q(n[e++]),g.rsum+=q(f[c++]);for(A=z/8;0!=A--;)g.lsum+=
+q(n[e+0])+q(n[e+1])+q(n[e+2])+q(n[e+3])+q(n[e+4])+q(n[e+5])+q(n[e+6])+q(n[e+7]),e+=8,g.rsum+=q(f[c+0])+q(f[c+1])+q(f[c+2])+q(f[c+3])+q(f[c+4])+q(f[c+5])+q(f[c+6])+q(f[c+7]),c+=8;E-=z;w+=z;g.totsamp+=z;g.totsamp==g.sampleWindow&&(e=10*O.STEPS_per_dB*Math.log10((g.lsum+g.rsum)/g.totsamp*.5+1E-37),e=0>=e?0:0|e,e>=g.A.length&&(e=g.A.length-1),g.A[e]++,g.lsum=g.rsum=0,K.arraycopy(g.loutbuf,g.totsamp,g.loutbuf,0,MAX_ORDER),K.arraycopy(g.routbuf,g.totsamp,g.routbuf,0,MAX_ORDER),K.arraycopy(g.lstepbuf,g.totsamp,
+g.lstepbuf,0,MAX_ORDER),K.arraycopy(g.rstepbuf,g.totsamp,g.rstepbuf,0,MAX_ORDER),g.totsamp=0);if(g.totsamp>g.sampleWindow)return GAIN_ANALYSIS_ERROR}D<MAX_ORDER?(K.arraycopy(g.linprebuf,D,g.linprebuf,0,MAX_ORDER-D),K.arraycopy(g.rinprebuf,D,g.rinprebuf,0,MAX_ORDER-D),K.arraycopy(b,l,g.linprebuf,MAX_ORDER-D,D),K.arraycopy(a,h,g.rinprebuf,MAX_ORDER-D,D)):(K.arraycopy(b,l+D-MAX_ORDER,g.linprebuf,0,MAX_ORDER),K.arraycopy(a,h+D-MAX_ORDER,g.rinprebuf,0,MAX_ORDER));return GAIN_ANALYSIS_OK};this.GetTitleGain=
+function(d){var b;b=d.A;var l=d.A.length,a,h=0;for(a=0;a<l;a++)h+=b[a];if(0==h)b=GAIN_NOT_ENOUGH_SAMPLES;else{h=0|Math.ceil(h*(1-.95));for(a=l;0<a--&&!(0>=(h-=b[a])););b=64.82-a/O.STEPS_per_dB}for(l=0;l<d.A.length;l++)d.B[l]+=d.A[l],d.A[l]=0;for(l=0;l<MAX_ORDER;l++)d.linprebuf[l]=d.lstepbuf[l]=d.loutbuf[l]=d.rinprebuf[l]=d.rstepbuf[l]=d.routbuf[l]=0;d.totsamp=0;d.lsum=d.rsum=0;return b}}function tb(){function J(a){this.bits=0|a}function k(a,c,b,d,e,p){c=.5946/c;for(a>>=1;0!=a--;)e[p++]=c>b[d++]?0:
+1,e[p++]=c>b[d++]?0:1}function q(a,c,b,d,e,p){a>>=1;var m=a%2;for(a>>=1;0!=a--;){var f,n,g,u,h,l,k;f=b[d++]*c;n=b[d++]*c;h=0|f;g=b[d++]*c;l=0|n;u=b[d++]*c;k=0|g;f+=t.adj43[h];h=0|u;n+=t.adj43[l];e[p++]=0|f;g+=t.adj43[k];e[p++]=0|n;u+=t.adj43[h];e[p++]=0|g;e[p++]=0|u}0!=m&&(f=b[d++]*c,n=b[d++]*c,f+=t.adj43[0|f],n+=t.adj43[0|n],e[p++]=0|f,e[p++]=0|n)}function C(a,c,b,d){var e,p=c,m=e=0;do{var f=a[p++],n=a[p++];e<f&&(e=f);m<n&&(m=n)}while(p<b);e<m&&(e=m);switch(e){case 0:return e;case 1:p=c;c=0;e=r.ht[1].hlen;
+do m=2*a[p+0]+a[p+1],p+=2,c+=e[m];while(p<b);d.bits+=c;return 1;case 2:case 3:p=c;c=g[e-1];e=0;m=r.ht[c].xlen;f=2==c?r.table23:r.table56;do n=a[p+0]*m+a[p+1],p+=2,e+=f[n];while(p<b);a=e&65535;e>>=16;e>a&&(e=a,c++);d.bits+=e;return c;case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:p=c;c=g[e-1];var f=m=e=0,n=r.ht[c].xlen,h=r.ht[c].hlen,u=r.ht[c+1].hlen,l=r.ht[c+2].hlen;do{var k=a[p+0]*n+a[p+1],p=p+2;e+=h[k];m+=u[k];f+=l[k]}while(p<b);a=c;e>m&&(e=m,a++);e>f&&
+(e=f,a=c+2);d.bits+=e;return a;default:if(e>ma.IXMAX_VAL)return d.bits=ma.LARGE_BITS,-1;e-=15;for(p=24;32>p&&!(r.ht[p].linmax>=e);p++);for(m=p-8;24>m&&!(r.ht[m].linmax>=e);m++);e=m;f=65536*r.ht[e].xlen+r.ht[p].xlen;m=0;do n=a[c++],h=a[c++],0!=n&&(14<n&&(n=15,m+=f),n*=16),0!=h&&(14<h&&(h=15,m+=f),n+=h),m+=r.largetbl[n];while(c<b);a=m&65535;m>>=16;m>a&&(m=a,e=p);d.bits+=m;return e}}function B(a,c,e,b,f,p,m,n){for(var y=c.big_values,g=2;g<d.SBMAX_l+1;g++){var h=a.scalefac_band.l[g];if(h>=y)break;var l=
+f[g-2]+c.count1bits;if(e.part2_3_length<=l)break;l=new J(l);h=C(b,h,y,l);l=l.bits;e.part2_3_length<=l||(e.assign(c),e.part2_3_length=l,e.region0_count=p[g-2],e.region1_count=g-2-p[g-2],e.table_select[0]=m[g-2],e.table_select[1]=n[g-2],e.table_select[2]=h)}}var t=null;this.qupvt=null;this.setModules=function(a){t=this.qupvt=a};var ta=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]],g=[1,2,5,7,7,10,10,13,13,13,
+13,13,13,13,13];this.noquant_count_bits=function(a,c,e){var b=c.l3_enc,f=Math.min(576,c.max_nonzero_coeff+2>>1<<1);null!=e&&(e.sfb_count1=0);for(;1<f&&0==(b[f-1]|b[f-2]);f-=2);c.count1=f;for(var p=0,m=0;3<f;f-=4){var n;if(1<((b[f-1]|b[f-2]|b[f-3]|b[f-4])&2147483647))break;n=2*(2*(2*b[f-4]+b[f-3])+b[f-2])+b[f-1];p+=r.t32l[n];m+=r.t33l[n]}n=p;c.count1table_select=0;p>m&&(n=m,c.count1table_select=1);c.count1bits=n;c.big_values=f;if(0==f)return n;c.block_type==d.SHORT_TYPE?(p=3*a.scalefac_band.s[3],p>
+c.big_values&&(p=c.big_values),m=c.big_values):c.block_type==d.NORM_TYPE?(p=c.region0_count=a.bv_scf[f-2],m=c.region1_count=a.bv_scf[f-1],m=a.scalefac_band.l[p+m+2],p=a.scalefac_band.l[p+1],m<f&&(n=new J(n),c.table_select[2]=C(b,m,f,n),n=n.bits)):(c.region0_count=7,c.region1_count=d.SBMAX_l-1-7-1,p=a.scalefac_band.l[8],m=f,p>m&&(p=m));p=Math.min(p,f);m=Math.min(m,f);0<p&&(n=new J(n),c.table_select[0]=C(b,0,p,n),n=n.bits);p<m&&(n=new J(n),c.table_select[1]=C(b,p,m,n),n=n.bits);2==a.use_best_huffman&&
+(c.part2_3_length=n,best_huffman_divide(a,c),n=c.part2_3_length);if(null!=e&&c.block_type==d.NORM_TYPE){for(b=0;a.scalefac_band.l[b]<c.big_values;)b++;e.sfb_count1=b}return n};this.count_bits=function(a,c,e,b){var f=e.l3_enc,n=ma.IXMAX_VAL/t.IPOW20(e.global_gain);if(e.xrpow_max>n)return ma.LARGE_BITS;var n=t.IPOW20(e.global_gain),m,g,y=0,h,u=0,l=0,la=0,F=0,G=f,I=0,T=c,U=0;h=null!=b&&e.global_gain==b.global_gain;g=e.block_type==d.SHORT_TYPE?38:21;for(m=0;m<=g;m++){var D=-1;if(h||e.block_type==d.NORM_TYPE)D=
+e.global_gain-(e.scalefac[m]+(0!=e.preflag?t.pretab[m]:0)<<e.scalefac_scale+1)-8*e.subblock_gain[e.window[m]];if(h&&b.step[m]==D)0!=u&&(q(u,n,T,U,G,I),u=0),0!=l&&(k(l,n,T,U,G,I),l=0);else{var ia=e.width[m];y+e.width[m]>e.max_nonzero_coeff&&(m=e.max_nonzero_coeff-y+1,Ia.fill(f,e.max_nonzero_coeff,576,0),ia=m,0>ia&&(ia=0),m=g+1);0==u&&0==l&&(G=f,I=F,T=c,U=la);null!=b&&0<b.sfb_count1&&m>=b.sfb_count1&&0<b.step[m]&&D>=b.step[m]?(0!=u&&(q(u,n,T,U,G,I),u=0,G=f,I=F,T=c,U=la),l+=ia):(0!=l&&(k(l,n,T,U,G,I),
+l=0,G=f,I=F,T=c,U=la),u+=ia);if(0>=ia){0!=l&&(k(l,n,T,U,G,I),l=0);0!=u&&(q(u,n,T,U,G,I),u=0);break}}m<=g&&(F+=e.width[m],la+=e.width[m],y+=e.width[m])}0!=u&&q(u,n,T,U,G,I);0!=l&&k(l,n,T,U,G,I);if(0!=(a.substep_shaping&2))for(n=0,g=.634521682242439/t.IPOW20(e.global_gain+e.scalefac_scale),y=0;y<e.sfbmax;y++)if(h=e.width[y],0==a.pseudohalf[y])n+=h;else for(u=n,n+=h;u<n;++u)f[u]=c[u]>=g?f[u]:0;return this.noquant_count_bits(a,e,b)};this.best_huffman_divide=function(a,c){var e=new Ab,b=c.l3_enc,f=Y(23),
+n=Y(23),m=Y(23),g=Y(23);if(c.block_type!=d.SHORT_TYPE||1!=a.mode_gr){e.assign(c);if(c.block_type==d.NORM_TYPE){for(var y=c.big_values,h=0;22>=h;h++)f[h]=ma.LARGE_BITS;for(h=0;16>h;h++){var l=a.scalefac_band.l[h+1];if(l>=y)break;for(var k=0,q=new J(k),F=C(b,0,l,q),k=q.bits,G=0;8>G;G++){var I=a.scalefac_band.l[h+G+2];if(I>=y)break;q=k;q=new J(q);I=C(b,l,I,q);q=q.bits;f[h+G]>q&&(f[h+G]=q,n[h+G]=h,m[h+G]=F,g[h+G]=I)}}B(a,e,c,b,f,n,m,g)}y=e.big_values;if(!(0==y||1<(b[y-2]|b[y-1])||(y=c.count1+2,576<y))){e.assign(c);
+e.count1=y;for(l=h=0;y>e.big_values;y-=4)k=2*(2*(2*b[y-4]+b[y-3])+b[y-2])+b[y-1],h+=r.t32l[k],l+=r.t33l[k];e.big_values=y;e.count1table_select=0;h>l&&(h=l,e.count1table_select=1);e.count1bits=h;e.block_type==d.NORM_TYPE?B(a,e,c,b,f,n,m,g):(e.part2_3_length=h,h=a.scalefac_band.l[8],h>y&&(h=y),0<h&&(f=new J(e.part2_3_length),e.table_select[0]=C(b,0,h,f),e.part2_3_length=f.bits),y>h&&(f=new J(e.part2_3_length),e.table_select[1]=C(b,h,y,f),e.part2_3_length=f.bits),c.part2_3_length>e.part2_3_length&&c.assign(e))}}};
+var b=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],l=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],a=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],h=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];tb.slen1_tab=a;tb.slen2_tab=h;this.best_scalefac_store=function(c,e,f,n){var g=n.tt[e][f],p,m,x,y=0;for(p=m=0;p<g.sfbmax;p++){x=g.width[p];m+=x;for(x=-x;0>x&&0==g.l3_enc[x+m];x++);0==x&&(g.scalefac[p]=y=-2)}if(0==g.scalefac_scale&&0==g.preflag){for(p=m=0;p<g.sfbmax;p++)0<g.scalefac[p]&&(m|=g.scalefac[p]);if(0==(m&1)&&0!=m){for(p=0;p<g.sfbmax;p++)0<g.scalefac[p]&&
+(g.scalefac[p]>>=1);g.scalefac_scale=y=1}}if(0==g.preflag&&g.block_type!=d.SHORT_TYPE&&2==c.mode_gr){for(p=11;p<d.SBPSY_l&&!(g.scalefac[p]<t.pretab[p]&&-2!=g.scalefac[p]);p++);if(p==d.SBPSY_l){for(p=11;p<d.SBPSY_l;p++)0<g.scalefac[p]&&(g.scalefac[p]-=t.pretab[p]);g.preflag=y=1}}for(p=0;4>p;p++)n.scfsi[f][p]=0;if(2==c.mode_gr&&1==e&&n.tt[0][f].block_type!=d.SHORT_TYPE&&n.tt[1][f].block_type!=d.SHORT_TYPE){e=n.tt[1][f];m=n.tt[0][f];for(y=0;y<r.scfsi_band.length-1;y++){for(p=r.scfsi_band[y];p<r.scfsi_band[y+
+1]&&!(m.scalefac[p]!=e.scalefac[p]&&0<=e.scalefac[p]);p++);if(p==r.scfsi_band[y+1]){for(p=r.scfsi_band[y];p<r.scfsi_band[y+1];p++)e.scalefac[p]=-1;n.scfsi[f][y]=1}}for(p=n=f=0;11>p;p++)-1!=e.scalefac[p]&&(n++,f<e.scalefac[p]&&(f=e.scalefac[p]));for(x=m=0;p<d.SBPSY_l;p++)-1!=e.scalefac[p]&&(x++,m<e.scalefac[p]&&(m=e.scalefac[p]));for(y=0;16>y;y++)f<b[y]&&m<l[y]&&(p=a[y]*n+h[y]*x,e.part2_length>p&&(e.part2_length=p,e.scalefac_compress=y));y=0}for(p=0;p<g.sfbmax;p++)-2==g.scalefac[p]&&(g.scalefac[p]=
+0);0!=y&&(2==c.mode_gr?this.scale_bitcount(g):this.scale_bitcount_lsf(c,g))};var D=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],e=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],n=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(a){var c,f=0,g=0,h,p=a.scalefac;if(a.block_type==d.SHORT_TYPE)h=D,0!=a.mixed_block_flag&&(h=e);else if(h=n,0==a.preflag){for(c=11;c<d.SBPSY_l&&!(p[c]<t.pretab[c]);c++);if(c==d.SBPSY_l)for(a.preflag=1,c=11;c<d.SBPSY_l;c++)p[c]-=t.pretab[c]}for(c=
+0;c<a.sfbdivide;c++)f<p[c]&&(f=p[c]);for(;c<a.sfbmax;c++)g<p[c]&&(g=p[c]);a.part2_length=ma.LARGE_BITS;for(c=0;16>c;c++)f<b[c]&&g<l[c]&&a.part2_length>h[c]&&(a.part2_length=h[c],a.scalefac_compress=c);return a.part2_length==ma.LARGE_BITS};var c=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(a,e){var b,n,g,p,m,h,y,l=Y(4),u=e.scalefac;b=0!=e.preflag?2:0;for(h=0;4>h;h++)l[h]=0;if(e.block_type==d.SHORT_TYPE){n=1;var k=t.nr_of_sfb_block[b][n];for(g=
+y=0;4>g;g++)for(p=k[g]/3,h=0;h<p;h++,y++)for(m=0;3>m;m++)u[3*y+m]>l[g]&&(l[g]=u[3*y+m])}else for(n=0,k=t.nr_of_sfb_block[b][n],g=y=0;4>g;g++)for(p=k[g],h=0;h<p;h++,y++)u[y]>l[g]&&(l[g]=u[y]);p=!1;for(g=0;4>g;g++)l[g]>c[b][g]&&(p=!0);if(!p){e.sfb_partition_table=t.nr_of_sfb_block[b][n];for(g=0;4>g;g++)e.slen[g]=f[l[g]];n=e.slen[0];g=e.slen[1];l=e.slen[2];m=e.slen[3];switch(b){case 0:e.scalefac_compress=(5*n+g<<4)+(l<<2)+m;break;case 1:e.scalefac_compress=400+(5*n+g<<2)+l;break;case 2:e.scalefac_compress=
+500+3*n+g;break;default:K.err.printf("intensity stereo not implemented yet\n")}}if(!p)for(g=e.part2_length=0;4>g;g++)e.part2_length+=e.slen[g]*e.sfb_partition_table[g];return p};var f=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(a){for(var c=2;576>=c;c+=2){for(var e=0,b;a.scalefac_band.l[++e]<c;);for(b=ta[e][0];a.scalefac_band.l[b+1]>c;)b--;0>b&&(b=ta[e][0]);a.bv_scf[c-2]=b;for(b=ta[e][1];a.scalefac_band.l[b+a.bv_scf[c-2]+2]>c;)b--;0>b&&(b=ta[e][1]);a.bv_scf[c-1]=b}}}function Hc(){var d;
+this.setModules=function(k){d=k};this.ResvFrameBegin=function(k,q){var C=k.internal_flags,B,t=C.l3_side,r=d.getframebits(k);q.bits=(r-8*C.sideinfo_len)/C.mode_gr;var g=2048*C.mode_gr-8;320<k.brate?B=8*int(1E3*k.brate/(k.out_samplerate/1152)/8+.5):(B=11520,k.strict_ISO&&(B=8*int(32E4/(k.out_samplerate/1152)/8+.5)));C.ResvMax=B-r;C.ResvMax>g&&(C.ResvMax=g);if(0>C.ResvMax||k.disable_reservoir)C.ResvMax=0;r=q.bits*C.mode_gr+Math.min(C.ResvSize,C.ResvMax);r>B&&(r=B);t.resvDrain_pre=0;null!=C.pinfo&&(C.pinfo.mean_bits=
+q.bits/2,C.pinfo.resvsize=C.ResvSize);return r};this.ResvMaxBits=function(d,q,J,B){var t=d.internal_flags,r=t.ResvSize,g=t.ResvMax;0!=B&&(r+=q);0!=(t.substep_shaping&1)&&(g*=.9);J.bits=q;10*r>9*g?(B=r-9*g/10,J.bits+=B,t.substep_shaping|=128):(B=0,t.substep_shaping&=127,d.disable_reservoir||0!=(t.substep_shaping&1)||(J.bits-=.1*q));d=r<6*t.ResvMax/10?r:6*t.ResvMax/10;d-=B;0>d&&(d=0);return d};this.ResvAdjust=function(d,q){d.ResvSize-=q.part2_3_length+q.part2_length};this.ResvFrameEnd=function(d,q){var J,
+B=d.l3_side;d.ResvSize+=q*d.mode_gr;var t=0;B.resvDrain_post=0;B.resvDrain_pre=0;0!=(J=d.ResvSize%8)&&(t+=J);J=d.ResvSize-t-d.ResvMax;0<J&&(t+=J);J=Math.min(8*B.main_data_begin,t)/8;B.resvDrain_pre+=8*J;t-=8*J;d.ResvSize-=8*J;B.main_data_begin-=J;B.resvDrain_post+=t;d.ResvSize-=t}}function ua(){function J(a,e,b){for(;0<b;){var d;0==z&&(z=8,E++,a.header[a.w_ptr].write_timing==f&&(d=a,K.arraycopy(d.header[d.w_ptr].buf,0,c,E,d.sideinfo_len),E+=d.sideinfo_len,f+=8*d.sideinfo_len,d.w_ptr=d.w_ptr+1&da.MAX_HEADER_BUF-
+1),c[E]=0);d=Math.min(b,z);b-=d;z-=d;c[E]|=e>>b<<z;f+=d}}function k(a,c){var b=a.internal_flags,d;8<=c&&(J(b,76,8),c-=8);8<=c&&(J(b,65,8),c-=8);8<=c&&(J(b,77,8),c-=8);8<=c&&(J(b,69,8),c-=8);if(32<=c){var m=e.getLameShortVersion();if(32<=c)for(d=0;d<m.length&&8<=c;++d)c-=8,J(b,m.charAt(d),8)}for(;1<=c;--c)J(b,b.ancillary_flag,1),b.ancillary_flag^=a.disable_reservoir?0:1}function q(a,c,e){for(var b=a.header[a.h_ptr].ptr;0<e;){var m=Math.min(e,8-(b&7));e-=m;a.header[a.h_ptr].buf[b>>3]|=c>>e<<8-(b&7)-
+m;b+=m}a.header[a.h_ptr].ptr=b}function C(a,c){a<<=8;for(var e=0;8>e;e++)a<<=1,c<<=1,0!=((c^a)&65536)&&(c^=32773);return c}function B(a,c){var e=r.ht[c.count1table_select+32],b,m=0,d=c.big_values,f=c.big_values;for(b=(c.count1-c.big_values)/4;0<b;--b){var n=0,g=0,h;h=c.l3_enc[d+0];0!=h&&(g+=8,0>c.xr[f+0]&&n++);h=c.l3_enc[d+1];0!=h&&(g+=4,n*=2,0>c.xr[f+1]&&n++);h=c.l3_enc[d+2];0!=h&&(g+=2,n*=2,0>c.xr[f+2]&&n++);h=c.l3_enc[d+3];0!=h&&(g++,n*=2,0>c.xr[f+3]&&n++);d+=4;f+=4;J(a,n+e.table[g],e.hlen[g]);
+m+=e.hlen[g]}return m}function t(c,a,e,b,m){var d=r.ht[a],f=0;if(0==a)return f;for(;e<b;e+=2){var n=0,g=0,h=d.xlen,l=d.xlen,k=0,G=m.l3_enc[e],I=m.l3_enc[e+1];0!=G&&(0>m.xr[e]&&k++,n--);15<a&&(14<G&&(k|=G-15<<1,g=h,G=15),14<I&&(l=I-15,k<<=h,k|=l,g+=h,I=15),l=16);0!=I&&(k<<=1,0>m.xr[e+1]&&k++,n--);G=G*l+I;g-=n;n+=d.hlen[G];J(c,d.table[G],n);J(c,k,g);f+=n+g}return f}function H(c,a){var e=3*c.scalefac_band.s[3];e>a.big_values&&(e=a.big_values);var b=t(c,a.table_select[0],0,e,a);return b+=t(c,a.table_select[1],
+e,a.big_values,a)}function g(c,a){var e,b,m,d;e=a.big_values;b=a.region0_count+1;m=c.scalefac_band.l[b];b+=a.region1_count+1;d=c.scalefac_band.l[b];m>e&&(m=e);d>e&&(d=e);b=t(c,a.table_select[0],0,m,a);b+=t(c,a.table_select[1],m,d,a);return b+=t(c,a.table_select[2],d,e,a)}function b(){this.total=0}function l(c,e){var b=c.internal_flags,d,m,n,g;g=b.w_ptr;n=b.h_ptr-1;-1==n&&(n=da.MAX_HEADER_BUF-1);d=b.header[n].write_timing-f;e.total=d;0<=d&&(m=1+n-g,n<g&&(m=1+n-g+da.MAX_HEADER_BUF),d-=8*m*b.sideinfo_len);
+b=a.getframebits(c);d+=b;e.total+=b;e.total=0!=e.total%8?1+e.total/8:e.total/8;e.total+=E+1;0>d&&K.err.println("strange error flushing buffer ... \n");return d}var a=this,h=null,D=null,e=null,n=null;this.setModules=function(a,c,b,d){h=a;D=c;e=b;n=d};var c=null,f=0,E=0,z=0;this.getframebits=function(a){var c=a.internal_flags;return 8*(0|72E3*(a.version+1)*(0!=c.bitrate_index?r.bitrate_table[a.version][c.bitrate_index]:a.brate)/a.out_samplerate+c.padding)};this.CRC_writeheader=function(a,c){var e;e=
+C(c[2]&255,65535);e=C(c[3]&255,e);for(var b=6;b<a.sideinfo_len;b++)e=C(c[b]&255,e);c[4]=byte(e>>8);c[5]=byte(e&255)};this.flush_bitstream=function(c){var a=c.internal_flags,e,d;e=a.l3_side;0>(d=l(c,new b))||(k(c,d),a.ResvSize=0,e.main_data_begin=0,a.findReplayGain&&(e=h.GetTitleGain(a.rgdata),a.RadioGain=Math.floor(10*e+.5)|0),a.findPeakSample&&(a.noclipGainChange=Math.ceil(200*Math.log10(a.PeakSample/32767))|0,0<a.noclipGainChange?EQ(c.scale,1)||EQ(c.scale,0)?a.noclipScale=Math.floor(32767/a.PeakSample*
+100)/100:a.noclipScale=-1:a.noclipScale=-1))};this.add_dummy_byte=function(a,e,b){a=a.internal_flags;for(var d;0<b--;){d=e;for(var m=8;0<m;){var n;0==z&&(z=8,E++,c[E]=0);n=Math.min(m,z);m-=n;z-=n;c[E]|=d>>m<<z;f+=n}for(d=0;d<da.MAX_HEADER_BUF;++d)a.header[d].write_timing+=8}};this.format_bitstream=function(a){var c=a.internal_flags,e;e=c.l3_side;var n=this.getframebits(a);k(a,e.resvDrain_pre);var m=a.internal_flags,h,y,E;h=m.l3_side;m.header[m.h_ptr].ptr=0;Ia.fill(m.header[m.h_ptr].buf,0,m.sideinfo_len,
+0);16E3>a.out_samplerate?q(m,4094,12):q(m,4095,12);q(m,a.version,1);q(m,1,2);q(m,a.error_protection?0:1,1);q(m,m.bitrate_index,4);q(m,m.samplerate_index,2);q(m,m.padding,1);q(m,a.extension,1);q(m,a.mode.ordinal(),2);q(m,m.mode_ext,2);q(m,a.copyright,1);q(m,a.original,1);q(m,a.emphasis,2);a.error_protection&&q(m,0,16);if(1==a.version){q(m,h.main_data_begin,9);2==m.channels_out?q(m,h.private_bits,3):q(m,h.private_bits,5);for(E=0;E<m.channels_out;E++)for(y=0;4>y;y++)q(m,h.scfsi[E][y],1);for(y=0;2>y;y++)for(E=
+0;E<m.channels_out;E++){var u=h.tt[y][E];q(m,u.part2_3_length+u.part2_length,12);q(m,u.big_values/2,9);q(m,u.global_gain,8);q(m,u.scalefac_compress,4);u.block_type!=d.NORM_TYPE?(q(m,1,1),q(m,u.block_type,2),q(m,u.mixed_block_flag,1),14==u.table_select[0]&&(u.table_select[0]=16),q(m,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),q(m,u.table_select[1],5),q(m,u.subblock_gain[0],3),q(m,u.subblock_gain[1],3),q(m,u.subblock_gain[2],3)):(q(m,0,1),14==u.table_select[0]&&(u.table_select[0]=
+16),q(m,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),q(m,u.table_select[1],5),14==u.table_select[2]&&(u.table_select[2]=16),q(m,u.table_select[2],5),q(m,u.region0_count,4),q(m,u.region1_count,3));q(m,u.preflag,1);q(m,u.scalefac_scale,1);q(m,u.count1table_select,1)}}else for(q(m,h.main_data_begin,8),q(m,h.private_bits,m.channels_out),E=y=0;E<m.channels_out;E++)u=h.tt[y][E],q(m,u.part2_3_length+u.part2_length,12),q(m,u.big_values/2,9),q(m,u.global_gain,8),q(m,u.scalefac_compress,
+9),u.block_type!=d.NORM_TYPE?(q(m,1,1),q(m,u.block_type,2),q(m,u.mixed_block_flag,1),14==u.table_select[0]&&(u.table_select[0]=16),q(m,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),q(m,u.table_select[1],5),q(m,u.subblock_gain[0],3),q(m,u.subblock_gain[1],3),q(m,u.subblock_gain[2],3)):(q(m,0,1),14==u.table_select[0]&&(u.table_select[0]=16),q(m,u.table_select[0],5),14==u.table_select[1]&&(u.table_select[1]=16),q(m,u.table_select[1],5),14==u.table_select[2]&&(u.table_select[2]=16),
+q(m,u.table_select[2],5),q(m,u.region0_count,4),q(m,u.region1_count,3)),q(m,u.scalefac_scale,1),q(m,u.count1table_select,1);a.error_protection&&CRC_writeheader(m,m.header[m.h_ptr].buf);h=m.h_ptr;m.h_ptr=h+1&da.MAX_HEADER_BUF-1;m.header[m.h_ptr].write_timing=m.header[h].write_timing+n;m.h_ptr==m.w_ptr&&K.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n");var m=8*c.sideinfo_len,z=0,t=a.internal_flags,F=t.l3_side;if(1==a.version)for(h=0;2>h;h++)for(E=0;E<t.channels_out;E++){var G=F.tt[h][E],
+I=tb.slen1_tab[G.scalefac_compress],T=tb.slen2_tab[G.scalefac_compress];for(y=u=0;y<G.sfbdivide;y++)-1!=G.scalefac[y]&&(J(t,G.scalefac[y],I),u+=I);for(;y<G.sfbmax;y++)-1!=G.scalefac[y]&&(J(t,G.scalefac[y],T),u+=T);u=G.block_type==d.SHORT_TYPE?u+H(t,G):u+g(t,G);u+=B(t,G);z+=u}else for(E=h=0;E<t.channels_out;E++){var G=F.tt[h][E],U=0,T=y=u=0;if(G.block_type==d.SHORT_TYPE){for(;4>T;T++)for(var D=G.sfb_partition_table[T]/3,ia=G.slen[T],I=0;I<D;I++,y++)J(t,Math.max(G.scalefac[3*y+0],0),ia),J(t,Math.max(G.scalefac[3*
+y+1],0),ia),J(t,Math.max(G.scalefac[3*y+2],0),ia),U+=3*ia;u+=H(t,G)}else{for(;4>T;T++)for(D=G.sfb_partition_table[T],ia=G.slen[T],I=0;I<D;I++,y++)J(t,Math.max(G.scalefac[y],0),ia),U+=ia;u+=g(t,G)}u+=B(t,G);z+=U+u}m+=z;k(a,e.resvDrain_post);m+=e.resvDrain_post;e.main_data_begin+=(n-m)/8;l(a,new b)!=c.ResvSize&&K.err.println("Internal buffer inconsistency. flushbits <> ResvSize");8*e.main_data_begin!=c.ResvSize&&(K.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size:             %d \nresv drain (post)         %d \nresv drain (pre)          %d \nheader and sideinfo:      %d \ndata bits:                %d \ntotal bits:               %d (remainder: %d) \nbitsperframe:             %d \n",
+8*e.main_data_begin,c.ResvSize,e.resvDrain_post,e.resvDrain_pre,8*c.sideinfo_len,m-e.resvDrain_post-8*c.sideinfo_len,m,m%8,n),K.err.println("This is a fatal error.  It has several possible causes:"),K.err.println("90%%  LAME compiled with buggy version of gcc using advanced optimizations"),K.err.println(" 9%%  Your system is overclocked"),K.err.println(" 1%%  bug in LAME encoding library"),c.ResvSize=8*e.main_data_begin);if(1E9<f){for(a=0;a<da.MAX_HEADER_BUF;++a)c.header[a].write_timing-=f;f=0}return 0};
+this.copy_buffer=function(a,e,b,d,m){var f=E+1;if(0>=f)return 0;if(0!=d&&f>d)return-1;K.arraycopy(c,0,e,b,f);E=-1;z=0;if(0!=m&&(d=Y(1),d[0]=a.nMusicCRC,n.updateMusicCRC(d,e,b,f),a.nMusicCRC=d[0],0<f&&(a.VBR_seek_table.nBytesWritten+=f),a.decode_on_the_fly)){d=ra([2,1152]);m=f;for(var g=-1,l;0!=g;)if(g=D.hip_decode1_unclipped(a.hip,e,b,m,d[0],d[1]),m=0,-1==g&&(g=0),0<g){if(a.findPeakSample){for(l=0;l<g;l++)d[0][l]>a.PeakSample?a.PeakSample=d[0][l]:-d[0][l]>a.PeakSample&&(a.PeakSample=-d[0][l]);if(1<
+a.channels_out)for(l=0;l<g;l++)d[1][l]>a.PeakSample?a.PeakSample=d[1][l]:-d[1][l]>a.PeakSample&&(a.PeakSample=-d[1][l])}if(a.findReplayGain&&h.AnalyzeSamples(a.rgdata,d[0],0,d[1],0,g,a.channels_out)==O.GAIN_ANALYSIS_ERROR)return-6}}return f};this.init_bit_stream_w=function(a){c=new Int8Array(V.LAME_MAXMP3BUFFER);a.h_ptr=a.w_ptr=0;a.header[a.h_ptr].write_timing=0;E=-1;f=z=0}}function ub(){function d(a,b){var c=a[b+0]&255,c=c<<8|a[b+1]&255,c=c<<8,c=c|a[b+2]&255,c=c<<8;return c|=a[b+3]&255}function k(a,
+b,c){a[b+0]=c>>24&255;a[b+1]=c>>16&255;a[b+2]=c>>8&255;a[b+3]=c&255}function q(a,b,c){a[b+0]=c>>8&255;a[b+1]=c&255}function C(a,b,c){return 255&(a<<b|c&~(-1<<b))}function B(a,b){var c=a.internal_flags;b[0]=C(b[0],8,255);b[1]=C(b[1],3,7);b[1]=C(b[1],1,16E3>a.out_samplerate?0:1);b[1]=C(b[1],1,a.version);b[1]=C(b[1],2,1);b[1]=C(b[1],1,a.error_protection?0:1);b[2]=C(b[2],4,c.bitrate_index);b[2]=C(b[2],2,c.samplerate_index);b[2]=C(b[2],1,0);b[2]=C(b[2],1,a.extension);b[3]=C(b[3],2,a.mode.ordinal());b[3]=
+C(b[3],2,c.mode_ext);b[3]=C(b[3],1,a.copyright);b[3]=C(b[3],1,a.original);b[3]=C(b[3],2,a.emphasis);b[0]=255;var c=b[1]&241,d;d=1==a.version?128:16E3>a.out_samplerate?32:64;a.VBR==M.vbr_off&&(d=a.brate);d=a.free_format?0:255&16*H.BitrateIndex(d,a.version,a.out_samplerate);b[1]=1==a.version?255&(c|10):255&(c|2);c=b[2]&13;b[2]=255&(d|c)}function t(a,b){return b=b>>8^D[(b^a)&255]}var H,g,b;this.setModules=function(a,d,c){H=a;g=d;b=c};var l=ub.NUMTOCENTRIES,a=ub.MAXFRAMESIZE,h=l+4+4+4+4+4+9+1+1+8+1+1+
+3+1+1+2+4+2+2,D=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8E3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16E3,65089,
+64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32E3,
+48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];this.addVbrFrame=
+function(a){var b=a.internal_flags;var c=b.VBR_seek_table;a=r.bitrate_table[a.version][b.bitrate_index];c.nVbrNumFrames++;c.sum+=a;c.seen++;if(!(c.seen<c.want)&&(c.pos<c.size&&(c.bag[c.pos]=c.sum,c.pos++,c.seen=0),c.pos==c.size)){for(a=1;a<c.size;a+=2)c.bag[a/2]=c.bag[a];c.want*=2;c.pos/=2}};this.getVbrTag=function(a){var b=new VBRTagData,c=0;b.flags=0;var f=a[c+1]>>3&1,g=a[c+2]>>2&3,h=a[c+3]>>6&3,k=a[c+2]>>4&15,k=r.bitrate_table[f][k];b.samprate=14==a[c+1]>>4?r.samplerate_table[2][g]:r.samplerate_table[f][g];
+g=c=0!=f?3!=h?c+36:c+21:3!=h?c+21:c+13;if(!(new String(a,g,4(),null)).equals("Xing")&&!(new String(a,g,4(),null)).equals("Info"))return null;c+=4;b.hId=f;g=b.flags=d(a,c);c+=4;0!=(g&1)&&(b.frames=d(a,c),c+=4);0!=(g&2)&&(b.bytes=d(a,c),c+=4);if(0!=(g&4)){if(null!=b.toc)for(h=0;h<l;h++)b.toc[h]=a[c+h];c+=l}b.vbrScale=-1;0!=(g&8)&&(b.vbrScale=d(a,c),c+=4);b.headersize=72E3*(f+1)*k/b.samprate;c+=21;f=a[c+0]<<4;f+=a[c+1]>>4;k=(a[c+1]&15)<<8;k+=a[c+2]&255;if(0>f||3E3<f)f=-1;if(0>k||3E3<k)k=-1;b.encDelay=
+f;b.encPadding=k;return b};this.InitVbrTag=function(b){var d=b.internal_flags,c;c=1==b.version?128:16E3>b.out_samplerate?32:64;b.VBR==M.vbr_off&&(c=b.brate);c=72E3*(b.version+1)*c/b.out_samplerate;var f=d.sideinfo_len+h;d.VBR_seek_table.TotalFrameSize=c;if(c<f||c>a)b.bWriteVbrTag=!1;else for(d.VBR_seek_table.nVbrNumFrames=0,d.VBR_seek_table.nBytesWritten=0,d.VBR_seek_table.sum=0,d.VBR_seek_table.seen=0,d.VBR_seek_table.want=1,d.VBR_seek_table.pos=0,null==d.VBR_seek_table.bag&&(d.VBR_seek_table.bag=
+new int[400],d.VBR_seek_table.size=400),c=new Int8Array(a),B(b,c),d=d.VBR_seek_table.TotalFrameSize,f=0;f<d;++f)g.add_dummy_byte(b,c[f]&255,1)};this.updateMusicCRC=function(a,b,c,d){for(var g=0;g<d;++g)a[0]=t(b[c+g],a[0])};this.getLameTagFrame=function(a,d){var c=a.internal_flags;if(!a.bWriteVbrTag||c.Class_ID!=V.LAME_ID||0>=c.VBR_seek_table.pos)return 0;if(d.length<c.VBR_seek_table.TotalFrameSize)return c.VBR_seek_table.TotalFrameSize;Ia.fill(d,0,c.VBR_seek_table.TotalFrameSize,0);B(a,d);var f=new Int8Array(l);
+if(a.free_format)for(var h=1;h<l;++h)f[h]=255&255*h/100;else{var z=c.VBR_seek_table;if(!(0>=z.pos))for(h=1;h<l;++h){var w=0|Math.floor(h/l*z.pos);w>z.pos-1&&(w=z.pos-1);w=0|256*z.bag[w]/z.sum;255<w&&(w=255);f[h]=255&w}}w=c.sideinfo_len;a.error_protection&&(w-=2);d[w++]=0;d[w++]=0;d[w++]=0;d[w++]=0;k(d,w,15);w+=4;k(d,w,c.VBR_seek_table.nVbrNumFrames);w+=4;z=c.VBR_seek_table.nBytesWritten+c.VBR_seek_table.TotalFrameSize;k(d,w,0|z);w+=4;K.arraycopy(f,0,d,w,f.length);w+=f.length;a.error_protection&&g.CRC_writeheader(c,
+d);for(var A=0,h=0;h<w;h++)A=t(d[h],A);var f=w,h=A,v=a.internal_flags,w=0,A=a.encoder_delay,p=a.encoder_padding,m=100-10*a.VBR_q-a.quality,x=b.getLameVeryShortVersion(),y;y=[1,5,3,2,4,0,3];var W=0|(255<a.lowpassfreq/100+.5?255:a.lowpassfreq/100+.5),u=0,D=0,J=a.internal_flags.noise_shaping,F=0,G=0,I=0,T=0,F=0,F=0!=(a.exp_nspsytune&1),I=0!=(a.exp_nspsytune&2),U=!1,qa=!1,ia=a.internal_flags.nogap_total,ya=a.internal_flags.nogap_current,T=a.ATHtype,r=0,C;switch(a.VBR){case vbr_abr:C=a.VBR_mean_bitrate_kbps;
+break;case vbr_off:C=a.brate;break;default:C=a.VBR_min_bitrate_kbps}y=0+(a.VBR.ordinal()<y.length?y[a.VBR.ordinal()]:0);v.findReplayGain&&(510<v.RadioGain&&(v.RadioGain=510),-510>v.RadioGain&&(v.RadioGain=-510),D=11264,D=0<=v.RadioGain?D|v.RadioGain:D|512|-v.RadioGain);v.findPeakSample&&(u=Math.abs(0|v.PeakSample/32767*Math.pow(2,23)+.5));-1!=ia&&(0<ya&&(qa=!0),ya<ia-1&&(U=!0));r=T+((F?1:0)<<4)+((I?1:0)<<5)+((U?1:0)<<6)+((qa?1:0)<<7);0>m&&(m=0);switch(a.mode){case MONO:F=0;break;case STEREO:F=1;break;
+case DUAL_CHANNEL:F=2;break;case JOINT_STEREO:F=a.force_ms?4:3;break;default:F=7}I=32E3>=a.in_samplerate?0:48E3==a.in_samplerate?2:48E3<a.in_samplerate?3:1;if(a.short_blocks==sa.short_block_forced||a.short_blocks==sa.short_block_dispensed||-1==a.lowpassfreq&&-1==a.highpassfreq||a.scale_left<a.scale_right||a.scale_left>a.scale_right||a.disable_reservoir&&320>a.brate||a.noATH||a.ATHonly||0==T||32E3>=a.in_samplerate)G=1;T=J+(F<<2)+(G<<5)+(I<<6);F=v.nMusicCRC;k(d,f+w,m);w+=4;for(v=0;9>v;v++)d[f+w+v]=
+255&x.charAt(v);w+=9;d[f+w]=255&y;w++;d[f+w]=255&W;w++;k(d,f+w,u);w+=4;q(d,f+w,D);w+=2;q(d,f+w,0);w+=2;d[f+w]=255&r;w++;d[f+w]=255<=C?255:255&C;w++;d[f+w]=255&A>>4;d[f+w+1]=255&(A<<4)+(p>>8);d[f+w+2]=255&p;w+=3;d[f+w]=255&T;w++;d[f+w++]=0;q(d,f+w,a.preset);w+=2;k(d,f+w,z);w+=4;q(d,f+w,F);w+=2;for(z=0;z<w;z++)h=t(d[f+z],h);q(d,f+w,h);return c.VBR_seek_table.TotalFrameSize};this.putVbrTag=function(b,d){if(0>=b.internal_flags.VBR_seek_table.pos)return-1;d.seek(d.length());if(0==d.length())return-1;d.seek(0);
+var c=new Int8Array(10);d.readFully(c);c=(new String(c,"ISO-8859-1")).startsWith("ID3")?0:((c[6]&127)<<21|(c[7]&127)<<14|(c[8]&127)<<7|c[9]&127)+c.length;d.seek(c);var c=new Int8Array(a),f=getLameTagFrame(b,c);if(f>c.length)return-1;if(1>f)return 0;d.write(c,0,f);return 0}}function Q(d,k,q,r){this.xlen=d;this.linmax=k;this.table=q;this.hlen=r}function eb(d){this.bits=d}function Ic(){this.setModules=function(d,k){}}function $b(){this.bits=this.over_SSD=this.over_count=this.max_noise=this.tot_noise=
+this.over_noise=0}function Jc(){this.scale_right=this.scale_left=this.scale=this.out_samplerate=this.in_samplerate=this.num_channels=this.num_samples=this.class_id=0;this.decode_only=this.bWriteVbrTag=this.analysis=!1;this.quality=0;this.mode=ka.STEREO;this.write_id3tag_automatic=this.decode_on_the_fly=this.findReplayGain=this.free_format=this.force_ms=!1;this.error_protection=this.emphasis=this.extension=this.original=this.copyright=this.compression_ratio=this.brate=0;this.disable_reservoir=this.strict_ISO=
+!1;this.quant_comp_short=this.quant_comp=0;this.experimentalY=!1;this.preset=this.exp_nspsytune=this.experimentalZ=0;this.VBR=null;this.maskingadjust_short=this.maskingadjust=this.highpasswidth=this.lowpasswidth=this.highpassfreq=this.lowpassfreq=this.VBR_hard_min=this.VBR_max_bitrate_kbps=this.VBR_min_bitrate_kbps=this.VBR_mean_bitrate_kbps=this.VBR_q=this.VBR_q_frac=0;this.noATH=this.ATHshort=this.ATHonly=!1;this.athaa_sensitivity=this.athaa_loudapprox=this.athaa_type=this.ATHlower=this.ATHcurve=
+this.ATHtype=0;this.short_blocks=null;this.useTemporal=!1;this.msfix=this.interChRatio=0;this.tune=!1;this.lame_allocated_gfp=this.frameNum=this.framesize=this.encoder_padding=this.encoder_delay=this.version=this.tune_value_a=0;this.internal_flags=null}function Kc(){this.linprebuf=H(2*O.MAX_ORDER);this.linpre=0;this.lstepbuf=H(O.MAX_SAMPLES_PER_WINDOW+O.MAX_ORDER);this.lstep=0;this.loutbuf=H(O.MAX_SAMPLES_PER_WINDOW+O.MAX_ORDER);this.lout=0;this.rinprebuf=H(2*O.MAX_ORDER);this.rinpre=0;this.rstepbuf=
+H(O.MAX_SAMPLES_PER_WINDOW+O.MAX_ORDER);this.rstep=0;this.routbuf=H(O.MAX_SAMPLES_PER_WINDOW+O.MAX_ORDER);this.first=this.freqindex=this.rsum=this.lsum=this.totsamp=this.sampleWindow=this.rout=0;this.A=Y(0|O.STEPS_per_dB*O.MAX_dB);this.B=Y(0|O.STEPS_per_dB*O.MAX_dB)}function Lc(){this.floor=this.decay=this.adjustLimit=this.adjust=this.aaSensitivityP=this.useAdjust=0;this.l=H(d.SBMAX_l);this.s=H(d.SBMAX_s);this.psfb21=H(d.PSFB21);this.psfb12=H(d.PSFB12);this.cb_l=H(d.CBANDS);this.cb_s=H(d.CBANDS);
+this.eql_w=H(d.BLKSIZE/2)}function Mc(J){this.quantize=J;this.iteration_loop=function(k,q,J,B){var t=k.internal_flags,r=H(na.SFBMAX),g=H(576),b=Y(2),l,a,h=t.l3_side;l=new eb(0);this.quantize.rv.ResvFrameBegin(k,l);l=l.bits;for(var D=0;D<t.mode_gr;D++)for(a=this.quantize.qupvt.on_pe(k,q,b,l,D,D),t.mode_ext==d.MPG_MD_MS_LR&&(this.quantize.ms_convert(t.l3_side,D),this.quantize.qupvt.reduce_side(b,J[D],l,a)),a=0;a<t.channels_out;a++){var e,n=h.tt[D][a];n.block_type!=d.SHORT_TYPE?(e=0,e=t.PSY.mask_adjust-
+e):(e=0,e=t.PSY.mask_adjust_short-e);t.masking_lower=Math.pow(10,.1*e);this.quantize.init_outer_loop(t,n);this.quantize.init_xrpow(t,n,g)&&(this.quantize.qupvt.calc_xmin(k,B[D][a],n,r),this.quantize.outer_loop(k,n,r,g,a,b[a]));this.quantize.iteration_finish_one(t,D,a)}this.quantize.rv.ResvFrameEnd(t,l)}}function ha(J,k,q,r){this.l=Y(1+d.SBMAX_l);this.s=Y(1+d.SBMAX_s);this.psfb21=Y(1+d.PSFB21);this.psfb12=Y(1+d.PSFB12);var B=this.l,t=this.s;4==arguments.length&&(this.arrL=arguments[0],this.arrS=arguments[1],
+this.arr21=arguments[2],this.arr12=arguments[3],K.arraycopy(this.arrL,0,B,0,Math.min(this.arrL.length,this.l.length)),K.arraycopy(this.arrS,0,t,0,Math.min(this.arrS.length,this.s.length)),K.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),K.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}function ma(){function J(a,b){var c=B.ATHformula(b,a);return c=Math.pow(10,(c-100)/10+a.ATHlower)}function k(a){this.s=a}var q=null,r=null,
+B=null;this.setModules=function(a,b,c){q=a;r=b;B=c};this.IPOW20=function(b){return a[b]};var t=ma.IXMAX_VAL+2,ta=ma.Q_MAX,g=ma.Q_MAX2;this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var b=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0];this.pretab=b;this.sfBandIndex=[new ha([0,6,12,18,24,30,36,44,54,66,80,96,116,140,
+168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,
+196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,
+522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ha([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0])];var l=H(ta+g+1),a=H(ta),h=H(t),D=H(t);this.adj43=D;this.iteration_init=function(b){var n=
+b.internal_flags,c=n.l3_side;if(0==n.iteration_init_init){n.iteration_init_init=1;c.main_data_begin=0;for(var c=b.internal_flags.ATH.l,f=b.internal_flags.ATH.psfb21,k=b.internal_flags.ATH.s,z=b.internal_flags.ATH.psfb12,w=b.internal_flags,A=b.out_samplerate,v=0;v<d.SBMAX_l;v++){var p=w.scalefac_band.l[v],m=w.scalefac_band.l[v+1];for(c[v]=vb.MAX_VALUE;p<m;p++){var x=p*A/1152,x=J(b,x);c[v]=Math.min(c[v],x)}}for(v=0;v<d.PSFB21;v++)for(p=w.scalefac_band.psfb21[v],m=w.scalefac_band.psfb21[v+1],f[v]=vb.MAX_VALUE;p<
+m;p++)x=p*A/1152,x=J(b,x),f[v]=Math.min(f[v],x);for(v=0;v<d.SBMAX_s;v++){p=w.scalefac_band.s[v];m=w.scalefac_band.s[v+1];for(k[v]=vb.MAX_VALUE;p<m;p++)x=p*A/384,x=J(b,x),k[v]=Math.min(k[v],x);k[v]*=w.scalefac_band.s[v+1]-w.scalefac_band.s[v]}for(v=0;v<d.PSFB12;v++){p=w.scalefac_band.psfb12[v];m=w.scalefac_band.psfb12[v+1];for(z[v]=vb.MAX_VALUE;p<m;p++)x=p*A/384,x=J(b,x),z[v]=Math.min(z[v],x);z[v]*=w.scalefac_band.s[13]-w.scalefac_band.s[12]}if(b.noATH){for(v=0;v<d.SBMAX_l;v++)c[v]=1E-20;for(v=0;v<
+d.PSFB21;v++)f[v]=1E-20;for(v=0;v<d.SBMAX_s;v++)k[v]=1E-20;for(v=0;v<d.PSFB12;v++)z[v]=1E-20}w.ATH.floor=10*Math.log10(J(b,-1));h[0]=0;for(c=1;c<t;c++)h[c]=Math.pow(c,4/3);for(c=0;c<t-1;c++)D[c]=c+1-Math.pow(.5*(h[c]+h[c+1]),.75);D[c]=.5;for(c=0;c<ta;c++)a[c]=Math.pow(2,-.1875*(c-210));for(c=0;c<=ta+g;c++)l[c]=Math.pow(2,.25*(c-210-g));q.huffman_init(n);c=b.exp_nspsytune>>2&63;32<=c&&(c-=64);f=Math.pow(10,c/4/10);c=b.exp_nspsytune>>8&63;32<=c&&(c-=64);k=Math.pow(10,c/4/10);c=b.exp_nspsytune>>14&63;
+32<=c&&(c-=64);z=Math.pow(10,c/4/10);c=b.exp_nspsytune>>20&63;32<=c&&(c-=64);b=z*Math.pow(10,c/4/10);for(c=0;c<d.SBMAX_l;c++)w=6>=c?f:13>=c?k:20>=c?z:b,n.nsPsy.longfact[c]=w;for(c=0;c<d.SBMAX_s;c++)w=5>=c?f:10>=c?k:11>=c?z:b,n.nsPsy.shortfact[c]=w}};this.on_pe=function(a,b,c,d,g,h){var l=a.internal_flags,k=0,v=Y(2),p,k=new eb(k);a=r.ResvMaxBits(a,d,k,h);var k=k.bits,m=k+a;m>da.MAX_BITS_PER_GRANULE&&(m=da.MAX_BITS_PER_GRANULE);for(p=h=0;p<l.channels_out;++p)c[p]=Math.min(da.MAX_BITS_PER_CHANNEL,k/
+l.channels_out),v[p]=0|c[p]*b[g][p]/700-c[p],v[p]>3*d/4&&(v[p]=3*d/4),0>v[p]&&(v[p]=0),v[p]+c[p]>da.MAX_BITS_PER_CHANNEL&&(v[p]=Math.max(0,da.MAX_BITS_PER_CHANNEL-c[p])),h+=v[p];if(h>a)for(p=0;p<l.channels_out;++p)v[p]=a*v[p]/h;for(p=0;p<l.channels_out;++p)c[p]+=v[p],a-=v[p];for(p=h=0;p<l.channels_out;++p)h+=c[p];if(h>da.MAX_BITS_PER_GRANULE)for(p=0;p<l.channels_out;++p)c[p]*=da.MAX_BITS_PER_GRANULE,c[p]/=h;return m};this.reduce_side=function(a,b,c,d){b=.33*(.5-b)/.5;0>b&&(b=0);.5<b&&(b=.5);b=0|.5*
+b*(a[0]+a[1]);b>da.MAX_BITS_PER_CHANNEL-a[0]&&(b=da.MAX_BITS_PER_CHANNEL-a[0]);0>b&&(b=0);125<=a[1]&&(125<a[1]-b?(a[0]<c&&(a[0]+=b),a[1]-=b):(a[0]+=a[1]-125,a[1]=125));b=a[0]+a[1];b>d&&(a[0]=d*a[0]/b,a[1]=d*a[1]/b)};this.athAdjust=function(a,b,c){b=X.FAST_LOG10_X(b,10);a*=a;var d=0;b-=c;1E-20<a&&(d=1+X.FAST_LOG10_X(a,10/90.30873362));0>d&&(d=0);b=b*d+(c+90.30873362-94.82444863);return Math.pow(10,.1*b)};this.calc_xmin=function(a,b,c,f){var g=0,h=a.internal_flags,l,k=0,v=0,p=h.ATH,m=c.xr,x=a.VBR==
+M.vbr_mtrh?1:0,y=h.masking_lower;if(a.VBR==M.vbr_mtrh||a.VBR==M.vbr_mt)y=1;for(l=0;l<c.psy_lmax;l++){var q,u,t,D,F,G;u=a.VBR==M.vbr_rh||a.VBR==M.vbr_mtrh?athAdjust(p.adjust,p.l[l],p.floor):p.adjust*p.l[l];F=c.width[l];t=u/F;D=2.220446049250313E-16;G=F>>1;q=0;do{var I;I=m[k]*m[k];q+=I;D+=I<t?I:t;k++;I=m[k]*m[k];q+=I;D+=I<t?I:t;k++}while(0<--G);q>u&&v++;l==d.SBPSY_l&&(t=u*h.nsPsy.longfact[l],D<t&&(D=t));0!=x&&(u=D);a.ATHonly||(D=b.en.l[l],0<D&&(t=q*b.thm.l[l]*y/D,0!=x&&(t*=h.nsPsy.longfact[l]),u<t&&
+(u=t)));0!=x?f[g++]=u:f[g++]=u*h.nsPsy.longfact[l]}q=575;if(c.block_type!=d.SHORT_TYPE)for(u=576;0!=u--&&ua.EQ(m[u],0);)q=u;c.max_nonzero_coeff=q;for(var T=c.sfb_smin;l<c.psymax;T++,l+=3){var U,J;J=a.VBR==M.vbr_rh||a.VBR==M.vbr_mtrh?athAdjust(p.adjust,p.s[T],p.floor):p.adjust*p.s[T];F=c.width[l];for(U=0;3>U;U++){q=0;G=F>>1;t=J/F;D=2.220446049250313E-16;do I=m[k]*m[k],q+=I,D+=I<t?I:t,k++,I=m[k]*m[k],q+=I,D+=I<t?I:t,k++;while(0<--G);q>J&&v++;T==d.SBPSY_s&&(t=J*h.nsPsy.shortfact[T],D<t&&(D=t));u=0!=
+x?D:J;a.ATHonly||a.ATHshort||(D=b.en.s[T][U],0<D&&(t=q*b.thm.s[T][U]*y/D,0!=x&&(t*=h.nsPsy.shortfact[T]),u<t&&(u=t)));0!=x?f[g++]=u:f[g++]=u*h.nsPsy.shortfact[T]}a.useTemporal&&(f[g-3]>f[g-3+1]&&(f[g-3+1]+=(f[g-3]-f[g-3+1])*h.decay),f[g-3+1]>f[g-3+2]&&(f[g-3+2]+=(f[g-3+1]-f[g-3+2])*h.decay))}return v};this.calc_noise_core=function(a,b,c,d){var g=0,l=b.s,k=a.l3_enc;if(l>a.count1)for(;0!=c--;){var q;q=a.xr[l];l++;g+=q*q;q=a.xr[l];l++;g+=q*q}else if(l>a.big_values){var v=H(2);v[0]=0;for(v[1]=d;0!=c--;)q=
+Math.abs(a.xr[l])-v[k[l]],l++,g+=q*q,q=Math.abs(a.xr[l])-v[k[l]],l++,g+=q*q}else for(;0!=c--;)q=Math.abs(a.xr[l])-h[k[l]]*d,l++,g+=q*q,q=Math.abs(a.xr[l])-h[k[l]]*d,l++,g+=q*q;b.s=l;return g};this.calc_noise=function(a,d,c,f,g){var h=0,q=0,t,v,p=0,m=0,x=0,y=-20,D=0,u=a.scalefac,J=0;for(t=f.over_SSD=0;t<a.psymax;t++){var B=a.global_gain-(u[J++]+(0!=a.preflag?b[t]:0)<<a.scalefac_scale+1)-8*a.subblock_gain[a.window[t]],F=0;null!=g&&g.step[t]==B?(F=g.noise[t],D+=a.width[t],c[h++]=F/d[q++],F=g.noise_log[t]):
+(F=l[B+ma.Q_MAX2],v=a.width[t]>>1,D+a.width[t]>a.max_nonzero_coeff&&(v=a.max_nonzero_coeff-D+1,v=0<v?v>>1:0),D=new k(D),F=this.calc_noise_core(a,D,v,F),D=D.s,null!=g&&(g.step[t]=B,g.noise[t]=F),F=c[h++]=F/d[q++],F=X.FAST_LOG10(Math.max(F,1E-20)),null!=g&&(g.noise_log[t]=F));null!=g&&(g.global_gain=a.global_gain);x+=F;0<F&&(B=Math.max(0|10*F+.5,1),f.over_SSD+=B*B,p++,m+=F);y=Math.max(y,F)}f.over_count=p;f.tot_noise=x;f.over_noise=m;f.max_noise=y;return p};this.set_pinfo=function(a,g,c,f,h){var l=a.internal_flags,
+k,q,t,p,m=0==g.scalefac_scale?.5:1,x=g.scalefac,y=H(na.SFBMAX),D=H(na.SFBMAX),u=new $b;calc_xmin(a,c,g,y);calc_noise(g,y,D,u,null);var J=0;q=g.sfb_lmax;g.block_type!=d.SHORT_TYPE&&0==g.mixed_block_flag&&(q=22);for(k=0;k<q;k++){var B=l.scalefac_band.l[k],F=l.scalefac_band.l[k+1],G=F-B;for(p=0;J<F;J++)p+=g.xr[J]*g.xr[J];p/=G;t=1E15;l.pinfo.en[f][h][k]=t*p;l.pinfo.xfsf[f][h][k]=t*y[k]*D[k]/G;p=0<c.en.l[k]&&!a.ATHonly?p/c.en.l[k]:0;l.pinfo.thr[f][h][k]=t*Math.max(p*c.thm.l[k],l.ATH.l[k]);l.pinfo.LAMEsfb[f][h][k]=
+0;0!=g.preflag&&11<=k&&(l.pinfo.LAMEsfb[f][h][k]=-m*b[k]);k<d.SBPSY_l&&(l.pinfo.LAMEsfb[f][h][k]-=m*x[k])}if(g.block_type==d.SHORT_TYPE)for(q=k,k=g.sfb_smin;k<d.SBMAX_s;k++)for(var B=l.scalefac_band.s[k],F=l.scalefac_band.s[k+1],G=F-B,I=0;3>I;I++){p=0;for(t=B;t<F;t++)p+=g.xr[J]*g.xr[J],J++;p=Math.max(p/G,1E-20);t=1E15;l.pinfo.en_s[f][h][3*k+I]=t*p;l.pinfo.xfsf_s[f][h][3*k+I]=t*y[q]*D[q]/G;p=0<c.en.s[k][I]?p/c.en.s[k][I]:0;if(a.ATHonly||a.ATHshort)p=0;l.pinfo.thr_s[f][h][3*k+I]=t*Math.max(p*c.thm.s[k][I],
+l.ATH.s[k]);l.pinfo.LAMEsfb_s[f][h][3*k+I]=-2*g.subblock_gain[I];k<d.SBPSY_s&&(l.pinfo.LAMEsfb_s[f][h][3*k+I]-=m*x[q]);q++}l.pinfo.LAMEqss[f][h]=g.global_gain;l.pinfo.LAMEmainbits[f][h]=g.part2_3_length+g.part2_length;l.pinfo.LAMEsfbits[f][h]=g.part2_length;l.pinfo.over[f][h]=u.over_count;l.pinfo.max_noise[f][h]=10*u.max_noise;l.pinfo.over_noise[f][h]=10*u.over_noise;l.pinfo.tot_noise[f][h]=10*u.tot_noise;l.pinfo.over_SSD[f][h]=u.over_SSD}}function Nc(){this.sfb_count1=this.global_gain=0;this.step=
+Y(39);this.noise=H(39);this.noise_log=H(39)}function Ab(){this.xr=H(576);this.l3_enc=Y(576);this.scalefac=Y(na.SFBMAX);this.mixed_block_flag=this.block_type=this.scalefac_compress=this.global_gain=this.count1=this.big_values=this.part2_3_length=this.xrpow_max=0;this.table_select=Y(3);this.subblock_gain=Y(4);this.sfbdivide=this.psymax=this.sfbmax=this.psy_lmax=this.sfb_smin=this.sfb_lmax=this.part2_length=this.count1table_select=this.scalefac_scale=this.preflag=this.region1_count=this.region0_count=
+0;this.width=Y(na.SFBMAX);this.window=Y(na.SFBMAX);this.count1bits=0;this.sfb_partition_table=null;this.slen=Y(4);this.max_nonzero_coeff=0;var d=this;this.assign=function(k){d.xr=new Float32Array(k.xr);d.l3_enc=new Int32Array(k.l3_enc);d.scalefac=new Int32Array(k.scalefac);d.xrpow_max=k.xrpow_max;d.part2_3_length=k.part2_3_length;d.big_values=k.big_values;d.count1=k.count1;d.global_gain=k.global_gain;d.scalefac_compress=k.scalefac_compress;d.block_type=k.block_type;d.mixed_block_flag=k.mixed_block_flag;
+d.table_select=new Int32Array(k.table_select);d.subblock_gain=new Int32Array(k.subblock_gain);d.region0_count=k.region0_count;d.region1_count=k.region1_count;d.preflag=k.preflag;d.scalefac_scale=k.scalefac_scale;d.count1table_select=k.count1table_select;d.part2_length=k.part2_length;d.sfb_lmax=k.sfb_lmax;d.sfb_smin=k.sfb_smin;d.psy_lmax=k.psy_lmax;d.sfbmax=k.sfbmax;d.psymax=k.psymax;d.sfbdivide=k.sfbdivide;d.width=new Int32Array(k.width);d.window=new Int32Array(k.window);d.count1bits=k.count1bits;
+d.sfb_partition_table=k.sfb_partition_table.slice(0);d.slen=new Int32Array(k.slen);d.max_nonzero_coeff=k.max_nonzero_coeff}}function Oc(){function J(d){this.ordinal=d}function k(d){for(var b=0;b<d.sfbmax;b++)if(0==d.scalefac[b]+d.subblock_gain[d.window[b]])return!1;return!0}var q;this.rv=null;var r;this.qupvt=null;var B,t=new Ic,ta;this.setModules=function(d,b,l,a){q=d;this.rv=r=b;this.qupvt=B=l;ta=a;t.setModules(B,ta)};this.ms_convert=function(d,b){for(var l=0;576>l;++l){var a=d.tt[b][0].xr[l],h=
+d.tt[b][1].xr[l];d.tt[b][0].xr[l]=.5*(a+h)*X.SQRT2;d.tt[b][1].xr[l]=.5*(a-h)*X.SQRT2}};this.init_xrpow=function(d,b,l){var a=0,h=0|b.max_nonzero_coeff;b.xrpow_max=0;Ia.fill(l,h,576,0);for(var k=a=0;k<=h;++k){var e=Math.abs(b.xr[k]),a=a+e;l[k]=Math.sqrt(e*Math.sqrt(e));l[k]>b.xrpow_max&&(b.xrpow_max=l[k])}if(1E-20<a){l=0;0!=(d.substep_shaping&2)&&(l=1);for(h=0;h<b.psymax;h++)d.pseudohalf[h]=l;return!0}Ia.fill(b.l3_enc,0,576,0);return!1};this.init_outer_loop=function(g,b){b.part2_3_length=0;b.big_values=
+0;b.count1=0;b.global_gain=210;b.scalefac_compress=0;b.table_select[0]=0;b.table_select[1]=0;b.table_select[2]=0;b.subblock_gain[0]=0;b.subblock_gain[1]=0;b.subblock_gain[2]=0;b.subblock_gain[3]=0;b.region0_count=0;b.region1_count=0;b.preflag=0;b.scalefac_scale=0;b.count1table_select=0;b.part2_length=0;b.sfb_lmax=d.SBPSY_l;b.sfb_smin=d.SBPSY_s;b.psy_lmax=g.sfb21_extra?d.SBMAX_l:d.SBPSY_l;b.psymax=b.psy_lmax;b.sfbmax=b.sfb_lmax;b.sfbdivide=11;for(var l=0;l<d.SBMAX_l;l++)b.width[l]=g.scalefac_band.l[l+
+1]-g.scalefac_band.l[l],b.window[l]=3;if(b.block_type==d.SHORT_TYPE){var a=H(576);b.sfb_smin=0;b.sfb_lmax=0;0!=b.mixed_block_flag&&(b.sfb_smin=3,b.sfb_lmax=2*g.mode_gr+4);b.psymax=b.sfb_lmax+3*((g.sfb21_extra?d.SBMAX_s:d.SBPSY_s)-b.sfb_smin);b.sfbmax=b.sfb_lmax+3*(d.SBPSY_s-b.sfb_smin);b.sfbdivide=b.sfbmax-18;b.psy_lmax=b.sfb_lmax;var h=g.scalefac_band.l[b.sfb_lmax];K.arraycopy(b.xr,0,a,0,576);for(l=b.sfb_smin;l<d.SBMAX_s;l++)for(var k=g.scalefac_band.s[l],e=g.scalefac_band.s[l+1],n=0;3>n;n++)for(var c=
+k;c<e;c++)b.xr[h++]=a[3*c+n];a=b.sfb_lmax;for(l=b.sfb_smin;l<d.SBMAX_s;l++)b.width[a]=b.width[a+1]=b.width[a+2]=g.scalefac_band.s[l+1]-g.scalefac_band.s[l],b.window[a]=0,b.window[a+1]=1,b.window[a+2]=2,a+=3}b.count1bits=0;b.sfb_partition_table=B.nr_of_sfb_block[0][0];b.slen[0]=0;b.slen[1]=0;b.slen[2]=0;b.slen[3]=0;b.max_nonzero_coeff=575;Ia.fill(b.scalefac,0);l=g.ATH;a=b.xr;if(b.block_type!=d.SHORT_TYPE)for(h=!1,k=d.PSFB21-1;0<=k&&!h;k--)for(e=g.scalefac_band.psfb21[k],n=g.scalefac_band.psfb21[k+
+1],c=B.athAdjust(l.adjust,l.psfb21[k],l.floor),1E-12<g.nsPsy.longfact[21]&&(c*=g.nsPsy.longfact[21]),--n;n>=e;n--)if(Math.abs(a[n])<c)a[n]=0;else{h=!0;break}else for(c=0;3>c;c++)for(h=!1,k=d.PSFB12-1;0<=k&&!h;k--){var e=3*g.scalefac_band.s[12]+(g.scalefac_band.s[13]-g.scalefac_band.s[12])*c+(g.scalefac_band.psfb12[k]-g.scalefac_band.psfb12[0]),n=e+(g.scalefac_band.psfb12[k+1]-g.scalefac_band.psfb12[k]),f=B.athAdjust(l.adjust,l.psfb12[k],l.floor);1E-12<g.nsPsy.shortfact[12]&&(f*=g.nsPsy.shortfact[12]);
+for(--n;n>=e;n--)if(Math.abs(a[n])<f)a[n]=0;else{h=!0;break}}};J.BINSEARCH_NONE=new J(0);J.BINSEARCH_UP=new J(1);J.BINSEARCH_DOWN=new J(2);this.trancate_smallspectrums=function(g,b,l,a){var h=H(na.SFBMAX);if((0!=(g.substep_shaping&4)||b.block_type!=d.SHORT_TYPE)&&0==(g.substep_shaping&128)){B.calc_noise(b,l,h,new $b,null);for(var k=0;576>k;k++){var e=0;0!=b.l3_enc[k]&&(e=Math.abs(b.xr[k]));a[k]=e}k=0;e=8;b.block_type==d.SHORT_TYPE&&(e=6);do{var n,c,f,q,t=b.width[e],k=k+t;if(!(1<=h[e]||(Ia.sort(a,
+k-t,t),ua.EQ(a[k-1],0)))){n=(1-h[e])*l[e];q=c=0;do{var w;for(f=1;q+f<t&&!ua.NEQ(a[q+k-t],a[q+k+f-t]);f++);w=a[q+k-t]*a[q+k-t]*f;if(n<w){0!=q&&(c=a[q+k-t-1]);break}n-=w;q+=f}while(q<t);if(!ua.EQ(c,0)){do Math.abs(b.xr[k-t])<=c&&(b.l3_enc[k-t]=0);while(0<--t)}}}while(++e<b.psymax);b.part2_3_length=ta.noquant_count_bits(g,b,null)}};this.outer_loop=function(g,b,l,a,h,q){var e=g.internal_flags,n=new Ab,c=H(576),f=H(na.SFBMAX),t=new $b,z,w=new Nc,A=9999999,v=!1,p=!1,m=0,x,y,W=e.CurrentStep[h],u=!1,r=e.OldValue[h];
+z=J.BINSEARCH_NONE;b.global_gain=r;for(x=q-b.part2_length;;){y=ta.count_bits(e,a,b,null);if(1==W||y==x)break;y>x?(z==J.BINSEARCH_DOWN&&(u=!0),u&&(W/=2),z=J.BINSEARCH_UP,y=W):(z==J.BINSEARCH_UP&&(u=!0),u&&(W/=2),z=J.BINSEARCH_DOWN,y=-W);b.global_gain+=y;0>b.global_gain&&(b.global_gain=0,u=!0);255<b.global_gain&&(b.global_gain=255,u=!0)}for(;y>x&&255>b.global_gain;)b.global_gain++,y=ta.count_bits(e,a,b,null);e.CurrentStep[h]=4<=r-b.global_gain?4:2;e.OldValue[h]=b.global_gain;b.part2_3_length=y;if(0==
+e.noise_shaping)return 100;B.calc_noise(b,l,f,t,w);t.bits=b.part2_3_length;n.assign(b);h=0;for(K.arraycopy(a,0,c,0,576);!v;){do{x=new $b;u=255;W=0!=(e.substep_shaping&2)?20:3;if(e.sfb21_extra){if(1<f[n.sfbmax])break;if(n.block_type==d.SHORT_TYPE&&(1<f[n.sfbmax+1]||1<f[n.sfbmax+2]))break}r=n;y=a;z=g.internal_flags;for(var C=r,F=f,G=y,I=g.internal_flags,T=void 0,T=0==C.scalefac_scale?1.2968395546510096:1.6817928305074292,U=0,qa=0;qa<C.sfbmax;qa++)U<F[qa]&&(U=F[qa]);qa=I.noise_shaping_amp;3==qa&&(qa=
+p?2:1);switch(qa){case 2:break;case 1:U=1<U?Math.pow(U,.5):.95*U;break;default:U=1<U?1:.95*U}for(var ia=0,qa=0;qa<C.sfbmax;qa++){var ya=C.width[qa],ia=ia+ya;if(!(F[qa]<U)){if(0!=(I.substep_shaping&2)&&(I.pseudohalf[qa]=0==I.pseudohalf[qa]?1:0,0==I.pseudohalf[qa]&&2==I.noise_shaping_amp))break;C.scalefac[qa]++;for(ya=-ya;0>ya;ya++)G[ia+ya]*=T,G[ia+ya]>C.xrpow_max&&(C.xrpow_max=G[ia+ya]);if(2==I.noise_shaping_amp)break}}if(C=k(r))r=!1;else if(C=2==z.mode_gr?ta.scale_bitcount(r):ta.scale_bitcount_lsf(z,
+r)){if(1<z.noise_shaping)if(Ia.fill(z.pseudohalf,0),0==r.scalefac_scale){C=r;for(G=F=0;G<C.sfbmax;G++){T=C.width[G];I=C.scalefac[G];0!=C.preflag&&(I+=B.pretab[G]);F+=T;if(0!=(I&1))for(I++,T=-T;0>T;T++)y[F+T]*=1.2968395546510096,y[F+T]>C.xrpow_max&&(C.xrpow_max=y[F+T]);C.scalefac[G]=I>>1}C.preflag=0;C.scalefac_scale=1;C=!1}else if(r.block_type==d.SHORT_TYPE&&0<z.subblock_gain){b:{C=z;F=r;G=void 0;I=F.scalefac;for(G=0;G<F.sfb_lmax;G++)if(16<=I[G]){y=!0;break b}for(T=0;3>T;T++){qa=U=0;for(G=F.sfb_lmax+
+T;G<F.sfbdivide;G+=3)U<I[G]&&(U=I[G]);for(;G<F.sfbmax;G+=3)qa<I[G]&&(qa=I[G]);if(!(16>U&&8>qa)){if(7<=F.subblock_gain[T]){y=!0;break b}F.subblock_gain[T]++;U=C.scalefac_band.l[F.sfb_lmax];for(G=F.sfb_lmax+T;G<F.sfbmax;G+=3)if(qa=F.width[G],ia=I[G],ia-=4>>F.scalefac_scale,0<=ia)I[G]=ia,U+=3*qa;else{I[G]=0;ia=B.IPOW20(210+(ia<<F.scalefac_scale+1));U+=qa*(T+1);for(ya=-qa;0>ya;ya++)y[U+ya]*=ia,y[U+ya]>F.xrpow_max&&(F.xrpow_max=y[U+ya]);U+=qa*(3-T-1)}ia=B.IPOW20(202);U+=F.width[G]*(T+1);for(ya=-F.width[G];0>
+ya;ya++)y[U+ya]*=ia,y[U+ya]>F.xrpow_max&&(F.xrpow_max=y[U+ya])}}y=!1}C=y||k(r)}C||(C=2==z.mode_gr?ta.scale_bitcount(r):ta.scale_bitcount_lsf(z,r));r=!C}else r=!0;if(!r)break;0!=n.scalefac_scale&&(u=254);r=q-n.part2_length;if(0>=r)break;for(;(n.part2_3_length=ta.count_bits(e,a,n,w))>r&&n.global_gain<=u;)n.global_gain++;if(n.global_gain>u)break;if(0==t.over_count){for(;(n.part2_3_length=ta.count_bits(e,a,n,w))>A&&n.global_gain<=u;)n.global_gain++;if(n.global_gain>u)break}B.calc_noise(n,l,f,x,w);x.bits=
+n.part2_3_length;z=b.block_type!=d.SHORT_TYPE?g.quant_comp:g.quant_comp_short;u=t;r=x;C=n;y=f;F=void 0;switch(z){default:case 9:0<u.over_count?(F=r.over_SSD<=u.over_SSD,r.over_SSD==u.over_SSD&&(F=r.bits<u.bits)):F=0>r.max_noise&&10*r.max_noise+r.bits<=10*u.max_noise+u.bits;break;case 0:F=r.over_count<u.over_count||r.over_count==u.over_count&&r.over_noise<u.over_noise||r.over_count==u.over_count&&ua.EQ(r.over_noise,u.over_noise)&&r.tot_noise<u.tot_noise;break;case 8:z=r;G=1E-37;for(F=0;F<C.psymax;F++)I=
+y[F],I=X.FAST_LOG10(.368+.632*I*I*I),G+=I;y=Math.max(1E-20,G);z.max_noise=y;case 1:F=r.max_noise<u.max_noise;break;case 2:F=r.tot_noise<u.tot_noise;break;case 3:F=r.tot_noise<u.tot_noise&&r.max_noise<u.max_noise;break;case 4:F=0>=r.max_noise&&.2<u.max_noise||0>=r.max_noise&&0>u.max_noise&&u.max_noise>r.max_noise-.2&&r.tot_noise<u.tot_noise||0>=r.max_noise&&0<u.max_noise&&u.max_noise>r.max_noise-.2&&r.tot_noise<u.tot_noise+u.over_noise||0<r.max_noise&&-.05<u.max_noise&&u.max_noise>r.max_noise-.1&&
+r.tot_noise+r.over_noise<u.tot_noise+u.over_noise||0<r.max_noise&&-.1<u.max_noise&&u.max_noise>r.max_noise-.15&&r.tot_noise+r.over_noise+r.over_noise<u.tot_noise+u.over_noise+u.over_noise;break;case 5:F=r.over_noise<u.over_noise||ua.EQ(r.over_noise,u.over_noise)&&r.tot_noise<u.tot_noise;break;case 6:F=r.over_noise<u.over_noise||ua.EQ(r.over_noise,u.over_noise)&&(r.max_noise<u.max_noise||ua.EQ(r.max_noise,u.max_noise)&&r.tot_noise<=u.tot_noise);break;case 7:F=r.over_count<u.over_count||r.over_noise<
+u.over_noise}0==u.over_count&&(F=F&&r.bits<u.bits);z=F?1:0;if(0!=z)A=b.part2_3_length,t=x,b.assign(n),h=0,K.arraycopy(a,0,c,0,576);else if(0==e.full_outer_loop){if(++h>W&&0==t.over_count)break;if(3==e.noise_shaping_amp&&p&&30<h)break;if(3==e.noise_shaping_amp&&p&&15<n.global_gain-m)break}}while(255>n.global_gain+n.scalefac_scale);3==e.noise_shaping_amp?p?v=!0:(n.assign(b),K.arraycopy(c,0,a,0,576),h=0,m=n.global_gain,p=!0):v=!0}g.VBR==M.vbr_rh||g.VBR==M.vbr_mtrh?K.arraycopy(c,0,a,0,576):0!=(e.substep_shaping&
+1)&&trancate_smallspectrums(e,b,l,a);return t.over_count};this.iteration_finish_one=function(d,b,l){var a=d.l3_side,h=a.tt[b][l];ta.best_scalefac_store(d,b,l,a);1==d.use_best_huffman&&ta.best_huffman_divide(d,h);r.ResvAdjust(d,h)};this.VBR_encode_granule=function(d,b,l,a,h,k,e){var n=d.internal_flags,c=new Ab,f=H(576),q=e,t=e+1,t=(e+k)/2,r,A=0,v=n.sfb21_extra;Ia.fill(c.l3_enc,0);do n.sfb21_extra=t>q-42?!1:v,r=outer_loop(d,b,l,a,h,t),0>=r?(A=1,t=b.part2_3_length,c.assign(b),K.arraycopy(a,0,f,0,576),
+e=t-32,r=e-k,t=(e+k)/2):(k=t+32,r=e-k,t=(e+k)/2,0!=A&&(A=2,b.assign(c),K.arraycopy(f,0,a,0,576)));while(12<r);n.sfb21_extra=v;2==A&&K.arraycopy(c.l3_enc,0,b.l3_enc,0,576)};this.get_framebits=function(d,b){var l=d.internal_flags;l.bitrate_index=l.VBR_min_bitrate;var a=q.getframebits(d);l.bitrate_index=1;for(var a=q.getframebits(d),h=1;h<=l.VBR_max_bitrate;h++)l.bitrate_index=h,a=new eb(a),b[h]=r.ResvFrameBegin(d,a),a=a.bits};this.VBR_old_prepare=function(g,b,l,a,h,k,e,n,c){var f=g.internal_flags,q;
+q=0;var t=1,w=0;f.bitrate_index=f.VBR_max_bitrate;var A=r.ResvFrameBegin(g,new eb(0))/f.mode_gr;get_framebits(g,k);for(var v=0;v<f.mode_gr;v++){var p=B.on_pe(g,b,n[v],A,v,0);f.mode_ext==d.MPG_MD_MS_LR&&(ms_convert(f.l3_side,v),B.reduce_side(n[v],l[v],A,p));for(p=0;p<f.channels_out;++p){var m=f.l3_side.tt[v][p];m.block_type!=d.SHORT_TYPE?(q=1.28/(1+Math.exp(3.5-b[v][p]/300))-.05,q=f.PSY.mask_adjust-q):(q=2.56/(1+Math.exp(3.5-b[v][p]/300))-.14,q=f.PSY.mask_adjust_short-q);f.masking_lower=Math.pow(10,
+.1*q);init_outer_loop(f,m);c[v][p]=B.calc_xmin(g,a[v][p],m,h[v][p]);0!=c[v][p]&&(t=0);e[v][p]=126;w+=n[v][p]}}for(v=0;v<f.mode_gr;v++)for(p=0;p<f.channels_out;p++)w>k[f.VBR_max_bitrate]&&(n[v][p]*=k[f.VBR_max_bitrate],n[v][p]/=w),e[v][p]>n[v][p]&&(e[v][p]=n[v][p]);return t};this.bitpressure_strategy=function(g,b,l,a){for(var h=0;h<g.mode_gr;h++)for(var k=0;k<g.channels_out;k++){for(var e=g.l3_side.tt[h][k],n=b[h][k],c=0,f=0;f<e.psy_lmax;f++)n[c++]*=1+.029*f*f/d.SBMAX_l/d.SBMAX_l;if(e.block_type==
+d.SHORT_TYPE)for(f=e.sfb_smin;f<d.SBMAX_s;f++)n[c++]*=1+.029*f*f/d.SBMAX_s/d.SBMAX_s,n[c++]*=1+.029*f*f/d.SBMAX_s/d.SBMAX_s,n[c++]*=1+.029*f*f/d.SBMAX_s/d.SBMAX_s;a[h][k]=0|Math.max(l[h][k],.9*a[h][k])}};this.VBR_new_prepare=function(g,b,k,a,h,q){var e=g.internal_flags,n=1,c=0,f=0,t;g.free_format?(e.bitrate_index=0,c=new eb(c),t=r.ResvFrameBegin(g,c),c=c.bits,h[0]=t):(e.bitrate_index=e.VBR_max_bitrate,c=new eb(c),r.ResvFrameBegin(g,c),c=c.bits,get_framebits(g,h),t=h[e.VBR_max_bitrate]);for(h=0;h<
+e.mode_gr;h++){B.on_pe(g,b,q[h],c,h,0);e.mode_ext==d.MPG_MD_MS_LR&&ms_convert(e.l3_side,h);for(var z=0;z<e.channels_out;++z){var w=e.l3_side.tt[h][z];e.masking_lower=Math.pow(10,.1*e.PSY.mask_adjust);init_outer_loop(e,w);0!=B.calc_xmin(g,k[h][z],w,a[h][z])&&(n=0);f+=q[h][z]}}for(h=0;h<e.mode_gr;h++)for(z=0;z<e.channels_out;z++)f>t&&(q[h][z]*=t,q[h][z]/=f);return n};this.calc_target_bits=function(g,b,k,a,h,t){var e=g.internal_flags,n=e.l3_side,c,f;e.bitrate_index=e.VBR_max_bitrate;f=new eb(0);t[0]=
+r.ResvFrameBegin(g,f);e.bitrate_index=1;f=q.getframebits(g)-8*e.sideinfo_len;h[0]=f/(e.mode_gr*e.channels_out);f=g.VBR_mean_bitrate_kbps*g.framesize*1E3;0!=(e.substep_shaping&1)&&(f*=1.09);f/=g.out_samplerate;f-=8*e.sideinfo_len;f/=e.mode_gr*e.channels_out;c=.93+.07*(11-g.compression_ratio)/5.5;.9>c&&(c=.9);1<c&&(c=1);for(g=0;g<e.mode_gr;g++){var E=0;for(h=0;h<e.channels_out;h++){a[g][h]=int(c*f);if(700<b[g][h]){var z=int((b[g][h]-700)/1.4),w=n.tt[g][h];a[g][h]=int(c*f);w.block_type==d.SHORT_TYPE&&
+z<f/2&&(z=f/2);z>3*f/2?z=3*f/2:0>z&&(z=0);a[g][h]+=z}a[g][h]>da.MAX_BITS_PER_CHANNEL&&(a[g][h]=da.MAX_BITS_PER_CHANNEL);E+=a[g][h]}if(E>da.MAX_BITS_PER_GRANULE)for(h=0;h<e.channels_out;++h)a[g][h]*=da.MAX_BITS_PER_GRANULE,a[g][h]/=E}if(e.mode_ext==d.MPG_MD_MS_LR)for(g=0;g<e.mode_gr;g++)B.reduce_side(a[g],k[g],f*e.channels_out,da.MAX_BITS_PER_GRANULE);for(g=b=0;g<e.mode_gr;g++)for(h=0;h<e.channels_out;h++)a[g][h]>da.MAX_BITS_PER_CHANNEL&&(a[g][h]=da.MAX_BITS_PER_CHANNEL),b+=a[g][h];if(b>t[0])for(g=
+0;g<e.mode_gr;g++)for(h=0;h<e.channels_out;h++)a[g][h]*=t[0],a[g][h]/=b}}function Qa(){this.thm=new ic;this.en=new ic}function Pc(){function r(b,d,a){for(var g=10,q=d+238-14-286,e=-15;0>e;e++){var n,c,f;n=k[g+-10];c=b[q+-224]*n;f=b[d+224]*n;n=k[g+-9];c+=b[q+-160]*n;f+=b[d+160]*n;n=k[g+-8];c+=b[q+-96]*n;f+=b[d+96]*n;n=k[g+-7];c+=b[q+-32]*n;f+=b[d+32]*n;n=k[g+-6];c+=b[q+32]*n;f+=b[d+-32]*n;n=k[g+-5];c+=b[q+96]*n;f+=b[d+-96]*n;n=k[g+-4];c+=b[q+160]*n;f+=b[d+-160]*n;n=k[g+-3];c+=b[q+224]*n;f+=b[d+-224]*
+n;n=k[g+-2];c+=b[d+-256]*n;f-=b[q+256]*n;n=k[g+-1];c+=b[d+-192]*n;f-=b[q+192]*n;n=k[g+0];c+=b[d+-128]*n;f-=b[q+128]*n;n=k[g+1];c+=b[d+-64]*n;f-=b[q+64]*n;n=k[g+2];c+=b[d+0]*n;f-=b[q+0]*n;n=k[g+3];c+=b[d+64]*n;f-=b[q+-64]*n;n=k[g+4];c+=b[d+128]*n;f-=b[q+-128]*n;n=k[g+5];c+=b[d+192]*n;f-=b[q+-192]*n;c*=k[g+6];n=f-c;a[30+2*e]=f+c;a[31+2*e]=k[g+7]*n;g+=18;d--;q++}f=b[d+-16]*k[g+-10];c=b[d+-32]*k[g+-2];f+=(b[d+-48]-b[d+16])*k[g+-9];c+=b[d+-96]*k[g+-1];f+=(b[d+-80]+b[d+48])*k[g+-8];c+=b[d+-160]*k[g+0];
+f+=(b[d+-112]-b[d+80])*k[g+-7];c+=b[d+-224]*k[g+1];f+=(b[d+-144]+b[d+112])*k[g+-6];c-=b[d+32]*k[g+2];f+=(b[d+-176]-b[d+144])*k[g+-5];c-=b[d+96]*k[g+3];f+=(b[d+-208]+b[d+176])*k[g+-4];c-=b[d+160]*k[g+4];f+=(b[d+-240]-b[d+208])*k[g+-3];c-=b[d+224];b=c-f;d=c+f;f=a[14];c=a[15]-f;a[31]=d+f;a[30]=b+c;a[15]=b-c;a[14]=d-f;c=a[28]-a[0];a[0]+=a[28];a[28]=c*k[g+-36+7];c=a[29]-a[1];a[1]+=a[29];a[29]=c*k[g+-36+7];c=a[26]-a[2];a[2]+=a[26];a[26]=c*k[g+-72+7];c=a[27]-a[3];a[3]+=a[27];a[27]=c*k[g+-72+7];c=a[24]-a[4];
+a[4]+=a[24];a[24]=c*k[g+-108+7];c=a[25]-a[5];a[5]+=a[25];a[25]=c*k[g+-108+7];c=a[22]-a[6];a[6]+=a[22];a[22]=c*X.SQRT2;c=a[23]-a[7];a[7]+=a[23];a[23]=c*X.SQRT2-a[7];a[7]-=a[6];a[22]-=a[7];a[23]-=a[22];c=a[6];a[6]=a[31]-c;a[31]+=c;c=a[7];a[7]=a[30]-c;a[30]+=c;c=a[22];a[22]=a[15]-c;a[15]+=c;c=a[23];a[23]=a[14]-c;a[14]+=c;c=a[20]-a[8];a[8]+=a[20];a[20]=c*k[g+-180+7];c=a[21]-a[9];a[9]+=a[21];a[21]=c*k[g+-180+7];c=a[18]-a[10];a[10]+=a[18];a[18]=c*k[g+-216+7];c=a[19]-a[11];a[11]+=a[19];a[19]=c*k[g+-216+
+7];c=a[16]-a[12];a[12]+=a[16];a[16]=c*k[g+-252+7];c=a[17]-a[13];a[13]+=a[17];a[17]=c*k[g+-252+7];c=-a[20]+a[24];a[20]+=a[24];a[24]=c*k[g+-216+7];c=-a[21]+a[25];a[21]+=a[25];a[25]=c*k[g+-216+7];c=a[4]-a[8];a[4]+=a[8];a[8]=c*k[g+-216+7];c=a[5]-a[9];a[5]+=a[9];a[9]=c*k[g+-216+7];c=a[0]-a[12];a[0]+=a[12];a[12]=c*k[g+-72+7];c=a[1]-a[13];a[1]+=a[13];a[13]=c*k[g+-72+7];c=a[16]-a[28];a[16]+=a[28];a[28]=c*k[g+-72+7];c=-a[17]+a[29];a[17]+=a[29];a[29]=c*k[g+-72+7];c=X.SQRT2*(a[2]-a[10]);a[2]+=a[10];a[10]=c;
+c=X.SQRT2*(a[3]-a[11]);a[3]+=a[11];a[11]=c;c=X.SQRT2*(-a[18]+a[26]);a[18]+=a[26];a[26]=c-a[18];c=X.SQRT2*(-a[19]+a[27]);a[19]+=a[27];a[27]=c-a[19];c=a[2];a[19]-=a[3];a[3]-=c;a[2]=a[31]-c;a[31]+=c;c=a[3];a[11]-=a[19];a[18]-=c;a[3]=a[30]-c;a[30]+=c;c=a[18];a[27]-=a[11];a[19]-=c;a[18]=a[15]-c;a[15]+=c;c=a[19];a[10]-=c;a[19]=a[14]-c;a[14]+=c;c=a[10];a[11]-=c;a[10]=a[23]-c;a[23]+=c;c=a[11];a[26]-=c;a[11]=a[22]-c;a[22]+=c;c=a[26];a[27]-=c;a[26]=a[7]-c;a[7]+=c;c=a[27];a[27]=a[6]-c;a[6]+=c;c=X.SQRT2*(a[0]-
+a[4]);a[0]+=a[4];a[4]=c;c=X.SQRT2*(a[1]-a[5]);a[1]+=a[5];a[5]=c;c=X.SQRT2*(a[16]-a[20]);a[16]+=a[20];a[20]=c;c=X.SQRT2*(a[17]-a[21]);a[17]+=a[21];a[21]=c;c=-X.SQRT2*(a[8]-a[12]);a[8]+=a[12];a[12]=c-a[8];c=-X.SQRT2*(a[9]-a[13]);a[9]+=a[13];a[13]=c-a[9];c=-X.SQRT2*(a[25]-a[29]);a[25]+=a[29];a[29]=c-a[25];c=-X.SQRT2*(a[24]+a[28]);a[24]-=a[28];a[28]=c-a[24];c=a[24]-a[16];a[24]=c;c=a[20]-c;a[20]=c;c=a[28]-c;a[28]=c;c=a[25]-a[17];a[25]=c;c=a[21]-c;a[21]=c;c=a[29]-c;a[29]=c;c=a[17]-a[1];a[17]=c;c=a[9]-c;
+a[9]=c;c=a[25]-c;a[25]=c;c=a[5]-c;a[5]=c;c=a[21]-c;a[21]=c;c=a[13]-c;a[13]=c;c=a[29]-c;a[29]=c;c=a[1]-a[0];a[1]=c;c=a[16]-c;a[16]=c;c=a[17]-c;a[17]=c;c=a[8]-c;a[8]=c;c=a[9]-c;a[9]=c;c=a[24]-c;a[24]=c;c=a[25]-c;a[25]=c;c=a[4]-c;a[4]=c;c=a[5]-c;a[5]=c;c=a[20]-c;a[20]=c;c=a[21]-c;a[21]=c;c=a[12]-c;a[12]=c;c=a[13]-c;a[13]=c;c=a[28]-c;a[28]=c;c=a[29]-c;a[29]=c;c=a[0];a[0]+=a[31];a[31]-=c;c=a[1];a[1]+=a[30];a[30]-=c;c=a[16];a[16]+=a[15];a[15]-=c;c=a[17];a[17]+=a[14];a[14]-=c;c=a[8];a[8]+=a[23];a[23]-=c;
+c=a[9];a[9]+=a[22];a[22]-=c;c=a[24];a[24]+=a[7];a[7]-=c;c=a[25];a[25]+=a[6];a[6]-=c;c=a[4];a[4]+=a[27];a[27]-=c;c=a[5];a[5]+=a[26];a[26]-=c;c=a[20];a[20]+=a[11];a[11]-=c;c=a[21];a[21]+=a[10];a[10]-=c;c=a[12];a[12]+=a[19];a[19]-=c;c=a[13];a[13]+=a[18];a[18]-=c;c=a[28];a[28]+=a[3];a[3]-=c;c=a[29];a[29]+=a[2];a[2]-=c}var k=[-.1482523854003001,32.308141959636465,296.40344946382766,883.1344870032432,11113.947376231741,1057.2713659324597,305.7402417275812,30.825928907280012,3.8533188138216365,59.42900443849514,
+709.5899960123345,5281.91112291017,-5829.66483675846,-817.6293103748613,-76.91656988279972,-4.594269939176596,.9063471690191471,.1960342806591213,-.15466694054279598,34.324387823855965,301.8067566458425,817.599602898885,11573.795901679885,1181.2520595540152,321.59731579894424,31.232021761053772,3.7107095756221318,53.650946155329365,684.167428119626,5224.56624370173,-6366.391851890084,-908.9766368219582,-89.83068876699639,-5.411397422890401,.8206787908286602,.3901806440322567,-.16070888947830023,36.147034243915876,
+304.11815768187864,732.7429163887613,11989.60988270091,1300.012278487897,335.28490093152146,31.48816102859945,3.373875931311736,47.232241542899175,652.7371796173471,5132.414255594984,-6909.087078780055,-1001.9990371107289,-103.62185754286375,-6.104916304710272,.7416505462720353,.5805693545089249,-.16636367662261495,37.751650073343995,303.01103387567713,627.9747488785183,12358.763425278165,1412.2779918482834,346.7496836825721,31.598286663170416,3.1598635433980946,40.57878626349686,616.1671130880391,
+5007.833007176154,-7454.040671756168,-1095.7960341867115,-118.24411666465777,-6.818469345853504,.6681786379192989,.7653668647301797,-.1716176790982088,39.11551877123304,298.3413246578966,503.5259106886539,12679.589408408976,1516.5821921214542,355.9850766329023,31.395241710249053,2.9164211881972335,33.79716964664243,574.8943997801362,4853.234992253242,-7997.57021486075,-1189.7624067269965,-133.6444792601766,-7.7202770609839915,.5993769336819237,.9427934736519954,-.17645823955292173,40.21879108166477,
+289.9982036694474,359.3226160751053,12950.259102786438,1612.1013903507662,362.85067106591504,31.045922092242872,2.822222032597987,26.988862316190684,529.8996541764288,4671.371946949588,-8535.899136645805,-1282.5898586244496,-149.58553632943463,-8.643494270763135,.5345111359507916,1.111140466039205,-.36174739330527045,41.04429910497807,277.5463268268618,195.6386023135583,13169.43812144731,1697.6433561479398,367.40983966190305,30.557037410382826,2.531473372857427,20.070154905927314,481.50208566532336,
+4464.970341588308,-9065.36882077239,-1373.62841526722,-166.1660487028118,-9.58289321133207,.4729647758913199,1.268786568327291,-.36970682634889585,41.393213350082036,261.2935935556502,12.935476055240873,13336.131683328815,1772.508612059496,369.76534388639965,29.751323653701338,2.4023193045459172,13.304795348228817,430.5615775526625,4237.0568611071185,-9581.931701634761,-1461.6913552409758,-183.12733958476446,-10.718010163869403,.41421356237309503,1.414213562373095,-.37677560326535325,41.619486213528496,
+241.05423794991074,-187.94665032361226,13450.063605744153,1836.153896465782,369.4908799925761,29.001847876923147,2.0714759319987186,6.779591200894186,377.7767837205709,3990.386575512536,-10081.709459700915,-1545.947424837898,-200.3762958015653,-11.864482073055006,.3578057213145241,1.546020906725474,-.3829366947518991,41.1516456456653,216.47684307105183,-406.1569483347166,13511.136535077321,1887.8076599260432,367.3025214564151,28.136213436723654,1.913880671464418,.3829366947518991,323.85365704338597,
+3728.1472257487526,-10561.233882199509,-1625.2025997821418,-217.62525175416,-13.015432208941645,.3033466836073424,1.66293922460509,-.5822628872992417,40.35639251440489,188.20071124269245,-640.2706748618148,13519.21490106562,1927.6022433578062,362.8197642637487,26.968821921868447,1.7463817695935329,-5.62650678237171,269.3016715297017,3453.386536448852,-11016.145278780888,-1698.6569643425091,-234.7658734267683,-14.16351421663124,.2504869601913055,1.76384252869671,-.5887180101749253,39.23429103868072,
+155.76096234403798,-889.2492977967378,13475.470561874661,1955.0535223723712,356.4450994756727,25.894952980042156,1.5695032905781554,-11.181939564328772,214.80884394039484,3169.1640829158237,-11443.321309975563,-1765.1588461316153,-251.68908574481912,-15.49755935939164,.198912367379658,1.847759065022573,-.7912582233652842,37.39369355329111,119.699486012458,-1151.0956593239027,13380.446257078214,1970.3952110853447,348.01959814116185,24.731487364283044,1.3850130831637748,-16.421408865300393,161.05030052864092,
+2878.3322807850063,-11838.991423510031,-1823.985884688674,-268.2854986386903,-16.81724543849939,.1483359875383474,1.913880671464418,-.7960642926861912,35.2322109610459,80.01928065061526,-1424.0212633405113,13235.794061869668,1973.804052543835,337.9908651258184,23.289159354463873,1.3934255946442087,-21.099669467133474,108.48348407242611,2583.700758091299,-12199.726194855148,-1874.2780658979746,-284.2467154529415,-18.11369784385905,.09849140335716425,1.961570560806461,-.998795456205172,32.56307803611191,
+36.958364584370486,-1706.075448829146,13043.287458812016,1965.3831106103316,326.43182772364605,22.175018750622293,1.198638339011324,-25.371248002043963,57.53505923036915,2288.41886619975,-12522.674544337233,-1914.8400385312243,-299.26241273417224,-19.37805630698734,.04912684976946725,1.990369453344394,.0178904535*X.SQRT2/2.384E-6,.008938074*X.SQRT2/2.384E-6,.0015673635*X.SQRT2/2.384E-6,.001228571*X.SQRT2/2.384E-6,4.856585E-4*X.SQRT2/2.384E-6,1.09434E-4*X.SQRT2/2.384E-6,5.0783E-5*X.SQRT2/2.384E-6,
+6.914E-6*X.SQRT2/2.384E-6,12804.797818791945,1945.5515939597317,313.4244966442953,20.801593959731544,1995.1556208053692,9.000838926174497,-29.20218120805369],q=[[2.382191739347913E-13,6.423305872147834E-13,9.400849094049688E-13,1.122435026096556E-12,1.183840321267481E-12,1.122435026096556E-12,9.40084909404969E-13,6.423305872147839E-13,2.382191739347918E-13,5.456116108943412E-12,4.878985199565852E-12,4.240448995017367E-12,3.559909094758252E-12,2.858043359288075E-12,2.156177623817898E-12,1.475637723558783E-12,
+8.371015190102974E-13,2.599706096327376E-13,-5.456116108943412E-12,-4.878985199565852E-12,-4.240448995017367E-12,-3.559909094758252E-12,-2.858043359288076E-12,-2.156177623817898E-12,-1.475637723558783E-12,-8.371015190102975E-13,-2.599706096327376E-13,-2.382191739347923E-13,-6.423305872147843E-13,-9.400849094049696E-13,-1.122435026096556E-12,-1.183840321267481E-12,-1.122435026096556E-12,-9.400849094049694E-13,-6.42330587214784E-13,-2.382191739347918E-13],[2.382191739347913E-13,6.423305872147834E-13,
+9.400849094049688E-13,1.122435026096556E-12,1.183840321267481E-12,1.122435026096556E-12,9.400849094049688E-13,6.423305872147841E-13,2.382191739347918E-13,5.456116108943413E-12,4.878985199565852E-12,4.240448995017367E-12,3.559909094758253E-12,2.858043359288075E-12,2.156177623817898E-12,1.475637723558782E-12,8.371015190102975E-13,2.599706096327376E-13,-5.461314069809755E-12,-4.921085770524055E-12,-4.343405037091838E-12,-3.732668368707687E-12,-3.093523840190885E-12,-2.430835727329465E-12,-1.734679010007751E-12,
+-9.74825365660928E-13,-2.797435120168326E-13,0,0,0,0,0,0,-2.283748241799531E-13,-4.037858874020686E-13,-2.146547464825323E-13],[.1316524975873958,.414213562373095,.7673269879789602,1.091308501069271,1.303225372841206,1.56968557711749,1.920982126971166,2.414213562373094,3.171594802363212,4.510708503662055,7.595754112725146,22.90376554843115,.984807753012208,.6427876096865394,.3420201433256688,.9396926207859084,-.1736481776669303,-.7660444431189779,.8660254037844387,.5,-.5144957554275265,-.4717319685649723,
+-.3133774542039019,-.1819131996109812,-.09457419252642064,-.04096558288530405,-.01419856857247115,-.003699974673760037,.8574929257125442,.8817419973177052,.9496286491027329,.9833145924917901,.9955178160675857,.9991605581781475,.999899195244447,.9999931550702802],[0,0,0,0,0,0,2.283748241799531E-13,4.037858874020686E-13,2.146547464825323E-13,5.461314069809755E-12,4.921085770524055E-12,4.343405037091838E-12,3.732668368707687E-12,3.093523840190885E-12,2.430835727329466E-12,1.734679010007751E-12,9.74825365660928E-13,
+2.797435120168326E-13,-5.456116108943413E-12,-4.878985199565852E-12,-4.240448995017367E-12,-3.559909094758253E-12,-2.858043359288075E-12,-2.156177623817898E-12,-1.475637723558782E-12,-8.371015190102975E-13,-2.599706096327376E-13,-2.382191739347913E-13,-6.423305872147834E-13,-9.400849094049688E-13,-1.122435026096556E-12,-1.183840321267481E-12,-1.122435026096556E-12,-9.400849094049688E-13,-6.423305872147841E-13,-2.382191739347918E-13]],C=q[d.SHORT_TYPE],B=q[d.SHORT_TYPE],t=q[d.SHORT_TYPE],M=q[d.SHORT_TYPE],
+g=[0,1,16,17,8,9,24,25,4,5,20,21,12,13,28,29,2,3,18,19,10,11,26,27,6,7,22,23,14,15,30,31];this.mdct_sub48=function(b,k,a){for(var h=286,D=0;D<b.channels_out;D++){for(var e=0;e<b.mode_gr;e++){for(var n,c=b.l3_side.tt[e][D],f=c.xr,E=0,z=b.sb_sample[D][1-e],w=0,A=0;9>A;A++)for(r(k,h,z[w]),r(k,h+32,z[w+1]),w+=2,h+=64,n=1;32>n;n+=2)z[w-1][n]*=-1;for(n=0;32>n;n++,E+=18){var z=c.block_type,w=b.sb_sample[D][e],v=b.sb_sample[D][1-e];0!=c.mixed_block_flag&&2>n&&(z=0);if(1E-12>b.amp_filter[n])Ia.fill(f,E+0,
+E+18,0);else{if(1>b.amp_filter[n])for(A=0;18>A;A++)v[A][g[n]]*=b.amp_filter[n];if(z==d.SHORT_TYPE){for(A=-3;0>A;A++){var p=q[d.SHORT_TYPE][A+3];f[E+3*A+9]=w[9+A][g[n]]*p-w[8-A][g[n]];f[E+3*A+18]=w[14-A][g[n]]*p+w[15+A][g[n]];f[E+3*A+10]=w[15+A][g[n]]*p-w[14-A][g[n]];f[E+3*A+19]=v[2-A][g[n]]*p+v[3+A][g[n]];f[E+3*A+11]=v[3+A][g[n]]*p-v[2-A][g[n]];f[E+3*A+20]=v[8-A][g[n]]*p+v[9+A][g[n]]}A=f;w=E;for(p=0;3>p;p++){var m,x,y,W,u;y=A[w+6]*q[d.SHORT_TYPE][0]-A[w+15];v=A[w+0]*q[d.SHORT_TYPE][2]-A[w+9];m=y+
+v;x=y-v;y=A[w+15]*q[d.SHORT_TYPE][0]+A[w+6];v=A[w+9]*q[d.SHORT_TYPE][2]+A[w+0];W=y+v;u=-y+v;v=2.069978111953089E-11*(A[w+3]*q[d.SHORT_TYPE][1]-A[w+12]);y=2.069978111953089E-11*(A[w+12]*q[d.SHORT_TYPE][1]+A[w+3]);A[w+0]=1.90752519173728E-11*m+v;A[w+15]=1.90752519173728E-11*-W+y;x*=1.6519652744032674E-11;W=9.537625958686404E-12*W+y;A[w+3]=x-W;A[w+6]=x+W;m=9.537625958686404E-12*m-v;u*=1.6519652744032674E-11;A[w+9]=m+u;A[w+12]=m-u;w++}}else{p=H(18);for(A=-9;0>A;A++)m=q[z][A+27]*v[A+9][g[n]]+q[z][A+36]*
+v[8-A][g[n]],x=q[z][A+9]*w[A+9][g[n]]-q[z][A+18]*w[8-A][g[n]],p[A+9]=m-x*C[3+A+9],p[A+18]=m*C[3+A+9]+x;var A=f,w=E,pa=u=W=y=x=m=v=void 0,la=void 0,F=void 0,G=void 0;x=p[17]-p[9];W=p[15]-p[11];u=p[14]-p[12];pa=p[0]+p[8];la=p[1]+p[7];F=p[2]+p[6];G=p[3]+p[5];A[w+17]=pa+F-G-(la-p[4]);m=(pa+F-G)*B[19]+(la-p[4]);v=(x-W-u)*B[18];A[w+5]=v+m;A[w+6]=v-m;y=(p[16]-p[10])*B[18];la=la*B[19]+p[4];v=x*B[12]+y+W*B[13]+u*B[14];m=-pa*B[16]+la-F*B[17]+G*B[15];A[w+1]=v+m;A[w+2]=v-m;v=x*B[13]-y-W*B[14]+u*B[12];m=-pa*B[17]+
+la-F*B[15]+G*B[16];A[w+9]=v+m;A[w+10]=v-m;v=x*B[14]-y+W*B[12]-u*B[13];m=pa*B[15]-la+F*B[16]-G*B[17];A[w+13]=v+m;A[w+14]=v-m;G=F=la=pa=u=W=y=x=void 0;x=p[8]-p[0];W=p[6]-p[2];u=p[5]-p[3];pa=p[17]+p[9];la=p[16]+p[10];F=p[15]+p[11];G=p[14]+p[12];A[w+0]=pa+F+G+(la+p[13]);v=(pa+F+G)*B[19]-(la+p[13]);m=(x-W+u)*B[18];A[w+11]=v+m;A[w+12]=v-m;y=(p[7]-p[1])*B[18];la=p[13]-la*B[19];v=pa*B[15]-la+F*B[16]+G*B[17];m=x*B[14]+y+W*B[12]+u*B[13];A[w+3]=v+m;A[w+4]=v-m;v=-pa*B[17]+la-F*B[15]-G*B[16];m=x*B[13]+y-W*B[14]-
+u*B[12];A[w+7]=v+m;A[w+8]=v-m;v=-pa*B[16]+la-F*B[17]-G*B[15];m=x*B[12]-y+W*B[13]-u*B[14];A[w+15]=v+m;A[w+16]=v-m}}if(z!=d.SHORT_TYPE&&0!=n)for(A=7;0<=A;--A)z=f[E+A]*t[20+A]+f[E+-1-A]*M[28+A],w=f[E+A]*M[28+A]-f[E+-1-A]*t[20+A],f[E+-1-A]=z,f[E+A]=w}}k=a;h=286;if(1==b.mode_gr)for(e=0;18>e;e++)K.arraycopy(b.sb_sample[D][1][e],0,b.sb_sample[D][0][e],0,32)}}}function d(){var r=d.FFTOFFSET,k=d.MPG_MD_MS_LR,q=null,C=this.psy=null,B=null,t=null;this.setModules=function(d,b,k,a){q=d;C=this.psy=b;B=a;t=k};var ta=
+new Pc;this.lame_encode_mp3_frame=function(g,b,l,a,h,D){var e=Zb([2,2]);e[0][0]=new Qa;e[0][1]=new Qa;e[1][0]=new Qa;e[1][1]=new Qa;var n=Zb([2,2]);n[0][0]=new Qa;n[0][1]=new Qa;n[1][0]=new Qa;n[1][1]=new Qa;var c=[null,null],f=g.internal_flags,E=ra([2,4]),z=[.5,.5],w=[[0,0],[0,0]],A=[[0,0],[0,0]];c[0]=b;c[1]=l;if(0==f.lame_encode_frame_init){b=g.internal_flags;var v,p;if(0==b.lame_encode_frame_init){l=H(2014);var m=H(2014);b.lame_encode_frame_init=1;for(p=v=0;v<286+576*(1+b.mode_gr);++v)v<576*b.mode_gr?
+(l[v]=0,2==b.channels_out&&(m[v]=0)):(l[v]=c[0][p],2==b.channels_out&&(m[v]=c[1][p]),++p);for(p=0;p<b.mode_gr;p++)for(v=0;v<b.channels_out;v++)b.l3_side.tt[p][v].block_type=d.SHORT_TYPE;ta.mdct_sub48(b,l,m)}}f.padding=0;0>(f.slot_lag-=f.frac_SpF)&&(f.slot_lag+=g.out_samplerate,f.padding=1);if(0!=f.psymodel)for(m=[null,null],v=0,p=Y(2),l=0;l<f.mode_gr;l++){for(b=0;b<f.channels_out;b++)m[b]=c[b],v=576+576*l-d.FFTOFFSET;b=g.VBR==M.vbr_mtrh||g.VBR==M.vbr_mt?C.L3psycho_anal_vbr(g,m,v,l,e,n,w[l],A[l],E[l],
+p):C.L3psycho_anal_ns(g,m,v,l,e,n,w[l],A[l],E[l],p);if(0!=b)return-4;g.mode==ka.JOINT_STEREO&&(z[l]=E[l][2]+E[l][3],0<z[l]&&(z[l]=E[l][3]/z[l]));for(b=0;b<f.channels_out;b++){var x=f.l3_side.tt[l][b];x.block_type=p[b];x.mixed_block_flag=0}}else for(l=0;l<f.mode_gr;l++)for(b=0;b<f.channels_out;b++)f.l3_side.tt[l][b].block_type=d.NORM_TYPE,f.l3_side.tt[l][b].mixed_block_flag=0,A[l][b]=w[l][b]=700;0==f.ATH.useAdjust?f.ATH.adjust=1:(b=f.loudness_sq[0][0],E=f.loudness_sq[1][0],2==f.channels_out?(b+=f.loudness_sq[0][1],
+E+=f.loudness_sq[1][1]):(b+=b,E+=E),2==f.mode_gr&&(b=Math.max(b,E)),b=.5*b*f.ATH.aaSensitivityP,.03125<b?(1<=f.ATH.adjust?f.ATH.adjust=1:f.ATH.adjust<f.ATH.adjustLimit&&(f.ATH.adjust=f.ATH.adjustLimit),f.ATH.adjustLimit=1):(E=31.98*b+6.25E-4,f.ATH.adjust>=E?(f.ATH.adjust*=.075*E+.925,f.ATH.adjust<E&&(f.ATH.adjust=E)):f.ATH.adjustLimit>=E?f.ATH.adjust=E:f.ATH.adjust<f.ATH.adjustLimit&&(f.ATH.adjust=f.ATH.adjustLimit),f.ATH.adjustLimit=E));ta.mdct_sub48(f,c[0],c[1]);f.mode_ext=d.MPG_MD_LR_LR;if(g.force_ms)f.mode_ext=
+d.MPG_MD_MS_LR;else if(g.mode==ka.JOINT_STEREO){for(l=m=E=0;l<f.mode_gr;l++)for(b=0;b<f.channels_out;b++)E+=A[l][b],m+=w[l][b];E<=1*m&&(E=f.l3_side.tt[0],b=f.l3_side.tt[f.mode_gr-1],E[0].block_type==E[1].block_type&&b[0].block_type==b[1].block_type&&(f.mode_ext=d.MPG_MD_MS_LR))}f.mode_ext==k&&(e=n,w=A);if(g.analysis&&null!=f.pinfo)for(l=0;l<f.mode_gr;l++)for(b=0;b<f.channels_out;b++)f.pinfo.ms_ratio[l]=f.ms_ratio[l],f.pinfo.ms_ener_ratio[l]=z[l],f.pinfo.blocktype[l][b]=f.l3_side.tt[l][b].block_type,
+f.pinfo.pe[l][b]=w[l][b],K.arraycopy(f.l3_side.tt[l][b].xr,0,f.pinfo.xr[l][b],0,576),f.mode_ext==k&&(f.pinfo.ers[l][b]=f.pinfo.ers[l][b+2],K.arraycopy(f.pinfo.energy[l][b+2],0,f.pinfo.energy[l][b],0,f.pinfo.energy[l][b].length));if(g.VBR==M.vbr_off||g.VBR==M.vbr_abr){for(n=0;18>n;n++)f.nsPsy.pefirbuf[n]=f.nsPsy.pefirbuf[n+1];for(l=A=0;l<f.mode_gr;l++)for(b=0;b<f.channels_out;b++)A+=w[l][b];f.nsPsy.pefirbuf[18]=A;A=f.nsPsy.pefirbuf[9];for(n=0;9>n;n++)A+=(f.nsPsy.pefirbuf[n]+f.nsPsy.pefirbuf[18-n])*
+d.fircoef[n];A=3350*f.mode_gr*f.channels_out/A;for(l=0;l<f.mode_gr;l++)for(b=0;b<f.channels_out;b++)w[l][b]*=A}f.iteration_loop.iteration_loop(g,w,z,e);q.format_bitstream(g);a=q.copy_buffer(f,a,h,D,1);g.bWriteVbrTag&&B.addVbrFrame(g);if(g.analysis&&null!=f.pinfo){for(b=0;b<f.channels_out;b++){for(h=0;h<r;h++)f.pinfo.pcmdata[b][h]=f.pinfo.pcmdata[b][h+g.framesize];for(h=r;1600>h;h++)f.pinfo.pcmdata[b][h]=c[b][h-r]}t.set_frame_pinfo(g,e)}f.bitrate_stereoMode_Hist[f.bitrate_index][4]++;f.bitrate_stereoMode_Hist[15][4]++;
+2==f.channels_out&&(f.bitrate_stereoMode_Hist[f.bitrate_index][f.mode_ext]++,f.bitrate_stereoMode_Hist[15][f.mode_ext]++);for(g=0;g<f.mode_gr;++g)for(c=0;c<f.channels_out;++c)h=f.l3_side.tt[g][c].block_type|0,0!=f.l3_side.tt[g][c].mixed_block_flag&&(h=4),f.bitrate_blockType_Hist[f.bitrate_index][h]++,f.bitrate_blockType_Hist[f.bitrate_index][5]++,f.bitrate_blockType_Hist[15][h]++,f.bitrate_blockType_Hist[15][5]++;return a}}function Qc(){this.size=this.pos=this.want=this.seen=this.sum=0;this.bag=null;
+this.TotalFrameSize=this.nBytesWritten=this.nVbrNumFrames=0}function Rc(){this.tt=[[null,null],[null,null]];this.resvDrain_post=this.resvDrain_pre=this.private_bits=this.main_data_begin=0;this.scfsi=[Y(4),Y(4)];for(var d=0;2>d;d++)for(var k=0;2>k;k++)this.tt[d][k]=new Ab}function Sc(){this.last_en_subshort=ra([4,9]);this.lastAttacks=Y(4);this.pefirbuf=H(19);this.longfact=H(d.SBMAX_l);this.shortfact=H(d.SBMAX_s);this.attackthre_s=this.attackthre=0}function ic(){this.l=H(d.SBMAX_l);this.s=ra([d.SBMAX_s,
+3]);var r=this;this.assign=function(k){K.arraycopy(k.l,0,r.l,0,d.SBMAX_l);for(var q=0;q<d.SBMAX_s;q++)for(var C=0;3>C;C++)r.s[q][C]=k.s[q][C]}}function da(){function r(){this.ptr=this.write_timing=0;this.buf=new Int8Array(40)}this.fill_buffer_resample_init=this.iteration_init_init=this.lame_encode_frame_init=this.Class_ID=0;this.mfbuf=ra([2,da.MFSIZE]);this.full_outer_loop=this.use_best_huffman=this.subblock_gain=this.noise_shaping_stop=this.psymodel=this.substep_shaping=this.noise_shaping_amp=this.noise_shaping=
+this.highpass2=this.highpass1=this.lowpass2=this.lowpass1=this.mode_ext=this.samplerate_index=this.bitrate_index=this.VBR_max_bitrate=this.VBR_min_bitrate=this.mf_size=this.mf_samples_to_encode=this.resample_ratio=this.channels_out=this.channels_in=this.mode_gr=0;this.l3_side=new Rc;this.ms_ratio=H(2);this.slot_lag=this.frac_SpF=this.padding=0;this.tag_spec=null;this.nMusicCRC=0;this.OldValue=Y(2);this.CurrentStep=Y(2);this.masking_lower=0;this.bv_scf=Y(576);this.pseudohalf=Y(na.SFBMAX);this.sfb21_extra=
+!1;this.inbuf_old=Array(2);this.blackfilt=Array(2*da.BPC+1);this.itime=new Float64Array(2);this.sideinfo_len=0;this.sb_sample=ra([2,2,18,d.SBLIMIT]);this.amp_filter=H(32);this.header=Array(da.MAX_HEADER_BUF);this.ResvMax=this.ResvSize=this.ancillary_flag=this.w_ptr=this.h_ptr=0;this.scalefac_band=new ha;this.minval_l=H(d.CBANDS);this.minval_s=H(d.CBANDS);this.nb_1=ra([4,d.CBANDS]);this.nb_2=ra([4,d.CBANDS]);this.nb_s1=ra([4,d.CBANDS]);this.nb_s2=ra([4,d.CBANDS]);this.s3_ll=this.s3_ss=null;this.decay=
+0;this.thm=Array(4);this.en=Array(4);this.tot_ener=H(4);this.loudness_sq=ra([2,2]);this.loudness_sq_save=H(2);this.mld_l=H(d.SBMAX_l);this.mld_s=H(d.SBMAX_s);this.bm_l=Y(d.SBMAX_l);this.bo_l=Y(d.SBMAX_l);this.bm_s=Y(d.SBMAX_s);this.bo_s=Y(d.SBMAX_s);this.npart_s=this.npart_l=0;this.s3ind=db([d.CBANDS,2]);this.s3ind_s=db([d.CBANDS,2]);this.numlines_s=Y(d.CBANDS);this.numlines_l=Y(d.CBANDS);this.rnumlines_l=H(d.CBANDS);this.mld_cb_l=H(d.CBANDS);this.mld_cb_s=H(d.CBANDS);this.numlines_l_num1=this.numlines_s_num1=
+0;this.pe=H(4);this.ms_ener_ratio_old=this.ms_ratio_l_old=this.ms_ratio_s_old=0;this.blocktype_old=Y(2);this.nsPsy=new Sc;this.VBR_seek_table=new Qc;this.PSY=this.ATH=null;this.nogap_current=this.nogap_total=0;this.findPeakSample=this.findReplayGain=this.decode_on_the_fly=!0;this.AudiophileGain=this.RadioGain=this.PeakSample=0;this.rgdata=null;this.noclipScale=this.noclipGainChange=0;this.bitrate_stereoMode_Hist=db([16,5]);this.bitrate_blockType_Hist=db([16,6]);this.hip=this.pinfo=null;this.in_buffer_nsamples=
+0;this.iteration_loop=this.in_buffer_1=this.in_buffer_0=null;for(var k=0;k<this.en.length;k++)this.en[k]=new ic;for(k=0;k<this.thm.length;k++)this.thm[k]=new ic;for(k=0;k<this.header.length;k++)this.header[k]=new r}function Tc(){function r(d,k,g){var b=0,l,a,h;g<<=1;var q=k+g;l=4;do{var e,n,c,f,B,z,w;w=l>>1;f=l;B=l<<1;z=B+f;l=B<<1;a=k;h=a+w;do{var A,v,p,m;v=d[a+0]-d[a+f];A=d[a+0]+d[a+f];m=d[a+B]-d[a+z];p=d[a+B]+d[a+z];d[a+B]=A-p;d[a+0]=A+p;d[a+z]=v-m;d[a+f]=v+m;v=d[h+0]-d[h+f];A=d[h+0]+d[h+f];m=X.SQRT2*
+d[h+z];p=X.SQRT2*d[h+B];d[h+B]=A-p;d[h+0]=A+p;d[h+z]=v-m;d[h+f]=v+m;h+=l;a+=l}while(a<q);n=C[b+0];e=C[b+1];for(c=1;c<w;c++){var x,y;x=1-2*e*e;y=2*e*n;a=k+c;h=k+f-c;do{var W,u,J,H,F;W=y*d[a+f]-x*d[h+f];p=x*d[a+f]+y*d[h+f];v=d[a+0]-p;A=d[a+0]+p;J=d[h+0]-W;u=d[h+0]+W;W=y*d[a+z]-x*d[h+z];p=x*d[a+z]+y*d[h+z];m=d[a+B]-p;p=d[a+B]+p;F=d[h+B]-W;H=d[h+B]+W;W=e*p-n*F;p=n*p+e*F;d[a+B]=A-p;d[a+0]=A+p;d[h+z]=J-W;d[h+f]=J+W;W=n*H-e*m;p=e*H+n*m;d[h+B]=u-p;d[h+0]=u+p;d[a+z]=v-W;d[a+f]=v+W;h+=l;a+=l}while(a<q);x=n;
+n=x*C[b+0]-e*C[b+1];e=x*C[b+1]+e*C[b+0]}b+=2}while(l<g)}var k=H(d.BLKSIZE),q=H(d.BLKSIZE_s/2),C=[.9238795325112867,.3826834323650898,.9951847266721969,.0980171403295606,.9996988186962042,.02454122852291229,.9999811752826011,.006135884649154475],B=[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,
+18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254];this.fft_short=function(k,C,g,b,l){for(k=0;3>k;k++){var a=d.BLKSIZE_s/2,h=65535&192*(k+1),D=d.BLKSIZE_s/8-1;do{var e,n,c,f,E,z=B[D<<2]&255;e=q[z]*b[g][l+z+h];E=q[127-z]*b[g][l+z+h+128];n=e-E;e+=E;c=q[z+64]*b[g][l+z+h+64];E=q[63-z]*b[g][l+z+h+192];f=c-E;c+=E;a-=4;C[k][a+0]=e+c;C[k][a+2]=e-c;C[k][a+
+1]=n+f;C[k][a+3]=n-f;e=q[z+1]*b[g][l+z+h+1];E=q[126-z]*b[g][l+z+h+129];n=e-E;e+=E;c=q[z+65]*b[g][l+z+h+65];E=q[62-z]*b[g][l+z+h+193];f=c-E;c+=E;C[k][a+d.BLKSIZE_s/2+0]=e+c;C[k][a+d.BLKSIZE_s/2+2]=e-c;C[k][a+d.BLKSIZE_s/2+1]=n+f;C[k][a+d.BLKSIZE_s/2+3]=n-f}while(0<=--D);r(C[k],a,d.BLKSIZE_s/2)}};this.fft_long=function(q,C,g,b,l){q=d.BLKSIZE/8-1;var a=d.BLKSIZE/2;do{var h,D,e,n,c,f=B[q]&255;h=k[f]*b[g][l+f];c=k[f+512]*b[g][l+f+512];D=h-c;h+=c;e=k[f+256]*b[g][l+f+256];c=k[f+768]*b[g][l+f+768];n=e-c;
+e+=c;a-=4;C[a+0]=h+e;C[a+2]=h-e;C[a+1]=D+n;C[a+3]=D-n;h=k[f+1]*b[g][l+f+1];c=k[f+513]*b[g][l+f+513];D=h-c;h+=c;e=k[f+257]*b[g][l+f+257];c=k[f+769]*b[g][l+f+769];n=e-c;e+=c;C[a+d.BLKSIZE/2+0]=h+e;C[a+d.BLKSIZE/2+2]=h-e;C[a+d.BLKSIZE/2+1]=D+n;C[a+d.BLKSIZE/2+3]=D-n}while(0<=--q);r(C,a,d.BLKSIZE/2)};this.init_fft=function(r){for(r=0;r<d.BLKSIZE;r++)k[r]=.42-.5*Math.cos(2*Math.PI*(r+.5)/d.BLKSIZE)+.08*Math.cos(4*Math.PI*(r+.5)/d.BLKSIZE);for(r=0;r<d.BLKSIZE_s/2;r++)q[r]=.5*(1-Math.cos(2*Math.PI*(r+.5)/
+d.BLKSIZE_s))}}function jc(){function r(a,c){for(var b=0,m=0;m<d.BLKSIZE/2;++m)b+=a[m]*c.ATH.eql_w[m];return b*=z}function k(a,d,c,b,g,f){var e;if(d>a)if(d<a*A)e=d/a;else return a+d;else{if(a>=d*A)return a+d;e=a/d}a+=d;if(6>=b+3){if(e>=w)return a;b=0|X.FAST_LOG10_X(e,16);return a*x[b]}b=0|X.FAST_LOG10_X(e,16);d=0!=f?g.ATH.cb_s[c]*g.ATH.adjust:g.ATH.cb_l[c]*g.ATH.adjust;return a<v*d?a>d?(c=1,13>=b&&(c=y[b]),d=X.FAST_LOG10_X(a/d,10/15),a*((m[b]-c)*d+c)):13<b?a:a*y[b]:a*m[b]}function q(a,d,c){var b;
+0>a&&(a=0);0>d&&(d=0);if(0>=a)return d;if(0>=d)return a;b=d>a?d/a:a/d;if(-2<=c&&2>=c){if(b>=w)return a+d;c=0|X.FAST_LOG10_X(b,16);return(a+d)*W[c]}if(b<A)return a+d;a<d&&(a=d);return a}function C(a,c,b,m,g){var f,e,k=0,h=0;for(f=e=0;f<d.SBMAX_s;++e,++f){for(var l=a.bo_s[f],n=a.npart_s,l=l<n?l:n;e<l;)k+=c[e],h+=b[e],e++;a.en[m].s[f][g]=k;a.thm[m].s[f][g]=h;if(e>=n){++f;break}h=a.PSY.bo_s_weight[f];n=1-h;k=h*c[e];h*=b[e];a.en[m].s[f][g]+=k;a.thm[m].s[f][g]+=h;k=n*c[e];h=n*b[e]}for(;f<d.SBMAX_s;++f)a.en[m].s[f][g]=
+0,a.thm[m].s[f][g]=0}function B(a,c,b,m){var g,f,e=0,k=0;for(g=f=0;g<d.SBMAX_l;++f,++g){for(var h=a.bo_l[g],l=a.npart_l,h=h<l?h:l;f<h;)e+=c[f],k+=b[f],f++;a.en[m].l[g]=e;a.thm[m].l[g]=k;if(f>=l){++g;break}k=a.PSY.bo_l_weight[g];l=1-k;e=k*c[f];k*=b[f];a.en[m].l[g]+=e;a.thm[m].l[g]+=k;e=l*c[f];k=l*b[f]}for(;g<d.SBMAX_l;++g)a.en[m].l[g]=0,a.thm[m].l[g]=0}function t(a,d,c){return 1<=c?a:0>=c?d:0<d?Math.pow(a/d,c)*d:0}function V(a,c){for(var b=309.07,m=0;m<d.SBMAX_s-1;m++)for(var g=0;3>g;g++){var f=a.thm.s[m][g];
+if(0<f){var f=f*c,e=a.en.s[m][g];e>f&&(b=e>1E10*f?b+23.02585092994046*u[m]:b+u[m]*X.FAST_LOG10(e/f))}}return b}function g(a,c){for(var b=281.0575,m=0;m<d.SBMAX_l-1;m++){var g=a.thm.l[m];if(0<g){var g=g*c,f=a.en.l[m];f>g&&(b=f>1E10*g?b+23.02585092994046*pa[m]:b+pa[m]*X.FAST_LOG10(f/g))}}return b}function b(a,d,c,b,m){var g,f;for(g=f=0;g<a.npart_l;++g){var e=0,k=0,h;for(h=0;h<a.numlines_l[g];++h,++f){var l=d[f],e=e+l;k<l&&(k=l)}c[g]=e;b[g]=k;m[g]=e*a.rnumlines_l[g]}}function l(a,d,c,b){var m=p.length-
+1,g=0,f=c[g]+c[g+1];if(0<f){var e=d[g];e<d[g+1]&&(e=d[g+1]);f=20*(2*e-f)/(f*(a.numlines_l[g]+a.numlines_l[g+1]-1));f|=0;f>m&&(f=m);b[g]=f}else b[g]=0;for(g=1;g<a.npart_l-1;g++)f=c[g-1]+c[g]+c[g+1],0<f?(e=d[g-1],e<d[g]&&(e=d[g]),e<d[g+1]&&(e=d[g+1]),f=20*(3*e-f)/(f*(a.numlines_l[g-1]+a.numlines_l[g]+a.numlines_l[g+1]-1)),f|=0,f>m&&(f=m),b[g]=f):b[g]=0;f=c[g-1]+c[g];0<f?(e=d[g-1],e<d[g]&&(e=d[g]),f=20*(2*e-f)/(f*(a.numlines_l[g-1]+a.numlines_l[g]-1)),f|=0,f>m&&(f=m),b[g]=f):b[g]=0}function a(a,d,c,
+b,m,g,f){var e=2*g;m=0<g?Math.pow(10,m):1;for(var k,h,l=0;l<f;++l){var n=a[2][l],p=a[3][l],y=d[0][l],q=d[1][l],u=d[2][l],x=d[3][l];y<=1.58*q&&q<=1.58*y?(k=c[l]*n,h=Math.max(u,Math.min(x,c[l]*p)),k=Math.max(x,Math.min(u,k))):(h=u,k=x);0<g&&(x=b[l]*m,y=Math.min(Math.max(y,x),Math.max(q,x)),u=Math.max(h,x),x=Math.max(k,x),q=u+x,0<q&&y*e<q&&(y=y*e/q,u*=y,x*=y),h=Math.min(u,h),k=Math.min(x,k));h>n&&(h=n);k>p&&(k=p);d[2][l]=h;d[3][l]=k}}function h(a,d){var c;c=0<=a?27*-a:a*d;return-72>=c?0:Math.exp(.2302585093*
+c)}function D(a){0>a&&(a=0);a*=.001;return 13*Math.atan(.76*a)+3.5*Math.atan(a*a/56.25)}function e(a,c,b,m,g,f,e,k,h,l,n,p){var y=H(d.CBANDS+1),q=k/(15<p?1152:384),u=Y(d.HBLKSIZE),x;k/=h;var r=0,v=0;for(x=0;x<d.CBANDS;x++){var t,w;t=D(k*r);y[x]=k*r;for(w=r;.34>D(k*w)-t&&w<=h/2;w++);a[x]=w-r;for(v=x+1;r<w;)u[r++]=x;if(r>h/2){r=h/2;++x;break}}y[x]=k*r;for(r=0;r<p;r++)x=l[r],t=l[r+1],x=0|Math.floor(.5+n*(x-.5)),0>x&&(x=0),w=0|Math.floor(.5+n*(t-.5)),w>h/2&&(w=h/2),b[r]=(u[x]+u[w])/2,c[r]=u[w],e[r]=(q*
+t-y[c[r]])/(y[c[r]+1]-y[c[r]]),0>e[r]?e[r]=0:1<e[r]&&(e[r]=1),t=D(k*l[r]*n),t=Math.min(t,15.5)/15.5,f[r]=Math.pow(10,1.25*(1-Math.cos(Math.PI*t))-2.5);for(c=r=0;c<v;c++)b=a[c],t=D(k*r),f=D(k*(r+b-1)),m[c]=.5*(t+f),t=D(k*(r-.5)),f=D(k*(r+b-.5)),g[c]=f-t,r+=b;return v}function n(a,c,b,m,g,f){var e=ra([d.CBANDS,d.CBANDS]),k=0;if(f)for(var l=0;l<c;l++)for(f=0;f<c;f++){var n;var y=n=void 0,y=n=void 0;n=b[l]-b[f];n=0<=n?3*n:1.5*n;.5<=n&&2.5>=n?(y=n-.5,y=8*(y*y-2*y)):y=0;n+=.474;n=15.811389+7.5*n-17.5*Math.sqrt(1+
+n*n);-60>=n?n=0:(n=Math.exp(.2302585093*(y+n)),n/=.6609193);y=n*m[f];e[l][f]=y*g[l]}else for(f=0;f<c;f++){n=15+Math.min(21/b[f],12);var p;var l=n,q=y=0;p=0;var u=q=void 0;for(p=0;1E-20<h(p,l);--p);q=p;for(u=0;1E-12<Math.abs(u-q);)p=(u+q)/2,0<h(p,l)?u=p:q=p;y=q;for(p=0;1E-20<h(p,l);p+=1);q=0;for(u=p;1E-12<Math.abs(u-q);)p=(u+q)/2,0<h(p,l)?q=p:u=p;for(var q=u,u=0,x=void 0,x=0;1E3>=x;++x)p=y+x*(q-y)/1E3,p=h(p,l),u+=p;p=1001/(u*(q-y));for(l=0;l<c;l++)y=p*h(b[l]-b[f],n)*m[f],e[l][f]=y*g[l]}for(l=0;l<c;l++){for(f=
+0;f<c&&!(0<e[l][f]);f++);a[l][0]=f;for(f=c-1;0<f&&!(0<e[l][f]);f--);a[l][1]=f;k+=a[l][1]-a[l][0]+1}b=H(k);for(l=m=0;l<c;l++)for(f=a[l][0];f<=a[l][1];f++)b[m++]=e[l][f];return b}function c(a){a=D(a);a=Math.min(a,15.5)/15.5;return Math.pow(10,1.25*(1-Math.cos(Math.PI*a))-2.5)}function f(a,c){-.3>a&&(a=3410);a=Math.max(.1,a/1E3);return 3.64*Math.pow(a,-.8)-6.8*Math.exp(-.6*Math.pow(a-3.4,2))+6*Math.exp(-.15*Math.pow(a-8.7,2))+.001*(.6+.04*c)*Math.pow(a,4)}var E=new Tc,z=1/217621504/(d.BLKSIZE/2),w,A,
+v,p=[1,.79433,.63096,.63096,.63096,.63096,.63096,.25119,.11749],m=[3.3246*3.3246,3.23837*3.23837,9.9500500969,9.0247369744,8.1854926609,7.0440875649,2.46209*2.46209,2.284*2.284,4.4892710641,1.96552*1.96552,1.82335*1.82335,1.69146*1.69146,2.4621061921,2.1508568964,1.37074*1.37074,1.31036*1.31036,1.5691069696,1.4555939904,1.16203*1.16203,1.2715945225,1.09428*1.09428,1.0659*1.0659,1.0779838276,1.0382591025,1],x=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,
+1.6999465924,1.22321*1.22321,1.3169398564,1],y=[5.5396212496,2.29259*2.29259,4.9868695969,2.12675*2.12675,2.02545*2.02545,1.87894*1.87894,1.74303*1.74303,1.61695*1.61695,2.2499700001,1.39148*1.39148,1.29083*1.29083,1.19746*1.19746,1.2339655056,1.0779838276],W=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],u=[11.8,13.6,17.2,32,46.5,51.3,57.5,67.1,71.5,84.6,97.6,130],pa=[6.8,5.8,5.8,6.4,6.5,9.9,12.1,14.4,15,18.9,
+21.6,26.9,34.2,40.2,46.8,56.5,60.7,73.9,85.7,93.4,126.1],la=[-1.730326E-17,-.01703172,-1.349528E-17,.0418072,-6.73278E-17,-.0876324,-3.0835E-17,.1863476,-1.104424E-16,-.627638];this.L3psycho_anal_ns=function(a,c,m,f,e,h,n,y,q,u){var x=a.internal_flags,v=ra([2,d.BLKSIZE]),w=ra([2,3,d.BLKSIZE_s]),F=H(d.CBANDS+1),z=H(d.CBANDS+1),A=H(d.CBANDS+2),W=Y(2),D=Y(2),pa,R,Fa,L,K,Z,Da,O,Q=ra([2,576]),P,da=Y(d.CBANDS+2),N=Y(d.CBANDS+2);Ia.fill(N,0);pa=x.channels_out;a.mode==ka.JOINT_STEREO&&(pa=4);P=a.VBR==M.vbr_off?
+0==x.ResvMax?0:x.ResvSize/x.ResvMax*.5:a.VBR==M.vbr_rh||a.VBR==M.vbr_mtrh||a.VBR==M.vbr_mt?.6:1;for(R=0;R<x.channels_out;R++){var ua=c[R],ma=m+576-350-21+192;for(L=0;576>L;L++){var Ga,Sa;Ga=ua[ma+L+10];for(K=Sa=0;9>K;K+=2)Ga+=la[K]*(ua[ma+L+K]+ua[ma+L+21-K]),Sa+=la[K+1]*(ua[ma+L+K+1]+ua[ma+L+21-K-1]);Q[R][L]=Ga+Sa}e[f][R].en.assign(x.en[R]);e[f][R].thm.assign(x.thm[R]);2<pa&&(h[f][R].en.assign(x.en[R+2]),h[f][R].thm.assign(x.thm[R+2]))}for(R=0;R<pa;R++){var ea=H(12),Oa=[0,0,0,0],kc=H(12),na=1,Ca,
+ha=H(d.CBANDS),Qa=H(d.CBANDS),va=[0,0,0,0],db=H(d.HBLKSIZE),fb=ra([3,d.HBLKSIZE_s]);for(L=0;3>L;L++)ea[L]=x.nsPsy.last_en_subshort[R][L+6],kc[L]=ea[L]/x.nsPsy.last_en_subshort[R][L+4],Oa[0]+=ea[L];if(2==R)for(L=0;576>L;L++){var eb,Gb;eb=Q[0][L];Gb=Q[1][L];Q[0][L]=eb+Gb;Q[1][L]=eb-Gb}var vb=Q[R&1],Hb=0;for(L=0;9>L;L++){for(var tb=Hb+64,Ta=1;Hb<tb;Hb++)Ta<Math.abs(vb[Hb])&&(Ta=Math.abs(vb[Hb]));x.nsPsy.last_en_subshort[R][L]=ea[L+3]=Ta;Oa[1+L/3]+=Ta;Ta=Ta>ea[L+3-2]?Ta/ea[L+3-2]:ea[L+3-2]>10*Ta?ea[L+
+3-2]/(10*Ta):0;kc[L+3]=Ta}if(a.analysis){var Pb=kc[0];for(L=1;12>L;L++)Pb<kc[L]&&(Pb=kc[L]);x.pinfo.ers[f][R]=x.pinfo.ers_save[R];x.pinfo.ers_save[R]=Pb}Ca=3==R?x.nsPsy.attackthre_s:x.nsPsy.attackthre;for(L=0;12>L;L++)0==va[L/3]&&kc[L]>Ca&&(va[L/3]=L%3+1);for(L=1;4>L;L++)1.7>(Oa[L-1]>Oa[L]?Oa[L-1]/Oa[L]:Oa[L]/Oa[L-1])&&(va[L]=0,1==L&&(va[0]=0));0!=va[0]&&0!=x.nsPsy.lastAttacks[R]&&(va[0]=0);if(3==x.nsPsy.lastAttacks[R]||0!=va[0]+va[1]+va[2]+va[3])na=0,0!=va[1]&&0!=va[0]&&(va[1]=0),0!=va[2]&&0!=va[1]&&
+(va[2]=0),0!=va[3]&&0!=va[2]&&(va[3]=0);2>R?D[R]=na:0==na&&(D[0]=D[1]=0);q[R]=x.tot_ener[R];var S=a,Pa=db,Qb=fb,Ua=v,wb=R&1,Ya=w,Va=R&1,mb=f,Ja=R,za=c,ub=m,$a=S.internal_flags;if(2>Ja)E.fft_long($a,Ua[wb],Ja,za,ub),E.fft_short($a,Ya[Va],Ja,za,ub);else if(2==Ja){for(var fa=d.BLKSIZE-1;0<=fa;--fa){var Rb=Ua[wb+0][fa],Ib=Ua[wb+1][fa];Ua[wb+0][fa]=(Rb+Ib)*X.SQRT2*.5;Ua[wb+1][fa]=(Rb-Ib)*X.SQRT2*.5}for(var Ka=2;0<=Ka;--Ka)for(fa=d.BLKSIZE_s-1;0<=fa;--fa)Rb=Ya[Va+0][Ka][fa],Ib=Ya[Va+1][Ka][fa],Ya[Va+0][Ka][fa]=
+(Rb+Ib)*X.SQRT2*.5,Ya[Va+1][Ka][fa]=(Rb-Ib)*X.SQRT2*.5}Pa[0]=Ua[wb+0][0];Pa[0]*=Pa[0];for(fa=d.BLKSIZE/2-1;0<=fa;--fa){var ac=Ua[wb+0][d.BLKSIZE/2-fa],Bb=Ua[wb+0][d.BLKSIZE/2+fa];Pa[d.BLKSIZE/2-fa]=.5*(ac*ac+Bb*Bb)}for(Ka=2;0<=Ka;--Ka)for(Qb[Ka][0]=Ya[Va+0][Ka][0],Qb[Ka][0]*=Qb[Ka][0],fa=d.BLKSIZE_s/2-1;0<=fa;--fa)ac=Ya[Va+0][Ka][d.BLKSIZE_s/2-fa],Bb=Ya[Va+0][Ka][d.BLKSIZE_s/2+fa],Qb[Ka][d.BLKSIZE_s/2-fa]=.5*(ac*ac+Bb*Bb);for(var Ea=0,fa=11;fa<d.HBLKSIZE;fa++)Ea+=Pa[fa];$a.tot_ener[Ja]=Ea;if(S.analysis){for(fa=
+0;fa<d.HBLKSIZE;fa++)$a.pinfo.energy[mb][Ja][fa]=$a.pinfo.energy_save[Ja][fa],$a.pinfo.energy_save[Ja][fa]=Pa[fa];$a.pinfo.pe[mb][Ja]=$a.pe[Ja]}2==S.athaa_loudapprox&&2>Ja&&($a.loudness_sq[mb][Ja]=$a.loudness_sq_save[Ja],$a.loudness_sq_save[Ja]=r(Pa,$a));b(x,db,F,ha,Qa);l(x,ha,Qa,da);for(O=0;3>O;O++){for(var qc,Ba,gb=fb,hb=z,Sb=A,Jb=R,bc=O,aa=a.internal_flags,nb=void 0,oa=void 0,oa=nb=0;oa<aa.npart_s;++oa){for(var ab=0,lc=0,Ab=aa.numlines_s[oa],ib=0;ib<Ab;++ib,++nb){var rc=gb[bc][nb],ab=ab+rc;lc<
+rc&&(lc=rc)}hb[oa]=ab}for(nb=oa=0;oa<aa.npart_s;oa++){var ob=aa.s3ind_s[oa][0],Cb=aa.s3_ss[nb++]*hb[ob];for(++ob;ob<=aa.s3ind_s[oa][1];)Cb+=aa.s3_ss[nb]*hb[ob],++nb,++ob;var Tb=2*aa.nb_s1[Jb][oa];Sb[oa]=Math.min(Cb,Tb);aa.blocktype_old[Jb&1]==d.SHORT_TYPE&&(Tb=16*aa.nb_s2[Jb][oa],Sb[oa]=Math.min(Tb,Sb[oa]));aa.nb_s2[Jb][oa]=aa.nb_s1[Jb][oa];aa.nb_s1[Jb][oa]=Cb}for(;oa<=d.CBANDS;++oa)hb[oa]=0,Sb[oa]=0;C(x,z,A,R,O);for(Da=0;Da<d.SBMAX_s;Da++){Ba=x.thm[R].s[Da][O];Ba*=.8;if(2<=va[O]||1==va[O+1]){var Kb=
+0!=O?O-1:2,Ta=t(x.thm[R].s[Da][Kb],Ba,.6*P);Ba=Math.min(Ba,Ta)}if(1==va[O])Kb=0!=O?O-1:2,Ta=t(x.thm[R].s[Da][Kb],Ba,.3*P),Ba=Math.min(Ba,Ta);else if(0!=O&&3==va[O-1]||0==O&&3==x.nsPsy.lastAttacks[R])Kb=2!=O?O+1:0,Ta=t(x.thm[R].s[Da][Kb],Ba,.3*P),Ba=Math.min(Ba,Ta);qc=ea[3*O+3]+ea[3*O+4]+ea[3*O+5];6*ea[3*O+5]<qc&&(Ba*=.5,6*ea[3*O+4]<qc&&(Ba*=.5));x.thm[R].s[Da][O]=Ba}}x.nsPsy.lastAttacks[R]=va[2];for(Fa=Z=0;Fa<x.npart_l;Fa++){for(var pb=x.s3ind[Fa][0],Ub=F[pb]*p[da[pb]],qb=x.s3_ll[Z++]*Ub;++pb<=x.s3ind[Fa][1];)Ub=
+F[pb]*p[da[pb]],qb=k(qb,x.s3_ll[Z++]*Ub,pb,pb-Fa,x,0);qb*=.158489319246111;A[Fa]=x.blocktype_old[R&1]==d.SHORT_TYPE?qb:t(Math.min(qb,Math.min(2*x.nb_1[R][Fa],16*x.nb_2[R][Fa])),qb,P);x.nb_2[R][Fa]=x.nb_1[R][Fa];x.nb_1[R][Fa]=qb}for(;Fa<=d.CBANDS;++Fa)F[Fa]=0,A[Fa]=0;B(x,F,A,R)}if((a.mode==ka.STEREO||a.mode==ka.JOINT_STEREO)&&0<a.interChRatio){var Db=a.interChRatio,ba=a.internal_flags;if(1<ba.channels_out){for(var La=0;La<d.SBMAX_l;La++){var cc=ba.thm[0].l[La],Lb=ba.thm[1].l[La];ba.thm[0].l[La]+=Lb*
+Db;ba.thm[1].l[La]+=cc*Db}for(La=0;La<d.SBMAX_s;La++)for(var rb=0;3>rb;rb++)cc=ba.thm[0].s[La][rb],Lb=ba.thm[1].s[La][rb],ba.thm[0].s[La][rb]+=Lb*Db,ba.thm[1].s[La][rb]+=cc*Db}}if(a.mode==ka.JOINT_STEREO){for(var Wa,ga=0;ga<d.SBMAX_l;ga++)if(!(x.thm[0].l[ga]>1.58*x.thm[1].l[ga]||x.thm[1].l[ga]>1.58*x.thm[0].l[ga])){var Za=x.mld_l[ga]*x.en[3].l[ga],sb=Math.max(x.thm[2].l[ga],Math.min(x.thm[3].l[ga],Za)),Za=x.mld_l[ga]*x.en[2].l[ga],sc=Math.max(x.thm[3].l[ga],Math.min(x.thm[2].l[ga],Za));x.thm[2].l[ga]=
+sb;x.thm[3].l[ga]=sc}for(ga=0;ga<d.SBMAX_s;ga++)for(var wa=0;3>wa;wa++)x.thm[0].s[ga][wa]>1.58*x.thm[1].s[ga][wa]||x.thm[1].s[ga][wa]>1.58*x.thm[0].s[ga][wa]||(Za=x.mld_s[ga]*x.en[3].s[ga][wa],sb=Math.max(x.thm[2].s[ga][wa],Math.min(x.thm[3].s[ga][wa],Za)),Za=x.mld_s[ga]*x.en[2].s[ga][wa],sc=Math.max(x.thm[3].s[ga][wa],Math.min(x.thm[2].s[ga][wa],Za)),x.thm[2].s[ga][wa]=sb,x.thm[3].s[ga][wa]=sc);Wa=a.msfix;if(0<Math.abs(Wa)){for(var Mb=Wa,mc=Mb,dc=Math.pow(10,a.ATHlower*x.ATH.adjust),Mb=2*Mb,mc=2*
+mc,Aa=0;Aa<d.SBMAX_l;Aa++){var Vb,Ra,Ha,bb;bb=x.ATH.cb_l[x.bm_l[Aa]]*dc;Vb=Math.min(Math.max(x.thm[0].l[Aa],bb),Math.max(x.thm[1].l[Aa],bb));Ra=Math.max(x.thm[2].l[Aa],bb);Ha=Math.max(x.thm[3].l[Aa],bb);if(Vb*Mb<Ra+Ha){var ec=Vb*mc/(Ra+Ha);Ra*=ec;Ha*=ec}x.thm[2].l[Aa]=Math.min(Ra,x.thm[2].l[Aa]);x.thm[3].l[Aa]=Math.min(Ha,x.thm[3].l[Aa])}dc*=d.BLKSIZE_s/d.BLKSIZE;for(Aa=0;Aa<d.SBMAX_s;Aa++)for(var xa=0;3>xa;xa++)bb=x.ATH.cb_s[x.bm_s[Aa]]*dc,Vb=Math.min(Math.max(x.thm[0].s[Aa][xa],bb),Math.max(x.thm[1].s[Aa][xa],
+bb)),Ra=Math.max(x.thm[2].s[Aa][xa],bb),Ha=Math.max(x.thm[3].s[Aa][xa],bb),Vb*Mb<Ra+Ha&&(ec=Vb*Mb/(Ra+Ha),Ra*=ec,Ha*=ec),x.thm[2].s[Aa][xa]=Math.min(x.thm[2].s[Aa][xa],Ra),x.thm[3].s[Aa][xa]=Math.min(x.thm[3].s[Aa][xa],Ha)}}var jb=a.internal_flags;a.short_blocks!=sa.short_block_coupled||0!=D[0]&&0!=D[1]||(D[0]=D[1]=0);for(var Na=0;Na<jb.channels_out;Na++)W[Na]=d.NORM_TYPE,a.short_blocks==sa.short_block_dispensed&&(D[Na]=1),a.short_blocks==sa.short_block_forced&&(D[Na]=0),0!=D[Na]?jb.blocktype_old[Na]==
+d.SHORT_TYPE&&(W[Na]=d.STOP_TYPE):(W[Na]=d.SHORT_TYPE,jb.blocktype_old[Na]==d.NORM_TYPE&&(jb.blocktype_old[Na]=d.START_TYPE),jb.blocktype_old[Na]==d.STOP_TYPE&&(jb.blocktype_old[Na]=d.SHORT_TYPE)),u[Na]=jb.blocktype_old[Na],jb.blocktype_old[Na]=W[Na];for(R=0;R<pa;R++){var Wb,kb=0,ca,Eb;if(1<R){Wb=y;kb=-2;ca=d.NORM_TYPE;if(u[0]==d.SHORT_TYPE||u[1]==d.SHORT_TYPE)ca=d.SHORT_TYPE;Eb=h[f][R-2]}else Wb=n,kb=0,ca=u[R],Eb=e[f][R];Wb[kb+R]=ca==d.SHORT_TYPE?V(Eb,x.masking_lower):g(Eb,x.masking_lower);a.analysis&&
+(x.pinfo.pe[f][R]=Wb[kb+R])}return 0};var F=[-1.730326E-17,-.01703172,-1.349528E-17,.0418072,-6.73278E-17,-.0876324,-3.0835E-17,.1863476,-1.104424E-16,-.627638];this.L3psycho_anal_vbr=function(c,m,f,e,k,h,n,x,y,u){for(var v=c.internal_flags,w,z,A=H(d.HBLKSIZE),W=ra([3,d.HBLKSIZE_s]),D=ra([2,d.BLKSIZE]),M=ra([2,3,d.BLKSIZE_s]),la=ra([4,d.CBANDS]),O=ra([4,d.CBANDS]),R=ra([4,3]),K=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],L=Y(2),pa=c.mode==ka.JOINT_STEREO?4:v.channels_out,Z=ra([2,576]),Q=c.internal_flags,
+da=Q.channels_out,ua=c.mode==ka.JOINT_STEREO?4:da,P=0;P<da;P++){firbuf=m[P];for(var ma=f+576-350-21+192,N=0;576>N;N++){var na,Ca;na=firbuf[ma+N+10];for(var Ga=Ca=0;9>Ga;Ga+=2)na+=F[Ga]*(firbuf[ma+N+Ga]+firbuf[ma+N+21-Ga]),Ca+=F[Ga+1]*(firbuf[ma+N+Ga+1]+firbuf[ma+N+21-Ga-1]);Z[P][N]=na+Ca}k[e][P].en.assign(Q.en[P]);k[e][P].thm.assign(Q.thm[P]);2<ua&&(h[e][P].en.assign(Q.en[P+2]),h[e][P].thm.assign(Q.thm[P+2]))}for(P=0;P<ua;P++){var Sa=H(12),ea=H(12),Oa=[0,0,0,0],Ia=Z[P&1],ha=0,eb=3==P?Q.nsPsy.attackthre_s:
+Q.nsPsy.attackthre,Qa=1;if(2==P)for(N=0,Ga=576;0<Ga;++N,--Ga){var db=Z[0][N],va=Z[1][N];Z[0][N]=db+va;Z[1][N]=db-va}for(N=0;3>N;N++)ea[N]=Q.nsPsy.last_en_subshort[P][N+6],Sa[N]=ea[N]/Q.nsPsy.last_en_subshort[P][N+4],Oa[0]+=ea[N];for(N=0;9>N;N++){for(var vb=ha+64,fb=1;ha<vb;ha++)fb<Math.abs(Ia[ha])&&(fb=Math.abs(Ia[ha]));Q.nsPsy.last_en_subshort[P][N]=ea[N+3]=fb;Oa[1+N/3]+=fb;fb=fb>ea[N+3-2]?fb/ea[N+3-2]:ea[N+3-2]>10*fb?ea[N+3-2]/(10*fb):0;Sa[N+3]=fb}for(N=0;3>N;++N){var ub=ea[3*N+3]+ea[3*N+4]+ea[3*
+N+5],Gb=1;6*ea[3*N+5]<ub&&(Gb*=.5,6*ea[3*N+4]<ub&&(Gb*=.5));R[P][N]=Gb}if(c.analysis){for(var tb=Sa[0],N=1;12>N;N++)tb<Sa[N]&&(tb=Sa[N]);Q.pinfo.ers[e][P]=Q.pinfo.ers_save[P];Q.pinfo.ers_save[P]=tb}for(N=0;12>N;N++)0==K[P][N/3]&&Sa[N]>eb&&(K[P][N/3]=N%3+1);for(N=1;4>N;N++){var Hb=Oa[N-1],Ab=Oa[N];4E4>Math.max(Hb,Ab)&&Hb<1.7*Ab&&Ab<1.7*Hb&&(1==N&&K[P][0]<=K[P][N]&&(K[P][0]=0),K[P][N]=0)}K[P][0]<=Q.nsPsy.lastAttacks[P]&&(K[P][0]=0);if(3==Q.nsPsy.lastAttacks[P]||0!=K[P][0]+K[P][1]+K[P][2]+K[P][3])Qa=
+0,0!=K[P][1]&&0!=K[P][0]&&(K[P][1]=0),0!=K[P][2]&&0!=K[P][1]&&(K[P][2]=0),0!=K[P][3]&&0!=K[P][2]&&(K[P][3]=0);2>P?L[P]=Qa:0==Qa&&(L[0]=L[1]=0);y[P]=Q.tot_ener[P]}var Ta=c.internal_flags;c.short_blocks!=sa.short_block_coupled||0!=L[0]&&0!=L[1]||(L[0]=L[1]=0);for(var Pb=0;Pb<Ta.channels_out;Pb++)c.short_blocks==sa.short_block_dispensed&&(L[Pb]=1),c.short_blocks==sa.short_block_forced&&(L[Pb]=0);for(var S=0;S<pa;S++){var Pa=S&1;w=D;var Qb=c,Ua=S,wb=e,Ya=A,Va=w,mb=Pa,Ja=Qb.internal_flags;if(2>Ua)E.fft_long(Ja,
+Va[mb],Ua,m,f);else if(2==Ua)for(var za=d.BLKSIZE-1;0<=za;--za){var $b=Va[mb+0][za],$a=Va[mb+1][za];Va[mb+0][za]=($b+$a)*X.SQRT2*.5;Va[mb+1][za]=($b-$a)*X.SQRT2*.5}Ya[0]=Va[mb+0][0];Ya[0]*=Ya[0];for(za=d.BLKSIZE/2-1;0<=za;--za){var fa=Va[mb+0][d.BLKSIZE/2-za],Rb=Va[mb+0][d.BLKSIZE/2+za];Ya[d.BLKSIZE/2-za]=.5*(fa*fa+Rb*Rb)}for(var Ib=0,za=11;za<d.HBLKSIZE;za++)Ib+=Ya[za];Ja.tot_ener[Ua]=Ib;if(Qb.analysis){for(za=0;za<d.HBLKSIZE;za++)Ja.pinfo.energy[wb][Ua][za]=Ja.pinfo.energy_save[Ua][za],Ja.pinfo.energy_save[Ua][za]=
+Ya[za];Ja.pinfo.pe[wb][Ua]=Ja.pe[Ua]}var Ka=S,ac=A,Bb=c.internal_flags;2==c.athaa_loudapprox&&2>Ka&&(Bb.loudness_sq[e][Ka]=Bb.loudness_sq_save[Ka],Bb.loudness_sq_save[Ka]=r(ac,Bb));if(0!=L[Pa]){var Ea=v,qc=A,Ba=la[S],gb=O[S],hb=S,Sb=H(d.CBANDS),Jb=H(d.CBANDS),bc=Y(d.CBANDS+2),aa=void 0;b(Ea,qc,Ba,Sb,Jb);l(Ea,Sb,Jb,bc);for(var nb=0,aa=0;aa<Ea.npart_l;aa++){var oa,ab,lc,ic,ib=Ea.s3ind[aa][0],rc=Ea.s3ind[aa][1],ob=0,Cb=0,ob=bc[ib],Cb=Cb+1;ab=Ea.s3_ll[nb]*Ba[ib]*p[bc[ib]];++nb;for(++ib;ib<=rc;)ob+=bc[ib],
+Cb+=1,oa=Ea.s3_ll[nb]*Ba[ib]*p[bc[ib]],ab=ic=q(ab,oa,ib-aa),++nb,++ib;ob=(1+2*ob)/(2*Cb);lc=.5*p[ob];ab*=lc;if(Ea.blocktype_old[hb&1]==d.SHORT_TYPE){var Tb=2*Ea.nb_1[hb][aa];gb[aa]=0<Tb?Math.min(ab,Tb):Math.min(ab,.3*Ba[aa])}else{var Kb=16*Ea.nb_2[hb][aa],pb=2*Ea.nb_1[hb][aa];0>=Kb&&(Kb=ab);0>=pb&&(pb=ab);Tb=Ea.blocktype_old[hb&1]==d.NORM_TYPE?Math.min(pb,Kb):pb;gb[aa]=Math.min(ab,Tb)}Ea.nb_2[hb][aa]=Ea.nb_1[hb][aa];Ea.nb_1[hb][aa]=ab;oa=Sb[aa];oa*=Ea.minval_l[aa];oa*=lc;gb[aa]>oa&&(gb[aa]=oa);1<
+Ea.masking_lower&&(gb[aa]*=Ea.masking_lower);gb[aa]>Ba[aa]&&(gb[aa]=Ba[aa]);1>Ea.masking_lower&&(gb[aa]*=Ea.masking_lower)}for(;aa<d.CBANDS;++aa)Ba[aa]=0,gb[aa]=0}else for(var Ub=v,qb=S,Db=0;Db<Ub.npart_l;Db++)Ub.nb_2[qb][Db]=Ub.nb_1[qb][Db],Ub.nb_1[qb][Db]=0}2==L[0]+L[1]&&c.mode==ka.JOINT_STEREO&&a(la,O,v.mld_cb_l,v.ATH.cb_l,c.ATHlower*v.ATH.adjust,c.msfix,v.npart_l);for(S=0;S<pa;S++)Pa=S&1,0!=L[Pa]&&B(v,la[S],O[S],S);for(var ba=0;3>ba;ba++){for(S=0;S<pa;++S)if(Pa=S&1,0!=L[Pa]){var La=v,cc=S;if(0==
+ba)for(var Lb=0;Lb<La.npart_s;Lb++)La.nb_s2[cc][Lb]=La.nb_s1[cc][Lb],La.nb_s1[cc][Lb]=0}else{z=M;var rb=S,Wa=ba,ga=W,Za=z,sb=Pa,sc=c.internal_flags;0==Wa&&2>rb&&E.fft_short(sc,Za[sb],rb,m,f);if(2==rb)for(var wa=d.BLKSIZE_s-1;0<=wa;--wa){var Mb=Za[sb+0][Wa][wa],mc=Za[sb+1][Wa][wa];Za[sb+0][Wa][wa]=(Mb+mc)*X.SQRT2*.5;Za[sb+1][Wa][wa]=(Mb-mc)*X.SQRT2*.5}ga[Wa][0]=Za[sb+0][Wa][0];ga[Wa][0]*=ga[Wa][0];for(wa=d.BLKSIZE_s/2-1;0<=wa;--wa){var dc=Za[sb+0][Wa][d.BLKSIZE_s/2-wa],Aa=Za[sb+0][Wa][d.BLKSIZE_s/
+2+wa];ga[Wa][d.BLKSIZE_s/2-wa]=.5*(dc*dc+Aa*Aa)}for(var Vb=W,Ra=la[S],Ha=O[S],bb=S,ec=ba,xa=c.internal_flags,jb=new float[d.CBANDS],Na=H(d.CBANDS),Wb=void 0,kb=void 0,ca=void 0,Eb=new int[d.CBANDS],ca=kb=0;ca<xa.npart_s;++ca){for(var Ob=0,Zb=0,jc=xa.numlines_s[ca],Wb=0;Wb<jc;++Wb,++kb){var Bc=Vb[ec][kb],Ob=Ob+Bc;Zb<Bc&&(Zb=Bc)}Ra[ca]=Ob;jb[ca]=Zb;Na[ca]=Ob/jc}for(;ca<d.CBANDS;++ca)jb[ca]=0,Na[ca]=0;var Xb=xa,xb=jb,fc=Na,nc=Eb,oc=p.length-1,ja=0,Xa=fc[ja]+fc[ja+1];if(0<Xa){var lb=xb[ja];lb<xb[ja+1]&&
+(lb=xb[ja+1]);var Xa=20*(2*lb-Xa)/(Xa*(Xb.numlines_s[ja]+Xb.numlines_s[ja+1]-1)),yb=0|Xa;yb>oc&&(yb=oc);nc[ja]=yb}else nc[ja]=0;for(ja=1;ja<Xb.npart_s-1;ja++)Xa=fc[ja-1]+fc[ja]+fc[ja+1],0<Xa?(lb=xb[ja-1],lb<xb[ja]&&(lb=xb[ja]),lb<xb[ja+1]&&(lb=xb[ja+1]),Xa=20*(3*lb-Xa)/(Xa*(Xb.numlines_s[ja-1]+Xb.numlines_s[ja]+Xb.numlines_s[ja+1]-1)),yb=0|Xa,yb>oc&&(yb=oc),nc[ja]=yb):nc[ja]=0;Xa=fc[ja-1]+fc[ja];0<Xa?(lb=xb[ja-1],lb<xb[ja]&&(lb=xb[ja]),Xa=20*(2*lb-Xa)/(Xa*(Xb.numlines_s[ja-1]+Xb.numlines_s[ja]-1)),
+yb=0|Xa,yb>oc&&(yb=oc),nc[ja]=yb):nc[ja]=0;for(kb=ca=0;ca<xa.npart_s;ca++){var Fb=xa.s3ind_s[ca][0],vc=xa.s3ind_s[ca][1],pc,wc,Nb,gc,Cc;pc=Eb[Fb];wc=1;gc=xa.s3_ss[kb]*Ra[Fb]*p[Eb[Fb]];++kb;for(++Fb;Fb<=vc;)pc+=Eb[Fb],wc+=1,Nb=xa.s3_ss[kb]*Ra[Fb]*p[Eb[Fb]],gc=q(gc,Nb,Fb-ca),++kb,++Fb;pc=(1+2*pc)/(2*wc);Cc=.5*p[pc];gc*=Cc;Ha[ca]=gc;xa.nb_s2[bb][ca]=xa.nb_s1[bb][ca];xa.nb_s1[bb][ca]=gc;Nb=jb[ca];Nb*=xa.minval_s[ca];Nb*=Cc;Ha[ca]>Nb&&(Ha[ca]=Nb);1<xa.masking_lower&&(Ha[ca]*=xa.masking_lower);Ha[ca]>Ra[ca]&&
+(Ha[ca]=Ra[ca]);1>xa.masking_lower&&(Ha[ca]*=xa.masking_lower)}for(;ca<d.CBANDS;++ca)Ra[ca]=0,Ha[ca]=0}0==L[0]+L[1]&&c.mode==ka.JOINT_STEREO&&a(la,O,v.mld_cb_s,v.ATH.cb_s,c.ATHlower*v.ATH.adjust,c.msfix,v.npart_s);for(S=0;S<pa;++S)Pa=S&1,0==L[Pa]&&C(v,la[S],O[S],S,ba)}for(S=0;S<pa;S++)if(Pa=S&1,0==L[Pa])for(var hc=0;hc<d.SBMAX_s;hc++){for(var Ec=H(3),ba=0;3>ba;ba++){var cb=v.thm[S].s[hc][ba],cb=.8*cb;if(2<=K[S][ba]||1==K[S][ba+1])var tc=0!=ba?ba-1:2,uc=t(v.thm[S].s[hc][tc],cb,.36),cb=Math.min(cb,
+uc);else if(1==K[S][ba])tc=0!=ba?ba-1:2,uc=t(v.thm[S].s[hc][tc],cb,.18),cb=Math.min(cb,uc);else if(0!=ba&&3==K[S][ba-1]||0==ba&&3==v.nsPsy.lastAttacks[S])tc=2!=ba?ba+1:0,uc=t(v.thm[S].s[hc][tc],cb,.18),cb=Math.min(cb,uc);cb*=R[S][ba];Ec[ba]=cb}for(ba=0;3>ba;ba++)v.thm[S].s[hc][ba]=Ec[ba]}for(S=0;S<pa;S++)v.nsPsy.lastAttacks[S]=K[S][2];for(var Yb=c.internal_flags,zb=0;zb<Yb.channels_out;zb++){var Dc=d.NORM_TYPE;0!=L[zb]?Yb.blocktype_old[zb]==d.SHORT_TYPE&&(Dc=d.STOP_TYPE):(Dc=d.SHORT_TYPE,Yb.blocktype_old[zb]==
+d.NORM_TYPE&&(Yb.blocktype_old[zb]=d.START_TYPE),Yb.blocktype_old[zb]==d.STOP_TYPE&&(Yb.blocktype_old[zb]=d.SHORT_TYPE));u[zb]=Yb.blocktype_old[zb];Yb.blocktype_old[zb]=Dc}for(S=0;S<pa;S++){var xc,yc,zc,Ac;if(1<S){xc=x;yc=-2;zc=d.NORM_TYPE;if(u[0]==d.SHORT_TYPE||u[1]==d.SHORT_TYPE)zc=d.SHORT_TYPE;Ac=h[e][S-2]}else xc=n,yc=0,zc=u[S],Ac=k[e][S];xc[yc+S]=zc==d.SHORT_TYPE?V(Ac,v.masking_lower):g(Ac,v.masking_lower);c.analysis&&(v.pinfo.pe[e][S]=xc[yc+S])}return 0};this.psymodel_init=function(a){var b=
+a.internal_flags,m,f=!0,g=13,k=0,h=0,l=-8.25,p=-4.5,x=H(d.CBANDS),y=H(d.CBANDS),q=H(d.CBANDS),u=a.out_samplerate;switch(a.experimentalZ){default:case 0:f=!0;break;case 1:f=a.VBR==M.vbr_mtrh||a.VBR==M.vbr_mt?!1:!0;break;case 2:f=!1;break;case 3:g=8,k=-1.75,h=-.0125,l=-8.25,p=-2.25}b.ms_ener_ratio_old=.25;b.blocktype_old[0]=b.blocktype_old[1]=d.NORM_TYPE;for(m=0;4>m;++m){for(var r=0;r<d.CBANDS;++r)b.nb_1[m][r]=1E20,b.nb_2[m][r]=1E20,b.nb_s1[m][r]=b.nb_s2[m][r]=1;for(var t=0;t<d.SBMAX_l;t++)b.en[m].l[t]=
+1E20,b.thm[m].l[t]=1E20;for(r=0;3>r;++r){for(t=0;t<d.SBMAX_s;t++)b.en[m].s[t][r]=1E20,b.thm[m].s[t][r]=1E20;b.nsPsy.lastAttacks[m]=0}for(r=0;9>r;r++)b.nsPsy.last_en_subshort[m][r]=10}b.loudness_sq_save[0]=b.loudness_sq_save[1]=0;b.npart_l=e(b.numlines_l,b.bo_l,b.bm_l,x,y,b.mld_l,b.PSY.bo_l_weight,u,d.BLKSIZE,b.scalefac_band.l,d.BLKSIZE/1152,d.SBMAX_l);for(m=0;m<b.npart_l;m++)t=k,x[m]>=g&&(t=h*(x[m]-g)/(24-g)+k*(24-x[m])/(24-g)),q[m]=Math.pow(10,t/10),b.rnumlines_l[m]=0<b.numlines_l[m]?1/b.numlines_l[m]:
+0;b.s3_ll=n(b.s3ind,b.npart_l,x,y,q,f);for(m=r=0;m<b.npart_l;m++){h=vb.MAX_VALUE;for(t=0;t<b.numlines_l[m];t++,r++)k=u*r/(1E3*d.BLKSIZE),k=this.ATHformula(1E3*k,a)-20,k=Math.pow(10,.1*k),k*=b.numlines_l[m],h>k&&(h=k);b.ATH.cb_l[m]=h;h=-20+20*x[m]/10;6<h&&(h=100);-15>h&&(h=-15);h-=8;b.minval_l[m]=Math.pow(10,h/10)*b.numlines_l[m]}b.npart_s=e(b.numlines_s,b.bo_s,b.bm_s,x,y,b.mld_s,b.PSY.bo_s_weight,u,d.BLKSIZE_s,b.scalefac_band.s,d.BLKSIZE_s/384,d.SBMAX_s);for(m=r=0;m<b.npart_s;m++){t=l;x[m]>=g&&(t=
+p*(x[m]-g)/(24-g)+l*(24-x[m])/(24-g));q[m]=Math.pow(10,t/10);h=vb.MAX_VALUE;for(t=0;t<b.numlines_s[m];t++,r++)k=u*r/(1E3*d.BLKSIZE_s),k=this.ATHformula(1E3*k,a)-20,k=Math.pow(10,.1*k),k*=b.numlines_s[m],h>k&&(h=k);b.ATH.cb_s[m]=h;h=-7+7*x[m]/12;12<x[m]&&(h*=1+3.1*Math.log(1+h));12>x[m]&&(h*=1+2.3*Math.log(1-h));-15>h&&(h=-15);h-=8;b.minval_s[m]=Math.pow(10,h/10)*b.numlines_s[m]}b.s3_ss=n(b.s3ind_s,b.npart_s,x,y,q,f);w=Math.pow(10,.5625);A=Math.pow(10,1.5);v=Math.pow(10,1.5);E.init_fft(b);b.decay=
+Math.exp(-2.302585092994046/(.01*u/192));m=3.5;0!=(a.exp_nspsytune&2)&&(m=1);0<Math.abs(a.msfix)&&(m=a.msfix);a.msfix=m;for(f=0;f<b.npart_l;f++)b.s3ind[f][1]>b.npart_l-1&&(b.s3ind[f][1]=b.npart_l-1);b.ATH.decay=Math.pow(10,576*b.mode_gr/u*-1.2);b.ATH.adjust=.01;b.ATH.adjustLimit=1;if(-1!=a.ATHtype){r=a.out_samplerate/d.BLKSIZE;for(m=k=f=0;m<d.BLKSIZE/2;++m)k+=r,b.ATH.eql_w[m]=1/Math.pow(10,this.ATHformula(k,a)/10),f+=b.ATH.eql_w[m];f=1/f;for(m=d.BLKSIZE/2;0<=--m;)b.ATH.eql_w[m]*=f}for(f=r=0;f<b.npart_s;++f)for(m=
+0;m<b.numlines_s[f];++m)++r;for(f=r=0;f<b.npart_l;++f)for(m=0;m<b.numlines_l[f];++m)++r;for(m=r=0;m<b.npart_l;m++)k=u*(r+b.numlines_l[m]/2)/(1*d.BLKSIZE),b.mld_cb_l[m]=c(k),r+=b.numlines_l[m];for(;m<d.CBANDS;++m)b.mld_cb_l[m]=1;for(m=r=0;m<b.npart_s;m++)k=u*(r+b.numlines_s[m]/2)/(1*d.BLKSIZE_s),b.mld_cb_s[m]=c(k),r+=b.numlines_s[m];for(;m<d.CBANDS;++m)b.mld_cb_s[m]=1;return 0};this.ATHformula=function(a,c){var b;switch(c.ATHtype){case 0:b=f(a,9);break;case 1:b=f(a,-1);break;case 2:b=f(a,0);break;
+case 3:b=f(a,1)+6;break;case 4:b=f(a,c.ATHcurve);break;default:b=f(a,0)}return b}}function V(){function J(){this.mask_adjust_short=this.mask_adjust=0;this.bo_l_weight=H(d.SBMAX_l);this.bo_s_weight=H(d.SBMAX_s)}function k(){this.lowerlimit=0}function q(a,c){this.lowpass=c}function C(a){return 1<a?0:0>=a?1:Math.cos(Math.PI/2*a)}function B(a,c){switch(a){case 44100:return c.version=1,0;case 48E3:return c.version=1;case 32E3:return c.version=1,2;case 22050:return c.version=0;case 24E3:return c.version=
+0,1;case 16E3:return c.version=0,2;case 11025:return c.version=0;case 12E3:return c.version=0,1;case 8E3:return c.version=0,2;default:return c.version=0,-1}}function t(a,c,b){16E3>b&&(c=2);b=r.bitrate_table[c][1];for(var d=2;14>=d;d++)0<r.bitrate_table[c][d]&&Math.abs(r.bitrate_table[c][d]-a)<Math.abs(b-a)&&(b=r.bitrate_table[c][d]);return b}function Q(a,c,b){16E3>b&&(c=2);for(b=0;14>=b;b++)if(0<r.bitrate_table[c][b]&&r.bitrate_table[c][b]==a)return b;return-1}function g(a,c){var b=[new q(8,2E3),
+new q(16,3700),new q(24,3900),new q(32,5500),new q(40,7E3),new q(48,7500),new q(56,1E4),new q(64,11E3),new q(80,13500),new q(96,15100),new q(112,15600),new q(128,17E3),new q(160,17500),new q(192,18600),new q(224,19400),new q(256,19700),new q(320,20500)],d=e.nearestBitrateFullIndex(c);a.lowerlimit=b[d].lowpass}function b(a){var c=d.BLKSIZE+a.framesize-d.FFTOFFSET;return c=Math.max(c,512+a.framesize-32)}function l(m,f,g,k,l,p,q){var r=m.internal_flags,v=0,t,w,A=[null,null],z=[null,null];if(4294479419!=
+r.Class_ID)return-3;if(0==k)return 0;t=c.copy_buffer(r,l,p,q,0);if(0>t)return t;p+=t;v+=t;z[0]=f;z[1]=g;if(ua.NEQ(m.scale,0)&&ua.NEQ(m.scale,1))for(t=0;t<k;++t)z[0][t]*=m.scale,2==r.channels_out&&(z[1][t]*=m.scale);if(ua.NEQ(m.scale_left,0)&&ua.NEQ(m.scale_left,1))for(t=0;t<k;++t)z[0][t]*=m.scale_left;if(ua.NEQ(m.scale_right,0)&&ua.NEQ(m.scale_right,1))for(t=0;t<k;++t)z[1][t]*=m.scale_right;if(2==m.num_channels&&1==r.channels_out)for(t=0;t<k;++t)z[0][t]=.5*(z[0][t]+z[1][t]),z[1][t]=0;f=b(m);A[0]=
+r.mfbuf[0];A[1]=r.mfbuf[1];for(g=0;0<k;){var B=[null,null];t=w=0;B[0]=z[0];B[1]=z[1];t=new a;var C=m;w=A;var E=g,J=k,K=t,M=C.internal_flags;if(.9999>M.resample_ratio||1.0001<M.resample_ratio)for(var Q=0;Q<M.channels_out;Q++){var V=new h,Y=K,X=w[Q],ta=M.mf_size,ka=C.framesize,ma=B[Q],ra=E,R=J,Fa=V,L=Q,Ma=C.internal_flags,Z=void 0,Da=0,na=void 0,sa=C.out_samplerate/D(C.out_samplerate,C.in_samplerate);sa>da.BPC&&(sa=da.BPC);var P=1E-4>Math.abs(Ma.resample_ratio-Math.floor(.5+Ma.resample_ratio))?1:0,
+na=1/Ma.resample_ratio;1<na&&(na=1);var ha=31;0==ha%2&&--ha;ha+=P;P=ha+1;if(0==Ma.fill_buffer_resample_init){Ma.inbuf_old[0]=H(P);Ma.inbuf_old[1]=H(P);for(Z=0;Z<=2*sa;++Z)Ma.blackfilt[Z]=H(P);Ma.itime[0]=0;for(Da=Ma.itime[1]=0;Da<=2*sa;Da++){for(var N=0,Ca=(Da-sa)/(2*sa),Z=0;Z<=ha;Z++){var Ia=Ma.blackfilt[Da],Ga=Z,Sa,ea=Z-Ca;Sa=ha;var Oa=Math.PI*na,ea=ea/Sa;0>ea&&(ea=0);1<ea&&(ea=1);var Qa=ea-.5,ea=.42-.5*Math.cos(2*ea*Math.PI)+.08*Math.cos(4*ea*Math.PI);Sa=1E-9>Math.abs(Qa)?Oa/Math.PI:ea*Math.sin(Sa*
+Oa*Qa)/(Math.PI*Sa*Qa);N+=Ia[Ga]=Sa}for(Z=0;Z<=ha;Z++)Ma.blackfilt[Da][Z]/=N}Ma.fill_buffer_resample_init=1}N=Ma.inbuf_old[L];for(na=0;na<ka;na++){Z=na*Ma.resample_ratio;Da=0|Math.floor(Z-Ma.itime[L]);if(ha+Da-ha/2>=R)break;Ca=Z-Ma.itime[L]-(Da+ha%2*.5);Ca=0|Math.floor(2*Ca*sa+sa+.5);for(Z=Ia=0;Z<=ha;++Z)Ga=Z+Da-ha/2,Ia+=(0>Ga?N[P+Ga]:ma[ra+Ga])*Ma.blackfilt[Ca][Z];X[ta+na]=Ia}Fa.num_used=Math.min(R,ha+Da-ha/2);Ma.itime[L]+=Fa.num_used-na*Ma.resample_ratio;if(Fa.num_used>=P)for(Z=0;Z<P;Z++)N[Z]=ma[ra+
+Fa.num_used+Z-P];else{X=P-Fa.num_used;for(Z=0;Z<X;++Z)N[Z]=N[Z+Fa.num_used];for(Da=0;Z<P;++Z,++Da)N[Z]=ma[ra+Da]}Y.n_out=na;K.n_in=V.num_used}else for(K.n_out=Math.min(C.framesize,J),K.n_in=K.n_out,C=0;C<K.n_out;++C)w[0][M.mf_size+C]=B[0][E+C],2==M.channels_out&&(w[1][M.mf_size+C]=B[1][E+C]);w=t.n_in;t=t.n_out;if(r.findReplayGain&&!r.decode_on_the_fly&&n.AnalyzeSamples(r.rgdata,A[0],r.mf_size,A[1],r.mf_size,t,r.channels_out)==O.GAIN_ANALYSIS_ERROR)return-6;k-=w;g+=w;r.mf_size+=t;1>r.mf_samples_to_encode&&
+(r.mf_samples_to_encode=d.ENCDELAY+d.POSTDELAY);r.mf_samples_to_encode+=t;if(r.mf_size>=f){w=q-v;0==q&&(w=0);t=m;w=e.enc.lame_encode_mp3_frame(t,A[0],A[1],l,p,w);t.frameNum++;t=w;if(0>t)return t;p+=t;v+=t;r.mf_size-=m.framesize;r.mf_samples_to_encode-=m.framesize;for(w=0;w<r.channels_out;w++)for(t=0;t<r.mf_size;t++)A[w][t]=A[w][t+m.framesize]}}return v}function a(){this.n_out=this.n_in=0}function h(){this.num_used=0}function D(a,c){return 0!=c?D(c,a%c):a}var e=this;V.V9=410;V.V8=420;V.V7=430;V.V6=
+440;V.V5=450;V.V4=460;V.V3=470;V.V2=480;V.V1=490;V.V0=500;V.R3MIX=1E3;V.STANDARD=1001;V.EXTREME=1002;V.INSANE=1003;V.STANDARD_FAST=1004;V.EXTREME_FAST=1005;V.MEDIUM=1006;V.MEDIUM_FAST=1007;V.LAME_MAXMP3BUFFER=147456;var n,c,f,E,z,w=new jc,A,v,p;this.enc=new d;this.setModules=function(a,b,d,g,e,k,h,l,q){n=a;c=b;f=d;E=g;z=e;A=k;v=l;p=q;this.enc.setModules(c,w,E,A)};this.lame_init=function(){var a=new Jc,c;a.class_id=4294479419;c=a.internal_flags=new da;a.mode=ka.NOT_SET;a.original=1;a.in_samplerate=
+44100;a.num_channels=2;a.num_samples=-1;a.bWriteVbrTag=!0;a.quality=-1;a.short_blocks=null;c.subblock_gain=-1;a.lowpassfreq=0;a.highpassfreq=0;a.lowpasswidth=-1;a.highpasswidth=-1;a.VBR=M.vbr_off;a.VBR_q=4;a.ATHcurve=-1;a.VBR_mean_bitrate_kbps=128;a.VBR_min_bitrate_kbps=0;a.VBR_max_bitrate_kbps=0;a.VBR_hard_min=0;c.VBR_min_bitrate=1;c.VBR_max_bitrate=13;a.quant_comp=-1;a.quant_comp_short=-1;a.msfix=-1;c.resample_ratio=1;c.OldValue[0]=180;c.OldValue[1]=180;c.CurrentStep[0]=4;c.CurrentStep[1]=4;c.masking_lower=
+1;c.nsPsy.attackthre=-1;c.nsPsy.attackthre_s=-1;a.scale=-1;a.athaa_type=-1;a.ATHtype=-1;a.athaa_loudapprox=-1;a.athaa_sensitivity=0;a.useTemporal=null;a.interChRatio=-1;c.mf_samples_to_encode=d.ENCDELAY+d.POSTDELAY;a.encoder_padding=0;c.mf_size=d.ENCDELAY-d.MDCTDELAY;a.findReplayGain=!1;a.decode_on_the_fly=!1;c.decode_on_the_fly=!1;c.findReplayGain=!1;c.findPeakSample=!1;c.RadioGain=0;c.AudiophileGain=0;c.noclipGainChange=0;c.noclipScale=-1;a.preset=0;a.write_id3tag_automatic=!0;a.lame_allocated_gfp=
+1;return a};this.nearestBitrateFullIndex=function(a){for(var c=[8,16,24,32,40,48,56,64,80,96,112,128,160,192,224,256,320],b=0,d=0,f=0,g=0,g=c[16],f=16,d=c[16],b=16,e=0;16>e;e++)if(Math.max(a,c[e+1])!=a){g=c[e+1];f=e+1;d=c[e];b=e;break}return g-a>a-d?b:f};this.lame_init_params=function(a){var b=a.internal_flags;b.Class_ID=0;null==b.ATH&&(b.ATH=new Lc);null==b.PSY&&(b.PSY=new J);null==b.rgdata&&(b.rgdata=new Kc);b.channels_in=a.num_channels;1==b.channels_in&&(a.mode=ka.MONO);b.channels_out=a.mode==
+ka.MONO?1:2;b.mode_ext=d.MPG_MD_MS_LR;a.mode==ka.MONO&&(a.force_ms=!1);a.VBR==M.vbr_off&&128!=a.VBR_mean_bitrate_kbps&&0==a.brate&&(a.brate=a.VBR_mean_bitrate_kbps);a.VBR!=M.vbr_off&&a.VBR!=M.vbr_mtrh&&a.VBR!=M.vbr_mt&&(a.free_format=!1);a.VBR==M.vbr_off&&0==a.brate&&ua.EQ(a.compression_ratio,0)&&(a.compression_ratio=11.025);a.VBR==M.vbr_off&&0<a.compression_ratio&&(0==a.out_samplerate&&(a.out_samplerate=map2MP3Frequency(int(.97*a.in_samplerate))),a.brate=0|16*a.out_samplerate*b.channels_out/(1E3*
+a.compression_ratio),b.samplerate_index=B(a.out_samplerate,a),a.free_format||(a.brate=t(a.brate,a.version,a.out_samplerate)));0!=a.out_samplerate&&(16E3>a.out_samplerate?(a.VBR_mean_bitrate_kbps=Math.max(a.VBR_mean_bitrate_kbps,8),a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,64)):32E3>a.out_samplerate?(a.VBR_mean_bitrate_kbps=Math.max(a.VBR_mean_bitrate_kbps,8),a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,160)):(a.VBR_mean_bitrate_kbps=Math.max(a.VBR_mean_bitrate_kbps,32),
+a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,320)));if(0==a.lowpassfreq){var e=16E3;switch(a.VBR){case M.vbr_off:e=new k;g(e,a.brate);e=e.lowerlimit;break;case M.vbr_abr:e=new k;g(e,a.VBR_mean_bitrate_kbps);e=e.lowerlimit;break;case M.vbr_rh:var h=[19500,19E3,18600,18E3,17500,16E3,15600,14900,12500,1E4,3950];if(0<=a.VBR_q&&9>=a.VBR_q)var e=h[a.VBR_q],h=h[a.VBR_q+1],l=a.VBR_q_frac,e=linear_int(e,h,l);else e=19500;break;default:h=[19500,19E3,18500,18E3,17500,16500,15500,14500,12500,9500,
+3950],0<=a.VBR_q&&9>=a.VBR_q?(e=h[a.VBR_q],h=h[a.VBR_q+1],l=a.VBR_q_frac,e=linear_int(e,h,l)):e=19500}a.mode!=ka.MONO||a.VBR!=M.vbr_off&&a.VBR!=M.vbr_abr||(e*=1.5);a.lowpassfreq=e|0}0==a.out_samplerate&&(2*a.lowpassfreq>a.in_samplerate&&(a.lowpassfreq=a.in_samplerate/2),e=a.lowpassfreq|0,h=a.in_samplerate,l=44100,48E3<=h?l=48E3:44100<=h?l=44100:32E3<=h?l=32E3:24E3<=h?l=24E3:22050<=h?l=22050:16E3<=h?l=16E3:12E3<=h?l=12E3:11025<=h?l=11025:8E3<=h&&(l=8E3),-1==e?e=l:(15960>=e&&(l=44100),15250>=e&&(l=
+32E3),11220>=e&&(l=24E3),9970>=e&&(l=22050),7230>=e&&(l=16E3),5420>=e&&(l=12E3),4510>=e&&(l=11025),3970>=e&&(l=8E3),e=h<l?44100<h?48E3:32E3<h?44100:24E3<h?32E3:22050<h?24E3:16E3<h?22050:12E3<h?16E3:11025<h?12E3:8E3<h?11025:8E3:l),a.out_samplerate=e);a.lowpassfreq=Math.min(20500,a.lowpassfreq);a.lowpassfreq=Math.min(a.out_samplerate/2,a.lowpassfreq);a.VBR==M.vbr_off&&(a.compression_ratio=16*a.out_samplerate*b.channels_out/(1E3*a.brate));a.VBR==M.vbr_abr&&(a.compression_ratio=16*a.out_samplerate*b.channels_out/
+(1E3*a.VBR_mean_bitrate_kbps));a.bWriteVbrTag||(a.findReplayGain=!1,a.decode_on_the_fly=!1,b.findPeakSample=!1);b.findReplayGain=a.findReplayGain;b.decode_on_the_fly=a.decode_on_the_fly;b.decode_on_the_fly&&(b.findPeakSample=!0);if(b.findReplayGain&&n.InitGainAnalysis(b.rgdata,a.out_samplerate)==O.INIT_GAIN_ANALYSIS_ERROR)return a.internal_flags=null,-6;b.decode_on_the_fly&&!a.decode_only&&(null!=b.hip&&p.hip_decode_exit(b.hip),b.hip=p.hip_decode_init());b.mode_gr=24E3>=a.out_samplerate?1:2;a.framesize=
+576*b.mode_gr;a.encoder_delay=d.ENCDELAY;b.resample_ratio=a.in_samplerate/a.out_samplerate;switch(a.VBR){case M.vbr_mt:case M.vbr_rh:case M.vbr_mtrh:a.compression_ratio=[5.7,6.5,7.3,8.2,10,11.9,13,14,15,16.5][a.VBR_q];break;case M.vbr_abr:a.compression_ratio=16*a.out_samplerate*b.channels_out/(1E3*a.VBR_mean_bitrate_kbps);break;default:a.compression_ratio=16*a.out_samplerate*b.channels_out/(1E3*a.brate)}a.mode==ka.NOT_SET&&(a.mode=ka.JOINT_STEREO);0<a.highpassfreq?(b.highpass1=2*a.highpassfreq,b.highpass2=
+0<=a.highpasswidth?2*(a.highpassfreq+a.highpasswidth):2*a.highpassfreq,b.highpass1/=a.out_samplerate,b.highpass2/=a.out_samplerate):(b.highpass1=0,b.highpass2=0);0<a.lowpassfreq?(b.lowpass2=2*a.lowpassfreq,0<=a.lowpasswidth?(b.lowpass1=2*(a.lowpassfreq-a.lowpasswidth),0>b.lowpass1&&(b.lowpass1=0)):b.lowpass1=2*a.lowpassfreq,b.lowpass1/=a.out_samplerate,b.lowpass2/=a.out_samplerate):(b.lowpass1=0,b.lowpass2=0);var e=a.internal_flags,q=32,D=-1;if(0<e.lowpass1){for(var F=999,h=0;31>=h;h++)l=h/31,l>=
+e.lowpass2&&(q=Math.min(q,h)),e.lowpass1<l&&l<e.lowpass2&&(F=Math.min(F,h));e.lowpass1=999==F?(q-.75)/31:(F-.75)/31;e.lowpass2=q/31}0<e.highpass2&&e.highpass2<.75/31*.9&&(e.highpass1=0,e.highpass2=0,K.err.println("Warning: highpass filter disabled.  highpass frequency too small\n"));if(0<e.highpass2){q=-1;for(h=0;31>=h;h++)l=h/31,l<=e.highpass1&&(D=Math.max(D,h)),e.highpass1<l&&l<e.highpass2&&(q=Math.max(q,h));e.highpass1=D/31;e.highpass2=-1==q?(D+.75)/31:(q+.75)/31}for(h=0;32>h;h++)l=h/31,D=e.highpass2>
+e.highpass1?C((e.highpass2-l)/(e.highpass2-e.highpass1+1E-20)):1,l=e.lowpass2>e.lowpass1?C((l-e.lowpass1)/(e.lowpass2-e.lowpass1+1E-20)):1,e.amp_filter[h]=D*l;b.samplerate_index=B(a.out_samplerate,a);if(0>b.samplerate_index)return a.internal_flags=null,-1;if(a.VBR==M.vbr_off)if(a.free_format)b.bitrate_index=0;else{if(a.brate=t(a.brate,a.version,a.out_samplerate),b.bitrate_index=Q(a.brate,a.version,a.out_samplerate),0>=b.bitrate_index)return a.internal_flags=null,-1}else b.bitrate_index=1;a.analysis&&
+(a.bWriteVbrTag=!1);null!=b.pinfo&&(a.bWriteVbrTag=!1);c.init_bit_stream_w(b);e=b.samplerate_index+3*a.version+6*(16E3>a.out_samplerate?1:0);for(h=0;h<d.SBMAX_l+1;h++)b.scalefac_band.l[h]=E.sfBandIndex[e].l[h];for(h=0;h<d.PSFB21+1;h++)l=(b.scalefac_band.l[22]-b.scalefac_band.l[21])/d.PSFB21,l=b.scalefac_band.l[21]+h*l,b.scalefac_band.psfb21[h]=l;b.scalefac_band.psfb21[d.PSFB21]=576;for(h=0;h<d.SBMAX_s+1;h++)b.scalefac_band.s[h]=E.sfBandIndex[e].s[h];for(h=0;h<d.PSFB12+1;h++)l=(b.scalefac_band.s[13]-
+b.scalefac_band.s[12])/d.PSFB12,l=b.scalefac_band.s[12]+h*l,b.scalefac_band.psfb12[h]=l;b.scalefac_band.psfb12[d.PSFB12]=192;b.sideinfo_len=1==a.version?1==b.channels_out?21:36:1==b.channels_out?13:21;a.error_protection&&(b.sideinfo_len+=2);e=a.internal_flags;a.frameNum=0;a.write_id3tag_automatic&&v.id3tag_write_v2(a);e.bitrate_stereoMode_Hist=db([16,5]);e.bitrate_blockType_Hist=db([16,6]);e.PeakSample=0;a.bWriteVbrTag&&A.InitVbrTag(a);b.Class_ID=4294479419;for(e=0;19>e;e++)b.nsPsy.pefirbuf[e]=700*
+b.mode_gr*b.channels_out;-1==a.ATHtype&&(a.ATHtype=4);switch(a.VBR){case M.vbr_mt:a.VBR=M.vbr_mtrh;case M.vbr_mtrh:null==a.useTemporal&&(a.useTemporal=!1);f.apply_preset(a,500-10*a.VBR_q,0);0>a.quality&&(a.quality=LAME_DEFAULT_QUALITY);5>a.quality&&(a.quality=0);5<a.quality&&(a.quality=5);b.PSY.mask_adjust=a.maskingadjust;b.PSY.mask_adjust_short=a.maskingadjust_short;b.sfb21_extra=a.experimentalY?!1:44E3<a.out_samplerate;b.iteration_loop=new VBRNewIterationLoop(z);break;case M.vbr_rh:f.apply_preset(a,
+500-10*a.VBR_q,0);b.PSY.mask_adjust=a.maskingadjust;b.PSY.mask_adjust_short=a.maskingadjust_short;b.sfb21_extra=a.experimentalY?!1:44E3<a.out_samplerate;6<a.quality&&(a.quality=6);0>a.quality&&(a.quality=LAME_DEFAULT_QUALITY);b.iteration_loop=new VBROldIterationLoop(z);break;default:b.sfb21_extra=!1,0>a.quality&&(a.quality=LAME_DEFAULT_QUALITY),e=a.VBR,e==M.vbr_off&&(a.VBR_mean_bitrate_kbps=a.brate),f.apply_preset(a,a.VBR_mean_bitrate_kbps,0),a.VBR=e,b.PSY.mask_adjust=a.maskingadjust,b.PSY.mask_adjust_short=
+a.maskingadjust_short,b.iteration_loop=e==M.vbr_off?new Mc(z):new ABRIterationLoop(z)}if(a.VBR!=M.vbr_off){b.VBR_min_bitrate=1;b.VBR_max_bitrate=14;16E3>a.out_samplerate&&(b.VBR_max_bitrate=8);if(0!=a.VBR_min_bitrate_kbps&&(a.VBR_min_bitrate_kbps=t(a.VBR_min_bitrate_kbps,a.version,a.out_samplerate),b.VBR_min_bitrate=Q(a.VBR_min_bitrate_kbps,a.version,a.out_samplerate),0>b.VBR_min_bitrate)||0!=a.VBR_max_bitrate_kbps&&(a.VBR_max_bitrate_kbps=t(a.VBR_max_bitrate_kbps,a.version,a.out_samplerate),b.VBR_max_bitrate=
+Q(a.VBR_max_bitrate_kbps,a.version,a.out_samplerate),0>b.VBR_max_bitrate))return-1;a.VBR_min_bitrate_kbps=r.bitrate_table[a.version][b.VBR_min_bitrate];a.VBR_max_bitrate_kbps=r.bitrate_table[a.version][b.VBR_max_bitrate];a.VBR_mean_bitrate_kbps=Math.min(r.bitrate_table[a.version][b.VBR_max_bitrate],a.VBR_mean_bitrate_kbps);a.VBR_mean_bitrate_kbps=Math.max(r.bitrate_table[a.version][b.VBR_min_bitrate],a.VBR_mean_bitrate_kbps)}a.tune&&(b.PSY.mask_adjust+=a.tune_value_a,b.PSY.mask_adjust_short+=a.tune_value_a);
+e=a.internal_flags;switch(a.quality){default:case 9:e.psymodel=0;e.noise_shaping=0;e.noise_shaping_amp=0;e.noise_shaping_stop=0;e.use_best_huffman=0;e.full_outer_loop=0;break;case 8:a.quality=7;case 7:e.psymodel=1;e.noise_shaping=0;e.noise_shaping_amp=0;e.noise_shaping_stop=0;e.use_best_huffman=0;e.full_outer_loop=0;break;case 6:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=0;e.full_outer_loop=
+0;break;case 5:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=0;e.full_outer_loop=0;break;case 4:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 3:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=1;e.noise_shaping_stop=1;-1==
+e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 2:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);0==e.substep_shaping&&(e.substep_shaping=2);e.noise_shaping_amp=1;e.noise_shaping_stop=1;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 1:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);0==e.substep_shaping&&(e.substep_shaping=2);e.noise_shaping_amp=2;e.noise_shaping_stop=1;-1==e.subblock_gain&&(e.subblock_gain=
+1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 0:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),0==e.substep_shaping&&(e.substep_shaping=2),e.noise_shaping_amp=2,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0}b.ATH.useAdjust=0>a.athaa_type?3:a.athaa_type;b.ATH.aaSensitivityP=Math.pow(10,a.athaa_sensitivity/-10);null==a.short_blocks&&(a.short_blocks=sa.short_block_allowed);a.short_blocks!=sa.short_block_allowed||a.mode!=ka.JOINT_STEREO&&
+a.mode!=ka.STEREO||(a.short_blocks=sa.short_block_coupled);0>a.quant_comp&&(a.quant_comp=1);0>a.quant_comp_short&&(a.quant_comp_short=0);0>a.msfix&&(a.msfix=0);a.exp_nspsytune|=1;0>a.internal_flags.nsPsy.attackthre&&(a.internal_flags.nsPsy.attackthre=jc.NSATTACKTHRE);0>a.internal_flags.nsPsy.attackthre_s&&(a.internal_flags.nsPsy.attackthre_s=jc.NSATTACKTHRE_S);0>a.scale&&(a.scale=1);0>a.ATHtype&&(a.ATHtype=4);0>a.ATHcurve&&(a.ATHcurve=4);0>a.athaa_loudapprox&&(a.athaa_loudapprox=2);0>a.interChRatio&&
+(a.interChRatio=0);null==a.useTemporal&&(a.useTemporal=!0);b.slot_lag=b.frac_SpF=0;a.VBR==M.vbr_off&&(b.slot_lag=b.frac_SpF=72E3*(a.version+1)*a.brate%a.out_samplerate|0);E.iteration_init(a);w.psymodel_init(a);return 0};this.lame_encode_flush=function(a,e,f,g){var h=a.internal_flags,k=vc([2,1152]),l=0,n,p,q=h.mf_samples_to_encode-d.POSTDELAY,r=b(a);if(1>h.mf_samples_to_encode)return 0;n=0;a.in_samplerate!=a.out_samplerate&&(q+=16*a.out_samplerate/a.in_samplerate);p=a.framesize-q%a.framesize;576>p&&
+(p+=a.framesize);a.encoder_padding=p;for(p=(q+p)/a.framesize;0<p&&0<=l;){var t=r-h.mf_size,q=a.frameNum,t=t*a.in_samplerate,t=t/a.out_samplerate;1152<t&&(t=1152);1>t&&(t=1);l=g-n;0==g&&(l=0);l=this.lame_encode_buffer(a,k[0],k[1],t,e,f,l);f+=l;n+=l;p-=q!=a.frameNum?1:0}h.mf_samples_to_encode=0;if(0>l)return l;l=g-n;0==g&&(l=0);c.flush_bitstream(a);l=c.copy_buffer(h,e,f,l,1);if(0>l)return l;f+=l;n+=l;l=g-n;0==g&&(l=0);if(a.write_id3tag_automatic){v.id3tag_write_v1(a);l=c.copy_buffer(h,e,f,l,0);if(0>
+l)return l;n+=l}return n};this.lame_encode_buffer=function(a,b,c,d,e,f,g){var h=a.internal_flags,k=[null,null];if(4294479419!=h.Class_ID)return-3;if(0==d)return 0;if(null==h.in_buffer_0||h.in_buffer_nsamples<d)h.in_buffer_0=H(d),h.in_buffer_1=H(d),h.in_buffer_nsamples=d;k[0]=h.in_buffer_0;k[1]=h.in_buffer_1;for(var n=0;n<d;n++)k[0][n]=b[n],1<h.channels_in&&(k[1][n]=c[n]);return l(a,k[0],k[1],d,e,f,g)}}function Uc(){this.setModules=function(d,k){}}function Vc(){this.setModules=function(d,k,q){}}function Wc(){}
+function Xc(){this.setModules=function(d,k){}}function Ca(){this.sampleRate=this.channels=this.dataLen=this.dataOffset=0}function Ob(d){return d.charCodeAt(0)<<24|d.charCodeAt(1)<<16|d.charCodeAt(2)<<8|d.charCodeAt(3)}var Ia={fill:function(d,k,q,r){if(2==arguments.length)for(var B=0;B<d.length;B++)d[B]=arguments[1];else for(B=k;B<q;B++)d[B]=r}},K={arraycopy:function(d,k,q,r,B){for(B=k+B;k<B;)q[r++]=d[k++]}},X={SQRT2:1.4142135623730951,FAST_LOG10:function(d){return Math.log10(d)},FAST_LOG10_X:function(d,
+k){return Math.log10(d)*k}};sa.short_block_allowed=new sa(0);sa.short_block_coupled=new sa(1);sa.short_block_dispensed=new sa(2);sa.short_block_forced=new sa(3);var vb={MAX_VALUE:3.4028235E38};M.vbr_off=new M(0);M.vbr_mt=new M(1);M.vbr_rh=new M(2);M.vbr_abr=new M(3);M.vbr_mtrh=new M(4);M.vbr_default=M.vbr_mtrh;ka.STEREO=new ka(0);ka.JOINT_STEREO=new ka(1);ka.DUAL_CHANNEL=new ka(2);ka.MONO=new ka(3);ka.NOT_SET=new ka(4);O.STEPS_per_dB=100;O.MAX_dB=120;O.GAIN_NOT_ENOUGH_SAMPLES=-24601;O.GAIN_ANALYSIS_ERROR=
+0;O.GAIN_ANALYSIS_OK=1;O.INIT_GAIN_ANALYSIS_ERROR=0;O.INIT_GAIN_ANALYSIS_OK=1;O.YULE_ORDER=10;O.MAX_ORDER=O.YULE_ORDER;O.MAX_SAMP_FREQ=48E3;O.RMS_WINDOW_TIME_NUMERATOR=1;O.RMS_WINDOW_TIME_DENOMINATOR=20;O.MAX_SAMPLES_PER_WINDOW=O.MAX_SAMP_FREQ*O.RMS_WINDOW_TIME_NUMERATOR/O.RMS_WINDOW_TIME_DENOMINATOR+1;ua.EQ=function(d,k){return Math.abs(d)>Math.abs(k)?Math.abs(d-k)<=1E-6*Math.abs(d):Math.abs(d-k)<=1E-6*Math.abs(k)};ua.NEQ=function(d,k){return!ua.EQ(d,k)};ub.NUMTOCENTRIES=100;ub.MAXFRAMESIZE=2880;
+var r={t1HB:[1,1,1,0],t2HB:[1,2,1,3,1,1,3,2,0],t3HB:[3,2,1,1,1,1,3,2,0],t5HB:[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],t6HB:[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],t7HB:[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],t8HB:[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],t9HB:[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],t10HB:[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34,
+46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],t11HB:[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],t12HB:[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],t13HB:[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19,
+3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51,
+36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],t15HB:[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,19,17,15,24,41,34,59,48,40,64,50,78,62,80,56,33,29,28,25,43,39,63,55,93,76,59,93,72,54,75,50,29,52,22,42,40,67,57,95,79,72,57,89,69,49,66,46,27,77,37,35,66,58,52,91,74,62,48,79,63,90,62,40,
+38,125,32,60,56,50,92,78,65,55,87,71,51,73,51,70,30,109,53,49,94,88,75,66,122,91,73,56,42,64,44,21,25,90,43,41,77,73,63,56,92,77,66,47,67,48,53,36,20,71,34,67,60,58,49,88,76,67,106,71,54,38,39,23,15,109,53,51,47,90,82,58,57,48,72,57,41,23,27,62,9,86,42,40,37,70,64,52,43,70,55,42,25,29,18,11,11,118,68,30,55,50,46,74,65,49,39,24,16,22,13,14,7,91,44,39,38,34,63,52,45,31,52,28,19,14,8,9,3,123,60,58,53,47,43,32,22,37,24,17,12,15,10,2,1,71,37,34,30,28,20,17,26,21,16,10,6,8,6,2,0],t16HB:[1,5,14,44,74,63,
+110,93,172,149,138,242,225,195,376,17,3,4,12,20,35,62,53,47,83,75,68,119,201,107,207,9,15,13,23,38,67,58,103,90,161,72,127,117,110,209,206,16,45,21,39,69,64,114,99,87,158,140,252,212,199,387,365,26,75,36,68,65,115,101,179,164,155,264,246,226,395,382,362,9,66,30,59,56,102,185,173,265,142,253,232,400,388,378,445,16,111,54,52,100,184,178,160,133,257,244,228,217,385,366,715,10,98,48,91,88,165,157,148,261,248,407,397,372,380,889,884,8,85,84,81,159,156,143,260,249,427,401,392,383,727,713,708,7,154,76,73,
+141,131,256,245,426,406,394,384,735,359,710,352,11,139,129,67,125,247,233,229,219,393,743,737,720,885,882,439,4,243,120,118,115,227,223,396,746,742,736,721,712,706,223,436,6,202,224,222,218,216,389,386,381,364,888,443,707,440,437,1728,4,747,211,210,208,370,379,734,723,714,1735,883,877,876,3459,865,2,377,369,102,187,726,722,358,711,709,866,1734,871,3458,870,434,0,12,10,7,11,10,17,11,9,13,12,10,7,5,3,1,3],t24HB:[15,13,46,80,146,262,248,434,426,669,653,649,621,517,1032,88,14,12,21,38,71,130,122,216,
+209,198,327,345,319,297,279,42,47,22,41,74,68,128,120,221,207,194,182,340,315,295,541,18,81,39,75,70,134,125,116,220,204,190,178,325,311,293,271,16,147,72,69,135,127,118,112,210,200,188,352,323,306,285,540,14,263,66,129,126,119,114,214,202,192,180,341,317,301,281,262,12,249,123,121,117,113,215,206,195,185,347,330,308,291,272,520,10,435,115,111,109,211,203,196,187,353,332,313,298,283,531,381,17,427,212,208,205,201,193,186,177,169,320,303,286,268,514,377,16,335,199,197,191,189,181,174,333,321,305,289,
+275,521,379,371,11,668,184,183,179,175,344,331,314,304,290,277,530,383,373,366,10,652,346,171,168,164,318,309,299,287,276,263,513,375,368,362,6,648,322,316,312,307,302,292,284,269,261,512,376,370,364,359,4,620,300,296,294,288,282,273,266,515,380,374,369,365,361,357,2,1033,280,278,274,267,264,259,382,378,372,367,363,360,358,356,0,43,20,19,17,15,13,11,9,7,6,4,7,5,3,1,3],t32HB:[1,10,8,20,12,20,16,32,14,12,24,0,28,16,24,16],t33HB:[15,28,26,48,22,40,36,64,14,24,20,32,12,16,8,0],t1l:[1,4,3,5],t2l:[1,4,
+7,4,5,7,6,7,8],t3l:[2,3,7,4,4,7,6,7,8],t5l:[1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10],t6l:[3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9],t7l:[1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12],t8l:[2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13],t9l:[3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11],t10l:[1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,
+12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13],t11l:[2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12],t12l:[4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12],t13l:[1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,
+12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,
+14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18],t15l:[3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,
+11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15],t16_5l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,
+12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,
+14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12],t16l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,
+15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10],t24l:[4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,
+9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,
+12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6],t32l:[1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10],t33l:[4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]};r.ht=[new Q(0,0,null,null),new Q(2,0,r.t1HB,r.t1l),new Q(3,0,r.t2HB,r.t2l),new Q(3,0,r.t3HB,r.t3l),new Q(0,0,null,null),new Q(4,0,r.t5HB,r.t5l),new Q(4,0,r.t6HB,r.t6l),new Q(6,0,r.t7HB,r.t7l),new Q(6,0,r.t8HB,r.t8l),new Q(6,0,r.t9HB,r.t9l),new Q(8,
+0,r.t10HB,r.t10l),new Q(8,0,r.t11HB,r.t11l),new Q(8,0,r.t12HB,r.t12l),new Q(16,0,r.t13HB,r.t13l),new Q(0,0,null,r.t16_5l),new Q(16,0,r.t15HB,r.t15l),new Q(1,1,r.t16HB,r.t16l),new Q(2,3,r.t16HB,r.t16l),new Q(3,7,r.t16HB,r.t16l),new Q(4,15,r.t16HB,r.t16l),new Q(6,63,r.t16HB,r.t16l),new Q(8,255,r.t16HB,r.t16l),new Q(10,1023,r.t16HB,r.t16l),new Q(13,8191,r.t16HB,r.t16l),new Q(4,15,r.t24HB,r.t24l),new Q(5,31,r.t24HB,r.t24l),new Q(6,63,r.t24HB,r.t24l),new Q(7,127,r.t24HB,r.t24l),new Q(8,255,r.t24HB,r.t24l),
+new Q(9,511,r.t24HB,r.t24l),new Q(11,2047,r.t24HB,r.t24l),new Q(13,8191,r.t24HB,r.t24l),new Q(0,0,r.t32HB,r.t32l),new Q(0,0,r.t33HB,r.t33l)];r.largetbl=[65540,327685,458759,589832,655369,655370,720906,720907,786443,786444,786444,851980,851980,851980,917517,655370,262149,393222,524295,589832,655369,720906,720906,720907,786443,786443,786444,851980,917516,851980,917516,655370,458759,524295,589832,655369,720905,720906,786442,786443,851979,786443,851979,851980,851980,917516,917517,720905,589832,589832,
+655369,720905,720906,786442,786442,786443,851979,851979,917515,917516,917516,983052,983052,786441,655369,655369,720905,720906,786442,786442,851978,851979,851979,917515,917516,917516,983052,983052,983053,720905,655370,655369,720906,720906,786442,851978,851979,917515,851979,917515,917516,983052,983052,983052,1048588,786441,720906,720906,720906,786442,851978,851979,851979,851979,917515,917516,917516,917516,983052,983052,1048589,786441,720907,720906,786442,786442,851979,851979,851979,917515,917516,983052,
+983052,983052,983052,1114125,1114125,786442,720907,786443,786443,851979,851979,851979,917515,917515,983051,983052,983052,983052,1048588,1048589,1048589,786442,786443,786443,786443,851979,851979,917515,917515,983052,983052,983052,983052,1048588,983053,1048589,983053,851978,786444,851979,786443,851979,917515,917516,917516,917516,983052,1048588,1048588,1048589,1114125,1114125,1048589,786442,851980,851980,851979,851979,917515,917516,983052,1048588,1048588,1048588,1048588,1048589,1048589,983053,1048589,
+851978,851980,917516,917516,917516,917516,983052,983052,983052,983052,1114124,1048589,1048589,1048589,1048589,1179661,851978,983052,917516,917516,917516,983052,983052,1048588,1048588,1048589,1179661,1114125,1114125,1114125,1245197,1114125,851978,917517,983052,851980,917516,1048588,1048588,983052,1048589,1048589,1114125,1179661,1114125,1245197,1114125,1048589,851978,655369,655369,655369,720905,720905,786441,786441,786441,851977,851977,851977,851978,851978,851978,851978,655366];r.table23=[65538,262147,
+458759,262148,327684,458759,393222,458759,524296];r.table56=[65539,262148,458758,524296,262148,327684,524294,589831,458757,524294,589831,655368,524295,524295,589832,655369];r.bitrate_table=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],[0,8,16,24,32,40,48,56,64,-1,-1,-1,-1,-1,-1,-1]];r.samplerate_table=[[22050,24E3,16E3,-1],[44100,48E3,32E3,-1],[11025,12E3,8E3,-1]];r.scfsi_band=[0,6,11,16,21];ma.Q_MAX=257;ma.Q_MAX2=116;ma.LARGE_BITS=1E5;
+ma.IXMAX_VAL=8206;var na={};na.SFBMAX=3*d.SBMAX_s;d.ENCDELAY=576;d.POSTDELAY=1152;d.MDCTDELAY=48;d.FFTOFFSET=224+d.MDCTDELAY;d.DECDELAY=528;d.SBLIMIT=32;d.CBANDS=64;d.SBPSY_l=21;d.SBPSY_s=12;d.SBMAX_l=22;d.SBMAX_s=13;d.PSFB21=6;d.PSFB12=6;d.BLKSIZE=1024;d.HBLKSIZE=d.BLKSIZE/2+1;d.BLKSIZE_s=256;d.HBLKSIZE_s=d.BLKSIZE_s/2+1;d.NORM_TYPE=0;d.START_TYPE=1;d.SHORT_TYPE=2;d.STOP_TYPE=3;d.MPG_MD_LR_LR=0;d.MPG_MD_LR_I=1;d.MPG_MD_MS_LR=2;d.MPG_MD_MS_I=3;d.fircoef=[-.1039435,-.1892065,-.0432472*5,-.155915,3.898045E-17,
+.0467745*5,.50455,.756825,.187098*5];da.MFSIZE=3456+d.ENCDELAY-d.MDCTDELAY;da.MAX_HEADER_BUF=256;da.MAX_BITS_PER_CHANNEL=4095;da.MAX_BITS_PER_GRANULE=7680;da.BPC=320;Ca.RIFF=Ob("RIFF");Ca.WAVE=Ob("WAVE");Ca.fmt_=Ob("fmt ");Ca.data=Ob("data");Ca.readHeader=function(d){var k=new Ca,q=d.getUint32(0,!1);if(Ca.RIFF==q&&(d.getUint32(4,!0),Ca.WAVE==d.getUint32(8,!1)&&Ca.fmt_==d.getUint32(12,!1))){var r=d.getUint32(16,!0),B=20;switch(r){case 16:case 18:k.channels=d.getUint16(B+2,!0);k.sampleRate=d.getUint32(B+
+4,!0);break;default:throw"extended fmt chunk not implemented";}for(var B=B+r,r=Ca.data,t=0;r!=q;){q=d.getUint32(B,!1);t=d.getUint32(B+4,!0);if(r==q)break;B+=t+8}k.dataLen=t;k.dataOffset=B+8;return k}};na.SFBMAX=3*d.SBMAX_s;this.Mp3Encoder=function(d,k,q){3!=arguments.length&&(console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"),d=1,k=44100,q=128);var r=new V,B=new Uc,t=new O,H=new ua,g=new Gc,b=new ma,l=new Oc,a=new ub,h=new Fc,D=new Xc,e=new Hc,n=new tb,c=new Vc,f=new Wc;r.setModules(t,
+H,g,b,l,a,h,D,f);H.setModules(t,f,h,a);D.setModules(H,h);g.setModules(r);l.setModules(H,e,b,n);b.setModules(n,e,r.enc.psy);e.setModules(H);n.setModules(b);a.setModules(r,H,h);B.setModules(c,f);c.setModules(h,D,g);var E=r.lame_init();E.num_channels=d;E.in_samplerate=k;E.brate=q;E.mode=ka.STEREO;E.quality=3;E.bWriteVbrTag=!1;E.disable_reservoir=!0;E.write_id3tag_automatic=!1;r.lame_init_params(E);var z=1152,w=0|1.25*z+7200,A=new Int8Array(w);this.encodeBuffer=function(a,b){1==d&&(b=a);a.length>z&&(z=
+a.length,w=0|1.25*z+7200,A=new Int8Array(w));var c=r.lame_encode_buffer(E,a,b,a.length,A,0,w);return new Int8Array(A.subarray(0,c))};this.flush=function(){var a=r.lame_encode_flush(E,A,0,w);return new Int8Array(A.subarray(0,a))}};this.WavHeader=Ca};
diff --git a/src/assets/libs/audio-recorder/recorder.js b/src/assets/libs/audio-recorder/recorder.js
new file mode 100755
index 0000000..fba7241
--- /dev/null
+++ b/src/assets/libs/audio-recorder/recorder.js
@@ -0,0 +1,141 @@
+(function (exports) {
+  //公共方法
+  var Util = {
+    //初始化
+    init: function () {
+      navigator.getUserMedia = navigator.getUserMedia ||
+        navigator.webkitGetUserMedia ||
+        navigator.mozGetUserMedia ||
+        navigator.msGetUserMedia;
+
+      window.AudioContext = window.AudioContext ||
+        window.webkitAudioContext;
+    },
+    //日志
+    log: function () {
+      console.log.apply(console, arguments);
+    }
+  };
+  //构造函数
+  var Recorder = function (config) {
+
+    var _this = this;
+    config = config || {}; //初始化配置对象
+    config.sampleRate = config.sampleRate || 44100; //采样频率,默认为44100Hz(标准MP3采样率)
+    config.bitRate = config.bitRate || 128; //比特率,默认为128kbps(标准MP3质量)
+
+    Util.init();
+
+    if (navigator.getUserMedia) {
+      navigator.getUserMedia({
+          audio: true //配置对象
+        },
+        function (stream) { //成功回调
+          var context = new AudioContext(),
+            microphone = context.createMediaStreamSource(stream), //媒体流音频源
+            processor = context.createScriptProcessor(16384, 1, 1), //js音频处理器
+            successCallback, errorCallback;
+
+          config.sampleRate = context.sampleRate;
+
+          processor.onaudioprocess = function (event) {
+            //监听音频录制过程
+            var array = event.inputBuffer.getChannelData(0);
+            realTimeWorker.postMessage({cmd: 'encode', buf: array});
+          };
+
+          var realTimeWorker = new Worker('assets/libs/audio-recorder/worker.js'); //开启后台线程
+          _this.worker = realTimeWorker;
+          realTimeWorker.onmessage = function (e) { //主线程监听后台线程,实时通信
+            switch (e.data.cmd) {
+              case 'init':
+                Util.log('初始化成功');
+                if (config.success) {
+                  config.success();
+                }
+                break;
+              case 'end':
+                if (successCallback) {
+                  var blob = new Blob(e.data.buf, {type: 'audio/mp3'});
+                  successCallback(blob);
+                  Util.log('MP3大小:' + blob.size + '%cB', 'color:#0000EE');
+                }
+                break;
+              case 'error':
+                Util.log('错误信息:' + e.data.error);
+                if (errorCallback) {
+                  errorCallback(e.data.error);
+                }
+                break;
+              default:
+                Util.log('未知信息:' + e.data);
+            }
+          };
+          //接口列表
+          //开始录音
+          _this.start = function () {
+            if (processor && microphone) {
+              microphone.connect(processor);
+              processor.connect(context.destination);
+              Util.log('开始录音');
+            }
+          };
+          //结束录音
+          _this.stop = function () {
+            if (processor && microphone) {
+              microphone.disconnect();
+              processor.disconnect();
+              Util.log('录音结束');
+            }
+          };
+          //获取blob格式录音文件
+          _this.getBlob = function (onSuccess, onError) {
+            successCallback = onSuccess;
+            errorCallback = onError;
+            realTimeWorker.postMessage({cmd: 'finish'});
+          };
+
+          realTimeWorker.postMessage({
+            cmd: 'init',
+            config: {
+              sampleRate: config.sampleRate,
+              bitRate: config.bitRate
+            }
+          });
+        },
+        function (error) { //失败回调
+          var msg;
+          switch (error.code || error.name) {
+            case 'PermissionDeniedError':
+            case 'PERMISSION_DENIED':
+            case 'NotAllowedError':
+              msg = '用户拒绝访问麦克风';
+              break;
+            case 'NOT_SUPPORTED_ERROR':
+            case 'NotSupportedError':
+              msg = '浏览器不支持麦克风';
+              break;
+            case 'MANDATORY_UNSATISFIED_ERROR':
+            case 'MandatoryUnsatisfiedError':
+              msg = '找不到麦克风设备';
+              break;
+            default:
+              msg = '无法打开麦克风,异常信息:' + (error.code || error.name);
+              break;
+          }
+          Util.log(msg);
+          if (config.error) {
+            config.error(msg);
+          }
+        });
+    } else {
+      Util.log('当前浏览器不支持录音功能');
+      if (config.fix) {
+        config.fix('当前浏览器不支持录音功能');
+      }
+    }
+
+  };
+  //模块接口
+  exports.Recorder = Recorder;
+})(window);
diff --git a/src/assets/libs/audio-recorder/worker.js b/src/assets/libs/audio-recorder/worker.js
new file mode 100755
index 0000000..653f959
--- /dev/null
+++ b/src/assets/libs/audio-recorder/worker.js
@@ -0,0 +1,108 @@
+(function () {
+  'use strict';
+  if (!importScripts) {
+    var importScripts = (function (globalEval) {
+      var xhr = new XMLHttpRequest;
+      return function importScripts() {
+        var
+          args = Array.prototype.slice.call(arguments)
+          , len = args.length
+          , i = 0
+          , meta
+          , data
+          , content
+        ;
+        for (; i < len; i++) {
+          if (args[i].substr(0, 5).toLowerCase() === "data:") {
+            data = args[i];
+            content = data.indexOf(",");
+            meta = data.substr(5, content).toLowerCase();
+            data = decodeURIComponent(data.substr(content + 1));
+            if (/;\s*base64\s*[;,]/.test(meta)) {
+              data = atob(data);
+            }
+            if (/;\s*charset=[uU][tT][fF]-?8\s*[;,]/.test(meta)) {
+              data = decodeURIComponent(escape(data));
+            }
+          } else {
+            xhr.open("GET", args[i], false);
+            xhr.send(null);
+            data = xhr.responseText;
+          }
+          globalEval(data);
+        }
+      };
+    }(eval));
+  }
+
+
+  importScripts('/assets/libs/audio-recorder/lame.min.js');
+
+  var mp3Encoder, maxSamples = 1152, samplesMono, lame, config, dataBuffer;
+
+  var clearBuffer = function () {
+    dataBuffer = [];
+  };
+
+  var appendToBuffer = function (mp3Buf) {
+    dataBuffer.push(new Int8Array(mp3Buf));
+  };
+
+  var init = function (prefConfig) {
+    config = prefConfig || {};
+    lame = new lamejs();
+    mp3Encoder = new lame.Mp3Encoder(1, config.sampleRate || 44100, config.bitRate || 128);
+    clearBuffer();
+    self.postMessage({
+      cmd: 'init'
+    });
+  };
+
+  var floatTo16BitPCM = function (input, output) {
+    for (var i = 0; i < input.length; i++) {
+      var s = Math.max(-1, Math.min(1, input[i]));
+      output[i] = (s < 0 ? s * 0x8000 : s * 0x7FFF);
+    }
+  };
+
+  var convertBuffer = function (arrayBuffer) {
+    var data = new Float32Array(arrayBuffer);
+    var out = new Int16Array(arrayBuffer.length);
+    floatTo16BitPCM(data, out);
+    return out;
+  };
+
+  var encode = function (arrayBuffer) {
+    samplesMono = convertBuffer(arrayBuffer);
+    var remaining = samplesMono.length;
+    for (var i = 0; remaining >= 0; i += maxSamples) {
+      var left = samplesMono.subarray(i, i + maxSamples);
+      var mp3buf = mp3Encoder.encodeBuffer(left);
+      appendToBuffer(mp3buf);
+      remaining -= maxSamples;
+    }
+  };
+
+  var finish = function () {
+    appendToBuffer(mp3Encoder.flush());
+    self.postMessage({
+      cmd: 'end',
+      buf: dataBuffer
+    });
+    clearBuffer();
+  };
+
+  self.onmessage = function (e) {
+    switch (e.data.cmd) {
+      case 'init':
+        init(e.data.config);
+        break;
+      case 'encode':
+        encode(e.data.buf);
+        break;
+      case 'finish':
+        finish();
+        break;
+    }
+  };
+})();
diff --git a/src/assets/libs/service-worker/cache-service.js b/src/assets/libs/service-worker/cache-service.js
new file mode 100644
index 0000000..d9111ae
--- /dev/null
+++ b/src/assets/libs/service-worker/cache-service.js
@@ -0,0 +1,535 @@
+/*
+ Copyright 2014 Google Inc. All Rights Reserved.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+// While overkill for this specific sample in which there is only one cache,
+// this is one best practice that can be followed in general to keep track of
+// multiple caches used by a given service worker, and keep them all versioned.
+// It maps a shorthand identifier for a cache to a specific, versioned cache name.
+
+// Note that since global state is discarded in between service worker restarts, these
+// variables will be reinitialized each time the service worker handles an event, and you
+// should not attempt to change their values inside an event handler. (Treat them as constants.)
+
+// If at any point you want to force pages that use this service worker to start using a fresh
+// cache, then increment the CACHE_VERSION value. It will kick off the service worker update
+// flow and the old cache(s) will be purged as part of the activate event handler when the
+// updated service worker is activated.
+var CACHE_SID = 0;
+var CACHE_VER = '';
+var isPlayerPage = false;
+// var CURRENT_CACHES = {};
+// var CURRENT_CACHES = null;
+
+async function progressDownloader(urlOrRequest, port, sid) {
+  let url = urlOrRequest;
+  let response = await fetch(url);
+  if (urlOrRequest instanceof Request) {
+    url = urlOrRequest.url;
+  }
+  let isBin = false;
+  if (url.endsWith('.mp4')
+    || url.endsWith('.mp3')
+    || url.endsWith('.jpg')
+    || url.endsWith('.png')){
+    isBin = true;
+  }
+
+  const reader = response.body.getReader();
+  const contentLength = +response.headers.get('Content-Length');
+  port.postMessage({
+    len: contentLength,
+    status: 'init',
+    sid
+  });
+  let receivedLength = 0;
+  let mb = 0;
+  let timeS = new Date().getTime();
+  let timeD = 0;
+  let speed = 0;
+  let chunks = []; // array of received binary chunks (comprises the body)
+  while(true) {
+    const {done, value} = await reader.read();
+    if (done) {
+      break;
+    }
+    chunks.push(value);
+    receivedLength += value.length;
+    /*mb += value.length;
+    if(mb > 1000 * 1000) {
+      timeD = new Date().getTime() - timeS;
+      // timeD = timeD /1000;
+      speed = mb / timeD;
+      mb = 0;
+      timeS = new Date().getTime();
+    }*/
+    // console.log(`Received ${receivedLength} of ${contentLength}`)
+    // cb && cb(receivedLength , contentLength)
+    port.postMessage({
+      loaded: value.length,
+      status: 'downloading',
+      sid
+    });
+  }
+
+  if (isBin) {
+    return new Blob(chunks);
+  } else {
+    let chunksAll = new Uint8Array(receivedLength);
+    let position = 0;
+    for(let chunk of chunks) {
+      chunksAll.set(chunk, position);
+      position += chunk.length;
+    }
+    return chunksAll; //new TextDecoder("utf-8").decode(chunksAll);
+  }
+
+}
+self.addEventListener('install', function(event) {
+  event.waitUntil(self.skipWaiting()); // Activate worker immediately
+});
+
+self.addEventListener('activate', function(event) {
+  event.waitUntil(self.clients.claim({
+    includeUncontrolled: true
+  }).then(function() {
+    // After the activation and claiming is complete, send a message to each of the controlled
+    // pages letting it know that it's active.
+    // This will trigger navigator.serviceWorker.onmessage in each client.
+    return self.clients.matchAll().then(function(clients) {
+      return Promise.all(clients.map(function(client) {
+        // return client.postMessage('The service worker has activated and ' +
+        //   'taken control.');
+        return client.postMessage({
+          name: 'initOk',
+        });
+
+      }));
+    });
+  })); // Become available to all pages
+});
+/*
+self.addEventListener('activate', function(event) {
+  // Delete all caches that aren't named in CURRENT_CACHES.
+  // While there is only one cache in this example, the same logic will handle the case where
+  // there are multiple versioned caches.
+  // var expectedCacheNames = Object.keys(CURRENT_CACHES).map(function(key) {
+  //   return CURRENT_CACHES[key];
+  // });
+
+  event.waitUntil(
+    caches.keys().then(function(cacheNames) {
+      // return Promise.all(
+      //   cacheNames.map(function(cacheName) {
+      //     if (expectedCacheNames.indexOf(cacheName) === -1) {
+      //       // If this cache name isn't present in the array of "expected" cache names, then delete it.
+      //       console.log('Deleting out of date cache:', cacheName);
+      //       return caches.delete(cacheName);
+      //     }
+      //   })
+      // );
+    }).then(function() {
+      return clients.claim();
+    }).then(function() {
+      // After the activation and claiming is complete, send a message to each of the controlled
+      // pages letting it know that it's active.
+      // This will trigger navigator.serviceWorker.onmessage in each client.
+      return self.clients.matchAll().then(function(clients) {
+        return Promise.all(clients.map(function(client) {
+          return client.postMessage('The service worker has activated and ' +
+            'taken control.');
+        }));
+      });
+    })
+  );
+});*/
+
+self.addEventListener('message', function(event) {
+  // console.log('Handling message event:', event);
+  if (event.data.command === 'remove') {
+    if (!event.data.key) {
+      return;
+    }
+    caches.delete(event.data.key)
+    /*caches.keys().then(function(cacheNames) {
+      console.log('clear', cacheNames);
+      // return caches.delete(event.data.ver);
+      // CACHE_VER = event.data.newVer;
+      // CACHE_SID = event.data.sid;
+      if (!event.data.key) {
+        return;
+      }
+      return caches.delete(event.data.key);
+      return Promise.all(
+        cacheNames.map(function(cacheName) {
+          if ( cache_ver === cacheName) {
+            // If this cache name isn't present in the array of "expected" cache names, then delete it.
+            console.log('Deleting out of date cache:', cacheName);
+            // localStorage.removeItem('item-cache-'+event.data.sid);
+            // self.clients.matchAll().then(function(clients) {
+            //   clients.forEach(function(client) {
+            //     client.postMessage({
+            //
+            //     });
+            //   });
+            // });
+            console.log('delete', cacheName)
+            return caches.delete(cacheName);
+          }
+        })
+      );
+    })*/
+      /*.then(function() {
+      return clients.claim();
+    })*/
+      /*.then(function() {
+      // After the activation and claiming is complete, send a message to each of the controlled
+      // pages letting it know that it's active.
+      // This will trigger navigator.serviceWorker.onmessage in each client.
+      return self.clients.matchAll().then(function(clients) {
+        return Promise.all(clients.map(function(client) {
+          return client.postMessage('The service worker has activated and ' +
+            'taken control.');
+        }));
+      });
+    })*/
+      .then(function() {
+        console.log('delete finished')
+      event.ports[0].postMessage({
+        error: null
+      });
+    });
+    return;
+  }
+  if (event.data.command === 'clearAll') {
+    event.waitUntil(
+      caches.keys().then(function(cacheNames) {
+        return Promise.all(
+          cacheNames.map(function(cacheName) {
+            return caches.delete(cacheName);
+          })
+        );
+      }).then(function() {
+        event.ports[0].postMessage({
+          error: null
+        });
+      }).catch(err => {
+        event.ports[0].postMessage({
+          error: err,
+        });
+      })
+    );
+    return;
+  }
+  if (event.data.command === 'listCachedCoursewares') {
+    var cacheData = {}
+    // caches.open('item-cache-c965d3a0630911e994fa058136a96bb1-1556518161000').then(r=>{console.log(r.keys().then(items=>console.log(items[0])))})
+    caches.keys().then((cacheNames) => {
+      cacheNames.map((cacheName) => {
+        if (cacheName.indexOf('item-cache') > -1) {
+          var size = 0;
+          caches.open(cacheName).then((cache) => {
+            console.log(cacheName)
+            cache.keys().then((requests) => {
+              console.log(requests[0])
+              for(var req of requests) {
+                console.log(req)
+                cache.match(req.url).then(resp => {
+                  console.log(resp.headers.entries())
+                })
+              //   cache.match(req.url).then((resp) => {
+              //     console.log(req.url, resp.length)
+              //     size += parseInt(resp.headers['Content-Length'])
+              //   }).catch(err => {
+              //     console.log(err)
+              //   });
+              }
+            }).then(() => {
+              cacheData.cacheName = size;
+            })
+          });
+
+        }
+      });
+    }).then(function(result) {
+      // event.ports[0].postMessage({
+      //   error: null,
+      //   urls: urls
+      // });
+    });
+    return;
+  }
+
+  // var key = 'item-cache-' + event.data.sid + '-'+ event.data.ver;
+  var key = event.data.key;
+  var p = caches.open(key).then(function(cache) {
+    // throw {name: 'QuotaExceededError'}
+    switch (event.data.command) {
+      // This command returns a list of the URLs corresponding to the Request objects
+      // that serve as keys for the current cache.
+      case 'keys':
+        return cache.keys().then(function(requests) {
+          var urls = requests.map(function(request) {
+            return request.url;
+          });
+
+          return urls.sort();
+        }).then(function(urls) {
+          // event.ports[0] corresponds to the MessagePort that was transferred as part of the controlled page's
+          // call to controller.postMessage(). Therefore, event.ports[0].postMessage() will trigger the onmessage
+          // handler from the controlled page.
+          // It's up to you how to structure the messages that you send back; this is just one example.
+          event.ports[0].postMessage({
+            error: null,
+            urls: urls
+          });
+        });
+
+      // This command adds a new request/response pair to the cache.
+      case 'add':
+        // If event.data.url isn't a valid URL, new Request() will throw a TypeError which will be handled
+        // by the outer .catch().
+        // Hardcode {mode: 'no-cors} since the default for new Requests constructed from strings is to require
+        // CORS, and we don't have any way of knowing whether an arbitrary URL that a user entered supports CORS.
+        var request = new Request(event.data.url, {mode: 'cors', cache: 'reload'}); //  {mode: 'no-cors'}
+        // console.log('start', event.data.url);
+        // return fetch(request)
+        //   .then(function(res){
+        //     return res.arrayBuffer();
+        //   })
+          const startTime = new Date().getTime();
+          let len = 0;
+          return progressDownloader(request, event.ports[0], event.data.sid).then((ab) => {
+            var cl = ab.size ? ab.size : ab.byteLength;
+            len = cl;
+            return cache.put(event.data.url, new Response(ab, {
+              // url: event.data.url,
+              // type: 'cors',
+              status: 200,
+              statusText: 'OK',
+              headers: [
+                ['Content-Length', cl+''],
+              ]
+            }));
+          }).then(function(r) {
+            event.ports[0].postMessage({
+              error: null,
+              status: 'finished',
+              len: len,
+              time: new Date().getTime() - startTime
+            });
+          });
+
+      // This command removes a request/response pair from the cache (assuming it exists).
+      case 'delete':
+        return cache.delete(event.data.url).then(function(success) {
+          event.ports[0].postMessage({
+            error: success ? null : 'Item was not found in the cache.'
+          });
+        });
+
+      default:
+        // This will be handled by the outer .catch().
+        throw Error('Unknown command: ' + event.data.command);
+    }
+  }).catch(function(error) {
+    // If the promise rejects, handle it by returning a standardized error message to the controlled page.
+    console.log('Message handling failed:', event.data.url, error);
+    // if (error.name == 'QuotaExceededError') {
+      event.ports[0].postMessage({
+        //error: {name: 'QuotaExceededError'}
+        error: {name: error.name, message: error.message},
+        status: 'error'
+      });
+    // }
+  });
+
+  // Beginning in Chrome 51, event is an ExtendableMessageEvent, which supports
+  // the waitUntil() method for extending the lifetime of the event handler
+  // until the promise is resolved.
+  if ('waitUntil' in event) {
+    event.waitUntil(p);
+  }
+
+  // Without support for waitUntil(), there's a chance that if the promise chain
+  // takes "too long" to execute, the service worker might be automatically
+  // stopped before it's complete.
+});
+
+
+self.addEventListener('fetch', function(event) {
+
+  // console.log('Handling fetch event for', event.request.method, event.request.url);
+  // if (event.request.method !== 'GET' || !CACHE_SID || !CACHE_VER) {
+  //   event.respondWith(function(){
+  //     return fetch(request).then(networkResponse => {
+  //       return networkResponse;
+  //     }).catch(_ => {
+  //       console.error('direct Fetching failed:', error);
+  //
+  //       throw error;
+  //     })
+  //   });
+  //
+  //   return;
+  // }
+
+  /*if (!CACHE_SID || !CACHE_VER) {
+    event.request.mode = 'no-cors';
+    return fetch(event.request).then(function(response) {
+      // console.log('Response from network is:', response);
+      console.log(999)
+      return response;
+    }).catch(function(error) {
+      // This catch() will handle exceptions thrown from the fetch() operation.
+      // Note that a HTTP error response (e.g. 404) will NOT trigger an exception.
+      // It will return a normal response object that has the appropriate error code set.
+      console.error('Fetching failed 9:', error);
+
+      throw error;
+    });
+  }*/
+  // var isNormReq = !CACHE_SID || !CACHE_VER;
+  // var key = 'item-cache-' + CACHE_SID + '-'+ CACHE_VER;
+  if (event.request.method == 'GET' ) {
+    if (event.request.headers.get('range')) {
+      var pos =
+        Number(/^bytes\=(\d+)\-$/g.exec(event.request.headers.get('range'))[1]);
+      // console.log('Range request for', event.request.url,
+      //   ', starting position:', pos);
+      event.respondWith(
+        caches.match(event.request.url, {
+          ignoreSearch: true,
+          ignoreVary: true
+        }).then(function(response) {
+          if (response) {
+            console.log('Found response in cache:', event.request.url);
+            return response.arrayBuffer().then(ab => {
+              return new Response(
+                ab.slice(pos),
+                {
+                  status: 206,
+                  statusText: 'Partial Content',
+                  headers: [
+                    ['Content-Length', ab.byteLength+''],
+                    ['Content-Range', 'bytes ' + pos + '-' +
+                    (ab.byteLength - 1) + '/' + ab.byteLength]]
+                });
+            });
+
+            // return response;
+          }
+          // event.request.mode = 'cors';
+          // event.request.cache = 'reload';
+          var request = new Request(event.request.url,
+            {
+              method: event.request.method,
+              mode: 'cors',
+              cache: 'reload',
+              headers: event.request.headers
+            });
+          return fetch(request).then(function(response) {
+            console.log('Response from network is:', event.request.url);
+            return response;
+          })/*.then(res => {
+            return res.arrayBuffer();
+          }).then(ab => {
+            return new Response(
+              ab.slice(pos),
+              {
+                status: 206,
+                statusText: 'Partial Content',
+                headers: [
+                  ['Content-Length', ab.byteLength+''],
+                  ['Content-Range', 'bytes ' + pos + '-' +
+                  (ab.byteLength - 1) + '/' + (pos + ab.byteLength)]]
+              });
+          })*/
+        })
+        /*caches.open(key)
+          .then(function(cache) {
+            return cache.match(event.request.url);
+          }).then(function(res) {
+          if (!res) {
+            return fetch(event.request)
+              .then(res => {
+                return res.arrayBuffer();
+              });
+          }
+          return res.arrayBuffer();
+        }).then(function(ab) {
+          return new Response(
+            ab.slice(pos),
+            {
+              status: 206,
+              statusText: 'Partial Content',
+              headers: [
+                ['Content-Length', ab.byteLength+''],
+                ['Content-Range', 'bytes ' + pos + '-' +
+                (ab.byteLength - 1) + '/' + ab.byteLength]]
+            });
+        })*/
+      );
+    } else {
+      // console.log('Non-range request for', event.request.url);
+      event.respondWith(
+        // caches.match() will look for a cache entry in all of the caches available to the service worker.
+        // It's an alternative to first opening a specific named cache and then matching on that.
+        caches.match(event.request, {
+          ignoreSearch: true,
+          ignoreVary: true
+        }).then(function(response) {
+          if (response) {
+            // console.log('%c Response in cache:', 'color:DodgerBlue;', response);
+            return response;
+          }
+
+          // event.request will always have the proper mode set ('cors, 'no-cors', etc.) so we don't
+          // have to hardcode 'no-cors' like we do when fetch()ing in the install handler.
+          // event.request.mode = 'cors';
+          // cache: 'reload'
+          if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') {
+            return;
+          }
+          // console.log('No response found in cache.', event.request.url);
+          return fetch(event.request).then(function(response) {
+            // console.log('%c Response from network is:', 'color:#bada55', response);
+
+            return response;
+          }).catch(function(error) {
+            // This catch() will handle exceptions thrown from the fetch() operation.
+            // Note that a HTTP error response (e.g. 404) will NOT trigger an exception.
+            // It will return a normal response object that has the appropriate error code set.
+            console.error('Fetching failed:', error);
+
+            // throw error;
+          });
+        })
+      );
+    }
+  } else {
+    event.respondWith(
+      fetch(event.request).then(function(response) {
+        // console.log('not get from network:', response);
+        // console.log(888)
+        return response;
+      }).catch(function(error) {
+        // This catch() will handle exceptions thrown from the fetch() operation.
+        // Note that a HTTP error response (e.g. 404) will NOT trigger an exception.
+        // It will return a normal response object that has the appropriate error code set.
+        console.error('Fetching failed 8:', error);
+        throw error;
+      })
+    );
+  }
+});
+
diff --git a/src/assets/libs/video-js-7.0.0/video-js.css b/src/assets/libs/video-js-7.0.0/video-js.css
new file mode 100644
index 0000000..aff41ca
--- /dev/null
+++ b/src/assets/libs/video-js-7.0.0/video-js.css
@@ -0,0 +1,1699 @@
+.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-modal-dialog, .vjs-modal-dialog .vjs-modal-dialog-content {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+
+.video-js .vjs-big-play-button .vjs-icon-placeholder:before, .vjs-button > .vjs-icon-placeholder:before {
+  text-align: center;
+}
+
+@font-face {
+  font-family: VideoJS;
+  src: url(data:application/font-woff;charset=utf-8;base64,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) format("woff");
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-play, .video-js .vjs-big-play-button .vjs-icon-placeholder:before, .video-js .vjs-play-control .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-play:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before, .video-js .vjs-play-control .vjs-icon-placeholder:before {
+  content: "\f101";
+}
+
+.vjs-icon-play-circle {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-play-circle:before {
+  content: "\f102";
+}
+
+.vjs-icon-pause, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-pause:before, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before {
+  content: "\f103";
+}
+
+.vjs-icon-volume-mute, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-volume-mute:before, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before {
+  content: "\f104";
+}
+
+.vjs-icon-volume-low, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-volume-low:before, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before {
+  content: "\f105";
+}
+
+.vjs-icon-volume-mid, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-volume-mid:before, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before {
+  content: "\f106";
+}
+
+.vjs-icon-volume-high, .video-js .vjs-mute-control .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-volume-high:before, .video-js .vjs-mute-control .vjs-icon-placeholder:before {
+  content: "\f107";
+}
+
+.vjs-icon-fullscreen-enter, .video-js .vjs-fullscreen-control .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-fullscreen-enter:before, .video-js .vjs-fullscreen-control .vjs-icon-placeholder:before {
+  content: "\f108";
+}
+
+.vjs-icon-fullscreen-exit, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-fullscreen-exit:before, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before {
+  content: "\f109";
+}
+
+.vjs-icon-square {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-square:before {
+  content: "\f10a";
+}
+
+.vjs-icon-spinner {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-spinner:before {
+  content: "\f10b";
+}
+
+.vjs-icon-subtitles, .video-js .vjs-subtitles-button .vjs-icon-placeholder, .video-js .vjs-subs-caps-button .vjs-icon-placeholder,
+.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,
+.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,
+.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,
+.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-subtitles:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before, .video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,
+.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,
+.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,
+.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,
+.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before {
+  content: "\f10c";
+}
+
+.vjs-icon-captions, .video-js .vjs-captions-button .vjs-icon-placeholder, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,
+.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-captions:before, .video-js .vjs-captions-button .vjs-icon-placeholder:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,
+.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before {
+  content: "\f10d";
+}
+
+.vjs-icon-chapters, .video-js .vjs-chapters-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-chapters:before, .video-js .vjs-chapters-button .vjs-icon-placeholder:before {
+  content: "\f10e";
+}
+
+.vjs-icon-share {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-share:before {
+  content: "\f10f";
+}
+
+.vjs-icon-cog {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-cog:before {
+  content: "\f110";
+}
+
+.vjs-icon-circle, .video-js .vjs-play-progress, .video-js .vjs-volume-level {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-circle:before, .video-js .vjs-play-progress:before, .video-js .vjs-volume-level:before {
+  content: "\f111";
+}
+
+.vjs-icon-circle-outline {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-circle-outline:before {
+  content: "\f112";
+}
+
+.vjs-icon-circle-inner-circle {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-circle-inner-circle:before {
+  content: "\f113";
+}
+
+.vjs-icon-hd {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-hd:before {
+  content: "\f114";
+}
+
+.vjs-icon-cancel, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-cancel:before, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before {
+  content: "\f115";
+}
+
+.vjs-icon-replay, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-replay:before, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before {
+  content: "\f116";
+}
+
+.vjs-icon-facebook {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-facebook:before {
+  content: "\f117";
+}
+
+.vjs-icon-gplus {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-gplus:before {
+  content: "\f118";
+}
+
+.vjs-icon-linkedin {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-linkedin:before {
+  content: "\f119";
+}
+
+.vjs-icon-twitter {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-twitter:before {
+  content: "\f11a";
+}
+
+.vjs-icon-tumblr {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-tumblr:before {
+  content: "\f11b";
+}
+
+.vjs-icon-pinterest {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-pinterest:before {
+  content: "\f11c";
+}
+
+.vjs-icon-audio-description, .video-js .vjs-descriptions-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-audio-description:before, .video-js .vjs-descriptions-button .vjs-icon-placeholder:before {
+  content: "\f11d";
+}
+
+.vjs-icon-audio, .video-js .vjs-audio-button .vjs-icon-placeholder {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-audio:before, .video-js .vjs-audio-button .vjs-icon-placeholder:before {
+  content: "\f11e";
+}
+
+.vjs-icon-next-item {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-next-item:before {
+  content: "\f11f";
+}
+
+.vjs-icon-previous-item {
+  font-family: VideoJS;
+  font-weight: normal;
+  font-style: normal;
+}
+
+.vjs-icon-previous-item:before {
+  content: "\f120";
+}
+
+.video-js {
+  display: block;
+  vertical-align: top;
+  box-sizing: border-box;
+  color: #fff;
+  background-color: #000;
+  position: relative;
+  padding: 0;
+  font-size: 10px;
+  line-height: 1;
+  font-weight: normal;
+  font-style: normal;
+  font-family: Arial, Helvetica, sans-serif;
+  word-break: initial;
+}
+
+.video-js:-moz-full-screen {
+  position: absolute;
+}
+
+.video-js:-webkit-full-screen {
+  width: 100% !important;
+  height: 100% !important;
+}
+
+.video-js[tabindex="-1"] {
+  outline: none;
+}
+
+.video-js *,
+.video-js *:before,
+.video-js *:after {
+  box-sizing: inherit;
+}
+
+.video-js ul {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+  list-style-position: outside;
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.video-js.vjs-fluid,
+.video-js.vjs-16-9,
+.video-js.vjs-4-3 {
+  width: 100%;
+  max-width: 100%;
+  height: 0;
+}
+
+.video-js.vjs-16-9 {
+  padding-top: 56.25%;
+}
+
+.video-js.vjs-4-3 {
+  padding-top: 75%;
+}
+
+.video-js.vjs-fill {
+  width: 100%;
+  height: 100%;
+}
+
+.video-js .vjs-tech {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+
+body.vjs-full-window {
+  padding: 0;
+  margin: 0;
+  height: 100%;
+}
+
+.vjs-full-window .video-js.vjs-fullscreen {
+  position: fixed;
+  overflow: hidden;
+  z-index: 1000;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  right: 0;
+}
+
+.video-js.vjs-fullscreen {
+  width: 100% !important;
+  height: 100% !important;
+  padding-top: 0 !important;
+}
+
+.video-js.vjs-fullscreen.vjs-user-inactive {
+  cursor: none;
+}
+
+.vjs-hidden {
+  display: none !important;
+}
+
+.vjs-disabled {
+  opacity: 0.5;
+  cursor: default;
+}
+
+.video-js .vjs-offscreen {
+  height: 1px;
+  left: -9999px;
+  position: absolute;
+  top: 0;
+  width: 1px;
+}
+
+.vjs-lock-showing {
+  display: block !important;
+  opacity: 1;
+  visibility: visible;
+}
+
+.vjs-no-js {
+  padding: 20px;
+  color: #fff;
+  background-color: #000;
+  font-size: 18px;
+  font-family: Arial, Helvetica, sans-serif;
+  text-align: center;
+  width: 300px;
+  height: 150px;
+  margin: 0px auto;
+}
+
+.vjs-no-js a,
+.vjs-no-js a:visited {
+  color: #66A8CC;
+}
+
+.video-js .vjs-big-play-button {
+  font-size: 3em;
+  line-height: 1.5em;
+  height: 1.5em;
+  width: 3em;
+  display: block;
+  position: absolute;
+  top: 10px;
+  left: 10px;
+  padding: 0;
+  cursor: pointer;
+  opacity: 1;
+  border: 0.06666em solid #fff;
+  background-color: #2B333F;
+  background-color: rgba(43, 51, 63, 0.7);
+  -webkit-border-radius: 0.3em;
+  -moz-border-radius: 0.3em;
+  border-radius: 0.3em;
+  -webkit-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  -ms-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  transition: all 0.4s;
+}
+
+.vjs-big-play-centered .vjs-big-play-button {
+  top: 50%;
+  left: 50%;
+  margin-top: -0.75em;
+  margin-left: -1.5em;
+}
+
+.video-js:hover .vjs-big-play-button,
+.video-js .vjs-big-play-button:focus {
+  border-color: #fff;
+  background-color: #73859f;
+  background-color: rgba(115, 133, 159, 0.5);
+  -webkit-transition: all 0s;
+  -moz-transition: all 0s;
+  -ms-transition: all 0s;
+  -o-transition: all 0s;
+  transition: all 0s;
+}
+
+.vjs-controls-disabled .vjs-big-play-button,
+.vjs-has-started .vjs-big-play-button,
+.vjs-using-native-controls .vjs-big-play-button,
+.vjs-error .vjs-big-play-button {
+  display: none;
+}
+
+.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button {
+  display: block;
+}
+
+.video-js button {
+  background: none;
+  border: none;
+  color: inherit;
+  display: inline-block;
+  font-size: inherit;
+  line-height: inherit;
+  text-transform: none;
+  text-decoration: none;
+  transition: none;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+}
+
+.vjs-control .vjs-button {
+  width: 100%;
+  height: 100%;
+}
+
+.video-js .vjs-control.vjs-close-button {
+  cursor: pointer;
+  height: 3em;
+  position: absolute;
+  right: 0;
+  top: 0.5em;
+  z-index: 2;
+}
+
+.video-js .vjs-modal-dialog {
+  background: rgba(0, 0, 0, 0.8);
+  background: -webkit-linear-gradient(-90deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));
+  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));
+  overflow: auto;
+}
+
+.video-js .vjs-modal-dialog > * {
+  box-sizing: border-box;
+}
+
+.vjs-modal-dialog .vjs-modal-dialog-content {
+  font-size: 1.2em;
+  line-height: 1.5;
+  padding: 20px 24px;
+  z-index: 1;
+}
+
+.vjs-menu-button {
+  cursor: pointer;
+}
+
+.vjs-menu-button.vjs-disabled {
+  cursor: default;
+}
+
+.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {
+  display: none;
+}
+
+.vjs-menu .vjs-menu-content {
+  display: block;
+  padding: 0;
+  margin: 0;
+  font-family: Arial, Helvetica, sans-serif;
+  overflow: auto;
+}
+
+.vjs-menu .vjs-menu-content > * {
+  box-sizing: border-box;
+}
+
+.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {
+  display: none;
+}
+
+.vjs-menu li {
+  list-style: none;
+  margin: 0;
+  padding: 0.2em 0;
+  line-height: 1.4em;
+  font-size: 1.2em;
+  text-align: center;
+  text-transform: lowercase;
+}
+
+.vjs-menu li.vjs-menu-item:focus,
+.vjs-menu li.vjs-menu-item:hover {
+  background-color: #73859f;
+  background-color: rgba(115, 133, 159, 0.5);
+}
+
+.vjs-menu li.vjs-selected,
+.vjs-menu li.vjs-selected:focus,
+.vjs-menu li.vjs-selected:hover {
+  background-color: #fff;
+  color: #2B333F;
+}
+
+.vjs-menu li.vjs-menu-title {
+  text-align: center;
+  text-transform: uppercase;
+  font-size: 1em;
+  line-height: 2em;
+  padding: 0;
+  margin: 0 0 0.3em 0;
+  font-weight: bold;
+  cursor: default;
+}
+
+.vjs-menu-button-popup .vjs-menu {
+  display: none;
+  position: absolute;
+  bottom: 0;
+  width: 10em;
+  left: -3em;
+  height: 0em;
+  margin-bottom: 1.5em;
+  border-top-color: rgba(43, 51, 63, 0.7);
+}
+
+.vjs-menu-button-popup .vjs-menu .vjs-menu-content {
+  background-color: #2B333F;
+  background-color: rgba(43, 51, 63, 0.7);
+  position: absolute;
+  width: 100%;
+  bottom: 1.5em;
+  max-height: 15em;
+}
+
+.vjs-workinghover .vjs-menu-button-popup:hover .vjs-menu,
+.vjs-menu-button-popup .vjs-menu.vjs-lock-showing {
+  display: block;
+}
+
+.video-js .vjs-menu-button-inline {
+  -webkit-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  -ms-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  transition: all 0.4s;
+  overflow: hidden;
+}
+
+.video-js .vjs-menu-button-inline:before {
+  width: 2.222222222em;
+}
+
+.video-js .vjs-menu-button-inline:hover,
+.video-js .vjs-menu-button-inline:focus,
+.video-js .vjs-menu-button-inline.vjs-slider-active,
+.video-js.vjs-no-flex .vjs-menu-button-inline {
+  width: 12em;
+}
+
+.vjs-menu-button-inline .vjs-menu {
+  opacity: 0;
+  height: 100%;
+  width: auto;
+  position: absolute;
+  left: 4em;
+  top: 0;
+  padding: 0;
+  margin: 0;
+  -webkit-transition: all 0.4s;
+  -moz-transition: all 0.4s;
+  -ms-transition: all 0.4s;
+  -o-transition: all 0.4s;
+  transition: all 0.4s;
+}
+
+.vjs-menu-button-inline:hover .vjs-menu,
+.vjs-menu-button-inline:focus .vjs-menu,
+.vjs-menu-button-inline.vjs-slider-active .vjs-menu {
+  display: block;
+  opacity: 1;
+}
+
+.vjs-no-flex .vjs-menu-button-inline .vjs-menu {
+  display: block;
+  opacity: 1;
+  position: relative;
+  width: auto;
+}
+
+.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,
+.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,
+.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu {
+  width: auto;
+}
+
+.vjs-menu-button-inline .vjs-menu-content {
+  width: auto;
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+}
+
+.video-js .vjs-control-bar {
+  display: none;
+  width: 100%;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  height: 3.0em;
+  background-color: #2B333F;
+  background-color: rgba(43, 51, 63, 0.7);
+}
+
+.vjs-has-started .vjs-control-bar {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  visibility: visible;
+  opacity: 1;
+  -webkit-transition: visibility 0.1s, opacity 0.1s;
+  -moz-transition: visibility 0.1s, opacity 0.1s;
+  -ms-transition: visibility 0.1s, opacity 0.1s;
+  -o-transition: visibility 0.1s, opacity 0.1s;
+  transition: visibility 0.1s, opacity 0.1s;
+}
+
+.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
+  visibility: visible;
+  opacity: 0;
+  -webkit-transition: visibility 1s, opacity 1s;
+  -moz-transition: visibility 1s, opacity 1s;
+  -ms-transition: visibility 1s, opacity 1s;
+  -o-transition: visibility 1s, opacity 1s;
+  transition: visibility 1s, opacity 1s;
+}
+
+.vjs-controls-disabled .vjs-control-bar,
+.vjs-using-native-controls .vjs-control-bar,
+.vjs-error .vjs-control-bar {
+  display: none !important;
+}
+
+.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
+  opacity: 1;
+  visibility: visible;
+}
+
+.vjs-has-started.vjs-no-flex .vjs-control-bar {
+  display: table;
+}
+
+.video-js .vjs-control {
+  position: relative;
+  text-align: center;
+  margin: 0;
+  padding: 0;
+  height: 100%;
+  width: 4em;
+  -webkit-box-flex: none;
+  -moz-box-flex: none;
+  -webkit-flex: none;
+  -ms-flex: none;
+  flex: none;
+}
+
+.vjs-button > .vjs-icon-placeholder:before {
+  font-size: 1.8em;
+  line-height: 1.67;
+}
+
+.video-js .vjs-control:focus:before,
+.video-js .vjs-control:hover:before,
+.video-js .vjs-control:focus {
+  text-shadow: 0em 0em 1em white;
+}
+
+.video-js .vjs-control-text {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+
+.vjs-no-flex .vjs-control {
+  display: table-cell;
+  vertical-align: middle;
+}
+
+.video-js .vjs-custom-control-spacer {
+  display: none;
+}
+
+.video-js .vjs-progress-control {
+  cursor: pointer;
+  -webkit-box-flex: auto;
+  -moz-box-flex: auto;
+  -webkit-flex: auto;
+  -ms-flex: auto;
+  flex: auto;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+  -ms-flex-align: center;
+  align-items: center;
+  min-width: 4em;
+}
+
+.video-js .vjs-progress-control.disabled {
+  cursor: default;
+}
+
+.vjs-live .vjs-progress-control {
+  display: none;
+}
+
+.vjs-no-flex .vjs-progress-control {
+  width: auto;
+}
+
+.video-js .vjs-progress-holder {
+  -webkit-box-flex: auto;
+  -moz-box-flex: auto;
+  -webkit-flex: auto;
+  -ms-flex: auto;
+  flex: auto;
+  -webkit-transition: all 0.2s;
+  -moz-transition: all 0.2s;
+  -ms-transition: all 0.2s;
+  -o-transition: all 0.2s;
+  transition: all 0.2s;
+  height: 0.3em;
+}
+
+.video-js .vjs-progress-control .vjs-progress-holder {
+  margin: 0 10px;
+}
+
+.video-js .vjs-progress-control:hover .vjs-progress-holder {
+  font-size: 1.666666666666666666em;
+}
+
+.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {
+  font-size: 1em;
+}
+
+.video-js .vjs-progress-holder .vjs-play-progress,
+.video-js .vjs-progress-holder .vjs-load-progress,
+.video-js .vjs-progress-holder .vjs-load-progress div {
+  position: absolute;
+  display: block;
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  width: 0;
+}
+
+.video-js .vjs-play-progress {
+  background-color: #fff;
+}
+
+.video-js .vjs-play-progress:before {
+  font-size: 0.9em;
+  position: absolute;
+  right: -0.5em;
+  top: -0.333333333333333em;
+  z-index: 1;
+}
+
+.video-js .vjs-load-progress {
+  background: rgba(115, 133, 159, 0.5);
+}
+
+.video-js .vjs-load-progress div {
+  background: rgba(115, 133, 159, 0.75);
+}
+
+.video-js .vjs-time-tooltip {
+  background-color: #fff;
+  background-color: rgba(255, 255, 255, 0.8);
+  -webkit-border-radius: 0.3em;
+  -moz-border-radius: 0.3em;
+  border-radius: 0.3em;
+  color: #000;
+  float: right;
+  font-family: Arial, Helvetica, sans-serif;
+  font-size: 1em;
+  padding: 6px 8px 8px 8px;
+  pointer-events: none;
+  position: relative;
+  top: -3.4em;
+  visibility: hidden;
+  z-index: 1;
+}
+
+.video-js .vjs-progress-holder:focus .vjs-time-tooltip {
+  display: none;
+}
+
+.video-js .vjs-progress-control:hover .vjs-time-tooltip,
+.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip {
+  display: block;
+  font-size: 0.6em;
+  visibility: visible;
+}
+
+.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {
+  font-size: 1em;
+}
+
+.video-js .vjs-progress-control .vjs-mouse-display {
+  display: none;
+  position: absolute;
+  width: 1px;
+  height: 100%;
+  background-color: #000;
+  z-index: 1;
+}
+
+.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
+  z-index: 0;
+}
+
+.video-js .vjs-progress-control:hover .vjs-mouse-display {
+  display: block;
+}
+
+.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {
+  visibility: hidden;
+  opacity: 0;
+  -webkit-transition: visibility 1s, opacity 1s;
+  -moz-transition: visibility 1s, opacity 1s;
+  -ms-transition: visibility 1s, opacity 1s;
+  -o-transition: visibility 1s, opacity 1s;
+  transition: visibility 1s, opacity 1s;
+}
+
+.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
+  display: none;
+}
+
+.vjs-mouse-display .vjs-time-tooltip {
+  color: #fff;
+  background-color: #000;
+  background-color: rgba(0, 0, 0, 0.8);
+}
+
+.video-js .vjs-slider {
+  position: relative;
+  cursor: pointer;
+  padding: 0;
+  margin: 0 0.45em 0 0.45em;
+  /* iOS Safari */
+  -webkit-touch-callout: none;
+  /* Safari */
+  -webkit-user-select: none;
+  /* Konqueror HTML */
+  -khtml-user-select: none;
+  /* Firefox */
+  -moz-user-select: none;
+  /* Internet Explorer/Edge */
+  -ms-user-select: none;
+  /* Non-prefixed version, currently supported by Chrome and Opera */
+  user-select: none;
+  background-color: #73859f;
+  background-color: rgba(115, 133, 159, 0.5);
+}
+
+.video-js .vjs-slider.disabled {
+  cursor: default;
+}
+
+.video-js .vjs-slider:focus {
+  text-shadow: 0em 0em 1em white;
+  -webkit-box-shadow: 0 0 1em #fff;
+  -moz-box-shadow: 0 0 1em #fff;
+  box-shadow: 0 0 1em #fff;
+}
+
+.video-js .vjs-mute-control {
+  cursor: pointer;
+  -webkit-box-flex: none;
+  -moz-box-flex: none;
+  -webkit-flex: none;
+  -ms-flex: none;
+  flex: none;
+}
+
+.video-js .vjs-volume-control {
+  cursor: pointer;
+  margin-right: 1em;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.video-js .vjs-volume-control.vjs-volume-horizontal {
+  width: 5em;
+}
+
+.video-js .vjs-volume-panel .vjs-volume-control {
+  visibility: visible;
+  opacity: 0;
+  width: 1px;
+  height: 1px;
+  margin-left: -1px;
+}
+
+.video-js .vjs-volume-panel {
+  -webkit-transition: width 1s;
+  -moz-transition: width 1s;
+  -ms-transition: width 1s;
+  -o-transition: width 1s;
+  transition: width 1s;
+}
+
+.video-js .vjs-volume-panel:hover .vjs-volume-control,
+.video-js .vjs-volume-panel:active .vjs-volume-control,
+.video-js .vjs-volume-panel:focus .vjs-volume-control,
+.video-js .vjs-volume-panel .vjs-volume-control:hover,
+.video-js .vjs-volume-panel .vjs-volume-control:active,
+.video-js .vjs-volume-panel .vjs-mute-control:hover ~ .vjs-volume-control,
+.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active {
+  visibility: visible;
+  opacity: 1;
+  position: relative;
+  -webkit-transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
+  -moz-transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
+  -ms-transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
+  -o-transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
+  transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
+}
+
+.video-js .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal,
+.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,
+.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,
+.video-js .vjs-volume-panel .vjs-volume-control:hover.vjs-volume-horizontal,
+.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,
+.video-js .vjs-volume-panel .vjs-mute-control:hover ~ .vjs-volume-control.vjs-volume-horizontal,
+.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal {
+  width: 5em;
+  height: 3em;
+}
+
+.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:hover, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
+  width: 9em;
+  -webkit-transition: width 0.1s;
+  -moz-transition: width 0.1s;
+  -ms-transition: width 0.1s;
+  -o-transition: width 0.1s;
+  transition: width 0.1s;
+}
+
+.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
+  height: 8em;
+  width: 3em;
+  left: -3.5em;
+  -webkit-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
+  -moz-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
+  -ms-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
+  -o-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
+  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
+}
+
+.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
+  -webkit-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
+  -moz-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
+  -ms-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
+  -o-transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
+  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
+}
+
+.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
+  width: 5em;
+  height: 3em;
+  visibility: visible;
+  opacity: 1;
+  position: relative;
+  -webkit-transition: none;
+  -moz-transition: none;
+  -ms-transition: none;
+  -o-transition: none;
+  transition: none;
+}
+
+.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,
+.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
+  position: absolute;
+  bottom: 3em;
+  left: 0.5em;
+}
+
+.video-js .vjs-volume-panel {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.video-js .vjs-volume-bar {
+  margin: 1.35em 0.45em;
+}
+
+.vjs-volume-bar.vjs-slider-horizontal {
+  width: 5em;
+  height: 0.3em;
+}
+
+.vjs-volume-bar.vjs-slider-vertical {
+  width: 0.3em;
+  height: 5em;
+  margin: 1.35em auto;
+}
+
+.video-js .vjs-volume-level {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  background-color: #fff;
+}
+
+.video-js .vjs-volume-level:before {
+  position: absolute;
+  font-size: 0.9em;
+}
+
+.vjs-slider-vertical .vjs-volume-level {
+  width: 0.3em;
+}
+
+.vjs-slider-vertical .vjs-volume-level:before {
+  top: -0.5em;
+  left: -0.3em;
+}
+
+.vjs-slider-horizontal .vjs-volume-level {
+  height: 0.3em;
+}
+
+.vjs-slider-horizontal .vjs-volume-level:before {
+  top: -0.3em;
+  right: -0.5em;
+}
+
+.video-js .vjs-volume-panel.vjs-volume-panel-vertical {
+  width: 4em;
+}
+
+.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {
+  height: 100%;
+}
+
+.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {
+  width: 100%;
+}
+
+.video-js .vjs-volume-vertical {
+  width: 3em;
+  height: 8em;
+  bottom: 8em;
+  background-color: #2B333F;
+  background-color: rgba(43, 51, 63, 0.7);
+}
+
+.video-js .vjs-volume-horizontal .vjs-menu {
+  left: -2em;
+}
+
+.vjs-poster {
+  display: inline-block;
+  vertical-align: middle;
+  background-repeat: no-repeat;
+  background-position: 50% 50%;
+  background-size: contain;
+  background-color: #000000;
+  cursor: pointer;
+  margin: 0;
+  padding: 0;
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  height: 100%;
+}
+
+.vjs-has-started .vjs-poster {
+  display: none;
+}
+
+.vjs-audio.vjs-has-started .vjs-poster {
+  display: block;
+}
+
+.vjs-using-native-controls .vjs-poster {
+  display: none;
+}
+
+.video-js .vjs-live-control {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: flex-start;
+  -webkit-align-items: flex-start;
+  -ms-flex-align: flex-start;
+  align-items: flex-start;
+  -webkit-box-flex: auto;
+  -moz-box-flex: auto;
+  -webkit-flex: auto;
+  -ms-flex: auto;
+  flex: auto;
+  font-size: 1em;
+  line-height: 3em;
+}
+
+.vjs-no-flex .vjs-live-control {
+  display: table-cell;
+  width: auto;
+  text-align: left;
+}
+
+.video-js .vjs-time-control {
+  -webkit-box-flex: none;
+  -moz-box-flex: none;
+  -webkit-flex: none;
+  -ms-flex: none;
+  flex: none;
+  font-size: 1em;
+  line-height: 3em;
+  min-width: 2em;
+  width: auto;
+  padding-left: 1em;
+  padding-right: 1em;
+}
+
+.vjs-live .vjs-time-control {
+  display: none;
+}
+
+.video-js .vjs-current-time,
+.vjs-no-flex .vjs-current-time {
+  display: none;
+}
+
+.video-js .vjs-duration,
+.vjs-no-flex .vjs-duration {
+  display: none;
+}
+
+.vjs-time-divider {
+  display: none;
+  line-height: 3em;
+}
+
+.vjs-live .vjs-time-divider {
+  display: none;
+}
+
+.video-js .vjs-play-control .vjs-icon-placeholder {
+  cursor: pointer;
+  -webkit-box-flex: none;
+  -moz-box-flex: none;
+  -webkit-flex: none;
+  -ms-flex: none;
+  flex: none;
+}
+
+.vjs-text-track-display {
+  position: absolute;
+  bottom: 3em;
+  left: 0;
+  right: 0;
+  top: 0;
+  pointer-events: none;
+}
+
+.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
+  bottom: 1em;
+}
+
+.video-js .vjs-text-track {
+  font-size: 1.4em;
+  text-align: center;
+  margin-bottom: 0.1em;
+}
+
+.vjs-subtitles {
+  color: #fff;
+}
+
+.vjs-captions {
+  color: #fc6;
+}
+
+.vjs-tt-cue {
+  display: block;
+}
+
+video::-webkit-media-text-track-display {
+  -moz-transform: translateY(-3em);
+  -ms-transform: translateY(-3em);
+  -o-transform: translateY(-3em);
+  -webkit-transform: translateY(-3em);
+  transform: translateY(-3em);
+}
+
+.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {
+  -moz-transform: translateY(-1.5em);
+  -ms-transform: translateY(-1.5em);
+  -o-transform: translateY(-1.5em);
+  -webkit-transform: translateY(-1.5em);
+  transform: translateY(-1.5em);
+}
+
+.video-js .vjs-fullscreen-control {
+  cursor: pointer;
+  -webkit-box-flex: none;
+  -moz-box-flex: none;
+  -webkit-flex: none;
+  -ms-flex: none;
+  flex: none;
+}
+
+.vjs-playback-rate > .vjs-menu-button,
+.vjs-playback-rate .vjs-playback-rate-value {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+
+.vjs-playback-rate .vjs-playback-rate-value {
+  pointer-events: none;
+  font-size: 1.5em;
+  line-height: 2;
+  text-align: center;
+}
+
+.vjs-playback-rate .vjs-menu {
+  width: 4em;
+  left: 0em;
+}
+
+.vjs-error .vjs-error-display .vjs-modal-dialog-content {
+  font-size: 1.4em;
+  text-align: center;
+}
+
+.vjs-error .vjs-error-display:before {
+  color: #fff;
+  content: 'X';
+  font-family: Arial, Helvetica, sans-serif;
+  font-size: 4em;
+  left: 0;
+  line-height: 1;
+  margin-top: -0.5em;
+  position: absolute;
+  text-shadow: 0.05em 0.05em 0.1em #000;
+  text-align: center;
+  top: 50%;
+  vertical-align: middle;
+  width: 100%;
+}
+
+.vjs-loading-spinner {
+  display: none;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  margin: -25px 0 0 -25px;
+  opacity: 0.85;
+  text-align: left;
+  border: 6px solid rgba(43, 51, 63, 0.7);
+  box-sizing: border-box;
+  background-clip: padding-box;
+  width: 50px;
+  height: 50px;
+  border-radius: 25px;
+  visibility: hidden;
+}
+
+.vjs-seeking .vjs-loading-spinner,
+.vjs-waiting .vjs-loading-spinner {
+  display: block;
+  animation: 0s linear 0.3s forwards vjs-spinner-show;
+}
+
+.vjs-loading-spinner:before,
+.vjs-loading-spinner:after {
+  content: "";
+  position: absolute;
+  margin: -6px;
+  box-sizing: inherit;
+  width: inherit;
+  height: inherit;
+  border-radius: inherit;
+  opacity: 1;
+  border: inherit;
+  border-color: transparent;
+  border-top-color: white;
+}
+
+.vjs-seeking .vjs-loading-spinner:before,
+.vjs-seeking .vjs-loading-spinner:after,
+.vjs-waiting .vjs-loading-spinner:before,
+.vjs-waiting .vjs-loading-spinner:after {
+  -webkit-animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;
+  animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;
+}
+
+.vjs-seeking .vjs-loading-spinner:before,
+.vjs-waiting .vjs-loading-spinner:before {
+  border-top-color: white;
+}
+
+.vjs-seeking .vjs-loading-spinner:after,
+.vjs-waiting .vjs-loading-spinner:after {
+  border-top-color: white;
+  -webkit-animation-delay: 0.44s;
+  animation-delay: 0.44s;
+}
+
+@keyframes vjs-spinner-show {
+  to {
+    visibility: visible;
+  }
+}
+
+@-webkit-keyframes vjs-spinner-show {
+  to {
+    visibility: visible;
+  }
+}
+
+@keyframes vjs-spinner-spin {
+  100% {
+    transform: rotate(360deg);
+  }
+}
+
+@-webkit-keyframes vjs-spinner-spin {
+  100% {
+    -webkit-transform: rotate(360deg);
+  }
+}
+
+@keyframes vjs-spinner-fade {
+  0% {
+    border-top-color: #73859f;
+  }
+  20% {
+    border-top-color: #73859f;
+  }
+  35% {
+    border-top-color: white;
+  }
+  60% {
+    border-top-color: #73859f;
+  }
+  100% {
+    border-top-color: #73859f;
+  }
+}
+
+@-webkit-keyframes vjs-spinner-fade {
+  0% {
+    border-top-color: #73859f;
+  }
+  20% {
+    border-top-color: #73859f;
+  }
+  35% {
+    border-top-color: white;
+  }
+  60% {
+    border-top-color: #73859f;
+  }
+  100% {
+    border-top-color: #73859f;
+  }
+}
+
+.vjs-chapters-button .vjs-menu ul {
+  width: 24em;
+}
+
+.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
+  position: absolute;
+}
+
+.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
+  font-family: VideoJS;
+  content: "\f10d";
+  font-size: 1.5em;
+  line-height: inherit;
+}
+
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer {
+  -webkit-box-flex: auto;
+  -moz-box-flex: auto;
+  -webkit-flex: auto;
+  -ms-flex: auto;
+  flex: auto;
+}
+
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer {
+  width: auto;
+}
+
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control,
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,
+.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button, .video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-audio-button {
+  display: none;
+}
+
+.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,
+.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,
+.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control,
+.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,
+.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button, .video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-audio-button {
+  display: none;
+}
+
+.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,
+.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,
+.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control,
+.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-descriptions-button, .video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,
+.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button .vjs-audio-button {
+  display: none;
+}
+
+.vjs-modal-dialog.vjs-text-track-settings {
+  background-color: #2B333F;
+  background-color: rgba(43, 51, 63, 0.75);
+  color: #fff;
+  height: 70%;
+}
+
+.vjs-text-track-settings .vjs-modal-dialog-content {
+  display: table;
+}
+
+.vjs-text-track-settings .vjs-track-settings-colors,
+.vjs-text-track-settings .vjs-track-settings-font,
+.vjs-text-track-settings .vjs-track-settings-controls {
+  display: table-cell;
+}
+
+.vjs-text-track-settings .vjs-track-settings-controls {
+  text-align: right;
+  vertical-align: bottom;
+}
+
+@supports (display: grid) {
+  .vjs-text-track-settings .vjs-modal-dialog-content {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    grid-template-rows: 1fr auto;
+  }
+
+  .vjs-text-track-settings .vjs-track-settings-colors {
+    display: block;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  .vjs-text-track-settings .vjs-track-settings-font {
+    grid-column: 2;
+    grid-row: 1;
+  }
+
+  .vjs-text-track-settings .vjs-track-settings-controls {
+    grid-column: 2;
+    grid-row: 2;
+  }
+}
+
+.vjs-track-setting > select {
+  margin-right: 5px;
+}
+
+.vjs-text-track-settings fieldset {
+  margin: 5px;
+  padding: 3px;
+  border: none;
+}
+
+.vjs-text-track-settings fieldset span {
+  display: inline-block;
+}
+
+.vjs-text-track-settings legend {
+  color: #fff;
+  margin: 0 0 5px 0;
+}
+
+.vjs-text-track-settings .vjs-label {
+  position: absolute;
+  clip: rect(1px 1px 1px 1px);
+  clip: rect(1px, 1px, 1px, 1px);
+  display: block;
+  margin: 0 0 5px 0;
+  padding: 0;
+  border: 0;
+  height: 1px;
+  width: 1px;
+  overflow: hidden;
+}
+
+.vjs-track-settings-controls button:focus,
+.vjs-track-settings-controls button:active {
+  outline-style: solid;
+  outline-width: medium;
+  background-image: linear-gradient(0deg, #fff 88%, #73859f 100%);
+}
+
+.vjs-track-settings-controls button:hover {
+  color: rgba(43, 51, 63, 0.75);
+}
+
+.vjs-track-settings-controls button {
+  background-color: #fff;
+  background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
+  color: #2B333F;
+  cursor: pointer;
+  border-radius: 2px;
+}
+
+.vjs-track-settings-controls .vjs-default-button {
+  margin-right: 1em;
+}
+
+@media print {
+  .video-js > *:not(.vjs-tech):not(.vjs-poster) {
+    visibility: hidden;
+  }
+}
+
+.vjs-resize-manager {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  border: none;
+  visibility: hidden;
+}
diff --git a/src/assets/libs/video-js-7.0.0/video-js.min.css b/src/assets/libs/video-js-7.0.0/video-js.min.css
new file mode 100644
index 0000000..10c2521
--- /dev/null
+++ b/src/assets/libs/video-js-7.0.0/video-js.min.css
@@ -0,0 +1 @@
+.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.vjs-button>.vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder,.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before{content:"\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\f102"}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:"\f103"}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder,.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before,.vjs-icon-volume-mute:before{content:"\f104"}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder,.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before,.vjs-icon-volume-low:before{content:"\f105"}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder,.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before,.vjs-icon-volume-mid:before{content:"\f106"}.video-js .vjs-mute-control .vjs-icon-placeholder,.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control .vjs-icon-placeholder:before,.vjs-icon-volume-high:before{content:"\f107"}.video-js .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-enter:before{content:"\f108"}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-exit:before{content:"\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\f10b"}.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-subtitles:before{content:"\f10c"}.video-js .vjs-captions-button .vjs-icon-placeholder,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-captions-button .vjs-icon-placeholder:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-captions:before{content:"\f10d"}.video-js .vjs-chapters-button .vjs-icon-placeholder,.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-chapters-button .vjs-icon-placeholder:before,.vjs-icon-chapters:before{content:"\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\f110"}.video-js .vjs-play-progress,.video-js .vjs-volume-level,.vjs-icon-circle{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before{content:"\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\f114"}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder,.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before,.vjs-icon-cancel:before{content:"\f115"}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder,.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before,.vjs-icon-replay:before{content:"\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\f11c"}.video-js .vjs-descriptions-button .vjs-icon-placeholder,.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-descriptions-button .vjs-icon-placeholder:before,.vjs-icon-audio-description:before{content:"\f11d"}.video-js .vjs-audio-button .vjs-icon-placeholder,.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-audio-button .vjs-icon-placeholder:before,.vjs-icon-audio:before{content:"\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\f120"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:0}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-fluid{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.5em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:rgba(43,51,63,.7);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;-webkit-transition:all .4s;-moz-transition:all .4s;-ms-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.75em;margin-left:-1.5em}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);-webkit-transition:all 0s;-moz-transition:all 0s;-ms-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:0 0;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:-webkit-linear-gradient(-90deg,rgba(0,0,0,.8),rgba(255,255,255,0));background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:rgba(115,133,159,.5)}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup:hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{-webkit-transition:all .4s;-moz-transition:all .4s;-ms-transition:all .4s;-o-transition:all .4s;transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline:hover,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;-webkit-transition:all .4s;-moz-transition:all .4s;-ms-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.vjs-has-started .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-ms-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-ms-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:4em}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;-o-transition:all .2s;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.666666666666666666em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.333333333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:rgba(255,255,255,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px 8px;pointer-events:none;position:relative;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-ms-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em 0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{-webkit-transition:width 1s;-moz-transition:width 1s;-ms-transition:width 1s;-o-transition:width 1s;transition:width 1s}.video-js .vjs-volume-panel .vjs-mute-control:hover~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel .vjs-volume-control:hover,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel:hover .vjs-volume-control{visibility:visible;opacity:1;position:relative;-webkit-transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s;-moz-transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s;-ms-transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s;-o-transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel .vjs-mute-control:hover~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:hover.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:hover{width:9em;-webkit-transition:width .1s;-moz-transition:width .1s;-ms-transition:width .1s;-o-transition:width .1s;transition:width .1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3.5em;-webkit-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s;-moz-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s;-ms-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s;-o-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{-webkit-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s;-moz-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s;-ms-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s;-o-transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js .vjs-time-control{-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control{display:none}.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control .vjs-icon-placeholder{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{-moz-transform:translateY(-3em);-ms-transform:translateY(-3em);-o-transform:translateY(-3em);-webkit-transform:translateY(-3em);transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{-moz-transform:translateY(-1.5em);-ms-transform:translateY(-1.5em);-o-transform:translateY(-1.5em);-webkit-transform:translateY(-1.5em);transform:translateY(-1.5em)}.video-js .vjs-fullscreen-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-playback-rate .vjs-playback-rate-value,.vjs-playback-rate>.vjs-menu-button{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:'X';font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;animation:0s linear .3s forwards vjs-spinner-show}.vjs-loading-spinner:after,.vjs-loading-spinner:before{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{100%{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{position:absolute}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"\f10d";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-audio-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-descriptions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control{display:none}.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-audio-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-descriptions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control{display:none}.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-descriptions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button .vjs-audio-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:rgba(43,51,63,.75);color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-controls,.vjs-text-track-settings .vjs-track-settings-font{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display:grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto}.vjs-text-track-settings .vjs-track-settings-colors{display:block;grid-column:1;grid-row:1}.vjs-text-track-settings .vjs-track-settings-font{grid-column:2;grid-row:1}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:2;grid-row:2}}.vjs-track-setting>select{margin-right:5px}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px 0}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px 0;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:active,.vjs-track-settings-controls button:focus{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:rgba(43,51,63,.75)}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;visibility:hidden}
diff --git a/src/assets/libs/video-js-7.0.0/video.js b/src/assets/libs/video-js-7.0.0/video.js
new file mode 100644
index 0000000..f64bace
--- /dev/null
+++ b/src/assets/libs/video-js-7.0.0/video.js
@@ -0,0 +1,47623 @@
+/**
+ * @license
+ * Video.js 7.0.0 <http://videojs.com/>
+ * Copyright Brightcove, Inc. <https://www.brightcove.com/>
+ * Available under Apache License Version 2.0
+ * <https://github.com/videojs/video.js/blob/master/LICENSE>
+ *
+ * Includes vtt.js <https://github.com/mozilla/vtt.js>
+ * Available under Apache License Version 2.0
+ * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
+ */
+
+(function (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+    typeof define === 'function' && define.amd ? define(factory) :
+      (global.videojs = factory());
+}(this, (function () {
+
+  var version = "7.0.0";
+
+  var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+  function createCommonjsModule(fn, module) {
+    return module = {exports: {}}, fn(module, module.exports), module.exports;
+  }
+
+  var win;
+
+  if (typeof window !== "undefined") {
+    win = window;
+  } else if (typeof commonjsGlobal !== "undefined") {
+    win = commonjsGlobal;
+  } else if (typeof self !== "undefined") {
+    win = self;
+  } else {
+    win = {};
+  }
+
+  var window_1 = win;
+
+  var empty = {};
+
+  var empty$1 = /*#__PURE__*/Object.freeze({
+    default: empty
+  });
+
+  var minDoc = (empty$1 && empty) || empty$1;
+
+  var topLevel = typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof window !== 'undefined' ? window : {};
+
+  var doccy;
+
+  if (typeof document !== 'undefined') {
+    doccy = document;
+  } else {
+    doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];
+
+    if (!doccy) {
+      doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;
+    }
+  }
+
+  var document_1 = doccy;
+
+  /**
+   * @file log.js
+   * @module log
+   */
+
+  var log = void 0;
+
+  // This is the private tracking variable for logging level.
+  var level = 'info';
+
+  // This is the private tracking variable for the logging history.
+  var history = [];
+
+  /**
+   * Log messages to the console and history based on the type of message
+   *
+   * @private
+   * @param  {string} type
+   *         The name of the console method to use.
+   *
+   * @param  {Array} args
+   *         The arguments to be passed to the matching console method.
+   */
+  var logByType = function logByType(type, args) {
+    var lvl = log.levels[level];
+    var lvlRegExp = new RegExp('^(' + lvl + ')$');
+
+    if (type !== 'log') {
+
+      // Add the type to the front of the message when it's not "log".
+      args.unshift(type.toUpperCase() + ':');
+    }
+
+    // Add a clone of the args at this point to history.
+    if (history) {
+      history.push([].concat(args));
+    }
+
+    // Add console prefix after adding to history.
+    args.unshift('VIDEOJS:');
+
+    // If there's no console then don't try to output messages, but they will
+    // still be stored in history.
+    if (!window_1.console) {
+      return;
+    }
+
+    // Was setting these once outside of this function, but containing them
+    // in the function makes it easier to test cases where console doesn't exist
+    // when the module is executed.
+    var fn = window_1.console[type];
+
+    if (!fn && type === 'debug') {
+      // Certain browsers don't have support for console.debug. For those, we
+      // should default to the closest comparable log.
+      fn = window_1.console.info || window_1.console.log;
+    }
+
+    // Bail out if there's no console or if this type is not allowed by the
+    // current logging level.
+    if (!fn || !lvl || !lvlRegExp.test(type)) {
+      return;
+    }
+
+    fn[Array.isArray(args) ? 'apply' : 'call'](window_1.console, args);
+  };
+
+  /**
+   * Logs plain debug messages. Similar to `console.log`.
+   *
+   * @class
+   * @param    {Mixed[]} args
+   *           One or more messages or objects that should be logged.
+   */
+  log = function log() {
+    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+      args[_key] = arguments[_key];
+    }
+
+    logByType('log', args);
+  };
+
+  /**
+   * Enumeration of available logging levels, where the keys are the level names
+   * and the values are `|`-separated strings containing logging methods allowed
+   * in that logging level. These strings are used to create a regular expression
+   * matching the function name being called.
+   *
+   * Levels provided by video.js are:
+   *
+   * - `off`: Matches no calls. Any value that can be cast to `false` will have
+   *   this effect. The most restrictive.
+   * - `all`: Matches only Video.js-provided functions (`debug`, `log`,
+   *   `log.warn`, and `log.error`).
+   * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.
+   * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.
+   * - `warn`: Matches `log.warn` and `log.error` calls.
+   * - `error`: Matches only `log.error` calls.
+   *
+   * @type {Object}
+   */
+  log.levels = {
+    all: 'debug|log|warn|error',
+    off: '',
+    debug: 'debug|log|warn|error',
+    info: 'log|warn|error',
+    warn: 'warn|error',
+    error: 'error',
+    DEFAULT: level
+  };
+
+  /**
+   * Get or set the current logging level. If a string matching a key from
+   * {@link log.levels} is provided, acts as a setter. Regardless of argument,
+   * returns the current logging level.
+   *
+   * @param  {string} [lvl]
+   *         Pass to set a new logging level.
+   *
+   * @return {string}
+   *         The current logging level.
+   */
+  log.level = function (lvl) {
+    if (typeof lvl === 'string') {
+      if (!log.levels.hasOwnProperty(lvl)) {
+        throw new Error('"' + lvl + '" in not a valid log level');
+      }
+      level = lvl;
+    }
+    return level;
+  };
+
+  /**
+   * Returns an array containing everything that has been logged to the history.
+   *
+   * This array is a shallow clone of the internal history record. However, its
+   * contents are _not_ cloned; so, mutating objects inside this array will
+   * mutate them in history.
+   *
+   * @return {Array}
+   */
+  log.history = function () {
+    return history ? [].concat(history) : [];
+  };
+
+  /**
+   * Clears the internal history tracking, but does not prevent further history
+   * tracking.
+   */
+  log.history.clear = function () {
+    if (history) {
+      history.length = 0;
+    }
+  };
+
+  /**
+   * Disable history tracking if it is currently enabled.
+   */
+  log.history.disable = function () {
+    if (history !== null) {
+      history.length = 0;
+      history = null;
+    }
+  };
+
+  /**
+   * Enable history tracking if it is currently disabled.
+   */
+  log.history.enable = function () {
+    if (history === null) {
+      history = [];
+    }
+  };
+
+  /**
+   * Logs error messages. Similar to `console.error`.
+   *
+   * @param {Mixed[]} args
+   *        One or more messages or objects that should be logged as an error
+   */
+  log.error = function () {
+    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+      args[_key2] = arguments[_key2];
+    }
+
+    return logByType('error', args);
+  };
+
+  /**
+   * Logs warning messages. Similar to `console.warn`.
+   *
+   * @param {Mixed[]} args
+   *        One or more messages or objects that should be logged as a warning.
+   */
+  log.warn = function () {
+    for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+      args[_key3] = arguments[_key3];
+    }
+
+    return logByType('warn', args);
+  };
+
+  /**
+   * Logs debug messages. Similar to `console.debug`, but may also act as a comparable
+   * log if `console.debug` is not available
+   *
+   * @param {Mixed[]} args
+   *        One or more messages or objects that should be logged as debug.
+   */
+  log.debug = function () {
+    for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+      args[_key4] = arguments[_key4];
+    }
+
+    return logByType('debug', args);
+  };
+
+  var log$1 = log;
+
+  function clean(s) {
+    return s.replace(/\n\r?\s*/g, '');
+  }
+
+  var tsml = function tsml(sa) {
+    var s = '',
+      i = 0;
+
+    for (; i < arguments.length; i++) {
+      s += clean(sa[i]) + (arguments[i + 1] || '');
+    }
+    return s;
+  };
+
+  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
+    return typeof obj;
+  } : function (obj) {
+    return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+  };
+
+  var classCallCheck = function (instance, Constructor) {
+    if (!(instance instanceof Constructor)) {
+      throw new TypeError("Cannot call a class as a function");
+    }
+  };
+
+  var inherits = function (subClass, superClass) {
+    if (typeof superClass !== "function" && superClass !== null) {
+      throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
+    }
+
+    subClass.prototype = Object.create(superClass && superClass.prototype, {
+      constructor: {
+        value: subClass,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+  };
+
+  var possibleConstructorReturn = function (self, call) {
+    if (!self) {
+      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+    }
+
+    return call && (typeof call === "object" || typeof call === "function") ? call : self;
+  };
+
+  var taggedTemplateLiteralLoose = function (strings, raw) {
+    strings.raw = raw;
+    return strings;
+  };
+
+  /**
+   * @file obj.js
+   * @module obj
+   */
+
+  /**
+   * @callback obj:EachCallback
+   *
+   * @param {Mixed} value
+   *        The current key for the object that is being iterated over.
+   *
+   * @param {string} key
+   *        The current key-value for object that is being iterated over
+   */
+
+  /**
+   * @callback obj:ReduceCallback
+   *
+   * @param {Mixed} accum
+   *        The value that is accumulating over the reduce loop.
+   *
+   * @param {Mixed} value
+   *        The current key for the object that is being iterated over.
+   *
+   * @param {string} key
+   *        The current key-value for object that is being iterated over
+   *
+   * @return {Mixed}
+   *         The new accumulated value.
+   */
+  var toString = Object.prototype.toString;
+
+  /**
+   * Get the keys of an Object
+   *
+   * @param {Object}
+   *        The Object to get the keys from
+   *
+   * @return {string[]}
+   *         An array of the keys from the object. Returns an empty array if the
+   *         object passed in was invalid or had no keys.
+   *
+   * @private
+   */
+  var keys = function keys(object) {
+    return isObject(object) ? Object.keys(object) : [];
+  };
+
+  /**
+   * Array-like iteration for objects.
+   *
+   * @param {Object} object
+   *        The object to iterate over
+   *
+   * @param {obj:EachCallback} fn
+   *        The callback function which is called for each key in the object.
+   */
+  function each(object, fn) {
+    keys(object).forEach(function (key) {
+      return fn(object[key], key);
+    });
+  }
+
+  /**
+   * Array-like reduce for objects.
+   *
+   * @param {Object} object
+   *        The Object that you want to reduce.
+   *
+   * @param {Function} fn
+   *         A callback function which is called for each key in the object. It
+   *         receives the accumulated value and the per-iteration value and key
+   *         as arguments.
+   *
+   * @param {Mixed} [initial = 0]
+   *        Starting value
+   *
+   * @return {Mixed}
+   *         The final accumulated value.
+   */
+  function reduce(object, fn) {
+    var initial = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+
+    return keys(object).reduce(function (accum, key) {
+      return fn(accum, object[key], key);
+    }, initial);
+  }
+
+  /**
+   * Object.assign-style object shallow merge/extend.
+   *
+   * @param  {Object} target
+   * @param  {Object} ...sources
+   * @return {Object}
+   */
+  function assign(target) {
+    for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+      sources[_key - 1] = arguments[_key];
+    }
+
+    if (Object.assign) {
+      return Object.assign.apply(Object, [target].concat(sources));
+    }
+
+    sources.forEach(function (source) {
+      if (!source) {
+        return;
+      }
+
+      each(source, function (value, key) {
+        target[key] = value;
+      });
+    });
+
+    return target;
+  }
+
+  /**
+   * Returns whether a value is an object of any kind - including DOM nodes,
+   * arrays, regular expressions, etc. Not functions, though.
+   *
+   * This avoids the gotcha where using `typeof` on a `null` value
+   * results in `'object'`.
+   *
+   * @param  {Object} value
+   * @return {Boolean}
+   */
+  function isObject(value) {
+    return !!value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';
+  }
+
+  /**
+   * Returns whether an object appears to be a "plain" object - that is, a
+   * direct instance of `Object`.
+   *
+   * @param  {Object} value
+   * @return {Boolean}
+   */
+  function isPlain(value) {
+    return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;
+  }
+
+  /**
+   * @file computed-style.js
+   * @module computed-style
+   */
+
+  /**
+   * A safe getComputedStyle.
+   *
+   * This is needed because in Firefox, if the player is loaded in an iframe with
+   * `display:none`, then `getComputedStyle` returns `null`, so, we do a null-check to
+   * make sure  that the player doesn't break in these cases.
+   *
+   * @param {Element} el
+   *        The element you want the computed style of
+   *
+   * @param {string} prop
+   *        The property name you want
+   *
+   * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397
+   *
+   * @static
+   * @const
+   */
+  function computedStyle(el, prop) {
+    if (!el || !prop) {
+      return '';
+    }
+
+    if (typeof window_1.getComputedStyle === 'function') {
+      var cs = window_1.getComputedStyle(el);
+
+      return cs ? cs[prop] : '';
+    }
+
+    return '';
+  }
+
+  var _templateObject = taggedTemplateLiteralLoose(['Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set ', ' to ', '.'], ['Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set ', ' to ', '.']);
+
+  /**
+   * Detect if a value is a string with any non-whitespace characters.
+   *
+   * @param {string} str
+   *        The string to check
+   *
+   * @return {boolean}
+   *         - True if the string is non-blank
+   *         - False otherwise
+   *
+   */
+  function isNonBlankString(str) {
+    return typeof str === 'string' && /\S/.test(str);
+  }
+
+  /**
+   * Throws an error if the passed string has whitespace. This is used by
+   * class methods to be relatively consistent with the classList API.
+   *
+   * @param {string} str
+   *         The string to check for whitespace.
+   *
+   * @throws {Error}
+   *         Throws an error if there is whitespace in the string.
+   *
+   */
+  function throwIfWhitespace(str) {
+    if (/\s/.test(str)) {
+      throw new Error('class has illegal whitespace characters');
+    }
+  }
+
+  /**
+   * Produce a regular expression for matching a className within an elements className.
+   *
+   * @param {string} className
+   *         The className to generate the RegExp for.
+   *
+   * @return {RegExp}
+   *         The RegExp that will check for a specific `className` in an elements
+   *         className.
+   */
+  function classRegExp(className) {
+    return new RegExp('(^|\\s)' + className + '($|\\s)');
+  }
+
+  /**
+   * Whether the current DOM interface appears to be real.
+   *
+   * @return {Boolean}
+   */
+  function isReal() {
+    // Both document and window will never be undefined thanks to `global`.
+    return document_1 === window_1.document;
+  }
+
+  /**
+   * Determines, via duck typing, whether or not a value is a DOM element.
+   *
+   * @param {Mixed} value
+   *        The thing to check
+   *
+   * @return {boolean}
+   *         - True if it is a DOM element
+   *         - False otherwise
+   */
+  function isEl(value) {
+    return isObject(value) && value.nodeType === 1;
+  }
+
+  /**
+   * Determines if the current DOM is embedded in an iframe.
+   *
+   * @return {boolean}
+   *
+   */
+  function isInFrame() {
+
+    // We need a try/catch here because Safari will throw errors when attempting
+    // to get either `parent` or `self`
+    try {
+      return window_1.parent !== window_1.self;
+    } catch (x) {
+      return true;
+    }
+  }
+
+  /**
+   * Creates functions to query the DOM using a given method.
+   *
+   * @param {string} method
+   *         The method to create the query with.
+   *
+   * @return {Function}
+   *         The query method
+   */
+  function createQuerier(method) {
+    return function (selector, context) {
+      if (!isNonBlankString(selector)) {
+        return document_1[method](null);
+      }
+      if (isNonBlankString(context)) {
+        context = document_1.querySelector(context);
+      }
+
+      var ctx = isEl(context) ? context : document_1;
+
+      return ctx[method] && ctx[method](selector);
+    };
+  }
+
+  /**
+   * Creates an element and applies properties.
+   *
+   * @param {string} [tagName='div']
+   *         Name of tag to be created.
+   *
+   * @param {Object} [properties={}]
+   *         Element properties to be applied.
+   *
+   * @param {Object} [attributes={}]
+   *         Element attributes to be applied.
+   *
+   * @param {String|Element|TextNode|Array|Function} [content]
+   *         Contents for the element (see: {@link dom:normalizeContent})
+   *
+   * @return {Element}
+   *         The element that was created.
+   */
+  function createEl() {
+    var tagName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'div';
+    var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+    var content = arguments[3];
+
+    var el = document_1.createElement(tagName);
+
+    Object.getOwnPropertyNames(properties).forEach(function (propName) {
+      var val = properties[propName];
+
+      // See #2176
+      // We originally were accepting both properties and attributes in the
+      // same object, but that doesn't work so well.
+      if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {
+        log$1.warn(tsml(_templateObject, propName, val));
+        el.setAttribute(propName, val);
+
+        // Handle textContent since it's not supported everywhere and we have a
+        // method for it.
+      } else if (propName === 'textContent') {
+        textContent(el, val);
+      } else {
+        el[propName] = val;
+      }
+    });
+
+    Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
+      el.setAttribute(attrName, attributes[attrName]);
+    });
+
+    if (content) {
+      appendContent(el, content);
+    }
+
+    return el;
+  }
+
+  /**
+   * Injects text into an element, replacing any existing contents entirely.
+   *
+   * @param {Element} el
+   *        The element to add text content into
+   *
+   * @param {string} text
+   *        The text content to add.
+   *
+   * @return {Element}
+   *         The element with added text content.
+   */
+  function textContent(el, text) {
+    if (typeof el.textContent === 'undefined') {
+      el.innerText = text;
+    } else {
+      el.textContent = text;
+    }
+    return el;
+  }
+
+  /**
+   * Insert an element as the first child node of another
+   *
+   * @param {Element} child
+   *        Element to insert
+   *
+   * @param {Element} parent
+   *        Element to insert child into
+   */
+  function prependTo(child, parent) {
+    if (parent.firstChild) {
+      parent.insertBefore(child, parent.firstChild);
+    } else {
+      parent.appendChild(child);
+    }
+  }
+
+  /**
+   * Check if an element has a CSS class
+   *
+   * @param {Element} element
+   *        Element to check
+   *
+   * @param {string} classToCheck
+   *        Class name to check for
+   *
+   * @return {boolean}
+   *         - True if the element had the class
+   *         - False otherwise.
+   *
+   * @throws {Error}
+   *         Throws an error if `classToCheck` has white space.
+   */
+  function hasClass(element, classToCheck) {
+    throwIfWhitespace(classToCheck);
+    if (element.classList) {
+      return element.classList.contains(classToCheck);
+    }
+    return classRegExp(classToCheck).test(element.className);
+  }
+
+  /**
+   * Add a CSS class name to an element
+   *
+   * @param {Element} element
+   *        Element to add class name to.
+   *
+   * @param {string} classToAdd
+   *        Class name to add.
+   *
+   * @return {Element}
+   *         The dom element with the added class name.
+   */
+  function addClass(element, classToAdd) {
+    if (element.classList) {
+      element.classList.add(classToAdd);
+
+      // Don't need to `throwIfWhitespace` here because `hasElClass` will do it
+      // in the case of classList not being supported.
+    } else if (!hasClass(element, classToAdd)) {
+      element.className = (element.className + ' ' + classToAdd).trim();
+    }
+
+    return element;
+  }
+
+  /**
+   * Remove a CSS class name from an element
+   *
+   * @param {Element} element
+   *        Element to remove a class name from.
+   *
+   * @param {string} classToRemove
+   *        Class name to remove
+   *
+   * @return {Element}
+   *         The dom element with class name removed.
+   */
+  function removeClass(element, classToRemove) {
+    if (element.classList) {
+      element.classList.remove(classToRemove);
+    } else {
+      throwIfWhitespace(classToRemove);
+      element.className = element.className.split(/\s+/).filter(function (c) {
+        return c !== classToRemove;
+      }).join(' ');
+    }
+
+    return element;
+  }
+
+  /**
+   * The callback definition for toggleElClass.
+   *
+   * @callback Dom~PredicateCallback
+   * @param {Element} element
+   *        The DOM element of the Component.
+   *
+   * @param {string} classToToggle
+   *        The `className` that wants to be toggled
+   *
+   * @return {boolean|undefined}
+   *         - If true the `classToToggle` will get added to `element`.
+   *         - If false the `classToToggle` will get removed from `element`.
+   *         - If undefined this callback will be ignored
+   */
+
+  /**
+   * Adds or removes a CSS class name on an element depending on an optional
+   * condition or the presence/absence of the class name.
+   *
+   * @param {Element} element
+   *        The element to toggle a class name on.
+   *
+   * @param {string} classToToggle
+   *        The class that should be toggled
+   *
+   * @param {boolean|PredicateCallback} [predicate]
+   *        See the return value for {@link Dom~PredicateCallback}
+   *
+   * @return {Element}
+   *         The element with a class that has been toggled.
+   */
+  function toggleClass(element, classToToggle, predicate) {
+
+    // This CANNOT use `classList` internally because IE11 does not support the
+    // second parameter to the `classList.toggle()` method! Which is fine because
+    // `classList` will be used by the add/remove functions.
+    var has = hasClass(element, classToToggle);
+
+    if (typeof predicate === 'function') {
+      predicate = predicate(element, classToToggle);
+    }
+
+    if (typeof predicate !== 'boolean') {
+      predicate = !has;
+    }
+
+    // If the necessary class operation matches the current state of the
+    // element, no action is required.
+    if (predicate === has) {
+      return;
+    }
+
+    if (predicate) {
+      addClass(element, classToToggle);
+    } else {
+      removeClass(element, classToToggle);
+    }
+
+    return element;
+  }
+
+  /**
+   * Apply attributes to an HTML element.
+   *
+   * @param {Element} el
+   *        Element to add attributes to.
+   *
+   * @param {Object} [attributes]
+   *        Attributes to be applied.
+   */
+  function setAttributes(el, attributes) {
+    Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
+      var attrValue = attributes[attrName];
+
+      if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {
+        el.removeAttribute(attrName);
+      } else {
+        el.setAttribute(attrName, attrValue === true ? '' : attrValue);
+      }
+    });
+  }
+
+  /**
+   * Get an element's attribute values, as defined on the HTML tag
+   * Attributes are not the same as properties. They're defined on the tag
+   * or with setAttribute (which shouldn't be used with HTML)
+   * This will return true or false for boolean attributes.
+   *
+   * @param {Element} tag
+   *        Element from which to get tag attributes.
+   *
+   * @return {Object}
+   *         All attributes of the element.
+   */
+  function getAttributes(tag) {
+    var obj = {};
+
+    // known boolean attributes
+    // we can check for matching boolean properties, but not all browsers
+    // and not all tags know about these attributes, so, we still want to check them manually
+    var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';
+
+    if (tag && tag.attributes && tag.attributes.length > 0) {
+      var attrs = tag.attributes;
+
+      for (var i = attrs.length - 1; i >= 0; i--) {
+        var attrName = attrs[i].name;
+        var attrVal = attrs[i].value;
+
+        // check for known booleans
+        // the matching element property will return a value for typeof
+        if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {
+          // the value of an included boolean attribute is typically an empty
+          // string ('') which would equal false if we just check for a false value.
+          // we also don't want support bad code like autoplay='false'
+          attrVal = attrVal !== null ? true : false;
+        }
+
+        obj[attrName] = attrVal;
+      }
+    }
+
+    return obj;
+  }
+
+  /**
+   * Get the value of an element's attribute
+   *
+   * @param {Element} el
+   *        A DOM element
+   *
+   * @param {string} attribute
+   *        Attribute to get the value of
+   *
+   * @return {string}
+   *         value of the attribute
+   */
+  function getAttribute(el, attribute) {
+    return el.getAttribute(attribute);
+  }
+
+  /**
+   * Set the value of an element's attribute
+   *
+   * @param {Element} el
+   *        A DOM element
+   *
+   * @param {string} attribute
+   *        Attribute to set
+   *
+   * @param {string} value
+   *        Value to set the attribute to
+   */
+  function setAttribute(el, attribute, value) {
+    el.setAttribute(attribute, value);
+  }
+
+  /**
+   * Remove an element's attribute
+   *
+   * @param {Element} el
+   *        A DOM element
+   *
+   * @param {string} attribute
+   *        Attribute to remove
+   */
+  function removeAttribute(el, attribute) {
+    el.removeAttribute(attribute);
+  }
+
+  /**
+   * Attempt to block the ability to select text while dragging controls
+   */
+  function blockTextSelection() {
+    document_1.body.focus();
+    document_1.onselectstart = function () {
+      return false;
+    };
+  }
+
+  /**
+   * Turn off text selection blocking
+   */
+  function unblockTextSelection() {
+    document_1.onselectstart = function () {
+      return true;
+    };
+  }
+
+  /**
+   * Identical to the native `getBoundingClientRect` function, but ensures that
+   * the method is supported at all (it is in all browsers we claim to support)
+   * and that the element is in the DOM before continuing.
+   *
+   * This wrapper function also shims properties which are not provided by some
+   * older browsers (namely, IE8).
+   *
+   * Additionally, some browsers do not support adding properties to a
+   * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard
+   * properties (except `x` and `y` which are not widely supported). This helps
+   * avoid implementations where keys are non-enumerable.
+   *
+   * @param  {Element} el
+   *         Element whose `ClientRect` we want to calculate.
+   *
+   * @return {Object|undefined}
+   *         Always returns a plain
+   */
+  function getBoundingClientRect(el) {
+    if (el && el.getBoundingClientRect && el.parentNode) {
+      var rect = el.getBoundingClientRect();
+      var result = {};
+
+      ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {
+        if (rect[k] !== undefined) {
+          result[k] = rect[k];
+        }
+      });
+
+      if (!result.height) {
+        result.height = parseFloat(computedStyle(el, 'height'));
+      }
+
+      if (!result.width) {
+        result.width = parseFloat(computedStyle(el, 'width'));
+      }
+
+      return result;
+    }
+  }
+
+  /**
+   * The postion of a DOM element on the page.
+   *
+   * @typedef {Object} module:dom~Position
+   *
+   * @property {number} left
+   *           Pixels to the left
+   *
+   * @property {number} top
+   *           Pixels on top
+   */
+
+  /**
+   * Offset Left.
+   * getBoundingClientRect technique from
+   * John Resig
+   *
+   * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/
+   *
+   * @param {Element} el
+   *        Element from which to get offset
+   *
+   * @return {module:dom~Position}
+   *         The position of the element that was passed in.
+   */
+  function findPosition(el) {
+    var box = void 0;
+
+    if (el.getBoundingClientRect && el.parentNode) {
+      box = el.getBoundingClientRect();
+    }
+
+    if (!box) {
+      return {
+        left: 0,
+        top: 0
+      };
+    }
+
+    var docEl = document_1.documentElement;
+    var body = document_1.body;
+
+    var clientLeft = docEl.clientLeft || body.clientLeft || 0;
+    var scrollLeft = window_1.pageXOffset || body.scrollLeft;
+    var left = box.left + scrollLeft - clientLeft;
+
+    var clientTop = docEl.clientTop || body.clientTop || 0;
+    var scrollTop = window_1.pageYOffset || body.scrollTop;
+    var top = box.top + scrollTop - clientTop;
+
+    // Android sometimes returns slightly off decimal values, so need to round
+    return {
+      left: Math.round(left),
+      top: Math.round(top)
+    };
+  }
+
+  /**
+   * x and y coordinates for a dom element or mouse pointer
+   *
+   * @typedef {Object} Dom~Coordinates
+   *
+   * @property {number} x
+   *           x coordinate in pixels
+   *
+   * @property {number} y
+   *           y coordinate in pixels
+   */
+
+  /**
+   * Get pointer position in element
+   * Returns an object with x and y coordinates.
+   * The base on the coordinates are the bottom left of the element.
+   *
+   * @param {Element} el
+   *        Element on which to get the pointer position on
+   *
+   * @param {EventTarget~Event} event
+   *        Event object
+   *
+   * @return {Dom~Coordinates}
+   *         A Coordinates object corresponding to the mouse position.
+   *
+   */
+  function getPointerPosition(el, event) {
+    var position = {};
+    var box = findPosition(el);
+    var boxW = el.offsetWidth;
+    var boxH = el.offsetHeight;
+
+    var boxY = box.top;
+    var boxX = box.left;
+    var pageY = event.pageY;
+    var pageX = event.pageX;
+
+    if (event.changedTouches) {
+      pageX = event.changedTouches[0].pageX;
+      pageY = event.changedTouches[0].pageY;
+    }
+
+    position.y = Math.max(0, Math.min(1, (boxY - pageY + boxH) / boxH));
+    position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));
+
+    return position;
+  }
+
+  /**
+   * Determines, via duck typing, whether or not a value is a text node.
+   *
+   * @param {Mixed} value
+   *        Check if this value is a text node.
+   *
+   * @return {boolean}
+   *         - True if it is a text node
+   *         - False otherwise
+   */
+  function isTextNode(value) {
+    return isObject(value) && value.nodeType === 3;
+  }
+
+  /**
+   * Empties the contents of an element.
+   *
+   * @param {Element} el
+   *        The element to empty children from
+   *
+   * @return {Element}
+   *         The element with no children
+   */
+  function emptyEl(el) {
+    while (el.firstChild) {
+      el.removeChild(el.firstChild);
+    }
+    return el;
+  }
+
+  /**
+   * Normalizes content for eventual insertion into the DOM.
+   *
+   * This allows a wide range of content definition methods, but protects
+   * from falling into the trap of simply writing to `innerHTML`, which is
+   * an XSS concern.
+   *
+   * The content for an element can be passed in multiple types and
+   * combinations, whose behavior is as follows:
+   *
+   * @param {String|Element|TextNode|Array|Function} content
+   *        - String: Normalized into a text node.
+   *        - Element/TextNode: Passed through.
+   *        - Array: A one-dimensional array of strings, elements, nodes, or functions
+   *          (which return single strings, elements, or nodes).
+   *        - Function: If the sole argument, is expected to produce a string, element,
+   *          node, or array as defined above.
+   *
+   * @return {Array}
+   *         All of the content that was passed in normalized.
+   */
+  function normalizeContent(content) {
+
+    // First, invoke content if it is a function. If it produces an array,
+    // that needs to happen before normalization.
+    if (typeof content === 'function') {
+      content = content();
+    }
+
+    // Next up, normalize to an array, so one or many items can be normalized,
+    // filtered, and returned.
+    return (Array.isArray(content) ? content : [content]).map(function (value) {
+
+      // First, invoke value if it is a function to produce a new value,
+      // which will be subsequently normalized to a Node of some kind.
+      if (typeof value === 'function') {
+        value = value();
+      }
+
+      if (isEl(value) || isTextNode(value)) {
+        return value;
+      }
+
+      if (typeof value === 'string' && /\S/.test(value)) {
+        return document_1.createTextNode(value);
+      }
+    }).filter(function (value) {
+      return value;
+    });
+  }
+
+  /**
+   * Normalizes and appends content to an element.
+   *
+   * @param {Element} el
+   *        Element to append normalized content to.
+   *
+   *
+   * @param {String|Element|TextNode|Array|Function} content
+   *        See the `content` argument of {@link dom:normalizeContent}
+   *
+   * @return {Element}
+   *         The element with appended normalized content.
+   */
+  function appendContent(el, content) {
+    normalizeContent(content).forEach(function (node) {
+      return el.appendChild(node);
+    });
+    return el;
+  }
+
+  /**
+   * Normalizes and inserts content into an element; this is identical to
+   * `appendContent()`, except it empties the element first.
+   *
+   * @param {Element} el
+   *        Element to insert normalized content into.
+   *
+   * @param {String|Element|TextNode|Array|Function} content
+   *        See the `content` argument of {@link dom:normalizeContent}
+   *
+   * @return {Element}
+   *         The element with inserted normalized content.
+   *
+   */
+  function insertContent(el, content) {
+    return appendContent(emptyEl(el), content);
+  }
+
+  /**
+   * Check if event was a single left click
+   *
+   * @param {EventTarget~Event} event
+   *        Event object
+   *
+   * @return {boolean}
+   *         - True if a left click
+   *         - False if not a left click
+   */
+  function isSingleLeftClick(event) {
+    // Note: if you create something draggable, be sure to
+    // call it on both `mousedown` and `mousemove` event,
+    // otherwise `mousedown` should be enough for a button
+
+    if (event.button === undefined && event.buttons === undefined) {
+      // Why do we need `buttons` ?
+      // Because, middle mouse sometimes have this:
+      // e.button === 0 and e.buttons === 4
+      // Furthermore, we want to prevent combination click, something like
+      // HOLD middlemouse then left click, that would be
+      // e.button === 0, e.buttons === 5
+      // just `button` is not gonna work
+
+      // Alright, then what this block does ?
+      // this is for chrome `simulate mobile devices`
+      // I want to support this as well
+
+      return true;
+    }
+
+    if (event.button === 0 && event.buttons === undefined) {
+      // Touch screen, sometimes on some specific device, `buttons`
+      // doesn't have anything (safari on ios, blackberry...)
+
+      return true;
+    }
+
+    if (event.button !== 0 || event.buttons !== 1) {
+      // This is the reason we have those if else block above
+      // if any special case we can catch and let it slide
+      // we do it above, when get to here, this definitely
+      // is-not-left-click
+
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Finds a single DOM element matching `selector` within the optional
+   * `context` of another DOM element (defaulting to `document`).
+   *
+   * @param {string} selector
+   *        A valid CSS selector, which will be passed to `querySelector`.
+   *
+   * @param {Element|String} [context=document]
+   *        A DOM element within which to query. Can also be a selector
+   *        string in which case the first matching element will be used
+   *        as context. If missing (or no element matches selector), falls
+   *        back to `document`.
+   *
+   * @return {Element|null}
+   *         The element that was found or null.
+   */
+  var $ = createQuerier('querySelector');
+
+  /**
+   * Finds a all DOM elements matching `selector` within the optional
+   * `context` of another DOM element (defaulting to `document`).
+   *
+   * @param {string} selector
+   *           A valid CSS selector, which will be passed to `querySelectorAll`.
+   *
+   * @param {Element|String} [context=document]
+   *           A DOM element within which to query. Can also be a selector
+   *           string in which case the first matching element will be used
+   *           as context. If missing (or no element matches selector), falls
+   *           back to `document`.
+   *
+   * @return {NodeList}
+   *         A element list of elements that were found. Will be empty if none were found.
+   *
+   */
+  var $$ = createQuerier('querySelectorAll');
+
+  var Dom = /*#__PURE__*/Object.freeze({
+    isReal: isReal,
+    isEl: isEl,
+    isInFrame: isInFrame,
+    createEl: createEl,
+    textContent: textContent,
+    prependTo: prependTo,
+    hasClass: hasClass,
+    addClass: addClass,
+    removeClass: removeClass,
+    toggleClass: toggleClass,
+    setAttributes: setAttributes,
+    getAttributes: getAttributes,
+    getAttribute: getAttribute,
+    setAttribute: setAttribute,
+    removeAttribute: removeAttribute,
+    blockTextSelection: blockTextSelection,
+    unblockTextSelection: unblockTextSelection,
+    getBoundingClientRect: getBoundingClientRect,
+    findPosition: findPosition,
+    getPointerPosition: getPointerPosition,
+    isTextNode: isTextNode,
+    emptyEl: emptyEl,
+    normalizeContent: normalizeContent,
+    appendContent: appendContent,
+    insertContent: insertContent,
+    isSingleLeftClick: isSingleLeftClick,
+    $: $,
+    $$: $$
+  });
+
+  /**
+   * @file guid.js
+   * @module guid
+   */
+
+  /**
+   * Unique ID for an element or function
+   * @type {Number}
+   */
+  var _guid = 1;
+
+  /**
+   * Get a unique auto-incrementing ID by number that has not been returned before.
+   *
+   * @return {number}
+   *         A new unique ID.
+   */
+  function newGUID() {
+    return _guid++;
+  }
+
+  /**
+   * @file dom-data.js
+   * @module dom-data
+   */
+
+  /**
+   * Element Data Store.
+   *
+   * Allows for binding data to an element without putting it directly on the
+   * element. Ex. Event listeners are stored here.
+   * (also from jsninja.com, slightly modified and updated for closure compiler)
+   *
+   * @type {Object}
+   * @private
+   */
+  var elData = {};
+
+  /*
+   * Unique attribute name to store an element's guid in
+   *
+   * @type {String}
+   * @constant
+   * @private
+   */
+  var elIdAttr = 'vdata' + new Date().getTime();
+
+  /**
+   * Returns the cache object where data for an element is stored
+   *
+   * @param {Element} el
+   *        Element to store data for.
+   *
+   * @return {Object}
+   *         The cache object for that el that was passed in.
+   */
+  function getData(el) {
+    var id = el[elIdAttr];
+
+    if (!id) {
+      id = el[elIdAttr] = newGUID();
+    }
+
+    if (!elData[id]) {
+      elData[id] = {};
+    }
+
+    return elData[id];
+  }
+
+  /**
+   * Returns whether or not an element has cached data
+   *
+   * @param {Element} el
+   *        Check if this element has cached data.
+   *
+   * @return {boolean}
+   *         - True if the DOM element has cached data.
+   *         - False otherwise.
+   */
+  function hasData(el) {
+    var id = el[elIdAttr];
+
+    if (!id) {
+      return false;
+    }
+
+    return !!Object.getOwnPropertyNames(elData[id]).length;
+  }
+
+  /**
+   * Delete data for the element from the cache and the guid attr from getElementById
+   *
+   * @param {Element} el
+   *        Remove cached data for this element.
+   */
+  function removeData(el) {
+    var id = el[elIdAttr];
+
+    if (!id) {
+      return;
+    }
+
+    // Remove all stored data
+    delete elData[id];
+
+    // Remove the elIdAttr property from the DOM node
+    try {
+      delete el[elIdAttr];
+    } catch (e) {
+      if (el.removeAttribute) {
+        el.removeAttribute(elIdAttr);
+      } else {
+        // IE doesn't appear to support removeAttribute on the document element
+        el[elIdAttr] = null;
+      }
+    }
+  }
+
+  /**
+   * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
+   * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
+   * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
+   * robust as jquery's, so there's probably some differences.
+   *
+   * @module events
+   */
+
+  /**
+   * Clean up the listener cache and dispatchers
+   *
+   * @param {Element|Object} elem
+   *        Element to clean up
+   *
+   * @param {string} type
+   *        Type of event to clean up
+   */
+  function _cleanUpEvents(elem, type) {
+    var data = getData(elem);
+
+    // Remove the events of a particular type if there are none left
+    if (data.handlers[type].length === 0) {
+      delete data.handlers[type];
+      // data.handlers[type] = null;
+      // Setting to null was causing an error with data.handlers
+
+      // Remove the meta-handler from the element
+      if (elem.removeEventListener) {
+        elem.removeEventListener(type, data.dispatcher, false);
+      } else if (elem.detachEvent) {
+        elem.detachEvent('on' + type, data.dispatcher);
+      }
+    }
+
+    // Remove the events object if there are no types left
+    if (Object.getOwnPropertyNames(data.handlers).length <= 0) {
+      delete data.handlers;
+      delete data.dispatcher;
+      delete data.disabled;
+    }
+
+    // Finally remove the element data if there is no data left
+    if (Object.getOwnPropertyNames(data).length === 0) {
+      removeData(elem);
+    }
+  }
+
+  /**
+   * Loops through an array of event types and calls the requested method for each type.
+   *
+   * @param {Function} fn
+   *        The event method we want to use.
+   *
+   * @param {Element|Object} elem
+   *        Element or object to bind listeners to
+   *
+   * @param {string} type
+   *        Type of event to bind to.
+   *
+   * @param {EventTarget~EventListener} callback
+   *        Event listener.
+   */
+  function _handleMultipleEvents(fn, elem, types, callback) {
+    types.forEach(function (type) {
+      // Call the event method for each one of the types
+      fn(elem, type, callback);
+    });
+  }
+
+  /**
+   * Fix a native event to have standard property values
+   *
+   * @param {Object} event
+   *        Event object to fix.
+   *
+   * @return {Object}
+   *         Fixed event object.
+   */
+  function fixEvent(event) {
+
+    function returnTrue() {
+      return true;
+    }
+
+    function returnFalse() {
+      return false;
+    }
+
+    // Test if fixing up is needed
+    // Used to check if !event.stopPropagation instead of isPropagationStopped
+    // But native events return true for stopPropagation, but don't have
+    // other expected methods like isPropagationStopped. Seems to be a problem
+    // with the Javascript Ninja code. So we're just overriding all events now.
+    if (!event || !event.isPropagationStopped) {
+      var old = event || window_1.event;
+
+      event = {};
+      // Clone the old object so that we can modify the values event = {};
+      // IE8 Doesn't like when you mess with native event properties
+      // Firefox returns false for event.hasOwnProperty('type') and other props
+      //  which makes copying more difficult.
+      // TODO: Probably best to create a whitelist of event props
+      for (var key in old) {
+        // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y
+        // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation
+        // and webkitMovementX/Y
+        if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {
+          // Chrome 32+ warns if you try to copy deprecated returnValue, but
+          // we still want to if preventDefault isn't supported (IE8).
+          if (!(key === 'returnValue' && old.preventDefault)) {
+            event[key] = old[key];
+          }
+        }
+      }
+
+      // The event occurred on this element
+      if (!event.target) {
+        event.target = event.srcElement || document_1;
+      }
+
+      // Handle which other element the event is related to
+      if (!event.relatedTarget) {
+        event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
+      }
+
+      // Stop the default browser action
+      event.preventDefault = function () {
+        if (old.preventDefault) {
+          old.preventDefault();
+        }
+        event.returnValue = false;
+        old.returnValue = false;
+        event.defaultPrevented = true;
+      };
+
+      event.defaultPrevented = false;
+
+      // Stop the event from bubbling
+      event.stopPropagation = function () {
+        if (old.stopPropagation) {
+          old.stopPropagation();
+        }
+        event.cancelBubble = true;
+        old.cancelBubble = true;
+        event.isPropagationStopped = returnTrue;
+      };
+
+      event.isPropagationStopped = returnFalse;
+
+      // Stop the event from bubbling and executing other handlers
+      event.stopImmediatePropagation = function () {
+        if (old.stopImmediatePropagation) {
+          old.stopImmediatePropagation();
+        }
+        event.isImmediatePropagationStopped = returnTrue;
+        event.stopPropagation();
+      };
+
+      event.isImmediatePropagationStopped = returnFalse;
+
+      // Handle mouse position
+      if (event.clientX !== null && event.clientX !== undefined) {
+        var doc = document_1.documentElement;
+        var body = document_1.body;
+
+        event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+        event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+      }
+
+      // Handle key presses
+      event.which = event.charCode || event.keyCode;
+
+      // Fix button for mouse clicks:
+      // 0 == left; 1 == middle; 2 == right
+      if (event.button !== null && event.button !== undefined) {
+
+        // The following is disabled because it does not pass videojs-standard
+        // and... yikes.
+        /* eslint-disable */
+        event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;
+        /* eslint-enable */
+      }
+    }
+
+    // Returns fixed-up instance
+    return event;
+  }
+
+  /**
+   * Whether passive event listeners are supported
+   */
+  var _supportsPassive = false;
+
+  (function () {
+    try {
+      var opts = Object.defineProperty({}, 'passive', {
+        get: function get() {
+          _supportsPassive = true;
+        }
+      });
+
+      window_1.addEventListener('test', null, opts);
+      window_1.removeEventListener('test', null, opts);
+    } catch (e) {
+      // disregard
+    }
+  })();
+
+  /**
+   * Touch events Chrome expects to be passive
+   */
+  var passiveEvents = ['touchstart', 'touchmove'];
+
+  /**
+   * Add an event listener to element
+   * It stores the handler function in a separate cache object
+   * and adds a generic handler to the element's event,
+   * along with a unique id (guid) to the element.
+   *
+   * @param {Element|Object} elem
+   *        Element or object to bind listeners to
+   *
+   * @param {string|string[]} type
+   *        Type of event to bind to.
+   *
+   * @param {EventTarget~EventListener} fn
+   *        Event listener.
+   */
+  function on(elem, type, fn) {
+    if (Array.isArray(type)) {
+      return _handleMultipleEvents(on, elem, type, fn);
+    }
+
+    var data = getData(elem);
+
+    // We need a place to store all our handler data
+    if (!data.handlers) {
+      data.handlers = {};
+    }
+
+    if (!data.handlers[type]) {
+      data.handlers[type] = [];
+    }
+
+    if (!fn.guid) {
+      fn.guid = newGUID();
+    }
+
+    data.handlers[type].push(fn);
+
+    if (!data.dispatcher) {
+      data.disabled = false;
+
+      data.dispatcher = function (event, hash) {
+
+        if (data.disabled) {
+          return;
+        }
+
+        event = fixEvent(event);
+
+        var handlers = data.handlers[event.type];
+
+        if (handlers) {
+          // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.
+          var handlersCopy = handlers.slice(0);
+
+          for (var m = 0, n = handlersCopy.length; m < n; m++) {
+            if (event.isImmediatePropagationStopped()) {
+              break;
+            } else {
+              try {
+                handlersCopy[m].call(elem, event, hash);
+              } catch (e) {
+                log$1.error(e);
+              }
+            }
+          }
+        }
+      };
+    }
+
+    if (data.handlers[type].length === 1) {
+      if (elem.addEventListener) {
+        var options = false;
+
+        if (_supportsPassive && passiveEvents.indexOf(type) > -1) {
+          options = {passive: true};
+        }
+        elem.addEventListener(type, data.dispatcher, options);
+      } else if (elem.attachEvent) {
+        elem.attachEvent('on' + type, data.dispatcher);
+      }
+    }
+  }
+
+  /**
+   * Removes event listeners from an element
+   *
+   * @param {Element|Object} elem
+   *        Object to remove listeners from.
+   *
+   * @param {string|string[]} [type]
+   *        Type of listener to remove. Don't include to remove all events from element.
+   *
+   * @param {EventTarget~EventListener} [fn]
+   *        Specific listener to remove. Don't include to remove listeners for an event
+   *        type.
+   */
+  function off(elem, type, fn) {
+    // Don't want to add a cache object through getElData if not needed
+    if (!hasData(elem)) {
+      return;
+    }
+
+    var data = getData(elem);
+
+    // If no events exist, nothing to unbind
+    if (!data.handlers) {
+      return;
+    }
+
+    if (Array.isArray(type)) {
+      return _handleMultipleEvents(off, elem, type, fn);
+    }
+
+    // Utility function
+    var removeType = function removeType(el, t) {
+      data.handlers[t] = [];
+      _cleanUpEvents(el, t);
+    };
+
+    // Are we removing all bound events?
+    if (type === undefined) {
+      for (var t in data.handlers) {
+        if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {
+          removeType(elem, t);
+        }
+      }
+      return;
+    }
+
+    var handlers = data.handlers[type];
+
+    // If no handlers exist, nothing to unbind
+    if (!handlers) {
+      return;
+    }
+
+    // If no listener was provided, remove all listeners for type
+    if (!fn) {
+      removeType(elem, type);
+      return;
+    }
+
+    // We're only removing a single handler
+    if (fn.guid) {
+      for (var n = 0; n < handlers.length; n++) {
+        if (handlers[n].guid === fn.guid) {
+          handlers.splice(n--, 1);
+        }
+      }
+    }
+
+    _cleanUpEvents(elem, type);
+  }
+
+  /**
+   * Trigger an event for an element
+   *
+   * @param {Element|Object} elem
+   *        Element to trigger an event on
+   *
+   * @param {EventTarget~Event|string} event
+   *        A string (the type) or an event object with a type attribute
+   *
+   * @param {Object} [hash]
+   *        data hash to pass along with the event
+   *
+   * @return {boolean|undefined}
+   *         - Returns the opposite of `defaultPrevented` if default was prevented
+   *         - Otherwise returns undefined
+   */
+  function trigger(elem, event, hash) {
+    // Fetches element data and a reference to the parent (for bubbling).
+    // Don't want to add a data object to cache for every parent,
+    // so checking hasElData first.
+    var elemData = hasData(elem) ? getData(elem) : {};
+    var parent = elem.parentNode || elem.ownerDocument;
+    // type = event.type || event,
+    // handler;
+
+    // If an event name was passed as a string, creates an event out of it
+    if (typeof event === 'string') {
+      event = {type: event, target: elem};
+    } else if (!event.target) {
+      event.target = elem;
+    }
+
+    // Normalizes the event properties.
+    event = fixEvent(event);
+
+    // If the passed element has a dispatcher, executes the established handlers.
+    if (elemData.dispatcher) {
+      elemData.dispatcher.call(elem, event, hash);
+    }
+
+    // Unless explicitly stopped or the event does not bubble (e.g. media events)
+    // recursively calls this function to bubble the event up the DOM.
+    if (parent && !event.isPropagationStopped() && event.bubbles === true) {
+      trigger.call(null, parent, event, hash);
+
+      // If at the top of the DOM, triggers the default action unless disabled.
+    } else if (!parent && !event.defaultPrevented) {
+      var targetData = getData(event.target);
+
+      // Checks if the target has a default action for this event.
+      if (event.target[event.type]) {
+        // Temporarily disables event dispatching on the target as we have already executed the handler.
+        targetData.disabled = true;
+        // Executes the default action.
+        if (typeof event.target[event.type] === 'function') {
+          event.target[event.type]();
+        }
+        // Re-enables event dispatching.
+        targetData.disabled = false;
+      }
+    }
+
+    // Inform the triggerer if the default was prevented by returning false
+    return !event.defaultPrevented;
+  }
+
+  /**
+   * Trigger a listener only once for an event
+   *
+   * @param {Element|Object} elem
+   *        Element or object to bind to.
+   *
+   * @param {string|string[]} type
+   *        Name/type of event
+   *
+   * @param {Event~EventListener} fn
+   *        Event Listener function
+   */
+  function one(elem, type, fn) {
+    if (Array.isArray(type)) {
+      return _handleMultipleEvents(one, elem, type, fn);
+    }
+    var func = function func() {
+      off(elem, type, func);
+      fn.apply(this, arguments);
+    };
+
+    // copy the guid to the new function so it can removed using the original function's ID
+    func.guid = fn.guid = fn.guid || newGUID();
+    on(elem, type, func);
+  }
+
+  var Events = /*#__PURE__*/Object.freeze({
+    fixEvent: fixEvent,
+    on: on,
+    off: off,
+    trigger: trigger,
+    one: one
+  });
+
+  /**
+   * @file setup.js - Functions for setting up a player without
+   * user interaction based on the data-setup `attribute` of the video tag.
+   *
+   * @module setup
+   */
+
+  var _windowLoaded = false;
+  var videojs = void 0;
+
+  /**
+   * Set up any tags that have a data-setup `attribute` when the player is started.
+   */
+  var autoSetup = function autoSetup() {
+
+    // Protect against breakage in non-browser environments and check global autoSetup option.
+    if (!isReal() || videojs.options.autoSetup === false) {
+      return;
+    }
+
+    var vids = Array.prototype.slice.call(document_1.getElementsByTagName('video'));
+    var audios = Array.prototype.slice.call(document_1.getElementsByTagName('audio'));
+    var divs = Array.prototype.slice.call(document_1.getElementsByTagName('video-js'));
+    var mediaEls = vids.concat(audios, divs);
+
+    // Check if any media elements exist
+    if (mediaEls && mediaEls.length > 0) {
+
+      for (var i = 0, e = mediaEls.length; i < e; i++) {
+        var mediaEl = mediaEls[i];
+
+        // Check if element exists, has getAttribute func.
+        if (mediaEl && mediaEl.getAttribute) {
+
+          // Make sure this player hasn't already been set up.
+          if (mediaEl.player === undefined) {
+            var options = mediaEl.getAttribute('data-setup');
+
+            // Check if data-setup attr exists.
+            // We only auto-setup if they've added the data-setup attr.
+            if (options !== null) {
+              // Create new video.js instance.
+              videojs(mediaEl);
+            }
+          }
+
+          // If getAttribute isn't defined, we need to wait for the DOM.
+        } else {
+          autoSetupTimeout(1);
+          break;
+        }
+      }
+
+      // No videos were found, so keep looping unless page is finished loading.
+    } else if (!_windowLoaded) {
+      autoSetupTimeout(1);
+    }
+  };
+
+  /**
+   * Wait until the page is loaded before running autoSetup. This will be called in
+   * autoSetup if `hasLoaded` returns false.
+   *
+   * @param {number} wait
+   *        How long to wait in ms
+   *
+   * @param {module:videojs} [vjs]
+   *        The videojs library function
+   */
+  function autoSetupTimeout(wait, vjs) {
+    if (vjs) {
+      videojs = vjs;
+    }
+
+    window_1.setTimeout(autoSetup, wait);
+  }
+
+  if (isReal() && document_1.readyState === 'complete') {
+    _windowLoaded = true;
+  } else {
+    /**
+     * Listen for the load event on window, and set _windowLoaded to true.
+     *
+     * @listens load
+     */
+    one(window_1, 'load', function () {
+      _windowLoaded = true;
+    });
+  }
+
+  /**
+   * @file stylesheet.js
+   * @module stylesheet
+   */
+
+  /**
+   * Create a DOM syle element given a className for it.
+   *
+   * @param {string} className
+   *        The className to add to the created style element.
+   *
+   * @return {Element}
+   *         The element that was created.
+   */
+  var createStyleElement = function createStyleElement(className) {
+    var style = document_1.createElement('style');
+
+    style.className = className;
+
+    return style;
+  };
+
+  /**
+   * Add text to a DOM element.
+   *
+   * @param {Element} el
+   *        The Element to add text content to.
+   *
+   * @param {string} content
+   *        The text to add to the element.
+   */
+  var setTextContent = function setTextContent(el, content) {
+    if (el.styleSheet) {
+      el.styleSheet.cssText = content;
+    } else {
+      el.textContent = content;
+    }
+  };
+
+  /**
+   * @file fn.js
+   * @module fn
+   */
+
+  /**
+   * Bind (a.k.a proxy or Context). A simple method for changing the context of a function
+   * It also stores a unique id on the function so it can be easily removed from events.
+   *
+   * @param {Mixed} context
+   *        The object to bind as scope.
+   *
+   * @param {Function} fn
+   *        The function to be bound to a scope.
+   *
+   * @param {number} [uid]
+   *        An optional unique ID for the function to be set
+   *
+   * @return {Function}
+   *         The new function that will be bound into the context given
+   */
+  var bind = function bind(context, fn, uid) {
+    // Make sure the function has a unique ID
+    if (!fn.guid) {
+      fn.guid = newGUID();
+    }
+
+    // Create the new function that changes the context
+    var bound = function bound() {
+      return fn.apply(context, arguments);
+    };
+
+    // Allow for the ability to individualize this function
+    // Needed in the case where multiple objects might share the same prototype
+    // IF both items add an event listener with the same function, then you try to remove just one
+    // it will remove both because they both have the same guid.
+    // when using this, you need to use the bind method when you remove the listener as well.
+    // currently used in text tracks
+    bound.guid = uid ? uid + '_' + fn.guid : fn.guid;
+
+    return bound;
+  };
+
+  /**
+   * Wraps the given function, `fn`, with a new function that only invokes `fn`
+   * at most once per every `wait` milliseconds.
+   *
+   * @param  {Function} fn
+   *         The function to be throttled.
+   *
+   * @param  {Number}   wait
+   *         The number of milliseconds by which to throttle.
+   *
+   * @return {Function}
+   */
+  var throttle = function throttle(fn, wait) {
+    var last = Date.now();
+
+    var throttled = function throttled() {
+      var now = Date.now();
+
+      if (now - last >= wait) {
+        fn.apply(undefined, arguments);
+        last = now;
+      }
+    };
+
+    return throttled;
+  };
+
+  /**
+   * Creates a debounced function that delays invoking `func` until after `wait`
+   * milliseconds have elapsed since the last time the debounced function was
+   * invoked.
+   *
+   * Inspired by lodash and underscore implementations.
+   *
+   * @param  {Function} func
+   *         The function to wrap with debounce behavior.
+   *
+   * @param  {number} wait
+   *         The number of milliseconds to wait after the last invocation.
+   *
+   * @param  {boolean} [immediate]
+   *         Whether or not to invoke the function immediately upon creation.
+   *
+   * @param  {Object} [context=window]
+   *         The "context" in which the debounced function should debounce. For
+   *         example, if this function should be tied to a Video.js player,
+   *         the player can be passed here. Alternatively, defaults to the
+   *         global `window` object.
+   *
+   * @return {Function}
+   *         A debounced function.
+   */
+  var debounce = function debounce(func, wait, immediate) {
+    var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : window_1;
+
+    var timeout = void 0;
+
+    /* eslint-disable consistent-this */
+    return function () {
+      var self = this;
+      var args = arguments;
+
+      var _later = function later() {
+        timeout = null;
+        _later = null;
+        if (!immediate) {
+          func.apply(self, args);
+        }
+      };
+
+      if (!timeout && immediate) {
+        func.apply(self, args);
+      }
+
+      context.clearTimeout(timeout);
+      timeout = context.setTimeout(_later, wait);
+    };
+    /* eslint-enable consistent-this */
+  };
+
+  /**
+   * @file src/js/event-target.js
+   */
+
+  /**
+   * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It
+   * adds shorthand functions that wrap around lengthy functions. For example:
+   * the `on` function is a wrapper around `addEventListener`.
+   *
+   * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}
+   * @class EventTarget
+   */
+  var EventTarget = function EventTarget() {
+  };
+
+  /**
+   * A Custom DOM event.
+   *
+   * @typedef {Object} EventTarget~Event
+   * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}
+   */
+
+  /**
+   * All event listeners should follow the following format.
+   *
+   * @callback EventTarget~EventListener
+   * @this {EventTarget}
+   *
+   * @param {EventTarget~Event} event
+   *        the event that triggered this function
+   *
+   * @param {Object} [hash]
+   *        hash of data sent during the event
+   */
+
+  /**
+   * An object containing event names as keys and booleans as values.
+   *
+   * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}
+   *         will have extra functionality. See that function for more information.
+   *
+   * @property EventTarget.prototype.allowedEvents_
+   * @private
+   */
+  EventTarget.prototype.allowedEvents_ = {};
+
+  /**
+   * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a
+   * function that will get called when an event with a certain name gets triggered.
+   *
+   * @param {string|string[]} type
+   *        An event name or an array of event names.
+   *
+   * @param {EventTarget~EventListener} fn
+   *        The function to call with `EventTarget`s
+   */
+  EventTarget.prototype.on = function (type, fn) {
+    // Remove the addEventListener alias before calling Events.on
+    // so we don't get into an infinite type loop
+    var ael = this.addEventListener;
+
+    this.addEventListener = function () {
+    };
+    on(this, type, fn);
+    this.addEventListener = ael;
+  };
+
+  /**
+   * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic
+   * the standard DOM API.
+   *
+   * @function
+   * @see {@link EventTarget#on}
+   */
+  EventTarget.prototype.addEventListener = EventTarget.prototype.on;
+
+  /**
+   * Removes an `event listener` for a specific event from an instance of `EventTarget`.
+   * This makes it so that the `event listener` will no longer get called when the
+   * named event happens.
+   *
+   * @param {string|string[]} type
+   *        An event name or an array of event names.
+   *
+   * @param {EventTarget~EventListener} fn
+   *        The function to remove.
+   */
+  EventTarget.prototype.off = function (type, fn) {
+    off(this, type, fn);
+  };
+
+  /**
+   * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic
+   * the standard DOM API.
+   *
+   * @function
+   * @see {@link EventTarget#off}
+   */
+  EventTarget.prototype.removeEventListener = EventTarget.prototype.off;
+
+  /**
+   * This function will add an `event listener` that gets triggered only once. After the
+   * first trigger it will get removed. This is like adding an `event listener`
+   * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.
+   *
+   * @param {string|string[]} type
+   *        An event name or an array of event names.
+   *
+   * @param {EventTarget~EventListener} fn
+   *        The function to be called once for each event name.
+   */
+  EventTarget.prototype.one = function (type, fn) {
+    // Remove the addEventListener alialing Events.on
+    // so we don't get into an infinite type loop
+    var ael = this.addEventListener;
+
+    this.addEventListener = function () {
+    };
+    one(this, type, fn);
+    this.addEventListener = ael;
+  };
+
+  /**
+   * This function causes an event to happen. This will then cause any `event listeners`
+   * that are waiting for that event, to get called. If there are no `event listeners`
+   * for an event then nothing will happen.
+   *
+   * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.
+   * Trigger will also call the `on` + `uppercaseEventName` function.
+   *
+   * Example:
+   * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call
+   * `onClick` if it exists.
+   *
+   * @param {string|EventTarget~Event|Object} event
+   *        The name of the event, an `Event`, or an object with a key of type set to
+   *        an event name.
+   */
+  EventTarget.prototype.trigger = function (event) {
+    var type = event.type || event;
+
+    if (typeof event === 'string') {
+      event = {type: type};
+    }
+    event = fixEvent(event);
+
+    if (this.allowedEvents_[type] && this['on' + type]) {
+      this['on' + type](event);
+    }
+
+    trigger(this, event);
+  };
+
+  /**
+   * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic
+   * the standard DOM API.
+   *
+   * @function
+   * @see {@link EventTarget#trigger}
+   */
+  EventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;
+
+  /**
+   * @file mixins/evented.js
+   * @module evented
+   */
+
+  /**
+   * Returns whether or not an object has had the evented mixin applied.
+   *
+   * @param  {Object} object
+   *         An object to test.
+   *
+   * @return {boolean}
+   *         Whether or not the object appears to be evented.
+   */
+  var isEvented = function isEvented(object) {
+    return object instanceof EventTarget || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {
+      return typeof object[k] === 'function';
+    });
+  };
+
+  /**
+   * Whether a value is a valid event type - non-empty string or array.
+   *
+   * @private
+   * @param  {string|Array} type
+   *         The type value to test.
+   *
+   * @return {boolean}
+   *         Whether or not the type is a valid event type.
+   */
+  var isValidEventType = function isValidEventType(type) {
+    return (
+      // The regex here verifies that the `type` contains at least one non-
+      // whitespace character.
+      typeof type === 'string' && /\S/.test(type) || Array.isArray(type) && !!type.length
+    );
+  };
+
+  /**
+   * Validates a value to determine if it is a valid event target. Throws if not.
+   *
+   * @private
+   * @throws {Error}
+   *         If the target does not appear to be a valid event target.
+   *
+   * @param  {Object} target
+   *         The object to test.
+   */
+  var validateTarget = function validateTarget(target) {
+    if (!target.nodeName && !isEvented(target)) {
+      throw new Error('Invalid target; must be a DOM node or evented object.');
+    }
+  };
+
+  /**
+   * Validates a value to determine if it is a valid event target. Throws if not.
+   *
+   * @private
+   * @throws {Error}
+   *         If the type does not appear to be a valid event type.
+   *
+   * @param  {string|Array} type
+   *         The type to test.
+   */
+  var validateEventType = function validateEventType(type) {
+    if (!isValidEventType(type)) {
+      throw new Error('Invalid event type; must be a non-empty string or array.');
+    }
+  };
+
+  /**
+   * Validates a value to determine if it is a valid listener. Throws if not.
+   *
+   * @private
+   * @throws {Error}
+   *         If the listener is not a function.
+   *
+   * @param  {Function} listener
+   *         The listener to test.
+   */
+  var validateListener = function validateListener(listener) {
+    if (typeof listener !== 'function') {
+      throw new Error('Invalid listener; must be a function.');
+    }
+  };
+
+  /**
+   * Takes an array of arguments given to `on()` or `one()`, validates them, and
+   * normalizes them into an object.
+   *
+   * @private
+   * @param  {Object} self
+   *         The evented object on which `on()` or `one()` was called. This
+   *         object will be bound as the `this` value for the listener.
+   *
+   * @param  {Array} args
+   *         An array of arguments passed to `on()` or `one()`.
+   *
+   * @return {Object}
+   *         An object containing useful values for `on()` or `one()` calls.
+   */
+  var normalizeListenArgs = function normalizeListenArgs(self, args) {
+
+    // If the number of arguments is less than 3, the target is always the
+    // evented object itself.
+    var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;
+    var target = void 0;
+    var type = void 0;
+    var listener = void 0;
+
+    if (isTargetingSelf) {
+      target = self.eventBusEl_;
+
+      // Deal with cases where we got 3 arguments, but we are still listening to
+      // the evented object itself.
+      if (args.length >= 3) {
+        args.shift();
+      }
+
+      type = args[0];
+      listener = args[1];
+    } else {
+      target = args[0];
+      type = args[1];
+      listener = args[2];
+    }
+
+    validateTarget(target);
+    validateEventType(type);
+    validateListener(listener);
+
+    listener = bind(self, listener);
+
+    return {isTargetingSelf: isTargetingSelf, target: target, type: type, listener: listener};
+  };
+
+  /**
+   * Adds the listener to the event type(s) on the target, normalizing for
+   * the type of target.
+   *
+   * @private
+   * @param  {Element|Object} target
+   *         A DOM node or evented object.
+   *
+   * @param  {string} method
+   *         The event binding method to use ("on" or "one").
+   *
+   * @param  {string|Array} type
+   *         One or more event type(s).
+   *
+   * @param  {Function} listener
+   *         A listener function.
+   */
+  var listen = function listen(target, method, type, listener) {
+    validateTarget(target);
+
+    if (target.nodeName) {
+      Events[method](target, type, listener);
+    } else {
+      target[method](type, listener);
+    }
+  };
+
+  /**
+   * Contains methods that provide event capabilities to an object which is passed
+   * to {@link module:evented|evented}.
+   *
+   * @mixin EventedMixin
+   */
+  var EventedMixin = {
+
+    /**
+     * Add a listener to an event (or events) on this object or another evented
+     * object.
+     *
+     * @param  {string|Array|Element|Object} targetOrType
+     *         If this is a string or array, it represents the event type(s)
+     *         that will trigger the listener.
+     *
+     *         Another evented object can be passed here instead, which will
+     *         cause the listener to listen for events on _that_ object.
+     *
+     *         In either case, the listener's `this` value will be bound to
+     *         this object.
+     *
+     * @param  {string|Array|Function} typeOrListener
+     *         If the first argument was a string or array, this should be the
+     *         listener function. Otherwise, this is a string or array of event
+     *         type(s).
+     *
+     * @param  {Function} [listener]
+     *         If the first argument was another evented object, this will be
+     *         the listener function.
+     */
+    on: function on$$1() {
+      var _this = this;
+
+      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+        args[_key] = arguments[_key];
+      }
+
+      var _normalizeListenArgs = normalizeListenArgs(this, args),
+        isTargetingSelf = _normalizeListenArgs.isTargetingSelf,
+        target = _normalizeListenArgs.target,
+        type = _normalizeListenArgs.type,
+        listener = _normalizeListenArgs.listener;
+
+      listen(target, 'on', type, listener);
+
+      // If this object is listening to another evented object.
+      if (!isTargetingSelf) {
+
+        // If this object is disposed, remove the listener.
+        var removeListenerOnDispose = function removeListenerOnDispose() {
+          return _this.off(target, type, listener);
+        };
+
+        // Use the same function ID as the listener so we can remove it later it
+        // using the ID of the original listener.
+        removeListenerOnDispose.guid = listener.guid;
+
+        // Add a listener to the target's dispose event as well. This ensures
+        // that if the target is disposed BEFORE this object, we remove the
+        // removal listener that was just added. Otherwise, we create a memory leak.
+        var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {
+          return _this.off('dispose', removeListenerOnDispose);
+        };
+
+        // Use the same function ID as the listener so we can remove it later
+        // it using the ID of the original listener.
+        removeRemoverOnTargetDispose.guid = listener.guid;
+
+        listen(this, 'on', 'dispose', removeListenerOnDispose);
+        listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);
+      }
+    },
+
+
+    /**
+     * Add a listener to an event (or events) on this object or another evented
+     * object. The listener will only be called once and then removed.
+     *
+     * @param  {string|Array|Element|Object} targetOrType
+     *         If this is a string or array, it represents the event type(s)
+     *         that will trigger the listener.
+     *
+     *         Another evented object can be passed here instead, which will
+     *         cause the listener to listen for events on _that_ object.
+     *
+     *         In either case, the listener's `this` value will be bound to
+     *         this object.
+     *
+     * @param  {string|Array|Function} typeOrListener
+     *         If the first argument was a string or array, this should be the
+     *         listener function. Otherwise, this is a string or array of event
+     *         type(s).
+     *
+     * @param  {Function} [listener]
+     *         If the first argument was another evented object, this will be
+     *         the listener function.
+     */
+    one: function one$$1() {
+      var _this2 = this;
+
+      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+        args[_key2] = arguments[_key2];
+      }
+
+      var _normalizeListenArgs2 = normalizeListenArgs(this, args),
+        isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,
+        target = _normalizeListenArgs2.target,
+        type = _normalizeListenArgs2.type,
+        listener = _normalizeListenArgs2.listener;
+
+      // Targeting this evented object.
+
+
+      if (isTargetingSelf) {
+        listen(target, 'one', type, listener);
+
+        // Targeting another evented object.
+      } else {
+        var wrapper = function wrapper() {
+          for (var _len3 = arguments.length, largs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+            largs[_key3] = arguments[_key3];
+          }
+
+          _this2.off(target, type, wrapper);
+          listener.apply(null, largs);
+        };
+
+        // Use the same function ID as the listener so we can remove it later
+        // it using the ID of the original listener.
+        wrapper.guid = listener.guid;
+        listen(target, 'one', type, wrapper);
+      }
+    },
+
+
+    /**
+     * Removes listener(s) from event(s) on an evented object.
+     *
+     * @param  {string|Array|Element|Object} [targetOrType]
+     *         If this is a string or array, it represents the event type(s).
+     *
+     *         Another evented object can be passed here instead, in which case
+     *         ALL 3 arguments are _required_.
+     *
+     * @param  {string|Array|Function} [typeOrListener]
+     *         If the first argument was a string or array, this may be the
+     *         listener function. Otherwise, this is a string or array of event
+     *         type(s).
+     *
+     * @param  {Function} [listener]
+     *         If the first argument was another evented object, this will be
+     *         the listener function; otherwise, _all_ listeners bound to the
+     *         event type(s) will be removed.
+     */
+    off: function off$$1(targetOrType, typeOrListener, listener) {
+
+      // Targeting this evented object.
+      if (!targetOrType || isValidEventType(targetOrType)) {
+        off(this.eventBusEl_, targetOrType, typeOrListener);
+
+        // Targeting another evented object.
+      } else {
+        var target = targetOrType;
+        var type = typeOrListener;
+
+        // Fail fast and in a meaningful way!
+        validateTarget(target);
+        validateEventType(type);
+        validateListener(listener);
+
+        // Ensure there's at least a guid, even if the function hasn't been used
+        listener = bind(this, listener);
+
+        // Remove the dispose listener on this evented object, which was given
+        // the same guid as the event listener in on().
+        this.off('dispose', listener);
+
+        if (target.nodeName) {
+          off(target, type, listener);
+          off(target, 'dispose', listener);
+        } else if (isEvented(target)) {
+          target.off(type, listener);
+          target.off('dispose', listener);
+        }
+      }
+    },
+
+
+    /**
+     * Fire an event on this evented object, causing its listeners to be called.
+     *
+     * @param   {string|Object} event
+     *          An event type or an object with a type property.
+     *
+     * @param   {Object} [hash]
+     *          An additional object to pass along to listeners.
+     *
+     * @returns {boolean}
+     *          Whether or not the default behavior was prevented.
+     */
+    trigger: function trigger$$1(event, hash) {
+      return trigger(this.eventBusEl_, event, hash);
+    }
+  };
+
+  /**
+   * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.
+   *
+   * @param  {Object} target
+   *         The object to which to add event methods.
+   *
+   * @param  {Object} [options={}]
+   *         Options for customizing the mixin behavior.
+   *
+   * @param  {String} [options.eventBusKey]
+   *         By default, adds a `eventBusEl_` DOM element to the target object,
+   *         which is used as an event bus. If the target object already has a
+   *         DOM element that should be used, pass its key here.
+   *
+   * @return {Object}
+   *         The target object.
+   */
+  function evented(target) {
+    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    var eventBusKey = options.eventBusKey;
+
+    // Set or create the eventBusEl_.
+
+    if (eventBusKey) {
+      if (!target[eventBusKey].nodeName) {
+        throw new Error('The eventBusKey "' + eventBusKey + '" does not refer to an element.');
+      }
+      target.eventBusEl_ = target[eventBusKey];
+    } else {
+      target.eventBusEl_ = createEl('span', {className: 'vjs-event-bus'});
+    }
+
+    assign(target, EventedMixin);
+
+    // When any evented object is disposed, it removes all its listeners.
+    target.on('dispose', function () {
+      target.off();
+      window_1.setTimeout(function () {
+        target.eventBusEl_ = null;
+      }, 0);
+    });
+
+    return target;
+  }
+
+  /**
+   * @file mixins/stateful.js
+   * @module stateful
+   */
+
+  /**
+   * Contains methods that provide statefulness to an object which is passed
+   * to {@link module:stateful}.
+   *
+   * @mixin StatefulMixin
+   */
+  var StatefulMixin = {
+
+    /**
+     * A hash containing arbitrary keys and values representing the state of
+     * the object.
+     *
+     * @type {Object}
+     */
+    state: {},
+
+    /**
+     * Set the state of an object by mutating its
+     * {@link module:stateful~StatefulMixin.state|state} object in place.
+     *
+     * @fires   module:stateful~StatefulMixin#statechanged
+     * @param   {Object|Function} stateUpdates
+     *          A new set of properties to shallow-merge into the plugin state.
+     *          Can be a plain object or a function returning a plain object.
+     *
+     * @returns {Object|undefined}
+     *          An object containing changes that occurred. If no changes
+     *          occurred, returns `undefined`.
+     */
+    setState: function setState(stateUpdates) {
+      var _this = this;
+
+      // Support providing the `stateUpdates` state as a function.
+      if (typeof stateUpdates === 'function') {
+        stateUpdates = stateUpdates();
+      }
+
+      var changes = void 0;
+
+      each(stateUpdates, function (value, key) {
+
+        // Record the change if the value is different from what's in the
+        // current state.
+        if (_this.state[key] !== value) {
+          changes = changes || {};
+          changes[key] = {
+            from: _this.state[key],
+            to: value
+          };
+        }
+
+        _this.state[key] = value;
+      });
+
+      // Only trigger "statechange" if there were changes AND we have a trigger
+      // function. This allows us to not require that the target object be an
+      // evented object.
+      if (changes && isEvented(this)) {
+
+        /**
+         * An event triggered on an object that is both
+         * {@link module:stateful|stateful} and {@link module:evented|evented}
+         * indicating that its state has changed.
+         *
+         * @event    module:stateful~StatefulMixin#statechanged
+         * @type     {Object}
+         * @property {Object} changes
+         *           A hash containing the properties that were changed and
+         *           the values they were changed `from` and `to`.
+         */
+        this.trigger({
+          changes: changes,
+          type: 'statechanged'
+        });
+      }
+
+      return changes;
+    }
+  };
+
+  /**
+   * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target
+   * object.
+   *
+   * If the target object is {@link module:evented|evented} and has a
+   * `handleStateChanged` method, that method will be automatically bound to the
+   * `statechanged` event on itself.
+   *
+   * @param   {Object} target
+   *          The object to be made stateful.
+   *
+   * @param   {Object} [defaultState]
+   *          A default set of properties to populate the newly-stateful object's
+   *          `state` property.
+   *
+   * @returns {Object}
+   *          Returns the `target`.
+   */
+  function stateful(target, defaultState) {
+    assign(target, StatefulMixin);
+
+    // This happens after the mixing-in because we need to replace the `state`
+    // added in that step.
+    target.state = assign({}, target.state, defaultState);
+
+    // Auto-bind the `handleStateChanged` method of the target object if it exists.
+    if (typeof target.handleStateChanged === 'function' && isEvented(target)) {
+      target.on('statechanged', target.handleStateChanged);
+    }
+
+    return target;
+  }
+
+  /**
+   * @file to-title-case.js
+   * @module to-title-case
+   */
+
+  /**
+   * Uppercase the first letter of a string.
+   *
+   * @param {string} string
+   *        String to be uppercased
+   *
+   * @return {string}
+   *         The string with an uppercased first letter
+   */
+  function toTitleCase(string) {
+    if (typeof string !== 'string') {
+      return string;
+    }
+
+    return string.charAt(0).toUpperCase() + string.slice(1);
+  }
+
+  /**
+   * Compares the TitleCase versions of the two strings for equality.
+   *
+   * @param {string} str1
+   *        The first string to compare
+   *
+   * @param {string} str2
+   *        The second string to compare
+   *
+   * @return {boolean}
+   *         Whether the TitleCase versions of the strings are equal
+   */
+  function titleCaseEquals(str1, str2) {
+    return toTitleCase(str1) === toTitleCase(str2);
+  }
+
+  /**
+   * @file merge-options.js
+   * @module merge-options
+   */
+
+  /**
+   * Deep-merge one or more options objects, recursively merging **only** plain
+   * object properties.
+   *
+   * @param   {Object[]} sources
+   *          One or more objects to merge into a new object.
+   *
+   * @returns {Object}
+   *          A new object that is the merged result of all sources.
+   */
+  function mergeOptions() {
+    var result = {};
+
+    for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {
+      sources[_key] = arguments[_key];
+    }
+
+    sources.forEach(function (source) {
+      if (!source) {
+        return;
+      }
+
+      each(source, function (value, key) {
+        if (!isPlain(value)) {
+          result[key] = value;
+          return;
+        }
+
+        if (!isPlain(result[key])) {
+          result[key] = {};
+        }
+
+        result[key] = mergeOptions(result[key], value);
+      });
+    });
+
+    return result;
+  }
+
+  /**
+   * Player Component - Base class for all UI objects
+   *
+   * @file component.js
+   */
+
+  /**
+   * Base class for all UI Components.
+   * Components are UI objects which represent both a javascript object and an element
+   * in the DOM. They can be children of other components, and can have
+   * children themselves.
+   *
+   * Components can also use methods from {@link EventTarget}
+   */
+
+  var Component = function () {
+
+    /**
+     * A callback that is called when a component is ready. Does not have any
+     * paramters and any callback value will be ignored.
+     *
+     * @callback Component~ReadyCallback
+     * @this Component
+     */
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Object[]} [options.children]
+     *        An array of children objects to intialize this component with. Children objects have
+     *        a name property that will be used if more than one component of the same type needs to be
+     *        added.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        Function that gets called when the `Component` is ready.
+     */
+    function Component(player, options, ready) {
+      classCallCheck(this, Component);
+
+
+      // The component might be the player itself and we can't pass `this` to super
+      if (!player && this.play) {
+        this.player_ = player = this; // eslint-disable-line
+      } else {
+        this.player_ = player;
+      }
+
+      // Make a copy of prototype.options_ to protect against overriding defaults
+      this.options_ = mergeOptions({}, this.options_);
+
+      // Updated options with supplied options
+      options = this.options_ = mergeOptions(this.options_, options);
+
+      // Get ID from options or options element if one is supplied
+      this.id_ = options.id || options.el && options.el.id;
+
+      // If there was no ID from the options, generate one
+      if (!this.id_) {
+        // Don't require the player ID function in the case of mock players
+        var id = player && player.id && player.id() || 'no_player';
+
+        this.id_ = id + '_component_' + newGUID();
+      }
+
+      this.name_ = options.name || null;
+
+      // Create element if one wasn't provided in options
+      if (options.el) {
+        this.el_ = options.el;
+      } else if (options.createEl !== false) {
+        this.el_ = this.createEl();
+      }
+
+      // if evented is anything except false, we want to mixin in evented
+      if (options.evented !== false) {
+        // Make this an evented object and use `el_`, if available, as its event bus
+        evented(this, {eventBusKey: this.el_ ? 'el_' : null});
+      }
+      stateful(this, this.constructor.defaultState);
+
+      this.children_ = [];
+      this.childIndex_ = {};
+      this.childNameIndex_ = {};
+
+      // Add any child components in options
+      if (options.initChildren !== false) {
+        this.initChildren();
+      }
+
+      this.ready(ready);
+      // Don't want to trigger ready here or it will before init is actually
+      // finished for all children that run this constructor
+
+      if (options.reportTouchActivity !== false) {
+        this.enableTouchActivity();
+      }
+    }
+
+    /**
+     * Dispose of the `Component` and all child components.
+     *
+     * @fires Component#dispose
+     */
+
+
+    Component.prototype.dispose = function dispose() {
+
+      /**
+       * Triggered when a `Component` is disposed.
+       *
+       * @event Component#dispose
+       * @type {EventTarget~Event}
+       *
+       * @property {boolean} [bubbles=false]
+       *           set to false so that the close event does not
+       *           bubble up
+       */
+      this.trigger({type: 'dispose', bubbles: false});
+
+      // Dispose all children.
+      if (this.children_) {
+        for (var i = this.children_.length - 1; i >= 0; i--) {
+          if (this.children_[i].dispose) {
+            this.children_[i].dispose();
+          }
+        }
+      }
+
+      // Delete child references
+      this.children_ = null;
+      this.childIndex_ = null;
+      this.childNameIndex_ = null;
+
+      if (this.el_) {
+        // Remove element from DOM
+        if (this.el_.parentNode) {
+          this.el_.parentNode.removeChild(this.el_);
+        }
+
+        removeData(this.el_);
+        this.el_ = null;
+      }
+
+      // remove reference to the player after disposing of the element
+      this.player_ = null;
+    };
+
+    /**
+     * Return the {@link Player} that the `Component` has attached to.
+     *
+     * @return {Player}
+     *         The player that this `Component` has attached to.
+     */
+
+
+    Component.prototype.player = function player() {
+      return this.player_;
+    };
+
+    /**
+     * Deep merge of options objects with new options.
+     * > Note: When both `obj` and `options` contain properties whose values are objects.
+     *         The two properties get merged using {@link module:mergeOptions}
+     *
+     * @param {Object} obj
+     *        The object that contains new options.
+     *
+     * @return {Object}
+     *         A new object of `this.options_` and `obj` merged together.
+     *
+     * @deprecated since version 5
+     */
+
+
+    Component.prototype.options = function options(obj) {
+      log$1.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
+
+      if (!obj) {
+        return this.options_;
+      }
+
+      this.options_ = mergeOptions(this.options_, obj);
+      return this.options_;
+    };
+
+    /**
+     * Get the `Component`s DOM element
+     *
+     * @return {Element}
+     *         The DOM element for this `Component`.
+     */
+
+
+    Component.prototype.el = function el() {
+      return this.el_;
+    };
+
+    /**
+     * Create the `Component`s DOM element.
+     *
+     * @param {string} [tagName]
+     *        Element's DOM node type. e.g. 'div'
+     *
+     * @param {Object} [properties]
+     *        An object of properties that should be set.
+     *
+     * @param {Object} [attributes]
+     *        An object of attributes that should be set.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    Component.prototype.createEl = function createEl$$1(tagName, properties, attributes) {
+      return createEl(tagName, properties, attributes);
+    };
+
+    /**
+     * Localize a string given the string in english.
+     *
+     * If tokens are provided, it'll try and run a simple token replacement on the provided string.
+     * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.
+     *
+     * If a `defaultValue` is provided, it'll use that over `string`,
+     * if a value isn't found in provided language files.
+     * This is useful if you want to have a descriptive key for token replacement
+     * but have a succinct localized string and not require `en.json` to be included.
+     *
+     * Currently, it is used for the progress bar timing.
+     * ```js
+     * {
+     *   "progress bar timing: currentTime={1} duration={2}": "{1} of {2}"
+     * }
+     * ```
+     * It is then used like so:
+     * ```js
+     * this.localize('progress bar timing: currentTime={1} duration{2}',
+     *               [this.player_.currentTime(), this.player_.duration()],
+     *               '{1} of {2}');
+     * ```
+     *
+     * Which outputs something like: `01:23 of 24:56`.
+     *
+     *
+     * @param {string} string
+     *        The string to localize and the key to lookup in the language files.
+     * @param {string[]} [tokens]
+     *        If the current item has token replacements, provide the tokens here.
+     * @param {string} [defaultValue]
+     *        Defaults to `string`. Can be a default value to use for token replacement
+     *        if the lookup key is needed to be separate.
+     *
+     * @return {string}
+     *         The localized string or if no localization exists the english string.
+     */
+
+
+    Component.prototype.localize = function localize(string, tokens) {
+      var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : string;
+
+      var code = this.player_.language && this.player_.language();
+      var languages = this.player_.languages && this.player_.languages();
+      var language = languages && languages[code];
+      var primaryCode = code && code.split('-')[0];
+      var primaryLang = languages && languages[primaryCode];
+
+      var localizedString = defaultValue;
+
+      if (language && language[string]) {
+        localizedString = language[string];
+      } else if (primaryLang && primaryLang[string]) {
+        localizedString = primaryLang[string];
+      }
+
+      if (tokens) {
+        localizedString = localizedString.replace(/\{(\d+)\}/g, function (match, index) {
+          var value = tokens[index - 1];
+          var ret = value;
+
+          if (typeof value === 'undefined') {
+            ret = match;
+          }
+
+          return ret;
+        });
+      }
+
+      return localizedString;
+    };
+
+    /**
+     * Return the `Component`s DOM element. This is where children get inserted.
+     * This will usually be the the same as the element returned in {@link Component#el}.
+     *
+     * @return {Element}
+     *         The content element for this `Component`.
+     */
+
+
+    Component.prototype.contentEl = function contentEl() {
+      return this.contentEl_ || this.el_;
+    };
+
+    /**
+     * Get this `Component`s ID
+     *
+     * @return {string}
+     *         The id of this `Component`
+     */
+
+
+    Component.prototype.id = function id() {
+      return this.id_;
+    };
+
+    /**
+     * Get the `Component`s name. The name gets used to reference the `Component`
+     * and is set during registration.
+     *
+     * @return {string}
+     *         The name of this `Component`.
+     */
+
+
+    Component.prototype.name = function name() {
+      return this.name_;
+    };
+
+    /**
+     * Get an array of all child components
+     *
+     * @return {Array}
+     *         The children
+     */
+
+
+    Component.prototype.children = function children() {
+      return this.children_;
+    };
+
+    /**
+     * Returns the child `Component` with the given `id`.
+     *
+     * @param {string} id
+     *        The id of the child `Component` to get.
+     *
+     * @return {Component|undefined}
+     *         The child `Component` with the given `id` or undefined.
+     */
+
+
+    Component.prototype.getChildById = function getChildById(id) {
+      return this.childIndex_[id];
+    };
+
+    /**
+     * Returns the child `Component` with the given `name`.
+     *
+     * @param {string} name
+     *        The name of the child `Component` to get.
+     *
+     * @return {Component|undefined}
+     *         The child `Component` with the given `name` or undefined.
+     */
+
+
+    Component.prototype.getChild = function getChild(name) {
+      if (!name) {
+        return;
+      }
+
+      name = toTitleCase(name);
+
+      return this.childNameIndex_[name];
+    };
+
+    /**
+     * Add a child `Component` inside the current `Component`.
+     *
+     *
+     * @param {string|Component} child
+     *        The name or instance of a child to add.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of options that will get passed to children of
+     *        the child.
+     *
+     * @param {number} [index=this.children_.length]
+     *        The index to attempt to add a child into.
+     *
+     * @return {Component}
+     *         The `Component` that gets added as a child. When using a string the
+     *         `Component` will get created by this process.
+     */
+
+
+    Component.prototype.addChild = function addChild(child) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.children_.length;
+
+      var component = void 0;
+      var componentName = void 0;
+
+      // If child is a string, create component with options
+      if (typeof child === 'string') {
+        componentName = toTitleCase(child);
+
+        var componentClassName = options.componentClass || componentName;
+
+        // Set name through options
+        options.name = componentName;
+
+        // Create a new object & element for this controls set
+        // If there's no .player_, this is a player
+        var ComponentClass = Component.getComponent(componentClassName);
+
+        if (!ComponentClass) {
+          throw new Error('Component ' + componentClassName + ' does not exist');
+        }
+
+        // data stored directly on the videojs object may be
+        // misidentified as a component to retain
+        // backwards-compatibility with 4.x. check to make sure the
+        // component class can be instantiated.
+        if (typeof ComponentClass !== 'function') {
+          return null;
+        }
+
+        component = new ComponentClass(this.player_ || this, options);
+
+        // child is a component instance
+      } else {
+        component = child;
+      }
+
+      this.children_.splice(index, 0, component);
+
+      if (typeof component.id === 'function') {
+        this.childIndex_[component.id()] = component;
+      }
+
+      // If a name wasn't used to create the component, check if we can use the
+      // name function of the component
+      componentName = componentName || component.name && toTitleCase(component.name());
+
+      if (componentName) {
+        this.childNameIndex_[componentName] = component;
+      }
+
+      // Add the UI object's element to the container div (box)
+      // Having an element is not required
+      if (typeof component.el === 'function' && component.el()) {
+        var childNodes = this.contentEl().children;
+        var refNode = childNodes[index] || null;
+
+        this.contentEl().insertBefore(component.el(), refNode);
+      }
+
+      // Return so it can stored on parent object if desired.
+      return component;
+    };
+
+    /**
+     * Remove a child `Component` from this `Component`s list of children. Also removes
+     * the child `Component`s element from this `Component`s element.
+     *
+     * @param {Component} component
+     *        The child `Component` to remove.
+     */
+
+
+    Component.prototype.removeChild = function removeChild(component) {
+      if (typeof component === 'string') {
+        component = this.getChild(component);
+      }
+
+      if (!component || !this.children_) {
+        return;
+      }
+
+      var childFound = false;
+
+      for (var i = this.children_.length - 1; i >= 0; i--) {
+        if (this.children_[i] === component) {
+          childFound = true;
+          this.children_.splice(i, 1);
+          break;
+        }
+      }
+
+      if (!childFound) {
+        return;
+      }
+
+      this.childIndex_[component.id()] = null;
+      this.childNameIndex_[component.name()] = null;
+
+      var compEl = component.el();
+
+      if (compEl && compEl.parentNode === this.contentEl()) {
+        this.contentEl().removeChild(component.el());
+      }
+    };
+
+    /**
+     * Add and initialize default child `Component`s based upon options.
+     */
+
+
+    Component.prototype.initChildren = function initChildren() {
+      var _this = this;
+
+      var children = this.options_.children;
+
+      if (children) {
+        // `this` is `parent`
+        var parentOptions = this.options_;
+
+        var handleAdd = function handleAdd(child) {
+          var name = child.name;
+          var opts = child.opts;
+
+          // Allow options for children to be set at the parent options
+          // e.g. videojs(id, { controlBar: false });
+          // instead of videojs(id, { children: { controlBar: false });
+          if (parentOptions[name] !== undefined) {
+            opts = parentOptions[name];
+          }
+
+          // Allow for disabling default components
+          // e.g. options['children']['posterImage'] = false
+          if (opts === false) {
+            return;
+          }
+
+          // Allow options to be passed as a simple boolean if no configuration
+          // is necessary.
+          if (opts === true) {
+            opts = {};
+          }
+
+          // We also want to pass the original player options
+          // to each component as well so they don't need to
+          // reach back into the player for options later.
+          opts.playerOptions = _this.options_.playerOptions;
+
+          // Create and add the child component.
+          // Add a direct reference to the child by name on the parent instance.
+          // If two of the same component are used, different names should be supplied
+          // for each
+          var newChild = _this.addChild(name, opts);
+
+          if (newChild) {
+            _this[name] = newChild;
+          }
+        };
+
+        // Allow for an array of children details to passed in the options
+        var workingChildren = void 0;
+        var Tech = Component.getComponent('Tech');
+
+        if (Array.isArray(children)) {
+          workingChildren = children;
+        } else {
+          workingChildren = Object.keys(children);
+        }
+
+        workingChildren
+        // children that are in this.options_ but also in workingChildren  would
+        // give us extra children we do not want. So, we want to filter them out.
+          .concat(Object.keys(this.options_).filter(function (child) {
+            return !workingChildren.some(function (wchild) {
+              if (typeof wchild === 'string') {
+                return child === wchild;
+              }
+              return child === wchild.name;
+            });
+          })).map(function (child) {
+          var name = void 0;
+          var opts = void 0;
+
+          if (typeof child === 'string') {
+            name = child;
+            opts = children[name] || _this.options_[name] || {};
+          } else {
+            name = child.name;
+            opts = child;
+          }
+
+          return {name: name, opts: opts};
+        }).filter(function (child) {
+          // we have to make sure that child.name isn't in the techOrder since
+          // techs are registerd as Components but can't aren't compatible
+          // See https://github.com/videojs/video.js/issues/2772
+          var c = Component.getComponent(child.opts.componentClass || toTitleCase(child.name));
+
+          return c && !Tech.isTech(c);
+        }).forEach(handleAdd);
+      }
+    };
+
+    /**
+     * Builds the default DOM class name. Should be overriden by sub-components.
+     *
+     * @return {string}
+     *         The DOM class name for this object.
+     *
+     * @abstract
+     */
+
+
+    Component.prototype.buildCSSClass = function buildCSSClass() {
+      // Child classes can include a function that does:
+      // return 'CLASS NAME' + this._super();
+      return '';
+    };
+
+    /**
+     * Bind a listener to the component's ready state.
+     * Different from event listeners in that if the ready event has already happened
+     * it will trigger the function immediately.
+     *
+     * @return {Component}
+     *         Returns itself; method can be chained.
+     */
+
+
+    Component.prototype.ready = function ready(fn) {
+      var sync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+      if (!fn) {
+        return;
+      }
+
+      if (!this.isReady_) {
+        this.readyQueue_ = this.readyQueue_ || [];
+        this.readyQueue_.push(fn);
+        return;
+      }
+
+      if (sync) {
+        fn.call(this);
+      } else {
+        // Call the function asynchronously by default for consistency
+        this.setTimeout(fn, 1);
+      }
+    };
+
+    /**
+     * Trigger all the ready listeners for this `Component`.
+     *
+     * @fires Component#ready
+     */
+
+
+    Component.prototype.triggerReady = function triggerReady() {
+      this.isReady_ = true;
+
+      // Ensure ready is triggered asynchronously
+      this.setTimeout(function () {
+        var readyQueue = this.readyQueue_;
+
+        // Reset Ready Queue
+        this.readyQueue_ = [];
+
+        if (readyQueue && readyQueue.length > 0) {
+          readyQueue.forEach(function (fn) {
+            fn.call(this);
+          }, this);
+        }
+
+        // Allow for using event listeners also
+        /**
+         * Triggered when a `Component` is ready.
+         *
+         * @event Component#ready
+         * @type {EventTarget~Event}
+         */
+        this.trigger('ready');
+      }, 1);
+    };
+
+    /**
+     * Find a single DOM element matching a `selector`. This can be within the `Component`s
+     * `contentEl()` or another custom context.
+     *
+     * @param {string} selector
+     *        A valid CSS selector, which will be passed to `querySelector`.
+     *
+     * @param {Element|string} [context=this.contentEl()]
+     *        A DOM element within which to query. Can also be a selector string in
+     *        which case the first matching element will get used as context. If
+     *        missing `this.contentEl()` gets used. If  `this.contentEl()` returns
+     *        nothing it falls back to `document`.
+     *
+     * @return {Element|null}
+     *         the dom element that was found, or null
+     *
+     * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)
+     */
+
+
+    Component.prototype.$ = function $$$1(selector, context) {
+      return $(selector, context || this.contentEl());
+    };
+
+    /**
+     * Finds all DOM element matching a `selector`. This can be within the `Component`s
+     * `contentEl()` or another custom context.
+     *
+     * @param {string} selector
+     *        A valid CSS selector, which will be passed to `querySelectorAll`.
+     *
+     * @param {Element|string} [context=this.contentEl()]
+     *        A DOM element within which to query. Can also be a selector string in
+     *        which case the first matching element will get used as context. If
+     *        missing `this.contentEl()` gets used. If  `this.contentEl()` returns
+     *        nothing it falls back to `document`.
+     *
+     * @return {NodeList}
+     *         a list of dom elements that were found
+     *
+     * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)
+     */
+
+
+    Component.prototype.$$ = function $$$$1(selector, context) {
+      return $$(selector, context || this.contentEl());
+    };
+
+    /**
+     * Check if a component's element has a CSS class name.
+     *
+     * @param {string} classToCheck
+     *        CSS class name to check.
+     *
+     * @return {boolean}
+     *         - True if the `Component` has the class.
+     *         - False if the `Component` does not have the class`
+     */
+
+
+    Component.prototype.hasClass = function hasClass$$1(classToCheck) {
+      return hasClass(this.el_, classToCheck);
+    };
+
+    /**
+     * Add a CSS class name to the `Component`s element.
+     *
+     * @param {string} classToAdd
+     *        CSS class name to add
+     */
+
+
+    Component.prototype.addClass = function addClass$$1(classToAdd) {
+      addClass(this.el_, classToAdd);
+    };
+
+    /**
+     * Remove a CSS class name from the `Component`s element.
+     *
+     * @param {string} classToRemove
+     *        CSS class name to remove
+     */
+
+
+    Component.prototype.removeClass = function removeClass$$1(classToRemove) {
+      removeClass(this.el_, classToRemove);
+    };
+
+    /**
+     * Add or remove a CSS class name from the component's element.
+     * - `classToToggle` gets added when {@link Component#hasClass} would return false.
+     * - `classToToggle` gets removed when {@link Component#hasClass} would return true.
+     *
+     * @param  {string} classToToggle
+     *         The class to add or remove based on (@link Component#hasClass}
+     *
+     * @param  {boolean|Dom~predicate} [predicate]
+     *         An {@link Dom~predicate} function or a boolean
+     */
+
+
+    Component.prototype.toggleClass = function toggleClass$$1(classToToggle, predicate) {
+      toggleClass(this.el_, classToToggle, predicate);
+    };
+
+    /**
+     * Show the `Component`s element if it is hidden by removing the
+     * 'vjs-hidden' class name from it.
+     */
+
+
+    Component.prototype.show = function show() {
+      this.removeClass('vjs-hidden');
+    };
+
+    /**
+     * Hide the `Component`s element if it is currently showing by adding the
+     * 'vjs-hidden` class name to it.
+     */
+
+
+    Component.prototype.hide = function hide() {
+      this.addClass('vjs-hidden');
+    };
+
+    /**
+     * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'
+     * class name to it. Used during fadeIn/fadeOut.
+     *
+     * @private
+     */
+
+
+    Component.prototype.lockShowing = function lockShowing() {
+      this.addClass('vjs-lock-showing');
+    };
+
+    /**
+     * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'
+     * class name from it. Used during fadeIn/fadeOut.
+     *
+     * @private
+     */
+
+
+    Component.prototype.unlockShowing = function unlockShowing() {
+      this.removeClass('vjs-lock-showing');
+    };
+
+    /**
+     * Get the value of an attribute on the `Component`s element.
+     *
+     * @param {string} attribute
+     *        Name of the attribute to get the value from.
+     *
+     * @return {string|null}
+     *         - The value of the attribute that was asked for.
+     *         - Can be an empty string on some browsers if the attribute does not exist
+     *           or has no value
+     *         - Most browsers will return null if the attibute does not exist or has
+     *           no value.
+     *
+     * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}
+     */
+
+
+    Component.prototype.getAttribute = function getAttribute$$1(attribute) {
+      return getAttribute(this.el_, attribute);
+    };
+
+    /**
+     * Set the value of an attribute on the `Component`'s element
+     *
+     * @param {string} attribute
+     *        Name of the attribute to set.
+     *
+     * @param {string} value
+     *        Value to set the attribute to.
+     *
+     * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}
+     */
+
+
+    Component.prototype.setAttribute = function setAttribute$$1(attribute, value) {
+      setAttribute(this.el_, attribute, value);
+    };
+
+    /**
+     * Remove an attribute from the `Component`s element.
+     *
+     * @param {string} attribute
+     *        Name of the attribute to remove.
+     *
+     * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}
+     */
+
+
+    Component.prototype.removeAttribute = function removeAttribute$$1(attribute) {
+      removeAttribute(this.el_, attribute);
+    };
+
+    /**
+     * Get or set the width of the component based upon the CSS styles.
+     * See {@link Component#dimension} for more detailed information.
+     *
+     * @param {number|string} [num]
+     *        The width that you want to set postfixed with '%', 'px' or nothing.
+     *
+     * @param {boolean} [skipListeners]
+     *        Skip the componentresize event trigger
+     *
+     * @return {number|string}
+     *         The width when getting, zero if there is no width. Can be a string
+     *           postpixed with '%' or 'px'.
+     */
+
+
+    Component.prototype.width = function width(num, skipListeners) {
+      return this.dimension('width', num, skipListeners);
+    };
+
+    /**
+     * Get or set the height of the component based upon the CSS styles.
+     * See {@link Component#dimension} for more detailed information.
+     *
+     * @param {number|string} [num]
+     *        The height that you want to set postfixed with '%', 'px' or nothing.
+     *
+     * @param {boolean} [skipListeners]
+     *        Skip the componentresize event trigger
+     *
+     * @return {number|string}
+     *         The width when getting, zero if there is no width. Can be a string
+     *         postpixed with '%' or 'px'.
+     */
+
+
+    Component.prototype.height = function height(num, skipListeners) {
+      return this.dimension('height', num, skipListeners);
+    };
+
+    /**
+     * Set both the width and height of the `Component` element at the same time.
+     *
+     * @param  {number|string} width
+     *         Width to set the `Component`s element to.
+     *
+     * @param  {number|string} height
+     *         Height to set the `Component`s element to.
+     */
+
+
+    Component.prototype.dimensions = function dimensions(width, height) {
+      // Skip componentresize listeners on width for optimization
+      this.width(width, true);
+      this.height(height);
+    };
+
+    /**
+     * Get or set width or height of the `Component` element. This is the shared code
+     * for the {@link Component#width} and {@link Component#height}.
+     *
+     * Things to know:
+     * - If the width or height in an number this will return the number postfixed with 'px'.
+     * - If the width/height is a percent this will return the percent postfixed with '%'
+     * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function
+     *   defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.
+     *   See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}
+     *   for more information
+     * - If you want the computed style of the component, use {@link Component#currentWidth}
+     *   and {@link {Component#currentHeight}
+     *
+     * @fires Component#componentresize
+     *
+     * @param {string} widthOrHeight
+     8        'width' or 'height'
+     *
+     * @param  {number|string} [num]
+     8         New dimension
+     *
+     * @param  {boolean} [skipListeners]
+     *         Skip componentresize event trigger
+     *
+     * @return {number}
+     *         The dimension when getting or 0 if unset
+     */
+
+
+    Component.prototype.dimension = function dimension(widthOrHeight, num, skipListeners) {
+      if (num !== undefined) {
+        // Set to zero if null or literally NaN (NaN !== NaN)
+        if (num === null || num !== num) {
+          num = 0;
+        }
+
+        // Check if using css width/height (% or px) and adjust
+        if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {
+          this.el_.style[widthOrHeight] = num;
+        } else if (num === 'auto') {
+          this.el_.style[widthOrHeight] = '';
+        } else {
+          this.el_.style[widthOrHeight] = num + 'px';
+        }
+
+        // skipListeners allows us to avoid triggering the resize event when setting both width and height
+        if (!skipListeners) {
+          /**
+           * Triggered when a component is resized.
+           *
+           * @event Component#componentresize
+           * @type {EventTarget~Event}
+           */
+          this.trigger('componentresize');
+        }
+
+        return;
+      }
+
+      // Not setting a value, so getting it
+      // Make sure element exists
+      if (!this.el_) {
+        return 0;
+      }
+
+      // Get dimension value from style
+      var val = this.el_.style[widthOrHeight];
+      var pxIndex = val.indexOf('px');
+
+      if (pxIndex !== -1) {
+        // Return the pixel value with no 'px'
+        return parseInt(val.slice(0, pxIndex), 10);
+      }
+
+      // No px so using % or no style was set, so falling back to offsetWidth/height
+      // If component has display:none, offset will return 0
+      // TODO: handle display:none and no dimension style using px
+      return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);
+    };
+
+    /**
+     * Get the width or the height of the `Component` elements computed style. Uses
+     * `window.getComputedStyle`.
+     *
+     * @param {string} widthOrHeight
+     *        A string containing 'width' or 'height'. Whichever one you want to get.
+     *
+     * @return {number}
+     *         The dimension that gets asked for or 0 if nothing was set
+     *         for that dimension.
+     */
+
+
+    Component.prototype.currentDimension = function currentDimension(widthOrHeight) {
+      var computedWidthOrHeight = 0;
+
+      if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {
+        throw new Error('currentDimension only accepts width or height value');
+      }
+
+      if (typeof window_1.getComputedStyle === 'function') {
+        var computedStyle = window_1.getComputedStyle(this.el_);
+
+        computedWidthOrHeight = computedStyle.getPropertyValue(widthOrHeight) || computedStyle[widthOrHeight];
+      }
+
+      // remove 'px' from variable and parse as integer
+      computedWidthOrHeight = parseFloat(computedWidthOrHeight);
+
+      // if the computed value is still 0, it's possible that the browser is lying
+      // and we want to check the offset values.
+      // This code also runs wherever getComputedStyle doesn't exist.
+      if (computedWidthOrHeight === 0) {
+        var rule = 'offset' + toTitleCase(widthOrHeight);
+
+        computedWidthOrHeight = this.el_[rule];
+      }
+
+      return computedWidthOrHeight;
+    };
+
+    /**
+     * An object that contains width and height values of the `Component`s
+     * computed style. Uses `window.getComputedStyle`.
+     *
+     * @typedef {Object} Component~DimensionObject
+     *
+     * @property {number} width
+     *           The width of the `Component`s computed style.
+     *
+     * @property {number} height
+     *           The height of the `Component`s computed style.
+     */
+
+    /**
+     * Get an object that contains width and height values of the `Component`s
+     * computed style.
+     *
+     * @return {Component~DimensionObject}
+     *         The dimensions of the components element
+     */
+
+
+    Component.prototype.currentDimensions = function currentDimensions() {
+      return {
+        width: this.currentDimension('width'),
+        height: this.currentDimension('height')
+      };
+    };
+
+    /**
+     * Get the width of the `Component`s computed style. Uses `window.getComputedStyle`.
+     *
+     * @return {number} width
+     *           The width of the `Component`s computed style.
+     */
+
+
+    Component.prototype.currentWidth = function currentWidth() {
+      return this.currentDimension('width');
+    };
+
+    /**
+     * Get the height of the `Component`s computed style. Uses `window.getComputedStyle`.
+     *
+     * @return {number} height
+     *           The height of the `Component`s computed style.
+     */
+
+
+    Component.prototype.currentHeight = function currentHeight() {
+      return this.currentDimension('height');
+    };
+
+    /**
+     * Set the focus to this component
+     */
+
+
+    Component.prototype.focus = function focus() {
+      this.el_.focus();
+    };
+
+    /**
+     * Remove the focus from this component
+     */
+
+
+    Component.prototype.blur = function blur() {
+      this.el_.blur();
+    };
+
+    /**
+     * Emit a 'tap' events when touch event support gets detected. This gets used to
+     * support toggling the controls through a tap on the video. They get enabled
+     * because every sub-component would have extra overhead otherwise.
+     *
+     * @private
+     * @fires Component#tap
+     * @listens Component#touchstart
+     * @listens Component#touchmove
+     * @listens Component#touchleave
+     * @listens Component#touchcancel
+     * @listens Component#touchend
+     */
+
+
+    Component.prototype.emitTapEvents = function emitTapEvents() {
+      // Track the start time so we can determine how long the touch lasted
+      var touchStart = 0;
+      var firstTouch = null;
+
+      // Maximum movement allowed during a touch event to still be considered a tap
+      // Other popular libs use anywhere from 2 (hammer.js) to 15,
+      // so 10 seems like a nice, round number.
+      var tapMovementThreshold = 10;
+
+      // The maximum length a touch can be while still being considered a tap
+      var touchTimeThreshold = 200;
+
+      var couldBeTap = void 0;
+
+      this.on('touchstart', function (event) {
+        // If more than one finger, don't consider treating this as a click
+        if (event.touches.length === 1) {
+          // Copy pageX/pageY from the object
+          firstTouch = {
+            pageX: event.touches[0].pageX,
+            pageY: event.touches[0].pageY
+          };
+          // Record start time so we can detect a tap vs. "touch and hold"
+          touchStart = new Date().getTime();
+          // Reset couldBeTap tracking
+          couldBeTap = true;
+        }
+      });
+
+      this.on('touchmove', function (event) {
+        // If more than one finger, don't consider treating this as a click
+        if (event.touches.length > 1) {
+          couldBeTap = false;
+        } else if (firstTouch) {
+          // Some devices will throw touchmoves for all but the slightest of taps.
+          // So, if we moved only a small distance, this could still be a tap
+          var xdiff = event.touches[0].pageX - firstTouch.pageX;
+          var ydiff = event.touches[0].pageY - firstTouch.pageY;
+          var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);
+
+          if (touchDistance > tapMovementThreshold) {
+            couldBeTap = false;
+          }
+        }
+      });
+
+      var noTap = function noTap() {
+        couldBeTap = false;
+      };
+
+      // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s
+      this.on('touchleave', noTap);
+      this.on('touchcancel', noTap);
+
+      // When the touch ends, measure how long it took and trigger the appropriate
+      // event
+      this.on('touchend', function (event) {
+        firstTouch = null;
+        // Proceed only if the touchmove/leave/cancel event didn't happen
+        if (couldBeTap === true) {
+          // Measure how long the touch lasted
+          var touchTime = new Date().getTime() - touchStart;
+
+          // Make sure the touch was less than the threshold to be considered a tap
+          if (touchTime < touchTimeThreshold) {
+            // Don't let browser turn this into a click
+            event.preventDefault();
+            /**
+             * Triggered when a `Component` is tapped.
+             *
+             * @event Component#tap
+             * @type {EventTarget~Event}
+             */
+            this.trigger('tap');
+            // It may be good to copy the touchend event object and change the
+            // type to tap, if the other event properties aren't exact after
+            // Events.fixEvent runs (e.g. event.target)
+          }
+        }
+      });
+    };
+
+    /**
+     * This function reports user activity whenever touch events happen. This can get
+     * turned off by any sub-components that wants touch events to act another way.
+     *
+     * Report user touch activity when touch events occur. User activity gets used to
+     * determine when controls should show/hide. It is simple when it comes to mouse
+     * events, because any mouse event should show the controls. So we capture mouse
+     * events that bubble up to the player and report activity when that happens.
+     * With touch events it isn't as easy as `touchstart` and `touchend` toggle player
+     * controls. So touch events can't help us at the player level either.
+     *
+     * User activity gets checked asynchronously. So what could happen is a tap event
+     * on the video turns the controls off. Then the `touchend` event bubbles up to
+     * the player. Which, if it reported user activity, would turn the controls right
+     * back on. We also don't want to completely block touch events from bubbling up.
+     * Furthermore a `touchmove` event and anything other than a tap, should not turn
+     * controls back on.
+     *
+     * @listens Component#touchstart
+     * @listens Component#touchmove
+     * @listens Component#touchend
+     * @listens Component#touchcancel
+     */
+
+
+    Component.prototype.enableTouchActivity = function enableTouchActivity() {
+      // Don't continue if the root player doesn't support reporting user activity
+      if (!this.player() || !this.player().reportUserActivity) {
+        return;
+      }
+
+      // listener for reporting that the user is active
+      var report = bind(this.player(), this.player().reportUserActivity);
+
+      var touchHolding = void 0;
+
+      this.on('touchstart', function () {
+        report();
+        // For as long as the they are touching the device or have their mouse down,
+        // we consider them active even if they're not moving their finger or mouse.
+        // So we want to continue to update that they are active
+        this.clearInterval(touchHolding);
+        // report at the same interval as activityCheck
+        touchHolding = this.setInterval(report, 250);
+      });
+
+      var touchEnd = function touchEnd(event) {
+        report();
+        // stop the interval that maintains activity if the touch is holding
+        this.clearInterval(touchHolding);
+      };
+
+      this.on('touchmove', report);
+      this.on('touchend', touchEnd);
+      this.on('touchcancel', touchEnd);
+    };
+
+    /**
+     * A callback that has no parameters and is bound into `Component`s context.
+     *
+     * @callback Component~GenericCallback
+     * @this Component
+     */
+
+    /**
+     * Creates a function that runs after an `x` millisecond timeout. This function is a
+     * wrapper around `window.setTimeout`. There are a few reasons to use this one
+     * instead though:
+     * 1. It gets cleared via  {@link Component#clearTimeout} when
+     *    {@link Component#dispose} gets called.
+     * 2. The function callback will gets turned into a {@link Component~GenericCallback}
+     *
+     * > Note: You can use `window.clearTimeout` on the id returned by this function. This
+     *         will cause its dispose listener not to get cleaned up! Please use
+     *         {@link Component#clearTimeout} or {@link Component#dispose}.
+     *
+     * @param {Component~GenericCallback} fn
+     *        The function that will be run after `timeout`.
+     *
+     * @param {number} timeout
+     *        Timeout in milliseconds to delay before executing the specified function.
+     *
+     * @return {number}
+     *         Returns a timeout ID that gets used to identify the timeout. It can also
+     *         get used in {@link Component#clearTimeout} to clear the timeout that
+     *         was set.
+     *
+     * @listens Component#dispose
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}
+     */
+
+
+    Component.prototype.setTimeout = function setTimeout(fn, timeout) {
+      var _this2 = this;
+
+      fn = bind(this, fn);
+
+      var timeoutId = window_1.setTimeout(fn, timeout);
+      var disposeFn = function disposeFn() {
+        return _this2.clearTimeout(timeoutId);
+      };
+
+      disposeFn.guid = 'vjs-timeout-' + timeoutId;
+
+      this.on('dispose', disposeFn);
+
+      return timeoutId;
+    };
+
+    /**
+     * Clears a timeout that gets created via `window.setTimeout` or
+     * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}
+     * use this function instead of `window.clearTimout`. If you don't your dispose
+     * listener will not get cleaned up until {@link Component#dispose}!
+     *
+     * @param {number} timeoutId
+     *        The id of the timeout to clear. The return value of
+     *        {@link Component#setTimeout} or `window.setTimeout`.
+     *
+     * @return {number}
+     *         Returns the timeout id that was cleared.
+     *
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}
+     */
+
+
+    Component.prototype.clearTimeout = function clearTimeout(timeoutId) {
+      window_1.clearTimeout(timeoutId);
+
+      var disposeFn = function disposeFn() {
+      };
+
+      disposeFn.guid = 'vjs-timeout-' + timeoutId;
+
+      this.off('dispose', disposeFn);
+
+      return timeoutId;
+    };
+
+    /**
+     * Creates a function that gets run every `x` milliseconds. This function is a wrapper
+     * around `window.setInterval`. There are a few reasons to use this one instead though.
+     * 1. It gets cleared via  {@link Component#clearInterval} when
+     *    {@link Component#dispose} gets called.
+     * 2. The function callback will be a {@link Component~GenericCallback}
+     *
+     * @param {Component~GenericCallback} fn
+     *        The function to run every `x` seconds.
+     *
+     * @param {number} interval
+     *        Execute the specified function every `x` milliseconds.
+     *
+     * @return {number}
+     *         Returns an id that can be used to identify the interval. It can also be be used in
+     *         {@link Component#clearInterval} to clear the interval.
+     *
+     * @listens Component#dispose
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}
+     */
+
+
+    Component.prototype.setInterval = function setInterval(fn, interval) {
+      var _this3 = this;
+
+      fn = bind(this, fn);
+
+      var intervalId = window_1.setInterval(fn, interval);
+
+      var disposeFn = function disposeFn() {
+        return _this3.clearInterval(intervalId);
+      };
+
+      disposeFn.guid = 'vjs-interval-' + intervalId;
+
+      this.on('dispose', disposeFn);
+
+      return intervalId;
+    };
+
+    /**
+     * Clears an interval that gets created via `window.setInterval` or
+     * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}
+     * use this function instead of `window.clearInterval`. If you don't your dispose
+     * listener will not get cleaned up until {@link Component#dispose}!
+     *
+     * @param {number} intervalId
+     *        The id of the interval to clear. The return value of
+     *        {@link Component#setInterval} or `window.setInterval`.
+     *
+     * @return {number}
+     *         Returns the interval id that was cleared.
+     *
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}
+     */
+
+
+    Component.prototype.clearInterval = function clearInterval(intervalId) {
+      window_1.clearInterval(intervalId);
+
+      var disposeFn = function disposeFn() {
+      };
+
+      disposeFn.guid = 'vjs-interval-' + intervalId;
+
+      this.off('dispose', disposeFn);
+
+      return intervalId;
+    };
+
+    /**
+     * Queues up a callback to be passed to requestAnimationFrame (rAF), but
+     * with a few extra bonuses:
+     *
+     * - Supports browsers that do not support rAF by falling back to
+     *   {@link Component#setTimeout}.
+     *
+     * - The callback is turned into a {@link Component~GenericCallback} (i.e.
+     *   bound to the component).
+     *
+     * - Automatic cancellation of the rAF callback is handled if the component
+     *   is disposed before it is called.
+     *
+     * @param  {Component~GenericCallback} fn
+     *         A function that will be bound to this component and executed just
+     *         before the browser's next repaint.
+     *
+     * @return {number}
+     *         Returns an rAF ID that gets used to identify the timeout. It can
+     *         also be used in {@link Component#cancelAnimationFrame} to cancel
+     *         the animation frame callback.
+     *
+     * @listens Component#dispose
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}
+     */
+
+
+    Component.prototype.requestAnimationFrame = function requestAnimationFrame(fn) {
+      var _this4 = this;
+
+      if (this.supportsRaf_) {
+        fn = bind(this, fn);
+
+        var id = window_1.requestAnimationFrame(fn);
+        var disposeFn = function disposeFn() {
+          return _this4.cancelAnimationFrame(id);
+        };
+
+        disposeFn.guid = 'vjs-raf-' + id;
+        this.on('dispose', disposeFn);
+
+        return id;
+      }
+
+      // Fall back to using a timer.
+      return this.setTimeout(fn, 1000 / 60);
+    };
+
+    /**
+     * Cancels a queued callback passed to {@link Component#requestAnimationFrame}
+     * (rAF).
+     *
+     * If you queue an rAF callback via {@link Component#requestAnimationFrame},
+     * use this function instead of `window.cancelAnimationFrame`. If you don't,
+     * your dispose listener will not get cleaned up until {@link Component#dispose}!
+     *
+     * @param {number} id
+     *        The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.
+     *
+     * @return {number}
+     *         Returns the rAF ID that was cleared.
+     *
+     * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}
+     */
+
+
+    Component.prototype.cancelAnimationFrame = function cancelAnimationFrame(id) {
+      if (this.supportsRaf_) {
+        window_1.cancelAnimationFrame(id);
+
+        var disposeFn = function disposeFn() {
+        };
+
+        disposeFn.guid = 'vjs-raf-' + id;
+
+        this.off('dispose', disposeFn);
+
+        return id;
+      }
+
+      // Fall back to using a timer.
+      return this.clearTimeout(id);
+    };
+
+    /**
+     * Register a `Component` with `videojs` given the name and the component.
+     *
+     * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s
+     *         should be registered using {@link Tech.registerTech} or
+     *         {@link videojs:videojs.registerTech}.
+     *
+     * > NOTE: This function can also be seen on videojs as
+     *         {@link videojs:videojs.registerComponent}.
+     *
+     * @param {string} name
+     *        The name of the `Component` to register.
+     *
+     * @param {Component} ComponentToRegister
+     *        The `Component` class to register.
+     *
+     * @return {Component}
+     *         The `Component` that was registered.
+     */
+
+
+    Component.registerComponent = function registerComponent(name, ComponentToRegister) {
+      if (typeof name !== 'string' || !name) {
+        throw new Error('Illegal component name, "' + name + '"; must be a non-empty string.');
+      }
+
+      var Tech = Component.getComponent('Tech');
+
+      // We need to make sure this check is only done if Tech has been registered.
+      var isTech = Tech && Tech.isTech(ComponentToRegister);
+      var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);
+
+      if (isTech || !isComp) {
+        var reason = void 0;
+
+        if (isTech) {
+          reason = 'techs must be registered using Tech.registerTech()';
+        } else {
+          reason = 'must be a Component subclass';
+        }
+
+        throw new Error('Illegal component, "' + name + '"; ' + reason + '.');
+      }
+
+      name = toTitleCase(name);
+
+      if (!Component.components_) {
+        Component.components_ = {};
+      }
+
+      var Player = Component.getComponent('Player');
+
+      if (name === 'Player' && Player && Player.players) {
+        var players = Player.players;
+        var playerNames = Object.keys(players);
+
+        // If we have players that were disposed, then their name will still be
+        // in Players.players. So, we must loop through and verify that the value
+        // for each item is not null. This allows registration of the Player component
+        // after all players have been disposed or before any were created.
+        if (players && playerNames.length > 0 && playerNames.map(function (pname) {
+          return players[pname];
+        }).every(Boolean)) {
+          throw new Error('Can not register Player component after player has been created.');
+        }
+      }
+
+      Component.components_[name] = ComponentToRegister;
+
+      return ComponentToRegister;
+    };
+
+    /**
+     * Get a `Component` based on the name it was registered with.
+     *
+     * @param {string} name
+     *        The Name of the component to get.
+     *
+     * @return {Component}
+     *         The `Component` that got registered under the given name.
+     *
+     * @deprecated In `videojs` 6 this will not return `Component`s that were not
+     *             registered using {@link Component.registerComponent}. Currently we
+     *             check the global `videojs` object for a `Component` name and
+     *             return that if it exists.
+     */
+
+
+    Component.getComponent = function getComponent(name) {
+      if (!name) {
+        return;
+      }
+
+      name = toTitleCase(name);
+
+      if (Component.components_ && Component.components_[name]) {
+        return Component.components_[name];
+      }
+    };
+
+    return Component;
+  }();
+
+  /**
+   * Whether or not this component supports `requestAnimationFrame`.
+   *
+   * This is exposed primarily for testing purposes.
+   *
+   * @private
+   * @type {Boolean}
+   */
+
+
+  Component.prototype.supportsRaf_ = typeof window_1.requestAnimationFrame === 'function' && typeof window_1.cancelAnimationFrame === 'function';
+
+  Component.registerComponent('Component', Component);
+
+  /**
+   * @file browser.js
+   * @module browser
+   */
+
+  var USER_AGENT = window_1.navigator && window_1.navigator.userAgent || '';
+  var webkitVersionMap = /AppleWebKit\/([\d.]+)/i.exec(USER_AGENT);
+  var appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;
+
+  /*
+   * Device is an iPhone
+   *
+   * @type {Boolean}
+   * @constant
+   * @private
+   */
+  var IS_IPAD = /iPad/i.test(USER_AGENT);
+
+  // The Facebook app's UIWebView identifies as both an iPhone and iPad, so
+  // to identify iPhones, we need to exclude iPads.
+  // http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/
+  var IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;
+  var IS_IPOD = /iPod/i.test(USER_AGENT);
+  var IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;
+
+  var IOS_VERSION = function () {
+    var match = USER_AGENT.match(/OS (\d+)_/i);
+
+    if (match && match[1]) {
+      return match[1];
+    }
+    return null;
+  }();
+
+  var IS_ANDROID = /Android/i.test(USER_AGENT);
+  var ANDROID_VERSION = function () {
+    // This matches Android Major.Minor.Patch versions
+    // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned
+    var match = USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);
+
+    if (!match) {
+      return null;
+    }
+
+    var major = match[1] && parseFloat(match[1]);
+    var minor = match[2] && parseFloat(match[2]);
+
+    if (major && minor) {
+      return parseFloat(match[1] + '.' + match[2]);
+    } else if (major) {
+      return major;
+    }
+    return null;
+  }();
+
+  var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;
+
+  var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
+  var IS_EDGE = /Edge/i.test(USER_AGENT);
+  var IS_CHROME = !IS_EDGE && /Chrome/i.test(USER_AGENT);
+  var CHROME_VERSION = function () {
+    var match = USER_AGENT.match(/Chrome\/(\d+)/);
+
+    if (match && match[1]) {
+      return parseFloat(match[1]);
+    }
+    return null;
+  }();
+  var IE_VERSION = function () {
+    var result = /MSIE\s(\d+)\.\d/.exec(USER_AGENT);
+    var version = result && parseFloat(result[1]);
+
+    if (!version && /Trident\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {
+      // IE 11 has a different user agent string than other IE versions
+      version = 11.0;
+    }
+
+    return version;
+  }();
+
+  var IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;
+  var IS_ANY_SAFARI = IS_SAFARI || IS_IOS;
+
+  var TOUCH_ENABLED = isReal() && ('ontouchstart' in window_1 || window_1.DocumentTouch && window_1.document instanceof window_1.DocumentTouch);
+
+  var browser = /*#__PURE__*/Object.freeze({
+    IS_IPAD: IS_IPAD,
+    IS_IPHONE: IS_IPHONE,
+    IS_IPOD: IS_IPOD,
+    IS_IOS: IS_IOS,
+    IOS_VERSION: IOS_VERSION,
+    IS_ANDROID: IS_ANDROID,
+    ANDROID_VERSION: ANDROID_VERSION,
+    IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,
+    IS_FIREFOX: IS_FIREFOX,
+    IS_EDGE: IS_EDGE,
+    IS_CHROME: IS_CHROME,
+    CHROME_VERSION: CHROME_VERSION,
+    IE_VERSION: IE_VERSION,
+    IS_SAFARI: IS_SAFARI,
+    IS_ANY_SAFARI: IS_ANY_SAFARI,
+    TOUCH_ENABLED: TOUCH_ENABLED
+  });
+
+  /**
+   * @file time-ranges.js
+   * @module time-ranges
+   */
+
+  /**
+   * Returns the time for the specified index at the start or end
+   * of a TimeRange object.
+   *
+   * @function time-ranges:indexFunction
+   *
+   * @param {number} [index=0]
+   *        The range number to return the time for.
+   *
+   * @return {number}
+   *         The time that offset at the specified index.
+   *
+   * @depricated index must be set to a value, in the future this will throw an error.
+   */
+
+  /**
+   * An object that contains ranges of time for various reasons.
+   *
+   * @typedef {Object} TimeRange
+   *
+   * @property {number} length
+   *           The number of time ranges represented by this Object
+   *
+   * @property {time-ranges:indexFunction} start
+   *           Returns the time offset at which a specified time range begins.
+   *
+   * @property {time-ranges:indexFunction} end
+   *           Returns the time offset at which a specified time range ends.
+   *
+   * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges
+   */
+
+  /**
+   * Check if any of the time ranges are over the maximum index.
+   *
+   * @param {string} fnName
+   *        The function name to use for logging
+   *
+   * @param {number} index
+   *        The index to check
+   *
+   * @param {number} maxIndex
+   *        The maximum possible index
+   *
+   * @throws {Error} if the timeRanges provided are over the maxIndex
+   */
+  function rangeCheck(fnName, index, maxIndex) {
+    if (typeof index !== 'number' || index < 0 || index > maxIndex) {
+      throw new Error('Failed to execute \'' + fnName + '\' on \'TimeRanges\': The index provided (' + index + ') is non-numeric or out of bounds (0-' + maxIndex + ').');
+    }
+  }
+
+  /**
+   * Get the time for the specified index at the start or end
+   * of a TimeRange object.
+   *
+   * @param {string} fnName
+   *        The function name to use for logging
+   *
+   * @param {string} valueIndex
+   *        The property that should be used to get the time. should be 'start' or 'end'
+   *
+   * @param {Array} ranges
+   *        An array of time ranges
+   *
+   * @param {Array} [rangeIndex=0]
+   *        The index to start the search at
+   *
+   * @return {number}
+   *         The time that offset at the specified index.
+   *
+   *
+   * @depricated rangeIndex must be set to a value, in the future this will throw an error.
+   * @throws {Error} if rangeIndex is more than the length of ranges
+   */
+  function getRange(fnName, valueIndex, ranges, rangeIndex) {
+    rangeCheck(fnName, rangeIndex, ranges.length - 1);
+    return ranges[rangeIndex][valueIndex];
+  }
+
+  /**
+   * Create a time range object given ranges of time.
+   *
+   * @param {Array} [ranges]
+   *        An array of time ranges.
+   */
+  function createTimeRangesObj(ranges) {
+    if (ranges === undefined || ranges.length === 0) {
+      return {
+        length: 0,
+        start: function start() {
+          throw new Error('This TimeRanges object is empty');
+        },
+        end: function end() {
+          throw new Error('This TimeRanges object is empty');
+        }
+      };
+    }
+    return {
+      length: ranges.length,
+      start: getRange.bind(null, 'start', 0, ranges),
+      end: getRange.bind(null, 'end', 1, ranges)
+    };
+  }
+
+  /**
+   * Should create a fake `TimeRange` object which mimics an HTML5 time range instance.
+   *
+   * @param {number|Array} start
+   *        The start of a single range or an array of ranges
+   *
+   * @param {number} end
+   *        The end of a single range.
+   *
+   * @private
+   */
+  function createTimeRanges(start, end) {
+    if (Array.isArray(start)) {
+      return createTimeRangesObj(start);
+    } else if (start === undefined || end === undefined) {
+      return createTimeRangesObj();
+    }
+    return createTimeRangesObj([[start, end]]);
+  }
+
+  /**
+   * @file buffer.js
+   * @module buffer
+   */
+
+  /**
+   * Compute the percentage of the media that has been buffered.
+   *
+   * @param {TimeRange} buffered
+   *        The current `TimeRange` object representing buffered time ranges
+   *
+   * @param {number} duration
+   *        Total duration of the media
+   *
+   * @return {number}
+   *         Percent buffered of the total duration in decimal form.
+   */
+  function bufferedPercent(buffered, duration) {
+    var bufferedDuration = 0;
+    var start = void 0;
+    var end = void 0;
+
+    if (!duration) {
+      return 0;
+    }
+
+    if (!buffered || !buffered.length) {
+      buffered = createTimeRanges(0, 0);
+    }
+
+    for (var i = 0; i < buffered.length; i++) {
+      start = buffered.start(i);
+      end = buffered.end(i);
+
+      // buffered end can be bigger than duration by a very small fraction
+      if (end > duration) {
+        end = duration;
+      }
+
+      bufferedDuration += end - start;
+    }
+
+    return bufferedDuration / duration;
+  }
+
+  /**
+   * @file fullscreen-api.js
+   * @module fullscreen-api
+   * @private
+   */
+
+  /**
+   * Store the browser-specific methods for the fullscreen API.
+   *
+   * @type {Object}
+   * @see [Specification]{@link https://fullscreen.spec.whatwg.org}
+   * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}
+   */
+  var FullscreenApi = {};
+
+  // browser API methods
+  var apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],
+    // WebKit
+    ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],
+    // Old WebKit (Safari 5.1)
+    ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'],
+    // Mozilla
+    ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],
+    // Microsoft
+    ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];
+
+  var specApi = apiMap[0];
+  var browserApi = void 0;
+
+  // determine the supported set of functions
+  for (var i = 0; i < apiMap.length; i++) {
+    // check for exitFullscreen function
+    if (apiMap[i][1] in document_1) {
+      browserApi = apiMap[i];
+      break;
+    }
+  }
+
+  // map the browser API names to the spec API names
+  if (browserApi) {
+    for (var _i = 0; _i < browserApi.length; _i++) {
+      FullscreenApi[specApi[_i]] = browserApi[_i];
+    }
+  }
+
+  /**
+   * @file media-error.js
+   */
+
+  /**
+   * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.
+   *
+   * @param {number|string|Object|MediaError} value
+   *        This can be of multiple types:
+   *        - number: should be a standard error code
+   *        - string: an error message (the code will be 0)
+   *        - Object: arbitrary properties
+   *        - `MediaError` (native): used to populate a video.js `MediaError` object
+   *        - `MediaError` (video.js): will return itself if it's already a
+   *          video.js `MediaError` object.
+   *
+   * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}
+   * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}
+   *
+   * @class MediaError
+   */
+  function MediaError(value) {
+
+    // Allow redundant calls to this constructor to avoid having `instanceof`
+    // checks peppered around the code.
+    if (value instanceof MediaError) {
+      return value;
+    }
+
+    if (typeof value === 'number') {
+      this.code = value;
+    } else if (typeof value === 'string') {
+      // default code is zero, so this is a custom error
+      this.message = value;
+    } else if (isObject(value)) {
+
+      // We assign the `code` property manually because native `MediaError` objects
+      // do not expose it as an own/enumerable property of the object.
+      if (typeof value.code === 'number') {
+        this.code = value.code;
+      }
+
+      assign(this, value);
+    }
+
+    if (!this.message) {
+      this.message = MediaError.defaultMessages[this.code] || '';
+    }
+  }
+
+  /**
+   * The error code that refers two one of the defined `MediaError` types
+   *
+   * @type {Number}
+   */
+  MediaError.prototype.code = 0;
+
+  /**
+   * An optional message that to show with the error. Message is not part of the HTML5
+   * video spec but allows for more informative custom errors.
+   *
+   * @type {String}
+   */
+  MediaError.prototype.message = '';
+
+  /**
+   * An optional status code that can be set by plugins to allow even more detail about
+   * the error. For example a plugin might provide a specific HTTP status code and an
+   * error message for that code. Then when the plugin gets that error this class will
+   * know how to display an error message for it. This allows a custom message to show
+   * up on the `Player` error overlay.
+   *
+   * @type {Array}
+   */
+  MediaError.prototype.status = null;
+
+  /**
+   * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the
+   * specification listed under {@link MediaError} for more information.
+   *
+   * @enum {array}
+   * @readonly
+   * @property {string} 0 - MEDIA_ERR_CUSTOM
+   * @property {string} 1 - MEDIA_ERR_CUSTOM
+   * @property {string} 2 - MEDIA_ERR_ABORTED
+   * @property {string} 3 - MEDIA_ERR_NETWORK
+   * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED
+   * @property {string} 5 - MEDIA_ERR_ENCRYPTED
+   */
+  MediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];
+
+  /**
+   * The default `MediaError` messages based on the {@link MediaError.errorTypes}.
+   *
+   * @type {Array}
+   * @constant
+   */
+  MediaError.defaultMessages = {
+    1: 'You aborted the media playback',
+    2: 'A network error caused the media download to fail part-way.',
+    3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',
+    4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',
+    5: 'The media is encrypted and we do not have the keys to decrypt it.'
+  };
+
+  // Add types as properties on MediaError
+  // e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
+  for (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {
+    MediaError[MediaError.errorTypes[errNum]] = errNum;
+    // values should be accessible on both the class and instance
+    MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;
+  }
+
+  var tuple = SafeParseTuple;
+
+  function SafeParseTuple(obj, reviver) {
+    var json;
+    var error = null;
+
+    try {
+      json = JSON.parse(obj, reviver);
+    } catch (err) {
+      error = err;
+    }
+
+    return [error, json];
+  }
+
+  /**
+   * Returns whether an object is `Promise`-like (i.e. has a `then` method).
+   *
+   * @param  {Object}  value
+   *         An object that may or may not be `Promise`-like.
+   *
+   * @return {Boolean}
+   *         Whether or not the object is `Promise`-like.
+   */
+  function isPromise(value) {
+    return value !== undefined && value !== null && typeof value.then === 'function';
+  }
+
+  /**
+   * Silence a Promise-like object.
+   *
+   * This is useful for avoiding non-harmful, but potentially confusing "uncaught
+   * play promise" rejection error messages.
+   *
+   * @param  {Object} value
+   *         An object that may or may not be `Promise`-like.
+   */
+  function silencePromise(value) {
+    if (isPromise(value)) {
+      value.then(null, function (e) {
+      });
+    }
+  }
+
+  /**
+   * @file text-track-list-converter.js Utilities for capturing text track state and
+   * re-creating tracks based on a capture.
+   *
+   * @module text-track-list-converter
+   */
+
+  /**
+   * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that
+   * represents the {@link TextTrack}'s state.
+   *
+   * @param {TextTrack} track
+   *        The text track to query.
+   *
+   * @return {Object}
+   *         A serializable javascript representation of the TextTrack.
+   * @private
+   */
+  var trackToJson_ = function trackToJson_(track) {
+    var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {
+
+      if (track[prop]) {
+        acc[prop] = track[prop];
+      }
+
+      return acc;
+    }, {
+      cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {
+        return {
+          startTime: cue.startTime,
+          endTime: cue.endTime,
+          text: cue.text,
+          id: cue.id
+        };
+      })
+    });
+
+    return ret;
+  };
+
+  /**
+   * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the
+   * state of all {@link TextTrack}s currently configured. The return array is compatible with
+   * {@link text-track-list-converter:jsonToTextTracks}.
+   *
+   * @param {Tech} tech
+   *        The tech object to query
+   *
+   * @return {Array}
+   *         A serializable javascript representation of the {@link Tech}s
+   *         {@link TextTrackList}.
+   */
+  var textTracksToJson = function textTracksToJson(tech) {
+
+    var trackEls = tech.$$('track');
+
+    var trackObjs = Array.prototype.map.call(trackEls, function (t) {
+      return t.track;
+    });
+    var tracks = Array.prototype.map.call(trackEls, function (trackEl) {
+      var json = trackToJson_(trackEl.track);
+
+      if (trackEl.src) {
+        json.src = trackEl.src;
+      }
+      return json;
+    });
+
+    return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {
+      return trackObjs.indexOf(track) === -1;
+    }).map(trackToJson_));
+  };
+
+  /**
+   * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript
+   * object {@link TextTrack} representations.
+   *
+   * @param {Array} json
+   *        An array of `TextTrack` representation objects, like those that would be
+   *        produced by `textTracksToJson`.
+   *
+   * @param {Tech} tech
+   *        The `Tech` to create the `TextTrack`s on.
+   */
+  var jsonToTextTracks = function jsonToTextTracks(json, tech) {
+    json.forEach(function (track) {
+      var addedTrack = tech.addRemoteTextTrack(track).track;
+
+      if (!track.src && track.cues) {
+        track.cues.forEach(function (cue) {
+          return addedTrack.addCue(cue);
+        });
+      }
+    });
+
+    return tech.textTracks();
+  };
+
+  var textTrackConverter = {
+    textTracksToJson: textTracksToJson,
+    jsonToTextTracks: jsonToTextTracks,
+    trackToJson_: trackToJson_
+  };
+
+  /**
+   * @file modal-dialog.js
+   */
+
+  var MODAL_CLASS_NAME = 'vjs-modal-dialog';
+  var ESC = 27;
+
+  /**
+   * The `ModalDialog` displays over the video and its controls, which blocks
+   * interaction with the player until it is closed.
+   *
+   * Modal dialogs include a "Close" button and will close when that button
+   * is activated - or when ESC is pressed anywhere.
+   *
+   * @extends Component
+   */
+
+  var ModalDialog = function (_Component) {
+    inherits(ModalDialog, _Component);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Mixed} [options.content=undefined]
+     *        Provide customized content for this modal.
+     *
+     * @param {string} [options.description]
+     *        A text description for the modal, primarily for accessibility.
+     *
+     * @param {boolean} [options.fillAlways=false]
+     *        Normally, modals are automatically filled only the first time
+     *        they open. This tells the modal to refresh its content
+     *        every time it opens.
+     *
+     * @param {string} [options.label]
+     *        A text label for the modal, primarily for accessibility.
+     *
+     * @param {boolean} [options.temporary=true]
+     *        If `true`, the modal can only be opened once; it will be
+     *        disposed as soon as it's closed.
+     *
+     * @param {boolean} [options.uncloseable=false]
+     *        If `true`, the user will not be able to close the modal
+     *        through the UI in the normal ways. Programmatic closing is
+     *        still possible.
+     */
+    function ModalDialog(player, options) {
+      classCallCheck(this, ModalDialog);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;
+
+      _this.closeable(!_this.options_.uncloseable);
+      _this.content(_this.options_.content);
+
+      // Make sure the contentEl is defined AFTER any children are initialized
+      // because we only want the contents of the modal in the contentEl
+      // (not the UI elements like the close button).
+      _this.contentEl_ = createEl('div', {
+        className: MODAL_CLASS_NAME + '-content'
+      }, {
+        role: 'document'
+      });
+
+      _this.descEl_ = createEl('p', {
+        className: MODAL_CLASS_NAME + '-description vjs-control-text',
+        id: _this.el().getAttribute('aria-describedby')
+      });
+
+      textContent(_this.descEl_, _this.description());
+      _this.el_.appendChild(_this.descEl_);
+      _this.el_.appendChild(_this.contentEl_);
+      return _this;
+    }
+
+    /**
+     * Create the `ModalDialog`'s DOM element
+     *
+     * @return {Element}
+     *         The DOM element that gets created.
+     */
+
+
+    ModalDialog.prototype.createEl = function createEl$$1() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: this.buildCSSClass(),
+        tabIndex: -1
+      }, {
+        'aria-describedby': this.id() + '_description',
+        'aria-hidden': 'true',
+        'aria-label': this.label(),
+        'role': 'dialog'
+      });
+    };
+
+    ModalDialog.prototype.dispose = function dispose() {
+      this.contentEl_ = null;
+      this.descEl_ = null;
+      this.previouslyActiveEl_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    ModalDialog.prototype.buildCSSClass = function buildCSSClass() {
+      return MODAL_CLASS_NAME + ' vjs-hidden ' + _Component.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Handles `keydown` events on the document, looking for ESC, which closes
+     * the modal.
+     *
+     * @param {EventTarget~Event} e
+     *        The keypress that triggered this event.
+     *
+     * @listens keydown
+     */
+
+
+    ModalDialog.prototype.handleKeyPress = function handleKeyPress(e) {
+      if (e.which === ESC && this.closeable()) {
+        this.close();
+      }
+    };
+
+    /**
+     * Returns the label string for this modal. Primarily used for accessibility.
+     *
+     * @return {string}
+     *         the localized or raw label of this modal.
+     */
+
+
+    ModalDialog.prototype.label = function label() {
+      return this.localize(this.options_.label || 'Modal Window');
+    };
+
+    /**
+     * Returns the description string for this modal. Primarily used for
+     * accessibility.
+     *
+     * @return {string}
+     *         The localized or raw description of this modal.
+     */
+
+
+    ModalDialog.prototype.description = function description() {
+      var desc = this.options_.description || this.localize('This is a modal window.');
+
+      // Append a universal closeability message if the modal is closeable.
+      if (this.closeable()) {
+        desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');
+      }
+
+      return desc;
+    };
+
+    /**
+     * Opens the modal.
+     *
+     * @fires ModalDialog#beforemodalopen
+     * @fires ModalDialog#modalopen
+     */
+
+
+    ModalDialog.prototype.open = function open() {
+      if (!this.opened_) {
+        var player = this.player();
+
+        /**
+         * Fired just before a `ModalDialog` is opened.
+         *
+         * @event ModalDialog#beforemodalopen
+         * @type {EventTarget~Event}
+         */
+        this.trigger('beforemodalopen');
+        this.opened_ = true;
+
+        // Fill content if the modal has never opened before and
+        // never been filled.
+        if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {
+          this.fill();
+        }
+
+        // If the player was playing, pause it and take note of its previously
+        // playing state.
+        this.wasPlaying_ = !player.paused();
+
+        if (this.options_.pauseOnOpen && this.wasPlaying_) {
+          player.pause();
+        }
+
+        if (this.closeable()) {
+          this.on(this.el_.ownerDocument, 'keydown', bind(this, this.handleKeyPress));
+        }
+
+        // Hide controls and note if they were enabled.
+        this.hadControls_ = player.controls();
+        player.controls(false);
+
+        this.show();
+        this.conditionalFocus_();
+        this.el().setAttribute('aria-hidden', 'false');
+
+        /**
+         * Fired just after a `ModalDialog` is opened.
+         *
+         * @event ModalDialog#modalopen
+         * @type {EventTarget~Event}
+         */
+        this.trigger('modalopen');
+        this.hasBeenOpened_ = true;
+      }
+    };
+
+    /**
+     * If the `ModalDialog` is currently open or closed.
+     *
+     * @param  {boolean} [value]
+     *         If given, it will open (`true`) or close (`false`) the modal.
+     *
+     * @return {boolean}
+     *         the current open state of the modaldialog
+     */
+
+
+    ModalDialog.prototype.opened = function opened(value) {
+      if (typeof value === 'boolean') {
+        this[value ? 'open' : 'close']();
+      }
+      return this.opened_;
+    };
+
+    /**
+     * Closes the modal, does nothing if the `ModalDialog` is
+     * not open.
+     *
+     * @fires ModalDialog#beforemodalclose
+     * @fires ModalDialog#modalclose
+     */
+
+
+    ModalDialog.prototype.close = function close() {
+      if (!this.opened_) {
+        return;
+      }
+      var player = this.player();
+
+      /**
+       * Fired just before a `ModalDialog` is closed.
+       *
+       * @event ModalDialog#beforemodalclose
+       * @type {EventTarget~Event}
+       */
+      this.trigger('beforemodalclose');
+      this.opened_ = false;
+
+      if (this.wasPlaying_ && this.options_.pauseOnOpen) {
+        player.play();
+      }
+
+      if (this.closeable()) {
+        this.off(this.el_.ownerDocument, 'keydown', bind(this, this.handleKeyPress));
+      }
+
+      if (this.hadControls_) {
+        player.controls(true);
+      }
+
+      this.hide();
+      this.el().setAttribute('aria-hidden', 'true');
+
+      /**
+       * Fired just after a `ModalDialog` is closed.
+       *
+       * @event ModalDialog#modalclose
+       * @type {EventTarget~Event}
+       */
+      this.trigger('modalclose');
+      this.conditionalBlur_();
+
+      if (this.options_.temporary) {
+        this.dispose();
+      }
+    };
+
+    /**
+     * Check to see if the `ModalDialog` is closeable via the UI.
+     *
+     * @param  {boolean} [value]
+     *         If given as a boolean, it will set the `closeable` option.
+     *
+     * @return {boolean}
+     *         Returns the final value of the closable option.
+     */
+
+
+    ModalDialog.prototype.closeable = function closeable(value) {
+      if (typeof value === 'boolean') {
+        var closeable = this.closeable_ = !!value;
+        var close = this.getChild('closeButton');
+
+        // If this is being made closeable and has no close button, add one.
+        if (closeable && !close) {
+
+          // The close button should be a child of the modal - not its
+          // content element, so temporarily change the content element.
+          var temp = this.contentEl_;
+
+          this.contentEl_ = this.el_;
+          close = this.addChild('closeButton', {controlText: 'Close Modal Dialog'});
+          this.contentEl_ = temp;
+          this.on(close, 'close', this.close);
+        }
+
+        // If this is being made uncloseable and has a close button, remove it.
+        if (!closeable && close) {
+          this.off(close, 'close', this.close);
+          this.removeChild(close);
+          close.dispose();
+        }
+      }
+      return this.closeable_;
+    };
+
+    /**
+     * Fill the modal's content element with the modal's "content" option.
+     * The content element will be emptied before this change takes place.
+     */
+
+
+    ModalDialog.prototype.fill = function fill() {
+      this.fillWith(this.content());
+    };
+
+    /**
+     * Fill the modal's content element with arbitrary content.
+     * The content element will be emptied before this change takes place.
+     *
+     * @fires ModalDialog#beforemodalfill
+     * @fires ModalDialog#modalfill
+     *
+     * @param {Mixed} [content]
+     *        The same rules apply to this as apply to the `content` option.
+     */
+
+
+    ModalDialog.prototype.fillWith = function fillWith(content) {
+      var contentEl = this.contentEl();
+      var parentEl = contentEl.parentNode;
+      var nextSiblingEl = contentEl.nextSibling;
+
+      /**
+       * Fired just before a `ModalDialog` is filled with content.
+       *
+       * @event ModalDialog#beforemodalfill
+       * @type {EventTarget~Event}
+       */
+      this.trigger('beforemodalfill');
+      this.hasBeenFilled_ = true;
+
+      // Detach the content element from the DOM before performing
+      // manipulation to avoid modifying the live DOM multiple times.
+      parentEl.removeChild(contentEl);
+      this.empty();
+      insertContent(contentEl, content);
+      /**
+       * Fired just after a `ModalDialog` is filled with content.
+       *
+       * @event ModalDialog#modalfill
+       * @type {EventTarget~Event}
+       */
+      this.trigger('modalfill');
+
+      // Re-inject the re-filled content element.
+      if (nextSiblingEl) {
+        parentEl.insertBefore(contentEl, nextSiblingEl);
+      } else {
+        parentEl.appendChild(contentEl);
+      }
+
+      // make sure that the close button is last in the dialog DOM
+      var closeButton = this.getChild('closeButton');
+
+      if (closeButton) {
+        parentEl.appendChild(closeButton.el_);
+      }
+    };
+
+    /**
+     * Empties the content element. This happens anytime the modal is filled.
+     *
+     * @fires ModalDialog#beforemodalempty
+     * @fires ModalDialog#modalempty
+     */
+
+
+    ModalDialog.prototype.empty = function empty() {
+      /**
+       * Fired just before a `ModalDialog` is emptied.
+       *
+       * @event ModalDialog#beforemodalempty
+       * @type {EventTarget~Event}
+       */
+      this.trigger('beforemodalempty');
+      emptyEl(this.contentEl());
+
+      /**
+       * Fired just after a `ModalDialog` is emptied.
+       *
+       * @event ModalDialog#modalempty
+       * @type {EventTarget~Event}
+       */
+      this.trigger('modalempty');
+    };
+
+    /**
+     * Gets or sets the modal content, which gets normalized before being
+     * rendered into the DOM.
+     *
+     * This does not update the DOM or fill the modal, but it is called during
+     * that process.
+     *
+     * @param  {Mixed} [value]
+     *         If defined, sets the internal content value to be used on the
+     *         next call(s) to `fill`. This value is normalized before being
+     *         inserted. To "clear" the internal content value, pass `null`.
+     *
+     * @return {Mixed}
+     *         The current content of the modal dialog
+     */
+
+
+    ModalDialog.prototype.content = function content(value) {
+      if (typeof value !== 'undefined') {
+        this.content_ = value;
+      }
+      return this.content_;
+    };
+
+    /**
+     * conditionally focus the modal dialog if focus was previously on the player.
+     *
+     * @private
+     */
+
+
+    ModalDialog.prototype.conditionalFocus_ = function conditionalFocus_() {
+      var activeEl = document_1.activeElement;
+      var playerEl = this.player_.el_;
+
+      this.previouslyActiveEl_ = null;
+
+      if (playerEl.contains(activeEl) || playerEl === activeEl) {
+        this.previouslyActiveEl_ = activeEl;
+
+        this.focus();
+
+        this.on(document_1, 'keydown', this.handleKeyDown);
+      }
+    };
+
+    /**
+     * conditionally blur the element and refocus the last focused element
+     *
+     * @private
+     */
+
+
+    ModalDialog.prototype.conditionalBlur_ = function conditionalBlur_() {
+      if (this.previouslyActiveEl_) {
+        this.previouslyActiveEl_.focus();
+        this.previouslyActiveEl_ = null;
+      }
+
+      this.off(document_1, 'keydown', this.handleKeyDown);
+    };
+
+    /**
+     * Keydown handler. Attached when modal is focused.
+     *
+     * @listens keydown
+     */
+
+
+    ModalDialog.prototype.handleKeyDown = function handleKeyDown(event) {
+      // exit early if it isn't a tab key
+      if (event.which !== 9) {
+        return;
+      }
+
+      var focusableEls = this.focusableEls_();
+      var activeEl = this.el_.querySelector(':focus');
+      var focusIndex = void 0;
+
+      for (var i = 0; i < focusableEls.length; i++) {
+        if (activeEl === focusableEls[i]) {
+          focusIndex = i;
+          break;
+        }
+      }
+
+      if (document_1.activeElement === this.el_) {
+        focusIndex = 0;
+      }
+
+      if (event.shiftKey && focusIndex === 0) {
+        focusableEls[focusableEls.length - 1].focus();
+        event.preventDefault();
+      } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {
+        focusableEls[0].focus();
+        event.preventDefault();
+      }
+    };
+
+    /**
+     * get all focusable elements
+     *
+     * @private
+     */
+
+
+    ModalDialog.prototype.focusableEls_ = function focusableEls_() {
+      var allChildren = this.el_.querySelectorAll('*');
+
+      return Array.prototype.filter.call(allChildren, function (child) {
+        return (child instanceof window_1.HTMLAnchorElement || child instanceof window_1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window_1.HTMLInputElement || child instanceof window_1.HTMLSelectElement || child instanceof window_1.HTMLTextAreaElement || child instanceof window_1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window_1.HTMLIFrameElement || child instanceof window_1.HTMLObjectElement || child instanceof window_1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');
+      });
+    };
+
+    return ModalDialog;
+  }(Component);
+
+  /**
+   * Default options for `ModalDialog` default options.
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  ModalDialog.prototype.options_ = {
+    pauseOnOpen: true,
+    temporary: true
+  };
+
+  Component.registerComponent('ModalDialog', ModalDialog);
+
+  /**
+   * @file track-list.js
+   */
+
+  /**
+   * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and
+   * {@link VideoTrackList}
+   *
+   * @extends EventTarget
+   */
+
+  var TrackList = function (_EventTarget) {
+    inherits(TrackList, _EventTarget);
+
+    /**
+     * Create an instance of this class
+     *
+     * @param {Track[]} tracks
+     *        A list of tracks to initialize the list with.
+     *
+     * @abstract
+     */
+    function TrackList() {
+      var tracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+      classCallCheck(this, TrackList);
+
+      var _this = possibleConstructorReturn(this, _EventTarget.call(this));
+
+      _this.tracks_ = [];
+
+      /**
+       * @memberof TrackList
+       * @member {number} length
+       *         The current number of `Track`s in the this Trackist.
+       * @instance
+       */
+      Object.defineProperty(_this, 'length', {
+        get: function get$$1() {
+          return this.tracks_.length;
+        }
+      });
+
+      for (var i = 0; i < tracks.length; i++) {
+        _this.addTrack(tracks[i]);
+      }
+      return _this;
+    }
+
+    /**
+     * Add a {@link Track} to the `TrackList`
+     *
+     * @param {Track} track
+     *        The audio, video, or text track to add to the list.
+     *
+     * @fires TrackList#addtrack
+     */
+
+
+    TrackList.prototype.addTrack = function addTrack(track) {
+      var index = this.tracks_.length;
+
+      if (!('' + index in this)) {
+        Object.defineProperty(this, index, {
+          get: function get$$1() {
+            return this.tracks_[index];
+          }
+        });
+      }
+
+      // Do not add duplicate tracks
+      if (this.tracks_.indexOf(track) === -1) {
+        this.tracks_.push(track);
+        /**
+         * Triggered when a track is added to a track list.
+         *
+         * @event TrackList#addtrack
+         * @type {EventTarget~Event}
+         * @property {Track} track
+         *           A reference to track that was added.
+         */
+        this.trigger({
+          track: track,
+          type: 'addtrack'
+        });
+      }
+    };
+
+    /**
+     * Remove a {@link Track} from the `TrackList`
+     *
+     * @param {Track} rtrack
+     *        The audio, video, or text track to remove from the list.
+     *
+     * @fires TrackList#removetrack
+     */
+
+
+    TrackList.prototype.removeTrack = function removeTrack(rtrack) {
+      var track = void 0;
+
+      for (var i = 0, l = this.length; i < l; i++) {
+        if (this[i] === rtrack) {
+          track = this[i];
+          if (track.off) {
+            track.off();
+          }
+
+          this.tracks_.splice(i, 1);
+
+          break;
+        }
+      }
+
+      if (!track) {
+        return;
+      }
+
+      /**
+       * Triggered when a track is removed from track list.
+       *
+       * @event TrackList#removetrack
+       * @type {EventTarget~Event}
+       * @property {Track} track
+       *           A reference to track that was removed.
+       */
+      this.trigger({
+        track: track,
+        type: 'removetrack'
+      });
+    };
+
+    /**
+     * Get a Track from the TrackList by a tracks id
+     *
+     * @param {String} id - the id of the track to get
+     * @method getTrackById
+     * @return {Track}
+     * @private
+     */
+
+
+    TrackList.prototype.getTrackById = function getTrackById(id) {
+      var result = null;
+
+      for (var i = 0, l = this.length; i < l; i++) {
+        var track = this[i];
+
+        if (track.id === id) {
+          result = track;
+          break;
+        }
+      }
+
+      return result;
+    };
+
+    return TrackList;
+  }(EventTarget);
+
+  /**
+   * Triggered when a different track is selected/enabled.
+   *
+   * @event TrackList#change
+   * @type {EventTarget~Event}
+   */
+
+  /**
+   * Events that can be called with on + eventName. See {@link EventHandler}.
+   *
+   * @property {Object} TrackList#allowedEvents_
+   * @private
+   */
+
+
+  TrackList.prototype.allowedEvents_ = {
+    change: 'change',
+    addtrack: 'addtrack',
+    removetrack: 'removetrack'
+  };
+
+  // emulate attribute EventHandler support to allow for feature detection
+  for (var event in TrackList.prototype.allowedEvents_) {
+    TrackList.prototype['on' + event] = null;
+  }
+
+  /**
+   * @file audio-track-list.js
+   */
+
+  /**
+   * Anywhere we call this function we diverge from the spec
+   * as we only support one enabled audiotrack at a time
+   *
+   * @param {AudioTrackList} list
+   *        list to work on
+   *
+   * @param {AudioTrack} track
+   *        The track to skip
+   *
+   * @private
+   */
+  var disableOthers = function disableOthers(list, track) {
+    for (var i = 0; i < list.length; i++) {
+      if (!Object.keys(list[i]).length || track.id === list[i].id) {
+        continue;
+      }
+      // another audio track is enabled, disable it
+      list[i].enabled = false;
+    }
+  };
+
+  /**
+   * The current list of {@link AudioTrack} for a media file.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}
+   * @extends TrackList
+   */
+
+  var AudioTrackList = function (_TrackList) {
+    inherits(AudioTrackList, _TrackList);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {AudioTrack[]} [tracks=[]]
+     *        A list of `AudioTrack` to instantiate the list with.
+     */
+    function AudioTrackList() {
+      var tracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+      classCallCheck(this, AudioTrackList);
+
+      // make sure only 1 track is enabled
+      // sorted from last index to first index
+      for (var i = tracks.length - 1; i >= 0; i--) {
+        if (tracks[i].enabled) {
+          disableOthers(tracks, tracks[i]);
+          break;
+        }
+      }
+
+      var _this = possibleConstructorReturn(this, _TrackList.call(this, tracks));
+
+      _this.changing_ = false;
+      return _this;
+    }
+
+    /**
+     * Add an {@link AudioTrack} to the `AudioTrackList`.
+     *
+     * @param {AudioTrack} track
+     *        The AudioTrack to add to the list
+     *
+     * @fires TrackList#addtrack
+     */
+
+
+    AudioTrackList.prototype.addTrack = function addTrack(track) {
+      var _this2 = this;
+
+      if (track.enabled) {
+        disableOthers(this, track);
+      }
+
+      _TrackList.prototype.addTrack.call(this, track);
+      // native tracks don't have this
+      if (!track.addEventListener) {
+        return;
+      }
+
+      /**
+       * @listens AudioTrack#enabledchange
+       * @fires TrackList#change
+       */
+      track.addEventListener('enabledchange', function () {
+        // when we are disabling other tracks (since we don't support
+        // more than one track at a time) we will set changing_
+        // to true so that we don't trigger additional change events
+        if (_this2.changing_) {
+          return;
+        }
+        _this2.changing_ = true;
+        disableOthers(_this2, track);
+        _this2.changing_ = false;
+        _this2.trigger('change');
+      });
+    };
+
+    return AudioTrackList;
+  }(TrackList);
+
+  /**
+   * @file video-track-list.js
+   */
+
+  /**
+   * Un-select all other {@link VideoTrack}s that are selected.
+   *
+   * @param {VideoTrackList} list
+   *        list to work on
+   *
+   * @param {VideoTrack} track
+   *        The track to skip
+   *
+   * @private
+   */
+  var disableOthers$1 = function disableOthers(list, track) {
+    for (var i = 0; i < list.length; i++) {
+      if (!Object.keys(list[i]).length || track.id === list[i].id) {
+        continue;
+      }
+      // another video track is enabled, disable it
+      list[i].selected = false;
+    }
+  };
+
+  /**
+   * The current list of {@link VideoTrack} for a video.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}
+   * @extends TrackList
+   */
+
+  var VideoTrackList = function (_TrackList) {
+    inherits(VideoTrackList, _TrackList);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {VideoTrack[]} [tracks=[]]
+     *        A list of `VideoTrack` to instantiate the list with.
+     */
+    function VideoTrackList() {
+      var tracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+      classCallCheck(this, VideoTrackList);
+
+      // make sure only 1 track is enabled
+      // sorted from last index to first index
+      for (var i = tracks.length - 1; i >= 0; i--) {
+        if (tracks[i].selected) {
+          disableOthers$1(tracks, tracks[i]);
+          break;
+        }
+      }
+
+      var _this = possibleConstructorReturn(this, _TrackList.call(this, tracks));
+
+      _this.changing_ = false;
+
+      /**
+       * @member {number} VideoTrackList#selectedIndex
+       *         The current index of the selected {@link VideoTrack`}.
+       */
+      Object.defineProperty(_this, 'selectedIndex', {
+        get: function get$$1() {
+          for (var _i = 0; _i < this.length; _i++) {
+            if (this[_i].selected) {
+              return _i;
+            }
+          }
+          return -1;
+        },
+        set: function set$$1() {
+        }
+      });
+      return _this;
+    }
+
+    /**
+     * Add a {@link VideoTrack} to the `VideoTrackList`.
+     *
+     * @param {VideoTrack} track
+     *        The VideoTrack to add to the list
+     *
+     * @fires TrackList#addtrack
+     */
+
+
+    VideoTrackList.prototype.addTrack = function addTrack(track) {
+      var _this2 = this;
+
+      if (track.selected) {
+        disableOthers$1(this, track);
+      }
+
+      _TrackList.prototype.addTrack.call(this, track);
+      // native tracks don't have this
+      if (!track.addEventListener) {
+        return;
+      }
+
+      /**
+       * @listens VideoTrack#selectedchange
+       * @fires TrackList#change
+       */
+      track.addEventListener('selectedchange', function () {
+        if (_this2.changing_) {
+          return;
+        }
+        _this2.changing_ = true;
+        disableOthers$1(_this2, track);
+        _this2.changing_ = false;
+        _this2.trigger('change');
+      });
+    };
+
+    return VideoTrackList;
+  }(TrackList);
+
+  /**
+   * @file text-track-list.js
+   */
+
+  /**
+   * The current list of {@link TextTrack} for a media file.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}
+   * @extends TrackList
+   */
+
+  var TextTrackList = function (_TrackList) {
+    inherits(TextTrackList, _TrackList);
+
+    function TextTrackList() {
+      classCallCheck(this, TextTrackList);
+      return possibleConstructorReturn(this, _TrackList.apply(this, arguments));
+    }
+
+    /**
+     * Add a {@link TextTrack} to the `TextTrackList`
+     *
+     * @param {TextTrack} track
+     *        The text track to add to the list.
+     *
+     * @fires TrackList#addtrack
+     */
+    TextTrackList.prototype.addTrack = function addTrack(track) {
+      _TrackList.prototype.addTrack.call(this, track);
+
+      /**
+       * @listens TextTrack#modechange
+       * @fires TrackList#change
+       */
+      track.addEventListener('modechange', bind(this, function () {
+        this.trigger('change');
+      }));
+
+      var nonLanguageTextTrackKind = ['metadata', 'chapters'];
+
+      if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {
+        track.addEventListener('modechange', bind(this, function () {
+          this.trigger('selectedlanguagechange');
+        }));
+      }
+    };
+
+    return TextTrackList;
+  }(TrackList);
+
+  /**
+   * @file html-track-element-list.js
+   */
+
+  /**
+   * The current list of {@link HtmlTrackElement}s.
+   */
+  var HtmlTrackElementList = function () {
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {HtmlTrackElement[]} [tracks=[]]
+     *        A list of `HtmlTrackElement` to instantiate the list with.
+     */
+    function HtmlTrackElementList() {
+      var trackElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+      classCallCheck(this, HtmlTrackElementList);
+
+      this.trackElements_ = [];
+
+      /**
+       * @memberof HtmlTrackElementList
+       * @member {number} length
+       *         The current number of `Track`s in the this Trackist.
+       * @instance
+       */
+      Object.defineProperty(this, 'length', {
+        get: function get$$1() {
+          return this.trackElements_.length;
+        }
+      });
+
+      for (var i = 0, length = trackElements.length; i < length; i++) {
+        this.addTrackElement_(trackElements[i]);
+      }
+    }
+
+    /**
+     * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`
+     *
+     * @param {HtmlTrackElement} trackElement
+     *        The track element to add to the list.
+     *
+     * @private
+     */
+
+
+    HtmlTrackElementList.prototype.addTrackElement_ = function addTrackElement_(trackElement) {
+      var index = this.trackElements_.length;
+
+      if (!('' + index in this)) {
+        Object.defineProperty(this, index, {
+          get: function get$$1() {
+            return this.trackElements_[index];
+          }
+        });
+      }
+
+      // Do not add duplicate elements
+      if (this.trackElements_.indexOf(trackElement) === -1) {
+        this.trackElements_.push(trackElement);
+      }
+    };
+
+    /**
+     * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an
+     * {@link TextTrack}.
+     *
+     * @param {TextTrack} track
+     *        The track associated with a track element.
+     *
+     * @return {HtmlTrackElement|undefined}
+     *         The track element that was found or undefined.
+     *
+     * @private
+     */
+
+
+    HtmlTrackElementList.prototype.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {
+      var trackElement_ = void 0;
+
+      for (var i = 0, length = this.trackElements_.length; i < length; i++) {
+        if (track === this.trackElements_[i].track) {
+          trackElement_ = this.trackElements_[i];
+
+          break;
+        }
+      }
+
+      return trackElement_;
+    };
+
+    /**
+     * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`
+     *
+     * @param {HtmlTrackElement} trackElement
+     *        The track element to remove from the list.
+     *
+     * @private
+     */
+
+
+    HtmlTrackElementList.prototype.removeTrackElement_ = function removeTrackElement_(trackElement) {
+      for (var i = 0, length = this.trackElements_.length; i < length; i++) {
+        if (trackElement === this.trackElements_[i]) {
+          this.trackElements_.splice(i, 1);
+
+          break;
+        }
+      }
+    };
+
+    return HtmlTrackElementList;
+  }();
+
+  /**
+   * @file text-track-cue-list.js
+   */
+
+  /**
+   * @typedef {Object} TextTrackCueList~TextTrackCue
+   *
+   * @property {string} id
+   *           The unique id for this text track cue
+   *
+   * @property {number} startTime
+   *           The start time for this text track cue
+   *
+   * @property {number} endTime
+   *           The end time for this text track cue
+   *
+   * @property {boolean} pauseOnExit
+   *           Pause when the end time is reached if true.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}
+   */
+
+  /**
+   * A List of TextTrackCues.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}
+   */
+  var TextTrackCueList = function () {
+
+    /**
+     * Create an instance of this class..
+     *
+     * @param {Array} cues
+     *        A list of cues to be initialized with
+     */
+    function TextTrackCueList(cues) {
+      classCallCheck(this, TextTrackCueList);
+
+      TextTrackCueList.prototype.setCues_.call(this, cues);
+
+      /**
+       * @memberof TextTrackCueList
+       * @member {number} length
+       *         The current number of `TextTrackCue`s in the TextTrackCueList.
+       * @instance
+       */
+      Object.defineProperty(this, 'length', {
+        get: function get$$1() {
+          return this.length_;
+        }
+      });
+    }
+
+    /**
+     * A setter for cues in this list. Creates getters
+     * an an index for the cues.
+     *
+     * @param {Array} cues
+     *        An array of cues to set
+     *
+     * @private
+     */
+
+
+    TextTrackCueList.prototype.setCues_ = function setCues_(cues) {
+      var oldLength = this.length || 0;
+      var i = 0;
+      var l = cues.length;
+
+      this.cues_ = cues;
+      this.length_ = cues.length;
+
+      var defineProp = function defineProp(index) {
+        if (!('' + index in this)) {
+          Object.defineProperty(this, '' + index, {
+            get: function get$$1() {
+              return this.cues_[index];
+            }
+          });
+        }
+      };
+
+      if (oldLength < l) {
+        i = oldLength;
+
+        for (; i < l; i++) {
+          defineProp.call(this, i);
+        }
+      }
+    };
+
+    /**
+     * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.
+     *
+     * @param {string} id
+     *        The id of the cue that should be searched for.
+     *
+     * @return {TextTrackCueList~TextTrackCue|null}
+     *         A single cue or null if none was found.
+     */
+
+
+    TextTrackCueList.prototype.getCueById = function getCueById(id) {
+      var result = null;
+
+      for (var i = 0, l = this.length; i < l; i++) {
+        var cue = this[i];
+
+        if (cue.id === id) {
+          result = cue;
+          break;
+        }
+      }
+
+      return result;
+    };
+
+    return TextTrackCueList;
+  }();
+
+  /**
+   * @file track-kinds.js
+   */
+
+  /**
+   * All possible `VideoTrackKind`s
+   *
+   * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind
+   * @typedef VideoTrack~Kind
+   * @enum
+   */
+  var VideoTrackKind = {
+    alternative: 'alternative',
+    captions: 'captions',
+    main: 'main',
+    sign: 'sign',
+    subtitles: 'subtitles',
+    commentary: 'commentary'
+  };
+
+  /**
+   * All possible `AudioTrackKind`s
+   *
+   * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind
+   * @typedef AudioTrack~Kind
+   * @enum
+   */
+  var AudioTrackKind = {
+    'alternative': 'alternative',
+    'descriptions': 'descriptions',
+    'main': 'main',
+    'main-desc': 'main-desc',
+    'translation': 'translation',
+    'commentary': 'commentary'
+  };
+
+  /**
+   * All possible `TextTrackKind`s
+   *
+   * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind
+   * @typedef TextTrack~Kind
+   * @enum
+   */
+  var TextTrackKind = {
+    subtitles: 'subtitles',
+    captions: 'captions',
+    descriptions: 'descriptions',
+    chapters: 'chapters',
+    metadata: 'metadata'
+  };
+
+  /**
+   * All possible `TextTrackMode`s
+   *
+   * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode
+   * @typedef TextTrack~Mode
+   * @enum
+   */
+  var TextTrackMode = {
+    disabled: 'disabled',
+    hidden: 'hidden',
+    showing: 'showing'
+  };
+
+  /**
+   * @file track.js
+   */
+
+  /**
+   * A Track class that contains all of the common functionality for {@link AudioTrack},
+   * {@link VideoTrack}, and {@link TextTrack}.
+   *
+   * > Note: This class should not be used directly
+   *
+   * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}
+   * @extends EventTarget
+   * @abstract
+   */
+
+  var Track = function (_EventTarget) {
+    inherits(Track, _EventTarget);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Object} [options={}]
+     *        Object of option names and values
+     *
+     * @param {string} [options.kind='']
+     *        A valid kind for the track type you are creating.
+     *
+     * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+     *        A unique id for this AudioTrack.
+     *
+     * @param {string} [options.label='']
+     *        The menu label for this track.
+     *
+     * @param {string} [options.language='']
+     *        A valid two character language code.
+     *
+     * @abstract
+     */
+    function Track() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      classCallCheck(this, Track);
+
+      var _this = possibleConstructorReturn(this, _EventTarget.call(this));
+
+      var trackProps = {
+        id: options.id || 'vjs_track_' + newGUID(),
+        kind: options.kind || '',
+        label: options.label || '',
+        language: options.language || ''
+      };
+
+      /**
+       * @memberof Track
+       * @member {string} id
+       *         The id of this track. Cannot be changed after creation.
+       * @instance
+       *
+       * @readonly
+       */
+
+      /**
+       * @memberof Track
+       * @member {string} kind
+       *         The kind of track that this is. Cannot be changed after creation.
+       * @instance
+       *
+       * @readonly
+       */
+
+      /**
+       * @memberof Track
+       * @member {string} label
+       *         The label of this track. Cannot be changed after creation.
+       * @instance
+       *
+       * @readonly
+       */
+
+      /**
+       * @memberof Track
+       * @member {string} language
+       *         The two letter language code for this track. Cannot be changed after
+       *         creation.
+       * @instance
+       *
+       * @readonly
+       */
+
+      var _loop = function _loop(key) {
+        Object.defineProperty(_this, key, {
+          get: function get$$1() {
+            return trackProps[key];
+          },
+          set: function set$$1() {
+          }
+        });
+      };
+
+      for (var key in trackProps) {
+        _loop(key);
+      }
+      return _this;
+    }
+
+    return Track;
+  }(EventTarget);
+
+  /**
+   * @file url.js
+   * @module url
+   */
+
+  /**
+   * @typedef {Object} url:URLObject
+   *
+   * @property {string} protocol
+   *           The protocol of the url that was parsed.
+   *
+   * @property {string} hostname
+   *           The hostname of the url that was parsed.
+   *
+   * @property {string} port
+   *           The port of the url that was parsed.
+   *
+   * @property {string} pathname
+   *           The pathname of the url that was parsed.
+   *
+   * @property {string} search
+   *           The search query of the url that was parsed.
+   *
+   * @property {string} hash
+   *           The hash of the url that was parsed.
+   *
+   * @property {string} host
+   *           The host of the url that was parsed.
+   */
+
+  /**
+   * Resolve and parse the elements of a URL.
+   *
+   * @param  {String} url
+   *         The url to parse
+   *
+   * @return {url:URLObject}
+   *         An object of url details
+   */
+  var parseUrl = function parseUrl(url) {
+    var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];
+
+    // add the url to an anchor and let the browser parse the URL
+    var a = document_1.createElement('a');
+
+    a.href = url;
+
+    // IE8 (and 9?) Fix
+    // ie8 doesn't parse the URL correctly until the anchor is actually
+    // added to the body, and an innerHTML is needed to trigger the parsing
+    var addToBody = a.host === '' && a.protocol !== 'file:';
+    var div = void 0;
+
+    if (addToBody) {
+      div = document_1.createElement('div');
+      div.innerHTML = '<a href="' + url + '"></a>';
+      a = div.firstChild;
+      // prevent the div from affecting layout
+      div.setAttribute('style', 'display:none; position:absolute;');
+      document_1.body.appendChild(div);
+    }
+
+    // Copy the specific URL properties to a new object
+    // This is also needed for IE8 because the anchor loses its
+    // properties when it's removed from the dom
+    var details = {};
+
+    for (var i = 0; i < props.length; i++) {
+      details[props[i]] = a[props[i]];
+    }
+
+    // IE9 adds the port to the host property unlike everyone else. If
+    // a port identifier is added for standard ports, strip it.
+    if (details.protocol === 'http:') {
+      details.host = details.host.replace(/:80$/, '');
+    }
+
+    if (details.protocol === 'https:') {
+      details.host = details.host.replace(/:443$/, '');
+    }
+
+    if (!details.protocol) {
+      details.protocol = window_1.location.protocol;
+    }
+
+    if (addToBody) {
+      document_1.body.removeChild(div);
+    }
+
+    return details;
+  };
+
+  /**
+   * Get absolute version of relative URL. Used to tell flash correct URL.
+   *
+   *
+   * @param  {string} url
+   *         URL to make absolute
+   *
+   * @return {string}
+   *         Absolute URL
+   *
+   * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue
+   */
+  var getAbsoluteURL = function getAbsoluteURL(url) {
+    // Check if absolute URL
+    if (!url.match(/^https?:\/\//)) {
+      // Convert to absolute URL. Flash hosted off-site needs an absolute URL.
+      var div = document_1.createElement('div');
+
+      div.innerHTML = '<a href="' + url + '">x</a>';
+      url = div.firstChild.href;
+    }
+
+    return url;
+  };
+
+  /**
+   * Returns the extension of the passed file name. It will return an empty string
+   * if passed an invalid path.
+   *
+   * @param {string} path
+   *        The fileName path like '/path/to/file.mp4'
+   *
+   * @returns {string}
+   *          The extension in lower case or an empty string if no
+   *          extension could be found.
+   */
+  var getFileExtension = function getFileExtension(path) {
+    if (typeof path === 'string') {
+      var splitPathRe = /^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i;
+      var pathParts = splitPathRe.exec(path);
+
+      if (pathParts) {
+        return pathParts.pop().toLowerCase();
+      }
+    }
+
+    return '';
+  };
+
+  /**
+   * Returns whether the url passed is a cross domain request or not.
+   *
+   * @param {string} url
+   *        The url to check.
+   *
+   * @return {boolean}
+   *         Whether it is a cross domain request or not.
+   */
+  var isCrossOrigin = function isCrossOrigin(url) {
+    var winLoc = window_1.location;
+    var urlInfo = parseUrl(url);
+
+    // IE8 protocol relative urls will return ':' for protocol
+    var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;
+
+    // Check if url is for another domain/origin
+    // IE8 doesn't know location.origin, so we won't rely on it here
+    var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;
+
+    return crossOrigin;
+  };
+
+  var Url = /*#__PURE__*/Object.freeze({
+    parseUrl: parseUrl,
+    getAbsoluteURL: getAbsoluteURL,
+    getFileExtension: getFileExtension,
+    isCrossOrigin: isCrossOrigin
+  });
+
+  var isFunction_1 = isFunction;
+
+  var toString$1 = Object.prototype.toString;
+
+  function isFunction(fn) {
+    var string = toString$1.call(fn);
+    return string === '[object Function]' || typeof fn === 'function' && string !== '[object RegExp]' || typeof window !== 'undefined' && (
+      // IE8 and below
+      fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt);
+  }
+
+  var isFunction$1 = /*#__PURE__*/Object.freeze({
+    default: isFunction_1,
+    __moduleExports: isFunction_1
+  });
+
+  var trim_1 = createCommonjsModule(function (module, exports) {
+    exports = module.exports = trim;
+
+    function trim(str) {
+      return str.replace(/^\s*|\s*$/g, '');
+    }
+
+    exports.left = function (str) {
+      return str.replace(/^\s*/, '');
+    };
+
+    exports.right = function (str) {
+      return str.replace(/\s*$/, '');
+    };
+  });
+  var trim_2 = trim_1.left;
+  var trim_3 = trim_1.right;
+
+  var trim = /*#__PURE__*/Object.freeze({
+    default: trim_1,
+    __moduleExports: trim_1,
+    left: trim_2,
+    right: trim_3
+  });
+
+  var isFunction$2 = (isFunction$1 && isFunction_1) || isFunction$1;
+
+  var forEach_1 = forEach;
+
+  var toString$2 = Object.prototype.toString;
+  var hasOwnProperty = Object.prototype.hasOwnProperty;
+
+  function forEach(list, iterator, context) {
+    if (!isFunction$2(iterator)) {
+      throw new TypeError('iterator must be a function');
+    }
+
+    if (arguments.length < 3) {
+      context = this;
+    }
+
+    if (toString$2.call(list) === '[object Array]') forEachArray(list, iterator, context); else if (typeof list === 'string') forEachString(list, iterator, context); else forEachObject(list, iterator, context);
+  }
+
+  function forEachArray(array, iterator, context) {
+    for (var i = 0, len = array.length; i < len; i++) {
+      if (hasOwnProperty.call(array, i)) {
+        iterator.call(context, array[i], i, array);
+      }
+    }
+  }
+
+  function forEachString(string, iterator, context) {
+    for (var i = 0, len = string.length; i < len; i++) {
+      // no such thing as a sparse string.
+      iterator.call(context, string.charAt(i), i, string);
+    }
+  }
+
+  function forEachObject(object, iterator, context) {
+    for (var k in object) {
+      if (hasOwnProperty.call(object, k)) {
+        iterator.call(context, object[k], k, object);
+      }
+    }
+  }
+
+  var forEach$1 = /*#__PURE__*/Object.freeze({
+    default: forEach_1,
+    __moduleExports: forEach_1
+  });
+
+  var trim$1 = (trim && trim_1) || trim;
+
+  var forEach$2 = (forEach$1 && forEach_1) || forEach$1;
+
+  var isArray = function isArray(arg) {
+    return Object.prototype.toString.call(arg) === '[object Array]';
+  };
+
+  var parseHeaders = function parseHeaders(headers) {
+    if (!headers) return {};
+
+    var result = {};
+
+    forEach$2(trim$1(headers).split('\n'), function (row) {
+      var index = row.indexOf(':'),
+        key = trim$1(row.slice(0, index)).toLowerCase(),
+        value = trim$1(row.slice(index + 1));
+
+      if (typeof result[key] === 'undefined') {
+        result[key] = value;
+      } else if (isArray(result[key])) {
+        result[key].push(value);
+      } else {
+        result[key] = [result[key], value];
+      }
+    });
+
+    return result;
+  };
+
+  var parseHeaders$1 = /*#__PURE__*/Object.freeze({
+    default: parseHeaders,
+    __moduleExports: parseHeaders
+  });
+
+  var immutable = extend;
+
+  var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
+
+  function extend() {
+    var target = {};
+
+    for (var i = 0; i < arguments.length; i++) {
+      var source = arguments[i];
+
+      for (var key in source) {
+        if (hasOwnProperty$1.call(source, key)) {
+          target[key] = source[key];
+        }
+      }
+    }
+
+    return target;
+  }
+
+  var immutable$1 = /*#__PURE__*/Object.freeze({
+    default: immutable,
+    __moduleExports: immutable
+  });
+
+  var parseHeaders$2 = (parseHeaders$1 && parseHeaders) || parseHeaders$1;
+
+  var xtend = (immutable$1 && immutable) || immutable$1;
+
+  var xhr = createXHR;
+  createXHR.XMLHttpRequest = window_1.XMLHttpRequest || noop;
+  createXHR.XDomainRequest = "withCredentials" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window_1.XDomainRequest;
+
+  forEachArray$1(["get", "put", "post", "patch", "head", "delete"], function (method) {
+    createXHR[method === "delete" ? "del" : method] = function (uri, options, callback) {
+      options = initParams(uri, options, callback);
+      options.method = method.toUpperCase();
+      return _createXHR(options);
+    };
+  });
+
+  function forEachArray$1(array, iterator) {
+    for (var i = 0; i < array.length; i++) {
+      iterator(array[i]);
+    }
+  }
+
+  function isEmpty(obj) {
+    for (var i in obj) {
+      if (obj.hasOwnProperty(i)) return false;
+    }
+    return true;
+  }
+
+  function initParams(uri, options, callback) {
+    var params = uri;
+
+    if (isFunction$2(options)) {
+      callback = options;
+      if (typeof uri === "string") {
+        params = {uri: uri};
+      }
+    } else {
+      params = xtend(options, {uri: uri});
+    }
+
+    params.callback = callback;
+    return params;
+  }
+
+  function createXHR(uri, options, callback) {
+    options = initParams(uri, options, callback);
+    return _createXHR(options);
+  }
+
+  function _createXHR(options) {
+    if (typeof options.callback === "undefined") {
+      throw new Error("callback argument missing");
+    }
+
+    var called = false;
+    var callback = function cbOnce(err, response, body) {
+      if (!called) {
+        called = true;
+        options.callback(err, response, body);
+      }
+    };
+
+    function readystatechange() {
+      if (xhr.readyState === 4) {
+        setTimeout(loadFunc, 0);
+      }
+    }
+
+    function getBody() {
+      // Chrome with requestType=blob throws errors arround when even testing access to responseText
+      var body = undefined;
+
+      if (xhr.response) {
+        body = xhr.response;
+      } else {
+        body = xhr.responseText || getXml(xhr);
+      }
+
+      if (isJson) {
+        try {
+          body = JSON.parse(body);
+        } catch (e) {
+        }
+      }
+
+      return body;
+    }
+
+    function errorFunc(evt) {
+      clearTimeout(timeoutTimer);
+      if (!(evt instanceof Error)) {
+        evt = new Error("" + (evt || "Unknown XMLHttpRequest Error"));
+      }
+      evt.statusCode = 0;
+      return callback(evt, failureResponse);
+    }
+
+    // will load the data & process the response in a special response object
+    function loadFunc() {
+      if (aborted) return;
+      var status;
+      clearTimeout(timeoutTimer);
+      if (options.useXDR && xhr.status === undefined) {
+        //IE8 CORS GET successful response doesn't have a status field, but body is fine
+        status = 200;
+      } else {
+        status = xhr.status === 1223 ? 204 : xhr.status;
+      }
+      var response = failureResponse;
+      var err = null;
+
+      if (status !== 0) {
+        response = {
+          body: getBody(),
+          statusCode: status,
+          method: method,
+          headers: {},
+          url: uri,
+          rawRequest: xhr
+        };
+        if (xhr.getAllResponseHeaders) {
+          //remember xhr can in fact be XDR for CORS in IE
+          response.headers = parseHeaders$2(xhr.getAllResponseHeaders());
+        }
+      } else {
+        err = new Error("Internal XMLHttpRequest Error");
+      }
+      return callback(err, response, response.body);
+    }
+
+    var xhr = options.xhr || null;
+
+    if (!xhr) {
+      if (options.cors || options.useXDR) {
+        xhr = new createXHR.XDomainRequest();
+      } else {
+        xhr = new createXHR.XMLHttpRequest();
+      }
+    }
+
+    var key;
+    var aborted;
+    var uri = xhr.url = options.uri || options.url;
+    var method = xhr.method = options.method || "GET";
+    var body = options.body || options.data;
+    var headers = xhr.headers = options.headers || {};
+    var sync = !!options.sync;
+    var isJson = false;
+    var timeoutTimer;
+    var failureResponse = {
+      body: undefined,
+      headers: {},
+      statusCode: 0,
+      method: method,
+      url: uri,
+      rawRequest: xhr
+    };
+
+    if ("json" in options && options.json !== false) {
+      isJson = true;
+      headers["accept"] || headers["Accept"] || (headers["Accept"] = "application/json"); //Don't override existing accept header declared by user
+      if (method !== "GET" && method !== "HEAD") {
+        headers["content-type"] || headers["Content-Type"] || (headers["Content-Type"] = "application/json"); //Don't override existing accept header declared by user
+        body = JSON.stringify(options.json === true ? body : options.json);
+      }
+    }
+
+    xhr.onreadystatechange = readystatechange;
+    xhr.onload = loadFunc;
+    xhr.onerror = errorFunc;
+    // IE9 must have onprogress be set to a unique function.
+    xhr.onprogress = function () {
+      // IE must die
+    };
+    xhr.onabort = function () {
+      aborted = true;
+    };
+    xhr.ontimeout = errorFunc;
+    xhr.open(method, uri, !sync, options.username, options.password);
+    //has to be after open
+    if (!sync) {
+      xhr.withCredentials = !!options.withCredentials;
+    }
+    // Cannot set timeout with sync request
+    // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly
+    // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent
+    if (!sync && options.timeout > 0) {
+      timeoutTimer = setTimeout(function () {
+        if (aborted) return;
+        aborted = true; //IE9 may still call readystatechange
+        xhr.abort("timeout");
+        var e = new Error("XMLHttpRequest timeout");
+        e.code = "ETIMEDOUT";
+        errorFunc(e);
+      }, options.timeout);
+    }
+
+    if (xhr.setRequestHeader) {
+      for (key in headers) {
+        if (headers.hasOwnProperty(key)) {
+          xhr.setRequestHeader(key, headers[key]);
+        }
+      }
+    } else if (options.headers && !isEmpty(options.headers)) {
+      throw new Error("Headers cannot be set on an XDomainRequest object");
+    }
+
+    if ("responseType" in options) {
+      xhr.responseType = options.responseType;
+    }
+
+    if ("beforeSend" in options && typeof options.beforeSend === "function") {
+      options.beforeSend(xhr);
+    }
+
+    // Microsoft Edge browser sends "undefined" when send is called with undefined value.
+    // XMLHttpRequest spec says to pass null as body to indicate no body
+    // See https://github.com/naugtur/xhr/issues/100.
+    xhr.send(body || null);
+
+    return xhr;
+  }
+
+  function getXml(xhr) {
+    if (xhr.responseType === "document") {
+      return xhr.responseXML;
+    }
+    var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === "parsererror";
+    if (xhr.responseType === "" && !firefoxBugTakenEffect) {
+      return xhr.responseXML;
+    }
+
+    return null;
+  }
+
+  function noop() {
+  }
+
+  /**
+   * @file text-track.js
+   */
+
+  /**
+   * Takes a webvtt file contents and parses it into cues
+   *
+   * @param {string} srcContent
+   *        webVTT file contents
+   *
+   * @param {TextTrack} track
+   *        TextTrack to add cues to. Cues come from the srcContent.
+   *
+   * @private
+   */
+  var parseCues = function parseCues(srcContent, track) {
+    var parser = new window_1.WebVTT.Parser(window_1, window_1.vttjs, window_1.WebVTT.StringDecoder());
+    var errors = [];
+
+    parser.oncue = function (cue) {
+      track.addCue(cue);
+    };
+
+    parser.onparsingerror = function (error) {
+      errors.push(error);
+    };
+
+    parser.onflush = function () {
+      track.trigger({
+        type: 'loadeddata',
+        target: track
+      });
+    };
+
+    parser.parse(srcContent);
+    if (errors.length > 0) {
+      if (window_1.console && window_1.console.groupCollapsed) {
+        window_1.console.groupCollapsed('Text Track parsing errors for ' + track.src);
+      }
+      errors.forEach(function (error) {
+        return log$1.error(error);
+      });
+      if (window_1.console && window_1.console.groupEnd) {
+        window_1.console.groupEnd();
+      }
+    }
+
+    parser.flush();
+  };
+
+  /**
+   * Load a `TextTrack` from a specified url.
+   *
+   * @param {string} src
+   *        Url to load track from.
+   *
+   * @param {TextTrack} track
+   *        Track to add cues to. Comes from the content at the end of `url`.
+   *
+   * @private
+   */
+  var loadTrack = function loadTrack(src, track) {
+    var opts = {
+      uri: src
+    };
+    var crossOrigin = isCrossOrigin(src);
+
+    if (crossOrigin) {
+      opts.cors = crossOrigin;
+    }
+
+    xhr(opts, bind(this, function (err, response, responseBody) {
+      if (err) {
+        return log$1.error(err, response);
+      }
+
+      track.loaded_ = true;
+
+      // Make sure that vttjs has loaded, otherwise, wait till it finished loading
+      // NOTE: this is only used for the alt/video.novtt.js build
+      if (typeof window_1.WebVTT !== 'function') {
+        if (track.tech_) {
+          var loadHandler = function loadHandler() {
+            return parseCues(responseBody, track);
+          };
+
+          track.tech_.on('vttjsloaded', loadHandler);
+          track.tech_.on('vttjserror', function () {
+            log$1.error('vttjs failed to load, stopping trying to process ' + track.src);
+            track.tech_.off('vttjsloaded', loadHandler);
+          });
+        }
+      } else {
+        parseCues(responseBody, track);
+      }
+    }));
+  };
+
+  /**
+   * A representation of a single `TextTrack`.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}
+   * @extends Track
+   */
+
+  var TextTrack = function (_Track) {
+    inherits(TextTrack, _Track);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Object} options={}
+     *        Object of option names and values
+     *
+     * @param {Tech} options.tech
+     *        A reference to the tech that owns this TextTrack.
+     *
+     * @param {TextTrack~Kind} [options.kind='subtitles']
+     *        A valid text track kind.
+     *
+     * @param {TextTrack~Mode} [options.mode='disabled']
+     *        A valid text track mode.
+     *
+     * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+     *        A unique id for this TextTrack.
+     *
+     * @param {string} [options.label='']
+     *        The menu label for this track.
+     *
+     * @param {string} [options.language='']
+     *        A valid two character language code.
+     *
+     * @param {string} [options.srclang='']
+     *        A valid two character language code. An alternative, but deprioritized
+     *        version of `options.language`
+     *
+     * @param {string} [options.src]
+     *        A url to TextTrack cues.
+     *
+     * @param {boolean} [options.default]
+     *        If this track should default to on or off.
+     */
+    function TextTrack() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      classCallCheck(this, TextTrack);
+
+      if (!options.tech) {
+        throw new Error('A tech was not provided.');
+      }
+
+      var settings = mergeOptions(options, {
+        kind: TextTrackKind[options.kind] || 'subtitles',
+        language: options.language || options.srclang || ''
+      });
+      var mode = TextTrackMode[settings.mode] || 'disabled';
+      var default_ = settings.default;
+
+      if (settings.kind === 'metadata' || settings.kind === 'chapters') {
+        mode = 'hidden';
+      }
+
+      var _this = possibleConstructorReturn(this, _Track.call(this, settings));
+
+      _this.tech_ = settings.tech;
+
+      _this.cues_ = [];
+      _this.activeCues_ = [];
+
+      var cues = new TextTrackCueList(_this.cues_);
+      var activeCues = new TextTrackCueList(_this.activeCues_);
+      var changed = false;
+      var timeupdateHandler = bind(_this, function () {
+
+        // Accessing this.activeCues for the side-effects of updating itself
+        // due to it's nature as a getter function. Do not remove or cues will
+        // stop updating!
+        /* eslint-disable no-unused-expressions */
+        this.activeCues;
+        /* eslint-enable no-unused-expressions */
+        if (changed) {
+          this.trigger('cuechange');
+          changed = false;
+        }
+      });
+
+      if (mode !== 'disabled') {
+        _this.tech_.ready(function () {
+          _this.tech_.on('timeupdate', timeupdateHandler);
+        }, true);
+      }
+
+      Object.defineProperties(_this, {
+        /**
+         * @memberof TextTrack
+         * @member {boolean} default
+         *         If this track was set to be on or off by default. Cannot be changed after
+         *         creation.
+         * @instance
+         *
+         * @readonly
+         */
+        default: {
+          get: function get$$1() {
+            return default_;
+          },
+          set: function set$$1() {
+          }
+        },
+
+        /**
+         * @memberof TextTrack
+         * @member {string} mode
+         *         Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will
+         *         not be set if setting to an invalid mode.
+         * @instance
+         *
+         * @fires TextTrack#modechange
+         */
+        mode: {
+          get: function get$$1() {
+            return mode;
+          },
+          set: function set$$1(newMode) {
+            var _this2 = this;
+
+            if (!TextTrackMode[newMode]) {
+              return;
+            }
+            mode = newMode;
+            if (mode === 'showing') {
+
+              this.tech_.ready(function () {
+                _this2.tech_.on('timeupdate', timeupdateHandler);
+              }, true);
+            }
+            /**
+             * An event that fires when mode changes on this track. This allows
+             * the TextTrackList that holds this track to act accordingly.
+             *
+             * > Note: This is not part of the spec!
+             *
+             * @event TextTrack#modechange
+             * @type {EventTarget~Event}
+             */
+            this.trigger('modechange');
+          }
+        },
+
+        /**
+         * @memberof TextTrack
+         * @member {TextTrackCueList} cues
+         *         The text track cue list for this TextTrack.
+         * @instance
+         */
+        cues: {
+          get: function get$$1() {
+            if (!this.loaded_) {
+              return null;
+            }
+
+            return cues;
+          },
+          set: function set$$1() {
+          }
+        },
+
+        /**
+         * @memberof TextTrack
+         * @member {TextTrackCueList} activeCues
+         *         The list text track cues that are currently active for this TextTrack.
+         * @instance
+         */
+        activeCues: {
+          get: function get$$1() {
+            if (!this.loaded_) {
+              return null;
+            }
+
+            // nothing to do
+            if (this.cues.length === 0) {
+              return activeCues;
+            }
+
+            var ct = this.tech_.currentTime();
+            var active = [];
+
+            for (var i = 0, l = this.cues.length; i < l; i++) {
+              var cue = this.cues[i];
+
+              if (cue.startTime <= ct && cue.endTime >= ct) {
+                active.push(cue);
+              } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {
+                active.push(cue);
+              }
+            }
+
+            changed = false;
+
+            if (active.length !== this.activeCues_.length) {
+              changed = true;
+            } else {
+              for (var _i = 0; _i < active.length; _i++) {
+                if (this.activeCues_.indexOf(active[_i]) === -1) {
+                  changed = true;
+                }
+              }
+            }
+
+            this.activeCues_ = active;
+            activeCues.setCues_(this.activeCues_);
+
+            return activeCues;
+          },
+          set: function set$$1() {
+          }
+        }
+      });
+
+      if (settings.src) {
+        _this.src = settings.src;
+        loadTrack(settings.src, _this);
+      } else {
+        _this.loaded_ = true;
+      }
+      return _this;
+    }
+
+    /**
+     * Add a cue to the internal list of cues.
+     *
+     * @param {TextTrack~Cue} cue
+     *        The cue to add to our internal list
+     */
+
+
+    TextTrack.prototype.addCue = function addCue(originalCue) {
+      var cue = originalCue;
+
+      if (window_1.vttjs && !(originalCue instanceof window_1.vttjs.VTTCue)) {
+        cue = new window_1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);
+
+        for (var prop in originalCue) {
+          if (!(prop in cue)) {
+            cue[prop] = originalCue[prop];
+          }
+        }
+
+        // make sure that `id` is copied over
+        cue.id = originalCue.id;
+        cue.originalCue_ = originalCue;
+      }
+
+      var tracks = this.tech_.textTracks();
+
+      for (var i = 0; i < tracks.length; i++) {
+        if (tracks[i] !== this) {
+          tracks[i].removeCue(cue);
+        }
+      }
+
+      this.cues_.push(cue);
+      this.cues.setCues_(this.cues_);
+    };
+
+    /**
+     * Remove a cue from our internal list
+     *
+     * @param {TextTrack~Cue} removeCue
+     *        The cue to remove from our internal list
+     */
+
+
+    TextTrack.prototype.removeCue = function removeCue(_removeCue) {
+      var i = this.cues_.length;
+
+      while (i--) {
+        var cue = this.cues_[i];
+
+        if (cue === _removeCue || cue.originalCue_ && cue.originalCue_ === _removeCue) {
+          this.cues_.splice(i, 1);
+          this.cues.setCues_(this.cues_);
+          break;
+        }
+      }
+    };
+
+    return TextTrack;
+  }(Track);
+
+  /**
+   * cuechange - One or more cues in the track have become active or stopped being active.
+   */
+
+
+  TextTrack.prototype.allowedEvents_ = {
+    cuechange: 'cuechange'
+  };
+
+  /**
+   * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}
+   * only one `AudioTrack` in the list will be enabled at a time.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}
+   * @extends Track
+   */
+
+  var AudioTrack = function (_Track) {
+    inherits(AudioTrack, _Track);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Object} [options={}]
+     *        Object of option names and values
+     *
+     * @param {AudioTrack~Kind} [options.kind='']
+     *        A valid audio track kind
+     *
+     * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+     *        A unique id for this AudioTrack.
+     *
+     * @param {string} [options.label='']
+     *        The menu label for this track.
+     *
+     * @param {string} [options.language='']
+     *        A valid two character language code.
+     *
+     * @param {boolean} [options.enabled]
+     *        If this track is the one that is currently playing. If this track is part of
+     *        an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.
+     */
+    function AudioTrack() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      classCallCheck(this, AudioTrack);
+
+      var settings = mergeOptions(options, {
+        kind: AudioTrackKind[options.kind] || ''
+      });
+
+      var _this = possibleConstructorReturn(this, _Track.call(this, settings));
+
+      var enabled = false;
+
+      /**
+       * @memberof AudioTrack
+       * @member {boolean} enabled
+       *         If this `AudioTrack` is enabled or not. When setting this will
+       *         fire {@link AudioTrack#enabledchange} if the state of enabled is changed.
+       * @instance
+       *
+       * @fires VideoTrack#selectedchange
+       */
+      Object.defineProperty(_this, 'enabled', {
+        get: function get$$1() {
+          return enabled;
+        },
+        set: function set$$1(newEnabled) {
+          // an invalid or unchanged value
+          if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {
+            return;
+          }
+          enabled = newEnabled;
+
+          /**
+           * An event that fires when enabled changes on this track. This allows
+           * the AudioTrackList that holds this track to act accordingly.
+           *
+           * > Note: This is not part of the spec! Native tracks will do
+           *         this internally without an event.
+           *
+           * @event AudioTrack#enabledchange
+           * @type {EventTarget~Event}
+           */
+          this.trigger('enabledchange');
+        }
+      });
+
+      // if the user sets this track to selected then
+      // set selected to that true value otherwise
+      // we keep it false
+      if (settings.enabled) {
+        _this.enabled = settings.enabled;
+      }
+      _this.loaded_ = true;
+      return _this;
+    }
+
+    return AudioTrack;
+  }(Track);
+
+  /**
+   * A representation of a single `VideoTrack`.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}
+   * @extends Track
+   */
+
+  var VideoTrack = function (_Track) {
+    inherits(VideoTrack, _Track);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Object} [options={}]
+     *        Object of option names and values
+     *
+     * @param {string} [options.kind='']
+     *        A valid {@link VideoTrack~Kind}
+     *
+     * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+     *        A unique id for this AudioTrack.
+     *
+     * @param {string} [options.label='']
+     *        The menu label for this track.
+     *
+     * @param {string} [options.language='']
+     *        A valid two character language code.
+     *
+     * @param {boolean} [options.selected]
+     *        If this track is the one that is currently playing.
+     */
+    function VideoTrack() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      classCallCheck(this, VideoTrack);
+
+      var settings = mergeOptions(options, {
+        kind: VideoTrackKind[options.kind] || ''
+      });
+
+      var _this = possibleConstructorReturn(this, _Track.call(this, settings));
+
+      var selected = false;
+
+      /**
+       * @memberof VideoTrack
+       * @member {boolean} selected
+       *         If this `VideoTrack` is selected or not. When setting this will
+       *         fire {@link VideoTrack#selectedchange} if the state of selected changed.
+       * @instance
+       *
+       * @fires VideoTrack#selectedchange
+       */
+      Object.defineProperty(_this, 'selected', {
+        get: function get$$1() {
+          return selected;
+        },
+        set: function set$$1(newSelected) {
+          // an invalid or unchanged value
+          if (typeof newSelected !== 'boolean' || newSelected === selected) {
+            return;
+          }
+          selected = newSelected;
+
+          /**
+           * An event that fires when selected changes on this track. This allows
+           * the VideoTrackList that holds this track to act accordingly.
+           *
+           * > Note: This is not part of the spec! Native tracks will do
+           *         this internally without an event.
+           *
+           * @event VideoTrack#selectedchange
+           * @type {EventTarget~Event}
+           */
+          this.trigger('selectedchange');
+        }
+      });
+
+      // if the user sets this track to selected then
+      // set selected to that true value otherwise
+      // we keep it false
+      if (settings.selected) {
+        _this.selected = settings.selected;
+      }
+      return _this;
+    }
+
+    return VideoTrack;
+  }(Track);
+
+  /**
+   * @file html-track-element.js
+   */
+
+  /**
+   * @memberof HTMLTrackElement
+   * @typedef {HTMLTrackElement~ReadyState}
+   * @enum {number}
+   */
+  var NONE = 0;
+  var LOADING = 1;
+  var LOADED = 2;
+  var ERROR = 3;
+
+  /**
+   * A single track represented in the DOM.
+   *
+   * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
+   * @extends EventTarget
+   */
+
+  var HTMLTrackElement = function (_EventTarget) {
+    inherits(HTMLTrackElement, _EventTarget);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Object} options={}
+     *        Object of option names and values
+     *
+     * @param {Tech} options.tech
+     *        A reference to the tech that owns this HTMLTrackElement.
+     *
+     * @param {TextTrack~Kind} [options.kind='subtitles']
+     *        A valid text track kind.
+     *
+     * @param {TextTrack~Mode} [options.mode='disabled']
+     *        A valid text track mode.
+     *
+     * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+     *        A unique id for this TextTrack.
+     *
+     * @param {string} [options.label='']
+     *        The menu label for this track.
+     *
+     * @param {string} [options.language='']
+     *        A valid two character language code.
+     *
+     * @param {string} [options.srclang='']
+     *        A valid two character language code. An alternative, but deprioritized
+     *        vesion of `options.language`
+     *
+     * @param {string} [options.src]
+     *        A url to TextTrack cues.
+     *
+     * @param {boolean} [options.default]
+     *        If this track should default to on or off.
+     */
+    function HTMLTrackElement() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      classCallCheck(this, HTMLTrackElement);
+
+      var _this = possibleConstructorReturn(this, _EventTarget.call(this));
+
+      var readyState = void 0;
+
+      var track = new TextTrack(options);
+
+      _this.kind = track.kind;
+      _this.src = track.src;
+      _this.srclang = track.language;
+      _this.label = track.label;
+      _this.default = track.default;
+
+      Object.defineProperties(_this, {
+
+        /**
+         * @memberof HTMLTrackElement
+         * @member {HTMLTrackElement~ReadyState} readyState
+         *         The current ready state of the track element.
+         * @instance
+         */
+        readyState: {
+          get: function get$$1() {
+            return readyState;
+          }
+        },
+
+        /**
+         * @memberof HTMLTrackElement
+         * @member {TextTrack} track
+         *         The underlying TextTrack object.
+         * @instance
+         *
+         */
+        track: {
+          get: function get$$1() {
+            return track;
+          }
+        }
+      });
+
+      readyState = NONE;
+
+      /**
+       * @listens TextTrack#loadeddata
+       * @fires HTMLTrackElement#load
+       */
+      track.addEventListener('loadeddata', function () {
+        readyState = LOADED;
+
+        _this.trigger({
+          type: 'load',
+          target: _this
+        });
+      });
+      return _this;
+    }
+
+    return HTMLTrackElement;
+  }(EventTarget);
+
+  HTMLTrackElement.prototype.allowedEvents_ = {
+    load: 'load'
+  };
+
+  HTMLTrackElement.NONE = NONE;
+  HTMLTrackElement.LOADING = LOADING;
+  HTMLTrackElement.LOADED = LOADED;
+  HTMLTrackElement.ERROR = ERROR;
+
+  /*
+   * This file contains all track properties that are used in
+   * player.js, tech.js, html5.js and possibly other techs in the future.
+   */
+
+  var NORMAL = {
+    audio: {
+      ListClass: AudioTrackList,
+      TrackClass: AudioTrack,
+      capitalName: 'Audio'
+    },
+    video: {
+      ListClass: VideoTrackList,
+      TrackClass: VideoTrack,
+      capitalName: 'Video'
+    },
+    text: {
+      ListClass: TextTrackList,
+      TrackClass: TextTrack,
+      capitalName: 'Text'
+    }
+  };
+
+  Object.keys(NORMAL).forEach(function (type) {
+    NORMAL[type].getterName = type + 'Tracks';
+    NORMAL[type].privateName = type + 'Tracks_';
+  });
+
+  var REMOTE = {
+    remoteText: {
+      ListClass: TextTrackList,
+      TrackClass: TextTrack,
+      capitalName: 'RemoteText',
+      getterName: 'remoteTextTracks',
+      privateName: 'remoteTextTracks_'
+    },
+    remoteTextEl: {
+      ListClass: HtmlTrackElementList,
+      TrackClass: HTMLTrackElement,
+      capitalName: 'RemoteTextTrackEls',
+      getterName: 'remoteTextTrackEls',
+      privateName: 'remoteTextTrackEls_'
+    }
+  };
+
+  var ALL = mergeOptions(NORMAL, REMOTE);
+
+  REMOTE.names = Object.keys(REMOTE);
+  NORMAL.names = Object.keys(NORMAL);
+  ALL.names = [].concat(REMOTE.names).concat(NORMAL.names);
+
+  /**
+   * Copyright 2013 vtt.js Contributors
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *   http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   */
+
+  /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+  /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+  var _objCreate = Object.create || function () {
+    function F() {
+    }
+
+    return function (o) {
+      if (arguments.length !== 1) {
+        throw new Error('Object.create shim only accepts one parameter.');
+      }
+      F.prototype = o;
+      return new F();
+    };
+  }();
+
+  // Creates a new ParserError object from an errorData object. The errorData
+  // object should have default code and message properties. The default message
+  // property can be overriden by passing in a message parameter.
+  // See ParsingError.Errors below for acceptable errors.
+  function ParsingError(errorData, message) {
+    this.name = "ParsingError";
+    this.code = errorData.code;
+    this.message = message || errorData.message;
+  }
+
+  ParsingError.prototype = _objCreate(Error.prototype);
+  ParsingError.prototype.constructor = ParsingError;
+
+  // ParsingError metadata for acceptable ParsingErrors.
+  ParsingError.Errors = {
+    BadSignature: {
+      code: 0,
+      message: "Malformed WebVTT signature."
+    },
+    BadTimeStamp: {
+      code: 1,
+      message: "Malformed time stamp."
+    }
+  };
+
+  // Try to parse input as a time stamp.
+  function parseTimeStamp(input) {
+
+    function computeSeconds(h, m, s, f) {
+      return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;
+    }
+
+    var m = input.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);
+    if (!m) {
+      return null;
+    }
+
+    if (m[3]) {
+      // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]
+      return computeSeconds(m[1], m[2], m[3].replace(":", ""), m[4]);
+    } else if (m[1] > 59) {
+      // Timestamp takes the form of [hours]:[minutes].[milliseconds]
+      // First position is hours as it's over 59.
+      return computeSeconds(m[1], m[2], 0, m[4]);
+    } else {
+      // Timestamp takes the form of [minutes]:[seconds].[milliseconds]
+      return computeSeconds(0, m[1], m[2], m[4]);
+    }
+  }
+
+  // A settings object holds key/value pairs and will ignore anything but the first
+  // assignment to a specific key.
+  function Settings() {
+    this.values = _objCreate(null);
+  }
+
+  Settings.prototype = {
+    // Only accept the first assignment to any key.
+    set: function set(k, v) {
+      if (!this.get(k) && v !== "") {
+        this.values[k] = v;
+      }
+    },
+    // Return the value for a key, or a default value.
+    // If 'defaultKey' is passed then 'dflt' is assumed to be an object with
+    // a number of possible default values as properties where 'defaultKey' is
+    // the key of the property that will be chosen; otherwise it's assumed to be
+    // a single value.
+    get: function get(k, dflt, defaultKey) {
+      if (defaultKey) {
+        return this.has(k) ? this.values[k] : dflt[defaultKey];
+      }
+      return this.has(k) ? this.values[k] : dflt;
+    },
+    // Check whether we have a value for a key.
+    has: function has(k) {
+      return k in this.values;
+    },
+    // Accept a setting if its one of the given alternatives.
+    alt: function alt(k, v, a) {
+      for (var n = 0; n < a.length; ++n) {
+        if (v === a[n]) {
+          this.set(k, v);
+          break;
+        }
+      }
+    },
+    // Accept a setting if its a valid (signed) integer.
+    integer: function integer(k, v) {
+      if (/^-?\d+$/.test(v)) {
+        // integer
+        this.set(k, parseInt(v, 10));
+      }
+    },
+    // Accept a setting if its a valid percentage.
+    percent: function percent(k, v) {
+      var m;
+      if (m = v.match(/^([\d]{1,3})(\.[\d]*)?%$/)) {
+        v = parseFloat(v);
+        if (v >= 0 && v <= 100) {
+          this.set(k, v);
+          return true;
+        }
+      }
+      return false;
+    }
+  };
+
+  // Helper function to parse input into groups separated by 'groupDelim', and
+  // interprete each group as a key/value pair separated by 'keyValueDelim'.
+  function parseOptions(input, callback, keyValueDelim, groupDelim) {
+    var groups = groupDelim ? input.split(groupDelim) : [input];
+    for (var i in groups) {
+      if (typeof groups[i] !== "string") {
+        continue;
+      }
+      var kv = groups[i].split(keyValueDelim);
+      if (kv.length !== 2) {
+        continue;
+      }
+      var k = kv[0];
+      var v = kv[1];
+      callback(k, v);
+    }
+  }
+
+  function parseCue(input, cue, regionList) {
+    // Remember the original input if we need to throw an error.
+    var oInput = input;
+
+    // 4.1 WebVTT timestamp
+    function consumeTimeStamp() {
+      var ts = parseTimeStamp(input);
+      if (ts === null) {
+        throw new ParsingError(ParsingError.Errors.BadTimeStamp, "Malformed timestamp: " + oInput);
+      }
+      // Remove time stamp from input.
+      input = input.replace(/^[^\sa-zA-Z-]+/, "");
+      return ts;
+    }
+
+    // 4.4.2 WebVTT cue settings
+    function consumeCueSettings(input, cue) {
+      var settings = new Settings();
+
+      parseOptions(input, function (k, v) {
+        switch (k) {
+          case "region":
+            // Find the last region we parsed with the same region id.
+            for (var i = regionList.length - 1; i >= 0; i--) {
+              if (regionList[i].id === v) {
+                settings.set(k, regionList[i].region);
+                break;
+              }
+            }
+            break;
+          case "vertical":
+            settings.alt(k, v, ["rl", "lr"]);
+            break;
+          case "line":
+            var vals = v.split(","),
+              vals0 = vals[0];
+            settings.integer(k, vals0);
+            settings.percent(k, vals0) ? settings.set("snapToLines", false) : null;
+            settings.alt(k, vals0, ["auto"]);
+            if (vals.length === 2) {
+              settings.alt("lineAlign", vals[1], ["start", "middle", "end"]);
+            }
+            break;
+          case "position":
+            vals = v.split(",");
+            settings.percent(k, vals[0]);
+            if (vals.length === 2) {
+              settings.alt("positionAlign", vals[1], ["start", "middle", "end"]);
+            }
+            break;
+          case "size":
+            settings.percent(k, v);
+            break;
+          case "align":
+            settings.alt(k, v, ["start", "middle", "end", "left", "right"]);
+            break;
+        }
+      }, /:/, /\s/);
+
+      // Apply default values for any missing fields.
+      cue.region = settings.get("region", null);
+      cue.vertical = settings.get("vertical", "");
+      cue.line = settings.get("line", "auto");
+      cue.lineAlign = settings.get("lineAlign", "start");
+      cue.snapToLines = settings.get("snapToLines", true);
+      cue.size = settings.get("size", 100);
+      cue.align = settings.get("align", "middle");
+      cue.position = settings.get("position", {
+        start: 0,
+        left: 0,
+        middle: 50,
+        end: 100,
+        right: 100
+      }, cue.align);
+      cue.positionAlign = settings.get("positionAlign", {
+        start: "start",
+        left: "start",
+        middle: "middle",
+        end: "end",
+        right: "end"
+      }, cue.align);
+    }
+
+    function skipWhitespace() {
+      input = input.replace(/^\s+/, "");
+    }
+
+    // 4.1 WebVTT cue timings.
+    skipWhitespace();
+    cue.startTime = consumeTimeStamp(); // (1) collect cue start time
+    skipWhitespace();
+    if (input.substr(0, 3) !== "-->") {
+      // (3) next characters must match "-->"
+      throw new ParsingError(ParsingError.Errors.BadTimeStamp, "Malformed time stamp (time stamps must be separated by '-->'): " + oInput);
+    }
+    input = input.substr(3);
+    skipWhitespace();
+    cue.endTime = consumeTimeStamp(); // (5) collect cue end time
+
+    // 4.1 WebVTT cue settings list.
+    skipWhitespace();
+    consumeCueSettings(input, cue);
+  }
+
+  var ESCAPE = {
+    "&amp;": "&",
+    "&lt;": "<",
+    "&gt;": ">",
+    "&lrm;": "\u200E",
+    "&rlm;": "\u200F",
+    "&nbsp;": "\xA0"
+  };
+
+  var TAG_NAME = {
+    c: "span",
+    i: "i",
+    b: "b",
+    u: "u",
+    ruby: "ruby",
+    rt: "rt",
+    v: "span",
+    lang: "span"
+  };
+
+  var TAG_ANNOTATION = {
+    v: "title",
+    lang: "lang"
+  };
+
+  var NEEDS_PARENT = {
+    rt: "ruby"
+  };
+
+  // Parse content into a document fragment.
+  function parseContent(window, input) {
+    function nextToken() {
+      // Check for end-of-string.
+      if (!input) {
+        return null;
+      }
+
+      // Consume 'n' characters from the input.
+      function consume(result) {
+        input = input.substr(result.length);
+        return result;
+      }
+
+      var m = input.match(/^([^<]*)(<[^>]*>?)?/);
+      // If there is some text before the next tag, return it, otherwise return
+      // the tag.
+      return consume(m[1] ? m[1] : m[2]);
+    }
+
+    // Unescape a string 's'.
+    function unescape1(e) {
+      return ESCAPE[e];
+    }
+
+    function unescape(s) {
+      while (m = s.match(/&(amp|lt|gt|lrm|rlm|nbsp);/)) {
+        s = s.replace(m[0], unescape1);
+      }
+      return s;
+    }
+
+    function shouldAdd(current, element) {
+      return !NEEDS_PARENT[element.localName] || NEEDS_PARENT[element.localName] === current.localName;
+    }
+
+    // Create an element for this tag.
+    function createElement(type, annotation) {
+      var tagName = TAG_NAME[type];
+      if (!tagName) {
+        return null;
+      }
+      var element = window.document.createElement(tagName);
+      element.localName = tagName;
+      var name = TAG_ANNOTATION[type];
+      if (name && annotation) {
+        element[name] = annotation.trim();
+      }
+      return element;
+    }
+
+    var rootDiv = window.document.createElement("div"),
+      current = rootDiv,
+      t,
+      tagStack = [];
+
+    while ((t = nextToken()) !== null) {
+      if (t[0] === '<') {
+        if (t[1] === "/") {
+          // If the closing tag matches, move back up to the parent node.
+          if (tagStack.length && tagStack[tagStack.length - 1] === t.substr(2).replace(">", "")) {
+            tagStack.pop();
+            current = current.parentNode;
+          }
+          // Otherwise just ignore the end tag.
+          continue;
+        }
+        var ts = parseTimeStamp(t.substr(1, t.length - 2));
+        var node;
+        if (ts) {
+          // Timestamps are lead nodes as well.
+          node = window.document.createProcessingInstruction("timestamp", ts);
+          current.appendChild(node);
+          continue;
+        }
+        var m = t.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);
+        // If we can't parse the tag, skip to the next tag.
+        if (!m) {
+          continue;
+        }
+        // Try to construct an element, and ignore the tag if we couldn't.
+        node = createElement(m[1], m[3]);
+        if (!node) {
+          continue;
+        }
+        // Determine if the tag should be added based on the context of where it
+        // is placed in the cuetext.
+        if (!shouldAdd(current, node)) {
+          continue;
+        }
+        // Set the class list (as a list of classes, separated by space).
+        if (m[2]) {
+          node.className = m[2].substr(1).replace('.', ' ');
+        }
+        // Append the node to the current node, and enter the scope of the new
+        // node.
+        tagStack.push(m[1]);
+        current.appendChild(node);
+        current = node;
+        continue;
+      }
+
+      // Text nodes are leaf nodes.
+      current.appendChild(window.document.createTextNode(unescape(t)));
+    }
+
+    return rootDiv;
+  }
+
+  // This is a list of all the Unicode characters that have a strong
+  // right-to-left category. What this means is that these characters are
+  // written right-to-left for sure. It was generated by pulling all the strong
+  // right-to-left characters out of the Unicode data table. That table can
+  // found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
+  var strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6], [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d], [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6], [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5], [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815], [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858], [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f], [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c], [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1], [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc], [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808], [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855], [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f], [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13], [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58], [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72], [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f], [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32], [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42], [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f], [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59], [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62], [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77], [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b], [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];
+
+  function isStrongRTLChar(charCode) {
+    for (var i = 0; i < strongRTLRanges.length; i++) {
+      var currentRange = strongRTLRanges[i];
+      if (charCode >= currentRange[0] && charCode <= currentRange[1]) {
+        return true;
+      }
+    }
+
+    return false;
+  }
+
+  function determineBidi(cueDiv) {
+    var nodeStack = [],
+      text = "",
+      charCode;
+
+    if (!cueDiv || !cueDiv.childNodes) {
+      return "ltr";
+    }
+
+    function pushNodes(nodeStack, node) {
+      for (var i = node.childNodes.length - 1; i >= 0; i--) {
+        nodeStack.push(node.childNodes[i]);
+      }
+    }
+
+    function nextTextNode(nodeStack) {
+      if (!nodeStack || !nodeStack.length) {
+        return null;
+      }
+
+      var node = nodeStack.pop(),
+        text = node.textContent || node.innerText;
+      if (text) {
+        // TODO: This should match all unicode type B characters (paragraph
+        // separator characters). See issue #115.
+        var m = text.match(/^.*(\n|\r)/);
+        if (m) {
+          nodeStack.length = 0;
+          return m[0];
+        }
+        return text;
+      }
+      if (node.tagName === "ruby") {
+        return nextTextNode(nodeStack);
+      }
+      if (node.childNodes) {
+        pushNodes(nodeStack, node);
+        return nextTextNode(nodeStack);
+      }
+    }
+
+    pushNodes(nodeStack, cueDiv);
+    while (text = nextTextNode(nodeStack)) {
+      for (var i = 0; i < text.length; i++) {
+        charCode = text.charCodeAt(i);
+        if (isStrongRTLChar(charCode)) {
+          return "rtl";
+        }
+      }
+    }
+    return "ltr";
+  }
+
+  function computeLinePos(cue) {
+    if (typeof cue.line === "number" && (cue.snapToLines || cue.line >= 0 && cue.line <= 100)) {
+      return cue.line;
+    }
+    if (!cue.track || !cue.track.textTrackList || !cue.track.textTrackList.mediaElement) {
+      return -1;
+    }
+    var track = cue.track,
+      trackList = track.textTrackList,
+      count = 0;
+    for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {
+      if (trackList[i].mode === "showing") {
+        count++;
+      }
+    }
+    return ++count * -1;
+  }
+
+  function StyleBox() {
+  }
+
+  // Apply styles to a div. If there is no div passed then it defaults to the
+  // div on 'this'.
+  StyleBox.prototype.applyStyles = function (styles, div) {
+    div = div || this.div;
+    for (var prop in styles) {
+      if (styles.hasOwnProperty(prop)) {
+        div.style[prop] = styles[prop];
+      }
+    }
+  };
+
+  StyleBox.prototype.formatStyle = function (val, unit) {
+    return val === 0 ? 0 : val + unit;
+  };
+
+  // Constructs the computed display state of the cue (a div). Places the div
+  // into the overlay which should be a block level element (usually a div).
+  function CueStyleBox(window, cue, styleOptions) {
+    StyleBox.call(this);
+    this.cue = cue;
+
+    // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will
+    // have inline positioning and will function as the cue background box.
+    this.cueDiv = parseContent(window, cue.text);
+    var styles = {
+      color: "rgba(255, 255, 255, 1)",
+      backgroundColor: "rgba(0, 0, 0, 0.8)",
+      position: "relative",
+      left: 0,
+      right: 0,
+      top: 0,
+      bottom: 0,
+      display: "inline",
+      writingMode: cue.vertical === "" ? "horizontal-tb" : cue.vertical === "lr" ? "vertical-lr" : "vertical-rl",
+      unicodeBidi: "plaintext"
+    };
+
+    this.applyStyles(styles, this.cueDiv);
+
+    // Create an absolutely positioned div that will be used to position the cue
+    // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS
+    // mirrors of them except "middle" which is "center" in CSS.
+    this.div = window.document.createElement("div");
+    styles = {
+      direction: determineBidi(this.cueDiv),
+      writingMode: cue.vertical === "" ? "horizontal-tb" : cue.vertical === "lr" ? "vertical-lr" : "vertical-rl",
+      unicodeBidi: "plaintext",
+      textAlign: cue.align === "middle" ? "center" : cue.align,
+      font: styleOptions.font,
+      whiteSpace: "pre-line",
+      position: "absolute"
+    };
+
+    this.applyStyles(styles);
+    this.div.appendChild(this.cueDiv);
+
+    // Calculate the distance from the reference edge of the viewport to the text
+    // position of the cue box. The reference edge will be resolved later when
+    // the box orientation styles are applied.
+    var textPos = 0;
+    switch (cue.positionAlign) {
+      case "start":
+        textPos = cue.position;
+        break;
+      case "middle":
+        textPos = cue.position - cue.size / 2;
+        break;
+      case "end":
+        textPos = cue.position - cue.size;
+        break;
+    }
+
+    // Horizontal box orientation; textPos is the distance from the left edge of the
+    // area to the left edge of the box and cue.size is the distance extending to
+    // the right from there.
+    if (cue.vertical === "") {
+      this.applyStyles({
+        left: this.formatStyle(textPos, "%"),
+        width: this.formatStyle(cue.size, "%")
+      });
+      // Vertical box orientation; textPos is the distance from the top edge of the
+      // area to the top edge of the box and cue.size is the height extending
+      // downwards from there.
+    } else {
+      this.applyStyles({
+        top: this.formatStyle(textPos, "%"),
+        height: this.formatStyle(cue.size, "%")
+      });
+    }
+
+    this.move = function (box) {
+      this.applyStyles({
+        top: this.formatStyle(box.top, "px"),
+        bottom: this.formatStyle(box.bottom, "px"),
+        left: this.formatStyle(box.left, "px"),
+        right: this.formatStyle(box.right, "px"),
+        height: this.formatStyle(box.height, "px"),
+        width: this.formatStyle(box.width, "px")
+      });
+    };
+  }
+
+  CueStyleBox.prototype = _objCreate(StyleBox.prototype);
+  CueStyleBox.prototype.constructor = CueStyleBox;
+
+  // Represents the co-ordinates of an Element in a way that we can easily
+  // compute things with such as if it overlaps or intersects with another Element.
+  // Can initialize it with either a StyleBox or another BoxPosition.
+  function BoxPosition(obj) {
+    // Either a BoxPosition was passed in and we need to copy it, or a StyleBox
+    // was passed in and we need to copy the results of 'getBoundingClientRect'
+    // as the object returned is readonly. All co-ordinate values are in reference
+    // to the viewport origin (top left).
+    var lh, height, width, top;
+    if (obj.div) {
+      height = obj.div.offsetHeight;
+      width = obj.div.offsetWidth;
+      top = obj.div.offsetTop;
+
+      var rects = (rects = obj.div.childNodes) && (rects = rects[0]) && rects.getClientRects && rects.getClientRects();
+      obj = obj.div.getBoundingClientRect();
+      // In certain cases the outter div will be slightly larger then the sum of
+      // the inner div's lines. This could be due to bold text, etc, on some platforms.
+      // In this case we should get the average line height and use that. This will
+      // result in the desired behaviour.
+      lh = rects ? Math.max(rects[0] && rects[0].height || 0, obj.height / rects.length) : 0;
+    }
+    this.left = obj.left;
+    this.right = obj.right;
+    this.top = obj.top || top;
+    this.height = obj.height || height;
+    this.bottom = obj.bottom || top + (obj.height || height);
+    this.width = obj.width || width;
+    this.lineHeight = lh !== undefined ? lh : obj.lineHeight;
+  }
+
+  // Move the box along a particular axis. Optionally pass in an amount to move
+  // the box. If no amount is passed then the default is the line height of the
+  // box.
+  BoxPosition.prototype.move = function (axis, toMove) {
+    toMove = toMove !== undefined ? toMove : this.lineHeight;
+    switch (axis) {
+      case "+x":
+        this.left += toMove;
+        this.right += toMove;
+        break;
+      case "-x":
+        this.left -= toMove;
+        this.right -= toMove;
+        break;
+      case "+y":
+        this.top += toMove;
+        this.bottom += toMove;
+        break;
+      case "-y":
+        this.top -= toMove;
+        this.bottom -= toMove;
+        break;
+    }
+  };
+
+  // Check if this box overlaps another box, b2.
+  BoxPosition.prototype.overlaps = function (b2) {
+    return this.left < b2.right && this.right > b2.left && this.top < b2.bottom && this.bottom > b2.top;
+  };
+
+  // Check if this box overlaps any other boxes in boxes.
+  BoxPosition.prototype.overlapsAny = function (boxes) {
+    for (var i = 0; i < boxes.length; i++) {
+      if (this.overlaps(boxes[i])) {
+        return true;
+      }
+    }
+    return false;
+  };
+
+  // Check if this box is within another box.
+  BoxPosition.prototype.within = function (container) {
+    return this.top >= container.top && this.bottom <= container.bottom && this.left >= container.left && this.right <= container.right;
+  };
+
+  // Check if this box is entirely within the container or it is overlapping
+  // on the edge opposite of the axis direction passed. For example, if "+x" is
+  // passed and the box is overlapping on the left edge of the container, then
+  // return true.
+  BoxPosition.prototype.overlapsOppositeAxis = function (container, axis) {
+    switch (axis) {
+      case "+x":
+        return this.left < container.left;
+      case "-x":
+        return this.right > container.right;
+      case "+y":
+        return this.top < container.top;
+      case "-y":
+        return this.bottom > container.bottom;
+    }
+  };
+
+  // Find the percentage of the area that this box is overlapping with another
+  // box.
+  BoxPosition.prototype.intersectPercentage = function (b2) {
+    var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),
+      y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),
+      intersectArea = x * y;
+    return intersectArea / (this.height * this.width);
+  };
+
+  // Convert the positions from this box to CSS compatible positions using
+  // the reference container's positions. This has to be done because this
+  // box's positions are in reference to the viewport origin, whereas, CSS
+  // values are in referecne to their respective edges.
+  BoxPosition.prototype.toCSSCompatValues = function (reference) {
+    return {
+      top: this.top - reference.top,
+      bottom: reference.bottom - this.bottom,
+      left: this.left - reference.left,
+      right: reference.right - this.right,
+      height: this.height,
+      width: this.width
+    };
+  };
+
+  // Get an object that represents the box's position without anything extra.
+  // Can pass a StyleBox, HTMLElement, or another BoxPositon.
+  BoxPosition.getSimpleBoxPosition = function (obj) {
+    var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;
+    var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;
+    var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;
+
+    obj = obj.div ? obj.div.getBoundingClientRect() : obj.tagName ? obj.getBoundingClientRect() : obj;
+    var ret = {
+      left: obj.left,
+      right: obj.right,
+      top: obj.top || top,
+      height: obj.height || height,
+      bottom: obj.bottom || top + (obj.height || height),
+      width: obj.width || width
+    };
+    return ret;
+  };
+
+  // Move a StyleBox to its specified, or next best, position. The containerBox
+  // is the box that contains the StyleBox, such as a div. boxPositions are
+  // a list of other boxes that the styleBox can't overlap with.
+  function moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {
+
+    // Find the best position for a cue box, b, on the video. The axis parameter
+    // is a list of axis, the order of which, it will move the box along. For example:
+    // Passing ["+x", "-x"] will move the box first along the x axis in the positive
+    // direction. If it doesn't find a good position for it there it will then move
+    // it along the x axis in the negative direction.
+    function findBestPosition(b, axis) {
+      var bestPosition,
+        specifiedPosition = new BoxPosition(b),
+        percentage = 1; // Highest possible so the first thing we get is better.
+
+      for (var i = 0; i < axis.length; i++) {
+        while (b.overlapsOppositeAxis(containerBox, axis[i]) || b.within(containerBox) && b.overlapsAny(boxPositions)) {
+          b.move(axis[i]);
+        }
+        // We found a spot where we aren't overlapping anything. This is our
+        // best position.
+        if (b.within(containerBox)) {
+          return b;
+        }
+        var p = b.intersectPercentage(containerBox);
+        // If we're outside the container box less then we were on our last try
+        // then remember this position as the best position.
+        if (percentage > p) {
+          bestPosition = new BoxPosition(b);
+          percentage = p;
+        }
+        // Reset the box position to the specified position.
+        b = new BoxPosition(specifiedPosition);
+      }
+      return bestPosition || specifiedPosition;
+    }
+
+    var boxPosition = new BoxPosition(styleBox),
+      cue = styleBox.cue,
+      linePos = computeLinePos(cue),
+      axis = [];
+
+    // If we have a line number to align the cue to.
+    if (cue.snapToLines) {
+      var size;
+      switch (cue.vertical) {
+        case "":
+          axis = ["+y", "-y"];
+          size = "height";
+          break;
+        case "rl":
+          axis = ["+x", "-x"];
+          size = "width";
+          break;
+        case "lr":
+          axis = ["-x", "+x"];
+          size = "width";
+          break;
+      }
+
+      var step = boxPosition.lineHeight,
+        position = step * Math.round(linePos),
+        maxPosition = containerBox[size] + step,
+        initialAxis = axis[0];
+
+      // If the specified intial position is greater then the max position then
+      // clamp the box to the amount of steps it would take for the box to
+      // reach the max position.
+      if (Math.abs(position) > maxPosition) {
+        position = position < 0 ? -1 : 1;
+        position *= Math.ceil(maxPosition / step) * step;
+      }
+
+      // If computed line position returns negative then line numbers are
+      // relative to the bottom of the video instead of the top. Therefore, we
+      // need to increase our initial position by the length or width of the
+      // video, depending on the writing direction, and reverse our axis directions.
+      if (linePos < 0) {
+        position += cue.vertical === "" ? containerBox.height : containerBox.width;
+        axis = axis.reverse();
+      }
+
+      // Move the box to the specified position. This may not be its best
+      // position.
+      boxPosition.move(initialAxis, position);
+    } else {
+      // If we have a percentage line value for the cue.
+      var calculatedPercentage = boxPosition.lineHeight / containerBox.height * 100;
+
+      switch (cue.lineAlign) {
+        case "middle":
+          linePos -= calculatedPercentage / 2;
+          break;
+        case "end":
+          linePos -= calculatedPercentage;
+          break;
+      }
+
+      // Apply initial line position to the cue box.
+      switch (cue.vertical) {
+        case "":
+          styleBox.applyStyles({
+            top: styleBox.formatStyle(linePos, "%")
+          });
+          break;
+        case "rl":
+          styleBox.applyStyles({
+            left: styleBox.formatStyle(linePos, "%")
+          });
+          break;
+        case "lr":
+          styleBox.applyStyles({
+            right: styleBox.formatStyle(linePos, "%")
+          });
+          break;
+      }
+
+      axis = ["+y", "-x", "+x", "-y"];
+
+      // Get the box position again after we've applied the specified positioning
+      // to it.
+      boxPosition = new BoxPosition(styleBox);
+    }
+
+    var bestPosition = findBestPosition(boxPosition, axis);
+    styleBox.move(bestPosition.toCSSCompatValues(containerBox));
+  }
+
+  function WebVTT$1() {
+  }
+
+  // Nothing
+
+
+  // Helper to allow strings to be decoded instead of the default binary utf8 data.
+  WebVTT$1.StringDecoder = function () {
+    return {
+      decode: function decode(data) {
+        if (!data) {
+          return "";
+        }
+        if (typeof data !== "string") {
+          throw new Error("Error - expected string data.");
+        }
+        return decodeURIComponent(encodeURIComponent(data));
+      }
+    };
+  };
+
+  WebVTT$1.convertCueToDOMTree = function (window, cuetext) {
+    if (!window || !cuetext) {
+      return null;
+    }
+    return parseContent(window, cuetext);
+  };
+
+  var FONT_SIZE_PERCENT = 0.05;
+  var FONT_STYLE = "sans-serif";
+  var CUE_BACKGROUND_PADDING = "1.5%";
+
+  // Runs the processing model over the cues and regions passed to it.
+  // @param overlay A block level element (usually a div) that the computed cues
+  //                and regions will be placed into.
+  WebVTT$1.processCues = function (window, cues, overlay) {
+    if (!window || !cues || !overlay) {
+      return null;
+    }
+
+    // Remove all previous children.
+    while (overlay.firstChild) {
+      overlay.removeChild(overlay.firstChild);
+    }
+
+    var paddedOverlay = window.document.createElement("div");
+    paddedOverlay.style.position = "absolute";
+    paddedOverlay.style.left = "0";
+    paddedOverlay.style.right = "0";
+    paddedOverlay.style.top = "0";
+    paddedOverlay.style.bottom = "0";
+    paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;
+    overlay.appendChild(paddedOverlay);
+
+    // Determine if we need to compute the display states of the cues. This could
+    // be the case if a cue's state has been changed since the last computation or
+    // if it has not been computed yet.
+    function shouldCompute(cues) {
+      for (var i = 0; i < cues.length; i++) {
+        if (cues[i].hasBeenReset || !cues[i].displayState) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    // We don't need to recompute the cues' display states. Just reuse them.
+    if (!shouldCompute(cues)) {
+      for (var i = 0; i < cues.length; i++) {
+        paddedOverlay.appendChild(cues[i].displayState);
+      }
+      return;
+    }
+
+    var boxPositions = [],
+      containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),
+      fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;
+    var styleOptions = {
+      font: fontSize + "px " + FONT_STYLE
+    };
+
+    (function () {
+      var styleBox, cue;
+
+      for (var i = 0; i < cues.length; i++) {
+        cue = cues[i];
+
+        // Compute the intial position and styles of the cue div.
+        styleBox = new CueStyleBox(window, cue, styleOptions);
+        paddedOverlay.appendChild(styleBox.div);
+
+        // Move the cue div to it's correct line position.
+        moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);
+
+        // Remember the computed div so that we don't have to recompute it later
+        // if we don't have too.
+        cue.displayState = styleBox.div;
+
+        boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));
+      }
+    })();
+  };
+
+  WebVTT$1.Parser = function (window, vttjs, decoder) {
+    if (!decoder) {
+      decoder = vttjs;
+      vttjs = {};
+    }
+    if (!vttjs) {
+      vttjs = {};
+    }
+
+    this.window = window;
+    this.vttjs = vttjs;
+    this.state = "INITIAL";
+    this.buffer = "";
+    this.decoder = decoder || new TextDecoder("utf8");
+    this.regionList = [];
+  };
+
+  WebVTT$1.Parser.prototype = {
+    // If the error is a ParsingError then report it to the consumer if
+    // possible. If it's not a ParsingError then throw it like normal.
+    reportOrThrowError: function reportOrThrowError(e) {
+      if (e instanceof ParsingError) {
+        this.onparsingerror && this.onparsingerror(e);
+      } else {
+        throw e;
+      }
+    },
+    parse: function parse(data) {
+      var self = this;
+
+      // If there is no data then we won't decode it, but will just try to parse
+      // whatever is in buffer already. This may occur in circumstances, for
+      // example when flush() is called.
+      if (data) {
+        // Try to decode the data that we received.
+        self.buffer += self.decoder.decode(data, {stream: true});
+      }
+
+      function collectNextLine() {
+        var buffer = self.buffer;
+        var pos = 0;
+        while (pos < buffer.length && buffer[pos] !== '\r' && buffer[pos] !== '\n') {
+          ++pos;
+        }
+        var line = buffer.substr(0, pos);
+        // Advance the buffer early in case we fail below.
+        if (buffer[pos] === '\r') {
+          ++pos;
+        }
+        if (buffer[pos] === '\n') {
+          ++pos;
+        }
+        self.buffer = buffer.substr(pos);
+        return line;
+      }
+
+      // 3.4 WebVTT region and WebVTT region settings syntax
+      function parseRegion(input) {
+        var settings = new Settings();
+
+        parseOptions(input, function (k, v) {
+          switch (k) {
+            case "id":
+              settings.set(k, v);
+              break;
+            case "width":
+              settings.percent(k, v);
+              break;
+            case "lines":
+              settings.integer(k, v);
+              break;
+            case "regionanchor":
+            case "viewportanchor":
+              var xy = v.split(',');
+              if (xy.length !== 2) {
+                break;
+              }
+              // We have to make sure both x and y parse, so use a temporary
+              // settings object here.
+              var anchor = new Settings();
+              anchor.percent("x", xy[0]);
+              anchor.percent("y", xy[1]);
+              if (!anchor.has("x") || !anchor.has("y")) {
+                break;
+              }
+              settings.set(k + "X", anchor.get("x"));
+              settings.set(k + "Y", anchor.get("y"));
+              break;
+            case "scroll":
+              settings.alt(k, v, ["up"]);
+              break;
+          }
+        }, /=/, /\s/);
+
+        // Create the region, using default values for any values that were not
+        // specified.
+        if (settings.has("id")) {
+          var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();
+          region.width = settings.get("width", 100);
+          region.lines = settings.get("lines", 3);
+          region.regionAnchorX = settings.get("regionanchorX", 0);
+          region.regionAnchorY = settings.get("regionanchorY", 100);
+          region.viewportAnchorX = settings.get("viewportanchorX", 0);
+          region.viewportAnchorY = settings.get("viewportanchorY", 100);
+          region.scroll = settings.get("scroll", "");
+          // Register the region.
+          self.onregion && self.onregion(region);
+          // Remember the VTTRegion for later in case we parse any VTTCues that
+          // reference it.
+          self.regionList.push({
+            id: settings.get("id"),
+            region: region
+          });
+        }
+      }
+
+      // draft-pantos-http-live-streaming-20
+      // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5
+      // 3.5 WebVTT
+      function parseTimestampMap(input) {
+        var settings = new Settings();
+
+        parseOptions(input, function (k, v) {
+          switch (k) {
+            case "MPEGT":
+              settings.integer(k + 'S', v);
+              break;
+            case "LOCA":
+              settings.set(k + 'L', parseTimeStamp(v));
+              break;
+          }
+        }, /[^\d]:/, /,/);
+
+        self.ontimestampmap && self.ontimestampmap({
+          "MPEGTS": settings.get("MPEGTS"),
+          "LOCAL": settings.get("LOCAL")
+        });
+      }
+
+      // 3.2 WebVTT metadata header syntax
+      function parseHeader(input) {
+        if (input.match(/X-TIMESTAMP-MAP/)) {
+          // This line contains HLS X-TIMESTAMP-MAP metadata
+          parseOptions(input, function (k, v) {
+            switch (k) {
+              case "X-TIMESTAMP-MAP":
+                parseTimestampMap(v);
+                break;
+            }
+          }, /=/);
+        } else {
+          parseOptions(input, function (k, v) {
+            switch (k) {
+              case "Region":
+                // 3.3 WebVTT region metadata header syntax
+                parseRegion(v);
+                break;
+            }
+          }, /:/);
+        }
+      }
+
+      // 5.1 WebVTT file parsing.
+      try {
+        var line;
+        if (self.state === "INITIAL") {
+          // We can't start parsing until we have the first line.
+          if (!/\r\n|\n/.test(self.buffer)) {
+            return this;
+          }
+
+          line = collectNextLine();
+
+          var m = line.match(/^WEBVTT([ \t].*)?$/);
+          if (!m || !m[0]) {
+            throw new ParsingError(ParsingError.Errors.BadSignature);
+          }
+
+          self.state = "HEADER";
+        }
+
+        var alreadyCollectedLine = false;
+        while (self.buffer) {
+          // We can't parse a line until we have the full line.
+          if (!/\r\n|\n/.test(self.buffer)) {
+            return this;
+          }
+
+          if (!alreadyCollectedLine) {
+            line = collectNextLine();
+          } else {
+            alreadyCollectedLine = false;
+          }
+
+          switch (self.state) {
+            case "HEADER":
+              // 13-18 - Allow a header (metadata) under the WEBVTT line.
+              if (/:/.test(line)) {
+                parseHeader(line);
+              } else if (!line) {
+                // An empty line terminates the header and starts the body (cues).
+                self.state = "ID";
+              }
+              continue;
+            case "NOTE":
+              // Ignore NOTE blocks.
+              if (!line) {
+                self.state = "ID";
+              }
+              continue;
+            case "ID":
+              // Check for the start of NOTE blocks.
+              if (/^NOTE($|[ \t])/.test(line)) {
+                self.state = "NOTE";
+                break;
+              }
+              // 19-29 - Allow any number of line terminators, then initialize new cue values.
+              if (!line) {
+                continue;
+              }
+              self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, "");
+              self.state = "CUE";
+              // 30-39 - Check if self line contains an optional identifier or timing data.
+              if (line.indexOf("-->") === -1) {
+                self.cue.id = line;
+                continue;
+              }
+            // Process line as start of a cue.
+            /*falls through*/
+            case "CUE":
+              // 40 - Collect cue timings and settings.
+              try {
+                parseCue(line, self.cue, self.regionList);
+              } catch (e) {
+                self.reportOrThrowError(e);
+                // In case of an error ignore rest of the cue.
+                self.cue = null;
+                self.state = "BADCUE";
+                continue;
+              }
+              self.state = "CUETEXT";
+              continue;
+            case "CUETEXT":
+              var hasSubstring = line.indexOf("-->") !== -1;
+              // 34 - If we have an empty line then report the cue.
+              // 35 - If we have the special substring '-->' then report the cue,
+              // but do not collect the line as we need to process the current
+              // one as a new cue.
+              if (!line || hasSubstring && (alreadyCollectedLine = true)) {
+                // We are done parsing self cue.
+                self.oncue && self.oncue(self.cue);
+                self.cue = null;
+                self.state = "ID";
+                continue;
+              }
+              if (self.cue.text) {
+                self.cue.text += "\n";
+              }
+              self.cue.text += line;
+              continue;
+            case "BADCUE":
+              // BADCUE
+              // 54-62 - Collect and discard the remaining cue.
+              if (!line) {
+                self.state = "ID";
+              }
+              continue;
+          }
+        }
+      } catch (e) {
+        self.reportOrThrowError(e);
+
+        // If we are currently parsing a cue, report what we have.
+        if (self.state === "CUETEXT" && self.cue && self.oncue) {
+          self.oncue(self.cue);
+        }
+        self.cue = null;
+        // Enter BADWEBVTT state if header was not parsed correctly otherwise
+        // another exception occurred so enter BADCUE state.
+        self.state = self.state === "INITIAL" ? "BADWEBVTT" : "BADCUE";
+      }
+      return this;
+    },
+    flush: function flush() {
+      var self = this;
+      try {
+        // Finish decoding the stream.
+        self.buffer += self.decoder.decode();
+        // Synthesize the end of the current cue or region.
+        if (self.cue || self.state === "HEADER") {
+          self.buffer += "\n\n";
+          self.parse();
+        }
+        // If we've flushed, parsed, and we're still on the INITIAL state then
+        // that means we don't have enough of the stream to parse the first
+        // line.
+        if (self.state === "INITIAL") {
+          throw new ParsingError(ParsingError.Errors.BadSignature);
+        }
+      } catch (e) {
+        self.reportOrThrowError(e);
+      }
+      self.onflush && self.onflush();
+      return this;
+    }
+  };
+
+  var vtt = WebVTT$1;
+
+  var vtt$1 = /*#__PURE__*/Object.freeze({
+    default: vtt,
+    __moduleExports: vtt
+  });
+
+  /**
+   * Copyright 2013 vtt.js Contributors
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *   http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   */
+
+  var autoKeyword = "auto";
+  var directionSetting = {
+    "": 1,
+    "lr": 1,
+    "rl": 1
+  };
+  var alignSetting = {
+    "start": 1,
+    "middle": 1,
+    "end": 1,
+    "left": 1,
+    "right": 1
+  };
+
+  function findDirectionSetting(value) {
+    if (typeof value !== "string") {
+      return false;
+    }
+    var dir = directionSetting[value.toLowerCase()];
+    return dir ? value.toLowerCase() : false;
+  }
+
+  function findAlignSetting(value) {
+    if (typeof value !== "string") {
+      return false;
+    }
+    var align = alignSetting[value.toLowerCase()];
+    return align ? value.toLowerCase() : false;
+  }
+
+  function VTTCue(startTime, endTime, text) {
+    /**
+     * Shim implementation specific properties. These properties are not in
+     * the spec.
+     */
+
+    // Lets us know when the VTTCue's data has changed in such a way that we need
+    // to recompute its display state. This lets us compute its display state
+    // lazily.
+    this.hasBeenReset = false;
+
+    /**
+     * VTTCue and TextTrackCue properties
+     * http://dev.w3.org/html5/webvtt/#vttcue-interface
+     */
+
+    var _id = "";
+    var _pauseOnExit = false;
+    var _startTime = startTime;
+    var _endTime = endTime;
+    var _text = text;
+    var _region = null;
+    var _vertical = "";
+    var _snapToLines = true;
+    var _line = "auto";
+    var _lineAlign = "start";
+    var _position = 50;
+    var _positionAlign = "middle";
+    var _size = 50;
+    var _align = "middle";
+
+    Object.defineProperties(this, {
+      "id": {
+        enumerable: true,
+        get: function get() {
+          return _id;
+        },
+        set: function set(value) {
+          _id = "" + value;
+        }
+      },
+
+      "pauseOnExit": {
+        enumerable: true,
+        get: function get() {
+          return _pauseOnExit;
+        },
+        set: function set(value) {
+          _pauseOnExit = !!value;
+        }
+      },
+
+      "startTime": {
+        enumerable: true,
+        get: function get() {
+          return _startTime;
+        },
+        set: function set(value) {
+          if (typeof value !== "number") {
+            throw new TypeError("Start time must be set to a number.");
+          }
+          _startTime = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "endTime": {
+        enumerable: true,
+        get: function get() {
+          return _endTime;
+        },
+        set: function set(value) {
+          if (typeof value !== "number") {
+            throw new TypeError("End time must be set to a number.");
+          }
+          _endTime = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "text": {
+        enumerable: true,
+        get: function get() {
+          return _text;
+        },
+        set: function set(value) {
+          _text = "" + value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "region": {
+        enumerable: true,
+        get: function get() {
+          return _region;
+        },
+        set: function set(value) {
+          _region = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "vertical": {
+        enumerable: true,
+        get: function get() {
+          return _vertical;
+        },
+        set: function set(value) {
+          var setting = findDirectionSetting(value);
+          // Have to check for false because the setting an be an empty string.
+          if (setting === false) {
+            throw new SyntaxError("An invalid or illegal string was specified.");
+          }
+          _vertical = setting;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "snapToLines": {
+        enumerable: true,
+        get: function get() {
+          return _snapToLines;
+        },
+        set: function set(value) {
+          _snapToLines = !!value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "line": {
+        enumerable: true,
+        get: function get() {
+          return _line;
+        },
+        set: function set(value) {
+          if (typeof value !== "number" && value !== autoKeyword) {
+            throw new SyntaxError("An invalid number or illegal string was specified.");
+          }
+          _line = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "lineAlign": {
+        enumerable: true,
+        get: function get() {
+          return _lineAlign;
+        },
+        set: function set(value) {
+          var setting = findAlignSetting(value);
+          if (!setting) {
+            throw new SyntaxError("An invalid or illegal string was specified.");
+          }
+          _lineAlign = setting;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "position": {
+        enumerable: true,
+        get: function get() {
+          return _position;
+        },
+        set: function set(value) {
+          if (value < 0 || value > 100) {
+            throw new Error("Position must be between 0 and 100.");
+          }
+          _position = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "positionAlign": {
+        enumerable: true,
+        get: function get() {
+          return _positionAlign;
+        },
+        set: function set(value) {
+          var setting = findAlignSetting(value);
+          if (!setting) {
+            throw new SyntaxError("An invalid or illegal string was specified.");
+          }
+          _positionAlign = setting;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "size": {
+        enumerable: true,
+        get: function get() {
+          return _size;
+        },
+        set: function set(value) {
+          if (value < 0 || value > 100) {
+            throw new Error("Size must be between 0 and 100.");
+          }
+          _size = value;
+          this.hasBeenReset = true;
+        }
+      },
+
+      "align": {
+        enumerable: true,
+        get: function get() {
+          return _align;
+        },
+        set: function set(value) {
+          var setting = findAlignSetting(value);
+          if (!setting) {
+            throw new SyntaxError("An invalid or illegal string was specified.");
+          }
+          _align = setting;
+          this.hasBeenReset = true;
+        }
+      }
+    });
+
+    /**
+     * Other <track> spec defined properties
+     */
+
+    // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state
+    this.displayState = undefined;
+  }
+
+  /**
+   * VTTCue methods
+   */
+
+  VTTCue.prototype.getCueAsHTML = function () {
+    // Assume WebVTT.convertCueToDOMTree is on the global.
+    return WebVTT.convertCueToDOMTree(window, this.text);
+  };
+
+  var vttcue = VTTCue;
+
+  var vttcue$1 = /*#__PURE__*/Object.freeze({
+    default: vttcue,
+    __moduleExports: vttcue
+  });
+
+  /**
+   * Copyright 2013 vtt.js Contributors
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *   http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   */
+
+  var scrollSetting = {
+    "": true,
+    "up": true
+  };
+
+  function findScrollSetting(value) {
+    if (typeof value !== "string") {
+      return false;
+    }
+    var scroll = scrollSetting[value.toLowerCase()];
+    return scroll ? value.toLowerCase() : false;
+  }
+
+  function isValidPercentValue(value) {
+    return typeof value === "number" && value >= 0 && value <= 100;
+  }
+
+  // VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface
+  function VTTRegion() {
+    var _width = 100;
+    var _lines = 3;
+    var _regionAnchorX = 0;
+    var _regionAnchorY = 100;
+    var _viewportAnchorX = 0;
+    var _viewportAnchorY = 100;
+    var _scroll = "";
+
+    Object.defineProperties(this, {
+      "width": {
+        enumerable: true,
+        get: function get() {
+          return _width;
+        },
+        set: function set(value) {
+          if (!isValidPercentValue(value)) {
+            throw new Error("Width must be between 0 and 100.");
+          }
+          _width = value;
+        }
+      },
+      "lines": {
+        enumerable: true,
+        get: function get() {
+          return _lines;
+        },
+        set: function set(value) {
+          if (typeof value !== "number") {
+            throw new TypeError("Lines must be set to a number.");
+          }
+          _lines = value;
+        }
+      },
+      "regionAnchorY": {
+        enumerable: true,
+        get: function get() {
+          return _regionAnchorY;
+        },
+        set: function set(value) {
+          if (!isValidPercentValue(value)) {
+            throw new Error("RegionAnchorX must be between 0 and 100.");
+          }
+          _regionAnchorY = value;
+        }
+      },
+      "regionAnchorX": {
+        enumerable: true,
+        get: function get() {
+          return _regionAnchorX;
+        },
+        set: function set(value) {
+          if (!isValidPercentValue(value)) {
+            throw new Error("RegionAnchorY must be between 0 and 100.");
+          }
+          _regionAnchorX = value;
+        }
+      },
+      "viewportAnchorY": {
+        enumerable: true,
+        get: function get() {
+          return _viewportAnchorY;
+        },
+        set: function set(value) {
+          if (!isValidPercentValue(value)) {
+            throw new Error("ViewportAnchorY must be between 0 and 100.");
+          }
+          _viewportAnchorY = value;
+        }
+      },
+      "viewportAnchorX": {
+        enumerable: true,
+        get: function get() {
+          return _viewportAnchorX;
+        },
+        set: function set(value) {
+          if (!isValidPercentValue(value)) {
+            throw new Error("ViewportAnchorX must be between 0 and 100.");
+          }
+          _viewportAnchorX = value;
+        }
+      },
+      "scroll": {
+        enumerable: true,
+        get: function get() {
+          return _scroll;
+        },
+        set: function set(value) {
+          var setting = findScrollSetting(value);
+          // Have to check for false as an empty string is a legal value.
+          if (setting === false) {
+            throw new SyntaxError("An invalid or illegal string was specified.");
+          }
+          _scroll = setting;
+        }
+      }
+    });
+  }
+
+  var vttregion = VTTRegion;
+
+  var vttregion$1 = /*#__PURE__*/Object.freeze({
+    default: vttregion,
+    __moduleExports: vttregion
+  });
+
+  var require$$0 = (vtt$1 && vtt) || vtt$1;
+
+  var require$$1 = (vttcue$1 && vttcue) || vttcue$1;
+
+  var require$$2 = (vttregion$1 && vttregion) || vttregion$1;
+
+  var browserIndex = createCommonjsModule(function (module) {
+    /**
+     * Copyright 2013 vtt.js Contributors
+     *
+     * Licensed under the Apache License, Version 2.0 (the "License");
+     * you may not use this file except in compliance with the License.
+     * You may obtain a copy of the License at
+     *
+     *   http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
+      // Default exports for Node. Export the extended versions of VTTCue and
+      // VTTRegion in Node since we likely want the capability to convert back and
+      // forth between JSON. If we don't then it's not that big of a deal since we're
+      // off browser.
+
+
+    var vttjs = module.exports = {
+        WebVTT: require$$0,
+        VTTCue: require$$1,
+        VTTRegion: require$$2
+      };
+
+    window_1.vttjs = vttjs;
+    window_1.WebVTT = vttjs.WebVTT;
+
+    var cueShim = vttjs.VTTCue;
+    var regionShim = vttjs.VTTRegion;
+    var nativeVTTCue = window_1.VTTCue;
+    var nativeVTTRegion = window_1.VTTRegion;
+
+    vttjs.shim = function () {
+      window_1.VTTCue = cueShim;
+      window_1.VTTRegion = regionShim;
+    };
+
+    vttjs.restore = function () {
+      window_1.VTTCue = nativeVTTCue;
+      window_1.VTTRegion = nativeVTTRegion;
+    };
+
+    if (!window_1.VTTCue) {
+      vttjs.shim();
+    }
+  });
+  var browserIndex_1 = browserIndex.WebVTT;
+  var browserIndex_2 = browserIndex.VTTCue;
+  var browserIndex_3 = browserIndex.VTTRegion;
+
+  /**
+   * @file tech.js
+   */
+
+  /**
+   * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string
+   * that just contains the src url alone.
+   * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`
+   * `var SourceString = 'http://example.com/some-video.mp4';`
+   *
+   * @typedef {Object|string} Tech~SourceObject
+   *
+   * @property {string} src
+   *           The url to the source
+   *
+   * @property {string} type
+   *           The mime type of the source
+   */
+
+  /**
+   * A function used by {@link Tech} to create a new {@link TextTrack}.
+   *
+   * @private
+   *
+   * @param {Tech} self
+   *        An instance of the Tech class.
+   *
+   * @param {string} kind
+   *        `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)
+   *
+   * @param {string} [label]
+   *        Label to identify the text track
+   *
+   * @param {string} [language]
+   *        Two letter language abbreviation
+   *
+   * @param {Object} [options={}]
+   *        An object with additional text track options
+   *
+   * @return {TextTrack}
+   *          The text track that was created.
+   */
+  function createTrackHelper(self, kind, label, language) {
+    var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
+
+    var tracks = self.textTracks();
+
+    options.kind = kind;
+
+    if (label) {
+      options.label = label;
+    }
+    if (language) {
+      options.language = language;
+    }
+    options.tech = self;
+
+    var track = new ALL.text.TrackClass(options);
+
+    tracks.addTrack(track);
+
+    return track;
+  }
+
+  /**
+   * This is the base class for media playback technology controllers, such as
+   * {@link Flash} and {@link HTML5}
+   *
+   * @extends Component
+   */
+
+  var Tech = function (_Component) {
+    inherits(Tech, _Component);
+
+    /**
+     * Create an instance of this Tech.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} ready
+     *        Callback function to call when the `HTML5` Tech is ready.
+     */
+    function Tech() {
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      var ready = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
+      };
+      classCallCheck(this, Tech);
+
+      // we don't want the tech to report user activity automatically.
+      // This is done manually in addControlsListeners
+      options.reportTouchActivity = false;
+
+      // keep track of whether the current source has played at all to
+      // implement a very limited played()
+      var _this = possibleConstructorReturn(this, _Component.call(this, null, options, ready));
+
+      _this.hasStarted_ = false;
+      _this.on('playing', function () {
+        this.hasStarted_ = true;
+      });
+      _this.on('loadstart', function () {
+        this.hasStarted_ = false;
+      });
+
+      ALL.names.forEach(function (name) {
+        var props = ALL[name];
+
+        if (options && options[props.getterName]) {
+          _this[props.privateName] = options[props.getterName];
+        }
+      });
+
+      // Manually track progress in cases where the browser/flash player doesn't report it.
+      if (!_this.featuresProgressEvents) {
+        _this.manualProgressOn();
+      }
+
+      // Manually track timeupdates in cases where the browser/flash player doesn't report it.
+      if (!_this.featuresTimeupdateEvents) {
+        _this.manualTimeUpdatesOn();
+      }
+
+      ['Text', 'Audio', 'Video'].forEach(function (track) {
+        if (options['native' + track + 'Tracks'] === false) {
+          _this['featuresNative' + track + 'Tracks'] = false;
+        }
+      });
+
+      if (options.nativeCaptions === false || options.nativeTextTracks === false) {
+        _this.featuresNativeTextTracks = false;
+      } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {
+        _this.featuresNativeTextTracks = true;
+      }
+
+      if (!_this.featuresNativeTextTracks) {
+        _this.emulateTextTracks();
+      }
+
+      _this.autoRemoteTextTracks_ = new ALL.text.ListClass();
+
+      _this.initTrackListeners();
+
+      // Turn on component tap events only if not using native controls
+      if (!options.nativeControlsForTouch) {
+        _this.emitTapEvents();
+      }
+
+      if (_this.constructor) {
+        _this.name_ = _this.constructor.name || 'Unknown Tech';
+      }
+      return _this;
+    }
+
+    /**
+     * A special function to trigger source set in a way that will allow player
+     * to re-trigger if the player or tech are not ready yet.
+     *
+     * @fires Tech#sourceset
+     * @param {string} src The source string at the time of the source changing.
+     */
+
+
+    Tech.prototype.triggerSourceset = function triggerSourceset(src) {
+      var _this2 = this;
+
+      if (!this.isReady_) {
+        // on initial ready we have to trigger source set
+        // 1ms after ready so that player can watch for it.
+        this.one('ready', function () {
+          return _this2.setTimeout(function () {
+            return _this2.triggerSourceset(src);
+          }, 1);
+        });
+      }
+
+      /**
+       * Fired when the source is set on the tech causing the media element
+       * to reload.
+       *
+       * @see {@link Player#event:sourceset}
+       * @event Tech#sourceset
+       * @type {EventTarget~Event}
+       */
+      this.trigger({
+        src: src,
+        type: 'sourceset'
+      });
+    };
+
+    /* Fallbacks for unsupported event types
+    ================================================================================ */
+
+    /**
+     * Polyfill the `progress` event for browsers that don't support it natively.
+     *
+     * @see {@link Tech#trackProgress}
+     */
+
+
+    Tech.prototype.manualProgressOn = function manualProgressOn() {
+      this.on('durationchange', this.onDurationChange);
+
+      this.manualProgress = true;
+
+      // Trigger progress watching when a source begins loading
+      this.one('ready', this.trackProgress);
+    };
+
+    /**
+     * Turn off the polyfill for `progress` events that was created in
+     * {@link Tech#manualProgressOn}
+     */
+
+
+    Tech.prototype.manualProgressOff = function manualProgressOff() {
+      this.manualProgress = false;
+      this.stopTrackingProgress();
+
+      this.off('durationchange', this.onDurationChange);
+    };
+
+    /**
+     * This is used to trigger a `progress` event when the buffered percent changes. It
+     * sets an interval function that will be called every 500 milliseconds to check if the
+     * buffer end percent has changed.
+     *
+     * > This function is called by {@link Tech#manualProgressOn}
+     *
+     * @param {EventTarget~Event} event
+     *        The `ready` event that caused this to run.
+     *
+     * @listens Tech#ready
+     * @fires Tech#progress
+     */
+
+
+    Tech.prototype.trackProgress = function trackProgress(event) {
+      this.stopTrackingProgress();
+      this.progressInterval = this.setInterval(bind(this, function () {
+        // Don't trigger unless buffered amount is greater than last time
+
+        var numBufferedPercent = this.bufferedPercent();
+
+        if (this.bufferedPercent_ !== numBufferedPercent) {
+          /**
+           * See {@link Player#progress}
+           *
+           * @event Tech#progress
+           * @type {EventTarget~Event}
+           */
+          this.trigger('progress');
+        }
+
+        this.bufferedPercent_ = numBufferedPercent;
+
+        if (numBufferedPercent === 1) {
+          this.stopTrackingProgress();
+        }
+      }), 500);
+    };
+
+    /**
+     * Update our internal duration on a `durationchange` event by calling
+     * {@link Tech#duration}.
+     *
+     * @param {EventTarget~Event} event
+     *        The `durationchange` event that caused this to run.
+     *
+     * @listens Tech#durationchange
+     */
+
+
+    Tech.prototype.onDurationChange = function onDurationChange(event) {
+      this.duration_ = this.duration();
+    };
+
+    /**
+     * Get and create a `TimeRange` object for buffering.
+     *
+     * @return {TimeRange}
+     *         The time range object that was created.
+     */
+
+
+    Tech.prototype.buffered = function buffered() {
+      return createTimeRanges(0, 0);
+    };
+
+    /**
+     * Get the percentage of the current video that is currently buffered.
+     *
+     * @return {number}
+     *         A number from 0 to 1 that represents the decimal percentage of the
+     *         video that is buffered.
+     *
+     */
+
+
+    Tech.prototype.bufferedPercent = function bufferedPercent$$1() {
+      return bufferedPercent(this.buffered(), this.duration_);
+    };
+
+    /**
+     * Turn off the polyfill for `progress` events that was created in
+     * {@link Tech#manualProgressOn}
+     * Stop manually tracking progress events by clearing the interval that was set in
+     * {@link Tech#trackProgress}.
+     */
+
+
+    Tech.prototype.stopTrackingProgress = function stopTrackingProgress() {
+      this.clearInterval(this.progressInterval);
+    };
+
+    /**
+     * Polyfill the `timeupdate` event for browsers that don't support it.
+     *
+     * @see {@link Tech#trackCurrentTime}
+     */
+
+
+    Tech.prototype.manualTimeUpdatesOn = function manualTimeUpdatesOn() {
+      this.manualTimeUpdates = true;
+
+      this.on('play', this.trackCurrentTime);
+      this.on('pause', this.stopTrackingCurrentTime);
+    };
+
+    /**
+     * Turn off the polyfill for `timeupdate` events that was created in
+     * {@link Tech#manualTimeUpdatesOn}
+     */
+
+
+    Tech.prototype.manualTimeUpdatesOff = function manualTimeUpdatesOff() {
+      this.manualTimeUpdates = false;
+      this.stopTrackingCurrentTime();
+      this.off('play', this.trackCurrentTime);
+      this.off('pause', this.stopTrackingCurrentTime);
+    };
+
+    /**
+     * Sets up an interval function to track current time and trigger `timeupdate` every
+     * 250 milliseconds.
+     *
+     * @listens Tech#play
+     * @triggers Tech#timeupdate
+     */
+
+
+    Tech.prototype.trackCurrentTime = function trackCurrentTime() {
+      if (this.currentTimeInterval) {
+        this.stopTrackingCurrentTime();
+      }
+      this.currentTimeInterval = this.setInterval(function () {
+        /**
+         * Triggered at an interval of 250ms to indicated that time is passing in the video.
+         *
+         * @event Tech#timeupdate
+         * @type {EventTarget~Event}
+         */
+        this.trigger({type: 'timeupdate', target: this, manuallyTriggered: true});
+
+        // 42 = 24 fps // 250 is what Webkit uses // FF uses 15
+      }, 250);
+    };
+
+    /**
+     * Stop the interval function created in {@link Tech#trackCurrentTime} so that the
+     * `timeupdate` event is no longer triggered.
+     *
+     * @listens {Tech#pause}
+     */
+
+
+    Tech.prototype.stopTrackingCurrentTime = function stopTrackingCurrentTime() {
+      this.clearInterval(this.currentTimeInterval);
+
+      // #1002 - if the video ends right before the next timeupdate would happen,
+      // the progress bar won't make it all the way to the end
+      this.trigger({type: 'timeupdate', target: this, manuallyTriggered: true});
+    };
+
+    /**
+     * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},
+     * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.
+     *
+     * @fires Component#dispose
+     */
+
+
+    Tech.prototype.dispose = function dispose() {
+
+      // clear out all tracks because we can't reuse them between techs
+      this.clearTracks(NORMAL.names);
+
+      // Turn off any manual progress or timeupdate tracking
+      if (this.manualProgress) {
+        this.manualProgressOff();
+      }
+
+      if (this.manualTimeUpdates) {
+        this.manualTimeUpdatesOff();
+      }
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Clear out a single `TrackList` or an array of `TrackLists` given their names.
+     *
+     * > Note: Techs without source handlers should call this between sources for `video`
+     *         & `audio` tracks. You don't want to use them between tracks!
+     *
+     * @param {string[]|string} types
+     *        TrackList names to clear, valid names are `video`, `audio`, and
+     *        `text`.
+     */
+
+
+    Tech.prototype.clearTracks = function clearTracks(types) {
+      var _this3 = this;
+
+      types = [].concat(types);
+      // clear out all tracks because we can't reuse them between techs
+      types.forEach(function (type) {
+        var list = _this3[type + 'Tracks']() || [];
+        var i = list.length;
+
+        while (i--) {
+          var track = list[i];
+
+          if (type === 'text') {
+            _this3.removeRemoteTextTrack(track);
+          }
+          list.removeTrack(track);
+        }
+      });
+    };
+
+    /**
+     * Remove any TextTracks added via addRemoteTextTrack that are
+     * flagged for automatic garbage collection
+     */
+
+
+    Tech.prototype.cleanupAutoTextTracks = function cleanupAutoTextTracks() {
+      var list = this.autoRemoteTextTracks_ || [];
+      var i = list.length;
+
+      while (i--) {
+        var track = list[i];
+
+        this.removeRemoteTextTrack(track);
+      }
+    };
+
+    /**
+     * Reset the tech, which will removes all sources and reset the internal readyState.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.reset = function reset() {
+    };
+
+    /**
+     * Get or set an error on the Tech.
+     *
+     * @param {MediaError} [err]
+     *        Error to set on the Tech
+     *
+     * @return {MediaError|null}
+     *         The current error object on the tech, or null if there isn't one.
+     */
+
+
+    Tech.prototype.error = function error(err) {
+      if (err !== undefined) {
+        this.error_ = new MediaError(err);
+        this.trigger('error');
+      }
+      return this.error_;
+    };
+
+    /**
+     * Returns the `TimeRange`s that have been played through for the current source.
+     *
+     * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.
+     *         It only checks whether the source has played at all or not.
+     *
+     * @return {TimeRange}
+     *         - A single time range if this video has played
+     *         - An empty set of ranges if not.
+     */
+
+
+    Tech.prototype.played = function played() {
+      if (this.hasStarted_) {
+        return createTimeRanges(0, 0);
+      }
+      return createTimeRanges();
+    };
+
+    /**
+     * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was
+     * previously called.
+     *
+     * @fires Tech#timeupdate
+     */
+
+
+    Tech.prototype.setCurrentTime = function setCurrentTime() {
+      // improve the accuracy of manual timeupdates
+      if (this.manualTimeUpdates) {
+        /**
+         * A manual `timeupdate` event.
+         *
+         * @event Tech#timeupdate
+         * @type {EventTarget~Event}
+         */
+        this.trigger({type: 'timeupdate', target: this, manuallyTriggered: true});
+      }
+    };
+
+    /**
+     * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and
+     * {@link TextTrackList} events.
+     *
+     * This adds {@link EventTarget~EventListeners} for `addtrack`, and  `removetrack`.
+     *
+     * @fires Tech#audiotrackchange
+     * @fires Tech#videotrackchange
+     * @fires Tech#texttrackchange
+     */
+
+
+    Tech.prototype.initTrackListeners = function initTrackListeners() {
+      var _this4 = this;
+
+      /**
+       * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}
+       *
+       * @event Tech#audiotrackchange
+       * @type {EventTarget~Event}
+       */
+
+      /**
+       * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}
+       *
+       * @event Tech#videotrackchange
+       * @type {EventTarget~Event}
+       */
+
+      /**
+       * Triggered when tracks are added or removed on the Tech {@link TextTrackList}
+       *
+       * @event Tech#texttrackchange
+       * @type {EventTarget~Event}
+       */
+      NORMAL.names.forEach(function (name) {
+        var props = NORMAL[name];
+        var trackListChanges = function trackListChanges() {
+          _this4.trigger(name + 'trackchange');
+        };
+
+        var tracks = _this4[props.getterName]();
+
+        tracks.addEventListener('removetrack', trackListChanges);
+        tracks.addEventListener('addtrack', trackListChanges);
+
+        _this4.on('dispose', function () {
+          tracks.removeEventListener('removetrack', trackListChanges);
+          tracks.removeEventListener('addtrack', trackListChanges);
+        });
+      });
+    };
+
+    /**
+     * Emulate TextTracks using vtt.js if necessary
+     *
+     * @fires Tech#vttjsloaded
+     * @fires Tech#vttjserror
+     */
+
+
+    Tech.prototype.addWebVttScript_ = function addWebVttScript_() {
+      var _this5 = this;
+
+      if (window_1.WebVTT) {
+        return;
+      }
+
+      // Initially, Tech.el_ is a child of a dummy-div wait until the Component system
+      // signals that the Tech is ready at which point Tech.el_ is part of the DOM
+      // before inserting the WebVTT script
+      if (document_1.body.contains(this.el())) {
+
+        // load via require if available and vtt.js script location was not passed in
+        // as an option. novtt builds will turn the above require call into an empty object
+        // which will cause this if check to always fail.
+        if (!this.options_['vtt.js'] && isPlain(browserIndex) && Object.keys(browserIndex).length > 0) {
+          this.trigger('vttjsloaded');
+          return;
+        }
+
+        // load vtt.js via the script location option or the cdn of no location was
+        // passed in
+        var script = document_1.createElement('script');
+
+        script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';
+        script.onload = function () {
+          /**
+           * Fired when vtt.js is loaded.
+           *
+           * @event Tech#vttjsloaded
+           * @type {EventTarget~Event}
+           */
+          _this5.trigger('vttjsloaded');
+        };
+        script.onerror = function () {
+          /**
+           * Fired when vtt.js was not loaded due to an error
+           *
+           * @event Tech#vttjsloaded
+           * @type {EventTarget~Event}
+           */
+          _this5.trigger('vttjserror');
+        };
+        this.on('dispose', function () {
+          script.onload = null;
+          script.onerror = null;
+        });
+        // but have not loaded yet and we set it to true before the inject so that
+        // we don't overwrite the injected window.WebVTT if it loads right away
+        window_1.WebVTT = true;
+        this.el().parentNode.appendChild(script);
+      } else {
+        this.ready(this.addWebVttScript_);
+      }
+    };
+
+    /**
+     * Emulate texttracks
+     *
+     */
+
+
+    Tech.prototype.emulateTextTracks = function emulateTextTracks() {
+      var _this6 = this;
+
+      var tracks = this.textTracks();
+      var remoteTracks = this.remoteTextTracks();
+      var handleAddTrack = function handleAddTrack(e) {
+        return tracks.addTrack(e.track);
+      };
+      var handleRemoveTrack = function handleRemoveTrack(e) {
+        return tracks.removeTrack(e.track);
+      };
+
+      remoteTracks.on('addtrack', handleAddTrack);
+      remoteTracks.on('removetrack', handleRemoveTrack);
+
+      this.addWebVttScript_();
+
+      var updateDisplay = function updateDisplay() {
+        return _this6.trigger('texttrackchange');
+      };
+
+      var textTracksChanges = function textTracksChanges() {
+        updateDisplay();
+
+        for (var i = 0; i < tracks.length; i++) {
+          var track = tracks[i];
+
+          track.removeEventListener('cuechange', updateDisplay);
+          if (track.mode === 'showing') {
+            track.addEventListener('cuechange', updateDisplay);
+          }
+        }
+      };
+
+      textTracksChanges();
+      tracks.addEventListener('change', textTracksChanges);
+      tracks.addEventListener('addtrack', textTracksChanges);
+      tracks.addEventListener('removetrack', textTracksChanges);
+
+      this.on('dispose', function () {
+        remoteTracks.off('addtrack', handleAddTrack);
+        remoteTracks.off('removetrack', handleRemoveTrack);
+        tracks.removeEventListener('change', textTracksChanges);
+        tracks.removeEventListener('addtrack', textTracksChanges);
+        tracks.removeEventListener('removetrack', textTracksChanges);
+
+        for (var i = 0; i < tracks.length; i++) {
+          var track = tracks[i];
+
+          track.removeEventListener('cuechange', updateDisplay);
+        }
+      });
+    };
+
+    /**
+     * Create and returns a remote {@link TextTrack} object.
+     *
+     * @param {string} kind
+     *        `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)
+     *
+     * @param {string} [label]
+     *        Label to identify the text track
+     *
+     * @param {string} [language]
+     *        Two letter language abbreviation
+     *
+     * @return {TextTrack}
+     *         The TextTrack that gets created.
+     */
+
+
+    Tech.prototype.addTextTrack = function addTextTrack(kind, label, language) {
+      if (!kind) {
+        throw new Error('TextTrack kind is required but was not provided');
+      }
+
+      return createTrackHelper(this, kind, label, language);
+    };
+
+    /**
+     * Create an emulated TextTrack for use by addRemoteTextTrack
+     *
+     * This is intended to be overridden by classes that inherit from
+     * Tech in order to create native or custom TextTracks.
+     *
+     * @param {Object} options
+     *        The object should contain the options to initialize the TextTrack with.
+     *
+     * @param {string} [options.kind]
+     *        `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).
+     *
+     * @param {string} [options.label].
+     *        Label to identify the text track
+     *
+     * @param {string} [options.language]
+     *        Two letter language abbreviation.
+     *
+     * @return {HTMLTrackElement}
+     *         The track element that gets created.
+     */
+
+
+    Tech.prototype.createRemoteTextTrack = function createRemoteTextTrack(options) {
+      var track = mergeOptions(options, {
+        tech: this
+      });
+
+      return new REMOTE.remoteTextEl.TrackClass(track);
+    };
+
+    /**
+     * Creates a remote text track object and returns an html track element.
+     *
+     * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.
+     *
+     * @param {Object} options
+     *        See {@link Tech#createRemoteTextTrack} for more detailed properties.
+     *
+     * @param {boolean} [manualCleanup=true]
+     *        - When false: the TextTrack will be automatically removed from the video
+     *          element whenever the source changes
+     *        - When True: The TextTrack will have to be cleaned up manually
+     *
+     * @return {HTMLTrackElement}
+     *         An Html Track Element.
+     *
+     * @deprecated The default functionality for this function will be equivalent
+     *             to "manualCleanup=false" in the future. The manualCleanup parameter will
+     *             also be removed.
+     */
+
+
+    Tech.prototype.addRemoteTextTrack = function addRemoteTextTrack() {
+      var _this7 = this;
+
+      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      var manualCleanup = arguments[1];
+
+      var htmlTrackElement = this.createRemoteTextTrack(options);
+
+      if (manualCleanup !== true && manualCleanup !== false) {
+        // deprecation warning
+        log$1.warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js');
+        manualCleanup = true;
+      }
+
+      // store HTMLTrackElement and TextTrack to remote list
+      this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);
+      this.remoteTextTracks().addTrack(htmlTrackElement.track);
+
+      if (manualCleanup !== true) {
+        // create the TextTrackList if it doesn't exist
+        this.ready(function () {
+          return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);
+        });
+      }
+
+      return htmlTrackElement;
+    };
+
+    /**
+     * Remove a remote text track from the remote `TextTrackList`.
+     *
+     * @param {TextTrack} track
+     *        `TextTrack` to remove from the `TextTrackList`
+     */
+
+
+    Tech.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
+      var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);
+
+      // remove HTMLTrackElement and TextTrack from remote list
+      this.remoteTextTrackEls().removeTrackElement_(trackElement);
+      this.remoteTextTracks().removeTrack(track);
+      this.autoRemoteTextTracks_.removeTrack(track);
+    };
+
+    /**
+     * Gets available media playback quality metrics as specified by the W3C's Media
+     * Playback Quality API.
+     *
+     * @see [Spec]{@link https://wicg.github.io/media-playback-quality}
+     *
+     * @return {Object}
+     *         An object with supported media playback quality metrics
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.getVideoPlaybackQuality = function getVideoPlaybackQuality() {
+      return {};
+    };
+
+    /**
+     * A method to set a poster from a `Tech`.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.setPoster = function setPoster() {
+    };
+
+    /**
+     * A method to check for the presence of the 'playsinline' <video> attribute.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.playsinline = function playsinline() {
+    };
+
+    /**
+     * A method to set or unset the 'playsinline' <video> attribute.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.setPlaysinline = function setPlaysinline() {
+    };
+
+    /**
+     * Attempt to force override of native audio tracks.
+     *
+     * @param {Boolean} override - If set to true native audio will be overridden,
+     * otherwise native audio will potentially be used.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.overrideNativeAudioTracks = function overrideNativeAudioTracks() {
+    };
+
+    /**
+     * Attempt to force override of native video tracks.
+     *
+     * @param {Boolean} override - If set to true native video will be overridden,
+     * otherwise native video will potentially be used.
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.overrideNativeVideoTracks = function overrideNativeVideoTracks() {
+    };
+
+    /*
+     * Check if the tech can support the given mime-type.
+     *
+     * The base tech does not support any type, but source handlers might
+     * overwrite this.
+     *
+     * @param  {string} type
+     *         The mimetype to check for support
+     *
+     * @return {string}
+     *         'probably', 'maybe', or empty string
+     *
+     * @see [Spec]{@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canPlayType}
+     *
+     * @abstract
+     */
+
+
+    Tech.prototype.canPlayType = function canPlayType() {
+      return '';
+    };
+
+    /**
+     * Check if the type is supported by this tech.
+     *
+     * The base tech does not support any type, but source handlers might
+     * overwrite this.
+     *
+     * @param {string} type
+     *        The media type to check
+     * @return {string} Returns the native video element's response
+     */
+
+
+    Tech.canPlayType = function canPlayType() {
+      return '';
+    };
+
+    /**
+     * Check if the tech can support the given source
+     * @param {Object} srcObj
+     *        The source object
+     * @param {Object} options
+     *        The options passed to the tech
+     * @return {string} 'probably', 'maybe', or '' (empty string)
+     */
+
+
+    Tech.canPlaySource = function canPlaySource(srcObj, options) {
+      return Tech.canPlayType(srcObj.type);
+    };
+
+    /*
+     * Return whether the argument is a Tech or not.
+     * Can be passed either a Class like `Html5` or a instance like `player.tech_`
+     *
+     * @param {Object} component
+     *        The item to check
+     *
+     * @return {boolean}
+     *         Whether it is a tech or not
+     *         - True if it is a tech
+     *         - False if it is not
+     */
+
+
+    Tech.isTech = function isTech(component) {
+      return component.prototype instanceof Tech || component instanceof Tech || component === Tech;
+    };
+
+    /**
+     * Registers a `Tech` into a shared list for videojs.
+     *
+     * @param {string} name
+     *        Name of the `Tech` to register.
+     *
+     * @param {Object} tech
+     *        The `Tech` class to register.
+     */
+
+
+    Tech.registerTech = function registerTech(name, tech) {
+      if (!Tech.techs_) {
+        Tech.techs_ = {};
+      }
+
+      if (!Tech.isTech(tech)) {
+        throw new Error('Tech ' + name + ' must be a Tech');
+      }
+
+      if (!Tech.canPlayType) {
+        throw new Error('Techs must have a static canPlayType method on them');
+      }
+      if (!Tech.canPlaySource) {
+        throw new Error('Techs must have a static canPlaySource method on them');
+      }
+
+      name = toTitleCase(name);
+
+      Tech.techs_[name] = tech;
+      if (name !== 'Tech') {
+        // camel case the techName for use in techOrder
+        Tech.defaultTechOrder_.push(name);
+      }
+      return tech;
+    };
+
+    /**
+     * Get a `Tech` from the shared list by name.
+     *
+     * @param {string} name
+     *        `camelCase` or `TitleCase` name of the Tech to get
+     *
+     * @return {Tech|undefined}
+     *         The `Tech` or undefined if there was no tech with the name requested.
+     */
+
+
+    Tech.getTech = function getTech(name) {
+      if (!name) {
+        return;
+      }
+
+      name = toTitleCase(name);
+
+      if (Tech.techs_ && Tech.techs_[name]) {
+        return Tech.techs_[name];
+      }
+
+      if (window_1 && window_1.videojs && window_1.videojs[name]) {
+        log$1.warn('The ' + name + ' tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)');
+        return window_1.videojs[name];
+      }
+    };
+
+    return Tech;
+  }(Component);
+
+  /**
+   * Get the {@link VideoTrackList}
+   *
+   * @returns {VideoTrackList}
+   * @method Tech.prototype.videoTracks
+   */
+
+  /**
+   * Get the {@link AudioTrackList}
+   *
+   * @returns {AudioTrackList}
+   * @method Tech.prototype.audioTracks
+   */
+
+  /**
+   * Get the {@link TextTrackList}
+   *
+   * @returns {TextTrackList}
+   * @method Tech.prototype.textTracks
+   */
+
+  /**
+   * Get the remote element {@link TextTrackList}
+   *
+   * @returns {TextTrackList}
+   * @method Tech.prototype.remoteTextTracks
+   */
+
+  /**
+   * Get the remote element {@link HtmlTrackElementList}
+   *
+   * @returns {HtmlTrackElementList}
+   * @method Tech.prototype.remoteTextTrackEls
+   */
+
+  ALL.names.forEach(function (name) {
+    var props = ALL[name];
+
+    Tech.prototype[props.getterName] = function () {
+      this[props.privateName] = this[props.privateName] || new props.ListClass();
+      return this[props.privateName];
+    };
+  });
+
+  /**
+   * List of associated text tracks
+   *
+   * @type {TextTrackList}
+   * @private
+   * @property Tech#textTracks_
+   */
+
+  /**
+   * List of associated audio tracks.
+   *
+   * @type {AudioTrackList}
+   * @private
+   * @property Tech#audioTracks_
+   */
+
+  /**
+   * List of associated video tracks.
+   *
+   * @type {VideoTrackList}
+   * @private
+   * @property Tech#videoTracks_
+   */
+
+  /**
+   * Boolean indicating whether the `Tech` supports volume control.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresVolumeControl = true;
+
+  /**
+   * Boolean indicating whether the `Tech` supports fullscreen resize control.
+   * Resizing plugins using request fullscreen reloads the plugin
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresFullscreenResize = false;
+
+  /**
+   * Boolean indicating whether the `Tech` supports changing the speed at which the video
+   * plays. Examples:
+   *   - Set player to play 2x (twice) as fast
+   *   - Set player to play 0.5x (half) as fast
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresPlaybackRate = false;
+
+  /**
+   * Boolean indicating whether the `Tech` supports the `progress` event. This is currently
+   * not triggered by video-js-swf. This will be used to determine if
+   * {@link Tech#manualProgressOn} should be called.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresProgressEvents = false;
+
+  /**
+   * Boolean indicating whether the `Tech` supports the `sourceset` event.
+   *
+   * A tech should set this to `true` and then use {@link Tech#triggerSourceset}
+   * to trigger a {@link Tech#event:sourceset} at the earliest time after getting
+   * a new source.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresSourceset = false;
+
+  /**
+   * Boolean indicating whether the `Tech` supports the `timeupdate` event. This is currently
+   * not triggered by video-js-swf. This will be used to determine if
+   * {@link Tech#manualTimeUpdates} should be called.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresTimeupdateEvents = false;
+
+  /**
+   * Boolean indicating whether the `Tech` supports the native `TextTrack`s.
+   * This will help us integrate with native `TextTrack`s if the browser supports them.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Tech.prototype.featuresNativeTextTracks = false;
+
+  /**
+   * A functional mixin for techs that want to use the Source Handler pattern.
+   * Source handlers are scripts for handling specific formats.
+   * The source handler pattern is used for adaptive formats (HLS, DASH) that
+   * manually load video data and feed it into a Source Buffer (Media Source Extensions)
+   * Example: `Tech.withSourceHandlers.call(MyTech);`
+   *
+   * @param {Tech} _Tech
+   *        The tech to add source handler functions to.
+   *
+   * @mixes Tech~SourceHandlerAdditions
+   */
+  Tech.withSourceHandlers = function (_Tech) {
+
+    /**
+     * Register a source handler
+     *
+     * @param {Function} handler
+     *        The source handler class
+     *
+     * @param {number} [index]
+     *        Register it at the following index
+     */
+    _Tech.registerSourceHandler = function (handler, index) {
+      var handlers = _Tech.sourceHandlers;
+
+      if (!handlers) {
+        handlers = _Tech.sourceHandlers = [];
+      }
+
+      if (index === undefined) {
+        // add to the end of the list
+        index = handlers.length;
+      }
+
+      handlers.splice(index, 0, handler);
+    };
+
+    /**
+     * Check if the tech can support the given type. Also checks the
+     * Techs sourceHandlers.
+     *
+     * @param {string} type
+     *         The mimetype to check.
+     *
+     * @return {string}
+     *         'probably', 'maybe', or '' (empty string)
+     */
+    _Tech.canPlayType = function (type) {
+      var handlers = _Tech.sourceHandlers || [];
+      var can = void 0;
+
+      for (var i = 0; i < handlers.length; i++) {
+        can = handlers[i].canPlayType(type);
+
+        if (can) {
+          return can;
+        }
+      }
+
+      return '';
+    };
+
+    /**
+     * Returns the first source handler that supports the source.
+     *
+     * TODO: Answer question: should 'probably' be prioritized over 'maybe'
+     *
+     * @param {Tech~SourceObject} source
+     *        The source object
+     *
+     * @param {Object} options
+     *        The options passed to the tech
+     *
+     * @return {SourceHandler|null}
+     *          The first source handler that supports the source or null if
+     *          no SourceHandler supports the source
+     */
+    _Tech.selectSourceHandler = function (source, options) {
+      var handlers = _Tech.sourceHandlers || [];
+      var can = void 0;
+
+      for (var i = 0; i < handlers.length; i++) {
+        can = handlers[i].canHandleSource(source, options);
+
+        if (can) {
+          return handlers[i];
+        }
+      }
+
+      return null;
+    };
+
+    /**
+     * Check if the tech can support the given source.
+     *
+     * @param {Tech~SourceObject} srcObj
+     *        The source object
+     *
+     * @param {Object} options
+     *        The options passed to the tech
+     *
+     * @return {string}
+     *         'probably', 'maybe', or '' (empty string)
+     */
+    _Tech.canPlaySource = function (srcObj, options) {
+      var sh = _Tech.selectSourceHandler(srcObj, options);
+
+      if (sh) {
+        return sh.canHandleSource(srcObj, options);
+      }
+
+      return '';
+    };
+
+    /**
+     * When using a source handler, prefer its implementation of
+     * any function normally provided by the tech.
+     */
+    var deferrable = ['seekable', 'seeking', 'duration'];
+
+    /**
+     * A wrapper around {@link Tech#seekable} that will call a `SourceHandler`s seekable
+     * function if it exists, with a fallback to the Techs seekable function.
+     *
+     * @method _Tech.seekable
+     */
+
+    /**
+     * A wrapper around {@link Tech#duration} that will call a `SourceHandler`s duration
+     * function if it exists, otherwise it will fallback to the techs duration function.
+     *
+     * @method _Tech.duration
+     */
+
+    deferrable.forEach(function (fnName) {
+      var originalFn = this[fnName];
+
+      if (typeof originalFn !== 'function') {
+        return;
+      }
+
+      this[fnName] = function () {
+        if (this.sourceHandler_ && this.sourceHandler_[fnName]) {
+          return this.sourceHandler_[fnName].apply(this.sourceHandler_, arguments);
+        }
+        return originalFn.apply(this, arguments);
+      };
+    }, _Tech.prototype);
+
+    /**
+     * Create a function for setting the source using a source object
+     * and source handlers.
+     * Should never be called unless a source handler was found.
+     *
+     * @param {Tech~SourceObject} source
+     *        A source object with src and type keys
+     */
+    _Tech.prototype.setSource = function (source) {
+      var sh = _Tech.selectSourceHandler(source, this.options_);
+
+      if (!sh) {
+        // Fall back to a native source hander when unsupported sources are
+        // deliberately set
+        if (_Tech.nativeSourceHandler) {
+          sh = _Tech.nativeSourceHandler;
+        } else {
+          log$1.error('No source handler found for the current source.');
+        }
+      }
+
+      // Dispose any existing source handler
+      this.disposeSourceHandler();
+      this.off('dispose', this.disposeSourceHandler);
+
+      if (sh !== _Tech.nativeSourceHandler) {
+        this.currentSource_ = source;
+      }
+
+      this.sourceHandler_ = sh.handleSource(source, this, this.options_);
+      this.on('dispose', this.disposeSourceHandler);
+    };
+
+    /**
+     * Clean up any existing SourceHandlers and listeners when the Tech is disposed.
+     *
+     * @listens Tech#dispose
+     */
+    _Tech.prototype.disposeSourceHandler = function () {
+      // if we have a source and get another one
+      // then we are loading something new
+      // than clear all of our current tracks
+      if (this.currentSource_) {
+        this.clearTracks(['audio', 'video']);
+        this.currentSource_ = null;
+      }
+
+      // always clean up auto-text tracks
+      this.cleanupAutoTextTracks();
+
+      if (this.sourceHandler_) {
+
+        if (this.sourceHandler_.dispose) {
+          this.sourceHandler_.dispose();
+        }
+
+        this.sourceHandler_ = null;
+      }
+    };
+  };
+
+  // The base Tech class needs to be registered as a Component. It is the only
+  // Tech that can be registered as a Component.
+  Component.registerComponent('Tech', Tech);
+  Tech.registerTech('Tech', Tech);
+
+  /**
+   * A list of techs that should be added to techOrder on Players
+   *
+   * @private
+   */
+  Tech.defaultTechOrder_ = [];
+
+  var middlewares = {};
+  var middlewareInstances = {};
+
+  var TERMINATOR = {};
+
+  function use(type, middleware) {
+    middlewares[type] = middlewares[type] || [];
+    middlewares[type].push(middleware);
+  }
+
+  function setSource(player, src, next) {
+    player.setTimeout(function () {
+      return setSourceHelper(src, middlewares[src.type], next, player);
+    }, 1);
+  }
+
+  function setTech(middleware, tech) {
+    middleware.forEach(function (mw) {
+      return mw.setTech && mw.setTech(tech);
+    });
+  }
+
+  /**
+   * Calls a getter on the tech first, through each middleware
+   * from right to left to the player.
+   */
+  function get$1(middleware, tech, method) {
+    return middleware.reduceRight(middlewareIterator(method), tech[method]());
+  }
+
+  /**
+   * Takes the argument given to the player and calls the setter method on each
+   * middleware from left to right to the tech.
+   */
+  function set$1(middleware, tech, method, arg) {
+    return tech[method](middleware.reduce(middlewareIterator(method), arg));
+  }
+
+  /**
+   * Takes the argument given to the player and calls the `call` version of the method
+   * on each middleware from left to right.
+   * Then, call the passed in method on the tech and return the result unchanged
+   * back to the player, through middleware, this time from right to left.
+   */
+  function mediate(middleware, tech, method) {
+    var arg = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
+
+    var callMethod = 'call' + toTitleCase(method);
+    var middlewareValue = middleware.reduce(middlewareIterator(callMethod), arg);
+    var terminated = middlewareValue === TERMINATOR;
+    var returnValue = terminated ? null : tech[method](middlewareValue);
+
+    executeRight(middleware, method, returnValue, terminated);
+
+    return returnValue;
+  }
+
+  var allowedGetters = {
+    buffered: 1,
+    currentTime: 1,
+    duration: 1,
+    seekable: 1,
+    played: 1,
+    paused: 1
+  };
+
+  var allowedSetters = {
+    setCurrentTime: 1
+  };
+
+  var allowedMediators = {
+    play: 1,
+    pause: 1
+  };
+
+  function middlewareIterator(method) {
+    return function (value, mw) {
+      // if the previous middleware terminated, pass along the termination
+      if (value === TERMINATOR) {
+        return TERMINATOR;
+      }
+
+      if (mw[method]) {
+        return mw[method](value);
+      }
+
+      return value;
+    };
+  }
+
+  function executeRight(mws, method, value, terminated) {
+    for (var i = mws.length - 1; i >= 0; i--) {
+      var mw = mws[i];
+
+      if (mw[method]) {
+        mw[method](terminated, value);
+      }
+    }
+  }
+
+  function clearCacheForPlayer(player) {
+    middlewareInstances[player.id()] = null;
+  }
+
+  /**
+   * {
+   *  [playerId]: [[mwFactory, mwInstance], ...]
+   * }
+   */
+  function getOrCreateFactory(player, mwFactory) {
+    var mws = middlewareInstances[player.id()];
+    var mw = null;
+
+    if (mws === undefined || mws === null) {
+      mw = mwFactory(player);
+      middlewareInstances[player.id()] = [[mwFactory, mw]];
+      return mw;
+    }
+
+    for (var i = 0; i < mws.length; i++) {
+      var _mws$i = mws[i],
+        mwf = _mws$i[0],
+        mwi = _mws$i[1];
+
+
+      if (mwf !== mwFactory) {
+        continue;
+      }
+
+      mw = mwi;
+    }
+
+    if (mw === null) {
+      mw = mwFactory(player);
+      mws.push([mwFactory, mw]);
+    }
+
+    return mw;
+  }
+
+  function setSourceHelper() {
+    var src = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    var middleware = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
+    var next = arguments[2];
+    var player = arguments[3];
+    var acc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
+    var lastRun = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
+    var mwFactory = middleware[0],
+      mwrest = middleware.slice(1);
+
+    // if mwFactory is a string, then we're at a fork in the road
+
+    if (typeof mwFactory === 'string') {
+      setSourceHelper(src, middlewares[mwFactory], next, player, acc, lastRun);
+
+      // if we have an mwFactory, call it with the player to get the mw,
+      // then call the mw's setSource method
+    } else if (mwFactory) {
+      var mw = getOrCreateFactory(player, mwFactory);
+
+      mw.setSource(assign({}, src), function (err, _src) {
+
+        // something happened, try the next middleware on the current level
+        // make sure to use the old src
+        if (err) {
+          return setSourceHelper(src, mwrest, next, player, acc, lastRun);
+        }
+
+        // we've succeeded, now we need to go deeper
+        acc.push(mw);
+
+        // if it's the same type, continue down the current chain
+        // otherwise, we want to go down the new chain
+        setSourceHelper(_src, src.type === _src.type ? mwrest : middlewares[_src.type], next, player, acc, lastRun);
+      });
+    } else if (mwrest.length) {
+      setSourceHelper(src, mwrest, next, player, acc, lastRun);
+    } else if (lastRun) {
+      next(src, acc);
+    } else {
+      setSourceHelper(src, middlewares['*'], next, player, acc, true);
+    }
+  }
+
+  /**
+   * Mimetypes
+   *
+   * @see http://hul.harvard.edu/ois/////systems/wax/wax-public-help/mimetypes.htm
+   * @typedef Mimetypes~Kind
+   * @enum
+   */
+  var MimetypesKind = {
+    opus: 'video/ogg',
+    ogv: 'video/ogg',
+    mp4: 'video/mp4',
+    mov: 'video/mp4',
+    m4v: 'video/mp4',
+    mkv: 'video/x-matroska',
+    mp3: 'audio/mpeg',
+    aac: 'audio/aac',
+    oga: 'audio/ogg',
+    m3u8: 'application/x-mpegURL'
+  };
+
+  /**
+   * Get the mimetype of a given src url if possible
+   *
+   * @param {string} src
+   *        The url to the src
+   *
+   * @return {string}
+   *         return the mimetype if it was known or empty string otherwise
+   */
+  var getMimetype = function getMimetype() {
+    var src = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+
+    var ext = getFileExtension(src);
+    var mimetype = MimetypesKind[ext.toLowerCase()];
+
+    return mimetype || '';
+  };
+
+  /**
+   * Find the mime type of a given source string if possible. Uses the player
+   * source cache.
+   *
+   * @param {Player} player
+   *        The player object
+   *
+   * @param {string} src
+   *        The source string
+   *
+   * @return {string}
+   *         The type that was found
+   */
+  var findMimetype = function findMimetype(player, src) {
+    if (!src) {
+      return '';
+    }
+
+    // 1. check for the type in the `source` cache
+    if (player.cache_.source.src === src && player.cache_.source.type) {
+      return player.cache_.source.type;
+    }
+
+    // 2. see if we have this source in our `currentSources` cache
+    var matchingSources = player.cache_.sources.filter(function (s) {
+      return s.src === src;
+    });
+
+    if (matchingSources.length) {
+      return matchingSources[0].type;
+    }
+
+    // 3. look for the src url in source elements and use the type there
+    var sources = player.$$('source');
+
+    for (var i = 0; i < sources.length; i++) {
+      var s = sources[i];
+
+      if (s.type && s.src && s.src === src) {
+        return s.type;
+      }
+    }
+
+    // 4. finally fallback to our list of mime types based on src url extension
+    return getMimetype(src);
+  };
+
+  /**
+   * @module filter-source
+   */
+
+  /**
+   * Filter out single bad source objects or multiple source objects in an
+   * array. Also flattens nested source object arrays into a 1 dimensional
+   * array of source objects.
+   *
+   * @param {Tech~SourceObject|Tech~SourceObject[]} src
+   *        The src object to filter
+   *
+   * @return {Tech~SourceObject[]}
+   *         An array of sourceobjects containing only valid sources
+   *
+   * @private
+   */
+  var filterSource = function filterSource(src) {
+    // traverse array
+    if (Array.isArray(src)) {
+      var newsrc = [];
+
+      src.forEach(function (srcobj) {
+        srcobj = filterSource(srcobj);
+
+        if (Array.isArray(srcobj)) {
+          newsrc = newsrc.concat(srcobj);
+        } else if (isObject(srcobj)) {
+          newsrc.push(srcobj);
+        }
+      });
+
+      src = newsrc;
+    } else if (typeof src === 'string' && src.trim()) {
+      // convert string into object
+      src = [fixSource({src: src})];
+    } else if (isObject(src) && typeof src.src === 'string' && src.src && src.src.trim()) {
+      // src is already valid
+      src = [fixSource(src)];
+    } else {
+      // invalid source, turn it into an empty array
+      src = [];
+    }
+
+    return src;
+  };
+
+  /**
+   * Checks src mimetype, adding it when possible
+   *
+   * @param {Tech~SourceObject} src
+   *        The src object to check
+   * @return {Tech~SourceObject}
+   *        src Object with known type
+   */
+  function fixSource(src) {
+    var mimetype = getMimetype(src.src);
+
+    if (!src.type && mimetype) {
+      src.type = mimetype;
+    }
+
+    return src;
+  }
+
+  /**
+   * @file loader.js
+   */
+
+  /**
+   * The `MediaLoader` is the `Component` that decides which playback technology to load
+   * when a player is initialized.
+   *
+   * @extends Component
+   */
+
+  var MediaLoader = function (_Component) {
+    inherits(MediaLoader, _Component);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should attach to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function that is run when this component is ready.
+     */
+    function MediaLoader(player, options, ready) {
+      classCallCheck(this, MediaLoader);
+
+      // MediaLoader has no element
+      var options_ = mergeOptions({createEl: false}, options);
+
+      // If there are no sources when the player is initialized,
+      // load the first supported playback technology.
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options_, ready));
+
+      if (!options.playerOptions.sources || options.playerOptions.sources.length === 0) {
+        for (var i = 0, j = options.playerOptions.techOrder; i < j.length; i++) {
+          var techName = toTitleCase(j[i]);
+          var tech = Tech.getTech(techName);
+
+          // Support old behavior of techs being registered as components.
+          // Remove once that deprecated behavior is removed.
+          if (!techName) {
+            tech = Component.getComponent(techName);
+          }
+
+          // Check if the browser supports this technology
+          if (tech && tech.isSupported()) {
+            player.loadTech_(techName);
+            break;
+          }
+        }
+      } else {
+        // Loop through playback technologies (HTML5, Flash) and check for support.
+        // Then load the best source.
+        // A few assumptions here:
+        //   All playback technologies respect preload false.
+        player.src(options.playerOptions.sources);
+      }
+      return _this;
+    }
+
+    return MediaLoader;
+  }(Component);
+
+  Component.registerComponent('MediaLoader', MediaLoader);
+
+  /**
+   * @file clickable-component.js
+   */
+
+  /**
+   * Clickable Component which is clickable or keyboard actionable,
+   * but is not a native HTML button.
+   *
+   * @extends Component
+   */
+
+  var ClickableComponent = function (_Component) {
+    inherits(ClickableComponent, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param  {Player} player
+     *         The `Player` that this class should be attached to.
+     *
+     * @param  {Object} [options]
+     *         The key/value store of player options.
+     */
+    function ClickableComponent(player, options) {
+      classCallCheck(this, ClickableComponent);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.emitTapEvents();
+
+      _this.enable();
+      return _this;
+    }
+
+    /**
+     * Create the `Component`s DOM element.
+     *
+     * @param {string} [tag=div]
+     *        The element's node type.
+     *
+     * @param {Object} [props={}]
+     *        An object of properties that should be set on the element.
+     *
+     * @param {Object} [attributes={}]
+     *        An object of attributes that should be set on the element.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    ClickableComponent.prototype.createEl = function createEl$$1() {
+      var tag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'div';
+      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+      props = assign({
+        innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>',
+        className: this.buildCSSClass(),
+        tabIndex: 0
+      }, props);
+
+      if (tag === 'button') {
+        log$1.error('Creating a ClickableComponent with an HTML element of ' + tag + ' is not supported; use a Button instead.');
+      }
+
+      // Add ARIA attributes for clickable element which is not a native HTML button
+      attributes = assign({
+        role: 'button'
+      }, attributes);
+
+      this.tabIndex_ = props.tabIndex;
+
+      var el = _Component.prototype.createEl.call(this, tag, props, attributes);
+
+      this.createControlTextEl(el);
+
+      return el;
+    };
+
+    ClickableComponent.prototype.dispose = function dispose() {
+      // remove controlTextEl_ on dispose
+      this.controlTextEl_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Create a control text element on this `Component`
+     *
+     * @param {Element} [el]
+     *        Parent element for the control text.
+     *
+     * @return {Element}
+     *         The control text element that gets created.
+     */
+
+
+    ClickableComponent.prototype.createControlTextEl = function createControlTextEl(el) {
+      this.controlTextEl_ = createEl('span', {
+        className: 'vjs-control-text'
+      }, {
+        // let the screen reader user know that the text of the element may change
+        'aria-live': 'polite'
+      });
+
+      if (el) {
+        el.appendChild(this.controlTextEl_);
+      }
+
+      this.controlText(this.controlText_, el);
+
+      return this.controlTextEl_;
+    };
+
+    /**
+     * Get or set the localize text to use for the controls on the `Component`.
+     *
+     * @param {string} [text]
+     *        Control text for element.
+     *
+     * @param {Element} [el=this.el()]
+     *        Element to set the title on.
+     *
+     * @return {string}
+     *         - The control text when getting
+     */
+
+
+    ClickableComponent.prototype.controlText = function controlText(text) {
+      var el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.el();
+
+      if (text === undefined) {
+        return this.controlText_ || 'Need Text';
+      }
+
+      var localizedText = this.localize(text);
+
+      this.controlText_ = text;
+      textContent(this.controlTextEl_, localizedText);
+      if (!this.nonIconControl) {
+        // Set title attribute if only an icon is shown
+        el.setAttribute('title', localizedText);
+      }
+    };
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    ClickableComponent.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-control vjs-button ' + _Component.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Enable this `Component`s element.
+     */
+
+
+    ClickableComponent.prototype.enable = function enable() {
+      if (!this.enabled_) {
+        this.enabled_ = true;
+        this.removeClass('vjs-disabled');
+        this.el_.setAttribute('aria-disabled', 'false');
+        if (typeof this.tabIndex_ !== 'undefined') {
+          this.el_.setAttribute('tabIndex', this.tabIndex_);
+        }
+        this.on(['tap', 'click'], this.handleClick);
+        this.on('focus', this.handleFocus);
+        this.on('blur', this.handleBlur);
+      }
+    };
+
+    /**
+     * Disable this `Component`s element.
+     */
+
+
+    ClickableComponent.prototype.disable = function disable() {
+      this.enabled_ = false;
+      this.addClass('vjs-disabled');
+      this.el_.setAttribute('aria-disabled', 'true');
+      if (typeof this.tabIndex_ !== 'undefined') {
+        this.el_.removeAttribute('tabIndex');
+      }
+      this.off(['tap', 'click'], this.handleClick);
+      this.off('focus', this.handleFocus);
+      this.off('blur', this.handleBlur);
+    };
+
+    /**
+     * This gets called when a `ClickableComponent` gets:
+     * - Clicked (via the `click` event, listening starts in the constructor)
+     * - Tapped (via the `tap` event, listening starts in the constructor)
+     * - The following things happen in order:
+     *   1. {@link ClickableComponent#handleFocus} is called via a `focus` event on the
+     *      `ClickableComponent`.
+     *   2. {@link ClickableComponent#handleFocus} adds a listener for `keydown` on using
+     *      {@link ClickableComponent#handleKeyPress}.
+     *   3. `ClickableComponent` has not had a `blur` event (`blur` means that focus was lost). The user presses
+     *      the space or enter key.
+     *   4. {@link ClickableComponent#handleKeyPress} calls this function with the `keydown`
+     *      event as a parameter.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     * @abstract
+     */
+
+
+    ClickableComponent.prototype.handleClick = function handleClick(event) {
+    };
+
+    /**
+     * This gets called when a `ClickableComponent` gains focus via a `focus` event.
+     * Turns on listening for `keydown` events. When they happen it
+     * calls `this.handleKeyPress`.
+     *
+     * @param {EventTarget~Event} event
+     *        The `focus` event that caused this function to be called.
+     *
+     * @listens focus
+     */
+
+
+    ClickableComponent.prototype.handleFocus = function handleFocus(event) {
+      on(document_1, 'keydown', bind(this, this.handleKeyPress));
+    };
+
+    /**
+     * Called when this ClickableComponent has focus and a key gets pressed down. By
+     * default it will call `this.handleClick` when the key is space or enter.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown` event that caused this function to be called.
+     *
+     * @listens keydown
+     */
+
+
+    ClickableComponent.prototype.handleKeyPress = function handleKeyPress(event) {
+
+      // Support Space (32) or Enter (13) key operation to fire a click event
+      if (event.which === 32 || event.which === 13) {
+        event.preventDefault();
+        this.trigger('click');
+      } else if (_Component.prototype.handleKeyPress) {
+
+        // Pass keypress handling up for unsupported keys
+        _Component.prototype.handleKeyPress.call(this, event);
+      }
+    };
+
+    /**
+     * Called when a `ClickableComponent` loses focus. Turns off the listener for
+     * `keydown` events. Which Stops `this.handleKeyPress` from getting called.
+     *
+     * @param {EventTarget~Event} event
+     *        The `blur` event that caused this function to be called.
+     *
+     * @listens blur
+     */
+
+
+    ClickableComponent.prototype.handleBlur = function handleBlur(event) {
+      off(document_1, 'keydown', bind(this, this.handleKeyPress));
+    };
+
+    return ClickableComponent;
+  }(Component);
+
+  Component.registerComponent('ClickableComponent', ClickableComponent);
+
+  /**
+   * @file poster-image.js
+   */
+
+  /**
+   * A `ClickableComponent` that handles showing the poster image for the player.
+   *
+   * @extends ClickableComponent
+   */
+
+  var PosterImage = function (_ClickableComponent) {
+    inherits(PosterImage, _ClickableComponent);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should attach to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function PosterImage(player, options) {
+      classCallCheck(this, PosterImage);
+
+      var _this = possibleConstructorReturn(this, _ClickableComponent.call(this, player, options));
+
+      _this.update();
+      player.on('posterchange', bind(_this, _this.update));
+      return _this;
+    }
+
+    /**
+     * Clean up and dispose of the `PosterImage`.
+     */
+
+
+    PosterImage.prototype.dispose = function dispose() {
+      this.player().off('posterchange', this.update);
+      _ClickableComponent.prototype.dispose.call(this);
+    };
+
+    /**
+     * Create the `PosterImage`s DOM element.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    PosterImage.prototype.createEl = function createEl$$1() {
+      var el = createEl('div', {
+        className: 'vjs-poster',
+
+        // Don't want poster to be tabbable.
+        tabIndex: -1
+      });
+
+      return el;
+    };
+
+    /**
+     * An {@link EventTarget~EventListener} for {@link Player#posterchange} events.
+     *
+     * @listens Player#posterchange
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `Player#posterchange` event that triggered this function.
+     */
+
+
+    PosterImage.prototype.update = function update(event) {
+      var url = this.player().poster();
+
+      this.setSrc(url);
+
+      // If there's no poster source we should display:none on this component
+      // so it's not still clickable or right-clickable
+      if (url) {
+        this.show();
+      } else {
+        this.hide();
+      }
+    };
+
+    /**
+     * Set the source of the `PosterImage` depending on the display method.
+     *
+     * @param {string} url
+     *        The URL to the source for the `PosterImage`.
+     */
+
+
+    PosterImage.prototype.setSrc = function setSrc(url) {
+      var backgroundImage = '';
+
+      // Any falsy value should stay as an empty string, otherwise
+      // this will throw an extra error
+      if (url) {
+        backgroundImage = 'url("' + url + '")';
+      }
+
+      this.el_.style.backgroundImage = backgroundImage;
+    };
+
+    /**
+     * An {@link EventTarget~EventListener} for clicks on the `PosterImage`. See
+     * {@link ClickableComponent#handleClick} for instances where this will be triggered.
+     *
+     * @listens tap
+     * @listens click
+     * @listens keydown
+     *
+     * @param {EventTarget~Event} event
+     +        The `click`, `tap` or `keydown` event that caused this function to be called.
+     */
+
+
+    PosterImage.prototype.handleClick = function handleClick(event) {
+      // We don't want a click to trigger playback when controls are disabled
+      if (!this.player_.controls()) {
+        return;
+      }
+
+      if (this.player_.paused()) {
+        this.player_.play();
+      } else {
+        this.player_.pause();
+      }
+    };
+
+    return PosterImage;
+  }(ClickableComponent);
+
+  Component.registerComponent('PosterImage', PosterImage);
+
+  /**
+   * @file text-track-display.js
+   */
+
+  var darkGray = '#222';
+  var lightGray = '#ccc';
+  var fontMap = {
+    monospace: 'monospace',
+    sansSerif: 'sans-serif',
+    serif: 'serif',
+    monospaceSansSerif: '"Andale Mono", "Lucida Console", monospace',
+    monospaceSerif: '"Courier New", monospace',
+    proportionalSansSerif: 'sans-serif',
+    proportionalSerif: 'serif',
+    casual: '"Comic Sans MS", Impact, fantasy',
+    script: '"Monotype Corsiva", cursive',
+    smallcaps: '"Andale Mono", "Lucida Console", monospace, sans-serif'
+  };
+
+  /**
+   * Construct an rgba color from a given hex color code.
+   *
+   * @param {number} color
+   *        Hex number for color, like #f0e.
+   *
+   * @param {number} opacity
+   *        Value for opacity, 0.0 - 1.0.
+   *
+   * @return {string}
+   *         The rgba color that was created, like 'rgba(255, 0, 0, 0.3)'.
+   *
+   * @private
+   */
+  function constructColor(color, opacity) {
+    return 'rgba(' +
+      // color looks like "#f0e"
+      parseInt(color[1] + color[1], 16) + ',' + parseInt(color[2] + color[2], 16) + ',' + parseInt(color[3] + color[3], 16) + ',' + opacity + ')';
+  }
+
+  /**
+   * Try to update the style of a DOM element. Some style changes will throw an error,
+   * particularly in IE8. Those should be noops.
+   *
+   * @param {Element} el
+   *        The DOM element to be styled.
+   *
+   * @param {string} style
+   *        The CSS property on the element that should be styled.
+   *
+   * @param {string} rule
+   *        The style rule that should be applied to the property.
+   *
+   * @private
+   */
+  function tryUpdateStyle(el, style, rule) {
+    try {
+      el.style[style] = rule;
+    } catch (e) {
+
+      // Satisfies linter.
+      return;
+    }
+  }
+
+  /**
+   * The component for displaying text track cues.
+   *
+   * @extends Component
+   */
+
+  var TextTrackDisplay = function (_Component) {
+    inherits(TextTrackDisplay, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function to call when `TextTrackDisplay` is ready.
+     */
+    function TextTrackDisplay(player, options, ready) {
+      classCallCheck(this, TextTrackDisplay);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options, ready));
+
+      player.on('loadstart', bind(_this, _this.toggleDisplay));
+      player.on('texttrackchange', bind(_this, _this.updateDisplay));
+      player.on('loadstart', bind(_this, _this.preselectTrack));
+
+      // This used to be called during player init, but was causing an error
+      // if a track should show by default and the display hadn't loaded yet.
+      // Should probably be moved to an external track loader when we support
+      // tracks that don't need a display.
+      player.ready(bind(_this, function () {
+        if (player.tech_ && player.tech_.featuresNativeTextTracks) {
+          this.hide();
+          return;
+        }
+
+        player.on('fullscreenchange', bind(this, this.updateDisplay));
+
+        var tracks = this.options_.playerOptions.tracks || [];
+
+        for (var i = 0; i < tracks.length; i++) {
+          this.player_.addRemoteTextTrack(tracks[i], true);
+        }
+
+        this.preselectTrack();
+      }));
+      return _this;
+    }
+
+    /**
+     * Preselect a track following this precedence:
+     * - matches the previously selected {@link TextTrack}'s language and kind
+     * - matches the previously selected {@link TextTrack}'s language only
+     * - is the first default captions track
+     * - is the first default descriptions track
+     *
+     * @listens Player#loadstart
+     */
+
+
+    TextTrackDisplay.prototype.preselectTrack = function preselectTrack() {
+      var modes = {captions: 1, subtitles: 1};
+      var trackList = this.player_.textTracks();
+      var userPref = this.player_.cache_.selectedLanguage;
+      var firstDesc = void 0;
+      var firstCaptions = void 0;
+      var preferredTrack = void 0;
+
+      for (var i = 0; i < trackList.length; i++) {
+        var track = trackList[i];
+
+        if (userPref && userPref.enabled && userPref.language === track.language) {
+          // Always choose the track that matches both language and kind
+          if (track.kind === userPref.kind) {
+            preferredTrack = track;
+            // or choose the first track that matches language
+          } else if (!preferredTrack) {
+            preferredTrack = track;
+          }
+
+          // clear everything if offTextTrackMenuItem was clicked
+        } else if (userPref && !userPref.enabled) {
+          preferredTrack = null;
+          firstDesc = null;
+          firstCaptions = null;
+        } else if (track.default) {
+          if (track.kind === 'descriptions' && !firstDesc) {
+            firstDesc = track;
+          } else if (track.kind in modes && !firstCaptions) {
+            firstCaptions = track;
+          }
+        }
+      }
+
+      // The preferredTrack matches the user preference and takes
+      // precedence over all the other tracks.
+      // So, display the preferredTrack before the first default track
+      // and the subtitles/captions track before the descriptions track
+      if (preferredTrack) {
+        preferredTrack.mode = 'showing';
+      } else if (firstCaptions) {
+        firstCaptions.mode = 'showing';
+      } else if (firstDesc) {
+        firstDesc.mode = 'showing';
+      }
+    };
+
+    /**
+     * Turn display of {@link TextTrack}'s from the current state into the other state.
+     * There are only two states:
+     * - 'shown'
+     * - 'hidden'
+     *
+     * @listens Player#loadstart
+     */
+
+
+    TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {
+      if (this.player_.tech_ && this.player_.tech_.featuresNativeTextTracks) {
+        this.hide();
+      } else {
+        this.show();
+      }
+    };
+
+    /**
+     * Create the {@link Component}'s DOM element.
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    TextTrackDisplay.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-text-track-display'
+      }, {
+        'aria-live': 'off',
+        'aria-atomic': 'true'
+      });
+    };
+
+    /**
+     * Clear all displayed {@link TextTrack}s.
+     */
+
+
+    TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {
+      if (typeof window_1.WebVTT === 'function') {
+        window_1.WebVTT.processCues(window_1, [], this.el_);
+      }
+    };
+
+    /**
+     * Update the displayed TextTrack when a either a {@link Player#texttrackchange} or
+     * a {@link Player#fullscreenchange} is fired.
+     *
+     * @listens Player#texttrackchange
+     * @listens Player#fullscreenchange
+     */
+
+
+    TextTrackDisplay.prototype.updateDisplay = function updateDisplay() {
+      var tracks = this.player_.textTracks();
+
+      this.clearDisplay();
+
+      // Track display prioritization model: if multiple tracks are 'showing',
+      //  display the first 'subtitles' or 'captions' track which is 'showing',
+      //  otherwise display the first 'descriptions' track which is 'showing'
+
+      var descriptionsTrack = null;
+      var captionsSubtitlesTrack = null;
+      var i = tracks.length;
+
+      while (i--) {
+        var track = tracks[i];
+
+        if (track.mode === 'showing') {
+          if (track.kind === 'descriptions') {
+            descriptionsTrack = track;
+          } else {
+            captionsSubtitlesTrack = track;
+          }
+        }
+      }
+
+      if (captionsSubtitlesTrack) {
+        if (this.getAttribute('aria-live') !== 'off') {
+          this.setAttribute('aria-live', 'off');
+        }
+        this.updateForTrack(captionsSubtitlesTrack);
+      } else if (descriptionsTrack) {
+        if (this.getAttribute('aria-live') !== 'assertive') {
+          this.setAttribute('aria-live', 'assertive');
+        }
+        this.updateForTrack(descriptionsTrack);
+      }
+    };
+
+    /**
+     * Add an {@link TextTrack} to to the {@link Tech}s {@link TextTrackList}.
+     *
+     * @param {TextTrack} track
+     *        Text track object to be added to the list.
+     */
+
+
+    TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {
+      if (typeof window_1.WebVTT !== 'function' || !track.activeCues) {
+        return;
+      }
+
+      var cues = [];
+
+      for (var _i = 0; _i < track.activeCues.length; _i++) {
+        cues.push(track.activeCues[_i]);
+      }
+
+      window_1.WebVTT.processCues(window_1, cues, this.el_);
+
+      if (!this.player_.textTrackSettings) {
+        return;
+      }
+
+      var overrides = this.player_.textTrackSettings.getValues();
+
+      var i = cues.length;
+
+      while (i--) {
+        var cue = cues[i];
+
+        if (!cue) {
+          continue;
+        }
+
+        var cueDiv = cue.displayState;
+
+        if (overrides.color) {
+          cueDiv.firstChild.style.color = overrides.color;
+        }
+        if (overrides.textOpacity) {
+          tryUpdateStyle(cueDiv.firstChild, 'color', constructColor(overrides.color || '#fff', overrides.textOpacity));
+        }
+        if (overrides.backgroundColor) {
+          cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;
+        }
+        if (overrides.backgroundOpacity) {
+          tryUpdateStyle(cueDiv.firstChild, 'backgroundColor', constructColor(overrides.backgroundColor || '#000', overrides.backgroundOpacity));
+        }
+        if (overrides.windowColor) {
+          if (overrides.windowOpacity) {
+            tryUpdateStyle(cueDiv, 'backgroundColor', constructColor(overrides.windowColor, overrides.windowOpacity));
+          } else {
+            cueDiv.style.backgroundColor = overrides.windowColor;
+          }
+        }
+        if (overrides.edgeStyle) {
+          if (overrides.edgeStyle === 'dropshadow') {
+            cueDiv.firstChild.style.textShadow = '2px 2px 3px ' + darkGray + ', 2px 2px 4px ' + darkGray + ', 2px 2px 5px ' + darkGray;
+          } else if (overrides.edgeStyle === 'raised') {
+            cueDiv.firstChild.style.textShadow = '1px 1px ' + darkGray + ', 2px 2px ' + darkGray + ', 3px 3px ' + darkGray;
+          } else if (overrides.edgeStyle === 'depressed') {
+            cueDiv.firstChild.style.textShadow = '1px 1px ' + lightGray + ', 0 1px ' + lightGray + ', -1px -1px ' + darkGray + ', 0 -1px ' + darkGray;
+          } else if (overrides.edgeStyle === 'uniform') {
+            cueDiv.firstChild.style.textShadow = '0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray;
+          }
+        }
+        if (overrides.fontPercent && overrides.fontPercent !== 1) {
+          var fontSize = window_1.parseFloat(cueDiv.style.fontSize);
+
+          cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';
+          cueDiv.style.height = 'auto';
+          cueDiv.style.top = 'auto';
+          cueDiv.style.bottom = '2px';
+        }
+        if (overrides.fontFamily && overrides.fontFamily !== 'default') {
+          if (overrides.fontFamily === 'small-caps') {
+            cueDiv.firstChild.style.fontVariant = 'small-caps';
+          } else {
+            cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];
+          }
+        }
+      }
+    };
+
+    return TextTrackDisplay;
+  }(Component);
+
+  Component.registerComponent('TextTrackDisplay', TextTrackDisplay);
+
+  /**
+   * @file loading-spinner.js
+   */
+
+  /**
+   * A loading spinner for use during waiting/loading events.
+   *
+   * @extends Component
+   */
+
+  var LoadingSpinner = function (_Component) {
+    inherits(LoadingSpinner, _Component);
+
+    function LoadingSpinner() {
+      classCallCheck(this, LoadingSpinner);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the `LoadingSpinner`s DOM element.
+     *
+     * @return {Element}
+     *         The dom element that gets created.
+     */
+    LoadingSpinner.prototype.createEl = function createEl$$1() {
+      var isAudio = this.player_.isAudio();
+      var playerType = this.localize(isAudio ? 'Audio Player' : 'Video Player');
+      var controlText = createEl('span', {
+        className: 'vjs-control-text',
+        innerHTML: this.localize('{1} is loading.', [playerType])
+      });
+
+      var el = _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-loading-spinner',
+        dir: 'ltr'
+      });
+
+      el.appendChild(controlText);
+
+      return el;
+    };
+
+    return LoadingSpinner;
+  }(Component);
+
+  Component.registerComponent('LoadingSpinner', LoadingSpinner);
+
+  /**
+   * @file button.js
+   */
+
+  /**
+   * Base class for all buttons.
+   *
+   * @extends ClickableComponent
+   */
+
+  var Button = function (_ClickableComponent) {
+    inherits(Button, _ClickableComponent);
+
+    function Button() {
+      classCallCheck(this, Button);
+      return possibleConstructorReturn(this, _ClickableComponent.apply(this, arguments));
+    }
+
+    /**
+     * Create the `Button`s DOM element.
+     *
+     * @param {string} [tag="button"]
+     *        The element's node type. This argument is IGNORED: no matter what
+     *        is passed, it will always create a `button` element.
+     *
+     * @param {Object} [props={}]
+     *        An object of properties that should be set on the element.
+     *
+     * @param {Object} [attributes={}]
+     *        An object of attributes that should be set on the element.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+    Button.prototype.createEl = function createEl(tag) {
+      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+      tag = 'button';
+
+      props = assign({
+        innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>',
+        className: this.buildCSSClass()
+      }, props);
+
+      // Add attributes for button element
+      attributes = assign({
+
+        // Necessary since the default button type is "submit"
+        type: 'button'
+      }, attributes);
+
+      var el = Component.prototype.createEl.call(this, tag, props, attributes);
+
+      this.createControlTextEl(el);
+
+      return el;
+    };
+
+    /**
+     * Add a child `Component` inside of this `Button`.
+     *
+     * @param {string|Component} child
+     *        The name or instance of a child to add.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of options that will get passed to children of
+     *        the child.
+     *
+     * @return {Component}
+     *         The `Component` that gets added as a child. When using a string the
+     *         `Component` will get created by this process.
+     *
+     * @deprecated since version 5
+     */
+
+
+    Button.prototype.addChild = function addChild(child) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+      var className = this.constructor.name;
+
+      log$1.warn('Adding an actionable (user controllable) child to a Button (' + className + ') is not supported; use a ClickableComponent instead.');
+
+      // Avoid the error message generated by ClickableComponent's addChild method
+      return Component.prototype.addChild.call(this, child, options);
+    };
+
+    /**
+     * Enable the `Button` element so that it can be activated or clicked. Use this with
+     * {@link Button#disable}.
+     */
+
+
+    Button.prototype.enable = function enable() {
+      _ClickableComponent.prototype.enable.call(this);
+      this.el_.removeAttribute('disabled');
+    };
+
+    /**
+     * Disable the `Button` element so that it cannot be activated or clicked. Use this with
+     * {@link Button#enable}.
+     */
+
+
+    Button.prototype.disable = function disable() {
+      _ClickableComponent.prototype.disable.call(this);
+      this.el_.setAttribute('disabled', 'disabled');
+    };
+
+    /**
+     * This gets called when a `Button` has focus and `keydown` is triggered via a key
+     * press.
+     *
+     * @param {EventTarget~Event} event
+     *        The event that caused this function to get called.
+     *
+     * @listens keydown
+     */
+
+
+    Button.prototype.handleKeyPress = function handleKeyPress(event) {
+
+      // Ignore Space (32) or Enter (13) key operation, which is handled by the browser for a button.
+      if (event.which === 32 || event.which === 13) {
+        return;
+      }
+
+      // Pass keypress handling up for unsupported keys
+      _ClickableComponent.prototype.handleKeyPress.call(this, event);
+    };
+
+    return Button;
+  }(ClickableComponent);
+
+  Component.registerComponent('Button', Button);
+
+  /**
+   * @file big-play-button.js
+   */
+
+  /**
+   * The initial play button that shows before the video has played. The hiding of the
+   * `BigPlayButton` get done via CSS and `Player` states.
+   *
+   * @extends Button
+   */
+
+  var BigPlayButton = function (_Button) {
+    inherits(BigPlayButton, _Button);
+
+    function BigPlayButton(player, options) {
+      classCallCheck(this, BigPlayButton);
+
+      var _this = possibleConstructorReturn(this, _Button.call(this, player, options));
+
+      _this.mouseused_ = false;
+
+      _this.on('mousedown', _this.handleMouseDown);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object. Always returns 'vjs-big-play-button'.
+     */
+
+
+    BigPlayButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-big-play-button';
+    };
+
+    /**
+     * This gets called when a `BigPlayButton` "clicked". See {@link ClickableComponent}
+     * for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    BigPlayButton.prototype.handleClick = function handleClick(event) {
+      var playPromise = this.player_.play();
+
+      // exit early if clicked via the mouse
+      if (this.mouseused_ && event.clientX && event.clientY) {
+        return;
+      }
+
+      var cb = this.player_.getChild('controlBar');
+      var playToggle = cb && cb.getChild('playToggle');
+
+      if (!playToggle) {
+        this.player_.focus();
+        return;
+      }
+
+      var playFocus = function playFocus() {
+        return playToggle.focus();
+      };
+
+      if (isPromise(playPromise)) {
+        playPromise.then(playFocus, function () {
+        });
+      } else {
+        this.setTimeout(playFocus, 1);
+      }
+    };
+
+    BigPlayButton.prototype.handleKeyPress = function handleKeyPress(event) {
+      this.mouseused_ = false;
+
+      _Button.prototype.handleKeyPress.call(this, event);
+    };
+
+    BigPlayButton.prototype.handleMouseDown = function handleMouseDown(event) {
+      this.mouseused_ = true;
+    };
+
+    return BigPlayButton;
+  }(Button);
+
+  /**
+   * The text that should display over the `BigPlayButton`s controls. Added to for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  BigPlayButton.prototype.controlText_ = 'Play Video';
+
+  Component.registerComponent('BigPlayButton', BigPlayButton);
+
+  /**
+   * @file close-button.js
+   */
+
+  /**
+   * The `CloseButton` is a `{@link Button}` that fires a `close` event when
+   * it gets clicked.
+   *
+   * @extends Button
+   */
+
+  var CloseButton = function (_Button) {
+    inherits(CloseButton, _Button);
+
+    /**
+     * Creates an instance of the this class.
+     *
+     * @param  {Player} player
+     *         The `Player` that this class should be attached to.
+     *
+     * @param  {Object} [options]
+     *         The key/value store of player options.
+     */
+    function CloseButton(player, options) {
+      classCallCheck(this, CloseButton);
+
+      var _this = possibleConstructorReturn(this, _Button.call(this, player, options));
+
+      _this.controlText(options && options.controlText || _this.localize('Close'));
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    CloseButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-close-button ' + _Button.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * This gets called when a `CloseButton` gets clicked. See
+     * {@link ClickableComponent#handleClick} for more information on when this will be
+     * triggered
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     * @fires CloseButton#close
+     */
+
+
+    CloseButton.prototype.handleClick = function handleClick(event) {
+
+      /**
+       * Triggered when the a `CloseButton` is clicked.
+       *
+       * @event CloseButton#close
+       * @type {EventTarget~Event}
+       *
+       * @property {boolean} [bubbles=false]
+       *           set to false so that the close event does not
+       *           bubble up to parents if there is no listener
+       */
+      this.trigger({type: 'close', bubbles: false});
+    };
+
+    return CloseButton;
+  }(Button);
+
+  Component.registerComponent('CloseButton', CloseButton);
+
+  /**
+   * @file play-toggle.js
+   */
+
+  /**
+   * Button to toggle between play and pause.
+   *
+   * @extends Button
+   */
+
+  var PlayToggle = function (_Button) {
+    inherits(PlayToggle, _Button);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function PlayToggle(player, options) {
+      classCallCheck(this, PlayToggle);
+
+      var _this = possibleConstructorReturn(this, _Button.call(this, player, options));
+
+      _this.on(player, 'play', _this.handlePlay);
+      _this.on(player, 'pause', _this.handlePause);
+      _this.on(player, 'ended', _this.handleEnded);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    PlayToggle.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-play-control ' + _Button.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * This gets called when an `PlayToggle` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    PlayToggle.prototype.handleClick = function handleClick(event) {
+      if (this.player_.paused()) {
+        this.player_.play();
+      } else {
+        this.player_.pause();
+      }
+    };
+
+    /**
+     * This gets called once after the video has ended and the user seeks so that
+     * we can change the replay button back to a play button.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#seeked
+     */
+
+
+    PlayToggle.prototype.handleSeeked = function handleSeeked(event) {
+      this.removeClass('vjs-ended');
+
+      if (this.player_.paused()) {
+        this.handlePause(event);
+      } else {
+        this.handlePlay(event);
+      }
+    };
+
+    /**
+     * Add the vjs-playing class to the element so it can change appearance.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#play
+     */
+
+
+    PlayToggle.prototype.handlePlay = function handlePlay(event) {
+      this.removeClass('vjs-ended');
+      this.removeClass('vjs-paused');
+      this.addClass('vjs-playing');
+      // change the button text to "Pause"
+      this.controlText('Pause');
+    };
+
+    /**
+     * Add the vjs-paused class to the element so it can change appearance.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#pause
+     */
+
+
+    PlayToggle.prototype.handlePause = function handlePause(event) {
+      this.removeClass('vjs-playing');
+      this.addClass('vjs-paused');
+      // change the button text to "Play"
+      this.controlText('Play');
+    };
+
+    /**
+     * Add the vjs-ended class to the element so it can change appearance
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#ended
+     */
+
+
+    PlayToggle.prototype.handleEnded = function handleEnded(event) {
+      this.removeClass('vjs-playing');
+      this.addClass('vjs-ended');
+      // change the button text to "Replay"
+      this.controlText('Replay');
+
+      // on the next seek remove the replay button
+      this.one(this.player_, 'seeked', this.handleSeeked);
+    };
+
+    return PlayToggle;
+  }(Button);
+
+  /**
+   * The text that should display over the `PlayToggle`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  PlayToggle.prototype.controlText_ = 'Play';
+
+  Component.registerComponent('PlayToggle', PlayToggle);
+
+  /**
+   * @file format-time.js
+   * @module format-time
+   */
+
+  /**
+   * Format seconds as a time string, H:MM:SS or M:SS. Supplying a guide (in seconds)
+   * will force a number of leading zeros to cover the length of the guide.
+   *
+   * @param {number} seconds
+   *        Number of seconds to be turned into a string
+   *
+   * @param {number} guide
+   *        Number (in seconds) to model the string after
+   *
+   * @return {string}
+   *         Time formatted as H:MM:SS or M:SS
+   */
+  var defaultImplementation = function defaultImplementation(seconds, guide) {
+    seconds = seconds < 0 ? 0 : seconds;
+    var s = Math.floor(seconds % 60);
+    var m = Math.floor(seconds / 60 % 60);
+    var h = Math.floor(seconds / 3600);
+    var gm = Math.floor(guide / 60 % 60);
+    var gh = Math.floor(guide / 3600);
+
+    // handle invalid times
+    if (isNaN(seconds) || seconds === Infinity) {
+      // '-' is false for all relational operators (e.g. <, >=) so this setting
+      // will add the minimum number of fields specified by the guide
+      h = m = s = '-';
+    }
+
+    // Check if we need to show hours
+    h = h > 0 || gh > 0 ? h + ':' : '';
+
+    // If hours are showing, we may need to add a leading zero.
+    // Always show at least one digit of minutes.
+    m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';
+
+    // Check if leading zero is need for seconds
+    s = s < 10 ? '0' + s : s;
+
+    return h + m + s;
+  };
+
+  var implementation = defaultImplementation;
+
+  /**
+   * Replaces the default formatTime implementation with a custom implementation.
+   *
+   * @param {Function} customImplementation
+   *        A function which will be used in place of the default formatTime implementation.
+   *        Will receive the current time in seconds and the guide (in seconds) as arguments.
+   */
+  function setFormatTime(customImplementation) {
+    implementation = customImplementation;
+  }
+
+  /**
+   * Resets formatTime to the default implementation.
+   */
+  function resetFormatTime() {
+    implementation = defaultImplementation;
+  }
+
+  function formatTime(seconds) {
+    var guide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : seconds;
+
+    return implementation(seconds, guide);
+  }
+
+  /**
+   * @file time-display.js
+   */
+
+  /**
+   * Displays the time left in the video
+   *
+   * @extends Component
+   */
+
+  var TimeDisplay = function (_Component) {
+    inherits(TimeDisplay, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function TimeDisplay(player, options) {
+      classCallCheck(this, TimeDisplay);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.throttledUpdateContent = throttle(bind(_this, _this.updateContent), 25);
+      _this.on(player, 'timeupdate', _this.throttledUpdateContent);
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    TimeDisplay.prototype.createEl = function createEl$$1(plainName) {
+      var className = this.buildCSSClass();
+      var el = _Component.prototype.createEl.call(this, 'div', {
+        className: className + ' vjs-time-control vjs-control',
+        innerHTML: '<span class="vjs-control-text">' + this.localize(this.labelText_) + '\xA0</span>'
+      });
+
+      this.contentEl_ = createEl('span', {
+        className: className + '-display'
+      }, {
+        // tell screen readers not to automatically read the time as it changes
+        'aria-live': 'off'
+      });
+
+      this.updateTextNode_();
+      el.appendChild(this.contentEl_);
+      return el;
+    };
+
+    TimeDisplay.prototype.dispose = function dispose() {
+      this.contentEl_ = null;
+      this.textNode_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Updates the "remaining time" text node with new content using the
+     * contents of the `formattedTime_` property.
+     *
+     * @private
+     */
+
+
+    TimeDisplay.prototype.updateTextNode_ = function updateTextNode_() {
+      if (!this.contentEl_) {
+        return;
+      }
+
+      while (this.contentEl_.firstChild) {
+        this.contentEl_.removeChild(this.contentEl_.firstChild);
+      }
+
+      this.textNode_ = document_1.createTextNode(this.formattedTime_ || this.formatTime_(0));
+      this.contentEl_.appendChild(this.textNode_);
+    };
+
+    /**
+     * Generates a formatted time for this component to use in display.
+     *
+     * @param  {number} time
+     *         A numeric time, in seconds.
+     *
+     * @return {string}
+     *         A formatted time
+     *
+     * @private
+     */
+
+
+    TimeDisplay.prototype.formatTime_ = function formatTime_(time) {
+      return formatTime(time);
+    };
+
+    /**
+     * Updates the time display text node if it has what was passed in changed
+     * the formatted time.
+     *
+     * @param {number} time
+     *        The time to update to
+     *
+     * @private
+     */
+
+
+    TimeDisplay.prototype.updateFormattedTime_ = function updateFormattedTime_(time) {
+      var formattedTime = this.formatTime_(time);
+
+      if (formattedTime === this.formattedTime_) {
+        return;
+      }
+
+      this.formattedTime_ = formattedTime;
+      this.requestAnimationFrame(this.updateTextNode_);
+    };
+
+    /**
+     * To be filled out in the child class, should update the displayed time
+     * in accordance with the fact that the current time has changed.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `timeupdate`  event that caused this to run.
+     *
+     * @listens Player#timeupdate
+     */
+
+
+    TimeDisplay.prototype.updateContent = function updateContent(event) {
+    };
+
+    return TimeDisplay;
+  }(Component);
+
+  /**
+   * The text that is added to the `TimeDisplay` for screen reader users.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  TimeDisplay.prototype.labelText_ = 'Time';
+
+  /**
+   * The text that should display over the `TimeDisplay`s controls. Added to for localization.
+   *
+   * @type {string}
+   * @private
+   *
+   * @deprecated in v7; controlText_ is not used in non-active display Components
+   */
+  TimeDisplay.prototype.controlText_ = 'Time';
+
+  Component.registerComponent('TimeDisplay', TimeDisplay);
+
+  /**
+   * @file current-time-display.js
+   */
+
+  /**
+   * Displays the current time
+   *
+   * @extends Component
+   */
+
+  var CurrentTimeDisplay = function (_TimeDisplay) {
+    inherits(CurrentTimeDisplay, _TimeDisplay);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function CurrentTimeDisplay(player, options) {
+      classCallCheck(this, CurrentTimeDisplay);
+
+      var _this = possibleConstructorReturn(this, _TimeDisplay.call(this, player, options));
+
+      _this.on(player, 'ended', _this.handleEnded);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    CurrentTimeDisplay.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-current-time';
+    };
+
+    /**
+     * Update current time display
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `timeupdate` event that caused this function to run.
+     *
+     * @listens Player#timeupdate
+     */
+
+
+    CurrentTimeDisplay.prototype.updateContent = function updateContent(event) {
+      // Allows for smooth scrubbing, when player can't keep up.
+      var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
+
+      this.updateFormattedTime_(time);
+    };
+
+    /**
+     * When the player fires ended there should be no time left. Sadly
+     * this is not always the case, lets make it seem like that is the case
+     * for users.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `ended` event that caused this to run.
+     *
+     * @listens Player#ended
+     */
+
+
+    CurrentTimeDisplay.prototype.handleEnded = function handleEnded(event) {
+      if (!this.player_.duration()) {
+        return;
+      }
+      this.updateFormattedTime_(this.player_.duration());
+    };
+
+    return CurrentTimeDisplay;
+  }(TimeDisplay);
+
+  /**
+   * The text that is added to the `CurrentTimeDisplay` for screen reader users.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  CurrentTimeDisplay.prototype.labelText_ = 'Current Time';
+
+  /**
+   * The text that should display over the `CurrentTimeDisplay`s controls. Added to for localization.
+   *
+   * @type {string}
+   * @private
+   *
+   * @deprecated in v7; controlText_ is not used in non-active display Components
+   */
+  CurrentTimeDisplay.prototype.controlText_ = 'Current Time';
+
+  Component.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
+
+  /**
+   * @file duration-display.js
+   */
+
+  /**
+   * Displays the duration
+   *
+   * @extends Component
+   */
+
+  var DurationDisplay = function (_TimeDisplay) {
+    inherits(DurationDisplay, _TimeDisplay);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function DurationDisplay(player, options) {
+      classCallCheck(this, DurationDisplay);
+
+      // we do not want to/need to throttle duration changes,
+      // as they should always display the changed duration as
+      // it has changed
+      var _this = possibleConstructorReturn(this, _TimeDisplay.call(this, player, options));
+
+      _this.on(player, 'durationchange', _this.updateContent);
+
+      // Also listen for timeupdate (in the parent) and loadedmetadata because removing those
+      // listeners could have broken dependent applications/libraries. These
+      // can likely be removed for 7.0.
+      _this.on(player, 'loadedmetadata', _this.throttledUpdateContent);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    DurationDisplay.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-duration';
+    };
+
+    /**
+     * Update duration time display.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `durationchange`, `timeupdate`, or `loadedmetadata` event that caused
+     *        this function to be called.
+     *
+     * @listens Player#durationchange
+     * @listens Player#timeupdate
+     * @listens Player#loadedmetadata
+     */
+
+
+    DurationDisplay.prototype.updateContent = function updateContent(event) {
+      var duration = this.player_.duration();
+
+      if (duration && this.duration_ !== duration) {
+        this.duration_ = duration;
+        this.updateFormattedTime_(duration);
+      }
+    };
+
+    return DurationDisplay;
+  }(TimeDisplay);
+
+  /**
+   * The text that is added to the `DurationDisplay` for screen reader users.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  DurationDisplay.prototype.labelText_ = 'Duration';
+
+  /**
+   * The text that should display over the `DurationDisplay`s controls. Added to for localization.
+   *
+   * @type {string}
+   * @private
+   *
+   * @deprecated in v7; controlText_ is not used in non-active display Components
+   */
+  DurationDisplay.prototype.controlText_ = 'Duration';
+
+  Component.registerComponent('DurationDisplay', DurationDisplay);
+
+  /**
+   * @file time-divider.js
+   */
+
+  /**
+   * The separator between the current time and duration.
+   * Can be hidden if it's not needed in the design.
+   *
+   * @extends Component
+   */
+
+  var TimeDivider = function (_Component) {
+    inherits(TimeDivider, _Component);
+
+    function TimeDivider() {
+      classCallCheck(this, TimeDivider);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the component's DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+    TimeDivider.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-time-control vjs-time-divider',
+        innerHTML: '<div><span>/</span></div>'
+      });
+    };
+
+    return TimeDivider;
+  }(Component);
+
+  Component.registerComponent('TimeDivider', TimeDivider);
+
+  /**
+   * @file remaining-time-display.js
+   */
+  /**
+   * Displays the time left in the video
+   *
+   * @extends Component
+   */
+
+  var RemainingTimeDisplay = function (_TimeDisplay) {
+    inherits(RemainingTimeDisplay, _TimeDisplay);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function RemainingTimeDisplay(player, options) {
+      classCallCheck(this, RemainingTimeDisplay);
+
+      var _this = possibleConstructorReturn(this, _TimeDisplay.call(this, player, options));
+
+      _this.on(player, 'durationchange', _this.throttledUpdateContent);
+      _this.on(player, 'ended', _this.handleEnded);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    RemainingTimeDisplay.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-remaining-time';
+    };
+
+    /**
+     * The remaining time display prefixes numbers with a "minus" character.
+     *
+     * @param  {number} time
+     *         A numeric time, in seconds.
+     *
+     * @return {string}
+     *         A formatted time
+     *
+     * @private
+     */
+
+
+    RemainingTimeDisplay.prototype.formatTime_ = function formatTime_(time) {
+      // TODO: The "-" should be decorative, and not announced by a screen reader
+      return '-' + _TimeDisplay.prototype.formatTime_.call(this, time);
+    };
+
+    /**
+     * Update remaining time display.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `timeupdate` or `durationchange` event that caused this to run.
+     *
+     * @listens Player#timeupdate
+     * @listens Player#durationchange
+     */
+
+
+    RemainingTimeDisplay.prototype.updateContent = function updateContent(event) {
+      if (!this.player_.duration()) {
+        return;
+      }
+
+      // @deprecated We should only use remainingTimeDisplay
+      // as of video.js 7
+      if (this.player_.remainingTimeDisplay) {
+        this.updateFormattedTime_(this.player_.remainingTimeDisplay());
+      } else {
+        this.updateFormattedTime_(this.player_.remainingTime());
+      }
+    };
+
+    /**
+     * When the player fires ended there should be no time left. Sadly
+     * this is not always the case, lets make it seem like that is the case
+     * for users.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `ended` event that caused this to run.
+     *
+     * @listens Player#ended
+     */
+
+
+    RemainingTimeDisplay.prototype.handleEnded = function handleEnded(event) {
+      if (!this.player_.duration()) {
+        return;
+      }
+      this.updateFormattedTime_(0);
+    };
+
+    return RemainingTimeDisplay;
+  }(TimeDisplay);
+
+  /**
+   * The text that is added to the `RemainingTimeDisplay` for screen reader users.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  RemainingTimeDisplay.prototype.labelText_ = 'Remaining Time';
+
+  /**
+   * The text that should display over the `RemainingTimeDisplay`s controls. Added to for localization.
+   *
+   * @type {string}
+   * @private
+   *
+   * @deprecated in v7; controlText_ is not used in non-active display Components
+   */
+  RemainingTimeDisplay.prototype.controlText_ = 'Remaining Time';
+
+  Component.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
+
+  /**
+   * @file live-display.js
+   */
+
+  // TODO - Future make it click to snap to live
+
+  /**
+   * Displays the live indicator when duration is Infinity.
+   *
+   * @extends Component
+   */
+
+  var LiveDisplay = function (_Component) {
+    inherits(LiveDisplay, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function LiveDisplay(player, options) {
+      classCallCheck(this, LiveDisplay);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.updateShowing();
+      _this.on(_this.player(), 'durationchange', _this.updateShowing);
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    LiveDisplay.prototype.createEl = function createEl$$1() {
+      var el = _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-live-control vjs-control'
+      });
+
+      this.contentEl_ = createEl('div', {
+        className: 'vjs-live-display',
+        innerHTML: '<span class="vjs-control-text">' + this.localize('Stream Type') + '\xA0</span>' + this.localize('LIVE')
+      }, {
+        'aria-live': 'off'
+      });
+
+      el.appendChild(this.contentEl_);
+      return el;
+    };
+
+    LiveDisplay.prototype.dispose = function dispose() {
+      this.contentEl_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Check the duration to see if the LiveDisplay should be showing or not. Then show/hide
+     * it accordingly
+     *
+     * @param {EventTarget~Event} [event]
+     *        The {@link Player#durationchange} event that caused this function to run.
+     *
+     * @listens Player#durationchange
+     */
+
+
+    LiveDisplay.prototype.updateShowing = function updateShowing(event) {
+      if (this.player().duration() === Infinity) {
+        this.show();
+      } else {
+        this.hide();
+      }
+    };
+
+    return LiveDisplay;
+  }(Component);
+
+  Component.registerComponent('LiveDisplay', LiveDisplay);
+
+  /**
+   * @file slider.js
+   */
+
+  /**
+   * The base functionality for a slider. Can be vertical or horizontal.
+   * For instance the volume bar or the seek bar on a video is a slider.
+   *
+   * @extends Component
+   */
+
+  var Slider = function (_Component) {
+    inherits(Slider, _Component);
+
+    /**
+     * Create an instance of this class
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function Slider(player, options) {
+      classCallCheck(this, Slider);
+
+      // Set property names to bar to match with the child Slider class is looking for
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.bar = _this.getChild(_this.options_.barName);
+
+      // Set a horizontal or vertical class on the slider depending on the slider type
+      _this.vertical(!!_this.options_.vertical);
+
+      _this.enable();
+      return _this;
+    }
+
+    /**
+     * Are controls are currently enabled for this slider or not.
+     *
+     * @return {boolean}
+     *         true if controls are enabled, false otherwise
+     */
+
+
+    Slider.prototype.enabled = function enabled() {
+      return this.enabled_;
+    };
+
+    /**
+     * Enable controls for this slider if they are disabled
+     */
+
+
+    Slider.prototype.enable = function enable() {
+      if (this.enabled()) {
+        return;
+      }
+
+      this.on('mousedown', this.handleMouseDown);
+      this.on('touchstart', this.handleMouseDown);
+      this.on('focus', this.handleFocus);
+      this.on('blur', this.handleBlur);
+      this.on('click', this.handleClick);
+
+      this.on(this.player_, 'controlsvisible', this.update);
+
+      if (this.playerEvent) {
+        this.on(this.player_, this.playerEvent, this.update);
+      }
+
+      this.removeClass('disabled');
+      this.setAttribute('tabindex', 0);
+
+      this.enabled_ = true;
+    };
+
+    /**
+     * Disable controls for this slider if they are enabled
+     */
+
+
+    Slider.prototype.disable = function disable() {
+      if (!this.enabled()) {
+        return;
+      }
+      var doc = this.bar.el_.ownerDocument;
+
+      this.off('mousedown', this.handleMouseDown);
+      this.off('touchstart', this.handleMouseDown);
+      this.off('focus', this.handleFocus);
+      this.off('blur', this.handleBlur);
+      this.off('click', this.handleClick);
+      this.off(this.player_, 'controlsvisible', this.update);
+      this.off(doc, 'mousemove', this.handleMouseMove);
+      this.off(doc, 'mouseup', this.handleMouseUp);
+      this.off(doc, 'touchmove', this.handleMouseMove);
+      this.off(doc, 'touchend', this.handleMouseUp);
+      this.removeAttribute('tabindex');
+
+      this.addClass('disabled');
+
+      if (this.playerEvent) {
+        this.off(this.player_, this.playerEvent, this.update);
+      }
+      this.enabled_ = false;
+    };
+
+    /**
+     * Create the `Slider`s DOM element.
+     *
+     * @param {string} type
+     *        Type of element to create.
+     *
+     * @param {Object} [props={}]
+     *        List of properties in Object form.
+     *
+     * @param {Object} [attributes={}]
+     *        list of attributes in Object form.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    Slider.prototype.createEl = function createEl$$1(type) {
+      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+      // Add the slider element class to all sub classes
+      props.className = props.className + ' vjs-slider';
+      props = assign({
+        tabIndex: 0
+      }, props);
+
+      attributes = assign({
+        'role': 'slider',
+        'aria-valuenow': 0,
+        'aria-valuemin': 0,
+        'aria-valuemax': 100,
+        'tabIndex': 0
+      }, attributes);
+
+      return _Component.prototype.createEl.call(this, type, props, attributes);
+    };
+
+    /**
+     * Handle `mousedown` or `touchstart` events on the `Slider`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown` or `touchstart` event that triggered this function
+     *
+     * @listens mousedown
+     * @listens touchstart
+     * @fires Slider#slideractive
+     */
+
+
+    Slider.prototype.handleMouseDown = function handleMouseDown(event) {
+      var doc = this.bar.el_.ownerDocument;
+
+      event.preventDefault();
+      blockTextSelection();
+
+      this.addClass('vjs-sliding');
+      /**
+       * Triggered when the slider is in an active state
+       *
+       * @event Slider#slideractive
+       * @type {EventTarget~Event}
+       */
+      this.trigger('slideractive');
+
+      this.on(doc, 'mousemove', this.handleMouseMove);
+      this.on(doc, 'mouseup', this.handleMouseUp);
+      this.on(doc, 'touchmove', this.handleMouseMove);
+      this.on(doc, 'touchend', this.handleMouseUp);
+
+      this.handleMouseMove(event);
+    };
+
+    /**
+     * Handle the `mousemove`, `touchmove`, and `mousedown` events on this `Slider`.
+     * The `mousemove` and `touchmove` events will only only trigger this function during
+     * `mousedown` and `touchstart`. This is due to {@link Slider#handleMouseDown} and
+     * {@link Slider#handleMouseUp}.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown`, `mousemove`, `touchstart`, or `touchmove` event that triggered
+     *        this function
+     *
+     * @listens mousemove
+     * @listens touchmove
+     */
+
+
+    Slider.prototype.handleMouseMove = function handleMouseMove(event) {
+    };
+
+    /**
+     * Handle `mouseup` or `touchend` events on the `Slider`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mouseup` or `touchend` event that triggered this function.
+     *
+     * @listens touchend
+     * @listens mouseup
+     * @fires Slider#sliderinactive
+     */
+
+
+    Slider.prototype.handleMouseUp = function handleMouseUp() {
+      var doc = this.bar.el_.ownerDocument;
+
+      unblockTextSelection();
+
+      this.removeClass('vjs-sliding');
+      /**
+       * Triggered when the slider is no longer in an active state.
+       *
+       * @event Slider#sliderinactive
+       * @type {EventTarget~Event}
+       */
+      this.trigger('sliderinactive');
+
+      this.off(doc, 'mousemove', this.handleMouseMove);
+      this.off(doc, 'mouseup', this.handleMouseUp);
+      this.off(doc, 'touchmove', this.handleMouseMove);
+      this.off(doc, 'touchend', this.handleMouseUp);
+
+      this.update();
+    };
+
+    /**
+     * Update the progress bar of the `Slider`.
+     *
+     * @returns {number}
+     *          The percentage of progress the progress bar represents as a
+     *          number from 0 to 1.
+     */
+
+
+    Slider.prototype.update = function update() {
+
+      // In VolumeBar init we have a setTimeout for update that pops and update
+      // to the end of the execution stack. The player is destroyed before then
+      // update will cause an error
+      if (!this.el_) {
+        return;
+      }
+
+      // If scrubbing, we could use a cached value to make the handle keep up
+      // with the user's mouse. On HTML5 browsers scrubbing is really smooth, but
+      // some flash players are slow, so we might want to utilize this later.
+      // var progress =  (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
+      var progress = this.getPercent();
+      var bar = this.bar;
+
+      // If there's no bar...
+      if (!bar) {
+        return;
+      }
+
+      // Protect against no duration and other division issues
+      if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {
+        progress = 0;
+      }
+
+      // Convert to a percentage for setting
+      var percentage = (progress * 100).toFixed(2) + '%';
+      var style = bar.el().style;
+
+      // Set the new bar width or height
+      if (this.vertical()) {
+        style.height = percentage;
+      } else {
+        style.width = percentage;
+      }
+
+      return progress;
+    };
+
+    /**
+     * Calculate distance for slider
+     *
+     * @param {EventTarget~Event} event
+     *        The event that caused this function to run.
+     *
+     * @return {number}
+     *         The current position of the Slider.
+     *         - position.x for vertical `Slider`s
+     *         - position.y for horizontal `Slider`s
+     */
+
+
+    Slider.prototype.calculateDistance = function calculateDistance(event) {
+      var position = getPointerPosition(this.el_, event);
+
+      if (this.vertical()) {
+        return position.y;
+      }
+      return position.x;
+    };
+
+    /**
+     * Handle a `focus` event on this `Slider`.
+     *
+     * @param {EventTarget~Event} event
+     *        The `focus` event that caused this function to run.
+     *
+     * @listens focus
+     */
+
+
+    Slider.prototype.handleFocus = function handleFocus() {
+      this.on(this.bar.el_.ownerDocument, 'keydown', this.handleKeyPress);
+    };
+
+    /**
+     * Handle a `keydown` event on the `Slider`. Watches for left, rigth, up, and down
+     * arrow keys. This function will only be called when the slider has focus. See
+     * {@link Slider#handleFocus} and {@link Slider#handleBlur}.
+     *
+     * @param {EventTarget~Event} event
+     *        the `keydown` event that caused this function to run.
+     *
+     * @listens keydown
+     */
+
+
+    Slider.prototype.handleKeyPress = function handleKeyPress(event) {
+      // Left and Down Arrows
+      if (event.which === 37 || event.which === 40) {
+        event.preventDefault();
+        this.stepBack();
+
+        // Up and Right Arrows
+      } else if (event.which === 38 || event.which === 39) {
+        event.preventDefault();
+        this.stepForward();
+      }
+    };
+
+    /**
+     * Handle a `blur` event on this `Slider`.
+     *
+     * @param {EventTarget~Event} event
+     *        The `blur` event that caused this function to run.
+     *
+     * @listens blur
+     */
+
+    Slider.prototype.handleBlur = function handleBlur() {
+      this.off(this.bar.el_.ownerDocument, 'keydown', this.handleKeyPress);
+    };
+
+    /**
+     * Listener for click events on slider, used to prevent clicks
+     *   from bubbling up to parent elements like button menus.
+     *
+     * @param {Object} event
+     *        Event that caused this object to run
+     */
+
+
+    Slider.prototype.handleClick = function handleClick(event) {
+      event.stopImmediatePropagation();
+      event.preventDefault();
+    };
+
+    /**
+     * Get/set if slider is horizontal for vertical
+     *
+     * @param {boolean} [bool]
+     *        - true if slider is vertical,
+     *        - false is horizontal
+     *
+     * @return {boolean}
+     *         - true if slider is vertical, and getting
+     *         - false if the slider is horizontal, and getting
+     */
+
+
+    Slider.prototype.vertical = function vertical(bool) {
+      if (bool === undefined) {
+        return this.vertical_ || false;
+      }
+
+      this.vertical_ = !!bool;
+
+      if (this.vertical_) {
+        this.addClass('vjs-slider-vertical');
+      } else {
+        this.addClass('vjs-slider-horizontal');
+      }
+    };
+
+    return Slider;
+  }(Component);
+
+  Component.registerComponent('Slider', Slider);
+
+  /**
+   * @file load-progress-bar.js
+   */
+
+  /**
+   * Shows loading progress
+   *
+   * @extends Component
+   */
+
+  var LoadProgressBar = function (_Component) {
+    inherits(LoadProgressBar, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function LoadProgressBar(player, options) {
+      classCallCheck(this, LoadProgressBar);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.partEls_ = [];
+      _this.on(player, 'progress', _this.update);
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    LoadProgressBar.prototype.createEl = function createEl$$1() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-load-progress',
+        innerHTML: '<span class="vjs-control-text"><span>' + this.localize('Loaded') + '</span>: 0%</span>'
+      });
+    };
+
+    LoadProgressBar.prototype.dispose = function dispose() {
+      this.partEls_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Update progress bar
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `progress` event that caused this function to run.
+     *
+     * @listens Player#progress
+     */
+
+
+    LoadProgressBar.prototype.update = function update(event) {
+      var buffered = this.player_.buffered();
+      var duration = this.player_.duration();
+      var bufferedEnd = this.player_.bufferedEnd();
+      var children = this.partEls_;
+
+      // get the percent width of a time compared to the total end
+      var percentify = function percentify(time, end) {
+        // no NaN
+        var percent = time / end || 0;
+
+        return (percent >= 1 ? 1 : percent) * 100 + '%';
+      };
+
+      // update the width of the progress bar
+      this.el_.style.width = percentify(bufferedEnd, duration);
+
+      // add child elements to represent the individual buffered time ranges
+      for (var i = 0; i < buffered.length; i++) {
+        var start = buffered.start(i);
+        var end = buffered.end(i);
+        var part = children[i];
+
+        if (!part) {
+          part = this.el_.appendChild(createEl());
+          children[i] = part;
+        }
+
+        // set the percent based on the width of the progress bar (bufferedEnd)
+        part.style.left = percentify(start, bufferedEnd);
+        part.style.width = percentify(end - start, bufferedEnd);
+      }
+
+      // remove unused buffered range elements
+      for (var _i = children.length; _i > buffered.length; _i--) {
+        this.el_.removeChild(children[_i - 1]);
+      }
+      children.length = buffered.length;
+    };
+
+    return LoadProgressBar;
+  }(Component);
+
+  Component.registerComponent('LoadProgressBar', LoadProgressBar);
+
+  /**
+   * @file time-tooltip.js
+   */
+
+  /**
+   * Time tooltips display a time above the progress bar.
+   *
+   * @extends Component
+   */
+
+  var TimeTooltip = function (_Component) {
+    inherits(TimeTooltip, _Component);
+
+    function TimeTooltip() {
+      classCallCheck(this, TimeTooltip);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the time tooltip DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+    TimeTooltip.prototype.createEl = function createEl$$1() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-time-tooltip'
+      });
+    };
+
+    /**
+     * Updates the position of the time tooltip relative to the `SeekBar`.
+     *
+     * @param {Object} seekBarRect
+     *        The `ClientRect` for the {@link SeekBar} element.
+     *
+     * @param {number} seekBarPoint
+     *        A number from 0 to 1, representing a horizontal reference point
+     *        from the left edge of the {@link SeekBar}
+     */
+
+
+    TimeTooltip.prototype.update = function update(seekBarRect, seekBarPoint, content) {
+      var tooltipRect = getBoundingClientRect(this.el_);
+      var playerRect = getBoundingClientRect(this.player_.el());
+      var seekBarPointPx = seekBarRect.width * seekBarPoint;
+
+      // do nothing if either rect isn't available
+      // for example, if the player isn't in the DOM for testing
+      if (!playerRect || !tooltipRect) {
+        return;
+      }
+
+      // This is the space left of the `seekBarPoint` available within the bounds
+      // of the player. We calculate any gap between the left edge of the player
+      // and the left edge of the `SeekBar` and add the number of pixels in the
+      // `SeekBar` before hitting the `seekBarPoint`
+      var spaceLeftOfPoint = seekBarRect.left - playerRect.left + seekBarPointPx;
+
+      // This is the space right of the `seekBarPoint` available within the bounds
+      // of the player. We calculate the number of pixels from the `seekBarPoint`
+      // to the right edge of the `SeekBar` and add to that any gap between the
+      // right edge of the `SeekBar` and the player.
+      var spaceRightOfPoint = seekBarRect.width - seekBarPointPx + (playerRect.right - seekBarRect.right);
+
+      // This is the number of pixels by which the tooltip will need to be pulled
+      // further to the right to center it over the `seekBarPoint`.
+      var pullTooltipBy = tooltipRect.width / 2;
+
+      // Adjust the `pullTooltipBy` distance to the left or right depending on
+      // the results of the space calculations above.
+      if (spaceLeftOfPoint < pullTooltipBy) {
+        pullTooltipBy += pullTooltipBy - spaceLeftOfPoint;
+      } else if (spaceRightOfPoint < pullTooltipBy) {
+        pullTooltipBy = spaceRightOfPoint;
+      }
+
+      // Due to the imprecision of decimal/ratio based calculations and varying
+      // rounding behaviors, there are cases where the spacing adjustment is off
+      // by a pixel or two. This adds insurance to these calculations.
+      if (pullTooltipBy < 0) {
+        pullTooltipBy = 0;
+      } else if (pullTooltipBy > tooltipRect.width) {
+        pullTooltipBy = tooltipRect.width;
+      }
+
+      this.el_.style.right = '-' + pullTooltipBy + 'px';
+      textContent(this.el_, content);
+    };
+
+    return TimeTooltip;
+  }(Component);
+
+  Component.registerComponent('TimeTooltip', TimeTooltip);
+
+  /**
+   * @file play-progress-bar.js
+   */
+
+  /**
+   * Used by {@link SeekBar} to display media playback progress as part of the
+   * {@link ProgressControl}.
+   *
+   * @extends Component
+   */
+
+  var PlayProgressBar = function (_Component) {
+    inherits(PlayProgressBar, _Component);
+
+    function PlayProgressBar() {
+      classCallCheck(this, PlayProgressBar);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the the DOM element for this class.
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+    PlayProgressBar.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-play-progress vjs-slider-bar',
+        innerHTML: '<span class="vjs-control-text"><span>' + this.localize('Progress') + '</span>: 0%</span>'
+      });
+    };
+
+    /**
+     * Enqueues updates to its own DOM as well as the DOM of its
+     * {@link TimeTooltip} child.
+     *
+     * @param {Object} seekBarRect
+     *        The `ClientRect` for the {@link SeekBar} element.
+     *
+     * @param {number} seekBarPoint
+     *        A number from 0 to 1, representing a horizontal reference point
+     *        from the left edge of the {@link SeekBar}
+     */
+
+
+    PlayProgressBar.prototype.update = function update(seekBarRect, seekBarPoint) {
+      var _this2 = this;
+
+      // If there is an existing rAF ID, cancel it so we don't over-queue.
+      if (this.rafId_) {
+        this.cancelAnimationFrame(this.rafId_);
+      }
+
+      this.rafId_ = this.requestAnimationFrame(function () {
+        var time = _this2.player_.scrubbing() ? _this2.player_.getCache().currentTime : _this2.player_.currentTime();
+
+        var content = formatTime(time, _this2.player_.duration());
+        var timeTooltip = _this2.getChild('timeTooltip');
+
+        if (timeTooltip) {
+          timeTooltip.update(seekBarRect, seekBarPoint, content);
+        }
+      });
+    };
+
+    return PlayProgressBar;
+  }(Component);
+
+  /**
+   * Default options for {@link PlayProgressBar}.
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  PlayProgressBar.prototype.options_ = {
+    children: []
+  };
+
+  // Time tooltips should not be added to a player on mobile devices
+  if (!IS_IOS && !IS_ANDROID) {
+    PlayProgressBar.prototype.options_.children.push('timeTooltip');
+  }
+
+  Component.registerComponent('PlayProgressBar', PlayProgressBar);
+
+  /**
+   * @file mouse-time-display.js
+   */
+
+  /**
+   * The {@link MouseTimeDisplay} component tracks mouse movement over the
+   * {@link ProgressControl}. It displays an indicator and a {@link TimeTooltip}
+   * indicating the time which is represented by a given point in the
+   * {@link ProgressControl}.
+   *
+   * @extends Component
+   */
+
+  var MouseTimeDisplay = function (_Component) {
+    inherits(MouseTimeDisplay, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The {@link Player} that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function MouseTimeDisplay(player, options) {
+      classCallCheck(this, MouseTimeDisplay);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.update = throttle(bind(_this, _this.update), 25);
+      return _this;
+    }
+
+    /**
+     * Create the DOM element for this class.
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    MouseTimeDisplay.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-mouse-display'
+      });
+    };
+
+    /**
+     * Enqueues updates to its own DOM as well as the DOM of its
+     * {@link TimeTooltip} child.
+     *
+     * @param {Object} seekBarRect
+     *        The `ClientRect` for the {@link SeekBar} element.
+     *
+     * @param {number} seekBarPoint
+     *        A number from 0 to 1, representing a horizontal reference point
+     *        from the left edge of the {@link SeekBar}
+     */
+
+
+    MouseTimeDisplay.prototype.update = function update(seekBarRect, seekBarPoint) {
+      var _this2 = this;
+
+      // If there is an existing rAF ID, cancel it so we don't over-queue.
+      if (this.rafId_) {
+        this.cancelAnimationFrame(this.rafId_);
+      }
+
+      this.rafId_ = this.requestAnimationFrame(function () {
+        var duration = _this2.player_.duration();
+        var content = formatTime(seekBarPoint * duration, duration);
+
+        _this2.el_.style.left = seekBarRect.width * seekBarPoint + 'px';
+        _this2.getChild('timeTooltip').update(seekBarRect, seekBarPoint, content);
+      });
+    };
+
+    return MouseTimeDisplay;
+  }(Component);
+
+  /**
+   * Default options for `MouseTimeDisplay`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  MouseTimeDisplay.prototype.options_ = {
+    children: ['timeTooltip']
+  };
+
+  Component.registerComponent('MouseTimeDisplay', MouseTimeDisplay);
+
+  /**
+   * @file seek-bar.js
+   */
+
+    // The number of seconds the `step*` functions move the timeline.
+  var STEP_SECONDS = 5;
+
+  // The interval at which the bar should update as it progresses.
+  var UPDATE_REFRESH_INTERVAL = 30;
+
+  /**
+   * Seek bar and container for the progress bars. Uses {@link PlayProgressBar}
+   * as its `bar`.
+   *
+   * @extends Slider
+   */
+
+  var SeekBar = function (_Slider) {
+    inherits(SeekBar, _Slider);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function SeekBar(player, options) {
+      classCallCheck(this, SeekBar);
+
+      var _this = possibleConstructorReturn(this, _Slider.call(this, player, options));
+
+      _this.setEventHandlers_();
+      return _this;
+    }
+
+    /**
+     * Sets the event handlers
+     *
+     * @private
+     */
+
+
+    SeekBar.prototype.setEventHandlers_ = function setEventHandlers_() {
+      var _this2 = this;
+
+      this.update = throttle(bind(this, this.update), UPDATE_REFRESH_INTERVAL);
+
+      this.on(this.player_, 'timeupdate', this.update);
+      this.on(this.player_, 'ended', this.handleEnded);
+
+      // when playing, let's ensure we smoothly update the play progress bar
+      // via an interval
+      this.updateInterval = null;
+
+      this.on(this.player_, ['playing'], function () {
+        _this2.clearInterval(_this2.updateInterval);
+
+        _this2.updateInterval = _this2.setInterval(function () {
+          _this2.requestAnimationFrame(function () {
+            _this2.update();
+          });
+        }, UPDATE_REFRESH_INTERVAL);
+      });
+
+      this.on(this.player_, ['ended', 'pause', 'waiting'], function () {
+        _this2.clearInterval(_this2.updateInterval);
+      });
+
+      this.on(this.player_, ['timeupdate', 'ended'], this.update);
+    };
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    SeekBar.prototype.createEl = function createEl$$1() {
+      return _Slider.prototype.createEl.call(this, 'div', {
+        className: 'vjs-progress-holder'
+      }, {
+        'aria-label': this.localize('Progress Bar')
+      });
+    };
+
+    /**
+     * This function updates the play progress bar and accessibility
+     * attributes to whatever is passed in.
+     *
+     * @param {number} currentTime
+     *        The currentTime value that should be used for accessibility
+     *
+     * @param {number} percent
+     *        The percentage as a decimal that the bar should be filled from 0-1.
+     *
+     * @private
+     */
+
+
+    SeekBar.prototype.update_ = function update_(currentTime, percent) {
+      var duration = this.player_.duration();
+
+      // machine readable value of progress bar (percentage complete)
+      this.el_.setAttribute('aria-valuenow', (percent * 100).toFixed(2));
+
+      // human readable value of progress bar (time complete)
+      this.el_.setAttribute('aria-valuetext', this.localize('progress bar timing: currentTime={1} duration={2}', [formatTime(currentTime, duration), formatTime(duration, duration)], '{1} of {2}'));
+
+      // Update the `PlayProgressBar`.
+      this.bar.update(getBoundingClientRect(this.el_), percent);
+    };
+
+    /**
+     * Update the seek bar's UI.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `timeupdate` or `ended` event that caused this to run.
+     *
+     * @listens Player#timeupdate
+     *
+     * @returns {number}
+     *          The current percent at a number from 0-1
+     */
+
+
+    SeekBar.prototype.update = function update(event) {
+      var percent = _Slider.prototype.update.call(this);
+
+      this.update_(this.getCurrentTime_(), percent);
+      return percent;
+    };
+
+    /**
+     * Get the value of current time but allows for smooth scrubbing,
+     * when player can't keep up.
+     *
+     * @return {number}
+     *         The current time value to display
+     *
+     * @private
+     */
+
+
+    SeekBar.prototype.getCurrentTime_ = function getCurrentTime_() {
+      return this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
+    };
+
+    /**
+     * We want the seek bar to be full on ended
+     * no matter what the actual internal values are. so we force it.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `timeupdate` or `ended` event that caused this to run.
+     *
+     * @listens Player#ended
+     */
+
+
+    SeekBar.prototype.handleEnded = function handleEnded(event) {
+      this.update_(this.player_.duration(), 1);
+    };
+
+    /**
+     * Get the percentage of media played so far.
+     *
+     * @return {number}
+     *         The percentage of media played so far (0 to 1).
+     */
+
+
+    SeekBar.prototype.getPercent = function getPercent() {
+      var percent = this.getCurrentTime_() / this.player_.duration();
+
+      return percent >= 1 ? 1 : percent || 0;
+    };
+
+    /**
+     * Handle mouse down on seek bar
+     *
+     * @param {EventTarget~Event} event
+     *        The `mousedown` event that caused this to run.
+     *
+     * @listens mousedown
+     */
+
+
+    SeekBar.prototype.handleMouseDown = function handleMouseDown(event) {
+      if (!isSingleLeftClick(event)) {
+        return;
+      }
+
+      // Stop event propagation to prevent double fire in progress-control.js
+      event.stopPropagation();
+      this.player_.scrubbing(true);
+
+      this.videoWasPlaying = !this.player_.paused();
+      this.player_.pause();
+
+      _Slider.prototype.handleMouseDown.call(this, event);
+    };
+
+    /**
+     * Handle mouse move on seek bar
+     *
+     * @param {EventTarget~Event} event
+     *        The `mousemove` event that caused this to run.
+     *
+     * @listens mousemove
+     */
+
+
+    SeekBar.prototype.handleMouseMove = function handleMouseMove(event) {
+      if (!isSingleLeftClick(event)) {
+        return;
+      }
+
+      var newTime = this.calculateDistance(event) * this.player_.duration();
+
+      // Don't let video end while scrubbing.
+      if (newTime === this.player_.duration()) {
+        newTime = newTime - 0.1;
+      }
+
+      // Set new time (tell player to seek to new time)
+      this.player_.currentTime(newTime);
+    };
+
+    SeekBar.prototype.enable = function enable() {
+      _Slider.prototype.enable.call(this);
+      var mouseTimeDisplay = this.getChild('mouseTimeDisplay');
+
+      if (!mouseTimeDisplay) {
+        return;
+      }
+
+      mouseTimeDisplay.show();
+    };
+
+    SeekBar.prototype.disable = function disable() {
+      _Slider.prototype.disable.call(this);
+      var mouseTimeDisplay = this.getChild('mouseTimeDisplay');
+
+      if (!mouseTimeDisplay) {
+        return;
+      }
+
+      mouseTimeDisplay.hide();
+    };
+
+    /**
+     * Handle mouse up on seek bar
+     *
+     * @param {EventTarget~Event} event
+     *        The `mouseup` event that caused this to run.
+     *
+     * @listens mouseup
+     */
+
+
+    SeekBar.prototype.handleMouseUp = function handleMouseUp(event) {
+      _Slider.prototype.handleMouseUp.call(this, event);
+
+      // Stop event propagation to prevent double fire in progress-control.js
+      if (event) {
+        event.stopPropagation();
+      }
+      this.player_.scrubbing(false);
+
+      /**
+       * Trigger timeupdate because we're done seeking and the time has changed.
+       * This is particularly useful for if the player is paused to time the time displays.
+       *
+       * @event Tech#timeupdate
+       * @type {EventTarget~Event}
+       */
+      this.player_.trigger({type: 'timeupdate', target: this, manuallyTriggered: true});
+      if (this.videoWasPlaying) {
+        silencePromise(this.player_.play());
+      }
+    };
+
+    /**
+     * Move more quickly fast forward for keyboard-only users
+     */
+
+
+    SeekBar.prototype.stepForward = function stepForward() {
+      this.player_.currentTime(this.player_.currentTime() + STEP_SECONDS);
+    };
+
+    /**
+     * Move more quickly rewind for keyboard-only users
+     */
+
+
+    SeekBar.prototype.stepBack = function stepBack() {
+      this.player_.currentTime(this.player_.currentTime() - STEP_SECONDS);
+    };
+
+    /**
+     * Toggles the playback state of the player
+     * This gets called when enter or space is used on the seekbar
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown` event that caused this function to be called
+     *
+     */
+
+
+    SeekBar.prototype.handleAction = function handleAction(event) {
+      if (this.player_.paused()) {
+        this.player_.play();
+      } else {
+        this.player_.pause();
+      }
+    };
+
+    /**
+     * Called when this SeekBar has focus and a key gets pressed down. By
+     * default it will call `this.handleAction` when the key is space or enter.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown` event that caused this function to be called.
+     *
+     * @listens keydown
+     */
+
+
+    SeekBar.prototype.handleKeyPress = function handleKeyPress(event) {
+
+      // Support Space (32) or Enter (13) key operation to fire a click event
+      if (event.which === 32 || event.which === 13) {
+        event.preventDefault();
+        this.handleAction(event);
+      } else if (_Slider.prototype.handleKeyPress) {
+
+        // Pass keypress handling up for unsupported keys
+        _Slider.prototype.handleKeyPress.call(this, event);
+      }
+    };
+
+    return SeekBar;
+  }(Slider);
+
+  /**
+   * Default options for the `SeekBar`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  SeekBar.prototype.options_ = {
+    children: ['loadProgressBar', 'playProgressBar'],
+    barName: 'playProgressBar'
+  };
+
+  // MouseTimeDisplay tooltips should not be added to a player on mobile devices
+  if (!IS_IOS && !IS_ANDROID) {
+    SeekBar.prototype.options_.children.splice(1, 0, 'mouseTimeDisplay');
+  }
+
+  /**
+   * Call the update event for this Slider when this event happens on the player.
+   *
+   * @type {string}
+   */
+  SeekBar.prototype.playerEvent = 'timeupdate';
+
+  Component.registerComponent('SeekBar', SeekBar);
+
+  /**
+   * @file progress-control.js
+   */
+
+  /**
+   * The Progress Control component contains the seek bar, load progress,
+   * and play progress.
+   *
+   * @extends Component
+   */
+
+  var ProgressControl = function (_Component) {
+    inherits(ProgressControl, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function ProgressControl(player, options) {
+      classCallCheck(this, ProgressControl);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.handleMouseMove = throttle(bind(_this, _this.handleMouseMove), 25);
+      _this.throttledHandleMouseSeek = throttle(bind(_this, _this.handleMouseSeek), 25);
+
+      _this.enable();
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    ProgressControl.prototype.createEl = function createEl$$1() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-progress-control vjs-control'
+      });
+    };
+
+    /**
+     * When the mouse moves over the `ProgressControl`, the pointer position
+     * gets passed down to the `MouseTimeDisplay` component.
+     *
+     * @param {EventTarget~Event} event
+     *        The `mousemove` event that caused this function to run.
+     *
+     * @listen mousemove
+     */
+
+
+    ProgressControl.prototype.handleMouseMove = function handleMouseMove(event) {
+      var seekBar = this.getChild('seekBar');
+
+      if (seekBar) {
+        var mouseTimeDisplay = seekBar.getChild('mouseTimeDisplay');
+        var seekBarEl = seekBar.el();
+        var seekBarRect = getBoundingClientRect(seekBarEl);
+        var seekBarPoint = getPointerPosition(seekBarEl, event).x;
+
+        // The default skin has a gap on either side of the `SeekBar`. This means
+        // that it's possible to trigger this behavior outside the boundaries of
+        // the `SeekBar`. This ensures we stay within it at all times.
+        if (seekBarPoint > 1) {
+          seekBarPoint = 1;
+        } else if (seekBarPoint < 0) {
+          seekBarPoint = 0;
+        }
+
+        if (mouseTimeDisplay) {
+          mouseTimeDisplay.update(seekBarRect, seekBarPoint);
+        }
+      }
+    };
+
+    /**
+     * A throttled version of the {@link ProgressControl#handleMouseSeek} listener.
+     *
+     * @method ProgressControl#throttledHandleMouseSeek
+     * @param {EventTarget~Event} event
+     *        The `mousemove` event that caused this function to run.
+     *
+     * @listen mousemove
+     * @listen touchmove
+     */
+
+    /**
+     * Handle `mousemove` or `touchmove` events on the `ProgressControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown` or `touchstart` event that triggered this function
+     *
+     * @listens mousemove
+     * @listens touchmove
+     */
+
+
+    ProgressControl.prototype.handleMouseSeek = function handleMouseSeek(event) {
+      var seekBar = this.getChild('seekBar');
+
+      if (seekBar) {
+        seekBar.handleMouseMove(event);
+      }
+    };
+
+    /**
+     * Are controls are currently enabled for this progress control.
+     *
+     * @return {boolean}
+     *         true if controls are enabled, false otherwise
+     */
+
+
+    ProgressControl.prototype.enabled = function enabled() {
+      return this.enabled_;
+    };
+
+    /**
+     * Disable all controls on the progress control and its children
+     */
+
+
+    ProgressControl.prototype.disable = function disable() {
+      this.children().forEach(function (child) {
+        return child.disable && child.disable();
+      });
+
+      if (!this.enabled()) {
+        return;
+      }
+
+      this.off(['mousedown', 'touchstart'], this.handleMouseDown);
+      this.off(this.el_, 'mousemove', this.handleMouseMove);
+      this.handleMouseUp();
+
+      this.addClass('disabled');
+
+      this.enabled_ = false;
+    };
+
+    /**
+     * Enable all controls on the progress control and its children
+     */
+
+
+    ProgressControl.prototype.enable = function enable() {
+      this.children().forEach(function (child) {
+        return child.enable && child.enable();
+      });
+
+      if (this.enabled()) {
+        return;
+      }
+
+      this.on(['mousedown', 'touchstart'], this.handleMouseDown);
+      this.on(this.el_, 'mousemove', this.handleMouseMove);
+      this.removeClass('disabled');
+
+      this.enabled_ = true;
+    };
+
+    /**
+     * Handle `mousedown` or `touchstart` events on the `ProgressControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown` or `touchstart` event that triggered this function
+     *
+     * @listens mousedown
+     * @listens touchstart
+     */
+
+
+    ProgressControl.prototype.handleMouseDown = function handleMouseDown(event) {
+      var doc = this.el_.ownerDocument;
+      var seekBar = this.getChild('seekBar');
+
+      if (seekBar) {
+        seekBar.handleMouseDown(event);
+      }
+
+      this.on(doc, 'mousemove', this.throttledHandleMouseSeek);
+      this.on(doc, 'touchmove', this.throttledHandleMouseSeek);
+      this.on(doc, 'mouseup', this.handleMouseUp);
+      this.on(doc, 'touchend', this.handleMouseUp);
+    };
+
+    /**
+     * Handle `mouseup` or `touchend` events on the `ProgressControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mouseup` or `touchend` event that triggered this function.
+     *
+     * @listens touchend
+     * @listens mouseup
+     */
+
+
+    ProgressControl.prototype.handleMouseUp = function handleMouseUp(event) {
+      var doc = this.el_.ownerDocument;
+      var seekBar = this.getChild('seekBar');
+
+      if (seekBar) {
+        seekBar.handleMouseUp(event);
+      }
+
+      this.off(doc, 'mousemove', this.throttledHandleMouseSeek);
+      this.off(doc, 'touchmove', this.throttledHandleMouseSeek);
+      this.off(doc, 'mouseup', this.handleMouseUp);
+      this.off(doc, 'touchend', this.handleMouseUp);
+    };
+
+    return ProgressControl;
+  }(Component);
+
+  /**
+   * Default options for `ProgressControl`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  ProgressControl.prototype.options_ = {
+    children: ['seekBar']
+  };
+
+  Component.registerComponent('ProgressControl', ProgressControl);
+
+  /**
+   * @file fullscreen-toggle.js
+   */
+
+  /**
+   * Toggle fullscreen video
+   *
+   * @extends Button
+   */
+
+  var FullscreenToggle = function (_Button) {
+    inherits(FullscreenToggle, _Button);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function FullscreenToggle(player, options) {
+      classCallCheck(this, FullscreenToggle);
+
+      var _this = possibleConstructorReturn(this, _Button.call(this, player, options));
+
+      _this.on(player, 'fullscreenchange', _this.handleFullscreenChange);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    FullscreenToggle.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-fullscreen-control ' + _Button.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Handles fullscreenchange on the player and change control text accordingly.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The {@link Player#fullscreenchange} event that caused this function to be
+     *        called.
+     *
+     * @listens Player#fullscreenchange
+     */
+
+
+    FullscreenToggle.prototype.handleFullscreenChange = function handleFullscreenChange(event) {
+      if (this.player_.isFullscreen()) {
+        this.controlText('Non-Fullscreen');
+      } else {
+        this.controlText('Fullscreen');
+      }
+    };
+
+    /**
+     * This gets called when an `FullscreenToggle` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    FullscreenToggle.prototype.handleClick = function handleClick(event) {
+      if (!this.player_.isFullscreen()) {
+        this.player_.requestFullscreen();
+      } else {
+        this.player_.exitFullscreen();
+      }
+    };
+
+    return FullscreenToggle;
+  }(Button);
+
+  /**
+   * The text that should display over the `FullscreenToggle`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  FullscreenToggle.prototype.controlText_ = 'Fullscreen';
+
+  Component.registerComponent('FullscreenToggle', FullscreenToggle);
+
+  /**
+   * Check if volume control is supported and if it isn't hide the
+   * `Component` that was passed  using the `vjs-hidden` class.
+   *
+   * @param {Component} self
+   *        The component that should be hidden if volume is unsupported
+   *
+   * @param {Player} player
+   *        A reference to the player
+   *
+   * @private
+   */
+  var checkVolumeSupport = function checkVolumeSupport(self, player) {
+    // hide volume controls when they're not supported by the current tech
+    if (player.tech_ && !player.tech_.featuresVolumeControl) {
+      self.addClass('vjs-hidden');
+    }
+
+    self.on(player, 'loadstart', function () {
+      if (!player.tech_.featuresVolumeControl) {
+        self.addClass('vjs-hidden');
+      } else {
+        self.removeClass('vjs-hidden');
+      }
+    });
+  };
+
+  /**
+   * @file volume-level.js
+   */
+
+  /**
+   * Shows volume level
+   *
+   * @extends Component
+   */
+
+  var VolumeLevel = function (_Component) {
+    inherits(VolumeLevel, _Component);
+
+    function VolumeLevel() {
+      classCallCheck(this, VolumeLevel);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+    VolumeLevel.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-volume-level',
+        innerHTML: '<span class="vjs-control-text"></span>'
+      });
+    };
+
+    return VolumeLevel;
+  }(Component);
+
+  Component.registerComponent('VolumeLevel', VolumeLevel);
+
+  /**
+   * @file volume-bar.js
+   */
+
+  /**
+   * The bar that contains the volume level and can be clicked on to adjust the level
+   *
+   * @extends Slider
+   */
+
+  var VolumeBar = function (_Slider) {
+    inherits(VolumeBar, _Slider);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function VolumeBar(player, options) {
+      classCallCheck(this, VolumeBar);
+
+      var _this = possibleConstructorReturn(this, _Slider.call(this, player, options));
+
+      _this.on('slideractive', _this.updateLastVolume_);
+      _this.on(player, 'volumechange', _this.updateARIAAttributes);
+      player.ready(function () {
+        return _this.updateARIAAttributes();
+      });
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    VolumeBar.prototype.createEl = function createEl$$1() {
+      return _Slider.prototype.createEl.call(this, 'div', {
+        className: 'vjs-volume-bar vjs-slider-bar'
+      }, {
+        'aria-label': this.localize('Volume Level'),
+        'aria-live': 'polite'
+      });
+    };
+
+    /**
+     * Handle mouse down on volume bar
+     *
+     * @param {EventTarget~Event} event
+     *        The `mousedown` event that caused this to run.
+     *
+     * @listens mousedown
+     */
+
+
+    VolumeBar.prototype.handleMouseDown = function handleMouseDown(event) {
+      if (!isSingleLeftClick(event)) {
+        return;
+      }
+
+      _Slider.prototype.handleMouseDown.call(this, event);
+    };
+
+    /**
+     * Handle movement events on the {@link VolumeMenuButton}.
+     *
+     * @param {EventTarget~Event} event
+     *        The event that caused this function to run.
+     *
+     * @listens mousemove
+     */
+
+
+    VolumeBar.prototype.handleMouseMove = function handleMouseMove(event) {
+      if (!isSingleLeftClick(event)) {
+        return;
+      }
+
+      this.checkMuted();
+      this.player_.volume(this.calculateDistance(event));
+    };
+
+    /**
+     * If the player is muted unmute it.
+     */
+
+
+    VolumeBar.prototype.checkMuted = function checkMuted() {
+      if (this.player_.muted()) {
+        this.player_.muted(false);
+      }
+    };
+
+    /**
+     * Get percent of volume level
+     *
+     * @return {number}
+     *         Volume level percent as a decimal number.
+     */
+
+
+    VolumeBar.prototype.getPercent = function getPercent() {
+      if (this.player_.muted()) {
+        return 0;
+      }
+      return this.player_.volume();
+    };
+
+    /**
+     * Increase volume level for keyboard users
+     */
+
+
+    VolumeBar.prototype.stepForward = function stepForward() {
+      this.checkMuted();
+      this.player_.volume(this.player_.volume() + 0.1);
+    };
+
+    /**
+     * Decrease volume level for keyboard users
+     */
+
+
+    VolumeBar.prototype.stepBack = function stepBack() {
+      this.checkMuted();
+      this.player_.volume(this.player_.volume() - 0.1);
+    };
+
+    /**
+     * Update ARIA accessibility attributes
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `volumechange` event that caused this function to run.
+     *
+     * @listens Player#volumechange
+     */
+
+
+    VolumeBar.prototype.updateARIAAttributes = function updateARIAAttributes(event) {
+      var ariaValue = this.player_.muted() ? 0 : this.volumeAsPercentage_();
+
+      this.el_.setAttribute('aria-valuenow', ariaValue);
+      this.el_.setAttribute('aria-valuetext', ariaValue + '%');
+    };
+
+    /**
+     * Returns the current value of the player volume as a percentage
+     *
+     * @private
+     */
+
+
+    VolumeBar.prototype.volumeAsPercentage_ = function volumeAsPercentage_() {
+      return Math.round(this.player_.volume() * 100);
+    };
+
+    /**
+     * When user starts dragging the VolumeBar, store the volume and listen for
+     * the end of the drag. When the drag ends, if the volume was set to zero,
+     * set lastVolume to the stored volume.
+     *
+     * @listens slideractive
+     * @private
+     */
+
+
+    VolumeBar.prototype.updateLastVolume_ = function updateLastVolume_() {
+      var _this2 = this;
+
+      var volumeBeforeDrag = this.player_.volume();
+
+      this.one('sliderinactive', function () {
+        if (_this2.player_.volume() === 0) {
+          _this2.player_.lastVolume_(volumeBeforeDrag);
+        }
+      });
+    };
+
+    return VolumeBar;
+  }(Slider);
+
+  /**
+   * Default options for the `VolumeBar`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  VolumeBar.prototype.options_ = {
+    children: ['volumeLevel'],
+    barName: 'volumeLevel'
+  };
+
+  /**
+   * Call the update event for this Slider when this event happens on the player.
+   *
+   * @type {string}
+   */
+  VolumeBar.prototype.playerEvent = 'volumechange';
+
+  Component.registerComponent('VolumeBar', VolumeBar);
+
+  /**
+   * @file volume-control.js
+   */
+
+  /**
+   * The component for controlling the volume level
+   *
+   * @extends Component
+   */
+
+  var VolumeControl = function (_Component) {
+    inherits(VolumeControl, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     */
+    function VolumeControl(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, VolumeControl);
+
+      options.vertical = options.vertical || false;
+
+      // Pass the vertical option down to the VolumeBar if
+      // the VolumeBar is turned on.
+      if (typeof options.volumeBar === 'undefined' || isPlain(options.volumeBar)) {
+        options.volumeBar = options.volumeBar || {};
+        options.volumeBar.vertical = options.vertical;
+      }
+
+      // hide this control if volume support is missing
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      checkVolumeSupport(_this, player);
+
+      _this.throttledHandleMouseMove = throttle(bind(_this, _this.handleMouseMove), 25);
+
+      _this.on('mousedown', _this.handleMouseDown);
+      _this.on('touchstart', _this.handleMouseDown);
+
+      // while the slider is active (the mouse has been pressed down and
+      // is dragging) or in focus we do not want to hide the VolumeBar
+      _this.on(_this.volumeBar, ['focus', 'slideractive'], function () {
+        _this.volumeBar.addClass('vjs-slider-active');
+        _this.addClass('vjs-slider-active');
+        _this.trigger('slideractive');
+      });
+
+      _this.on(_this.volumeBar, ['blur', 'sliderinactive'], function () {
+        _this.volumeBar.removeClass('vjs-slider-active');
+        _this.removeClass('vjs-slider-active');
+        _this.trigger('sliderinactive');
+      });
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    VolumeControl.prototype.createEl = function createEl() {
+      var orientationClass = 'vjs-volume-horizontal';
+
+      if (this.options_.vertical) {
+        orientationClass = 'vjs-volume-vertical';
+      }
+
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-volume-control vjs-control ' + orientationClass
+      });
+    };
+
+    /**
+     * Handle `mousedown` or `touchstart` events on the `VolumeControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown` or `touchstart` event that triggered this function
+     *
+     * @listens mousedown
+     * @listens touchstart
+     */
+
+
+    VolumeControl.prototype.handleMouseDown = function handleMouseDown(event) {
+      var doc = this.el_.ownerDocument;
+
+      this.on(doc, 'mousemove', this.throttledHandleMouseMove);
+      this.on(doc, 'touchmove', this.throttledHandleMouseMove);
+      this.on(doc, 'mouseup', this.handleMouseUp);
+      this.on(doc, 'touchend', this.handleMouseUp);
+    };
+
+    /**
+     * Handle `mouseup` or `touchend` events on the `VolumeControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mouseup` or `touchend` event that triggered this function.
+     *
+     * @listens touchend
+     * @listens mouseup
+     */
+
+
+    VolumeControl.prototype.handleMouseUp = function handleMouseUp(event) {
+      var doc = this.el_.ownerDocument;
+
+      this.off(doc, 'mousemove', this.throttledHandleMouseMove);
+      this.off(doc, 'touchmove', this.throttledHandleMouseMove);
+      this.off(doc, 'mouseup', this.handleMouseUp);
+      this.off(doc, 'touchend', this.handleMouseUp);
+    };
+
+    /**
+     * Handle `mousedown` or `touchstart` events on the `VolumeControl`.
+     *
+     * @param {EventTarget~Event} event
+     *        `mousedown` or `touchstart` event that triggered this function
+     *
+     * @listens mousedown
+     * @listens touchstart
+     */
+
+
+    VolumeControl.prototype.handleMouseMove = function handleMouseMove(event) {
+      this.volumeBar.handleMouseMove(event);
+    };
+
+    return VolumeControl;
+  }(Component);
+
+  /**
+   * Default options for the `VolumeControl`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  VolumeControl.prototype.options_ = {
+    children: ['volumeBar']
+  };
+
+  Component.registerComponent('VolumeControl', VolumeControl);
+
+  /**
+   * @file mute-toggle.js
+   */
+
+  /**
+   * A button component for muting the audio.
+   *
+   * @extends Button
+   */
+
+  var MuteToggle = function (_Button) {
+    inherits(MuteToggle, _Button);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function MuteToggle(player, options) {
+      classCallCheck(this, MuteToggle);
+
+      // hide this control if volume support is missing
+      var _this = possibleConstructorReturn(this, _Button.call(this, player, options));
+
+      checkVolumeSupport(_this, player);
+
+      _this.on(player, ['loadstart', 'volumechange'], _this.update);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    MuteToggle.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-mute-control ' + _Button.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * This gets called when an `MuteToggle` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    MuteToggle.prototype.handleClick = function handleClick(event) {
+      var vol = this.player_.volume();
+      var lastVolume = this.player_.lastVolume_();
+
+      if (vol === 0) {
+        var volumeToSet = lastVolume < 0.1 ? 0.1 : lastVolume;
+
+        this.player_.volume(volumeToSet);
+        this.player_.muted(false);
+      } else {
+        this.player_.muted(this.player_.muted() ? false : true);
+      }
+    };
+
+    /**
+     * Update the `MuteToggle` button based on the state of `volume` and `muted`
+     * on the player.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The {@link Player#loadstart} event if this function was called
+     *        through an event.
+     *
+     * @listens Player#loadstart
+     * @listens Player#volumechange
+     */
+
+
+    MuteToggle.prototype.update = function update(event) {
+      this.updateIcon_();
+      this.updateControlText_();
+    };
+
+    /**
+     * Update the appearance of the `MuteToggle` icon.
+     *
+     * Possible states (given `level` variable below):
+     * - 0: crossed out
+     * - 1: zero bars of volume
+     * - 2: one bar of volume
+     * - 3: two bars of volume
+     *
+     * @private
+     */
+
+
+    MuteToggle.prototype.updateIcon_ = function updateIcon_() {
+      var vol = this.player_.volume();
+      var level = 3;
+
+      if (vol === 0 || this.player_.muted()) {
+        level = 0;
+      } else if (vol < 0.33) {
+        level = 1;
+      } else if (vol < 0.67) {
+        level = 2;
+      }
+
+      // TODO improve muted icon classes
+      for (var i = 0; i < 4; i++) {
+        removeClass(this.el_, 'vjs-vol-' + i);
+      }
+      addClass(this.el_, 'vjs-vol-' + level);
+    };
+
+    /**
+     * If `muted` has changed on the player, update the control text
+     * (`title` attribute on `vjs-mute-control` element and content of
+     * `vjs-control-text` element).
+     *
+     * @private
+     */
+
+
+    MuteToggle.prototype.updateControlText_ = function updateControlText_() {
+      var soundOff = this.player_.muted() || this.player_.volume() === 0;
+      var text = soundOff ? 'Unmute' : 'Mute';
+
+      if (this.controlText() !== text) {
+        this.controlText(text);
+      }
+    };
+
+    return MuteToggle;
+  }(Button);
+
+  /**
+   * The text that should display over the `MuteToggle`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  MuteToggle.prototype.controlText_ = 'Mute';
+
+  Component.registerComponent('MuteToggle', MuteToggle);
+
+  /**
+   * @file volume-control.js
+   */
+
+  /**
+   * A Component to contain the MuteToggle and VolumeControl so that
+   * they can work together.
+   *
+   * @extends Component
+   */
+
+  var VolumePanel = function (_Component) {
+    inherits(VolumePanel, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     */
+    function VolumePanel(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, VolumePanel);
+
+      if (typeof options.inline !== 'undefined') {
+        options.inline = options.inline;
+      } else {
+        options.inline = true;
+      }
+
+      // pass the inline option down to the VolumeControl as vertical if
+      // the VolumeControl is on.
+      if (typeof options.volumeControl === 'undefined' || isPlain(options.volumeControl)) {
+        options.volumeControl = options.volumeControl || {};
+        options.volumeControl.vertical = !options.inline;
+      }
+
+      // hide this control if volume support is missing
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      checkVolumeSupport(_this, player);
+
+      // while the slider is active (the mouse has been pressed down and
+      // is dragging) we do not want to hide the VolumeBar
+      _this.on(_this.volumeControl, ['slideractive'], _this.sliderActive_);
+
+      _this.on(_this.volumeControl, ['sliderinactive'], _this.sliderInactive_);
+      return _this;
+    }
+
+    /**
+     * Add vjs-slider-active class to the VolumePanel
+     *
+     * @listens VolumeControl#slideractive
+     * @private
+     */
+
+
+    VolumePanel.prototype.sliderActive_ = function sliderActive_() {
+      this.addClass('vjs-slider-active');
+    };
+
+    /**
+     * Removes vjs-slider-active class to the VolumePanel
+     *
+     * @listens VolumeControl#sliderinactive
+     * @private
+     */
+
+
+    VolumePanel.prototype.sliderInactive_ = function sliderInactive_() {
+      this.removeClass('vjs-slider-active');
+    };
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    VolumePanel.prototype.createEl = function createEl() {
+      var orientationClass = 'vjs-volume-panel-horizontal';
+
+      if (!this.options_.inline) {
+        orientationClass = 'vjs-volume-panel-vertical';
+      }
+
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-volume-panel vjs-control ' + orientationClass
+      });
+    };
+
+    return VolumePanel;
+  }(Component);
+
+  /**
+   * Default options for the `VolumeControl`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  VolumePanel.prototype.options_ = {
+    children: ['muteToggle', 'volumeControl']
+  };
+
+  Component.registerComponent('VolumePanel', VolumePanel);
+
+  /**
+   * @file menu.js
+   */
+
+  /**
+   * The Menu component is used to build popup menus, including subtitle and
+   * captions selection menus.
+   *
+   * @extends Component
+   */
+
+  var Menu = function (_Component) {
+    inherits(Menu, _Component);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Player} player
+     *        the player that this component should attach to
+     *
+     * @param {Object} [options]
+     *        Object of option names and values
+     *
+     */
+    function Menu(player, options) {
+      classCallCheck(this, Menu);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      if (options) {
+        _this.menuButton_ = options.menuButton;
+      }
+
+      _this.focusedChild_ = -1;
+
+      _this.on('keydown', _this.handleKeyPress);
+      return _this;
+    }
+
+    /**
+     * Add a {@link MenuItem} to the menu.
+     *
+     * @param {Object|string} component
+     *        The name or instance of the `MenuItem` to add.
+     *
+     */
+
+
+    Menu.prototype.addItem = function addItem(component) {
+      this.addChild(component);
+      component.on('click', bind(this, function (event) {
+        // Unpress the associated MenuButton, and move focus back to it
+        if (this.menuButton_) {
+          this.menuButton_.unpressButton();
+
+          // don't focus menu button if item is a caption settings item
+          // because focus will move elsewhere
+          if (component.name() !== 'CaptionSettingsMenuItem') {
+            this.menuButton_.focus();
+          }
+        }
+      }));
+    };
+
+    /**
+     * Create the `Menu`s DOM element.
+     *
+     * @return {Element}
+     *         the element that was created
+     */
+
+
+    Menu.prototype.createEl = function createEl$$1() {
+      var contentElType = this.options_.contentElType || 'ul';
+
+      this.contentEl_ = createEl(contentElType, {
+        className: 'vjs-menu-content'
+      });
+
+      this.contentEl_.setAttribute('role', 'menu');
+
+      var el = _Component.prototype.createEl.call(this, 'div', {
+        append: this.contentEl_,
+        className: 'vjs-menu'
+      });
+
+      el.appendChild(this.contentEl_);
+
+      // Prevent clicks from bubbling up. Needed for Menu Buttons,
+      // where a click on the parent is significant
+      on(el, 'click', function (event) {
+        event.preventDefault();
+        event.stopImmediatePropagation();
+      });
+
+      return el;
+    };
+
+    Menu.prototype.dispose = function dispose() {
+      this.contentEl_ = null;
+
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Handle a `keydown` event on this menu. This listener is added in the constructor.
+     *
+     * @param {EventTarget~Event} event
+     *        A `keydown` event that happened on the menu.
+     *
+     * @listens keydown
+     */
+
+
+    Menu.prototype.handleKeyPress = function handleKeyPress(event) {
+      // Left and Down Arrows
+      if (event.which === 37 || event.which === 40) {
+        event.preventDefault();
+        this.stepForward();
+
+        // Up and Right Arrows
+      } else if (event.which === 38 || event.which === 39) {
+        event.preventDefault();
+        this.stepBack();
+      }
+    };
+
+    /**
+     * Move to next (lower) menu item for keyboard users.
+     */
+
+
+    Menu.prototype.stepForward = function stepForward() {
+      var stepChild = 0;
+
+      if (this.focusedChild_ !== undefined) {
+        stepChild = this.focusedChild_ + 1;
+      }
+      this.focus(stepChild);
+    };
+
+    /**
+     * Move to previous (higher) menu item for keyboard users.
+     */
+
+
+    Menu.prototype.stepBack = function stepBack() {
+      var stepChild = 0;
+
+      if (this.focusedChild_ !== undefined) {
+        stepChild = this.focusedChild_ - 1;
+      }
+      this.focus(stepChild);
+    };
+
+    /**
+     * Set focus on a {@link MenuItem} in the `Menu`.
+     *
+     * @param {Object|string} [item=0]
+     *        Index of child item set focus on.
+     */
+
+
+    Menu.prototype.focus = function focus() {
+      var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
+
+      var children = this.children().slice();
+      var haveTitle = children.length && children[0].className && /vjs-menu-title/.test(children[0].className);
+
+      if (haveTitle) {
+        children.shift();
+      }
+
+      if (children.length > 0) {
+        if (item < 0) {
+          item = 0;
+        } else if (item >= children.length) {
+          item = children.length - 1;
+        }
+
+        this.focusedChild_ = item;
+
+        children[item].el_.focus();
+      }
+    };
+
+    return Menu;
+  }(Component);
+
+  Component.registerComponent('Menu', Menu);
+
+  /**
+   * @file menu-button.js
+   */
+
+  /**
+   * A `MenuButton` class for any popup {@link Menu}.
+   *
+   * @extends Component
+   */
+
+  var MenuButton = function (_Component) {
+    inherits(MenuButton, _Component);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     */
+    function MenuButton(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, MenuButton);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options));
+
+      _this.menuButton_ = new Button(player, options);
+
+      _this.menuButton_.controlText(_this.controlText_);
+      _this.menuButton_.el_.setAttribute('aria-haspopup', 'true');
+
+      // Add buildCSSClass values to the button, not the wrapper
+      var buttonClass = Button.prototype.buildCSSClass();
+
+      _this.menuButton_.el_.className = _this.buildCSSClass() + ' ' + buttonClass;
+      _this.menuButton_.removeClass('vjs-control');
+
+      _this.addChild(_this.menuButton_);
+
+      _this.update();
+
+      _this.enabled_ = true;
+
+      _this.on(_this.menuButton_, 'tap', _this.handleClick);
+      _this.on(_this.menuButton_, 'click', _this.handleClick);
+      _this.on(_this.menuButton_, 'focus', _this.handleFocus);
+      _this.on(_this.menuButton_, 'blur', _this.handleBlur);
+
+      _this.on('keydown', _this.handleSubmenuKeyPress);
+      return _this;
+    }
+
+    /**
+     * Update the menu based on the current state of its items.
+     */
+
+
+    MenuButton.prototype.update = function update() {
+      var menu = this.createMenu();
+
+      if (this.menu) {
+        this.menu.dispose();
+        this.removeChild(this.menu);
+      }
+
+      this.menu = menu;
+      this.addChild(menu);
+
+      /**
+       * Track the state of the menu button
+       *
+       * @type {Boolean}
+       * @private
+       */
+      this.buttonPressed_ = false;
+      this.menuButton_.el_.setAttribute('aria-expanded', 'false');
+
+      if (this.items && this.items.length <= this.hideThreshold_) {
+        this.hide();
+      } else {
+        this.show();
+      }
+    };
+
+    /**
+     * Create the menu and add all items to it.
+     *
+     * @return {Menu}
+     *         The constructed menu
+     */
+
+
+    MenuButton.prototype.createMenu = function createMenu() {
+      var menu = new Menu(this.player_, {menuButton: this});
+
+      /**
+       * Hide the menu if the number of items is less than or equal to this threshold. This defaults
+       * to 0 and whenever we add items which can be hidden to the menu we'll increment it. We list
+       * it here because every time we run `createMenu` we need to reset the value.
+       *
+       * @protected
+       * @type {Number}
+       */
+      this.hideThreshold_ = 0;
+
+      // Add a title list item to the top
+      if (this.options_.title) {
+        var title = createEl('li', {
+          className: 'vjs-menu-title',
+          innerHTML: toTitleCase(this.options_.title),
+          tabIndex: -1
+        });
+
+        this.hideThreshold_ += 1;
+
+        menu.children_.unshift(title);
+        prependTo(title, menu.contentEl());
+      }
+
+      this.items = this.createItems();
+
+      if (this.items) {
+        // Add menu items to the menu
+        for (var i = 0; i < this.items.length; i++) {
+          menu.addItem(this.items[i]);
+        }
+      }
+
+      return menu;
+    };
+
+    /**
+     * Create the list of menu items. Specific to each subclass.
+     *
+     * @abstract
+     */
+
+
+    MenuButton.prototype.createItems = function createItems() {
+    };
+
+    /**
+     * Create the `MenuButtons`s DOM element.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    MenuButton.prototype.createEl = function createEl$$1() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: this.buildWrapperCSSClass()
+      }, {});
+    };
+
+    /**
+     * Allow sub components to stack CSS class names for the wrapper element
+     *
+     * @return {string}
+     *         The constructed wrapper DOM `className`
+     */
+
+
+    MenuButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      var menuButtonClass = 'vjs-menu-button';
+
+      // If the inline option is passed, we want to use different styles altogether.
+      if (this.options_.inline === true) {
+        menuButtonClass += '-inline';
+      } else {
+        menuButtonClass += '-popup';
+      }
+
+      // TODO: Fix the CSS so that this isn't necessary
+      var buttonClass = Button.prototype.buildCSSClass();
+
+      return 'vjs-menu-button ' + menuButtonClass + ' ' + buttonClass + ' ' + _Component.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    MenuButton.prototype.buildCSSClass = function buildCSSClass() {
+      var menuButtonClass = 'vjs-menu-button';
+
+      // If the inline option is passed, we want to use different styles altogether.
+      if (this.options_.inline === true) {
+        menuButtonClass += '-inline';
+      } else {
+        menuButtonClass += '-popup';
+      }
+
+      return 'vjs-menu-button ' + menuButtonClass + ' ' + _Component.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Get or set the localized control text that will be used for accessibility.
+     *
+     * > NOTE: This will come from the internal `menuButton_` element.
+     *
+     * @param {string} [text]
+     *        Control text for element.
+     *
+     * @param {Element} [el=this.menuButton_.el()]
+     *        Element to set the title on.
+     *
+     * @return {string}
+     *         - The control text when getting
+     */
+
+
+    MenuButton.prototype.controlText = function controlText(text) {
+      var el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.menuButton_.el();
+
+      return this.menuButton_.controlText(text, el);
+    };
+
+    /**
+     * Handle a click on a `MenuButton`.
+     * See {@link ClickableComponent#handleClick} for instances where this is called.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    MenuButton.prototype.handleClick = function handleClick(event) {
+      // When you click the button it adds focus, which will show the menu.
+      // So we'll remove focus when the mouse leaves the button. Focus is needed
+      // for tab navigation.
+
+      this.one(this.menu.contentEl(), 'mouseleave', bind(this, function (e) {
+        this.unpressButton();
+        this.el_.blur();
+      }));
+      if (this.buttonPressed_) {
+        this.unpressButton();
+      } else {
+        this.pressButton();
+      }
+    };
+
+    /**
+     * Set the focus to the actual button, not to this element
+     */
+
+
+    MenuButton.prototype.focus = function focus() {
+      this.menuButton_.focus();
+    };
+
+    /**
+     * Remove the focus from the actual button, not this element
+     */
+
+
+    MenuButton.prototype.blur = function blur() {
+      this.menuButton_.blur();
+    };
+
+    /**
+     * This gets called when a `MenuButton` gains focus via a `focus` event.
+     * Turns on listening for `keydown` events. When they happen it
+     * calls `this.handleKeyPress`.
+     *
+     * @param {EventTarget~Event} event
+     *        The `focus` event that caused this function to be called.
+     *
+     * @listens focus
+     */
+
+
+    MenuButton.prototype.handleFocus = function handleFocus() {
+      on(document_1, 'keydown', bind(this, this.handleKeyPress));
+    };
+
+    /**
+     * Called when a `MenuButton` loses focus. Turns off the listener for
+     * `keydown` events. Which Stops `this.handleKeyPress` from getting called.
+     *
+     * @param {EventTarget~Event} event
+     *        The `blur` event that caused this function to be called.
+     *
+     * @listens blur
+     */
+
+
+    MenuButton.prototype.handleBlur = function handleBlur() {
+      off(document_1, 'keydown', bind(this, this.handleKeyPress));
+    };
+
+    /**
+     * Handle tab, escape, down arrow, and up arrow keys for `MenuButton`. See
+     * {@link ClickableComponent#handleKeyPress} for instances where this is called.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown` event that caused this function to be called.
+     *
+     * @listens keydown
+     */
+
+
+    MenuButton.prototype.handleKeyPress = function handleKeyPress(event) {
+
+      // Escape (27) key or Tab (9) key unpress the 'button'
+      if (event.which === 27 || event.which === 9) {
+        if (this.buttonPressed_) {
+          this.unpressButton();
+        }
+        // Don't preventDefault for Tab key - we still want to lose focus
+        if (event.which !== 9) {
+          event.preventDefault();
+          // Set focus back to the menu button's button
+          this.menuButton_.el_.focus();
+        }
+        // Up (38) key or Down (40) key press the 'button'
+      } else if (event.which === 38 || event.which === 40) {
+        if (!this.buttonPressed_) {
+          this.pressButton();
+          event.preventDefault();
+        }
+      }
+    };
+
+    /**
+     * Handle a `keydown` event on a sub-menu. The listener for this is added in
+     * the constructor.
+     *
+     * @param {EventTarget~Event} event
+     *        Key press event
+     *
+     * @listens keydown
+     */
+
+
+    MenuButton.prototype.handleSubmenuKeyPress = function handleSubmenuKeyPress(event) {
+
+      // Escape (27) key or Tab (9) key unpress the 'button'
+      if (event.which === 27 || event.which === 9) {
+        if (this.buttonPressed_) {
+          this.unpressButton();
+        }
+        // Don't preventDefault for Tab key - we still want to lose focus
+        if (event.which !== 9) {
+          event.preventDefault();
+          // Set focus back to the menu button's button
+          this.menuButton_.el_.focus();
+        }
+      }
+    };
+
+    /**
+     * Put the current `MenuButton` into a pressed state.
+     */
+
+
+    MenuButton.prototype.pressButton = function pressButton() {
+      if (this.enabled_) {
+        this.buttonPressed_ = true;
+        this.menu.lockShowing();
+        this.menuButton_.el_.setAttribute('aria-expanded', 'true');
+
+        // set the focus into the submenu, except on iOS where it is resulting in
+        // undesired scrolling behavior when the player is in an iframe
+        if (IS_IOS && isInFrame()) {
+          // Return early so that the menu isn't focused
+          return;
+        }
+
+        this.menu.focus();
+      }
+    };
+
+    /**
+     * Take the current `MenuButton` out of a pressed state.
+     */
+
+
+    MenuButton.prototype.unpressButton = function unpressButton() {
+      if (this.enabled_) {
+        this.buttonPressed_ = false;
+        this.menu.unlockShowing();
+        this.menuButton_.el_.setAttribute('aria-expanded', 'false');
+      }
+    };
+
+    /**
+     * Disable the `MenuButton`. Don't allow it to be clicked.
+     */
+
+
+    MenuButton.prototype.disable = function disable() {
+      this.unpressButton();
+
+      this.enabled_ = false;
+      this.addClass('vjs-disabled');
+
+      this.menuButton_.disable();
+    };
+
+    /**
+     * Enable the `MenuButton`. Allow it to be clicked.
+     */
+
+
+    MenuButton.prototype.enable = function enable() {
+      this.enabled_ = true;
+      this.removeClass('vjs-disabled');
+
+      this.menuButton_.enable();
+    };
+
+    return MenuButton;
+  }(Component);
+
+  Component.registerComponent('MenuButton', MenuButton);
+
+  /**
+   * @file track-button.js
+   */
+
+  /**
+   * The base class for buttons that toggle specific  track types (e.g. subtitles).
+   *
+   * @extends MenuButton
+   */
+
+  var TrackButton = function (_MenuButton) {
+    inherits(TrackButton, _MenuButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function TrackButton(player, options) {
+      classCallCheck(this, TrackButton);
+
+      var tracks = options.tracks;
+
+      var _this = possibleConstructorReturn(this, _MenuButton.call(this, player, options));
+
+      if (_this.items.length <= 1) {
+        _this.hide();
+      }
+
+      if (!tracks) {
+        return possibleConstructorReturn(_this);
+      }
+
+      var updateHandler = bind(_this, _this.update);
+
+      tracks.addEventListener('removetrack', updateHandler);
+      tracks.addEventListener('addtrack', updateHandler);
+      _this.player_.on('ready', updateHandler);
+
+      _this.player_.on('dispose', function () {
+        tracks.removeEventListener('removetrack', updateHandler);
+        tracks.removeEventListener('addtrack', updateHandler);
+      });
+      return _this;
+    }
+
+    return TrackButton;
+  }(MenuButton);
+
+  Component.registerComponent('TrackButton', TrackButton);
+
+  /**
+   * @file menu-item.js
+   */
+
+  /**
+   * The component for a menu item. `<li>`
+   *
+   * @extends ClickableComponent
+   */
+
+  var MenuItem = function (_ClickableComponent) {
+    inherits(MenuItem, _ClickableComponent);
+
+    /**
+     * Creates an instance of the this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     *
+     */
+    function MenuItem(player, options) {
+      classCallCheck(this, MenuItem);
+
+      var _this = possibleConstructorReturn(this, _ClickableComponent.call(this, player, options));
+
+      _this.selectable = options.selectable;
+      _this.isSelected_ = options.selected || false;
+
+      _this.selected(_this.isSelected_);
+
+      if (_this.selectable) {
+        // TODO: May need to be either menuitemcheckbox or menuitemradio,
+        //       and may need logical grouping of menu items.
+        _this.el_.setAttribute('role', 'menuitemcheckbox');
+      } else {
+        _this.el_.setAttribute('role', 'menuitem');
+      }
+      return _this;
+    }
+
+    /**
+     * Create the `MenuItem's DOM element
+     *
+     * @param {string} [type=li]
+     *        Element's node type, not actually used, always set to `li`.
+     *
+     * @param {Object} [props={}]
+     *        An object of properties that should be set on the element
+     *
+     * @param {Object} [attrs={}]
+     *        An object of attributes that should be set on the element
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    MenuItem.prototype.createEl = function createEl(type, props, attrs) {
+      // The control is textual, not just an icon
+      this.nonIconControl = true;
+
+      return _ClickableComponent.prototype.createEl.call(this, 'li', assign({
+        className: 'vjs-menu-item',
+        innerHTML: '<span class="vjs-menu-item-text">' + this.localize(this.options_.label) + '</span>',
+        tabIndex: -1
+      }, props), attrs);
+    };
+
+    /**
+     * Any click on a `MenuItem` puts int into the selected state.
+     * See {@link ClickableComponent#handleClick} for instances where this is called.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    MenuItem.prototype.handleClick = function handleClick(event) {
+      this.selected(true);
+    };
+
+    /**
+     * Set the state for this menu item as selected or not.
+     *
+     * @param {boolean} selected
+     *        if the menu item is selected or not
+     */
+
+
+    MenuItem.prototype.selected = function selected(_selected) {
+      if (this.selectable) {
+        if (_selected) {
+          this.addClass('vjs-selected');
+          this.el_.setAttribute('aria-checked', 'true');
+          // aria-checked isn't fully supported by browsers/screen readers,
+          // so indicate selected state to screen reader in the control text.
+          this.controlText(', selected');
+          this.isSelected_ = true;
+        } else {
+          this.removeClass('vjs-selected');
+          this.el_.setAttribute('aria-checked', 'false');
+          // Indicate un-selected state to screen reader
+          this.controlText('');
+          this.isSelected_ = false;
+        }
+      }
+    };
+
+    return MenuItem;
+  }(ClickableComponent);
+
+  Component.registerComponent('MenuItem', MenuItem);
+
+  /**
+   * @file text-track-menu-item.js
+   */
+
+  /**
+   * The specific menu item type for selecting a language within a text track kind
+   *
+   * @extends MenuItem
+   */
+
+  var TextTrackMenuItem = function (_MenuItem) {
+    inherits(TextTrackMenuItem, _MenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function TextTrackMenuItem(player, options) {
+      classCallCheck(this, TextTrackMenuItem);
+
+      var track = options.track;
+      var tracks = player.textTracks();
+
+      // Modify options for parent MenuItem class's init.
+      options.label = track.label || track.language || 'Unknown';
+      options.selected = track.mode === 'showing';
+
+      var _this = possibleConstructorReturn(this, _MenuItem.call(this, player, options));
+
+      _this.track = track;
+      var changeHandler = function changeHandler() {
+        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+          args[_key] = arguments[_key];
+        }
+
+        _this.handleTracksChange.apply(_this, args);
+      };
+      var selectedLanguageChangeHandler = function selectedLanguageChangeHandler() {
+        for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+          args[_key2] = arguments[_key2];
+        }
+
+        _this.handleSelectedLanguageChange.apply(_this, args);
+      };
+
+      player.on(['loadstart', 'texttrackchange'], changeHandler);
+      tracks.addEventListener('change', changeHandler);
+      tracks.addEventListener('selectedlanguagechange', selectedLanguageChangeHandler);
+      _this.on('dispose', function () {
+        player.off(['loadstart', 'texttrackchange'], changeHandler);
+        tracks.removeEventListener('change', changeHandler);
+        tracks.removeEventListener('selectedlanguagechange', selectedLanguageChangeHandler);
+      });
+
+      // iOS7 doesn't dispatch change events to TextTrackLists when an
+      // associated track's mode changes. Without something like
+      // Object.observe() (also not present on iOS7), it's not
+      // possible to detect changes to the mode attribute and polyfill
+      // the change event. As a poor substitute, we manually dispatch
+      // change events whenever the controls modify the mode.
+      if (tracks.onchange === undefined) {
+        var event = void 0;
+
+        _this.on(['tap', 'click'], function () {
+          if (_typeof(window_1.Event) !== 'object') {
+            // Android 2.3 throws an Illegal Constructor error for window.Event
+            try {
+              event = new window_1.Event('change');
+            } catch (err) {
+              // continue regardless of error
+            }
+          }
+
+          if (!event) {
+            event = document_1.createEvent('Event');
+            event.initEvent('change', true, true);
+          }
+
+          tracks.dispatchEvent(event);
+        });
+      }
+
+      // set the default state based on current tracks
+      _this.handleTracksChange();
+      return _this;
+    }
+
+    /**
+     * This gets called when an `TextTrackMenuItem` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} event
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    TextTrackMenuItem.prototype.handleClick = function handleClick(event) {
+      var kind = this.track.kind;
+      var kinds = this.track.kinds;
+      var tracks = this.player_.textTracks();
+
+      if (!kinds) {
+        kinds = [kind];
+      }
+
+      _MenuItem.prototype.handleClick.call(this, event);
+
+      if (!tracks) {
+        return;
+      }
+
+      for (var i = 0; i < tracks.length; i++) {
+        var track = tracks[i];
+
+        if (track === this.track && kinds.indexOf(track.kind) > -1) {
+          if (track.mode !== 'showing') {
+            track.mode = 'showing';
+          }
+        } else if (track.mode !== 'disabled') {
+          track.mode = 'disabled';
+        }
+      }
+    };
+
+    /**
+     * Handle text track list change
+     *
+     * @param {EventTarget~Event} event
+     *        The `change` event that caused this function to be called.
+     *
+     * @listens TextTrackList#change
+     */
+
+
+    TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
+      var shouldBeSelected = this.track.mode === 'showing';
+
+      // Prevent redundant selected() calls because they may cause
+      // screen readers to read the appended control text unnecessarily
+      if (shouldBeSelected !== this.isSelected_) {
+        this.selected(shouldBeSelected);
+      }
+    };
+
+    TextTrackMenuItem.prototype.handleSelectedLanguageChange = function handleSelectedLanguageChange(event) {
+      if (this.track.mode === 'showing') {
+        var selectedLanguage = this.player_.cache_.selectedLanguage;
+
+        // Don't replace the kind of track across the same language
+        if (selectedLanguage && selectedLanguage.enabled && selectedLanguage.language === this.track.language && selectedLanguage.kind !== this.track.kind) {
+          return;
+        }
+
+        this.player_.cache_.selectedLanguage = {
+          enabled: true,
+          language: this.track.language,
+          kind: this.track.kind
+        };
+      }
+    };
+
+    TextTrackMenuItem.prototype.dispose = function dispose() {
+      // remove reference to track object on dispose
+      this.track = null;
+
+      _MenuItem.prototype.dispose.call(this);
+    };
+
+    return TextTrackMenuItem;
+  }(MenuItem);
+
+  Component.registerComponent('TextTrackMenuItem', TextTrackMenuItem);
+
+  /**
+   * @file off-text-track-menu-item.js
+   */
+
+  /**
+   * A special menu item for turning of a specific type of text track
+   *
+   * @extends TextTrackMenuItem
+   */
+
+  var OffTextTrackMenuItem = function (_TextTrackMenuItem) {
+    inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function OffTextTrackMenuItem(player, options) {
+      classCallCheck(this, OffTextTrackMenuItem);
+
+      // Create pseudo track info
+      // Requires options['kind']
+      options.track = {
+        player: player,
+        kind: options.kind,
+        kinds: options.kinds,
+        default: false,
+        mode: 'disabled'
+      };
+
+      if (!options.kinds) {
+        options.kinds = [options.kind];
+      }
+
+      if (options.label) {
+        options.track.label = options.label;
+      } else {
+        options.track.label = options.kinds.join(' and ') + ' off';
+      }
+
+      // MenuItem is selectable
+      options.selectable = true;
+
+      return possibleConstructorReturn(this, _TextTrackMenuItem.call(this, player, options));
+    }
+
+    /**
+     * Handle text track change
+     *
+     * @param {EventTarget~Event} event
+     *        The event that caused this function to run
+     */
+
+
+    OffTextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
+      var tracks = this.player().textTracks();
+      var shouldBeSelected = true;
+
+      for (var i = 0, l = tracks.length; i < l; i++) {
+        var track = tracks[i];
+
+        if (this.options_.kinds.indexOf(track.kind) > -1 && track.mode === 'showing') {
+          shouldBeSelected = false;
+          break;
+        }
+      }
+
+      // Prevent redundant selected() calls because they may cause
+      // screen readers to read the appended control text unnecessarily
+      if (shouldBeSelected !== this.isSelected_) {
+        this.selected(shouldBeSelected);
+      }
+    };
+
+    OffTextTrackMenuItem.prototype.handleSelectedLanguageChange = function handleSelectedLanguageChange(event) {
+      var tracks = this.player().textTracks();
+      var allHidden = true;
+
+      for (var i = 0, l = tracks.length; i < l; i++) {
+        var track = tracks[i];
+
+        if (['captions', 'descriptions', 'subtitles'].indexOf(track.kind) > -1 && track.mode === 'showing') {
+          allHidden = false;
+          break;
+        }
+      }
+
+      if (allHidden) {
+        this.player_.cache_.selectedLanguage = {
+          enabled: false
+        };
+      }
+    };
+
+    return OffTextTrackMenuItem;
+  }(TextTrackMenuItem);
+
+  Component.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
+
+  /**
+   * @file text-track-button.js
+   */
+
+  /**
+   * The base class for buttons that toggle specific text track types (e.g. subtitles)
+   *
+   * @extends MenuButton
+   */
+
+  var TextTrackButton = function (_TrackButton) {
+    inherits(TextTrackButton, _TrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     */
+    function TextTrackButton(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, TextTrackButton);
+
+      options.tracks = player.textTracks();
+
+      return possibleConstructorReturn(this, _TrackButton.call(this, player, options));
+    }
+
+    /**
+     * Create a menu item for each text track
+     *
+     * @param {TextTrackMenuItem[]} [items=[]]
+     *        Existing array of items to use during creation
+     *
+     * @return {TextTrackMenuItem[]}
+     *         Array of menu items that were created
+     */
+
+
+    TextTrackButton.prototype.createItems = function createItems() {
+      var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+      var TrackMenuItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TextTrackMenuItem;
+
+
+      // Label is an override for the [track] off label
+      // USed to localise captions/subtitles
+      var label = void 0;
+
+      if (this.label_) {
+        label = this.label_ + ' off';
+      }
+      // Add an OFF menu item to turn all tracks off
+      items.push(new OffTextTrackMenuItem(this.player_, {
+        kinds: this.kinds_,
+        kind: this.kind_,
+        label: label
+      }));
+
+      this.hideThreshold_ += 1;
+
+      var tracks = this.player_.textTracks();
+
+      if (!Array.isArray(this.kinds_)) {
+        this.kinds_ = [this.kind_];
+      }
+
+      for (var i = 0; i < tracks.length; i++) {
+        var track = tracks[i];
+
+        // only add tracks that are of an appropriate kind and have a label
+        if (this.kinds_.indexOf(track.kind) > -1) {
+
+          var item = new TrackMenuItem(this.player_, {
+            track: track,
+            // MenuItem is selectable
+            selectable: true
+          });
+
+          item.addClass('vjs-' + track.kind + '-menu-item');
+          items.push(item);
+        }
+      }
+
+      return items;
+    };
+
+    return TextTrackButton;
+  }(TrackButton);
+
+  Component.registerComponent('TextTrackButton', TextTrackButton);
+
+  /**
+   * @file chapters-track-menu-item.js
+   */
+
+  /**
+   * The chapter track menu item
+   *
+   * @extends MenuItem
+   */
+
+  var ChaptersTrackMenuItem = function (_MenuItem) {
+    inherits(ChaptersTrackMenuItem, _MenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function ChaptersTrackMenuItem(player, options) {
+      classCallCheck(this, ChaptersTrackMenuItem);
+
+      var track = options.track;
+      var cue = options.cue;
+      var currentTime = player.currentTime();
+
+      // Modify options for parent MenuItem class's init.
+      options.selectable = true;
+      options.label = cue.text;
+      options.selected = cue.startTime <= currentTime && currentTime < cue.endTime;
+
+      var _this = possibleConstructorReturn(this, _MenuItem.call(this, player, options));
+
+      _this.track = track;
+      _this.cue = cue;
+      track.addEventListener('cuechange', bind(_this, _this.update));
+      return _this;
+    }
+
+    /**
+     * This gets called when an `ChaptersTrackMenuItem` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    ChaptersTrackMenuItem.prototype.handleClick = function handleClick(event) {
+      _MenuItem.prototype.handleClick.call(this);
+      this.player_.currentTime(this.cue.startTime);
+      this.update(this.cue.startTime);
+    };
+
+    /**
+     * Update chapter menu item
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `cuechange` event that caused this function to run.
+     *
+     * @listens TextTrack#cuechange
+     */
+
+
+    ChaptersTrackMenuItem.prototype.update = function update(event) {
+      var cue = this.cue;
+      var currentTime = this.player_.currentTime();
+
+      // vjs.log(currentTime, cue.startTime);
+      this.selected(cue.startTime <= currentTime && currentTime < cue.endTime);
+    };
+
+    return ChaptersTrackMenuItem;
+  }(MenuItem);
+
+  Component.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
+
+  /**
+   * @file chapters-button.js
+   */
+
+  /**
+   * The button component for toggling and selecting chapters
+   * Chapters act much differently than other text tracks
+   * Cues are navigation vs. other tracks of alternative languages
+   *
+   * @extends TextTrackButton
+   */
+
+  var ChaptersButton = function (_TextTrackButton) {
+    inherits(ChaptersButton, _TextTrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function to call when this function is ready.
+     */
+    function ChaptersButton(player, options, ready) {
+      classCallCheck(this, ChaptersButton);
+      return possibleConstructorReturn(this, _TextTrackButton.call(this, player, options, ready));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    ChaptersButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-chapters-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    ChaptersButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-chapters-button ' + _TextTrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    /**
+     * Update the menu based on the current state of its items.
+     *
+     * @param {EventTarget~Event} [event]
+     *        An event that triggered this function to run.
+     *
+     * @listens TextTrackList#addtrack
+     * @listens TextTrackList#removetrack
+     * @listens TextTrackList#change
+     */
+
+
+    ChaptersButton.prototype.update = function update(event) {
+      if (!this.track_ || event && (event.type === 'addtrack' || event.type === 'removetrack')) {
+        this.setTrack(this.findChaptersTrack());
+      }
+      _TextTrackButton.prototype.update.call(this);
+    };
+
+    /**
+     * Set the currently selected track for the chapters button.
+     *
+     * @param {TextTrack} track
+     *        The new track to select. Nothing will change if this is the currently selected
+     *        track.
+     */
+
+
+    ChaptersButton.prototype.setTrack = function setTrack(track) {
+      if (this.track_ === track) {
+        return;
+      }
+
+      if (!this.updateHandler_) {
+        this.updateHandler_ = this.update.bind(this);
+      }
+
+      // here this.track_ refers to the old track instance
+      if (this.track_) {
+        var remoteTextTrackEl = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);
+
+        if (remoteTextTrackEl) {
+          remoteTextTrackEl.removeEventListener('load', this.updateHandler_);
+        }
+
+        this.track_ = null;
+      }
+
+      this.track_ = track;
+
+      // here this.track_ refers to the new track instance
+      if (this.track_) {
+        this.track_.mode = 'hidden';
+
+        var _remoteTextTrackEl = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);
+
+        if (_remoteTextTrackEl) {
+          _remoteTextTrackEl.addEventListener('load', this.updateHandler_);
+        }
+      }
+    };
+
+    /**
+     * Find the track object that is currently in use by this ChaptersButton
+     *
+     * @return {TextTrack|undefined}
+     *         The current track or undefined if none was found.
+     */
+
+
+    ChaptersButton.prototype.findChaptersTrack = function findChaptersTrack() {
+      var tracks = this.player_.textTracks() || [];
+
+      for (var i = tracks.length - 1; i >= 0; i--) {
+        // We will always choose the last track as our chaptersTrack
+        var track = tracks[i];
+
+        if (track.kind === this.kind_) {
+          return track;
+        }
+      }
+    };
+
+    /**
+     * Get the caption for the ChaptersButton based on the track label. This will also
+     * use the current tracks localized kind as a fallback if a label does not exist.
+     *
+     * @return {string}
+     *         The tracks current label or the localized track kind.
+     */
+
+
+    ChaptersButton.prototype.getMenuCaption = function getMenuCaption() {
+      if (this.track_ && this.track_.label) {
+        return this.track_.label;
+      }
+      return this.localize(toTitleCase(this.kind_));
+    };
+
+    /**
+     * Create menu from chapter track
+     *
+     * @return {Menu}
+     *         New menu for the chapter buttons
+     */
+
+
+    ChaptersButton.prototype.createMenu = function createMenu() {
+      this.options_.title = this.getMenuCaption();
+      return _TextTrackButton.prototype.createMenu.call(this);
+    };
+
+    /**
+     * Create a menu item for each text track
+     *
+     * @return {TextTrackMenuItem[]}
+     *         Array of menu items
+     */
+
+
+    ChaptersButton.prototype.createItems = function createItems() {
+      var items = [];
+
+      if (!this.track_) {
+        return items;
+      }
+
+      var cues = this.track_.cues;
+
+      if (!cues) {
+        return items;
+      }
+
+      for (var i = 0, l = cues.length; i < l; i++) {
+        var cue = cues[i];
+        var mi = new ChaptersTrackMenuItem(this.player_, {track: this.track_, cue: cue});
+
+        items.push(mi);
+      }
+
+      return items;
+    };
+
+    return ChaptersButton;
+  }(TextTrackButton);
+
+  /**
+   * `kind` of TextTrack to look for to associate it with this menu.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  ChaptersButton.prototype.kind_ = 'chapters';
+
+  /**
+   * The text that should display over the `ChaptersButton`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+  ChaptersButton.prototype.controlText_ = 'Chapters';
+
+  Component.registerComponent('ChaptersButton', ChaptersButton);
+
+  /**
+   * @file descriptions-button.js
+   */
+
+  /**
+   * The button component for toggling and selecting descriptions
+   *
+   * @extends TextTrackButton
+   */
+
+  var DescriptionsButton = function (_TextTrackButton) {
+    inherits(DescriptionsButton, _TextTrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function to call when this component is ready.
+     */
+    function DescriptionsButton(player, options, ready) {
+      classCallCheck(this, DescriptionsButton);
+
+      var _this = possibleConstructorReturn(this, _TextTrackButton.call(this, player, options, ready));
+
+      var tracks = player.textTracks();
+      var changeHandler = bind(_this, _this.handleTracksChange);
+
+      tracks.addEventListener('change', changeHandler);
+      _this.on('dispose', function () {
+        tracks.removeEventListener('change', changeHandler);
+      });
+      return _this;
+    }
+
+    /**
+     * Handle text track change
+     *
+     * @param {EventTarget~Event} event
+     *        The event that caused this function to run
+     *
+     * @listens TextTrackList#change
+     */
+
+
+    DescriptionsButton.prototype.handleTracksChange = function handleTracksChange(event) {
+      var tracks = this.player().textTracks();
+      var disabled = false;
+
+      // Check whether a track of a different kind is showing
+      for (var i = 0, l = tracks.length; i < l; i++) {
+        var track = tracks[i];
+
+        if (track.kind !== this.kind_ && track.mode === 'showing') {
+          disabled = true;
+          break;
+        }
+      }
+
+      // If another track is showing, disable this menu button
+      if (disabled) {
+        this.disable();
+      } else {
+        this.enable();
+      }
+    };
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    DescriptionsButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-descriptions-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    DescriptionsButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-descriptions-button ' + _TextTrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    return DescriptionsButton;
+  }(TextTrackButton);
+
+  /**
+   * `kind` of TextTrack to look for to associate it with this menu.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  DescriptionsButton.prototype.kind_ = 'descriptions';
+
+  /**
+   * The text that should display over the `DescriptionsButton`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+  DescriptionsButton.prototype.controlText_ = 'Descriptions';
+
+  Component.registerComponent('DescriptionsButton', DescriptionsButton);
+
+  /**
+   * @file subtitles-button.js
+   */
+
+  /**
+   * The button component for toggling and selecting subtitles
+   *
+   * @extends TextTrackButton
+   */
+
+  var SubtitlesButton = function (_TextTrackButton) {
+    inherits(SubtitlesButton, _TextTrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function to call when this component is ready.
+     */
+    function SubtitlesButton(player, options, ready) {
+      classCallCheck(this, SubtitlesButton);
+      return possibleConstructorReturn(this, _TextTrackButton.call(this, player, options, ready));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    SubtitlesButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-subtitles-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    SubtitlesButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-subtitles-button ' + _TextTrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    return SubtitlesButton;
+  }(TextTrackButton);
+
+  /**
+   * `kind` of TextTrack to look for to associate it with this menu.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  SubtitlesButton.prototype.kind_ = 'subtitles';
+
+  /**
+   * The text that should display over the `SubtitlesButton`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+  SubtitlesButton.prototype.controlText_ = 'Subtitles';
+
+  Component.registerComponent('SubtitlesButton', SubtitlesButton);
+
+  /**
+   * @file caption-settings-menu-item.js
+   */
+
+  /**
+   * The menu item for caption track settings menu
+   *
+   * @extends TextTrackMenuItem
+   */
+
+  var CaptionSettingsMenuItem = function (_TextTrackMenuItem) {
+    inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function CaptionSettingsMenuItem(player, options) {
+      classCallCheck(this, CaptionSettingsMenuItem);
+
+      options.track = {
+        player: player,
+        kind: options.kind,
+        label: options.kind + ' settings',
+        selectable: false,
+        default: false,
+        mode: 'disabled'
+      };
+
+      // CaptionSettingsMenuItem has no concept of 'selected'
+      options.selectable = false;
+
+      options.name = 'CaptionSettingsMenuItem';
+
+      var _this = possibleConstructorReturn(this, _TextTrackMenuItem.call(this, player, options));
+
+      _this.addClass('vjs-texttrack-settings');
+      _this.controlText(', opens ' + options.kind + ' settings dialog');
+      return _this;
+    }
+
+    /**
+     * This gets called when an `CaptionSettingsMenuItem` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    CaptionSettingsMenuItem.prototype.handleClick = function handleClick(event) {
+      this.player().getChild('textTrackSettings').open();
+    };
+
+    return CaptionSettingsMenuItem;
+  }(TextTrackMenuItem);
+
+  Component.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
+
+  /**
+   * @file captions-button.js
+   */
+
+  /**
+   * The button component for toggling and selecting captions
+   *
+   * @extends TextTrackButton
+   */
+
+  var CaptionsButton = function (_TextTrackButton) {
+    inherits(CaptionsButton, _TextTrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        The function to call when this component is ready.
+     */
+    function CaptionsButton(player, options, ready) {
+      classCallCheck(this, CaptionsButton);
+      return possibleConstructorReturn(this, _TextTrackButton.call(this, player, options, ready));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    CaptionsButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-captions-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    CaptionsButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-captions-button ' + _TextTrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    /**
+     * Create caption menu items
+     *
+     * @return {CaptionSettingsMenuItem[]}
+     *         The array of current menu items.
+     */
+
+
+    CaptionsButton.prototype.createItems = function createItems() {
+      var items = [];
+
+      if (!(this.player().tech_ && this.player().tech_.featuresNativeTextTracks) && this.player().getChild('textTrackSettings')) {
+        items.push(new CaptionSettingsMenuItem(this.player_, {kind: this.kind_}));
+
+        this.hideThreshold_ += 1;
+      }
+
+      return _TextTrackButton.prototype.createItems.call(this, items);
+    };
+
+    return CaptionsButton;
+  }(TextTrackButton);
+
+  /**
+   * `kind` of TextTrack to look for to associate it with this menu.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  CaptionsButton.prototype.kind_ = 'captions';
+
+  /**
+   * The text that should display over the `CaptionsButton`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+  CaptionsButton.prototype.controlText_ = 'Captions';
+
+  Component.registerComponent('CaptionsButton', CaptionsButton);
+
+  /**
+   * @file subs-caps-menu-item.js
+   */
+
+  /**
+   * SubsCapsMenuItem has an [cc] icon to distinguish captions from subtitles
+   * in the SubsCapsMenu.
+   *
+   * @extends TextTrackMenuItem
+   */
+
+  var SubsCapsMenuItem = function (_TextTrackMenuItem) {
+    inherits(SubsCapsMenuItem, _TextTrackMenuItem);
+
+    function SubsCapsMenuItem() {
+      classCallCheck(this, SubsCapsMenuItem);
+      return possibleConstructorReturn(this, _TextTrackMenuItem.apply(this, arguments));
+    }
+
+    SubsCapsMenuItem.prototype.createEl = function createEl(type, props, attrs) {
+      var innerHTML = '<span class="vjs-menu-item-text">' + this.localize(this.options_.label);
+
+      if (this.options_.track.kind === 'captions') {
+        innerHTML += '\n        <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n        <span class="vjs-control-text"> ' + this.localize('Captions') + '</span>\n      ';
+      }
+
+      innerHTML += '</span>';
+
+      var el = _TextTrackMenuItem.prototype.createEl.call(this, type, assign({
+        innerHTML: innerHTML
+      }, props), attrs);
+
+      return el;
+    };
+
+    return SubsCapsMenuItem;
+  }(TextTrackMenuItem);
+
+  Component.registerComponent('SubsCapsMenuItem', SubsCapsMenuItem);
+
+  /**
+   * @file sub-caps-button.js
+   */
+  /**
+   * The button component for toggling and selecting captions and/or subtitles
+   *
+   * @extends TextTrackButton
+   */
+
+  var SubsCapsButton = function (_TextTrackButton) {
+    inherits(SubsCapsButton, _TextTrackButton);
+
+    function SubsCapsButton(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, SubsCapsButton);
+
+      // Although North America uses "captions" in most cases for
+      // "captions and subtitles" other locales use "subtitles"
+      var _this = possibleConstructorReturn(this, _TextTrackButton.call(this, player, options));
+
+      _this.label_ = 'subtitles';
+      if (['en', 'en-us', 'en-ca', 'fr-ca'].indexOf(_this.player_.language_) > -1) {
+        _this.label_ = 'captions';
+      }
+      _this.menuButton_.controlText(toTitleCase(_this.label_));
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    SubsCapsButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-subs-caps-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    SubsCapsButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-subs-caps-button ' + _TextTrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    /**
+     * Create caption/subtitles menu items
+     *
+     * @return {CaptionSettingsMenuItem[]}
+     *         The array of current menu items.
+     */
+
+
+    SubsCapsButton.prototype.createItems = function createItems() {
+      var items = [];
+
+      if (!(this.player().tech_ && this.player().tech_.featuresNativeTextTracks) && this.player().getChild('textTrackSettings')) {
+        items.push(new CaptionSettingsMenuItem(this.player_, {kind: this.label_}));
+
+        this.hideThreshold_ += 1;
+      }
+
+      items = _TextTrackButton.prototype.createItems.call(this, items, SubsCapsMenuItem);
+      return items;
+    };
+
+    return SubsCapsButton;
+  }(TextTrackButton);
+
+  /**
+   * `kind`s of TextTrack to look for to associate it with this menu.
+   *
+   * @type {array}
+   * @private
+   */
+
+
+  SubsCapsButton.prototype.kinds_ = ['captions', 'subtitles'];
+
+  /**
+   * The text that should display over the `SubsCapsButton`s controls.
+   *
+   *
+   * @type {string}
+   * @private
+   */
+  SubsCapsButton.prototype.controlText_ = 'Subtitles';
+
+  Component.registerComponent('SubsCapsButton', SubsCapsButton);
+
+  /**
+   * @file audio-track-menu-item.js
+   */
+
+  /**
+   * An {@link AudioTrack} {@link MenuItem}
+   *
+   * @extends MenuItem
+   */
+
+  var AudioTrackMenuItem = function (_MenuItem) {
+    inherits(AudioTrackMenuItem, _MenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function AudioTrackMenuItem(player, options) {
+      classCallCheck(this, AudioTrackMenuItem);
+
+      var track = options.track;
+      var tracks = player.audioTracks();
+
+      // Modify options for parent MenuItem class's init.
+      options.label = track.label || track.language || 'Unknown';
+      options.selected = track.enabled;
+
+      var _this = possibleConstructorReturn(this, _MenuItem.call(this, player, options));
+
+      _this.track = track;
+
+      var changeHandler = function changeHandler() {
+        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+          args[_key] = arguments[_key];
+        }
+
+        _this.handleTracksChange.apply(_this, args);
+      };
+
+      tracks.addEventListener('change', changeHandler);
+      _this.on('dispose', function () {
+        tracks.removeEventListener('change', changeHandler);
+      });
+      return _this;
+    }
+
+    /**
+     * This gets called when an `AudioTrackMenuItem is "clicked". See {@link ClickableComponent}
+     * for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    AudioTrackMenuItem.prototype.handleClick = function handleClick(event) {
+      var tracks = this.player_.audioTracks();
+
+      _MenuItem.prototype.handleClick.call(this, event);
+
+      for (var i = 0; i < tracks.length; i++) {
+        var track = tracks[i];
+
+        track.enabled = track === this.track;
+      }
+    };
+
+    /**
+     * Handle any {@link AudioTrack} change.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The {@link AudioTrackList#change} event that caused this to run.
+     *
+     * @listens AudioTrackList#change
+     */
+
+
+    AudioTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
+      this.selected(this.track.enabled);
+    };
+
+    return AudioTrackMenuItem;
+  }(MenuItem);
+
+  Component.registerComponent('AudioTrackMenuItem', AudioTrackMenuItem);
+
+  /**
+   * @file audio-track-button.js
+   */
+
+  /**
+   * The base class for buttons that toggle specific {@link AudioTrack} types.
+   *
+   * @extends TrackButton
+   */
+
+  var AudioTrackButton = function (_TrackButton) {
+    inherits(AudioTrackButton, _TrackButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options={}]
+     *        The key/value store of player options.
+     */
+    function AudioTrackButton(player) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, AudioTrackButton);
+
+      options.tracks = player.audioTracks();
+
+      return possibleConstructorReturn(this, _TrackButton.call(this, player, options));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    AudioTrackButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-audio-button ' + _TrackButton.prototype.buildCSSClass.call(this);
+    };
+
+    AudioTrackButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-audio-button ' + _TrackButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    /**
+     * Create a menu item for each audio track
+     *
+     * @param {AudioTrackMenuItem[]} [items=[]]
+     *        An array of existing menu items to use.
+     *
+     * @return {AudioTrackMenuItem[]}
+     *         An array of menu items
+     */
+
+
+    AudioTrackButton.prototype.createItems = function createItems() {
+      var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+
+      // if there's only one audio track, there no point in showing it
+      this.hideThreshold_ = 1;
+
+      var tracks = this.player_.audioTracks();
+
+      for (var i = 0; i < tracks.length; i++) {
+        var track = tracks[i];
+
+        items.push(new AudioTrackMenuItem(this.player_, {
+          track: track,
+          // MenuItem is selectable
+          selectable: true
+        }));
+      }
+
+      return items;
+    };
+
+    return AudioTrackButton;
+  }(TrackButton);
+
+  /**
+   * The text that should display over the `AudioTrackButton`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  AudioTrackButton.prototype.controlText_ = 'Audio Track';
+  Component.registerComponent('AudioTrackButton', AudioTrackButton);
+
+  /**
+   * @file playback-rate-menu-item.js
+   */
+
+  /**
+   * The specific menu item type for selecting a playback rate.
+   *
+   * @extends MenuItem
+   */
+
+  var PlaybackRateMenuItem = function (_MenuItem) {
+    inherits(PlaybackRateMenuItem, _MenuItem);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function PlaybackRateMenuItem(player, options) {
+      classCallCheck(this, PlaybackRateMenuItem);
+
+      var label = options.rate;
+      var rate = parseFloat(label, 10);
+
+      // Modify options for parent MenuItem class's init.
+      options.label = label;
+      options.selected = rate === 1;
+      options.selectable = true;
+
+      var _this = possibleConstructorReturn(this, _MenuItem.call(this, player, options));
+
+      _this.label = label;
+      _this.rate = rate;
+
+      _this.on(player, 'ratechange', _this.update);
+      return _this;
+    }
+
+    /**
+     * This gets called when an `PlaybackRateMenuItem` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    PlaybackRateMenuItem.prototype.handleClick = function handleClick(event) {
+      _MenuItem.prototype.handleClick.call(this);
+      this.player().playbackRate(this.rate);
+    };
+
+    /**
+     * Update the PlaybackRateMenuItem when the playbackrate changes.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `ratechange` event that caused this function to run.
+     *
+     * @listens Player#ratechange
+     */
+
+
+    PlaybackRateMenuItem.prototype.update = function update(event) {
+      this.selected(this.player().playbackRate() === this.rate);
+    };
+
+    return PlaybackRateMenuItem;
+  }(MenuItem);
+
+  /**
+   * The text that should display over the `PlaybackRateMenuItem`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  PlaybackRateMenuItem.prototype.contentElType = 'button';
+
+  Component.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
+
+  /**
+   * @file playback-rate-menu-button.js
+   */
+
+  /**
+   * The component for controlling the playback rate.
+   *
+   * @extends MenuButton
+   */
+
+  var PlaybackRateMenuButton = function (_MenuButton) {
+    inherits(PlaybackRateMenuButton, _MenuButton);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     */
+    function PlaybackRateMenuButton(player, options) {
+      classCallCheck(this, PlaybackRateMenuButton);
+
+      var _this = possibleConstructorReturn(this, _MenuButton.call(this, player, options));
+
+      _this.updateVisibility();
+      _this.updateLabel();
+
+      _this.on(player, 'loadstart', _this.updateVisibility);
+      _this.on(player, 'ratechange', _this.updateLabel);
+      return _this;
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    PlaybackRateMenuButton.prototype.createEl = function createEl$$1() {
+      var el = _MenuButton.prototype.createEl.call(this);
+
+      this.labelEl_ = createEl('div', {
+        className: 'vjs-playback-rate-value',
+        innerHTML: '1x'
+      });
+
+      el.appendChild(this.labelEl_);
+
+      return el;
+    };
+
+    PlaybackRateMenuButton.prototype.dispose = function dispose() {
+      this.labelEl_ = null;
+
+      _MenuButton.prototype.dispose.call(this);
+    };
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+
+
+    PlaybackRateMenuButton.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-playback-rate ' + _MenuButton.prototype.buildCSSClass.call(this);
+    };
+
+    PlaybackRateMenuButton.prototype.buildWrapperCSSClass = function buildWrapperCSSClass() {
+      return 'vjs-playback-rate ' + _MenuButton.prototype.buildWrapperCSSClass.call(this);
+    };
+
+    /**
+     * Create the playback rate menu
+     *
+     * @return {Menu}
+     *         Menu object populated with {@link PlaybackRateMenuItem}s
+     */
+
+
+    PlaybackRateMenuButton.prototype.createMenu = function createMenu() {
+      var menu = new Menu(this.player());
+      var rates = this.playbackRates();
+
+      if (rates) {
+        for (var i = rates.length - 1; i >= 0; i--) {
+          menu.addChild(new PlaybackRateMenuItem(this.player(), {rate: rates[i] + 'x'}));
+        }
+      }
+
+      return menu;
+    };
+
+    /**
+     * Updates ARIA accessibility attributes
+     */
+
+
+    PlaybackRateMenuButton.prototype.updateARIAAttributes = function updateARIAAttributes() {
+      // Current playback rate
+      this.el().setAttribute('aria-valuenow', this.player().playbackRate());
+    };
+
+    /**
+     * This gets called when an `PlaybackRateMenuButton` is "clicked". See
+     * {@link ClickableComponent} for more detailed information on what a click can be.
+     *
+     * @param {EventTarget~Event} [event]
+     *        The `keydown`, `tap`, or `click` event that caused this function to be
+     *        called.
+     *
+     * @listens tap
+     * @listens click
+     */
+
+
+    PlaybackRateMenuButton.prototype.handleClick = function handleClick(event) {
+      // select next rate option
+      var currentRate = this.player().playbackRate();
+      var rates = this.playbackRates();
+
+      // this will select first one if the last one currently selected
+      var newRate = rates[0];
+
+      for (var i = 0; i < rates.length; i++) {
+        if (rates[i] > currentRate) {
+          newRate = rates[i];
+          break;
+        }
+      }
+      this.player().playbackRate(newRate);
+    };
+
+    /**
+     * Get possible playback rates
+     *
+     * @return {Array}
+     *         All possible playback rates
+     */
+
+
+    PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {
+      return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates;
+    };
+
+    /**
+     * Get whether playback rates is supported by the tech
+     * and an array of playback rates exists
+     *
+     * @return {boolean}
+     *         Whether changing playback rate is supported
+     */
+
+
+    PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {
+      return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0;
+    };
+
+    /**
+     * Hide playback rate controls when they're no playback rate options to select
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#loadstart
+     */
+
+
+    PlaybackRateMenuButton.prototype.updateVisibility = function updateVisibility(event) {
+      if (this.playbackRateSupported()) {
+        this.removeClass('vjs-hidden');
+      } else {
+        this.addClass('vjs-hidden');
+      }
+    };
+
+    /**
+     * Update button label when rate changed
+     *
+     * @param {EventTarget~Event} [event]
+     *        The event that caused this function to run.
+     *
+     * @listens Player#ratechange
+     */
+
+
+    PlaybackRateMenuButton.prototype.updateLabel = function updateLabel(event) {
+      if (this.playbackRateSupported()) {
+        this.labelEl_.innerHTML = this.player().playbackRate() + 'x';
+      }
+    };
+
+    return PlaybackRateMenuButton;
+  }(MenuButton);
+
+  /**
+   * The text that should display over the `FullscreenToggle`s controls. Added for localization.
+   *
+   * @type {string}
+   * @private
+   */
+
+
+  PlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';
+
+  Component.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
+
+  /**
+   * @file spacer.js
+   */
+
+  /**
+   * Just an empty spacer element that can be used as an append point for plugins, etc.
+   * Also can be used to create space between elements when necessary.
+   *
+   * @extends Component
+   */
+
+  var Spacer = function (_Component) {
+    inherits(Spacer, _Component);
+
+    function Spacer() {
+      classCallCheck(this, Spacer);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+    Spacer.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-spacer ' + _Component.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    Spacer.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: this.buildCSSClass()
+      });
+    };
+
+    return Spacer;
+  }(Component);
+
+  Component.registerComponent('Spacer', Spacer);
+
+  /**
+   * @file custom-control-spacer.js
+   */
+
+  /**
+   * Spacer specifically meant to be used as an insertion point for new plugins, etc.
+   *
+   * @extends Spacer
+   */
+
+  var CustomControlSpacer = function (_Spacer) {
+    inherits(CustomControlSpacer, _Spacer);
+
+    function CustomControlSpacer() {
+      classCallCheck(this, CustomControlSpacer);
+      return possibleConstructorReturn(this, _Spacer.apply(this, arguments));
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     */
+    CustomControlSpacer.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-custom-control-spacer ' + _Spacer.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+
+
+    CustomControlSpacer.prototype.createEl = function createEl() {
+      var el = _Spacer.prototype.createEl.call(this, {
+        className: this.buildCSSClass()
+      });
+
+      // No-flex/table-cell mode requires there be some content
+      // in the cell to fill the remaining space of the table.
+      el.innerHTML = '\xA0';
+      return el;
+    };
+
+    return CustomControlSpacer;
+  }(Spacer);
+
+  Component.registerComponent('CustomControlSpacer', CustomControlSpacer);
+
+  /**
+   * @file control-bar.js
+   */
+
+  /**
+   * Container of main controls.
+   *
+   * @extends Component
+   */
+
+  var ControlBar = function (_Component) {
+    inherits(ControlBar, _Component);
+
+    function ControlBar() {
+      classCallCheck(this, ControlBar);
+      return possibleConstructorReturn(this, _Component.apply(this, arguments));
+    }
+
+    /**
+     * Create the `Component`'s DOM element
+     *
+     * @return {Element}
+     *         The element that was created.
+     */
+    ControlBar.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'div', {
+        className: 'vjs-control-bar',
+        dir: 'ltr'
+      });
+    };
+
+    return ControlBar;
+  }(Component);
+
+  /**
+   * Default options for `ControlBar`
+   *
+   * @type {Object}
+   * @private
+   */
+
+
+  ControlBar.prototype.options_ = {
+    children: ['playToggle', 'volumePanel', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'descriptionsButton', 'subsCapsButton', 'audioTrackButton', 'fullscreenToggle']
+  };
+
+  Component.registerComponent('ControlBar', ControlBar);
+
+  /**
+   * @file error-display.js
+   */
+
+  /**
+   * A display that indicates an error has occurred. This means that the video
+   * is unplayable.
+   *
+   * @extends ModalDialog
+   */
+
+  var ErrorDisplay = function (_ModalDialog) {
+    inherits(ErrorDisplay, _ModalDialog);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param  {Player} player
+     *         The `Player` that this class should be attached to.
+     *
+     * @param  {Object} [options]
+     *         The key/value store of player options.
+     */
+    function ErrorDisplay(player, options) {
+      classCallCheck(this, ErrorDisplay);
+
+      var _this = possibleConstructorReturn(this, _ModalDialog.call(this, player, options));
+
+      _this.on(player, 'error', _this.open);
+      return _this;
+    }
+
+    /**
+     * Builds the default DOM `className`.
+     *
+     * @return {string}
+     *         The DOM `className` for this object.
+     *
+     * @deprecated Since version 5.
+     */
+
+
+    ErrorDisplay.prototype.buildCSSClass = function buildCSSClass() {
+      return 'vjs-error-display ' + _ModalDialog.prototype.buildCSSClass.call(this);
+    };
+
+    /**
+     * Gets the localized error message based on the `Player`s error.
+     *
+     * @return {string}
+     *         The `Player`s error message localized or an empty string.
+     */
+
+
+    ErrorDisplay.prototype.content = function content() {
+      var error = this.player().error();
+
+      return error ? this.localize(error.message) : '';
+    };
+
+    return ErrorDisplay;
+  }(ModalDialog);
+
+  /**
+   * The default options for an `ErrorDisplay`.
+   *
+   * @private
+   */
+
+
+  ErrorDisplay.prototype.options_ = mergeOptions(ModalDialog.prototype.options_, {
+    pauseOnOpen: false,
+    fillAlways: true,
+    temporary: false,
+    uncloseable: true
+  });
+
+  Component.registerComponent('ErrorDisplay', ErrorDisplay);
+
+  /**
+   * @file text-track-settings.js
+   */
+
+  var LOCAL_STORAGE_KEY = 'vjs-text-track-settings';
+
+  var COLOR_BLACK = ['#000', 'Black'];
+  var COLOR_BLUE = ['#00F', 'Blue'];
+  var COLOR_CYAN = ['#0FF', 'Cyan'];
+  var COLOR_GREEN = ['#0F0', 'Green'];
+  var COLOR_MAGENTA = ['#F0F', 'Magenta'];
+  var COLOR_RED = ['#F00', 'Red'];
+  var COLOR_WHITE = ['#FFF', 'White'];
+  var COLOR_YELLOW = ['#FF0', 'Yellow'];
+
+  var OPACITY_OPAQUE = ['1', 'Opaque'];
+  var OPACITY_SEMI = ['0.5', 'Semi-Transparent'];
+  var OPACITY_TRANS = ['0', 'Transparent'];
+
+  // Configuration for the various <select> elements in the DOM of this component.
+  //
+  // Possible keys include:
+  //
+  // `default`:
+  //   The default option index. Only needs to be provided if not zero.
+  // `parser`:
+  //   A function which is used to parse the value from the selected option in
+  //   a customized way.
+  // `selector`:
+  //   The selector used to find the associated <select> element.
+  var selectConfigs = {
+    backgroundColor: {
+      selector: '.vjs-bg-color > select',
+      id: 'captions-background-color-%s',
+      label: 'Color',
+      options: [COLOR_BLACK, COLOR_WHITE, COLOR_RED, COLOR_GREEN, COLOR_BLUE, COLOR_YELLOW, COLOR_MAGENTA, COLOR_CYAN]
+    },
+
+    backgroundOpacity: {
+      selector: '.vjs-bg-opacity > select',
+      id: 'captions-background-opacity-%s',
+      label: 'Transparency',
+      options: [OPACITY_OPAQUE, OPACITY_SEMI, OPACITY_TRANS]
+    },
+
+    color: {
+      selector: '.vjs-fg-color > select',
+      id: 'captions-foreground-color-%s',
+      label: 'Color',
+      options: [COLOR_WHITE, COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_BLUE, COLOR_YELLOW, COLOR_MAGENTA, COLOR_CYAN]
+    },
+
+    edgeStyle: {
+      selector: '.vjs-edge-style > select',
+      id: '%s',
+      label: 'Text Edge Style',
+      options: [['none', 'None'], ['raised', 'Raised'], ['depressed', 'Depressed'], ['uniform', 'Uniform'], ['dropshadow', 'Dropshadow']]
+    },
+
+    fontFamily: {
+      selector: '.vjs-font-family > select',
+      id: 'captions-font-family-%s',
+      label: 'Font Family',
+      options: [['proportionalSansSerif', 'Proportional Sans-Serif'], ['monospaceSansSerif', 'Monospace Sans-Serif'], ['proportionalSerif', 'Proportional Serif'], ['monospaceSerif', 'Monospace Serif'], ['casual', 'Casual'], ['script', 'Script'], ['small-caps', 'Small Caps']]
+    },
+
+    fontPercent: {
+      selector: '.vjs-font-percent > select',
+      id: 'captions-font-size-%s',
+      label: 'Font Size',
+      options: [['0.50', '50%'], ['0.75', '75%'], ['1.00', '100%'], ['1.25', '125%'], ['1.50', '150%'], ['1.75', '175%'], ['2.00', '200%'], ['3.00', '300%'], ['4.00', '400%']],
+      default: 2,
+      parser: function parser(v) {
+        return v === '1.00' ? null : Number(v);
+      }
+    },
+
+    textOpacity: {
+      selector: '.vjs-text-opacity > select',
+      id: 'captions-foreground-opacity-%s',
+      label: 'Transparency',
+      options: [OPACITY_OPAQUE, OPACITY_SEMI]
+    },
+
+    // Options for this object are defined below.
+    windowColor: {
+      selector: '.vjs-window-color > select',
+      id: 'captions-window-color-%s',
+      label: 'Color'
+    },
+
+    // Options for this object are defined below.
+    windowOpacity: {
+      selector: '.vjs-window-opacity > select',
+      id: 'captions-window-opacity-%s',
+      label: 'Transparency',
+      options: [OPACITY_TRANS, OPACITY_SEMI, OPACITY_OPAQUE]
+    }
+  };
+
+  selectConfigs.windowColor.options = selectConfigs.backgroundColor.options;
+
+  /**
+   * Get the actual value of an option.
+   *
+   * @param  {string} value
+   *         The value to get
+   *
+   * @param  {Function} [parser]
+   *         Optional function to adjust the value.
+   *
+   * @return {Mixed}
+   *         - Will be `undefined` if no value exists
+   *         - Will be `undefined` if the given value is "none".
+   *         - Will be the actual value otherwise.
+   *
+   * @private
+   */
+  function parseOptionValue(value, parser) {
+    if (parser) {
+      value = parser(value);
+    }
+
+    if (value && value !== 'none') {
+      return value;
+    }
+  }
+
+  /**
+   * Gets the value of the selected <option> element within a <select> element.
+   *
+   * @param  {Element} el
+   *         the element to look in
+   *
+   * @param  {Function} [parser]
+   *         Optional function to adjust the value.
+   *
+   * @return {Mixed}
+   *         - Will be `undefined` if no value exists
+   *         - Will be `undefined` if the given value is "none".
+   *         - Will be the actual value otherwise.
+   *
+   * @private
+   */
+  function getSelectedOptionValue(el, parser) {
+    var value = el.options[el.options.selectedIndex].value;
+
+    return parseOptionValue(value, parser);
+  }
+
+  /**
+   * Sets the selected <option> element within a <select> element based on a
+   * given value.
+   *
+   * @param {Element} el
+   *        The element to look in.
+   *
+   * @param {string} value
+   *        the property to look on.
+   *
+   * @param {Function} [parser]
+   *        Optional function to adjust the value before comparing.
+   *
+   * @private
+   */
+  function setSelectedOption(el, value, parser) {
+    if (!value) {
+      return;
+    }
+
+    for (var i = 0; i < el.options.length; i++) {
+      if (parseOptionValue(el.options[i].value, parser) === value) {
+        el.selectedIndex = i;
+        break;
+      }
+    }
+  }
+
+  /**
+   * Manipulate Text Tracks settings.
+   *
+   * @extends ModalDialog
+   */
+
+  var TextTrackSettings = function (_ModalDialog) {
+    inherits(TextTrackSettings, _ModalDialog);
+
+    /**
+     * Creates an instance of this class.
+     *
+     * @param {Player} player
+     *         The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *         The key/value store of player options.
+     */
+    function TextTrackSettings(player, options) {
+      classCallCheck(this, TextTrackSettings);
+
+      options.temporary = false;
+
+      var _this = possibleConstructorReturn(this, _ModalDialog.call(this, player, options));
+
+      _this.updateDisplay = bind(_this, _this.updateDisplay);
+
+      // fill the modal and pretend we have opened it
+      _this.fill();
+      _this.hasBeenOpened_ = _this.hasBeenFilled_ = true;
+
+      _this.endDialog = createEl('p', {
+        className: 'vjs-control-text',
+        textContent: _this.localize('End of dialog window.')
+      });
+      _this.el().appendChild(_this.endDialog);
+
+      _this.setDefaults();
+
+      // Grab `persistTextTrackSettings` from the player options if not passed in child options
+      if (options.persistTextTrackSettings === undefined) {
+        _this.options_.persistTextTrackSettings = _this.options_.playerOptions.persistTextTrackSettings;
+      }
+
+      _this.on(_this.$('.vjs-done-button'), 'click', function () {
+        _this.saveSettings();
+        _this.close();
+      });
+
+      _this.on(_this.$('.vjs-default-button'), 'click', function () {
+        _this.setDefaults();
+        _this.updateDisplay();
+      });
+
+      each(selectConfigs, function (config) {
+        _this.on(_this.$(config.selector), 'change', _this.updateDisplay);
+      });
+
+      if (_this.options_.persistTextTrackSettings) {
+        _this.restoreSettings();
+      }
+      return _this;
+    }
+
+    TextTrackSettings.prototype.dispose = function dispose() {
+      this.endDialog = null;
+
+      _ModalDialog.prototype.dispose.call(this);
+    };
+
+    /**
+     * Create a <select> element with configured options.
+     *
+     * @param {string} key
+     *        Configuration key to use during creation.
+     *
+     * @return {string}
+     *         An HTML string.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElSelect_ = function createElSelect_(key) {
+      var _this2 = this;
+
+      var legendId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+      var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label';
+
+      var config = selectConfigs[key];
+      var id = config.id.replace('%s', this.id_);
+      var selectLabelledbyIds = [legendId, id].join(' ').trim();
+
+      return ['<' + type + ' id="' + id + '" class="' + (type === 'label' ? 'vjs-label' : '') + '">', this.localize(config.label), '</' + type + '>', '<select aria-labelledby="' + selectLabelledbyIds + '">'].concat(config.options.map(function (o) {
+        var optionId = id + '-' + o[1].replace(/\W+/g, '');
+
+        return ['<option id="' + optionId + '" value="' + o[0] + '" ', 'aria-labelledby="' + selectLabelledbyIds + ' ' + optionId + '">', _this2.localize(o[1]), '</option>'].join('');
+      })).concat('</select>').join('');
+    };
+
+    /**
+     * Create foreground color element for the component
+     *
+     * @return {string}
+     *         An HTML string.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElFgColor_ = function createElFgColor_() {
+      var legendId = 'captions-text-legend-' + this.id_;
+
+      return ['<fieldset class="vjs-fg-color vjs-track-setting">', '<legend id="' + legendId + '">', this.localize('Text'), '</legend>', this.createElSelect_('color', legendId), '<span class="vjs-text-opacity vjs-opacity">', this.createElSelect_('textOpacity', legendId), '</span>', '</fieldset>'].join('');
+    };
+
+    /**
+     * Create background color element for the component
+     *
+     * @return {string}
+     *         An HTML string.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElBgColor_ = function createElBgColor_() {
+      var legendId = 'captions-background-' + this.id_;
+
+      return ['<fieldset class="vjs-bg-color vjs-track-setting">', '<legend id="' + legendId + '">', this.localize('Background'), '</legend>', this.createElSelect_('backgroundColor', legendId), '<span class="vjs-bg-opacity vjs-opacity">', this.createElSelect_('backgroundOpacity', legendId), '</span>', '</fieldset>'].join('');
+    };
+
+    /**
+     * Create window color element for the component
+     *
+     * @return {string}
+     *         An HTML string.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElWinColor_ = function createElWinColor_() {
+      var legendId = 'captions-window-' + this.id_;
+
+      return ['<fieldset class="vjs-window-color vjs-track-setting">', '<legend id="' + legendId + '">', this.localize('Window'), '</legend>', this.createElSelect_('windowColor', legendId), '<span class="vjs-window-opacity vjs-opacity">', this.createElSelect_('windowOpacity', legendId), '</span>', '</fieldset>'].join('');
+    };
+
+    /**
+     * Create color elements for the component
+     *
+     * @return {Element}
+     *         The element that was created
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElColors_ = function createElColors_() {
+      return createEl('div', {
+        className: 'vjs-track-settings-colors',
+        innerHTML: [this.createElFgColor_(), this.createElBgColor_(), this.createElWinColor_()].join('')
+      });
+    };
+
+    /**
+     * Create font elements for the component
+     *
+     * @return {Element}
+     *         The element that was created.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElFont_ = function createElFont_() {
+      return createEl('div', {
+        className: 'vjs-track-settings-font',
+        innerHTML: ['<fieldset class="vjs-font-percent vjs-track-setting">', this.createElSelect_('fontPercent', '', 'legend'), '</fieldset>', '<fieldset class="vjs-edge-style vjs-track-setting">', this.createElSelect_('edgeStyle', '', 'legend'), '</fieldset>', '<fieldset class="vjs-font-family vjs-track-setting">', this.createElSelect_('fontFamily', '', 'legend'), '</fieldset>'].join('')
+      });
+    };
+
+    /**
+     * Create controls for the component
+     *
+     * @return {Element}
+     *         The element that was created.
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.createElControls_ = function createElControls_() {
+      var defaultsDescription = this.localize('restore all settings to the default values');
+
+      return createEl('div', {
+        className: 'vjs-track-settings-controls',
+        innerHTML: ['<button class="vjs-default-button" title="' + defaultsDescription + '">', this.localize('Reset'), '<span class="vjs-control-text"> ' + defaultsDescription + '</span>', '</button>', '<button class="vjs-done-button">' + this.localize('Done') + '</button>'].join('')
+      });
+    };
+
+    TextTrackSettings.prototype.content = function content() {
+      return [this.createElColors_(), this.createElFont_(), this.createElControls_()];
+    };
+
+    TextTrackSettings.prototype.label = function label() {
+      return this.localize('Caption Settings Dialog');
+    };
+
+    TextTrackSettings.prototype.description = function description() {
+      return this.localize('Beginning of dialog window. Escape will cancel and close the window.');
+    };
+
+    TextTrackSettings.prototype.buildCSSClass = function buildCSSClass() {
+      return _ModalDialog.prototype.buildCSSClass.call(this) + ' vjs-text-track-settings';
+    };
+
+    /**
+     * Gets an object of text track settings (or null).
+     *
+     * @return {Object}
+     *         An object with config values parsed from the DOM or localStorage.
+     */
+
+
+    TextTrackSettings.prototype.getValues = function getValues() {
+      var _this3 = this;
+
+      return reduce(selectConfigs, function (accum, config, key) {
+        var value = getSelectedOptionValue(_this3.$(config.selector), config.parser);
+
+        if (value !== undefined) {
+          accum[key] = value;
+        }
+
+        return accum;
+      }, {});
+    };
+
+    /**
+     * Sets text track settings from an object of values.
+     *
+     * @param {Object} values
+     *        An object with config values parsed from the DOM or localStorage.
+     */
+
+
+    TextTrackSettings.prototype.setValues = function setValues(values) {
+      var _this4 = this;
+
+      each(selectConfigs, function (config, key) {
+        setSelectedOption(_this4.$(config.selector), values[key], config.parser);
+      });
+    };
+
+    /**
+     * Sets all `<select>` elements to their default values.
+     */
+
+
+    TextTrackSettings.prototype.setDefaults = function setDefaults() {
+      var _this5 = this;
+
+      each(selectConfigs, function (config) {
+        var index = config.hasOwnProperty('default') ? config.default : 0;
+
+        _this5.$(config.selector).selectedIndex = index;
+      });
+    };
+
+    /**
+     * Restore texttrack settings from localStorage
+     */
+
+
+    TextTrackSettings.prototype.restoreSettings = function restoreSettings() {
+      var values = void 0;
+
+      try {
+        values = JSON.parse(window_1.localStorage.getItem(LOCAL_STORAGE_KEY));
+      } catch (err) {
+        log$1.warn(err);
+      }
+
+      if (values) {
+        this.setValues(values);
+      }
+    };
+
+    /**
+     * Save text track settings to localStorage
+     */
+
+
+    TextTrackSettings.prototype.saveSettings = function saveSettings() {
+      if (!this.options_.persistTextTrackSettings) {
+        return;
+      }
+
+      var values = this.getValues();
+
+      try {
+        if (Object.keys(values).length) {
+          window_1.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(values));
+        } else {
+          window_1.localStorage.removeItem(LOCAL_STORAGE_KEY);
+        }
+      } catch (err) {
+        log$1.warn(err);
+      }
+    };
+
+    /**
+     * Update display of text track settings
+     */
+
+
+    TextTrackSettings.prototype.updateDisplay = function updateDisplay() {
+      var ttDisplay = this.player_.getChild('textTrackDisplay');
+
+      if (ttDisplay) {
+        ttDisplay.updateDisplay();
+      }
+    };
+
+    /**
+     * conditionally blur the element and refocus the captions button
+     *
+     * @private
+     */
+
+
+    TextTrackSettings.prototype.conditionalBlur_ = function conditionalBlur_() {
+      this.previouslyActiveEl_ = null;
+      this.off(document_1, 'keydown', this.handleKeyDown);
+
+      var cb = this.player_.controlBar;
+      var subsCapsBtn = cb && cb.subsCapsButton;
+      var ccBtn = cb && cb.captionsButton;
+
+      if (subsCapsBtn) {
+        subsCapsBtn.focus();
+      } else if (ccBtn) {
+        ccBtn.focus();
+      }
+    };
+
+    return TextTrackSettings;
+  }(ModalDialog);
+
+  Component.registerComponent('TextTrackSettings', TextTrackSettings);
+
+  /**
+   * @file resize-manager.js
+   */
+
+  /**
+   * A Resize Manager. It is in charge of triggering `playerresize` on the player in the right conditions.
+   *
+   * It'll either create an iframe and use a debounced resize handler on it or use the new {@link https://wicg.github.io/ResizeObserver/|ResizeObserver}.
+   *
+   * If the ResizeObserver is available natively, it will be used. A polyfill can be passed in as an option.
+   * If a `playerresize` event is not needed, the ResizeManager component can be removed from the player, see the example below.
+   * @example <caption>How to disable the resize manager</caption>
+   * const player = videojs('#vid', {
+   *   resizeManager: false
+   * });
+   *
+   * @see {@link https://wicg.github.io/ResizeObserver/|ResizeObserver specification}
+   *
+   * @extends Component
+   */
+
+  var ResizeManager = function (_Component) {
+    inherits(ResizeManager, _Component);
+
+    /**
+     * Create the ResizeManager.
+     *
+     * @param {Object} player
+     *        The `Player` that this class should be attached to.
+     *
+     * @param {Object} [options]
+     *        The key/value store of ResizeManager options.
+     *
+     * @param {Object} [options.ResizeObserver]
+     *        A polyfill for ResizeObserver can be passed in here.
+     *        If this is set to null it will ignore the native ResizeObserver and fall back to the iframe fallback.
+     */
+    function ResizeManager(player, options) {
+      classCallCheck(this, ResizeManager);
+
+      var RESIZE_OBSERVER_AVAILABLE = options.ResizeObserver || window_1.ResizeObserver;
+
+      // if `null` was passed, we want to disable the ResizeObserver
+      if (options.ResizeObserver === null) {
+        RESIZE_OBSERVER_AVAILABLE = false;
+      }
+
+      // Only create an element when ResizeObserver isn't available
+      var options_ = mergeOptions({createEl: !RESIZE_OBSERVER_AVAILABLE}, options);
+
+      var _this = possibleConstructorReturn(this, _Component.call(this, player, options_));
+
+      _this.ResizeObserver = options.ResizeObserver || window_1.ResizeObserver;
+      _this.loadListener_ = null;
+      _this.resizeObserver_ = null;
+      _this.debouncedHandler_ = debounce(function () {
+        _this.resizeHandler();
+      }, 100, false, player);
+
+      if (RESIZE_OBSERVER_AVAILABLE) {
+        _this.resizeObserver_ = new _this.ResizeObserver(_this.debouncedHandler_);
+        _this.resizeObserver_.observe(player.el());
+      } else {
+        _this.loadListener_ = function () {
+          if (_this.el_.contentWindow) {
+            on(_this.el_.contentWindow, 'resize', _this.debouncedHandler_);
+          }
+          _this.off('load', _this.loadListener_);
+        };
+
+        _this.on('load', _this.loadListener_);
+      }
+      return _this;
+    }
+
+    ResizeManager.prototype.createEl = function createEl() {
+      return _Component.prototype.createEl.call(this, 'iframe', {
+        className: 'vjs-resize-manager'
+      });
+    };
+
+    /**
+     * Called when a resize is triggered on the iframe or a resize is observed via the ResizeObserver
+     *
+     * @fires Player#playerresize
+     */
+
+
+    ResizeManager.prototype.resizeHandler = function resizeHandler() {
+      /**
+       * Called when the player size has changed
+       *
+       * @event Player#playerresize
+       * @type {EventTarget~Event}
+       */
+      this.player_.trigger('playerresize');
+    };
+
+    ResizeManager.prototype.dispose = function dispose() {
+      if (this.resizeObserver_) {
+        this.resizeObserver_.unobserve(this.player_.el());
+        this.resizeObserver_.disconnect();
+      }
+
+      if (this.el_ && this.el_.contentWindow) {
+        off(this.el_.contentWindow, 'resize', this.debouncedHandler_);
+      }
+
+      if (this.loadListener_) {
+        this.off('load', this.loadListener_);
+      }
+
+      this.ResizeObserver = null;
+      this.resizeObserver = null;
+      this.debouncedHandler_ = null;
+      this.loadListener_ = null;
+    };
+
+    return ResizeManager;
+  }(Component);
+
+  Component.registerComponent('ResizeManager', ResizeManager);
+
+  /**
+   * This function is used to fire a sourceset when there is something
+   * similar to `mediaEl.load()` being called. It will try to find the source via
+   * the `src` attribute and then the `<source>` elements. It will then fire `sourceset`
+   * with the source that was found or empty string if we cannot know. If it cannot
+   * find a source then `sourceset` will not be fired.
+   *
+   * @param {Html5} tech
+   *        The tech object that sourceset was setup on
+   *
+   * @return {boolean}
+   *         returns false if the sourceset was not fired and true otherwise.
+   */
+  var sourcesetLoad = function sourcesetLoad(tech) {
+    var el = tech.el();
+
+    // if `el.src` is set, that source will be loaded.
+    if (el.hasAttribute('src')) {
+      tech.triggerSourceset(el.src);
+      return true;
+    }
+
+    /**
+     * Since there isn't a src property on the media element, source elements will be used for
+     * implementing the source selection algorithm. This happens asynchronously and
+     * for most cases were there is more than one source we cannot tell what source will
+     * be loaded, without re-implementing the source selection algorithm. At this time we are not
+     * going to do that. There are three special cases that we do handle here though:
+     *
+     * 1. If there are no sources, do not fire `sourceset`.
+     * 2. If there is only one `<source>` with a `src` property/attribute that is our `src`
+     * 3. If there is more than one `<source>` but all of them have the same `src` url.
+     *    That will be our src.
+     */
+    var sources = tech.$$('source');
+    var srcUrls = [];
+    var src = '';
+
+    // if there are no sources, do not fire sourceset
+    if (!sources.length) {
+      return false;
+    }
+
+    // only count valid/non-duplicate source elements
+    for (var i = 0; i < sources.length; i++) {
+      var url = sources[i].src;
+
+      if (url && srcUrls.indexOf(url) === -1) {
+        srcUrls.push(url);
+      }
+    }
+
+    // there were no valid sources
+    if (!srcUrls.length) {
+      return false;
+    }
+
+    // there is only one valid source element url
+    // use that
+    if (srcUrls.length === 1) {
+      src = srcUrls[0];
+    }
+
+    tech.triggerSourceset(src);
+    return true;
+  };
+
+  /**
+   * our implementation of an `innerHTML` descriptor for browsers
+   * that do not have one.
+   */
+  var innerHTMLDescriptorPolyfill = Object.defineProperty({}, 'innerHTML', {
+    get: function get() {
+      return this.cloneNode(true).innerHTML;
+    },
+    set: function set(v) {
+      // make a dummy node to use innerHTML on
+      var dummy = document_1.createElement(this.nodeName.toLowerCase());
+
+      // set innerHTML to the value provided
+      dummy.innerHTML = v;
+
+      // make a document fragment to hold the nodes from dummy
+      var docFrag = document_1.createDocumentFragment();
+
+      // copy all of the nodes created by the innerHTML on dummy
+      // to the document fragment
+      while (dummy.childNodes.length) {
+        docFrag.appendChild(dummy.childNodes[0]);
+      }
+
+      // remove content
+      this.innerText = '';
+
+      // now we add all of that html in one by appending the
+      // document fragment. This is how innerHTML does it.
+      window_1.Element.prototype.appendChild.call(this, docFrag);
+
+      // then return the result that innerHTML's setter would
+      return this.innerHTML;
+    }
+  });
+
+  /**
+   * Get a property descriptor given a list of priorities and the
+   * property to get.
+   */
+  var getDescriptor = function getDescriptor(priority, prop) {
+    var descriptor = {};
+
+    for (var i = 0; i < priority.length; i++) {
+      descriptor = Object.getOwnPropertyDescriptor(priority[i], prop);
+
+      if (descriptor && descriptor.set && descriptor.get) {
+        break;
+      }
+    }
+
+    descriptor.enumerable = true;
+    descriptor.configurable = true;
+
+    return descriptor;
+  };
+
+  var getInnerHTMLDescriptor = function getInnerHTMLDescriptor(tech) {
+    return getDescriptor([tech.el(), window_1.HTMLMediaElement.prototype, window_1.Element.prototype, innerHTMLDescriptorPolyfill], 'innerHTML');
+  };
+
+  /**
+   * Patches browser internal functions so that we can tell synchronously
+   * if a `<source>` was appended to the media element. For some reason this
+   * causes a `sourceset` if the the media element is ready and has no source.
+   * This happens when:
+   * - The page has just loaded and the media element does not have a source.
+   * - The media element was emptied of all sources, then `load()` was called.
+   *
+   * It does this by patching the following functions/properties when they are supported:
+   *
+   * - `append()` - can be used to add a `<source>` element to the media element
+   * - `appendChild()` - can be used to add a `<source>` element to the media element
+   * - `insertAdjacentHTML()` -  can be used to add a `<source>` element to the media element
+   * - `innerHTML` -  can be used to add a `<source>` element to the media element
+   *
+   * @param {Html5} tech
+   *        The tech object that sourceset is being setup on.
+   */
+  var firstSourceWatch = function firstSourceWatch(tech) {
+    var el = tech.el();
+
+    // make sure firstSourceWatch isn't setup twice.
+    if (el.resetSourceWatch_) {
+      return;
+    }
+
+    var old = {};
+    var innerDescriptor = getInnerHTMLDescriptor(tech);
+    var appendWrapper = function appendWrapper(appendFn) {
+      return function () {
+        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+          args[_key] = arguments[_key];
+        }
+
+        var retval = appendFn.apply(el, args);
+
+        sourcesetLoad(tech);
+
+        return retval;
+      };
+    };
+
+    ['append', 'appendChild', 'insertAdjacentHTML'].forEach(function (k) {
+      if (!el[k]) {
+        return;
+      }
+
+      // store the old function
+      old[k] = el[k];
+
+      // call the old function with a sourceset if a source
+      // was loaded
+      el[k] = appendWrapper(old[k]);
+    });
+
+    Object.defineProperty(el, 'innerHTML', mergeOptions(innerDescriptor, {
+      set: appendWrapper(innerDescriptor.set)
+    }));
+
+    el.resetSourceWatch_ = function () {
+      el.resetSourceWatch_ = null;
+      Object.keys(old).forEach(function (k) {
+        el[k] = old[k];
+      });
+
+      Object.defineProperty(el, 'innerHTML', innerDescriptor);
+    };
+
+    // on the first sourceset, we need to revert our changes
+    tech.one('sourceset', el.resetSourceWatch_);
+  };
+
+  /**
+   * our implementation of a `src` descriptor for browsers
+   * that do not have one.
+   */
+  var srcDescriptorPolyfill = Object.defineProperty({}, 'src', {
+    get: function get() {
+      if (this.hasAttribute('src')) {
+        return getAbsoluteURL(window_1.Element.prototype.getAttribute.call(this, 'src'));
+      }
+
+      return '';
+    },
+    set: function set(v) {
+      window_1.Element.prototype.setAttribute.call(this, 'src', v);
+
+      return v;
+    }
+  });
+
+  var getSrcDescriptor = function getSrcDescriptor(tech) {
+    return getDescriptor([tech.el(), window_1.HTMLMediaElement.prototype, srcDescriptorPolyfill], 'src');
+  };
+
+  /**
+   * setup `sourceset` handling on the `Html5` tech. This function
+   * patches the following element properties/functions:
+   *
+   * - `src` - to determine when `src` is set
+   * - `setAttribute()` - to determine when `src` is set
+   * - `load()` - this re-triggers the source selection algorithm, and can
+   *              cause a sourceset.
+   *
+   * If there is no source when we are adding `sourceset` support or during a `load()`
+   * we also patch the functions listed in `firstSourceWatch`.
+   *
+   * @param {Html5} tech
+   *        The tech to patch
+   */
+  var setupSourceset = function setupSourceset(tech) {
+    if (!tech.featuresSourceset) {
+      return;
+    }
+
+    var el = tech.el();
+
+    // make sure sourceset isn't setup twice.
+    if (el.resetSourceset_) {
+      return;
+    }
+
+    var srcDescriptor = getSrcDescriptor(tech);
+    var oldSetAttribute = el.setAttribute;
+    var oldLoad = el.load;
+
+    Object.defineProperty(el, 'src', mergeOptions(srcDescriptor, {
+      set: function set(v) {
+        var retval = srcDescriptor.set.call(el, v);
+
+        // we use the getter here to get the actual value set on src
+        tech.triggerSourceset(el.src);
+
+        return retval;
+      }
+    }));
+
+    el.setAttribute = function (n, v) {
+      var retval = oldSetAttribute.call(el, n, v);
+
+      if (/src/i.test(n)) {
+        tech.triggerSourceset(el.src);
+      }
+
+      return retval;
+    };
+
+    el.load = function () {
+      var retval = oldLoad.call(el);
+
+      // if load was called, but there was no source to fire
+      // sourceset on. We have to watch for a source append
+      // as that can trigger a `sourceset` when the media element
+      // has no source
+      if (!sourcesetLoad(tech)) {
+        tech.triggerSourceset('');
+        firstSourceWatch(tech);
+      }
+
+      return retval;
+    };
+
+    if (el.currentSrc) {
+      tech.triggerSourceset(el.currentSrc);
+    } else if (!sourcesetLoad(tech)) {
+      firstSourceWatch(tech);
+    }
+
+    el.resetSourceset_ = function () {
+      el.resetSourceset_ = null;
+      el.load = oldLoad;
+      el.setAttribute = oldSetAttribute;
+      Object.defineProperty(el, 'src', srcDescriptor);
+      if (el.resetSourceWatch_) {
+        el.resetSourceWatch_();
+      }
+    };
+  };
+
+  var _templateObject$1 = taggedTemplateLiteralLoose(['Text Tracks are being loaded from another origin but the crossorigin attribute isn\'t used.\n            This may prevent text tracks from loading.'], ['Text Tracks are being loaded from another origin but the crossorigin attribute isn\'t used.\n            This may prevent text tracks from loading.']);
+
+  /**
+   * HTML5 Media Controller - Wrapper for HTML5 Media API
+   *
+   * @mixes Tech~SourceHandlerAdditions
+   * @extends Tech
+   */
+
+  var Html5 = function (_Tech) {
+    inherits(Html5, _Tech);
+
+    /**
+     * Create an instance of this Tech.
+     *
+     * @param {Object} [options]
+     *        The key/value store of player options.
+     *
+     * @param {Component~ReadyCallback} ready
+     *        Callback function to call when the `HTML5` Tech is ready.
+     */
+    function Html5(options, ready) {
+      classCallCheck(this, Html5);
+
+      var _this = possibleConstructorReturn(this, _Tech.call(this, options, ready));
+
+      var source = options.source;
+      var crossoriginTracks = false;
+
+      // Set the source if one is provided
+      // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)
+      // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source
+      // anyway so the error gets fired.
+      if (source && (_this.el_.currentSrc !== source.src || options.tag && options.tag.initNetworkState_ === 3)) {
+        _this.setSource(source);
+      } else {
+        _this.handleLateInit_(_this.el_);
+      }
+
+      // setup sourceset after late sourceset/init
+      if (options.enableSourceset) {
+        _this.setupSourcesetHandling_();
+      }
+
+      if (_this.el_.hasChildNodes()) {
+
+        var nodes = _this.el_.childNodes;
+        var nodesLength = nodes.length;
+        var removeNodes = [];
+
+        while (nodesLength--) {
+          var node = nodes[nodesLength];
+          var nodeName = node.nodeName.toLowerCase();
+
+          if (nodeName === 'track') {
+            if (!_this.featuresNativeTextTracks) {
+              // Empty video tag tracks so the built-in player doesn't use them also.
+              // This may not be fast enough to stop HTML5 browsers from reading the tags
+              // so we'll need to turn off any default tracks if we're manually doing
+              // captions and subtitles. videoElement.textTracks
+              removeNodes.push(node);
+            } else {
+              // store HTMLTrackElement and TextTrack to remote list
+              _this.remoteTextTrackEls().addTrackElement_(node);
+              _this.remoteTextTracks().addTrack(node.track);
+              _this.textTracks().addTrack(node.track);
+              if (!crossoriginTracks && !_this.el_.hasAttribute('crossorigin') && isCrossOrigin(node.src)) {
+                crossoriginTracks = true;
+              }
+            }
+          }
+        }
+
+        for (var i = 0; i < removeNodes.length; i++) {
+          _this.el_.removeChild(removeNodes[i]);
+        }
+      }
+
+      _this.proxyNativeTracks_();
+      if (_this.featuresNativeTextTracks && crossoriginTracks) {
+        log$1.warn(tsml(_templateObject$1));
+      }
+
+      // prevent iOS Safari from disabling metadata text tracks during native playback
+      _this.restoreMetadataTracksInIOSNativePlayer_();
+
+      // Determine if native controls should be used
+      // Our goal should be to get the custom controls on mobile solid everywhere
+      // so we can remove this all together. Right now this will block custom
+      // controls on touch enabled laptops like the Chrome Pixel
+      if ((TOUCH_ENABLED || IS_IPHONE || IS_NATIVE_ANDROID) && options.nativeControlsForTouch === true) {
+        _this.setControls(true);
+      }
+
+      // on iOS, we want to proxy `webkitbeginfullscreen` and `webkitendfullscreen`
+      // into a `fullscreenchange` event
+      _this.proxyWebkitFullscreen_();
+
+      _this.triggerReady();
+      return _this;
+    }
+
+    /**
+     * Dispose of `HTML5` media element and remove all tracks.
+     */
+
+
+    Html5.prototype.dispose = function dispose() {
+      if (this.el_.resetSourceset_) {
+        this.el_.resetSourceset_();
+      }
+      Html5.disposeMediaElement(this.el_);
+      this.options_ = null;
+
+      // tech will handle clearing of the emulated track list
+      _Tech.prototype.dispose.call(this);
+    };
+
+    /**
+     * Modify the media element so that we can detect when
+     * the source is changed. Fires `sourceset` just after the source has changed
+     */
+
+
+    Html5.prototype.setupSourcesetHandling_ = function setupSourcesetHandling_() {
+      setupSourceset(this);
+    };
+
+    /**
+     * When a captions track is enabled in the iOS Safari native player, all other
+     * tracks are disabled (including metadata tracks), which nulls all of their
+     * associated cue points. This will restore metadata tracks to their pre-fullscreen
+     * state in those cases so that cue points are not needlessly lost.
+     *
+     * @private
+     */
+
+
+    Html5.prototype.restoreMetadataTracksInIOSNativePlayer_ = function restoreMetadataTracksInIOSNativePlayer_() {
+      var textTracks = this.textTracks();
+      var metadataTracksPreFullscreenState = void 0;
+
+      // captures a snapshot of every metadata track's current state
+      var takeMetadataTrackSnapshot = function takeMetadataTrackSnapshot() {
+        metadataTracksPreFullscreenState = [];
+
+        for (var i = 0; i < textTracks.length; i++) {
+          var track = textTracks[i];
+
+          if (track.kind === 'metadata') {
+            metadataTracksPreFullscreenState.push({
+              track: track,
+              storedMode: track.mode
+            });
+          }
+        }
+      };
+
+      // snapshot each metadata track's initial state, and update the snapshot
+      // each time there is a track 'change' event
+      takeMetadataTrackSnapshot();
+      textTracks.addEventListener('change', takeMetadataTrackSnapshot);
+
+      this.on('dispose', function () {
+        return textTracks.removeEventListener('change', takeMetadataTrackSnapshot);
+      });
+
+      var restoreTrackMode = function restoreTrackMode() {
+        for (var i = 0; i < metadataTracksPreFullscreenState.length; i++) {
+          var storedTrack = metadataTracksPreFullscreenState[i];
+
+          if (storedTrack.track.mode === 'disabled' && storedTrack.track.mode !== storedTrack.storedMode) {
+            storedTrack.track.mode = storedTrack.storedMode;
+          }
+        }
+        // we only want this handler to be executed on the first 'change' event
+        textTracks.removeEventListener('change', restoreTrackMode);
+      };
+
+      // when we enter fullscreen playback, stop updating the snapshot and
+      // restore all track modes to their pre-fullscreen state
+      this.on('webkitbeginfullscreen', function () {
+        textTracks.removeEventListener('change', takeMetadataTrackSnapshot);
+
+        // remove the listener before adding it just in case it wasn't previously removed
+        textTracks.removeEventListener('change', restoreTrackMode);
+        textTracks.addEventListener('change', restoreTrackMode);
+      });
+
+      // start updating the snapshot again after leaving fullscreen
+      this.on('webkitendfullscreen', function () {
+        // remove the listener before adding it just in case it wasn't previously removed
+        textTracks.removeEventListener('change', takeMetadataTrackSnapshot);
+        textTracks.addEventListener('change', takeMetadataTrackSnapshot);
+
+        // remove the restoreTrackMode handler in case it wasn't triggered during fullscreen playback
+        textTracks.removeEventListener('change', restoreTrackMode);
+      });
+    };
+
+    /**
+     * Attempt to force override of tracks for the given type
+     *
+     * @param {String} type - Track type to override, possible values include 'Audio',
+     * 'Video', and 'Text'.
+     * @param {Boolean} override - If set to true native audio/video will be overridden,
+     * otherwise native audio/video will potentially be used.
+     * @private
+     */
+
+
+    Html5.prototype.overrideNative_ = function overrideNative_(type, override) {
+      var _this2 = this;
+
+      // If there is no behavioral change don't add/remove listeners
+      if (override !== this['featuresNative' + type + 'Tracks']) {
+        return;
+      }
+
+      var lowerCaseType = type.toLowerCase();
+
+      if (this[lowerCaseType + 'TracksListeners_']) {
+        Object.keys(this[lowerCaseType + 'TracksListeners_']).forEach(function (eventName) {
+          var elTracks = _this2.el()[lowerCaseType + 'Tracks'];
+
+          elTracks.removeEventListener(eventName, _this2[lowerCaseType + 'TracksListeners_'][eventName]);
+        });
+      }
+
+      this['featuresNative' + type + 'Tracks'] = !override;
+      this[lowerCaseType + 'TracksListeners_'] = null;
+
+      this.proxyNativeTracksForType_(lowerCaseType);
+    };
+
+    /**
+     * Attempt to force override of native audio tracks.
+     *
+     * @param {Boolean} override - If set to true native audio will be overridden,
+     * otherwise native audio will potentially be used.
+     */
+
+
+    Html5.prototype.overrideNativeAudioTracks = function overrideNativeAudioTracks(override) {
+      this.overrideNative_('Audio', override);
+    };
+
+    /**
+     * Attempt to force override of native video tracks.
+     *
+     * @param {Boolean} override - If set to true native video will be overridden,
+     * otherwise native video will potentially be used.
+     */
+
+
+    Html5.prototype.overrideNativeVideoTracks = function overrideNativeVideoTracks(override) {
+      this.overrideNative_('Video', override);
+    };
+
+    /**
+     * Proxy native track list events for the given type to our track
+     * lists if the browser we are playing in supports that type of track list.
+     *
+     * @param {string} name - Track type; values include 'audio', 'video', and 'text'
+     * @private
+     */
+
+
+    Html5.prototype.proxyNativeTracksForType_ = function proxyNativeTracksForType_(name) {
+      var _this3 = this;
+
+      var props = NORMAL[name];
+      var elTracks = this.el()[props.getterName];
+      var techTracks = this[props.getterName]();
+
+      if (!this['featuresNative' + props.capitalName + 'Tracks'] || !elTracks || !elTracks.addEventListener) {
+        return;
+      }
+      var listeners = {
+        change: function change(e) {
+          techTracks.trigger({
+            type: 'change',
+            target: techTracks,
+            currentTarget: techTracks,
+            srcElement: techTracks
+          });
+        },
+        addtrack: function addtrack(e) {
+          techTracks.addTrack(e.track);
+        },
+        removetrack: function removetrack(e) {
+          techTracks.removeTrack(e.track);
+        }
+      };
+      var removeOldTracks = function removeOldTracks() {
+        var removeTracks = [];
+
+        for (var i = 0; i < techTracks.length; i++) {
+          var found = false;
+
+          for (var j = 0; j < elTracks.length; j++) {
+            if (elTracks[j] === techTracks[i]) {
+              found = true;
+              break;
+            }
+          }
+
+          if (!found) {
+            removeTracks.push(techTracks[i]);
+          }
+        }
+
+        while (removeTracks.length) {
+          techTracks.removeTrack(removeTracks.shift());
+        }
+      };
+
+      this[props.getterName + 'Listeners_'] = listeners;
+
+      Object.keys(listeners).forEach(function (eventName) {
+        var listener = listeners[eventName];
+
+        elTracks.addEventListener(eventName, listener);
+        _this3.on('dispose', function (e) {
+          return elTracks.removeEventListener(eventName, listener);
+        });
+      });
+
+      // Remove (native) tracks that are not used anymore
+      this.on('loadstart', removeOldTracks);
+      this.on('dispose', function (e) {
+        return _this3.off('loadstart', removeOldTracks);
+      });
+    };
+
+    /**
+     * Proxy all native track list events to our track lists if the browser we are playing
+     * in supports that type of track list.
+     *
+     * @private
+     */
+
+
+    Html5.prototype.proxyNativeTracks_ = function proxyNativeTracks_() {
+      var _this4 = this;
+
+      NORMAL.names.forEach(function (name) {
+        _this4.proxyNativeTracksForType_(name);
+      });
+    };
+
+    /**
+     * Create the `Html5` Tech's DOM element.
+     *
+     * @return {Element}
+     *         The element that gets created.
+     */
+
+
+    Html5.prototype.createEl = function createEl$$1() {
+      var el = this.options_.tag;
+
+      // Check if this browser supports moving the element into the box.
+      // On the iPhone video will break if you move the element,
+      // So we have to create a brand new element.
+      // If we ingested the player div, we do not need to move the media element.
+      if (!el || !(this.options_.playerElIngest || this.movingMediaElementInDOM)) {
+
+        // If the original tag is still there, clone and remove it.
+        if (el) {
+          var clone = el.cloneNode(true);
+
+          if (el.parentNode) {
+            el.parentNode.insertBefore(clone, el);
+          }
+          Html5.disposeMediaElement(el);
+          el = clone;
+        } else {
+          el = document_1.createElement('video');
+
+          // determine if native controls should be used
+          var tagAttributes = this.options_.tag && getAttributes(this.options_.tag);
+          var attributes = mergeOptions({}, tagAttributes);
+
+          if (!TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {
+            delete attributes.controls;
+          }
+
+          setAttributes(el, assign(attributes, {
+            id: this.options_.techId,
+            class: 'vjs-tech'
+          }));
+        }
+
+        el.playerId = this.options_.playerId;
+      }
+
+      if (typeof this.options_.preload !== 'undefined') {
+        setAttribute(el, 'preload', this.options_.preload);
+      }
+
+      // Update specific tag settings, in case they were overridden
+      // `autoplay` has to be *last* so that `muted` and `playsinline` are present
+      // when iOS/Safari or other browsers attempt to autoplay.
+      var settingsAttrs = ['loop', 'muted', 'playsinline', 'autoplay'];
+
+      for (var i = 0; i < settingsAttrs.length; i++) {
+        var attr = settingsAttrs[i];
+        var value = this.options_[attr];
+
+        if (typeof value !== 'undefined') {
+          if (value) {
+            setAttribute(el, attr, attr);
+          } else {
+            removeAttribute(el, attr);
+          }
+          el[attr] = value;
+        }
+      }
+
+      return el;
+    };
+
+    /**
+     * This will be triggered if the loadstart event has already fired, before videojs was
+     * ready. Two known examples of when this can happen are:
+     * 1. If we're loading the playback object after it has started loading
+     * 2. The media is already playing the (often with autoplay on) then
+     *
+     * This function will fire another loadstart so that videojs can catchup.
+     *
+     * @fires Tech#loadstart
+     *
+     * @return {undefined}
+     *         returns nothing.
+     */
+
+
+    Html5.prototype.handleLateInit_ = function handleLateInit_(el) {
+      if (el.networkState === 0 || el.networkState === 3) {
+        // The video element hasn't started loading the source yet
+        // or didn't find a source
+        return;
+      }
+
+      if (el.readyState === 0) {
+        // NetworkState is set synchronously BUT loadstart is fired at the
+        // end of the current stack, usually before setInterval(fn, 0).
+        // So at this point we know loadstart may have already fired or is
+        // about to fire, and either way the player hasn't seen it yet.
+        // We don't want to fire loadstart prematurely here and cause a
+        // double loadstart so we'll wait and see if it happens between now
+        // and the next loop, and fire it if not.
+        // HOWEVER, we also want to make sure it fires before loadedmetadata
+        // which could also happen between now and the next loop, so we'll
+        // watch for that also.
+        var loadstartFired = false;
+        var setLoadstartFired = function setLoadstartFired() {
+          loadstartFired = true;
+        };
+
+        this.on('loadstart', setLoadstartFired);
+
+        var triggerLoadstart = function triggerLoadstart() {
+          // We did miss the original loadstart. Make sure the player
+          // sees loadstart before loadedmetadata
+          if (!loadstartFired) {
+            this.trigger('loadstart');
+          }
+        };
+
+        this.on('loadedmetadata', triggerLoadstart);
+
+        this.ready(function () {
+          this.off('loadstart', setLoadstartFired);
+          this.off('loadedmetadata', triggerLoadstart);
+
+          if (!loadstartFired) {
+            // We did miss the original native loadstart. Fire it now.
+            this.trigger('loadstart');
+          }
+        });
+
+        return;
+      }
+
+      // From here on we know that loadstart already fired and we missed it.
+      // The other readyState events aren't as much of a problem if we double
+      // them, so not going to go to as much trouble as loadstart to prevent
+      // that unless we find reason to.
+      var eventsToTrigger = ['loadstart'];
+
+      // loadedmetadata: newly equal to HAVE_METADATA (1) or greater
+      eventsToTrigger.push('loadedmetadata');
+
+      // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater
+      if (el.readyState >= 2) {
+        eventsToTrigger.push('loadeddata');
+      }
+
+      // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater
+      if (el.readyState >= 3) {
+        eventsToTrigger.push('canplay');
+      }
+
+      // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)
+      if (el.readyState >= 4) {
+        eventsToTrigger.push('canplaythrough');
+      }
+
+      // We still need to give the player time to add event listeners
+      this.ready(function () {
+        eventsToTrigger.forEach(function (type) {
+          this.trigger(type);
+        }, this);
+      });
+    };
+
+    /**
+     * Set current time for the `HTML5` tech.
+     *
+     * @param {number} seconds
+     *        Set the current time of the media to this.
+     */
+
+
+    Html5.prototype.setCurrentTime = function setCurrentTime(seconds) {
+      try {
+        this.el_.currentTime = seconds;
+      } catch (e) {
+        log$1(e, 'Video is not ready. (Video.js)');
+        // this.warning(VideoJS.warnings.videoNotReady);
+      }
+    };
+
+    /**
+     * Get the current duration of the HTML5 media element.
+     *
+     * @return {number}
+     *         The duration of the media or 0 if there is no duration.
+     */
+
+
+    Html5.prototype.duration = function duration() {
+      var _this5 = this;
+
+      // Android Chrome will report duration as Infinity for VOD HLS until after
+      // playback has started, which triggers the live display erroneously.
+      // Return NaN if playback has not started and trigger a durationupdate once
+      // the duration can be reliably known.
+      if (this.el_.duration === Infinity && IS_ANDROID && IS_CHROME && this.el_.currentTime === 0) {
+        // Wait for the first `timeupdate` with currentTime > 0 - there may be
+        // several with 0
+        var checkProgress = function checkProgress() {
+          if (_this5.el_.currentTime > 0) {
+            // Trigger durationchange for genuinely live video
+            if (_this5.el_.duration === Infinity) {
+              _this5.trigger('durationchange');
+            }
+            _this5.off('timeupdate', checkProgress);
+          }
+        };
+
+        this.on('timeupdate', checkProgress);
+        return NaN;
+      }
+      return this.el_.duration || NaN;
+    };
+
+    /**
+     * Get the current width of the HTML5 media element.
+     *
+     * @return {number}
+     *         The width of the HTML5 media element.
+     */
+
+
+    Html5.prototype.width = function width() {
+      return this.el_.offsetWidth;
+    };
+
+    /**
+     * Get the current height of the HTML5 media element.
+     *
+     * @return {number}
+     *         The height of the HTML5 media element.
+     */
+
+
+    Html5.prototype.height = function height() {
+      return this.el_.offsetHeight;
+    };
+
+    /**
+     * Proxy iOS `webkitbeginfullscreen` and `webkitendfullscreen` into
+     * `fullscreenchange` event.
+     *
+     * @private
+     * @fires fullscreenchange
+     * @listens webkitendfullscreen
+     * @listens webkitbeginfullscreen
+     * @listens webkitbeginfullscreen
+     */
+
+
+    Html5.prototype.proxyWebkitFullscreen_ = function proxyWebkitFullscreen_() {
+      var _this6 = this;
+
+      if (!('webkitDisplayingFullscreen' in this.el_)) {
+        return;
+      }
+
+      var endFn = function endFn() {
+        this.trigger('fullscreenchange', {isFullscreen: false});
+      };
+
+      var beginFn = function beginFn() {
+        if ('webkitPresentationMode' in this.el_ && this.el_.webkitPresentationMode !== 'picture-in-picture') {
+          this.one('webkitendfullscreen', endFn);
+
+          this.trigger('fullscreenchange', {isFullscreen: true});
+        }
+      };
+
+      this.on('webkitbeginfullscreen', beginFn);
+      this.on('dispose', function () {
+        _this6.off('webkitbeginfullscreen', beginFn);
+        _this6.off('webkitendfullscreen', endFn);
+      });
+    };
+
+    /**
+     * Check if fullscreen is supported on the current playback device.
+     *
+     * @return {boolean}
+     *         - True if fullscreen is supported.
+     *         - False if fullscreen is not supported.
+     */
+
+
+    Html5.prototype.supportsFullScreen = function supportsFullScreen() {
+      if (typeof this.el_.webkitEnterFullScreen === 'function') {
+        var userAgent = window_1.navigator && window_1.navigator.userAgent || '';
+
+        // Seems to be broken in Chromium/Chrome && Safari in Leopard
+        if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {
+          return true;
+        }
+      }
+      return false;
+    };
+
+    /**
+     * Request that the `HTML5` Tech enter fullscreen.
+     */
+
+
+    Html5.prototype.enterFullScreen = function enterFullScreen() {
+      var video = this.el_;
+
+      if (video.paused && video.networkState <= video.HAVE_METADATA) {
+        // attempt to prime the video element for programmatic access
+        // this isn't necessary on the desktop but shouldn't hurt
+        this.el_.play();
+
+        // playing and pausing synchronously during the transition to fullscreen
+        // can get iOS ~6.1 devices into a play/pause loop
+        this.setTimeout(function () {
+          video.pause();
+          video.webkitEnterFullScreen();
+        }, 0);
+      } else {
+        video.webkitEnterFullScreen();
+      }
+    };
+
+    /**
+     * Request that the `HTML5` Tech exit fullscreen.
+     */
+
+
+    Html5.prototype.exitFullScreen = function exitFullScreen() {
+      this.el_.webkitExitFullScreen();
+    };
+
+    /**
+     * A getter/setter for the `Html5` Tech's source object.
+     * > Note: Please use {@link Html5#setSource}
+     *
+     * @param {Tech~SourceObject} [src]
+     *        The source object you want to set on the `HTML5` techs element.
+     *
+     * @return {Tech~SourceObject|undefined}
+     *         - The current source object when a source is not passed in.
+     *         - undefined when setting
+     *
+     * @deprecated Since version 5.
+     */
+
+
+    Html5.prototype.src = function src(_src) {
+      if (_src === undefined) {
+        return this.el_.src;
+      }
+
+      // Setting src through `src` instead of `setSrc` will be deprecated
+      this.setSrc(_src);
+    };
+
+    /**
+     * Reset the tech by removing all sources and then calling
+     * {@link Html5.resetMediaElement}.
+     */
+
+
+    Html5.prototype.reset = function reset() {
+      Html5.resetMediaElement(this.el_);
+    };
+
+    /**
+     * Get the current source on the `HTML5` Tech. Falls back to returning the source from
+     * the HTML5 media element.
+     *
+     * @return {Tech~SourceObject}
+     *         The current source object from the HTML5 tech. With a fallback to the
+     *         elements source.
+     */
+
+
+    Html5.prototype.currentSrc = function currentSrc() {
+      if (this.currentSource_) {
+        return this.currentSource_.src;
+      }
+      return this.el_.currentSrc;
+    };
+
+    /**
+     * Set controls attribute for the HTML5 media Element.
+     *
+     * @param {string} val
+     *        Value to set the controls attribute to
+     */
+
+
+    Html5.prototype.setControls = function setControls(val) {
+      this.el_.controls = !!val;
+    };
+
+    /**
+     * Create and returns a remote {@link TextTrack} object.
+     *
+     * @param {string} kind
+     *        `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)
+     *
+     * @param {string} [label]
+     *        Label to identify the text track
+     *
+     * @param {string} [language]
+     *        Two letter language abbreviation
+     *
+     * @return {TextTrack}
+     *         The TextTrack that gets created.
+     */
+
+
+    Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {
+      if (!this.featuresNativeTextTracks) {
+        return _Tech.prototype.addTextTrack.call(this, kind, label, language);
+      }
+
+      return this.el_.addTextTrack(kind, label, language);
+    };
+
+    /**
+     * Creates either native TextTrack or an emulated TextTrack depending
+     * on the value of `featuresNativeTextTracks`
+     *
+     * @param {Object} options
+     *        The object should contain the options to initialize the TextTrack with.
+     *
+     * @param {string} [options.kind]
+     *        `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).
+     *
+     * @param {string} [options.label]
+     *        Label to identify the text track
+     *
+     * @param {string} [options.language]
+     *        Two letter language abbreviation.
+     *
+     * @param {boolean} [options.default]
+     *        Default this track to on.
+     *
+     * @param {string} [options.id]
+     *        The internal id to assign this track.
+     *
+     * @param {string} [options.src]
+     *        A source url for the track.
+     *
+     * @return {HTMLTrackElement}
+     *         The track element that gets created.
+     */
+
+
+    Html5.prototype.createRemoteTextTrack = function createRemoteTextTrack(options) {
+      if (!this.featuresNativeTextTracks) {
+        return _Tech.prototype.createRemoteTextTrack.call(this, options);
+      }
+      var htmlTrackElement = document_1.createElement('track');
+
+      if (options.kind) {
+        htmlTrackElement.kind = options.kind;
+      }
+      if (options.label) {
+        htmlTrackElement.label = options.label;
+      }
+      if (options.language || options.srclang) {
+        htmlTrackElement.srclang = options.language || options.srclang;
+      }
+      if (options.default) {
+        htmlTrackElement.default = options.default;
+      }
+      if (options.id) {
+        htmlTrackElement.id = options.id;
+      }
+      if (options.src) {
+        htmlTrackElement.src = options.src;
+      }
+
+      return htmlTrackElement;
+    };
+
+    /**
+     * Creates a remote text track object and returns an html track element.
+     *
+     * @param {Object} options The object should contain values for
+     * kind, language, label, and src (location of the WebVTT file)
+     * @param {Boolean} [manualCleanup=true] if set to false, the TextTrack will be
+     * automatically removed from the video element whenever the source changes
+     * @return {HTMLTrackElement} An Html Track Element.
+     * This can be an emulated {@link HTMLTrackElement} or a native one.
+     * @deprecated The default value of the "manualCleanup" parameter will default
+     * to "false" in upcoming versions of Video.js
+     */
+
+
+    Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {
+      var htmlTrackElement = _Tech.prototype.addRemoteTextTrack.call(this, options, manualCleanup);
+
+      if (this.featuresNativeTextTracks) {
+        this.el().appendChild(htmlTrackElement);
+      }
+
+      return htmlTrackElement;
+    };
+
+    /**
+     * Remove remote `TextTrack` from `TextTrackList` object
+     *
+     * @param {TextTrack} track
+     *        `TextTrack` object to remove
+     */
+
+
+    Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
+      _Tech.prototype.removeRemoteTextTrack.call(this, track);
+
+      if (this.featuresNativeTextTracks) {
+        var tracks = this.$$('track');
+
+        var i = tracks.length;
+
+        while (i--) {
+          if (track === tracks[i] || track === tracks[i].track) {
+            this.el().removeChild(tracks[i]);
+          }
+        }
+      }
+    };
+
+    /**
+     * Gets available media playback quality metrics as specified by the W3C's Media
+     * Playback Quality API.
+     *
+     * @see [Spec]{@link https://wicg.github.io/media-playback-quality}
+     *
+     * @return {Object}
+     *         An object with supported media playback quality metrics
+     */
+
+
+    Html5.prototype.getVideoPlaybackQuality = function getVideoPlaybackQuality() {
+      if (typeof this.el().getVideoPlaybackQuality === 'function') {
+        return this.el().getVideoPlaybackQuality();
+      }
+
+      var videoPlaybackQuality = {};
+
+      if (typeof this.el().webkitDroppedFrameCount !== 'undefined' && typeof this.el().webkitDecodedFrameCount !== 'undefined') {
+        videoPlaybackQuality.droppedVideoFrames = this.el().webkitDroppedFrameCount;
+        videoPlaybackQuality.totalVideoFrames = this.el().webkitDecodedFrameCount;
+      }
+
+      if (window_1.performance && typeof window_1.performance.now === 'function') {
+        videoPlaybackQuality.creationTime = window_1.performance.now();
+      } else if (window_1.performance && window_1.performance.timing && typeof window_1.performance.timing.navigationStart === 'number') {
+        videoPlaybackQuality.creationTime = window_1.Date.now() - window_1.performance.timing.navigationStart;
+      }
+
+      return videoPlaybackQuality;
+    };
+
+    return Html5;
+  }(Tech);
+
+  /* HTML5 Support Testing ---------------------------------------------------- */
+
+  if (isReal()) {
+
+    /**
+     * Element for testing browser HTML5 media capabilities
+     *
+     * @type {Element}
+     * @constant
+     * @private
+     */
+    Html5.TEST_VID = document_1.createElement('video');
+    var track = document_1.createElement('track');
+
+    track.kind = 'captions';
+    track.srclang = 'en';
+    track.label = 'English';
+    Html5.TEST_VID.appendChild(track);
+  }
+
+  /**
+   * Check if HTML5 media is supported by this browser/device.
+   *
+   * @return {boolean}
+   *         - True if HTML5 media is supported.
+   *         - False if HTML5 media is not supported.
+   */
+  Html5.isSupported = function () {
+    // IE with no Media Player is a LIAR! (#984)
+    try {
+      Html5.TEST_VID.volume = 0.5;
+    } catch (e) {
+      return false;
+    }
+
+    return !!(Html5.TEST_VID && Html5.TEST_VID.canPlayType);
+  };
+
+  /**
+   * Check if the tech can support the given type
+   *
+   * @param {string} type
+   *        The mimetype to check
+   * @return {string} 'probably', 'maybe', or '' (empty string)
+   */
+  Html5.canPlayType = function (type) {
+    return Html5.TEST_VID.canPlayType(type);
+  };
+
+  /**
+   * Check if the tech can support the given source
+   * @param {Object} srcObj
+   *        The source object
+   * @param {Object} options
+   *        The options passed to the tech
+   * @return {string} 'probably', 'maybe', or '' (empty string)
+   */
+  Html5.canPlaySource = function (srcObj, options) {
+    return Html5.canPlayType(srcObj.type);
+  };
+
+  /**
+   * Check if the volume can be changed in this browser/device.
+   * Volume cannot be changed in a lot of mobile devices.
+   * Specifically, it can't be changed from 1 on iOS.
+   *
+   * @return {boolean}
+   *         - True if volume can be controlled
+   *         - False otherwise
+   */
+  Html5.canControlVolume = function () {
+    // IE will error if Windows Media Player not installed #3315
+    try {
+      var volume = Html5.TEST_VID.volume;
+
+      Html5.TEST_VID.volume = volume / 2 + 0.1;
+      return volume !== Html5.TEST_VID.volume;
+    } catch (e) {
+      return false;
+    }
+  };
+
+  /**
+   * Check if the playback rate can be changed in this browser/device.
+   *
+   * @return {boolean}
+   *         - True if playback rate can be controlled
+   *         - False otherwise
+   */
+  Html5.canControlPlaybackRate = function () {
+    // Playback rate API is implemented in Android Chrome, but doesn't do anything
+    // https://github.com/videojs/video.js/issues/3180
+    if (IS_ANDROID && IS_CHROME && CHROME_VERSION < 58) {
+      return false;
+    }
+    // IE will error if Windows Media Player not installed #3315
+    try {
+      var playbackRate = Html5.TEST_VID.playbackRate;
+
+      Html5.TEST_VID.playbackRate = playbackRate / 2 + 0.1;
+      return playbackRate !== Html5.TEST_VID.playbackRate;
+    } catch (e) {
+      return false;
+    }
+  };
+
+  /**
+   * Check if we can override a video/audio elements attributes, with
+   * Object.defineProperty.
+   *
+   * @return {boolean}
+   *         - True if builtin attributes can be overridden
+   *         - False otherwise
+   */
+  Html5.canOverrideAttributes = function () {
+    // if we cannot overwrite the src/innerHTML property, there is no support
+    // iOS 7 safari for instance cannot do this.
+    try {
+      var noop = function noop() {
+      };
+
+      Object.defineProperty(document_1.createElement('video'), 'src', {get: noop, set: noop});
+      Object.defineProperty(document_1.createElement('audio'), 'src', {get: noop, set: noop});
+      Object.defineProperty(document_1.createElement('video'), 'innerHTML', {get: noop, set: noop});
+      Object.defineProperty(document_1.createElement('audio'), 'innerHTML', {get: noop, set: noop});
+    } catch (e) {
+      return false;
+    }
+
+    return true;
+  };
+
+  /**
+   * Check to see if native `TextTrack`s are supported by this browser/device.
+   *
+   * @return {boolean}
+   *         - True if native `TextTrack`s are supported.
+   *         - False otherwise
+   */
+  Html5.supportsNativeTextTracks = function () {
+    return IS_ANY_SAFARI;
+  };
+
+  /**
+   * Check to see if native `VideoTrack`s are supported by this browser/device
+   *
+   * @return {boolean}
+   *        - True if native `VideoTrack`s are supported.
+   *        - False otherwise
+   */
+  Html5.supportsNativeVideoTracks = function () {
+    return !!(Html5.TEST_VID && Html5.TEST_VID.videoTracks);
+  };
+
+  /**
+   * Check to see if native `AudioTrack`s are supported by this browser/device
+   *
+   * @return {boolean}
+   *        - True if native `AudioTrack`s are supported.
+   *        - False otherwise
+   */
+  Html5.supportsNativeAudioTracks = function () {
+    return !!(Html5.TEST_VID && Html5.TEST_VID.audioTracks);
+  };
+
+  /**
+   * An array of events available on the Html5 tech.
+   *
+   * @private
+   * @type {Array}
+   */
+  Html5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'playing', 'waiting', 'seeking', 'seeked', 'ended', 'durationchange', 'timeupdate', 'progress', 'play', 'pause', 'ratechange', 'resize', 'volumechange'];
+
+  /**
+   * Boolean indicating whether the `Tech` supports volume control.
+   *
+   * @type {boolean}
+   * @default {@link Html5.canControlVolume}
+   */
+  Html5.prototype.featuresVolumeControl = Html5.canControlVolume();
+
+  /**
+   * Boolean indicating whether the `Tech` supports changing the speed at which the media
+   * plays. Examples:
+   *   - Set player to play 2x (twice) as fast
+   *   - Set player to play 0.5x (half) as fast
+   *
+   * @type {boolean}
+   * @default {@link Html5.canControlPlaybackRate}
+   */
+  Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
+
+  /**
+   * Boolean indicating whether the `Tech` supports the `sourceset` event.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Html5.prototype.featuresSourceset = Html5.canOverrideAttributes();
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports the media element
+   * moving in the DOM. iOS breaks if you move the media element, so this is set this to
+   * false there. Everywhere else this should be true.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Html5.prototype.movingMediaElementInDOM = !IS_IOS;
+
+  // TODO: Previous comment: No longer appears to be used. Can probably be removed.
+  //       Is this true?
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports automatic media resize
+   * when going into fullscreen.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Html5.prototype.featuresFullscreenResize = true;
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports the progress event.
+   * If this is false, manual `progress` events will be triggered instead.
+   *
+   * @type {boolean}
+   * @default
+   */
+  Html5.prototype.featuresProgressEvents = true;
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports the timeupdate event.
+   * If this is false, manual `timeupdate` events will be triggered instead.
+   *
+   * @default
+   */
+  Html5.prototype.featuresTimeupdateEvents = true;
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports native `TextTrack`s.
+   *
+   * @type {boolean}
+   * @default {@link Html5.supportsNativeTextTracks}
+   */
+  Html5.prototype.featuresNativeTextTracks = Html5.supportsNativeTextTracks();
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports native `VideoTrack`s.
+   *
+   * @type {boolean}
+   * @default {@link Html5.supportsNativeVideoTracks}
+   */
+  Html5.prototype.featuresNativeVideoTracks = Html5.supportsNativeVideoTracks();
+
+  /**
+   * Boolean indicating whether the `HTML5` tech currently supports native `AudioTrack`s.
+   *
+   * @type {boolean}
+   * @default {@link Html5.supportsNativeAudioTracks}
+   */
+  Html5.prototype.featuresNativeAudioTracks = Html5.supportsNativeAudioTracks();
+
+  // HTML5 Feature detection and Device Fixes --------------------------------- //
+  var canPlayType = Html5.TEST_VID && Html5.TEST_VID.constructor.prototype.canPlayType;
+  var mpegurlRE = /^application\/(?:x-|vnd\.apple\.)mpegurl/i;
+
+  Html5.patchCanPlayType = function () {
+
+    // Android 4.0 and above can play HLS to some extent but it reports being unable to do so
+    // Firefox and Chrome report correctly
+    if (ANDROID_VERSION >= 4.0 && !IS_FIREFOX && !IS_CHROME) {
+      Html5.TEST_VID.constructor.prototype.canPlayType = function (type) {
+        if (type && mpegurlRE.test(type)) {
+          return 'maybe';
+        }
+        return canPlayType.call(this, type);
+      };
+    }
+  };
+
+  Html5.unpatchCanPlayType = function () {
+    var r = Html5.TEST_VID.constructor.prototype.canPlayType;
+
+    Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;
+    return r;
+  };
+
+  // by default, patch the media element
+  Html5.patchCanPlayType();
+
+  Html5.disposeMediaElement = function (el) {
+    if (!el) {
+      return;
+    }
+
+    if (el.parentNode) {
+      el.parentNode.removeChild(el);
+    }
+
+    // remove any child track or source nodes to prevent their loading
+    while (el.hasChildNodes()) {
+      el.removeChild(el.firstChild);
+    }
+
+    // remove any src reference. not setting `src=''` because that causes a warning
+    // in firefox
+    el.removeAttribute('src');
+
+    // force the media element to update its loading state by calling load()
+    // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)
+    if (typeof el.load === 'function') {
+      // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)
+      (function () {
+        try {
+          el.load();
+        } catch (e) {
+          // not supported
+        }
+      })();
+    }
+  };
+
+  Html5.resetMediaElement = function (el) {
+    if (!el) {
+      return;
+    }
+
+    var sources = el.querySelectorAll('source');
+    var i = sources.length;
+
+    while (i--) {
+      el.removeChild(sources[i]);
+    }
+
+    // remove any src reference.
+    // not setting `src=''` because that throws an error
+    el.removeAttribute('src');
+
+    if (typeof el.load === 'function') {
+      // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)
+      (function () {
+        try {
+          el.load();
+        } catch (e) {
+          // satisfy linter
+        }
+      })();
+    }
+  };
+
+  /* Native HTML5 element property wrapping ----------------------------------- */
+  // Wrap native boolean attributes with getters that check both property and attribute
+  // The list is as followed:
+  // muted, defaultMuted, autoplay, controls, loop, playsinline
+  [
+    /**
+     * Get the value of `muted` from the media element. `muted` indicates
+     * that the volume for the media should be set to silent. This does not actually change
+     * the `volume` attribute.
+     *
+     * @method Html5#muted
+     * @return {boolean}
+     *         - True if the value of `volume` should be ignored and the audio set to silent.
+     *         - False if the value of `volume` should be used.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-muted}
+     */
+    'muted',
+
+    /**
+     * Get the value of `defaultMuted` from the media element. `defaultMuted` indicates
+     * whether the media should start muted or not. Only changes the default state of the
+     * media. `muted` and `defaultMuted` can have different values. {@link Html5#muted} indicates the
+     * current state.
+     *
+     * @method Html5#defaultMuted
+     * @return {boolean}
+     *         - The value of `defaultMuted` from the media element.
+     *         - True indicates that the media should start muted.
+     *         - False indicates that the media should not start muted
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-defaultmuted}
+     */
+    'defaultMuted',
+
+    /**
+     * Get the value of `autoplay` from the media element. `autoplay` indicates
+     * that the media should start to play as soon as the page is ready.
+     *
+     * @method Html5#autoplay
+     * @return {boolean}
+     *         - The value of `autoplay` from the media element.
+     *         - True indicates that the media should start as soon as the page loads.
+     *         - False indicates that the media should not start as soon as the page loads.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-autoplay}
+     */
+    'autoplay',
+
+    /**
+     * Get the value of `controls` from the media element. `controls` indicates
+     * whether the native media controls should be shown or hidden.
+     *
+     * @method Html5#controls
+     * @return {boolean}
+     *         - The value of `controls` from the media element.
+     *         - True indicates that native controls should be showing.
+     *         - False indicates that native controls should be hidden.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-controls}
+     */
+    'controls',
+
+    /**
+     * Get the value of `loop` from the media element. `loop` indicates
+     * that the media should return to the start of the media and continue playing once
+     * it reaches the end.
+     *
+     * @method Html5#loop
+     * @return {boolean}
+     *         - The value of `loop` from the media element.
+     *         - True indicates that playback should seek back to start once
+     *           the end of a media is reached.
+     *         - False indicates that playback should not loop back to the start when the
+     *           end of the media is reached.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-loop}
+     */
+    'loop',
+
+    /**
+     * Get the value of `playsinline` from the media element. `playsinline` indicates
+     * to the browser that non-fullscreen playback is preferred when fullscreen
+     * playback is the native default, such as in iOS Safari.
+     *
+     * @method Html5#playsinline
+     * @return {boolean}
+     *         - The value of `playsinline` from the media element.
+     *         - True indicates that the media should play inline.
+     *         - False indicates that the media should not play inline.
+     *
+     * @see [Spec]{@link https://html.spec.whatwg.org/#attr-video-playsinline}
+     */
+    'playsinline'].forEach(function (prop) {
+    Html5.prototype[prop] = function () {
+      return this.el_[prop] || this.el_.hasAttribute(prop);
+    };
+  });
+
+  // Wrap native boolean attributes with setters that set both property and attribute
+  // The list is as followed:
+  // setMuted, setDefaultMuted, setAutoplay, setLoop, setPlaysinline
+  // setControls is special-cased above
+  [
+    /**
+     * Set the value of `muted` on the media element. `muted` indicates that the current
+     * audio level should be silent.
+     *
+     * @method Html5#setMuted
+     * @param {boolean} muted
+     *        - True if the audio should be set to silent
+     *        - False otherwise
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-muted}
+     */
+    'muted',
+
+    /**
+     * Set the value of `defaultMuted` on the media element. `defaultMuted` indicates that the current
+     * audio level should be silent, but will only effect the muted level on intial playback..
+     *
+     * @method Html5.prototype.setDefaultMuted
+     * @param {boolean} defaultMuted
+     *        - True if the audio should be set to silent
+     *        - False otherwise
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-defaultmuted}
+     */
+    'defaultMuted',
+
+    /**
+     * Set the value of `autoplay` on the media element. `autoplay` indicates
+     * that the media should start to play as soon as the page is ready.
+     *
+     * @method Html5#setAutoplay
+     * @param {boolean} autoplay
+     *         - True indicates that the media should start as soon as the page loads.
+     *         - False indicates that the media should not start as soon as the page loads.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-autoplay}
+     */
+    'autoplay',
+
+    /**
+     * Set the value of `loop` on the media element. `loop` indicates
+     * that the media should return to the start of the media and continue playing once
+     * it reaches the end.
+     *
+     * @method Html5#setLoop
+     * @param {boolean} loop
+     *         - True indicates that playback should seek back to start once
+     *           the end of a media is reached.
+     *         - False indicates that playback should not loop back to the start when the
+     *           end of the media is reached.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-loop}
+     */
+    'loop',
+
+    /**
+     * Set the value of `playsinline` from the media element. `playsinline` indicates
+     * to the browser that non-fullscreen playback is preferred when fullscreen
+     * playback is the native default, such as in iOS Safari.
+     *
+     * @method Html5#setPlaysinline
+     * @param {boolean} playsinline
+     *         - True indicates that the media should play inline.
+     *         - False indicates that the media should not play inline.
+     *
+     * @see [Spec]{@link https://html.spec.whatwg.org/#attr-video-playsinline}
+     */
+    'playsinline'].forEach(function (prop) {
+    Html5.prototype['set' + toTitleCase(prop)] = function (v) {
+      this.el_[prop] = v;
+
+      if (v) {
+        this.el_.setAttribute(prop, prop);
+      } else {
+        this.el_.removeAttribute(prop);
+      }
+    };
+  });
+
+  // Wrap native properties with a getter
+  // The list is as followed
+  // paused, currentTime, buffered, volume, poster, preload, error, seeking
+  // seekable, ended, playbackRate, defaultPlaybackRate, played, networkState
+  // readyState, videoWidth, videoHeight
+  [
+    /**
+     * Get the value of `paused` from the media element. `paused` indicates whether the media element
+     * is currently paused or not.
+     *
+     * @method Html5#paused
+     * @return {boolean}
+     *         The value of `paused` from the media element.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-paused}
+     */
+    'paused',
+
+    /**
+     * Get the value of `currentTime` from the media element. `currentTime` indicates
+     * the current second that the media is at in playback.
+     *
+     * @method Html5#currentTime
+     * @return {number}
+     *         The value of `currentTime` from the media element.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-currenttime}
+     */
+    'currentTime',
+
+    /**
+     * Get the value of `buffered` from the media element. `buffered` is a `TimeRange`
+     * object that represents the parts of the media that are already downloaded and
+     * available for playback.
+     *
+     * @method Html5#buffered
+     * @return {TimeRange}
+     *         The value of `buffered` from the media element.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-buffered}
+     */
+    'buffered',
+
+    /**
+     * Get the value of `volume` from the media element. `volume` indicates
+     * the current playback volume of audio for a media. `volume` will be a value from 0
+     * (silent) to 1 (loudest and default).
+     *
+     * @method Html5#volume
+     * @return {number}
+     *         The value of `volume` from the media element. Value will be between 0-1.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-a-volume}
+     */
+    'volume',
+
+    /**
+     * Get the value of `poster` from the media element. `poster` indicates
+     * that the url of an image file that can/will be shown when no media data is available.
+     *
+     * @method Html5#poster
+     * @return {string}
+     *         The value of `poster` from the media element. Value will be a url to an
+     *         image.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-video-poster}
+     */
+    'poster',
+
+    /**
+     * Get the value of `preload` from the media element. `preload` indicates
+     * what should download before the media is interacted with. It can have the following
+     * values:
+     * - none: nothing should be downloaded
+     * - metadata: poster and the first few frames of the media may be downloaded to get
+     *   media dimensions and other metadata
+     * - auto: allow the media and metadata for the media to be downloaded before
+     *    interaction
+     *
+     * @method Html5#preload
+     * @return {string}
+     *         The value of `preload` from the media element. Will be 'none', 'metadata',
+     *         or 'auto'.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-preload}
+     */
+    'preload',
+
+    /**
+     * Get the value of the `error` from the media element. `error` indicates any
+     * MediaError that may have occurred during playback. If error returns null there is no
+     * current error.
+     *
+     * @method Html5#error
+     * @return {MediaError|null}
+     *         The value of `error` from the media element. Will be `MediaError` if there
+     *         is a current error and null otherwise.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-error}
+     */
+    'error',
+
+    /**
+     * Get the value of `seeking` from the media element. `seeking` indicates whether the
+     * media is currently seeking to a new position or not.
+     *
+     * @method Html5#seeking
+     * @return {boolean}
+     *         - The value of `seeking` from the media element.
+     *         - True indicates that the media is currently seeking to a new position.
+     *         - False indicates that the media is not seeking to a new position at this time.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-seeking}
+     */
+    'seeking',
+
+    /**
+     * Get the value of `seekable` from the media element. `seekable` returns a
+     * `TimeRange` object indicating ranges of time that can currently be `seeked` to.
+     *
+     * @method Html5#seekable
+     * @return {TimeRange}
+     *         The value of `seekable` from the media element. A `TimeRange` object
+     *         indicating the current ranges of time that can be seeked to.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-seekable}
+     */
+    'seekable',
+
+    /**
+     * Get the value of `ended` from the media element. `ended` indicates whether
+     * the media has reached the end or not.
+     *
+     * @method Html5#ended
+     * @return {boolean}
+     *         - The value of `ended` from the media element.
+     *         - True indicates that the media has ended.
+     *         - False indicates that the media has not ended.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-ended}
+     */
+    'ended',
+
+    /**
+     * Get the value of `playbackRate` from the media element. `playbackRate` indicates
+     * the rate at which the media is currently playing back. Examples:
+     *   - if playbackRate is set to 2, media will play twice as fast.
+     *   - if playbackRate is set to 0.5, media will play half as fast.
+     *
+     * @method Html5#playbackRate
+     * @return {number}
+     *         The value of `playbackRate` from the media element. A number indicating
+     *         the current playback speed of the media, where 1 is normal speed.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-playbackrate}
+     */
+    'playbackRate',
+
+    /**
+     * Get the value of `defaultPlaybackRate` from the media element. `defaultPlaybackRate` indicates
+     * the rate at which the media is currently playing back. This value will not indicate the current
+     * `playbackRate` after playback has started, use {@link Html5#playbackRate} for that.
+     *
+     * Examples:
+     *   - if defaultPlaybackRate is set to 2, media will play twice as fast.
+     *   - if defaultPlaybackRate is set to 0.5, media will play half as fast.
+     *
+     * @method Html5.prototype.defaultPlaybackRate
+     * @return {number}
+     *         The value of `defaultPlaybackRate` from the media element. A number indicating
+     *         the current playback speed of the media, where 1 is normal speed.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-playbackrate}
+     */
+    'defaultPlaybackRate',
+
+    /**
+     * Get the value of `played` from the media element. `played` returns a `TimeRange`
+     * object representing points in the media timeline that have been played.
+     *
+     * @method Html5#played
+     * @return {TimeRange}
+     *         The value of `played` from the media element. A `TimeRange` object indicating
+     *         the ranges of time that have been played.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-played}
+     */
+    'played',
+
+    /**
+     * Get the value of `networkState` from the media element. `networkState` indicates
+     * the current network state. It returns an enumeration from the following list:
+     * - 0: NETWORK_EMPTY
+     * - 1: NETWORK_IDLE
+     * - 2: NETWORK_LOADING
+     * - 3: NETWORK_NO_SOURCE
+     *
+     * @method Html5#networkState
+     * @return {number}
+     *         The value of `networkState` from the media element. This will be a number
+     *         from the list in the description.
+     *
+     * @see [Spec] {@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-networkstate}
+     */
+    'networkState',
+
+    /**
+     * Get the value of `readyState` from the media element. `readyState` indicates
+     * the current state of the media element. It returns an enumeration from the
+     * following list:
+     * - 0: HAVE_NOTHING
+     * - 1: HAVE_METADATA
+     * - 2: HAVE_CURRENT_DATA
+     * - 3: HAVE_FUTURE_DATA
+     * - 4: HAVE_ENOUGH_DATA
+     *
+     * @method Html5#readyState
+     * @return {number}
+     *         The value of `readyState` from the media element. This will be a number
+     *         from the list in the description.
+     *
+     * @see [Spec] {@link https://www.w3.org/TR/html5/embedded-content-0.html#ready-states}
+     */
+    'readyState',
+
+    /**
+     * Get the value of `videoWidth` from the video element. `videoWidth` indicates
+     * the current width of the video in css pixels.
+     *
+     * @method Html5#videoWidth
+     * @return {number}
+     *         The value of `videoWidth` from the video element. This will be a number
+     *         in css pixels.
+     *
+     * @see [Spec] {@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-video-videowidth}
+     */
+    'videoWidth',
+
+    /**
+     * Get the value of `videoHeight` from the video element. `videoHeight` indicates
+     * the current height of the video in css pixels.
+     *
+     * @method Html5#videoHeight
+     * @return {number}
+     *         The value of `videoHeight` from the video element. This will be a number
+     *         in css pixels.
+     *
+     * @see [Spec] {@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-video-videowidth}
+     */
+    'videoHeight'].forEach(function (prop) {
+    Html5.prototype[prop] = function () {
+      return this.el_[prop];
+    };
+  });
+
+  // Wrap native properties with a setter in this format:
+  // set + toTitleCase(name)
+  // The list is as follows:
+  // setVolume, setSrc, setPoster, setPreload, setPlaybackRate, setDefaultPlaybackRate
+  [
+    /**
+     * Set the value of `volume` on the media element. `volume` indicates the current
+     * audio level as a percentage in decimal form. This means that 1 is 100%, 0.5 is 50%, and
+     * so on.
+     *
+     * @method Html5#setVolume
+     * @param {number} percentAsDecimal
+     *        The volume percent as a decimal. Valid range is from 0-1.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-a-volume}
+     */
+    'volume',
+
+    /**
+     * Set the value of `src` on the media element. `src` indicates the current
+     * {@link Tech~SourceObject} for the media.
+     *
+     * @method Html5#setSrc
+     * @param {Tech~SourceObject} src
+     *        The source object to set as the current source.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-src}
+     */
+    'src',
+
+    /**
+     * Set the value of `poster` on the media element. `poster` is the url to
+     * an image file that can/will be shown when no media data is available.
+     *
+     * @method Html5#setPoster
+     * @param {string} poster
+     *        The url to an image that should be used as the `poster` for the media
+     *        element.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-poster}
+     */
+    'poster',
+
+    /**
+     * Set the value of `preload` on the media element. `preload` indicates
+     * what should download before the media is interacted with. It can have the following
+     * values:
+     * - none: nothing should be downloaded
+     * - metadata: poster and the first few frames of the media may be downloaded to get
+     *   media dimensions and other metadata
+     * - auto: allow the media and metadata for the media to be downloaded before
+     *    interaction
+     *
+     * @method Html5#setPreload
+     * @param {string} preload
+     *         The value of `preload` to set on the media element. Must be 'none', 'metadata',
+     *         or 'auto'.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-preload}
+     */
+    'preload',
+
+    /**
+     * Set the value of `playbackRate` on the media element. `playbackRate` indicates
+     * the rate at which the media should play back. Examples:
+     *   - if playbackRate is set to 2, media will play twice as fast.
+     *   - if playbackRate is set to 0.5, media will play half as fast.
+     *
+     * @method Html5#setPlaybackRate
+     * @return {number}
+     *         The value of `playbackRate` from the media element. A number indicating
+     *         the current playback speed of the media, where 1 is normal speed.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-playbackrate}
+     */
+    'playbackRate',
+
+    /**
+     * Set the value of `defaultPlaybackRate` on the media element. `defaultPlaybackRate` indicates
+     * the rate at which the media should play back upon initial startup. Changing this value
+     * after a video has started will do nothing. Instead you should used {@link Html5#setPlaybackRate}.
+     *
+     * Example Values:
+     *   - if playbackRate is set to 2, media will play twice as fast.
+     *   - if playbackRate is set to 0.5, media will play half as fast.
+     *
+     * @method Html5.prototype.setDefaultPlaybackRate
+     * @return {number}
+     *         The value of `defaultPlaybackRate` from the media element. A number indicating
+     *         the current playback speed of the media, where 1 is normal speed.
+     *
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-defaultplaybackrate}
+     */
+    'defaultPlaybackRate'].forEach(function (prop) {
+    Html5.prototype['set' + toTitleCase(prop)] = function (v) {
+      this.el_[prop] = v;
+    };
+  });
+
+  // wrap native functions with a function
+  // The list is as follows:
+  // pause, load, play
+  [
+    /**
+     * A wrapper around the media elements `pause` function. This will call the `HTML5`
+     * media elements `pause` function.
+     *
+     * @method Html5#pause
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-pause}
+     */
+    'pause',
+
+    /**
+     * A wrapper around the media elements `load` function. This will call the `HTML5`s
+     * media element `load` function.
+     *
+     * @method Html5#load
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-load}
+     */
+    'load',
+
+    /**
+     * A wrapper around the media elements `play` function. This will call the `HTML5`s
+     * media element `play` function.
+     *
+     * @method Html5#play
+     * @see [Spec]{@link https://www.w3.org/TR/html5/embedded-content-0.html#dom-media-play}
+     */
+    'play'].forEach(function (prop) {
+    Html5.prototype[prop] = function () {
+      return this.el_[prop]();
+    };
+  });
+
+  Tech.withSourceHandlers(Html5);
+
+  /**
+   * Native source handler for Html5, simply passes the source to the media element.
+   *
+   * @property {Tech~SourceObject} source
+   *        The source object
+   *
+   * @property {Html5} tech
+   *        The instance of the HTML5 tech.
+   */
+  Html5.nativeSourceHandler = {};
+
+  /**
+   * Check if the media element can play the given mime type.
+   *
+   * @param {string} type
+   *        The mimetype to check
+   *
+   * @return {string}
+   *         'probably', 'maybe', or '' (empty string)
+   */
+  Html5.nativeSourceHandler.canPlayType = function (type) {
+    // IE without MediaPlayer throws an error (#519)
+    try {
+      return Html5.TEST_VID.canPlayType(type);
+    } catch (e) {
+      return '';
+    }
+  };
+
+  /**
+   * Check if the media element can handle a source natively.
+   *
+   * @param {Tech~SourceObject} source
+   *         The source object
+   *
+   * @param {Object} [options]
+   *         Options to be passed to the tech.
+   *
+   * @return {string}
+   *         'probably', 'maybe', or '' (empty string).
+   */
+  Html5.nativeSourceHandler.canHandleSource = function (source, options) {
+
+    // If a type was provided we should rely on that
+    if (source.type) {
+      return Html5.nativeSourceHandler.canPlayType(source.type);
+
+      // If no type, fall back to checking 'video/[EXTENSION]'
+    } else if (source.src) {
+      var ext = getFileExtension(source.src);
+
+      return Html5.nativeSourceHandler.canPlayType('video/' + ext);
+    }
+
+    return '';
+  };
+
+  /**
+   * Pass the source to the native media element.
+   *
+   * @param {Tech~SourceObject} source
+   *        The source object
+   *
+   * @param {Html5} tech
+   *        The instance of the Html5 tech
+   *
+   * @param {Object} [options]
+   *        The options to pass to the source
+   */
+  Html5.nativeSourceHandler.handleSource = function (source, tech, options) {
+    tech.setSrc(source.src);
+  };
+
+  /**
+   * A noop for the native dispose function, as cleanup is not needed.
+   */
+  Html5.nativeSourceHandler.dispose = function () {
+  };
+
+  // Register the native source handler
+  Html5.registerSourceHandler(Html5.nativeSourceHandler);
+
+  Tech.registerTech('Html5', Html5);
+
+  var _templateObject$2 = taggedTemplateLiteralLoose(['\n        Using the tech directly can be dangerous. I hope you know what you\'re doing.\n        See https://github.com/videojs/video.js/issues/2617 for more info.\n      '], ['\n        Using the tech directly can be dangerous. I hope you know what you\'re doing.\n        See https://github.com/videojs/video.js/issues/2617 for more info.\n      ']);
+
+  // The following tech events are simply re-triggered
+  // on the player when they happen
+  var TECH_EVENTS_RETRIGGER = [
+    /**
+     * Fired while the user agent is downloading media data.
+     *
+     * @event Player#progress
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `progress` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechProgress_
+     * @fires Player#progress
+     * @listens Tech#progress
+     */
+    'progress',
+
+    /**
+     * Fires when the loading of an audio/video is aborted.
+     *
+     * @event Player#abort
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `abort` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechAbort_
+     * @fires Player#abort
+     * @listens Tech#abort
+     */
+    'abort',
+
+    /**
+     * Fires when the browser is intentionally not getting media data.
+     *
+     * @event Player#suspend
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `suspend` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechSuspend_
+     * @fires Player#suspend
+     * @listens Tech#suspend
+     */
+    'suspend',
+
+    /**
+     * Fires when the current playlist is empty.
+     *
+     * @event Player#emptied
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `emptied` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechEmptied_
+     * @fires Player#emptied
+     * @listens Tech#emptied
+     */
+    'emptied',
+    /**
+     * Fires when the browser is trying to get media data, but data is not available.
+     *
+     * @event Player#stalled
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `stalled` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechStalled_
+     * @fires Player#stalled
+     * @listens Tech#stalled
+     */
+    'stalled',
+
+    /**
+     * Fires when the browser has loaded meta data for the audio/video.
+     *
+     * @event Player#loadedmetadata
+     * @type {EventTarget~Event}
+     */
+    /**
+     * Retrigger the `stalled` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechLoadedmetadata_
+     * @fires Player#loadedmetadata
+     * @listens Tech#loadedmetadata
+     */
+    'loadedmetadata',
+
+    /**
+     * Fires when the browser has loaded the current frame of the audio/video.
+     *
+     * @event Player#loadeddata
+     * @type {event}
+     */
+    /**
+     * Retrigger the `loadeddata` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechLoaddeddata_
+     * @fires Player#loadeddata
+     * @listens Tech#loadeddata
+     */
+    'loadeddata',
+
+    /**
+     * Fires when the current playback position has changed.
+     *
+     * @event Player#timeupdate
+     * @type {event}
+     */
+    /**
+     * Retrigger the `timeupdate` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechTimeUpdate_
+     * @fires Player#timeupdate
+     * @listens Tech#timeupdate
+     */
+    'timeupdate',
+
+    /**
+     * Fires when the video's intrinsic dimensions change
+     *
+     * @event Player#resize
+     * @type {event}
+     */
+    /**
+     * Retrigger the `resize` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechResize_
+     * @fires Player#resize
+     * @listens Tech#resize
+     */
+    'resize',
+
+    /**
+     * Fires when the volume has been changed
+     *
+     * @event Player#volumechange
+     * @type {event}
+     */
+    /**
+     * Retrigger the `volumechange` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechVolumechange_
+     * @fires Player#volumechange
+     * @listens Tech#volumechange
+     */
+    'volumechange',
+
+    /**
+     * Fires when the text track has been changed
+     *
+     * @event Player#texttrackchange
+     * @type {event}
+     */
+    /**
+     * Retrigger the `texttrackchange` event that was triggered by the {@link Tech}.
+     *
+     * @private
+     * @method Player#handleTechTexttrackchange_
+     * @fires Player#texttrackchange
+     * @listens Tech#texttrackchange
+     */
+    'texttrackchange'];
+
+  // events to queue when playback rate is zero
+  // this is a hash for the sole purpose of mapping non-camel-cased event names
+  // to camel-cased function names
+  var TECH_EVENTS_QUEUE = {
+    canplay: 'CanPlay',
+    canplaythrough: 'CanPlayThrough',
+    playing: 'Playing',
+    seeked: 'Seeked'
+  };
+
+  /**
+   * An instance of the `Player` class is created when any of the Video.js setup methods
+   * are used to initialize a video.
+   *
+   * After an instance has been created it can be accessed globally in two ways:
+   * 1. By calling `videojs('example_video_1');`
+   * 2. By using it directly via  `videojs.players.example_video_1;`
+   *
+   * @extends Component
+   */
+
+  var Player = function (_Component) {
+    inherits(Player, _Component);
+
+    /**
+     * Create an instance of this class.
+     *
+     * @param {Element} tag
+     *        The original video DOM element used for configuring options.
+     *
+     * @param {Object} [options]
+     *        Object of option names and values.
+     *
+     * @param {Component~ReadyCallback} [ready]
+     *        Ready callback function.
+     */
+    function Player(tag, options, ready) {
+      classCallCheck(this, Player);
+
+      // Make sure tag ID exists
+      tag.id = tag.id || options.id || 'vjs_video_' + newGUID();
+
+      // Set Options
+      // The options argument overrides options set in the video tag
+      // which overrides globally set options.
+      // This latter part coincides with the load order
+      // (tag must exist before Player)
+      options = assign(Player.getTagSettings(tag), options);
+
+      // Delay the initialization of children because we need to set up
+      // player properties first, and can't use `this` before `super()`
+      options.initChildren = false;
+
+      // Same with creating the element
+      options.createEl = false;
+
+      // don't auto mixin the evented mixin
+      options.evented = false;
+
+      // we don't want the player to report touch activity on itself
+      // see enableTouchActivity in Component
+      options.reportTouchActivity = false;
+
+      // If language is not set, get the closest lang attribute
+      if (!options.language) {
+        if (typeof tag.closest === 'function') {
+          var closest = tag.closest('[lang]');
+
+          if (closest && closest.getAttribute) {
+            options.language = closest.getAttribute('lang');
+          }
+        } else {
+          var element = tag;
+
+          while (element && element.nodeType === 1) {
+            if (getAttributes(element).hasOwnProperty('lang')) {
+              options.language = element.getAttribute('lang');
+              break;
+            }
+            element = element.parentNode;
+          }
+        }
+      }
+
+      // Run base component initializing with new options
+
+      // Tracks when a tech changes the poster
+      var _this = possibleConstructorReturn(this, _Component.call(this, null, options, ready));
+
+      _this.isPosterFromTech_ = false;
+
+      // Holds callback info that gets queued when playback rate is zero
+      // and a seek is happening
+      _this.queuedCallbacks_ = [];
+
+      // Turn off API access because we're loading a new tech that might load asynchronously
+      _this.isReady_ = false;
+
+      // Init state hasStarted_
+      _this.hasStarted_ = false;
+
+      // Init state userActive_
+      _this.userActive_ = false;
+
+      // if the global option object was accidentally blown away by
+      // someone, bail early with an informative error
+      if (!_this.options_ || !_this.options_.techOrder || !_this.options_.techOrder.length) {
+        throw new Error('No techOrder specified. Did you overwrite ' + 'videojs.options instead of just changing the ' + 'properties you want to override?');
+      }
+
+      // Store the original tag used to set options
+      _this.tag = tag;
+
+      // Store the tag attributes used to restore html5 element
+      _this.tagAttributes = tag && getAttributes(tag);
+
+      // Update current language
+      _this.language(_this.options_.language);
+
+      // Update Supported Languages
+      if (options.languages) {
+        // Normalise player option languages to lowercase
+        var languagesToLower = {};
+
+        Object.getOwnPropertyNames(options.languages).forEach(function (name$$1) {
+          languagesToLower[name$$1.toLowerCase()] = options.languages[name$$1];
+        });
+        _this.languages_ = languagesToLower;
+      } else {
+        _this.languages_ = Player.prototype.options_.languages;
+      }
+
+      // Cache for video property values.
+      _this.cache_ = {};
+
+      // Set poster
+      _this.poster_ = options.poster || '';
+
+      // Set controls
+      _this.controls_ = !!options.controls;
+
+      // Set default values for lastVolume
+      _this.cache_.lastVolume = 1;
+
+      // Original tag settings stored in options
+      // now remove immediately so native controls don't flash.
+      // May be turned back on by HTML5 tech if nativeControlsForTouch is true
+      tag.controls = false;
+      tag.removeAttribute('controls');
+
+      /*
+       * Store the internal state of scrubbing
+       *
+       * @private
+       * @return {Boolean} True if the user is scrubbing
+       */
+      _this.scrubbing_ = false;
+
+      _this.el_ = _this.createEl();
+
+      // Set default value for lastPlaybackRate
+      _this.cache_.lastPlaybackRate = _this.defaultPlaybackRate();
+
+      // Make this an evented object and use `el_` as its event bus.
+      evented(_this, {eventBusKey: 'el_'});
+
+      // We also want to pass the original player options to each component and plugin
+      // as well so they don't need to reach back into the player for options later.
+      // We also need to do another copy of this.options_ so we don't end up with
+      // an infinite loop.
+      var playerOptionsCopy = mergeOptions(_this.options_);
+
+      // Load plugins
+      if (options.plugins) {
+        var plugins = options.plugins;
+
+        Object.keys(plugins).forEach(function (name$$1) {
+          if (typeof this[name$$1] === 'function') {
+            this[name$$1](plugins[name$$1]);
+          } else {
+            throw new Error('plugin "' + name$$1 + '" does not exist');
+          }
+        }, _this);
+      }
+
+      _this.options_.playerOptions = playerOptionsCopy;
+
+      _this.middleware_ = [];
+
+      _this.initChildren();
+
+      // Set isAudio based on whether or not an audio tag was used
+      _this.isAudio(tag.nodeName.toLowerCase() === 'audio');
+
+      // Update controls className. Can't do this when the controls are initially
+      // set because the element doesn't exist yet.
+      if (_this.controls()) {
+        _this.addClass('vjs-controls-enabled');
+      } else {
+        _this.addClass('vjs-controls-disabled');
+      }
+
+      // Set ARIA label and region role depending on player type
+      _this.el_.setAttribute('role', 'region');
+      if (_this.isAudio()) {
+        _this.el_.setAttribute('aria-label', _this.localize('Audio Player'));
+      } else {
+        _this.el_.setAttribute('aria-label', _this.localize('Video Player'));
+      }
+
+      if (_this.isAudio()) {
+        _this.addClass('vjs-audio');
+      }
+
+      if (_this.flexNotSupported_()) {
+        _this.addClass('vjs-no-flex');
+      }
+
+      // TODO: Make this smarter. Toggle user state between touching/mousing
+      // using events, since devices can have both touch and mouse events.
+      // if (browser.TOUCH_ENABLED) {
+      //   this.addClass('vjs-touch-enabled');
+      // }
+
+      // iOS Safari has broken hover handling
+      if (!IS_IOS) {
+        _this.addClass('vjs-workinghover');
+      }
+
+      // Make player easily findable by ID
+      Player.players[_this.id_] = _this;
+
+      // Add a major version class to aid css in plugins
+      var majorVersion = version.split('.')[0];
+
+      _this.addClass('vjs-v' + majorVersion);
+
+      // When the player is first initialized, trigger activity so components
+      // like the control bar show themselves if needed
+      _this.userActive(true);
+      _this.reportUserActivity();
+
+      _this.one('play', _this.listenForUserActivity_);
+      _this.on('fullscreenchange', _this.handleFullscreenChange_);
+      _this.on('stageclick', _this.handleStageClick_);
+
+      _this.changingSrc_ = false;
+      _this.playWaitingForReady_ = false;
+      _this.playOnLoadstart_ = null;
+      return _this;
+    }
+
+    /**
+     * Destroys the video player and does any necessary cleanup.
+     *
+     * This is especially helpful if you are dynamically adding and removing videos
+     * to/from the DOM.
+     *
+     * @fires Player#dispose
+     */
+
+
+    Player.prototype.dispose = function dispose() {
+      /**
+       * Called when the player is being disposed of.
+       *
+       * @event Player#dispose
+       * @type {EventTarget~Event}
+       */
+      this.trigger('dispose');
+      // prevent dispose from being called twice
+      this.off('dispose');
+
+      if (this.styleEl_ && this.styleEl_.parentNode) {
+        this.styleEl_.parentNode.removeChild(this.styleEl_);
+        this.styleEl_ = null;
+      }
+
+      // Kill reference to this player
+      Player.players[this.id_] = null;
+
+      if (this.tag && this.tag.player) {
+        this.tag.player = null;
+      }
+
+      if (this.el_ && this.el_.player) {
+        this.el_.player = null;
+      }
+
+      if (this.tech_) {
+        this.tech_.dispose();
+        this.isPosterFromTech_ = false;
+        this.poster_ = '';
+      }
+
+      if (this.playerElIngest_) {
+        this.playerElIngest_ = null;
+      }
+
+      if (this.tag) {
+        this.tag = null;
+      }
+
+      clearCacheForPlayer(this);
+
+      // the actual .el_ is removed here
+      _Component.prototype.dispose.call(this);
+    };
+
+    /**
+     * Create the `Player`'s DOM element.
+     *
+     * @return {Element}
+     *         The DOM element that gets created.
+     */
+
+
+    Player.prototype.createEl = function createEl$$1() {
+      var tag = this.tag;
+      var el = void 0;
+      var playerElIngest = this.playerElIngest_ = tag.parentNode && tag.parentNode.hasAttribute && tag.parentNode.hasAttribute('data-vjs-player');
+      var divEmbed = this.tag.tagName.toLowerCase() === 'video-js';
+
+      if (playerElIngest) {
+        el = this.el_ = tag.parentNode;
+      } else if (!divEmbed) {
+        el = this.el_ = _Component.prototype.createEl.call(this, 'div');
+      }
+
+      // Copy over all the attributes from the tag, including ID and class
+      // ID will now reference player box, not the video tag
+      var attrs = getAttributes(tag);
+
+      if (divEmbed) {
+        el = this.el_ = tag;
+        tag = this.tag = document_1.createElement('video');
+        while (el.children.length) {
+          tag.appendChild(el.firstChild);
+        }
+
+        if (!hasClass(el, 'video-js')) {
+          addClass(el, 'video-js');
+        }
+
+        el.appendChild(tag);
+
+        playerElIngest = this.playerElIngest_ = el;
+        // move properties over from our custom `video-js` element
+        // to our new `video` element. This will move things like
+        // `src` or `controls` that were set via js before the player
+        // was initialized.
+        Object.keys(el).forEach(function (k) {
+          tag[k] = el[k];
+        });
+      }
+
+      // set tabindex to -1 so we could focus on the player element
+      tag.setAttribute('tabindex', '-1');
+
+      // Remove width/height attrs from tag so CSS can make it 100% width/height
+      tag.removeAttribute('width');
+      tag.removeAttribute('height');
+
+      Object.getOwnPropertyNames(attrs).forEach(function (attr) {
+        el.setAttribute(attr, attrs[attr]);
+
+        if (divEmbed) {
+          tag.setAttribute(attr, attrs[attr]);
+        }
+      });
+
+      // Update tag id/class for use as HTML5 playback tech
+      // Might think we should do this after embedding in container so .vjs-tech class
+      // doesn't flash 100% width/height, but class only applies with .video-js parent
+      tag.playerId = tag.id;
+      tag.id += '_html5_api';
+      tag.className = 'vjs-tech';
+
+      // Make player findable on elements
+      tag.player = el.player = this;
+      // Default state of video is paused
+      this.addClass('vjs-paused');
+
+      // Add a style element in the player that we'll use to set the width/height
+      // of the player in a way that's still overrideable by CSS, just like the
+      // video element
+      if (window_1.VIDEOJS_NO_DYNAMIC_STYLE !== true) {
+        this.styleEl_ = createStyleElement('vjs-styles-dimensions');
+        var defaultsStyleEl = $('.vjs-styles-defaults');
+        var head = $('head');
+
+        head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);
+      }
+
+      // Pass in the width/height/aspectRatio options which will update the style el
+      this.width(this.options_.width);
+      this.height(this.options_.height);
+      this.fluid(this.options_.fluid);
+      this.aspectRatio(this.options_.aspectRatio);
+
+      // Hide any links within the video/audio tag,
+      // because IE doesn't hide them completely from screen readers.
+      var links = tag.getElementsByTagName('a');
+
+      for (var i = 0; i < links.length; i++) {
+        var linkEl = links.item(i);
+
+        addClass(linkEl, 'vjs-hidden');
+        linkEl.setAttribute('hidden', 'hidden');
+      }
+
+      // insertElFirst seems to cause the networkState to flicker from 3 to 2, so
+      // keep track of the original for later so we can know if the source originally failed
+      tag.initNetworkState_ = tag.networkState;
+
+      // Wrap video tag in div (el/box) container
+      if (tag.parentNode && !playerElIngest) {
+        tag.parentNode.insertBefore(el, tag);
+      }
+
+      // insert the tag as the first child of the player element
+      // then manually add it to the children array so that this.addChild
+      // will work properly for other components
+      //
+      // Breaks iPhone, fixed in HTML5 setup.
+      prependTo(tag, el);
+      this.children_.unshift(tag);
+
+      // Set lang attr on player to ensure CSS :lang() in consistent with player
+      // if it's been set to something different to the doc
+      this.el_.setAttribute('lang', this.language_);
+
+      this.el_ = el;
+
+      return el;
+    };
+
+    /**
+     * A getter/setter for the `Player`'s width. Returns the player's configured value.
+     * To get the current width use `currentWidth()`.
+     *
+     * @param {number} [value]
+     *        The value to set the `Player`'s width to.
+     *
+     * @return {number}
+     *         The current width of the `Player` when getting.
+     */
+
+
+    Player.prototype.width = function width(value) {
+      return this.dimension('width', value);
+    };
+
+    /**
+     * A getter/setter for the `Player`'s height. Returns the player's configured value.
+     * To get the current height use `currentheight()`.
+     *
+     * @param {number} [value]
+     *        The value to set the `Player`'s heigth to.
+     *
+     * @return {number}
+     *         The current height of the `Player` when getting.
+     */
+
+
+    Player.prototype.height = function height(value) {
+      return this.dimension('height', value);
+    };
+
+    /**
+     * A getter/setter for the `Player`'s width & height.
+     *
+     * @param {string} dimension
+     *        This string can be:
+     *        - 'width'
+     *        - 'height'
+     *
+     * @param {number} [value]
+     *        Value for dimension specified in the first argument.
+     *
+     * @return {number}
+     *         The dimension arguments value when getting (width/height).
+     */
+
+
+    Player.prototype.dimension = function dimension(_dimension, value) {
+      var privDimension = _dimension + '_';
+
+      if (value === undefined) {
+        return this[privDimension] || 0;
+      }
+
+      if (value === '') {
+        // If an empty string is given, reset the dimension to be automatic
+        this[privDimension] = undefined;
+        this.updateStyleEl_();
+        return;
+      }
+
+      var parsedVal = parseFloat(value);
+
+      if (isNaN(parsedVal)) {
+        log$1.error('Improper value "' + value + '" supplied for for ' + _dimension);
+        return;
+      }
+
+      this[privDimension] = parsedVal;
+      this.updateStyleEl_();
+    };
+
+    /**
+     * A getter/setter/toggler for the vjs-fluid `className` on the `Player`.
+     *
+     * @param {boolean} [bool]
+     *        - A value of true adds the class.
+     *        - A value of false removes the class.
+     *        - No value will toggle the fluid class.
+     *
+     * @return {boolean|undefined}
+     *         - The value of fluid when getting.
+     *         - `undefined` when setting.
+     */
+
+
+    Player.prototype.fluid = function fluid(bool) {
+      if (bool === undefined) {
+        return !!this.fluid_;
+      }
+
+      this.fluid_ = !!bool;
+
+      if (bool) {
+        this.addClass('vjs-fluid');
+      } else {
+        this.removeClass('vjs-fluid');
+      }
+
+      this.updateStyleEl_();
+    };
+
+    /**
+     * Get/Set the aspect ratio
+     *
+     * @param {string} [ratio]
+     *        Aspect ratio for player
+     *
+     * @return {string|undefined}
+     *         returns the current aspect ratio when getting
+     */
+
+    /**
+     * A getter/setter for the `Player`'s aspect ratio.
+     *
+     * @param {string} [ratio]
+     *        The value to set the `Player's aspect ratio to.
+     *
+     * @return {string|undefined}
+     *         - The current aspect ratio of the `Player` when getting.
+     *         - undefined when setting
+     */
+
+
+    Player.prototype.aspectRatio = function aspectRatio(ratio) {
+      if (ratio === undefined) {
+        return this.aspectRatio_;
+      }
+
+      // Check for width:height format
+      if (!/^\d+\:\d+$/.test(ratio)) {
+        throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');
+      }
+      this.aspectRatio_ = ratio;
+
+      // We're assuming if you set an aspect ratio you want fluid mode,
+      // because in fixed mode you could calculate width and height yourself.
+      this.fluid(true);
+
+      this.updateStyleEl_();
+    };
+
+    /**
+     * Update styles of the `Player` element (height, width and aspect ratio).
+     *
+     * @private
+     * @listens Tech#loadedmetadata
+     */
+
+
+    Player.prototype.updateStyleEl_ = function updateStyleEl_() {
+      if (window_1.VIDEOJS_NO_DYNAMIC_STYLE === true) {
+        var _width = typeof this.width_ === 'number' ? this.width_ : this.options_.width;
+        var _height = typeof this.height_ === 'number' ? this.height_ : this.options_.height;
+        var techEl = this.tech_ && this.tech_.el();
+
+        if (techEl) {
+          if (_width >= 0) {
+            techEl.width = _width;
+          }
+          if (_height >= 0) {
+            techEl.height = _height;
+          }
+        }
+
+        return;
+      }
+
+      var width = void 0;
+      var height = void 0;
+      var aspectRatio = void 0;
+      var idClass = void 0;
+
+      // The aspect ratio is either used directly or to calculate width and height.
+      if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {
+        // Use any aspectRatio that's been specifically set
+        aspectRatio = this.aspectRatio_;
+      } else if (this.videoWidth() > 0) {
+        // Otherwise try to get the aspect ratio from the video metadata
+        aspectRatio = this.videoWidth() + ':' + this.videoHeight();
+      } else {
+        // Or use a default. The video element's is 2:1, but 16:9 is more common.
+        aspectRatio = '16:9';
+      }
+
+      // Get the ratio as a decimal we can use to calculate dimensions
+      var ratioParts = aspectRatio.split(':');
+      var ratioMultiplier = ratioParts[1] / ratioParts[0];
+
+      if (this.width_ !== undefined) {
+        // Use any width that's been specifically set
+        width = this.width_;
+      } else if (this.height_ !== undefined) {
+        // Or calulate the width from the aspect ratio if a height has been set
+        width = this.height_ / ratioMultiplier;
+      } else {
+        // Or use the video's metadata, or use the video el's default of 300
+        width = this.videoWidth() || 300;
+      }
+
+      if (this.height_ !== undefined) {
+        // Use any height that's been specifically set
+        height = this.height_;
+      } else {
+        // Otherwise calculate the height from the ratio and the width
+        height = width * ratioMultiplier;
+      }
+
+      // Ensure the CSS class is valid by starting with an alpha character
+      if (/^[^a-zA-Z]/.test(this.id())) {
+        idClass = 'dimensions-' + this.id();
+      } else {
+        idClass = this.id() + '-dimensions';
+      }
+
+      // Ensure the right class is still on the player for the style element
+      this.addClass(idClass);
+
+      setTextContent(this.styleEl_, '\n      .' + idClass + ' {\n        width: ' + width + 'px;\n        height: ' + height + 'px;\n      }\n\n      .' + idClass + '.vjs-fluid {\n        padding-top: ' + ratioMultiplier * 100 + '%;\n      }\n    ');
+    };
+
+    /**
+     * Load/Create an instance of playback {@link Tech} including element
+     * and API methods. Then append the `Tech` element in `Player` as a child.
+     *
+     * @param {string} techName
+     *        name of the playback technology
+     *
+     * @param {string} source
+     *        video source
+     *
+     * @private
+     */
+
+
+    Player.prototype.loadTech_ = function loadTech_(techName, source) {
+      var _this2 = this;
+
+      // Pause and remove current playback technology
+      if (this.tech_) {
+        this.unloadTech_();
+      }
+
+      var titleTechName = toTitleCase(techName);
+      var camelTechName = techName.charAt(0).toLowerCase() + techName.slice(1);
+
+      // get rid of the HTML5 video tag as soon as we are using another tech
+      if (titleTechName !== 'Html5' && this.tag) {
+        Tech.getTech('Html5').disposeMediaElement(this.tag);
+        this.tag.player = null;
+        this.tag = null;
+      }
+
+      this.techName_ = titleTechName;
+
+      // Turn off API access because we're loading a new tech that might load asynchronously
+      this.isReady_ = false;
+
+      // Grab tech-specific options from player options and add source and parent element to use.
+      var techOptions = {
+        source: source,
+        'nativeControlsForTouch': this.options_.nativeControlsForTouch,
+        'playerId': this.id(),
+        'techId': this.id() + '_' + titleTechName + '_api',
+        'autoplay': this.options_.autoplay,
+        'playsinline': this.options_.playsinline,
+        'preload': this.options_.preload,
+        'loop': this.options_.loop,
+        'muted': this.options_.muted,
+        'poster': this.poster(),
+        'language': this.language(),
+        'playerElIngest': this.playerElIngest_ || false,
+        'vtt.js': this.options_['vtt.js'],
+        'canOverridePoster': !!this.options_.techCanOverridePoster,
+        'enableSourceset': this.options_.enableSourceset
+      };
+
+      ALL.names.forEach(function (name$$1) {
+        var props = ALL[name$$1];
+
+        techOptions[props.getterName] = _this2[props.privateName];
+      });
+
+      assign(techOptions, this.options_[titleTechName]);
+      assign(techOptions, this.options_[camelTechName]);
+      assign(techOptions, this.options_[techName.toLowerCase()]);
+
+      if (this.tag) {
+        techOptions.tag = this.tag;
+      }
+
+      if (source && source.src === this.cache_.src && this.cache_.currentTime > 0) {
+        techOptions.startTime = this.cache_.currentTime;
+      }
+
+      // Initialize tech instance
+      var TechClass = Tech.getTech(techName);
+
+      if (!TechClass) {
+        throw new Error('No Tech named \'' + titleTechName + '\' exists! \'' + titleTechName + '\' should be registered using videojs.registerTech()\'');
+      }
+
+      this.tech_ = new TechClass(techOptions);
+
+      // player.triggerReady is always async, so don't need this to be async
+      this.tech_.ready(bind(this, this.handleTechReady_), true);
+
+      textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);
+
+      // Listen to all HTML5-defined events and trigger them on the player
+      TECH_EVENTS_RETRIGGER.forEach(function (event) {
+        _this2.on(_this2.tech_, event, _this2['handleTech' + toTitleCase(event) + '_']);
+      });
+
+      Object.keys(TECH_EVENTS_QUEUE).forEach(function (event) {
+        _this2.on(_this2.tech_, event, function (eventObj) {
+          if (_this2.tech_.playbackRate() === 0 && _this2.tech_.seeking()) {
+            _this2.queuedCallbacks_.push({
+              callback: _this2['handleTech' + TECH_EVENTS_QUEUE[event] + '_'].bind(_this2),
+              event: eventObj
+            });
+            return;
+          }
+          _this2['handleTech' + TECH_EVENTS_QUEUE[event] + '_'](eventObj);
+        });
+      });
+
+      this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);
+      this.on(this.tech_, 'sourceset', this.handleTechSourceset_);
+      this.on(this.tech_, 'waiting', this.handleTechWaiting_);
+      this.on(this.tech_, 'ended', this.handleTechEnded_);
+      this.on(this.tech_, 'seeking', this.handleTechSeeking_);
+      this.on(this.tech_, 'play', this.handleTechPlay_);
+      this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);
+      this.on(this.tech_, 'pause', this.handleTechPause_);
+      this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);
+      this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);
+      this.on(this.tech_, 'error', this.handleTechError_);
+      this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);
+      this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);
+      this.on(this.tech_, 'textdata', this.handleTechTextData_);
+      this.on(this.tech_, 'ratechange', this.handleTechRateChange_);
+
+      this.usingNativeControls(this.techGet_('controls'));
+
+      if (this.controls() && !this.usingNativeControls()) {
+        this.addTechControlsListeners_();
+      }
+
+      // Add the tech element in the DOM if it was not already there
+      // Make sure to not insert the original video element if using Html5
+      if (this.tech_.el().parentNode !== this.el() && (titleTechName !== 'Html5' || !this.tag)) {
+        prependTo(this.tech_.el(), this.el());
+      }
+
+      // Get rid of the original video tag reference after the first tech is loaded
+      if (this.tag) {
+        this.tag.player = null;
+        this.tag = null;
+      }
+    };
+
+    /**
+     * Unload and dispose of the current playback {@link Tech}.
+     *
+     * @private
+     */
+
+
+    Player.prototype.unloadTech_ = function unloadTech_() {
+      var _this3 = this;
+
+      // Save the current text tracks so that we can reuse the same text tracks with the next tech
+      ALL.names.forEach(function (name$$1) {
+        var props = ALL[name$$1];
+
+        _this3[props.privateName] = _this3[props.getterName]();
+      });
+      this.textTracksJson_ = textTrackConverter.textTracksToJson(this.tech_);
+
+      this.isReady_ = false;
+
+      this.tech_.dispose();
+
+      this.tech_ = false;
+
+      if (this.isPosterFromTech_) {
+        this.poster_ = '';
+        this.trigger('posterchange');
+      }
+
+      this.isPosterFromTech_ = false;
+    };
+
+    /**
+     * Return a reference to the current {@link Tech}.
+     * It will print a warning by default about the danger of using the tech directly
+     * but any argument that is passed in will silence the warning.
+     *
+     * @param {*} [safety]
+     *        Anything passed in to silence the warning
+     *
+     * @return {Tech}
+     *         The Tech
+     */
+
+
+    Player.prototype.tech = function tech(safety) {
+      if (safety === undefined) {
+        log$1.warn(tsml(_templateObject$2));
+      }
+
+      return this.tech_;
+    };
+
+    /**
+     * Set up click and touch listeners for the playback element
+     *
+     * - On desktops: a click on the video itself will toggle playback
+     * - On mobile devices: a click on the video toggles controls
+     *   which is done by toggling the user state between active and
+     *   inactive
+     * - A tap can signal that a user has become active or has become inactive
+     *   e.g. a quick tap on an iPhone movie should reveal the controls. Another
+     *   quick tap should hide them again (signaling the user is in an inactive
+     *   viewing state)
+     * - In addition to this, we still want the user to be considered inactive after
+     *   a few seconds of inactivity.
+     *
+     * > Note: the only part of iOS interaction we can't mimic with this setup
+     * is a touch and hold on the video element counting as activity in order to
+     * keep the controls showing, but that shouldn't be an issue. A touch and hold
+     * on any controls will still keep the user active
+     *
+     * @private
+     */
+
+
+    Player.prototype.addTechControlsListeners_ = function addTechControlsListeners_() {
+      // Make sure to remove all the previous listeners in case we are called multiple times.
+      this.removeTechControlsListeners_();
+
+      // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do
+      // trigger mousedown/up.
+      // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object
+      // Any touch events are set to block the mousedown event from happening
+      this.on(this.tech_, 'mousedown', this.handleTechClick_);
+
+      // If the controls were hidden we don't want that to change without a tap event
+      // so we'll check if the controls were already showing before reporting user
+      // activity
+      this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);
+      this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);
+      this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);
+
+      // The tap listener needs to come after the touchend listener because the tap
+      // listener cancels out any reportedUserActivity when setting userActive(false)
+      this.on(this.tech_, 'tap', this.handleTechTap_);
+    };
+
+    /**
+     * Remove the listeners used for click and tap controls. This is needed for
+     * toggling to controls disabled, where a tap/touch should do nothing.
+     *
+     * @private
+     */
+
+
+    Player.prototype.removeTechControlsListeners_ = function removeTechControlsListeners_() {
+      // We don't want to just use `this.off()` because there might be other needed
+      // listeners added by techs that extend this.
+      this.off(this.tech_, 'tap', this.handleTechTap_);
+      this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);
+      this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);
+      this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);
+      this.off(this.tech_, 'mousedown', this.handleTechClick_);
+    };
+
+    /**
+     * Player waits for the tech to be ready
+     *
+     * @private
+     */
+
+
+    Player.prototype.handleTechReady_ = function handleTechReady_() {
+      this.triggerReady();
+
+      // Keep the same volume as before
+      if (this.cache_.volume) {
+        this.techCall_('setVolume', this.cache_.volume);
+      }
+
+      // Look if the tech found a higher resolution poster while loading
+      this.handleTechPosterChange_();
+
+      // Update the duration if available
+      this.handleTechDurationChange_();
+
+      // Chrome and Safari both have issues with autoplay.
+      // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.
+      // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)
+      // This fixes both issues. Need to wait for API, so it updates displays correctly
+      if ((this.src() || this.currentSrc()) && this.tag && this.options_.autoplay && this.paused()) {
+        try {
+          // Chrome Fix. Fixed in Chrome v16.
+          delete this.tag.poster;
+        } catch (e) {
+          log$1('deleting tag.poster throws in some browsers', e);
+        }
+      }
+    };
+
+    /**
+     * Retrigger the `loadstart` event that was triggered by the {@link Tech}. This
+     * function will also trigger {@link Player#firstplay} if it is the first loadstart
+     * for a video.
+     *
+     * @fires Player#loadstart
+     * @fires Player#firstplay
+     * @listens Tech#loadstart
+     * @private
+     */
+
+
+    Player.prototype.handleTechLoadStart_ = function handleTechLoadStart_() {
+      // TODO: Update to use `emptied` event instead. See #1277.
+
+      this.removeClass('vjs-ended');
+      this.removeClass('vjs-seeking');
+
+      // reset the error state
+      this.error(null);
+
+      // If it's already playing we want to trigger a firstplay event now.
+      // The firstplay event relies on both the play and loadstart events
+      // which can happen in any order for a new source
+      if (!this.paused()) {
+        /**
+         * Fired when the user agent begins looking for media data
+         *
+         * @event Player#loadstart
+         * @type {EventTarget~Event}
+         */
+        this.trigger('loadstart');
+        this.trigger('firstplay');
+      } else {
+        // reset the hasStarted state
+        this.hasStarted(false);
+        this.trigger('loadstart');
+      }
+    };
+
+    /**
+     * Update the internal source caches so that we return the correct source from
+     * `src()`, `currentSource()`, and `currentSources()`.
+     *
+     * > Note: `currentSources` will not be updated if the source that is passed in exists
+     *         in the current `currentSources` cache.
+     *
+     *
+     * @param {Tech~SourceObject} srcObj
+     *        A string or object source to update our caches to.
+     */
+
+
+    Player.prototype.updateSourceCaches_ = function updateSourceCaches_() {
+      var srcObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+
+
+      var src = srcObj;
+      var type = '';
+
+      if (typeof src !== 'string') {
+        src = srcObj.src;
+        type = srcObj.type;
+      }
+      // make sure all the caches are set to default values
+      // to prevent null checking
+      this.cache_.source = this.cache_.source || {};
+      this.cache_.sources = this.cache_.sources || [];
+
+      // try to get the type of the src that was passed in
+      if (src && !type) {
+        type = findMimetype(this, src);
+      }
+
+      // update `currentSource` cache always
+      this.cache_.source = {src: src, type: type};
+
+      var matchingSources = this.cache_.sources.filter(function (s) {
+        return s.src && s.src === src;
+      });
+      var sourceElSources = [];
+      var sourceEls = this.$$('source');
+      var matchingSourceEls = [];
+
+      for (var i = 0; i < sourceEls.length; i++) {
+        var sourceObj = getAttributes(sourceEls[i]);
+
+        sourceElSources.push(sourceObj);
+
+        if (sourceObj.src && sourceObj.src === src) {
+          matchingSourceEls.push(sourceObj.src);
+        }
+      }
+
+      // if we have matching source els but not matching sources
+      // the current source cache is not up to date
+      if (matchingSourceEls.length && !matchingSources.length) {
+        this.cache_.sources = sourceElSources;
+        // if we don't have matching source or source els set the
+        // sources cache to the `currentSource` cache
+      } else if (!matchingSources.length) {
+        this.cache_.sources = [this.cache_.source];
+      }
+
+      // update the tech `src` cache
+      this.cache_.src = src;
+    };
+
+    /**
+     * *EXPERIMENTAL* Fired when the source is set or changed on the {@link Tech}
+     * causing the media element to reload.
+     *
+     * It will fire for the initial source and each subsequent source.
+     * This event is a custom event from Video.js and is triggered by the {@link Tech}.
+     *
+     * The event object for this event contains a `src` property that will contain the source
+     * that was available when the event was triggered. This is generally only necessary if Video.js
+     * is switching techs while the source was being changed.
+     *
+     * It is also fired when `load` is called on the player (or media element)
+     * because the {@link https://html.spec.whatwg.org/multipage/media.html#dom-media-load|specification for `load`}
+     * says that the resource selection algorithm needs to be aborted and restarted.
+     * In this case, it is very likely that the `src` property will be set to the
+     * empty string `""` to indicate we do not know what the source will be but
+     * that it is changing.
+     *
+     * *This event is currently still experimental and may change in minor releases.*
+     * __To use this, pass `enableSourceset` option to the player.__
+     *
+     * @event Player#sourceset
+     * @type {EventTarget~Event}
+     * @prop {string} src
+     *                The source url available when the `sourceset` was triggered.
+     *                It will be an empty string if we cannot know what the source is
+     *                but know that the source will change.
+     */
+    /**
+     * Retrigger the `sourceset` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#sourceset
+     * @listens Tech#sourceset
+     * @private
+     */
+
+
+    Player.prototype.handleTechSourceset_ = function handleTechSourceset_(event) {
+      var _this4 = this;
+
+      // only update the source cache when the source
+      // was not updated using the player api
+      if (!this.changingSrc_) {
+        // update the source to the intial source right away
+        // in some cases this will be empty string
+        this.updateSourceCaches_(event.src);
+
+        // if the `sourceset` `src` was an empty string
+        // wait for a `loadstart` to update the cache to `currentSrc`.
+        // If a sourceset happens before a `loadstart`, we reset the state
+        // as this function will be called again.
+        if (!event.src) {
+          var updateCache = function updateCache(e) {
+            if (e.type !== 'sourceset') {
+              _this4.updateSourceCaches_(_this4.techGet_('currentSrc'));
+            }
+
+            _this4.tech_.off(['sourceset', 'loadstart'], updateCache);
+          };
+
+          this.tech_.one(['sourceset', 'loadstart'], updateCache);
+        }
+      }
+
+      this.trigger({
+        src: event.src,
+        type: 'sourceset'
+      });
+    };
+
+    /**
+     * Add/remove the vjs-has-started class
+     *
+     * @fires Player#firstplay
+     *
+     * @param {boolean} request
+     *        - true: adds the class
+     *        - false: remove the class
+     *
+     * @return {boolean}
+     *         the boolean value of hasStarted_
+     */
+
+
+    Player.prototype.hasStarted = function hasStarted(request) {
+      if (request === undefined) {
+        // act as getter, if we have no request to change
+        return this.hasStarted_;
+      }
+
+      if (request === this.hasStarted_) {
+        return;
+      }
+
+      this.hasStarted_ = request;
+
+      if (this.hasStarted_) {
+        this.addClass('vjs-has-started');
+        this.trigger('firstplay');
+      } else {
+        this.removeClass('vjs-has-started');
+      }
+    };
+
+    /**
+     * Fired whenever the media begins or resumes playback
+     *
+     * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play}
+     * @fires Player#play
+     * @listens Tech#play
+     * @private
+     */
+
+
+    Player.prototype.handleTechPlay_ = function handleTechPlay_() {
+      this.removeClass('vjs-ended');
+      this.removeClass('vjs-paused');
+      this.addClass('vjs-playing');
+
+      // hide the poster when the user hits play
+      this.hasStarted(true);
+      /**
+       * Triggered whenever an {@link Tech#play} event happens. Indicates that
+       * playback has started or resumed.
+       *
+       * @event Player#play
+       * @type {EventTarget~Event}
+       */
+      this.trigger('play');
+    };
+
+    /**
+     * Retrigger the `ratechange` event that was triggered by the {@link Tech}.
+     *
+     * If there were any events queued while the playback rate was zero, fire
+     * those events now.
+     *
+     * @private
+     * @method Player#handleTechRateChange_
+     * @fires Player#ratechange
+     * @listens Tech#ratechange
+     */
+
+
+    Player.prototype.handleTechRateChange_ = function handleTechRateChange_() {
+      if (this.tech_.playbackRate() > 0 && this.cache_.lastPlaybackRate === 0) {
+        this.queuedCallbacks_.forEach(function (queued) {
+          return queued.callback(queued.event);
+        });
+        this.queuedCallbacks_ = [];
+      }
+      this.cache_.lastPlaybackRate = this.tech_.playbackRate();
+      /**
+       * Fires when the playing speed of the audio/video is changed
+       *
+       * @event Player#ratechange
+       * @type {event}
+       */
+      this.trigger('ratechange');
+    };
+
+    /**
+     * Retrigger the `waiting` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#waiting
+     * @listens Tech#waiting
+     * @private
+     */
+
+
+    Player.prototype.handleTechWaiting_ = function handleTechWaiting_() {
+      var _this5 = this;
+
+      this.addClass('vjs-waiting');
+      /**
+       * A readyState change on the DOM element has caused playback to stop.
+       *
+       * @event Player#waiting
+       * @type {EventTarget~Event}
+       */
+      this.trigger('waiting');
+      this.one('timeupdate', function () {
+        return _this5.removeClass('vjs-waiting');
+      });
+    };
+
+    /**
+     * Retrigger the `canplay` event that was triggered by the {@link Tech}.
+     * > Note: This is not consistent between browsers. See #1351
+     *
+     * @fires Player#canplay
+     * @listens Tech#canplay
+     * @private
+     */
+
+
+    Player.prototype.handleTechCanPlay_ = function handleTechCanPlay_() {
+      this.removeClass('vjs-waiting');
+      /**
+       * The media has a readyState of HAVE_FUTURE_DATA or greater.
+       *
+       * @event Player#canplay
+       * @type {EventTarget~Event}
+       */
+      this.trigger('canplay');
+    };
+
+    /**
+     * Retrigger the `canplaythrough` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#canplaythrough
+     * @listens Tech#canplaythrough
+     * @private
+     */
+
+
+    Player.prototype.handleTechCanPlayThrough_ = function handleTechCanPlayThrough_() {
+      this.removeClass('vjs-waiting');
+      /**
+       * The media has a readyState of HAVE_ENOUGH_DATA or greater. This means that the
+       * entire media file can be played without buffering.
+       *
+       * @event Player#canplaythrough
+       * @type {EventTarget~Event}
+       */
+      this.trigger('canplaythrough');
+    };
+
+    /**
+     * Retrigger the `playing` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#playing
+     * @listens Tech#playing
+     * @private
+     */
+
+
+    Player.prototype.handleTechPlaying_ = function handleTechPlaying_() {
+      this.removeClass('vjs-waiting');
+      /**
+       * The media is no longer blocked from playback, and has started playing.
+       *
+       * @event Player#playing
+       * @type {EventTarget~Event}
+       */
+      this.trigger('playing');
+    };
+
+    /**
+     * Retrigger the `seeking` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#seeking
+     * @listens Tech#seeking
+     * @private
+     */
+
+
+    Player.prototype.handleTechSeeking_ = function handleTechSeeking_() {
+      this.addClass('vjs-seeking');
+      /**
+       * Fired whenever the player is jumping to a new time
+       *
+       * @event Player#seeking
+       * @type {EventTarget~Event}
+       */
+      this.trigger('seeking');
+    };
+
+    /**
+     * Retrigger the `seeked` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#seeked
+     * @listens Tech#seeked
+     * @private
+     */
+
+
+    Player.prototype.handleTechSeeked_ = function handleTechSeeked_() {
+      this.removeClass('vjs-seeking');
+      /**
+       * Fired when the player has finished jumping to a new time
+       *
+       * @event Player#seeked
+       * @type {EventTarget~Event}
+       */
+      this.trigger('seeked');
+    };
+
+    /**
+     * Retrigger the `firstplay` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#firstplay
+     * @listens Tech#firstplay
+     * @deprecated As of 6.0 firstplay event is deprecated.
+     * @deprecated As of 6.0 passing the `starttime` option to the player and the firstplay event are deprecated.
+     * @private
+     */
+
+
+    Player.prototype.handleTechFirstPlay_ = function handleTechFirstPlay_() {
+      // If the first starttime attribute is specified
+      // then we will start at the given offset in seconds
+      if (this.options_.starttime) {
+        log$1.warn('Passing the `starttime` option to the player will be deprecated in 6.0');
+        this.currentTime(this.options_.starttime);
+      }
+
+      this.addClass('vjs-has-started');
+      /**
+       * Fired the first time a video is played. Not part of the HLS spec, and this is
+       * probably not the best implementation yet, so use sparingly. If you don't have a
+       * reason to prevent playback, use `myPlayer.one('play');` instead.
+       *
+       * @event Player#firstplay
+       * @deprecated As of 6.0 firstplay event is deprecated.
+       * @type {EventTarget~Event}
+       */
+      this.trigger('firstplay');
+    };
+
+    /**
+     * Retrigger the `pause` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#pause
+     * @listens Tech#pause
+     * @private
+     */
+
+
+    Player.prototype.handleTechPause_ = function handleTechPause_() {
+      this.removeClass('vjs-playing');
+      this.addClass('vjs-paused');
+      /**
+       * Fired whenever the media has been paused
+       *
+       * @event Player#pause
+       * @type {EventTarget~Event}
+       */
+      this.trigger('pause');
+    };
+
+    /**
+     * Retrigger the `ended` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#ended
+     * @listens Tech#ended
+     * @private
+     */
+
+
+    Player.prototype.handleTechEnded_ = function handleTechEnded_() {
+      this.addClass('vjs-ended');
+      if (this.options_.loop) {
+        this.currentTime(0);
+        this.play();
+      } else if (!this.paused()) {
+        this.pause();
+      }
+
+      /**
+       * Fired when the end of the media resource is reached (currentTime == duration)
+       *
+       * @event Player#ended
+       * @type {EventTarget~Event}
+       */
+      this.trigger('ended');
+    };
+
+    /**
+     * Fired when the duration of the media resource is first known or changed
+     *
+     * @listens Tech#durationchange
+     * @private
+     */
+
+
+    Player.prototype.handleTechDurationChange_ = function handleTechDurationChange_() {
+      this.duration(this.techGet_('duration'));
+    };
+
+    /**
+     * Handle a click on the media element to play/pause
+     *
+     * @param {EventTarget~Event} event
+     *        the event that caused this function to trigger
+     *
+     * @listens Tech#mousedown
+     * @private
+     */
+
+
+    Player.prototype.handleTechClick_ = function handleTechClick_(event) {
+      if (!isSingleLeftClick(event)) {
+        return;
+      }
+
+      // When controls are disabled a click should not toggle playback because
+      // the click is considered a control
+      if (!this.controls_) {
+        return;
+      }
+
+      if (this.paused()) {
+        this.play();
+      } else {
+        this.pause();
+      }
+    };
+
+    /**
+     * Handle a tap on the media element. It will toggle the user
+     * activity state, which hides and shows the controls.
+     *
+     * @listens Tech#tap
+     * @private
+     */
+
+
+    Player.prototype.handleTechTap_ = function handleTechTap_() {
+      this.userActive(!this.userActive());
+    };
+
+    /**
+     * Handle touch to start
+     *
+     * @listens Tech#touchstart
+     * @private
+     */
+
+
+    Player.prototype.handleTechTouchStart_ = function handleTechTouchStart_() {
+      this.userWasActive = this.userActive();
+    };
+
+    /**
+     * Handle touch to move
+     *
+     * @listens Tech#touchmove
+     * @private
+     */
+
+
+    Player.prototype.handleTechTouchMove_ = function handleTechTouchMove_() {
+      if (this.userWasActive) {
+        this.reportUserActivity();
+      }
+    };
+
+    /**
+     * Handle touch to end
+     *
+     * @param {EventTarget~Event} event
+     *        the touchend event that triggered
+     *        this function
+     *
+     * @listens Tech#touchend
+     * @private
+     */
+
+
+    Player.prototype.handleTechTouchEnd_ = function handleTechTouchEnd_(event) {
+      // Stop the mouse events from also happening
+      event.preventDefault();
+    };
+
+    /**
+     * Fired when the player switches in or out of fullscreen mode
+     *
+     * @private
+     * @listens Player#fullscreenchange
+     */
+
+
+    Player.prototype.handleFullscreenChange_ = function handleFullscreenChange_() {
+      if (this.isFullscreen()) {
+        this.addClass('vjs-fullscreen');
+      } else {
+        this.removeClass('vjs-fullscreen');
+      }
+    };
+
+    /**
+     * native click events on the SWF aren't triggered on IE11, Win8.1RT
+     * use stageclick events triggered from inside the SWF instead
+     *
+     * @private
+     * @listens stageclick
+     */
+
+
+    Player.prototype.handleStageClick_ = function handleStageClick_() {
+      this.reportUserActivity();
+    };
+
+    /**
+     * Handle Tech Fullscreen Change
+     *
+     * @param {EventTarget~Event} event
+     *        the fullscreenchange event that triggered this function
+     *
+     * @param {Object} data
+     *        the data that was sent with the event
+     *
+     * @private
+     * @listens Tech#fullscreenchange
+     * @fires Player#fullscreenchange
+     */
+
+
+    Player.prototype.handleTechFullscreenChange_ = function handleTechFullscreenChange_(event, data) {
+      if (data) {
+        this.isFullscreen(data.isFullscreen);
+      }
+      /**
+       * Fired when going in and out of fullscreen.
+       *
+       * @event Player#fullscreenchange
+       * @type {EventTarget~Event}
+       */
+      this.trigger('fullscreenchange');
+    };
+
+    /**
+     * Fires when an error occurred during the loading of an audio/video.
+     *
+     * @private
+     * @listens Tech#error
+     */
+
+
+    Player.prototype.handleTechError_ = function handleTechError_() {
+      var error = this.tech_.error();
+
+      this.error(error);
+    };
+
+    /**
+     * Retrigger the `textdata` event that was triggered by the {@link Tech}.
+     *
+     * @fires Player#textdata
+     * @listens Tech#textdata
+     * @private
+     */
+
+
+    Player.prototype.handleTechTextData_ = function handleTechTextData_() {
+      var data = null;
+
+      if (arguments.length > 1) {
+        data = arguments[1];
+      }
+
+      /**
+       * Fires when we get a textdata event from tech
+       *
+       * @event Player#textdata
+       * @type {EventTarget~Event}
+       */
+      this.trigger('textdata', data);
+    };
+
+    /**
+     * Get object for cached values.
+     *
+     * @return {Object}
+     *         get the current object cache
+     */
+
+
+    Player.prototype.getCache = function getCache() {
+      return this.cache_;
+    };
+
+    /**
+     * Pass values to the playback tech
+     *
+     * @param {string} [method]
+     *        the method to call
+     *
+     * @param {Object} arg
+     *        the argument to pass
+     *
+     * @private
+     */
+
+
+    Player.prototype.techCall_ = function techCall_(method, arg) {
+      // If it's not ready yet, call method when it is
+
+      this.ready(function () {
+        if (method in allowedSetters) {
+          return set$1(this.middleware_, this.tech_, method, arg);
+        } else if (method in allowedMediators) {
+          return mediate(this.middleware_, this.tech_, method, arg);
+        }
+
+        try {
+          if (this.tech_) {
+            this.tech_[method](arg);
+          }
+        } catch (e) {
+          log$1(e);
+          throw e;
+        }
+      }, true);
+    };
+
+    /**
+     * Get calls can't wait for the tech, and sometimes don't need to.
+     *
+     * @param {string} method
+     *        Tech method
+     *
+     * @return {Function|undefined}
+     *         the method or undefined
+     *
+     * @private
+     */
+
+
+    Player.prototype.techGet_ = function techGet_(method) {
+      if (!this.tech_ || !this.tech_.isReady_) {
+        return;
+      }
+
+      if (method in allowedGetters) {
+        return get$1(this.middleware_, this.tech_, method);
+      } else if (method in allowedMediators) {
+        return mediate(this.middleware_, this.tech_, method);
+      }
+
+      // Flash likes to die and reload when you hide or reposition it.
+      // In these cases the object methods go away and we get errors.
+      // When that happens we'll catch the errors and inform tech that it's not ready any more.
+      try {
+        return this.tech_[method]();
+      } catch (e) {
+
+        // When building additional tech libs, an expected method may not be defined yet
+        if (this.tech_[method] === undefined) {
+          log$1('Video.js: ' + method + ' method not defined for ' + this.techName_ + ' playback technology.', e);
+          throw e;
+        }
+
+        // When a method isn't available on the object it throws a TypeError
+        if (e.name === 'TypeError') {
+          log$1('Video.js: ' + method + ' unavailable on ' + this.techName_ + ' playback technology element.', e);
+          this.tech_.isReady_ = false;
+          throw e;
+        }
+
+        // If error unknown, just log and throw
+        log$1(e);
+        throw e;
+      }
+    };
+
+    /**
+     * Attempt to begin playback at the first opportunity.
+     *
+     * @return {Promise|undefined}
+     *         Returns a `Promise` only if the browser returns one and the player
+     *         is ready to begin playback. For some browsers and all non-ready
+     *         situations, this will return `undefined`.
+     */
+
+
+    Player.prototype.play = function play() {
+      var _this6 = this;
+
+      // If this is called while we have a play queued up on a loadstart, remove
+      // that listener to avoid getting in a potentially bad state.
+      if (this.playOnLoadstart_) {
+        this.off('loadstart', this.playOnLoadstart_);
+      }
+
+      // If the player/tech is not ready, queue up another call to `play()` for
+      // when it is. This will loop back into this method for another attempt at
+      // playback when the tech is ready.
+      if (!this.isReady_) {
+
+        // Bail out if we're already waiting for `ready`!
+        if (this.playWaitingForReady_) {
+          return;
+        }
+
+        this.playWaitingForReady_ = true;
+        this.ready(function () {
+          _this6.playWaitingForReady_ = false;
+          silencePromise(_this6.play());
+        });
+
+        // If the player/tech is ready and we have a source, we can attempt playback.
+      } else if (!this.changingSrc_ && (this.src() || this.currentSrc())) {
+        return this.techGet_('play');
+
+        // If the tech is ready, but we do not have a source, we'll need to wait
+        // for both the `ready` and a `loadstart` when the source is finally
+        // resolved by middleware and set on the player.
+        //
+        // This can happen if `play()` is called while changing sources or before
+        // one has been set on the player.
+      } else {
+
+        this.playOnLoadstart_ = function () {
+          _this6.playOnLoadstart_ = null;
+          silencePromise(_this6.play());
+        };
+
+        this.one('loadstart', this.playOnLoadstart_);
+      }
+    };
+
+    /**
+     * Pause the video playback
+     *
+     * @return {Player}
+     *         A reference to the player object this function was called on
+     */
+
+
+    Player.prototype.pause = function pause() {
+      this.techCall_('pause');
+    };
+
+    /**
+     * Check if the player is paused or has yet to play
+     *
+     * @return {boolean}
+     *         - false: if the media is currently playing
+     *         - true: if media is not currently playing
+     */
+
+
+    Player.prototype.paused = function paused() {
+      // The initial state of paused should be true (in Safari it's actually false)
+      return this.techGet_('paused') === false ? false : true;
+    };
+
+    /**
+     * Get a TimeRange object representing the current ranges of time that the user
+     * has played.
+     *
+     * @return {TimeRange}
+     *         A time range object that represents all the increments of time that have
+     *         been played.
+     */
+
+
+    Player.prototype.played = function played() {
+      return this.techGet_('played') || createTimeRanges(0, 0);
+    };
+
+    /**
+     * Returns whether or not the user is "scrubbing". Scrubbing is
+     * when the user has clicked the progress bar handle and is
+     * dragging it along the progress bar.
+     *
+     * @param {boolean} [isScrubbing]
+     *        whether the user is or is not scrubbing
+     *
+     * @return {boolean}
+     *         The value of scrubbing when getting
+     */
+
+
+    Player.prototype.scrubbing = function scrubbing(isScrubbing) {
+      if (typeof isScrubbing === 'undefined') {
+        return this.scrubbing_;
+      }
+      this.scrubbing_ = !!isScrubbing;
+
+      if (isScrubbing) {
+        this.addClass('vjs-scrubbing');
+      } else {
+        this.removeClass('vjs-scrubbing');
+      }
+    };
+
+    /**
+     * Get or set the current time (in seconds)
+     *
+     * @param {number|string} [seconds]
+     *        The time to seek to in seconds
+     *
+     * @return {number}
+     *         - the current time in seconds when getting
+     */
+
+
+    Player.prototype.currentTime = function currentTime(seconds) {
+      if (typeof seconds !== 'undefined') {
+        if (seconds < 0) {
+          seconds = 0;
+        }
+        this.techCall_('setCurrentTime', seconds);
+        return;
+      }
+
+      // cache last currentTime and return. default to 0 seconds
+      //
+      // Caching the currentTime is meant to prevent a massive amount of reads on the tech's
+      // currentTime when scrubbing, but may not provide much performance benefit afterall.
+      // Should be tested. Also something has to read the actual current time or the cache will
+      // never get updated.
+      this.cache_.currentTime = this.techGet_('currentTime') || 0;
+      return this.cache_.currentTime;
+    };
+
+    /**
+     * Normally gets the length in time of the video in seconds;
+     * in all but the rarest use cases an argument will NOT be passed to the method
+     *
+     * > **NOTE**: The video must have started loading before the duration can be
+     * known, and in the case of Flash, may not be known until the video starts
+     * playing.
+     *
+     * @fires Player#durationchange
+     *
+     * @param {number} [seconds]
+     *        The duration of the video to set in seconds
+     *
+     * @return {number}
+     *         - The duration of the video in seconds when getting
+     */
+
+
+    Player.prototype.duration = function duration(seconds) {
+      if (seconds === undefined) {
+        // return NaN if the duration is not known
+        return this.cache_.duration !== undefined ? this.cache_.duration : NaN;
+      }
+
+      seconds = parseFloat(seconds);
+
+      // Standardize on Infinity for signaling video is live
+      if (seconds < 0) {
+        seconds = Infinity;
+      }
+
+      if (seconds !== this.cache_.duration) {
+        // Cache the last set value for optimized scrubbing (esp. Flash)
+        this.cache_.duration = seconds;
+
+        if (seconds === Infinity) {
+          this.addClass('vjs-live');
+        } else {
+          this.removeClass('vjs-live');
+        }
+        /**
+         * @event Player#durationchange
+         * @type {EventTarget~Event}
+         */
+        this.trigger('durationchange');
+      }
+    };
+
+    /**
+     * Calculates how much time is left in the video. Not part
+     * of the native video API.
+     *
+     * @return {number}
+     *         The time remaining in seconds
+     */
+
+
+    Player.prototype.remainingTime = function remainingTime() {
+      return this.duration() - this.currentTime();
+    };
+
+    /**
+     * A remaining time function that is intented to be used when
+     * the time is to be displayed directly to the user.
+     *
+     * @return {number}
+     *         The rounded time remaining in seconds
+     */
+
+
+    Player.prototype.remainingTimeDisplay = function remainingTimeDisplay() {
+      return Math.floor(this.duration()) - Math.floor(this.currentTime());
+    };
+
+    //
+    // Kind of like an array of portions of the video that have been downloaded.
+
+    /**
+     * Get a TimeRange object with an array of the times of the video
+     * that have been downloaded. If you just want the percent of the
+     * video that's been downloaded, use bufferedPercent.
+     *
+     * @see [Buffered Spec]{@link http://dev.w3.org/html5/spec/video.html#dom-media-buffered}
+     *
+     * @return {TimeRange}
+     *         A mock TimeRange object (following HTML spec)
+     */
+
+
+    Player.prototype.buffered = function buffered() {
+      var buffered = this.techGet_('buffered');
+
+      if (!buffered || !buffered.length) {
+        buffered = createTimeRanges(0, 0);
+      }
+
+      return buffered;
+    };
+
+    /**
+     * Get the percent (as a decimal) of the video that's been downloaded.
+     * This method is not a part of the native HTML video API.
+     *
+     * @return {number}
+     *         A decimal between 0 and 1 representing the percent
+     *         that is buffered 0 being 0% and 1 being 100%
+     */
+
+
+    Player.prototype.bufferedPercent = function bufferedPercent$$1() {
+      return bufferedPercent(this.buffered(), this.duration());
+    };
+
+    /**
+     * Get the ending time of the last buffered time range
+     * This is used in the progress bar to encapsulate all time ranges.
+     *
+     * @return {number}
+     *         The end of the last buffered time range
+     */
+
+
+    Player.prototype.bufferedEnd = function bufferedEnd() {
+      var buffered = this.buffered();
+      var duration = this.duration();
+      var end = buffered.end(buffered.length - 1);
+
+      if (end > duration) {
+        end = duration;
+      }
+
+      return end;
+    };
+
+    /**
+     * Get or set the current volume of the media
+     *
+     * @param  {number} [percentAsDecimal]
+     *         The new volume as a decimal percent:
+     *         - 0 is muted/0%/off
+     *         - 1.0 is 100%/full
+     *         - 0.5 is half volume or 50%
+     *
+     * @return {number}
+     *         The current volume as a percent when getting
+     */
+
+
+    Player.prototype.volume = function volume(percentAsDecimal) {
+      var vol = void 0;
+
+      if (percentAsDecimal !== undefined) {
+        // Force value to between 0 and 1
+        vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal)));
+        this.cache_.volume = vol;
+        this.techCall_('setVolume', vol);
+
+        if (vol > 0) {
+          this.lastVolume_(vol);
+        }
+
+        return;
+      }
+
+      // Default to 1 when returning current volume.
+      vol = parseFloat(this.techGet_('volume'));
+      return isNaN(vol) ? 1 : vol;
+    };
+
+    /**
+     * Get the current muted state, or turn mute on or off
+     *
+     * @param {boolean} [muted]
+     *        - true to mute
+     *        - false to unmute
+     *
+     * @return {boolean}
+     *         - true if mute is on and getting
+     *         - false if mute is off and getting
+     */
+
+
+    Player.prototype.muted = function muted(_muted) {
+      if (_muted !== undefined) {
+        this.techCall_('setMuted', _muted);
+        return;
+      }
+      return this.techGet_('muted') || false;
+    };
+
+    /**
+     * Get the current defaultMuted state, or turn defaultMuted on or off. defaultMuted
+     * indicates the state of muted on initial playback.
+     *
+     * ```js
+     *   var myPlayer = videojs('some-player-id');
+     *
+     *   myPlayer.src("http://www.example.com/path/to/video.mp4");
+     *
+     *   // get, should be false
+     *   console.log(myPlayer.defaultMuted());
+     *   // set to true
+     *   myPlayer.defaultMuted(true);
+     *   // get should be true
+     *   console.log(myPlayer.defaultMuted());
+     * ```
+     *
+     * @param {boolean} [defaultMuted]
+     *        - true to mute
+     *        - false to unmute
+     *
+     * @return {boolean|Player}
+     *         - true if defaultMuted is on and getting
+     *         - false if defaultMuted is off and getting
+     *         - A reference to the current player when setting
+     */
+
+
+    Player.prototype.defaultMuted = function defaultMuted(_defaultMuted) {
+      if (_defaultMuted !== undefined) {
+        return this.techCall_('setDefaultMuted', _defaultMuted);
+      }
+      return this.techGet_('defaultMuted') || false;
+    };
+
+    /**
+     * Get the last volume, or set it
+     *
+     * @param  {number} [percentAsDecimal]
+     *         The new last volume as a decimal percent:
+     *         - 0 is muted/0%/off
+     *         - 1.0 is 100%/full
+     *         - 0.5 is half volume or 50%
+     *
+     * @return {number}
+     *         the current value of lastVolume as a percent when getting
+     *
+     * @private
+     */
+
+
+    Player.prototype.lastVolume_ = function lastVolume_(percentAsDecimal) {
+      if (percentAsDecimal !== undefined && percentAsDecimal !== 0) {
+        this.cache_.lastVolume = percentAsDecimal;
+        return;
+      }
+      return this.cache_.lastVolume;
+    };
+
+    /**
+     * Check if current tech can support native fullscreen
+     * (e.g. with built in controls like iOS, so not our flash swf)
+     *
+     * @return {boolean}
+     *         if native fullscreen is supported
+     */
+
+
+    Player.prototype.supportsFullScreen = function supportsFullScreen() {
+      return this.techGet_('supportsFullScreen') || false;
+    };
+
+    /**
+     * Check if the player is in fullscreen mode or tell the player that it
+     * is or is not in fullscreen mode.
+     *
+     * > NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official
+     * property and instead document.fullscreenElement is used. But isFullscreen is
+     * still a valuable property for internal player workings.
+     *
+     * @param  {boolean} [isFS]
+     *         Set the players current fullscreen state
+     *
+     * @return {boolean}
+     *         - true if fullscreen is on and getting
+     *         - false if fullscreen is off and getting
+     */
+
+
+    Player.prototype.isFullscreen = function isFullscreen(isFS) {
+      if (isFS !== undefined) {
+        this.isFullscreen_ = !!isFS;
+        return;
+      }
+      return !!this.isFullscreen_;
+    };
+
+    /**
+     * Increase the size of the video to full screen
+     * In some browsers, full screen is not supported natively, so it enters
+     * "full window mode", where the video fills the browser window.
+     * In browsers and devices that support native full screen, sometimes the
+     * browser's default controls will be shown, and not the Video.js custom skin.
+     * This includes most mobile devices (iOS, Android) and older versions of
+     * Safari.
+     *
+     * @fires Player#fullscreenchange
+     */
+
+
+    Player.prototype.requestFullscreen = function requestFullscreen() {
+      var fsApi = FullscreenApi;
+
+      this.isFullscreen(true);
+
+      if (fsApi.requestFullscreen) {
+        // the browser supports going fullscreen at the element level so we can
+        // take the controls fullscreen as well as the video
+
+        // Trigger fullscreenchange event after change
+        // We have to specifically add this each time, and remove
+        // when canceling fullscreen. Otherwise if there's multiple
+        // players on a page, they would all be reacting to the same fullscreen
+        // events
+        on(document_1, fsApi.fullscreenchange, bind(this, function documentFullscreenChange(e) {
+          this.isFullscreen(document_1[fsApi.fullscreenElement]);
+
+          // If cancelling fullscreen, remove event listener.
+          if (this.isFullscreen() === false) {
+            off(document_1, fsApi.fullscreenchange, documentFullscreenChange);
+          }
+          /**
+           * @event Player#fullscreenchange
+           * @type {EventTarget~Event}
+           */
+          this.trigger('fullscreenchange');
+        }));
+
+        this.el_[fsApi.requestFullscreen]();
+      } else if (this.tech_.supportsFullScreen()) {
+        // we can't take the video.js controls fullscreen but we can go fullscreen
+        // with native controls
+        this.techCall_('enterFullScreen');
+      } else {
+        // fullscreen isn't supported so we'll just stretch the video element to
+        // fill the viewport
+        this.enterFullWindow();
+        /**
+         * @event Player#fullscreenchange
+         * @type {EventTarget~Event}
+         */
+        this.trigger('fullscreenchange');
+      }
+    };
+
+    /**
+     * Return the video to its normal size after having been in full screen mode
+     *
+     * @fires Player#fullscreenchange
+     */
+
+
+    Player.prototype.exitFullscreen = function exitFullscreen() {
+      var fsApi = FullscreenApi;
+
+      this.isFullscreen(false);
+
+      // Check for browser element fullscreen support
+      if (fsApi.requestFullscreen) {
+        document_1[fsApi.exitFullscreen]();
+      } else if (this.tech_.supportsFullScreen()) {
+        this.techCall_('exitFullScreen');
+      } else {
+        this.exitFullWindow();
+        /**
+         * @event Player#fullscreenchange
+         * @type {EventTarget~Event}
+         */
+        this.trigger('fullscreenchange');
+      }
+    };
+
+    /**
+     * When fullscreen isn't supported we can stretch the
+     * video container to as wide as the browser will let us.
+     *
+     * @fires Player#enterFullWindow
+     */
+
+
+    Player.prototype.enterFullWindow = function enterFullWindow() {
+      this.isFullWindow = true;
+
+      // Storing original doc overflow value to return to when fullscreen is off
+      this.docOrigOverflow = document_1.documentElement.style.overflow;
+
+      // Add listener for esc key to exit fullscreen
+      on(document_1, 'keydown', bind(this, this.fullWindowOnEscKey));
+
+      // Hide any scroll bars
+      document_1.documentElement.style.overflow = 'hidden';
+
+      // Apply fullscreen styles
+      addClass(document_1.body, 'vjs-full-window');
+
+      /**
+       * @event Player#enterFullWindow
+       * @type {EventTarget~Event}
+       */
+      this.trigger('enterFullWindow');
+    };
+
+    /**
+     * Check for call to either exit full window or
+     * full screen on ESC key
+     *
+     * @param {string} event
+     *        Event to check for key press
+     */
+
+
+    Player.prototype.fullWindowOnEscKey = function fullWindowOnEscKey(event) {
+      if (event.keyCode === 27) {
+        if (this.isFullscreen() === true) {
+          this.exitFullscreen();
+        } else {
+          this.exitFullWindow();
+        }
+      }
+    };
+
+    /**
+     * Exit full window
+     *
+     * @fires Player#exitFullWindow
+     */
+
+
+    Player.prototype.exitFullWindow = function exitFullWindow() {
+      this.isFullWindow = false;
+      off(document_1, 'keydown', this.fullWindowOnEscKey);
+
+      // Unhide scroll bars.
+      document_1.documentElement.style.overflow = this.docOrigOverflow;
+
+      // Remove fullscreen styles
+      removeClass(document_1.body, 'vjs-full-window');
+
+      // Resize the box, controller, and poster to original sizes
+      // this.positionAll();
+      /**
+       * @event Player#exitFullWindow
+       * @type {EventTarget~Event}
+       */
+      this.trigger('exitFullWindow');
+    };
+
+    /**
+     * Check whether the player can play a given mimetype
+     *
+     * @see https://www.w3.org/TR/2011/WD-html5-20110113/video.html#dom-navigator-canplaytype
+     *
+     * @param {string} type
+     *        The mimetype to check
+     *
+     * @return {string}
+     *         'probably', 'maybe', or '' (empty string)
+     */
+
+
+    Player.prototype.canPlayType = function canPlayType(type) {
+      var can = void 0;
+
+      // Loop through each playback technology in the options order
+      for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {
+        var techName = j[i];
+        var tech = Tech.getTech(techName);
+
+        // Support old behavior of techs being registered as components.
+        // Remove once that deprecated behavior is removed.
+        if (!tech) {
+          tech = Component.getComponent(techName);
+        }
+
+        // Check if the current tech is defined before continuing
+        if (!tech) {
+          log$1.error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
+          continue;
+        }
+
+        // Check if the browser supports this technology
+        if (tech.isSupported()) {
+          can = tech.canPlayType(type);
+
+          if (can) {
+            return can;
+          }
+        }
+      }
+
+      return '';
+    };
+
+    /**
+     * Select source based on tech-order or source-order
+     * Uses source-order selection if `options.sourceOrder` is truthy. Otherwise,
+     * defaults to tech-order selection
+     *
+     * @param {Array} sources
+     *        The sources for a media asset
+     *
+     * @return {Object|boolean}
+     *         Object of source and tech order or false
+     */
+
+
+    Player.prototype.selectSource = function selectSource(sources) {
+      var _this7 = this;
+
+      // Get only the techs specified in `techOrder` that exist and are supported by the
+      // current platform
+      var techs = this.options_.techOrder.map(function (techName) {
+        return [techName, Tech.getTech(techName)];
+      }).filter(function (_ref) {
+        var techName = _ref[0],
+          tech = _ref[1];
+
+        // Check if the current tech is defined before continuing
+        if (tech) {
+          // Check if the browser supports this technology
+          return tech.isSupported();
+        }
+
+        log$1.error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
+        return false;
+      });
+
+      // Iterate over each `innerArray` element once per `outerArray` element and execute
+      // `tester` with both. If `tester` returns a non-falsy value, exit early and return
+      // that value.
+      var findFirstPassingTechSourcePair = function findFirstPassingTechSourcePair(outerArray, innerArray, tester) {
+        var found = void 0;
+
+        outerArray.some(function (outerChoice) {
+          return innerArray.some(function (innerChoice) {
+            found = tester(outerChoice, innerChoice);
+
+            if (found) {
+              return true;
+            }
+          });
+        });
+
+        return found;
+      };
+
+      var foundSourceAndTech = void 0;
+      var flip = function flip(fn) {
+        return function (a, b) {
+          return fn(b, a);
+        };
+      };
+      var finder = function finder(_ref2, source) {
+        var techName = _ref2[0],
+          tech = _ref2[1];
+
+        if (tech.canPlaySource(source, _this7.options_[techName.toLowerCase()])) {
+          return {source: source, tech: techName};
+        }
+      };
+
+      // Depending on the truthiness of `options.sourceOrder`, we swap the order of techs and sources
+      // to select from them based on their priority.
+      if (this.options_.sourceOrder) {
+        // Source-first ordering
+        foundSourceAndTech = findFirstPassingTechSourcePair(sources, techs, flip(finder));
+      } else {
+        // Tech-first ordering
+        foundSourceAndTech = findFirstPassingTechSourcePair(techs, sources, finder);
+      }
+
+      return foundSourceAndTech || false;
+    };
+
+    /**
+     * Get or set the video source.
+     *
+     * @param {Tech~SourceObject|Tech~SourceObject[]|string} [source]
+     *        A SourceObject, an array of SourceObjects, or a string referencing
+     *        a URL to a media source. It is _highly recommended_ that an object
+     *        or array of objects is used here, so that source selection
+     *        algorithms can take the `type` into account.
+     *
+     *        If not provided, this method acts as a getter.
+     *
+     * @return {string|undefined}
+     *         If the `source` argument is missing, returns the current source
+     *         URL. Otherwise, returns nothing/undefined.
+     */
+
+
+    Player.prototype.src = function src(source) {
+      var _this8 = this;
+
+      // getter usage
+      if (typeof source === 'undefined') {
+        return this.cache_.src || '';
+      }
+      // filter out invalid sources and turn our source into
+      // an array of source objects
+      var sources = filterSource(source);
+
+      // if a source was passed in then it is invalid because
+      // it was filtered to a zero length Array. So we have to
+      // show an error
+      if (!sources.length) {
+        this.setTimeout(function () {
+          this.error({code: 4, message: this.localize(this.options_.notSupportedMessage)});
+        }, 0);
+        return;
+      }
+
+      // intial sources
+      this.changingSrc_ = true;
+
+      this.cache_.sources = sources;
+      this.updateSourceCaches_(sources[0]);
+
+      // middlewareSource is the source after it has been changed by middleware
+      setSource(this, sources[0], function (middlewareSource, mws) {
+        _this8.middleware_ = mws;
+
+        // since sourceSet is async we have to update the cache again after we select a source since
+        // the source that is selected could be out of order from the cache update above this callback.
+        _this8.cache_.sources = sources;
+        _this8.updateSourceCaches_(middlewareSource);
+
+        var err = _this8.src_(middlewareSource);
+
+        if (err) {
+          if (sources.length > 1) {
+            return _this8.src(sources.slice(1));
+          }
+
+          _this8.changingSrc_ = false;
+
+          // We need to wrap this in a timeout to give folks a chance to add error event handlers
+          _this8.setTimeout(function () {
+            this.error({code: 4, message: this.localize(this.options_.notSupportedMessage)});
+          }, 0);
+
+          // we could not find an appropriate tech, but let's still notify the delegate that this is it
+          // this needs a better comment about why this is needed
+          _this8.triggerReady();
+
+          return;
+        }
+
+        setTech(mws, _this8.tech_);
+      });
+    };
+
+    /**
+     * Set the source object on the tech, returns a boolean that indicates whether
+     * there is a tech that can play the source or not
+     *
+     * @param {Tech~SourceObject} source
+     *        The source object to set on the Tech
+     *
+     * @return {Boolean}
+     *         - True if there is no Tech to playback this source
+     *         - False otherwise
+     *
+     * @private
+     */
+
+
+    Player.prototype.src_ = function src_(source) {
+      var _this9 = this;
+
+      var sourceTech = this.selectSource([source]);
+
+      if (!sourceTech) {
+        return true;
+      }
+
+      if (!titleCaseEquals(sourceTech.tech, this.techName_)) {
+        this.changingSrc_ = true;
+        // load this technology with the chosen source
+        this.loadTech_(sourceTech.tech, sourceTech.source);
+        this.tech_.ready(function () {
+          _this9.changingSrc_ = false;
+        });
+        return false;
+      }
+
+      // wait until the tech is ready to set the source
+      // and set it synchronously if possible (#2326)
+      this.ready(function () {
+
+        // The setSource tech method was added with source handlers
+        // so older techs won't support it
+        // We need to check the direct prototype for the case where subclasses
+        // of the tech do not support source handlers
+        if (this.tech_.constructor.prototype.hasOwnProperty('setSource')) {
+          this.techCall_('setSource', source);
+        } else {
+          this.techCall_('src', source.src);
+        }
+
+        this.changingSrc_ = false;
+      }, true);
+
+      return false;
+    };
+
+    /**
+     * Begin loading the src data.
+     */
+
+
+    Player.prototype.load = function load() {
+      this.techCall_('load');
+    };
+
+    /**
+     * Reset the player. Loads the first tech in the techOrder,
+     * and calls `reset` on the tech`.
+     */
+
+
+    Player.prototype.reset = function reset() {
+      this.loadTech_(this.options_.techOrder[0], null);
+      this.techCall_('reset');
+    };
+
+    /**
+     * Returns all of the current source objects.
+     *
+     * @return {Tech~SourceObject[]}
+     *         The current source objects
+     */
+
+
+    Player.prototype.currentSources = function currentSources() {
+      var source = this.currentSource();
+      var sources = [];
+
+      // assume `{}` or `{ src }`
+      if (Object.keys(source).length !== 0) {
+        sources.push(source);
+      }
+
+      return this.cache_.sources || sources;
+    };
+
+    /**
+     * Returns the current source object.
+     *
+     * @return {Tech~SourceObject}
+     *         The current source object
+     */
+
+
+    Player.prototype.currentSource = function currentSource() {
+      return this.cache_.source || {};
+    };
+
+    /**
+     * Returns the fully qualified URL of the current source value e.g. http://mysite.com/video.mp4
+     * Can be used in conjunction with `currentType` to assist in rebuilding the current source object.
+     *
+     * @return {string}
+     *         The current source
+     */
+
+
+    Player.prototype.currentSrc = function currentSrc() {
+      return this.currentSource() && this.currentSource().src || '';
+    };
+
+    /**
+     * Get the current source type e.g. video/mp4
+     * This can allow you rebuild the current source object so that you could load the same
+     * source and tech later
+     *
+     * @return {string}
+     *         The source MIME type
+     */
+
+
+    Player.prototype.currentType = function currentType() {
+      return this.currentSource() && this.currentSource().type || '';
+    };
+
+    /**
+     * Get or set the preload attribute
+     *
+     * @param {boolean} [value]
+     *        - true means that we should preload
+     *        - false means that we should not preload
+     *
+     * @return {string}
+     *         The preload attribute value when getting
+     */
+
+
+    Player.prototype.preload = function preload(value) {
+      if (value !== undefined) {
+        this.techCall_('setPreload', value);
+        this.options_.preload = value;
+        return;
+      }
+      return this.techGet_('preload');
+    };
+
+    /**
+     * Get or set the autoplay attribute.
+     *
+     * @param {boolean} [value]
+     *        - true means that we should autoplay
+     *        - false means that we should not autoplay
+     *
+     * @return {string}
+     *         The current value of autoplay when getting
+     */
+
+
+    Player.prototype.autoplay = function autoplay(value) {
+      if (value !== undefined) {
+        this.techCall_('setAutoplay', value);
+        this.options_.autoplay = value;
+        return;
+      }
+      return this.techGet_('autoplay', value);
+    };
+
+    /**
+     * Set or unset the playsinline attribute.
+     * Playsinline tells the browser that non-fullscreen playback is preferred.
+     *
+     * @param {boolean} [value]
+     *        - true means that we should try to play inline by default
+     *        - false means that we should use the browser's default playback mode,
+     *          which in most cases is inline. iOS Safari is a notable exception
+     *          and plays fullscreen by default.
+     *
+     * @return {string|Player}
+     *         - the current value of playsinline
+     *         - the player when setting
+     *
+     * @see [Spec]{@link https://html.spec.whatwg.org/#attr-video-playsinline}
+     */
+
+
+    Player.prototype.playsinline = function playsinline(value) {
+      if (value !== undefined) {
+        this.techCall_('setPlaysinline', value);
+        this.options_.playsinline = value;
+        return this;
+      }
+      return this.techGet_('playsinline');
+    };
+
+    /**
+     * Get or set the loop attribute on the video element.
+     *
+     * @param {boolean} [value]
+     *        - true means that we should loop the video
+     *        - false means that we should not loop the video
+     *
+     * @return {string}
+     *         The current value of loop when getting
+     */
+
+
+    Player.prototype.loop = function loop(value) {
+      if (value !== undefined) {
+        this.techCall_('setLoop', value);
+        this.options_.loop = value;
+        return;
+      }
+      return this.techGet_('loop');
+    };
+
+    /**
+     * Get or set the poster image source url
+     *
+     * @fires Player#posterchange
+     *
+     * @param {string} [src]
+     *        Poster image source URL
+     *
+     * @return {string}
+     *         The current value of poster when getting
+     */
+
+
+    Player.prototype.poster = function poster(src) {
+      if (src === undefined) {
+        return this.poster_;
+      }
+
+      // The correct way to remove a poster is to set as an empty string
+      // other falsey values will throw errors
+      if (!src) {
+        src = '';
+      }
+
+      if (src === this.poster_) {
+        return;
+      }
+
+      // update the internal poster variable
+      this.poster_ = src;
+
+      // update the tech's poster
+      this.techCall_('setPoster', src);
+
+      this.isPosterFromTech_ = false;
+
+      // alert components that the poster has been set
+      /**
+       * This event fires when the poster image is changed on the player.
+       *
+       * @event Player#posterchange
+       * @type {EventTarget~Event}
+       */
+      this.trigger('posterchange');
+    };
+
+    /**
+     * Some techs (e.g. YouTube) can provide a poster source in an
+     * asynchronous way. We want the poster component to use this
+     * poster source so that it covers up the tech's controls.
+     * (YouTube's play button). However we only want to use this
+     * source if the player user hasn't set a poster through
+     * the normal APIs.
+     *
+     * @fires Player#posterchange
+     * @listens Tech#posterchange
+     * @private
+     */
+
+
+    Player.prototype.handleTechPosterChange_ = function handleTechPosterChange_() {
+      if ((!this.poster_ || this.options_.techCanOverridePoster) && this.tech_ && this.tech_.poster) {
+        var newPoster = this.tech_.poster() || '';
+
+        if (newPoster !== this.poster_) {
+          this.poster_ = newPoster;
+          this.isPosterFromTech_ = true;
+
+          // Let components know the poster has changed
+          this.trigger('posterchange');
+        }
+      }
+    };
+
+    /**
+     * Get or set whether or not the controls are showing.
+     *
+     * @fires Player#controlsenabled
+     *
+     * @param {boolean} [bool]
+     *        - true to turn controls on
+     *        - false to turn controls off
+     *
+     * @return {boolean}
+     *         The current value of controls when getting
+     */
+
+
+    Player.prototype.controls = function controls(bool) {
+      if (bool === undefined) {
+        return !!this.controls_;
+      }
+
+      bool = !!bool;
+
+      // Don't trigger a change event unless it actually changed
+      if (this.controls_ === bool) {
+        return;
+      }
+
+      this.controls_ = bool;
+
+      if (this.usingNativeControls()) {
+        this.techCall_('setControls', bool);
+      }
+
+      if (this.controls_) {
+        this.removeClass('vjs-controls-disabled');
+        this.addClass('vjs-controls-enabled');
+        /**
+         * @event Player#controlsenabled
+         * @type {EventTarget~Event}
+         */
+        this.trigger('controlsenabled');
+        if (!this.usingNativeControls()) {
+          this.addTechControlsListeners_();
+        }
+      } else {
+        this.removeClass('vjs-controls-enabled');
+        this.addClass('vjs-controls-disabled');
+        /**
+         * @event Player#controlsdisabled
+         * @type {EventTarget~Event}
+         */
+        this.trigger('controlsdisabled');
+        if (!this.usingNativeControls()) {
+          this.removeTechControlsListeners_();
+        }
+      }
+    };
+
+    /**
+     * Toggle native controls on/off. Native controls are the controls built into
+     * devices (e.g. default iPhone controls), Flash, or other techs
+     * (e.g. Vimeo Controls)
+     * **This should only be set by the current tech, because only the tech knows
+     * if it can support native controls**
+     *
+     * @fires Player#usingnativecontrols
+     * @fires Player#usingcustomcontrols
+     *
+     * @param {boolean} [bool]
+     *        - true to turn native controls on
+     *        - false to turn native controls off
+     *
+     * @return {boolean}
+     *         The current value of native controls when getting
+     */
+
+
+    Player.prototype.usingNativeControls = function usingNativeControls(bool) {
+      if (bool === undefined) {
+        return !!this.usingNativeControls_;
+      }
+
+      bool = !!bool;
+
+      // Don't trigger a change event unless it actually changed
+      if (this.usingNativeControls_ === bool) {
+        return;
+      }
+
+      this.usingNativeControls_ = bool;
+
+      if (this.usingNativeControls_) {
+        this.addClass('vjs-using-native-controls');
+
+        /**
+         * player is using the native device controls
+         *
+         * @event Player#usingnativecontrols
+         * @type {EventTarget~Event}
+         */
+        this.trigger('usingnativecontrols');
+      } else {
+        this.removeClass('vjs-using-native-controls');
+
+        /**
+         * player is using the custom HTML controls
+         *
+         * @event Player#usingcustomcontrols
+         * @type {EventTarget~Event}
+         */
+        this.trigger('usingcustomcontrols');
+      }
+    };
+
+    /**
+     * Set or get the current MediaError
+     *
+     * @fires Player#error
+     *
+     * @param  {MediaError|string|number} [err]
+     *         A MediaError or a string/number to be turned
+     *         into a MediaError
+     *
+     * @return {MediaError|null}
+     *         The current MediaError when getting (or null)
+     */
+
+
+    Player.prototype.error = function error(err) {
+      if (err === undefined) {
+        return this.error_ || null;
+      }
+
+      // restoring to default
+      if (err === null) {
+        this.error_ = err;
+        this.removeClass('vjs-error');
+        if (this.errorDisplay) {
+          this.errorDisplay.close();
+        }
+        return;
+      }
+
+      this.error_ = new MediaError(err);
+
+      // add the vjs-error classname to the player
+      this.addClass('vjs-error');
+
+      // log the name of the error type and any message
+      // IE11 logs "[object object]" and required you to expand message to see error object
+      log$1.error('(CODE:' + this.error_.code + ' ' + MediaError.errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
+
+      /**
+       * @event Player#error
+       * @type {EventTarget~Event}
+       */
+      this.trigger('error');
+
+      return;
+    };
+
+    /**
+     * Report user activity
+     *
+     * @param {Object} event
+     *        Event object
+     */
+
+
+    Player.prototype.reportUserActivity = function reportUserActivity(event) {
+      this.userActivity_ = true;
+    };
+
+    /**
+     * Get/set if user is active
+     *
+     * @fires Player#useractive
+     * @fires Player#userinactive
+     *
+     * @param {boolean} [bool]
+     *        - true if the user is active
+     *        - false if the user is inactive
+     *
+     * @return {boolean}
+     *         The current value of userActive when getting
+     */
+
+
+    Player.prototype.userActive = function userActive(bool) {
+      if (bool === undefined) {
+        return this.userActive_;
+      }
+
+      bool = !!bool;
+
+      if (bool === this.userActive_) {
+        return;
+      }
+
+      this.userActive_ = bool;
+
+      if (this.userActive_) {
+        this.userActivity_ = true;
+        this.removeClass('vjs-user-inactive');
+        this.addClass('vjs-user-active');
+        /**
+         * @event Player#useractive
+         * @type {EventTarget~Event}
+         */
+        this.trigger('useractive');
+        return;
+      }
+
+      // Chrome/Safari/IE have bugs where when you change the cursor it can
+      // trigger a mousemove event. This causes an issue when you're hiding
+      // the cursor when the user is inactive, and a mousemove signals user
+      // activity. Making it impossible to go into inactive mode. Specifically
+      // this happens in fullscreen when we really need to hide the cursor.
+      //
+      // When this gets resolved in ALL browsers it can be removed
+      // https://code.google.com/p/chromium/issues/detail?id=103041
+      if (this.tech_) {
+        this.tech_.one('mousemove', function (e) {
+          e.stopPropagation();
+          e.preventDefault();
+        });
+      }
+
+      this.userActivity_ = false;
+      this.removeClass('vjs-user-active');
+      this.addClass('vjs-user-inactive');
+      /**
+       * @event Player#userinactive
+       * @type {EventTarget~Event}
+       */
+      this.trigger('userinactive');
+    };
+
+    /**
+     * Listen for user activity based on timeout value
+     *
+     * @private
+     */
+
+
+    Player.prototype.listenForUserActivity_ = function listenForUserActivity_() {
+      var mouseInProgress = void 0;
+      var lastMoveX = void 0;
+      var lastMoveY = void 0;
+      var handleActivity = bind(this, this.reportUserActivity);
+
+      var handleMouseMove = function handleMouseMove(e) {
+        // #1068 - Prevent mousemove spamming
+        // Chrome Bug: https://code.google.com/p/chromium/issues/detail?id=366970
+        if (e.screenX !== lastMoveX || e.screenY !== lastMoveY) {
+          lastMoveX = e.screenX;
+          lastMoveY = e.screenY;
+          handleActivity();
+        }
+      };
+
+      var handleMouseDown = function handleMouseDown() {
+        handleActivity();
+        // For as long as the they are touching the device or have their mouse down,
+        // we consider them active even if they're not moving their finger or mouse.
+        // So we want to continue to update that they are active
+        this.clearInterval(mouseInProgress);
+        // Setting userActivity=true now and setting the interval to the same time
+        // as the activityCheck interval (250) should ensure we never miss the
+        // next activityCheck
+        mouseInProgress = this.setInterval(handleActivity, 250);
+      };
+
+      var handleMouseUp = function handleMouseUp(event) {
+        handleActivity();
+        // Stop the interval that maintains activity if the mouse/touch is down
+        this.clearInterval(mouseInProgress);
+      };
+
+      // Any mouse movement will be considered user activity
+      this.on('mousedown', handleMouseDown);
+      this.on('mousemove', handleMouseMove);
+      this.on('mouseup', handleMouseUp);
+
+      // Listen for keyboard navigation
+      // Shouldn't need to use inProgress interval because of key repeat
+      this.on('keydown', handleActivity);
+      this.on('keyup', handleActivity);
+
+      // Run an interval every 250 milliseconds instead of stuffing everything into
+      // the mousemove/touchmove function itself, to prevent performance degradation.
+      // `this.reportUserActivity` simply sets this.userActivity_ to true, which
+      // then gets picked up by this loop
+      // http://ejohn.org/blog/learning-from-twitter/
+      var inactivityTimeout = void 0;
+
+      this.setInterval(function () {
+        // Check to see if mouse/touch activity has happened
+        if (!this.userActivity_) {
+          return;
+        }
+
+        // Reset the activity tracker
+        this.userActivity_ = false;
+
+        // If the user state was inactive, set the state to active
+        this.userActive(true);
+
+        // Clear any existing inactivity timeout to start the timer over
+        this.clearTimeout(inactivityTimeout);
+
+        var timeout = this.options_.inactivityTimeout;
+
+        if (timeout <= 0) {
+          return;
+        }
+
+        // In <timeout> milliseconds, if no more activity has occurred the
+        // user will be considered inactive
+        inactivityTimeout = this.setTimeout(function () {
+          // Protect against the case where the inactivityTimeout can trigger just
+          // before the next user activity is picked up by the activity check loop
+          // causing a flicker
+          if (!this.userActivity_) {
+            this.userActive(false);
+          }
+        }, timeout);
+      }, 250);
+    };
+
+    /**
+     * Gets or sets the current playback rate. A playback rate of
+     * 1.0 represents normal speed and 0.5 would indicate half-speed
+     * playback, for instance.
+     *
+     * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate
+     *
+     * @param {number} [rate]
+     *       New playback rate to set.
+     *
+     * @return {number}
+     *         The current playback rate when getting or 1.0
+     */
+
+
+    Player.prototype.playbackRate = function playbackRate(rate) {
+      if (rate !== undefined) {
+        // NOTE: this.cache_.lastPlaybackRate is set from the tech handler
+        // that is registered above
+        this.techCall_('setPlaybackRate', rate);
+        return;
+      }
+
+      if (this.tech_ && this.tech_.featuresPlaybackRate) {
+        return this.cache_.lastPlaybackRate || this.techGet_('playbackRate');
+      }
+      return 1.0;
+    };
+
+    /**
+     * Gets or sets the current default playback rate. A default playback rate of
+     * 1.0 represents normal speed and 0.5 would indicate half-speed playback, for instance.
+     * defaultPlaybackRate will only represent what the initial playbackRate of a video was, not
+     * not the current playbackRate.
+     *
+     * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-defaultplaybackrate
+     *
+     * @param {number} [rate]
+     *       New default playback rate to set.
+     *
+     * @return {number|Player}
+     *         - The default playback rate when getting or 1.0
+     *         - the player when setting
+     */
+
+
+    Player.prototype.defaultPlaybackRate = function defaultPlaybackRate(rate) {
+      if (rate !== undefined) {
+        return this.techCall_('setDefaultPlaybackRate', rate);
+      }
+
+      if (this.tech_ && this.tech_.featuresPlaybackRate) {
+        return this.techGet_('defaultPlaybackRate');
+      }
+      return 1.0;
+    };
+
+    /**
+     * Gets or sets the audio flag
+     *
+     * @param {boolean} bool
+     *        - true signals that this is an audio player
+     *        - false signals that this is not an audio player
+     *
+     * @return {boolean}
+     *         The current value of isAudio when getting
+     */
+
+
+    Player.prototype.isAudio = function isAudio(bool) {
+      if (bool !== undefined) {
+        this.isAudio_ = !!bool;
+        return;
+      }
+
+      return !!this.isAudio_;
+    };
+
+    /**
+     * A helper method for adding a {@link TextTrack} to our
+     * {@link TextTrackList}.
+     *
+     * In addition to the W3C settings we allow adding additional info through options.
+     *
+     * @see http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack
+     *
+     * @param {string} [kind]
+     *        the kind of TextTrack you are adding
+     *
+     * @param {string} [label]
+     *        the label to give the TextTrack label
+     *
+     * @param {string} [language]
+     *        the language to set on the TextTrack
+     *
+     * @return {TextTrack|undefined}
+     *         the TextTrack that was added or undefined
+     *         if there is no tech
+     */
+
+
+    Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {
+      if (this.tech_) {
+        return this.tech_.addTextTrack(kind, label, language);
+      }
+    };
+
+    /**
+     * Create a remote {@link TextTrack} and an {@link HTMLTrackElement}. It will
+     * automatically removed from the video element whenever the source changes, unless
+     * manualCleanup is set to false.
+     *
+     * @param {Object} options
+     *        Options to pass to {@link HTMLTrackElement} during creation. See
+     *        {@link HTMLTrackElement} for object properties that you should use.
+     *
+     * @param {boolean} [manualCleanup=true] if set to false, the TextTrack will be
+     *
+     * @return {HtmlTrackElement}
+     *         the HTMLTrackElement that was created and added
+     *         to the HtmlTrackElementList and the remote
+     *         TextTrackList
+     *
+     * @deprecated The default value of the "manualCleanup" parameter will default
+     *             to "false" in upcoming versions of Video.js
+     */
+
+
+    Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {
+      if (this.tech_) {
+        return this.tech_.addRemoteTextTrack(options, manualCleanup);
+      }
+    };
+
+    /**
+     * Remove a remote {@link TextTrack} from the respective
+     * {@link TextTrackList} and {@link HtmlTrackElementList}.
+     *
+     * @param {Object} track
+     *        Remote {@link TextTrack} to remove
+     *
+     * @return {undefined}
+     *         does not return anything
+     */
+
+
+    Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack() {
+      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+        _ref3$track = _ref3.track,
+        track = _ref3$track === undefined ? arguments[0] : _ref3$track;
+
+      // destructure the input into an object with a track argument, defaulting to arguments[0]
+      // default the whole argument to an empty object if nothing was passed in
+
+      if (this.tech_) {
+        return this.tech_.removeRemoteTextTrack(track);
+      }
+    };
+
+    /**
+     * Gets available media playback quality metrics as specified by the W3C's Media
+     * Playback Quality API.
+     *
+     * @see [Spec]{@link https://wicg.github.io/media-playback-quality}
+     *
+     * @return {Object|undefined}
+     *         An object with supported media playback quality metrics or undefined if there
+     *         is no tech or the tech does not support it.
+     */
+
+
+    Player.prototype.getVideoPlaybackQuality = function getVideoPlaybackQuality() {
+      return this.techGet_('getVideoPlaybackQuality');
+    };
+
+    /**
+     * Get video width
+     *
+     * @return {number}
+     *         current video width
+     */
+
+
+    Player.prototype.videoWidth = function videoWidth() {
+      return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;
+    };
+
+    /**
+     * Get video height
+     *
+     * @return {number}
+     *         current video height
+     */
+
+
+    Player.prototype.videoHeight = function videoHeight() {
+      return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;
+    };
+
+    /**
+     * The player's language code
+     * NOTE: The language should be set in the player options if you want the
+     * the controls to be built with a specific language. Changing the language
+     * later will not update controls text.
+     *
+     * @param {string} [code]
+     *        the language code to set the player to
+     *
+     * @return {string}
+     *         The current language code when getting
+     */
+
+
+    Player.prototype.language = function language(code) {
+      if (code === undefined) {
+        return this.language_;
+      }
+
+      this.language_ = String(code).toLowerCase();
+    };
+
+    /**
+     * Get the player's language dictionary
+     * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time
+     * Languages specified directly in the player options have precedence
+     *
+     * @return {Array}
+     *         An array of of supported languages
+     */
+
+
+    Player.prototype.languages = function languages() {
+      return mergeOptions(Player.prototype.options_.languages, this.languages_);
+    };
+
+    /**
+     * returns a JavaScript object reperesenting the current track
+     * information. **DOES not return it as JSON**
+     *
+     * @return {Object}
+     *         Object representing the current of track info
+     */
+
+
+    Player.prototype.toJSON = function toJSON() {
+      var options = mergeOptions(this.options_);
+      var tracks = options.tracks;
+
+      options.tracks = [];
+
+      for (var i = 0; i < tracks.length; i++) {
+        var track = tracks[i];
+
+        // deep merge tracks and null out player so no circular references
+        track = mergeOptions(track);
+        track.player = undefined;
+        options.tracks[i] = track;
+      }
+
+      return options;
+    };
+
+    /**
+     * Creates a simple modal dialog (an instance of the {@link ModalDialog}
+     * component) that immediately overlays the player with arbitrary
+     * content and removes itself when closed.
+     *
+     * @param {string|Function|Element|Array|null} content
+     *        Same as {@link ModalDialog#content}'s param of the same name.
+     *        The most straight-forward usage is to provide a string or DOM
+     *        element.
+     *
+     * @param {Object} [options]
+     *        Extra options which will be passed on to the {@link ModalDialog}.
+     *
+     * @return {ModalDialog}
+     *         the {@link ModalDialog} that was created
+     */
+
+
+    Player.prototype.createModal = function createModal(content, options) {
+      var _this10 = this;
+
+      options = options || {};
+      options.content = content || '';
+
+      var modal = new ModalDialog(this, options);
+
+      this.addChild(modal);
+      modal.on('dispose', function () {
+        _this10.removeChild(modal);
+      });
+
+      modal.open();
+      return modal;
+    };
+
+    /**
+     * Gets tag settings
+     *
+     * @param {Element} tag
+     *        The player tag
+     *
+     * @return {Object}
+     *         An object containing all of the settings
+     *         for a player tag
+     */
+
+
+    Player.getTagSettings = function getTagSettings(tag) {
+      var baseOptions = {
+        sources: [],
+        tracks: []
+      };
+
+      var tagOptions = getAttributes(tag);
+      var dataSetup = tagOptions['data-setup'];
+
+      if (hasClass(tag, 'vjs-fluid')) {
+        tagOptions.fluid = true;
+      }
+
+      // Check if data-setup attr exists.
+      if (dataSetup !== null) {
+        // Parse options JSON
+        // If empty string, make it a parsable json object.
+        var _safeParseTuple = tuple(dataSetup || '{}'),
+          err = _safeParseTuple[0],
+          data = _safeParseTuple[1];
+
+        if (err) {
+          log$1.error(err);
+        }
+        assign(tagOptions, data);
+      }
+
+      assign(baseOptions, tagOptions);
+
+      // Get tag children settings
+      if (tag.hasChildNodes()) {
+        var children = tag.childNodes;
+
+        for (var i = 0, j = children.length; i < j; i++) {
+          var child = children[i];
+          // Change case needed: http://ejohn.org/blog/nodename-case-sensitivity/
+          var childName = child.nodeName.toLowerCase();
+
+          if (childName === 'source') {
+            baseOptions.sources.push(getAttributes(child));
+          } else if (childName === 'track') {
+            baseOptions.tracks.push(getAttributes(child));
+          }
+        }
+      }
+
+      return baseOptions;
+    };
+
+    /**
+     * Determine whether or not flexbox is supported
+     *
+     * @return {boolean}
+     *         - true if flexbox is supported
+     *         - false if flexbox is not supported
+     */
+
+
+    Player.prototype.flexNotSupported_ = function flexNotSupported_() {
+      var elem = document_1.createElement('i');
+
+      // Note: We don't actually use flexBasis (or flexOrder), but it's one of the more
+      // common flex features that we can rely on when checking for flex support.
+      return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style ||
+        // IE10-specific (2012 flex spec), available for completeness
+        'msFlexOrder' in elem.style);
+    };
+
+    return Player;
+  }(Component);
+
+  /**
+   * Get the {@link VideoTrackList}
+   * @link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist
+   *
+   * @return {VideoTrackList}
+   *         the current video track list
+   *
+   * @method Player.prototype.videoTracks
+   */
+
+  /**
+   * Get the {@link AudioTrackList}
+   * @link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist
+   *
+   * @return {AudioTrackList}
+   *         the current audio track list
+   *
+   * @method Player.prototype.audioTracks
+   */
+
+  /**
+   * Get the {@link TextTrackList}
+   *
+   * @link http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks
+   *
+   * @return {TextTrackList}
+   *         the current text track list
+   *
+   * @method Player.prototype.textTracks
+   */
+
+  /**
+   * Get the remote {@link TextTrackList}
+   *
+   * @return {TextTrackList}
+   *         The current remote text track list
+   *
+   * @method Player.prototype.remoteTextTracks
+   */
+
+  /**
+   * Get the remote {@link HtmlTrackElementList} tracks.
+   *
+   * @return {HtmlTrackElementList}
+   *         The current remote text track element list
+   *
+   * @method Player.prototype.remoteTextTrackEls
+   */
+
+  ALL.names.forEach(function (name$$1) {
+    var props = ALL[name$$1];
+
+    Player.prototype[props.getterName] = function () {
+      if (this.tech_) {
+        return this.tech_[props.getterName]();
+      }
+
+      // if we have not yet loadTech_, we create {video,audio,text}Tracks_
+      // these will be passed to the tech during loading
+      this[props.privateName] = this[props.privateName] || new props.ListClass();
+      return this[props.privateName];
+    };
+  });
+
+  /**
+   * Global player list
+   *
+   * @type {Object}
+   */
+  Player.players = {};
+
+  var navigator = window_1.navigator;
+
+  /*
+   * Player instance options, surfaced using options
+   * options = Player.prototype.options_
+   * Make changes in options, not here.
+   *
+   * @type {Object}
+   * @private
+   */
+  Player.prototype.options_ = {
+    // Default order of fallback technology
+    techOrder: Tech.defaultTechOrder_,
+
+    html5: {},
+    flash: {},
+
+    // default inactivity timeout
+    inactivityTimeout: 2000,
+
+    // default playback rates
+    playbackRates: [],
+    // Add playback rate selection by adding rates
+    // 'playbackRates': [0.5, 1, 1.5, 2],
+
+    // Included control sets
+    children: ['mediaLoader', 'posterImage', 'textTrackDisplay', 'loadingSpinner', 'bigPlayButton', 'controlBar', 'errorDisplay', 'textTrackSettings', 'resizeManager'],
+
+    language: navigator && (navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language) || 'en',
+
+    // locales and their language translations
+    languages: {},
+
+    // Default message to show when a video cannot be played.
+    notSupportedMessage: 'No compatible source was found for this media.'
+  };
+
+  [
+    /**
+     * Returns whether or not the player is in the "ended" state.
+     *
+     * @return {Boolean} True if the player is in the ended state, false if not.
+     * @method Player#ended
+     */
+    'ended',
+    /**
+     * Returns whether or not the player is in the "seeking" state.
+     *
+     * @return {Boolean} True if the player is in the seeking state, false if not.
+     * @method Player#seeking
+     */
+    'seeking',
+    /**
+     * Returns the TimeRanges of the media that are currently available
+     * for seeking to.
+     *
+     * @return {TimeRanges} the seekable intervals of the media timeline
+     * @method Player#seekable
+     */
+    'seekable',
+    /**
+     * Returns the current state of network activity for the element, from
+     * the codes in the list below.
+     * - NETWORK_EMPTY (numeric value 0)
+     *   The element has not yet been initialised. All attributes are in
+     *   their initial states.
+     * - NETWORK_IDLE (numeric value 1)
+     *   The element's resource selection algorithm is active and has
+     *   selected a resource, but it is not actually using the network at
+     *   this time.
+     * - NETWORK_LOADING (numeric value 2)
+     *   The user agent is actively trying to download data.
+     * - NETWORK_NO_SOURCE (numeric value 3)
+     *   The element's resource selection algorithm is active, but it has
+     *   not yet found a resource to use.
+     *
+     * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states
+     * @return {number} the current network activity state
+     * @method Player#networkState
+     */
+    'networkState',
+    /**
+     * Returns a value that expresses the current state of the element
+     * with respect to rendering the current playback position, from the
+     * codes in the list below.
+     * - HAVE_NOTHING (numeric value 0)
+     *   No information regarding the media resource is available.
+     * - HAVE_METADATA (numeric value 1)
+     *   Enough of the resource has been obtained that the duration of the
+     *   resource is available.
+     * - HAVE_CURRENT_DATA (numeric value 2)
+     *   Data for the immediate current playback position is available.
+     * - HAVE_FUTURE_DATA (numeric value 3)
+     *   Data for the immediate current playback position is available, as
+     *   well as enough data for the user agent to advance the current
+     *   playback position in the direction of playback.
+     * - HAVE_ENOUGH_DATA (numeric value 4)
+     *   The user agent estimates that enough data is available for
+     *   playback to proceed uninterrupted.
+     *
+     * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate
+     * @return {number} the current playback rendering state
+     * @method Player#readyState
+     */
+    'readyState'].forEach(function (fn) {
+    Player.prototype[fn] = function () {
+      return this.techGet_(fn);
+    };
+  });
+
+  TECH_EVENTS_RETRIGGER.forEach(function (event) {
+    Player.prototype['handleTech' + toTitleCase(event) + '_'] = function () {
+      return this.trigger(event);
+    };
+  });
+
+  /**
+   * Fired when the player has initial duration and dimension information
+   *
+   * @event Player#loadedmetadata
+   * @type {EventTarget~Event}
+   */
+
+  /**
+   * Fired when the player has downloaded data at the current playback position
+   *
+   * @event Player#loadeddata
+   * @type {EventTarget~Event}
+   */
+
+  /**
+   * Fired when the current playback position has changed *
+   * During playback this is fired every 15-250 milliseconds, depending on the
+   * playback technology in use.
+   *
+   * @event Player#timeupdate
+   * @type {EventTarget~Event}
+   */
+
+  /**
+   * Fired when the volume changes
+   *
+   * @event Player#volumechange
+   * @type {EventTarget~Event}
+   */
+
+  /**
+   * Reports whether or not a player has a plugin available.
+   *
+   * This does not report whether or not the plugin has ever been initialized
+   * on this player. For that, [usingPlugin]{@link Player#usingPlugin}.
+   *
+   * @method Player#hasPlugin
+   * @param  {string}  name
+   *         The name of a plugin.
+   *
+   * @return {boolean}
+   *         Whether or not this player has the requested plugin available.
+   */
+
+  /**
+   * Reports whether or not a player is using a plugin by name.
+   *
+   * For basic plugins, this only reports whether the plugin has _ever_ been
+   * initialized on this player.
+   *
+   * @method Player#usingPlugin
+   * @param  {string} name
+   *         The name of a plugin.
+   *
+   * @return {boolean}
+   *         Whether or not this player is using the requested plugin.
+   */
+
+  Component.registerComponent('Player', Player);
+
+  /**
+   * @file plugin.js
+   */
+
+  /**
+   * The base plugin name.
+   *
+   * @private
+   * @constant
+   * @type {string}
+   */
+  var BASE_PLUGIN_NAME = 'plugin';
+
+  /**
+   * The key on which a player's active plugins cache is stored.
+   *
+   * @private
+   * @constant
+   * @type     {string}
+   */
+  var PLUGIN_CACHE_KEY = 'activePlugins_';
+
+  /**
+   * Stores registered plugins in a private space.
+   *
+   * @private
+   * @type    {Object}
+   */
+  var pluginStorage = {};
+
+  /**
+   * Reports whether or not a plugin has been registered.
+   *
+   * @private
+   * @param   {string} name
+   *          The name of a plugin.
+   *
+   * @returns {boolean}
+   *          Whether or not the plugin has been registered.
+   */
+  var pluginExists = function pluginExists(name) {
+    return pluginStorage.hasOwnProperty(name);
+  };
+
+  /**
+   * Get a single registered plugin by name.
+   *
+   * @private
+   * @param   {string} name
+   *          The name of a plugin.
+   *
+   * @returns {Function|undefined}
+   *          The plugin (or undefined).
+   */
+  var getPlugin = function getPlugin(name) {
+    return pluginExists(name) ? pluginStorage[name] : undefined;
+  };
+
+  /**
+   * Marks a plugin as "active" on a player.
+   *
+   * Also, ensures that the player has an object for tracking active plugins.
+   *
+   * @private
+   * @param   {Player} player
+   *          A Video.js player instance.
+   *
+   * @param   {string} name
+   *          The name of a plugin.
+   */
+  var markPluginAsActive = function markPluginAsActive(player, name) {
+    player[PLUGIN_CACHE_KEY] = player[PLUGIN_CACHE_KEY] || {};
+    player[PLUGIN_CACHE_KEY][name] = true;
+  };
+
+  /**
+   * Triggers a pair of plugin setup events.
+   *
+   * @private
+   * @param  {Player} player
+   *         A Video.js player instance.
+   *
+   * @param  {Plugin~PluginEventHash} hash
+   *         A plugin event hash.
+   *
+   * @param  {Boolean} [before]
+   *         If true, prefixes the event name with "before". In other words,
+   *         use this to trigger "beforepluginsetup" instead of "pluginsetup".
+   */
+  var triggerSetupEvent = function triggerSetupEvent(player, hash, before) {
+    var eventName = (before ? 'before' : '') + 'pluginsetup';
+
+    player.trigger(eventName, hash);
+    player.trigger(eventName + ':' + hash.name, hash);
+  };
+
+  /**
+   * Takes a basic plugin function and returns a wrapper function which marks
+   * on the player that the plugin has been activated.
+   *
+   * @private
+   * @param   {string} name
+   *          The name of the plugin.
+   *
+   * @param   {Function} plugin
+   *          The basic plugin.
+   *
+   * @returns {Function}
+   *          A wrapper function for the given plugin.
+   */
+  var createBasicPlugin = function createBasicPlugin(name, plugin) {
+    var basicPluginWrapper = function basicPluginWrapper() {
+
+      // We trigger the "beforepluginsetup" and "pluginsetup" events on the player
+      // regardless, but we want the hash to be consistent with the hash provided
+      // for advanced plugins.
+      //
+      // The only potentially counter-intuitive thing here is the `instance` in
+      // the "pluginsetup" event is the value returned by the `plugin` function.
+      triggerSetupEvent(this, {name: name, plugin: plugin, instance: null}, true);
+
+      var instance = plugin.apply(this, arguments);
+
+      markPluginAsActive(this, name);
+      triggerSetupEvent(this, {name: name, plugin: plugin, instance: instance});
+
+      return instance;
+    };
+
+    Object.keys(plugin).forEach(function (prop) {
+      basicPluginWrapper[prop] = plugin[prop];
+    });
+
+    return basicPluginWrapper;
+  };
+
+  /**
+   * Takes a plugin sub-class and returns a factory function for generating
+   * instances of it.
+   *
+   * This factory function will replace itself with an instance of the requested
+   * sub-class of Plugin.
+   *
+   * @private
+   * @param   {string} name
+   *          The name of the plugin.
+   *
+   * @param   {Plugin} PluginSubClass
+   *          The advanced plugin.
+   *
+   * @returns {Function}
+   */
+  var createPluginFactory = function createPluginFactory(name, PluginSubClass) {
+
+    // Add a `name` property to the plugin prototype so that each plugin can
+    // refer to itself by name.
+    PluginSubClass.prototype.name = name;
+
+    return function () {
+      triggerSetupEvent(this, {name: name, plugin: PluginSubClass, instance: null}, true);
+
+      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+        args[_key] = arguments[_key];
+      }
+
+      var instance = new (Function.prototype.bind.apply(PluginSubClass, [null].concat([this].concat(args))))();
+
+      // The plugin is replaced by a function that returns the current instance.
+      this[name] = function () {
+        return instance;
+      };
+
+      triggerSetupEvent(this, instance.getEventHash());
+
+      return instance;
+    };
+  };
+
+  /**
+   * Parent class for all advanced plugins.
+   *
+   * @mixes   module:evented~EventedMixin
+   * @mixes   module:stateful~StatefulMixin
+   * @fires   Player#beforepluginsetup
+   * @fires   Player#beforepluginsetup:$name
+   * @fires   Player#pluginsetup
+   * @fires   Player#pluginsetup:$name
+   * @listens Player#dispose
+   * @throws  {Error}
+   *          If attempting to instantiate the base {@link Plugin} class
+   *          directly instead of via a sub-class.
+   */
+
+  var Plugin = function () {
+
+    /**
+     * Creates an instance of this class.
+     *
+     * Sub-classes should call `super` to ensure plugins are properly initialized.
+     *
+     * @param {Player} player
+     *        A Video.js player instance.
+     */
+    function Plugin(player) {
+      classCallCheck(this, Plugin);
+
+      if (this.constructor === Plugin) {
+        throw new Error('Plugin must be sub-classed; not directly instantiated.');
+      }
+
+      this.player = player;
+
+      // Make this object evented, but remove the added `trigger` method so we
+      // use the prototype version instead.
+      evented(this);
+      delete this.trigger;
+
+      stateful(this, this.constructor.defaultState);
+      markPluginAsActive(player, this.name);
+
+      // Auto-bind the dispose method so we can use it as a listener and unbind
+      // it later easily.
+      this.dispose = bind(this, this.dispose);
+
+      // If the player is disposed, dispose the plugin.
+      player.on('dispose', this.dispose);
+    }
+
+    /**
+     * Get the version of the plugin that was set on <pluginName>.VERSION
+     */
+
+
+    Plugin.prototype.version = function version() {
+      return this.constructor.VERSION;
+    };
+
+    /**
+     * Each event triggered by plugins includes a hash of additional data with
+     * conventional properties.
+     *
+     * This returns that object or mutates an existing hash.
+     *
+     * @param   {Object} [hash={}]
+     *          An object to be used as event an event hash.
+     *
+     * @returns {Plugin~PluginEventHash}
+     *          An event hash object with provided properties mixed-in.
+     */
+
+
+    Plugin.prototype.getEventHash = function getEventHash() {
+      var hash = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+      hash.name = this.name;
+      hash.plugin = this.constructor;
+      hash.instance = this;
+      return hash;
+    };
+
+    /**
+     * Triggers an event on the plugin object and overrides
+     * {@link module:evented~EventedMixin.trigger|EventedMixin.trigger}.
+     *
+     * @param   {string|Object} event
+     *          An event type or an object with a type property.
+     *
+     * @param   {Object} [hash={}]
+     *          Additional data hash to merge with a
+     *          {@link Plugin~PluginEventHash|PluginEventHash}.
+     *
+     * @returns {boolean}
+     *          Whether or not default was prevented.
+     */
+
+
+    Plugin.prototype.trigger = function trigger$$1(event) {
+      var hash = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+      return trigger(this.eventBusEl_, event, this.getEventHash(hash));
+    };
+
+    /**
+     * Handles "statechanged" events on the plugin. No-op by default, override by
+     * subclassing.
+     *
+     * @abstract
+     * @param    {Event} e
+     *           An event object provided by a "statechanged" event.
+     *
+     * @param    {Object} e.changes
+     *           An object describing changes that occurred with the "statechanged"
+     *           event.
+     */
+
+
+    Plugin.prototype.handleStateChanged = function handleStateChanged(e) {
+    };
+
+    /**
+     * Disposes a plugin.
+     *
+     * Subclasses can override this if they want, but for the sake of safety,
+     * it's probably best to subscribe the "dispose" event.
+     *
+     * @fires Plugin#dispose
+     */
+
+
+    Plugin.prototype.dispose = function dispose() {
+      var name = this.name,
+        player = this.player;
+
+      /**
+       * Signals that a advanced plugin is about to be disposed.
+       *
+       * @event Plugin#dispose
+       * @type  {EventTarget~Event}
+       */
+
+      this.trigger('dispose');
+      this.off();
+      player.off('dispose', this.dispose);
+
+      // Eliminate any possible sources of leaking memory by clearing up
+      // references between the player and the plugin instance and nulling out
+      // the plugin's state and replacing methods with a function that throws.
+      player[PLUGIN_CACHE_KEY][name] = false;
+      this.player = this.state = null;
+
+      // Finally, replace the plugin name on the player with a new factory
+      // function, so that the plugin is ready to be set up again.
+      player[name] = createPluginFactory(name, pluginStorage[name]);
+    };
+
+    /**
+     * Determines if a plugin is a basic plugin (i.e. not a sub-class of `Plugin`).
+     *
+     * @param   {string|Function} plugin
+     *          If a string, matches the name of a plugin. If a function, will be
+     *          tested directly.
+     *
+     * @returns {boolean}
+     *          Whether or not a plugin is a basic plugin.
+     */
+
+
+    Plugin.isBasic = function isBasic(plugin) {
+      var p = typeof plugin === 'string' ? getPlugin(plugin) : plugin;
+
+      return typeof p === 'function' && !Plugin.prototype.isPrototypeOf(p.prototype);
+    };
+
+    /**
+     * Register a Video.js plugin.
+     *
+     * @param   {string} name
+     *          The name of the plugin to be registered. Must be a string and
+     *          must not match an existing plugin or a method on the `Player`
+     *          prototype.
+     *
+     * @param   {Function} plugin
+     *          A sub-class of `Plugin` or a function for basic plugins.
+     *
+     * @returns {Function}
+     *          For advanced plugins, a factory function for that plugin. For
+     *          basic plugins, a wrapper function that initializes the plugin.
+     */
+
+
+    Plugin.registerPlugin = function registerPlugin(name, plugin) {
+      if (typeof name !== 'string') {
+        throw new Error('Illegal plugin name, "' + name + '", must be a string, was ' + (typeof name === 'undefined' ? 'undefined' : _typeof(name)) + '.');
+      }
+
+      if (pluginExists(name)) {
+        log$1.warn('A plugin named "' + name + '" already exists. You may want to avoid re-registering plugins!');
+      } else if (Player.prototype.hasOwnProperty(name)) {
+        throw new Error('Illegal plugin name, "' + name + '", cannot share a name with an existing player method!');
+      }
+
+      if (typeof plugin !== 'function') {
+        throw new Error('Illegal plugin for "' + name + '", must be a function, was ' + (typeof plugin === 'undefined' ? 'undefined' : _typeof(plugin)) + '.');
+      }
+
+      pluginStorage[name] = plugin;
+
+      // Add a player prototype method for all sub-classed plugins (but not for
+      // the base Plugin class).
+      if (name !== BASE_PLUGIN_NAME) {
+        if (Plugin.isBasic(plugin)) {
+          Player.prototype[name] = createBasicPlugin(name, plugin);
+        } else {
+          Player.prototype[name] = createPluginFactory(name, plugin);
+        }
+      }
+
+      return plugin;
+    };
+
+    /**
+     * De-register a Video.js plugin.
+     *
+     * @param {string} name
+     *        The name of the plugin to be deregistered.
+     */
+
+
+    Plugin.deregisterPlugin = function deregisterPlugin(name) {
+      if (name === BASE_PLUGIN_NAME) {
+        throw new Error('Cannot de-register base plugin.');
+      }
+      if (pluginExists(name)) {
+        delete pluginStorage[name];
+        delete Player.prototype[name];
+      }
+    };
+
+    /**
+     * Gets an object containing multiple Video.js plugins.
+     *
+     * @param   {Array} [names]
+     *          If provided, should be an array of plugin names. Defaults to _all_
+     *          plugin names.
+     *
+     * @returns {Object|undefined}
+     *          An object containing plugin(s) associated with their name(s) or
+     *          `undefined` if no matching plugins exist).
+     */
+
+
+    Plugin.getPlugins = function getPlugins() {
+      var names = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.keys(pluginStorage);
+
+      var result = void 0;
+
+      names.forEach(function (name) {
+        var plugin = getPlugin(name);
+
+        if (plugin) {
+          result = result || {};
+          result[name] = plugin;
+        }
+      });
+
+      return result;
+    };
+
+    /**
+     * Gets a plugin's version, if available
+     *
+     * @param   {string} name
+     *          The name of a plugin.
+     *
+     * @returns {string}
+     *          The plugin's version or an empty string.
+     */
+
+
+    Plugin.getPluginVersion = function getPluginVersion(name) {
+      var plugin = getPlugin(name);
+
+      return plugin && plugin.VERSION || '';
+    };
+
+    return Plugin;
+  }();
+
+  /**
+   * Gets a plugin by name if it exists.
+   *
+   * @static
+   * @method   getPlugin
+   * @memberOf Plugin
+   * @param    {string} name
+   *           The name of a plugin.
+   *
+   * @returns  {Function|undefined}
+   *           The plugin (or `undefined`).
+   */
+
+
+  Plugin.getPlugin = getPlugin;
+
+  /**
+   * The name of the base plugin class as it is registered.
+   *
+   * @type {string}
+   */
+  Plugin.BASE_PLUGIN_NAME = BASE_PLUGIN_NAME;
+
+  Plugin.registerPlugin(BASE_PLUGIN_NAME, Plugin);
+
+  /**
+   * Documented in player.js
+   *
+   * @ignore
+   */
+  Player.prototype.usingPlugin = function (name) {
+    return !!this[PLUGIN_CACHE_KEY] && this[PLUGIN_CACHE_KEY][name] === true;
+  };
+
+  /**
+   * Documented in player.js
+   *
+   * @ignore
+   */
+  Player.prototype.hasPlugin = function (name) {
+    return !!pluginExists(name);
+  };
+
+  /**
+   * @file extend.js
+   * @module extend
+   */
+
+  /**
+   * A combination of node inherits and babel's inherits (after transpile).
+   * Both work the same but node adds `super_` to the subClass
+   * and Bable adds the superClass as __proto__. Both seem useful.
+   *
+   * @param {Object} subClass
+   *        The class to inherit to
+   *
+   * @param {Object} superClass
+   *        The class to inherit from
+   *
+   * @private
+   */
+  var _inherits = function _inherits(subClass, superClass) {
+    if (typeof superClass !== 'function' && superClass !== null) {
+      throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));
+    }
+
+    subClass.prototype = Object.create(superClass && superClass.prototype, {
+      constructor: {
+        value: subClass,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+
+    if (superClass) {
+      // node
+      subClass.super_ = superClass;
+    }
+  };
+
+  /**
+   * Function for subclassing using the same inheritance that
+   * videojs uses internally
+   *
+   * @static
+   * @const
+   *
+   * @param {Object} superClass
+   *        The class to inherit from
+   *
+   * @param {Object} [subClassMethods={}]
+   *        The class to inherit to
+   *
+   * @return {Object}
+   *         The new object with subClassMethods that inherited superClass.
+   */
+  var extendFn = function extendFn(superClass) {
+    var subClassMethods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+    var subClass = function subClass() {
+      superClass.apply(this, arguments);
+    };
+
+    var methods = {};
+
+    if ((typeof subClassMethods === 'undefined' ? 'undefined' : _typeof(subClassMethods)) === 'object') {
+      if (subClassMethods.constructor !== Object.prototype.constructor) {
+        subClass = subClassMethods.constructor;
+      }
+      methods = subClassMethods;
+    } else if (typeof subClassMethods === 'function') {
+      subClass = subClassMethods;
+    }
+
+    _inherits(subClass, superClass);
+
+    // Extend subObj's prototype with functions and other properties from props
+    for (var name in methods) {
+      if (methods.hasOwnProperty(name)) {
+        subClass.prototype[name] = methods[name];
+      }
+    }
+
+    return subClass;
+  };
+
+  /**
+   * @file video.js
+   * @module videojs
+   */
+
+  /**
+   * Normalize an `id` value by trimming off a leading `#`
+   *
+   * @param   {string} id
+   *          A string, maybe with a leading `#`.
+   *
+   * @returns {string}
+   *          The string, without any leading `#`.
+   */
+  var normalizeId = function normalizeId(id) {
+    return id.indexOf('#') === 0 ? id.slice(1) : id;
+  };
+
+  /**
+   * Doubles as the main function for users to create a player instance and also
+   * the main library object.
+   * The `videojs` function can be used to initialize or retrieve a player.
+   *
+   * @param {string|Element} id
+   *        Video element or video element ID
+   *
+   * @param {Object} [options]
+   *        Optional options object for config/settings
+   *
+   * @param {Component~ReadyCallback} [ready]
+   *        Optional ready callback
+   *
+   * @return {Player}
+   *         A player instance
+   */
+  function videojs$1(id, options, ready) {
+    var player = videojs$1.getPlayer(id);
+
+    if (player) {
+      if (options) {
+        log$1.warn('Player "' + id + '" is already initialised. Options will not be applied.');
+      }
+      if (ready) {
+        player.ready(ready);
+      }
+      return player;
+    }
+
+    var el = typeof id === 'string' ? $('#' + normalizeId(id)) : id;
+
+    if (!isEl(el)) {
+      throw new TypeError('The element or ID supplied is not valid. (videojs)');
+    }
+
+    if (!document_1.body.contains(el)) {
+      log$1.warn('The element supplied is not included in the DOM');
+    }
+
+    options = options || {};
+
+    videojs$1.hooks('beforesetup').forEach(function (hookFunction) {
+      var opts = hookFunction(el, mergeOptions(options));
+
+      if (!isObject(opts) || Array.isArray(opts)) {
+        log$1.error('please return an object in beforesetup hooks');
+        return;
+      }
+
+      options = mergeOptions(options, opts);
+    });
+
+    // We get the current "Player" component here in case an integration has
+    // replaced it with a custom player.
+    var PlayerComponent = Component.getComponent('Player');
+
+    player = new PlayerComponent(el, options, ready);
+
+    videojs$1.hooks('setup').forEach(function (hookFunction) {
+      return hookFunction(player);
+    });
+
+    return player;
+  }
+
+  /**
+   * An Object that contains lifecycle hooks as keys which point to an array
+   * of functions that are run when a lifecycle is triggered
+   */
+  videojs$1.hooks_ = {};
+
+  /**
+   * Get a list of hooks for a specific lifecycle
+   * @function videojs.hooks
+   *
+   * @param {string} type
+   *        the lifecyle to get hooks from
+   *
+   * @param {Function|Function[]} [fn]
+   *        Optionally add a hook (or hooks) to the lifecycle that your are getting.
+   *
+   * @return {Array}
+   *         an array of hooks, or an empty array if there are none.
+   */
+  videojs$1.hooks = function (type, fn) {
+    videojs$1.hooks_[type] = videojs$1.hooks_[type] || [];
+    if (fn) {
+      videojs$1.hooks_[type] = videojs$1.hooks_[type].concat(fn);
+    }
+    return videojs$1.hooks_[type];
+  };
+
+  /**
+   * Add a function hook to a specific videojs lifecycle.
+   *
+   * @param {string} type
+   *        the lifecycle to hook the function to.
+   *
+   * @param {Function|Function[]}
+   *        The function or array of functions to attach.
+   */
+  videojs$1.hook = function (type, fn) {
+    videojs$1.hooks(type, fn);
+  };
+
+  /**
+   * Add a function hook that will only run once to a specific videojs lifecycle.
+   *
+   * @param {string} type
+   *        the lifecycle to hook the function to.
+   *
+   * @param {Function|Function[]}
+   *        The function or array of functions to attach.
+   */
+  videojs$1.hookOnce = function (type, fn) {
+    videojs$1.hooks(type, [].concat(fn).map(function (original) {
+      var wrapper = function wrapper() {
+        videojs$1.removeHook(type, wrapper);
+        return original.apply(undefined, arguments);
+      };
+
+      return wrapper;
+    }));
+  };
+
+  /**
+   * Remove a hook from a specific videojs lifecycle.
+   *
+   * @param {string} type
+   *        the lifecycle that the function hooked to
+   *
+   * @param {Function} fn
+   *        The hooked function to remove
+   *
+   * @return {boolean}
+   *         The function that was removed or undef
+   */
+  videojs$1.removeHook = function (type, fn) {
+    var index = videojs$1.hooks(type).indexOf(fn);
+
+    if (index <= -1) {
+      return false;
+    }
+
+    videojs$1.hooks_[type] = videojs$1.hooks_[type].slice();
+    videojs$1.hooks_[type].splice(index, 1);
+
+    return true;
+  };
+
+  // Add default styles
+  if (window_1.VIDEOJS_NO_DYNAMIC_STYLE !== true && isReal()) {
+    var style$1 = $('.vjs-styles-defaults');
+
+    if (!style$1) {
+      style$1 = createStyleElement('vjs-styles-defaults');
+      var head = $('head');
+
+      if (head) {
+        head.insertBefore(style$1, head.firstChild);
+      }
+      setTextContent(style$1, '\n      .video-js {\n        width: 300px;\n        height: 150px;\n      }\n\n      .vjs-fluid {\n        padding-top: 56.25%\n      }\n    ');
+    }
+  }
+
+  // Run Auto-load players
+  // You have to wait at least once in case this script is loaded after your
+  // video in the DOM (weird behavior only with minified version)
+  autoSetupTimeout(1, videojs$1);
+
+  /**
+   * Current software version. Follows semver.
+   *
+   * @type {string}
+   */
+  videojs$1.VERSION = version;
+
+  /**
+   * The global options object. These are the settings that take effect
+   * if no overrides are specified when the player is created.
+   *
+   * @type {Object}
+   */
+  videojs$1.options = Player.prototype.options_;
+
+  /**
+   * Get an object with the currently created players, keyed by player ID
+   *
+   * @return {Object}
+   *         The created players
+   */
+  videojs$1.getPlayers = function () {
+    return Player.players;
+  };
+
+  /**
+   * Get a single player based on an ID or DOM element.
+   *
+   * This is useful if you want to check if an element or ID has an associated
+   * Video.js player, but not create one if it doesn't.
+   *
+   * @param   {string|Element} id
+   *          An HTML element - `<video>`, `<audio>`, or `<video-js>` -
+   *          or a string matching the `id` of such an element.
+   *
+   * @returns {Player|undefined}
+   *          A player instance or `undefined` if there is no player instance
+   *          matching the argument.
+   */
+  videojs$1.getPlayer = function (id) {
+    var players = Player.players;
+    var tag = void 0;
+
+    if (typeof id === 'string') {
+      var nId = normalizeId(id);
+      var player = players[nId];
+
+      if (player) {
+        return player;
+      }
+
+      tag = $('#' + nId);
+    } else {
+      tag = id;
+    }
+
+    if (isEl(tag)) {
+      var _tag = tag,
+        _player = _tag.player,
+        playerId = _tag.playerId;
+
+      // Element may have a `player` property referring to an already created
+      // player instance. If so, return that.
+
+      if (_player || players[playerId]) {
+        return _player || players[playerId];
+      }
+    }
+  };
+
+  /**
+   * Returns an array of all current players.
+   *
+   * @return {Array}
+   *         An array of all players. The array will be in the order that
+   *         `Object.keys` provides, which could potentially vary between
+   *         JavaScript engines.
+   *
+   */
+  videojs$1.getAllPlayers = function () {
+    return (
+
+      // Disposed players leave a key with a `null` value, so we need to make sure
+      // we filter those out.
+      Object.keys(Player.players).map(function (k) {
+        return Player.players[k];
+      }).filter(Boolean)
+    );
+  };
+
+  /**
+   * Expose players object.
+   *
+   * @memberOf videojs
+   * @property {Object} players
+   */
+  videojs$1.players = Player.players;
+
+  /**
+   * Get a component class object by name
+   *
+   * @borrows Component.getComponent as videojs.getComponent
+   */
+  videojs$1.getComponent = Component.getComponent;
+
+  /**
+   * Register a component so it can referred to by name. Used when adding to other
+   * components, either through addChild `component.addChild('myComponent')` or through
+   * default children options  `{ children: ['myComponent'] }`.
+   *
+   * > NOTE: You could also just initialize the component before adding.
+   * `component.addChild(new MyComponent());`
+   *
+   * @param {string} name
+   *        The class name of the component
+   *
+   * @param {Component} comp
+   *        The component class
+   *
+   * @return {Component}
+   *         The newly registered component
+   */
+  videojs$1.registerComponent = function (name$$1, comp) {
+    if (Tech.isTech(comp)) {
+      log$1.warn('The ' + name$$1 + ' tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)');
+    }
+
+    Component.registerComponent.call(Component, name$$1, comp);
+  };
+
+  /**
+   * Get a Tech class object by name
+   *
+   * @borrows Tech.getTech as videojs.getTech
+   */
+  videojs$1.getTech = Tech.getTech;
+
+  /**
+   * Register a Tech so it can referred to by name.
+   * This is used in the tech order for the player.
+   *
+   * @borrows Tech.registerTech as videojs.registerTech
+   */
+  videojs$1.registerTech = Tech.registerTech;
+
+  /**
+   * Register a middleware to a source type.
+   *
+   * @param {String} type A string representing a MIME type.
+   * @param {function(player):object} middleware A middleware factory that takes a player.
+   */
+  videojs$1.use = use;
+
+  /**
+   * An object that can be returned by a middleware to signify
+   * that the middleware is being terminated.
+   *
+   * @type {object}
+   * @memberOf {videojs}
+   * @property {object} middleware.TERMINATOR
+   */
+  Object.defineProperty(videojs$1, 'middleware', {
+    value: {},
+    writeable: false,
+    enumerable: true
+  });
+
+  Object.defineProperty(videojs$1.middleware, 'TERMINATOR', {
+    value: TERMINATOR,
+    writeable: false,
+    enumerable: true
+  });
+
+  /**
+   * A suite of browser and device tests from {@link browser}.
+   *
+   * @type {Object}
+   * @private
+   */
+  videojs$1.browser = browser;
+
+  /**
+   * Whether or not the browser supports touch events. Included for backward
+   * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`
+   * instead going forward.
+   *
+   * @deprecated since version 5.0
+   * @type {boolean}
+   */
+  videojs$1.TOUCH_ENABLED = TOUCH_ENABLED;
+
+  /**
+   * Subclass an existing class
+   * Mimics ES6 subclassing with the `extend` keyword
+   *
+   * @borrows extend:extendFn as videojs.extend
+   */
+  videojs$1.extend = extendFn;
+
+  /**
+   * Merge two options objects recursively
+   * Performs a deep merge like lodash.merge but **only merges plain objects**
+   * (not arrays, elements, anything else)
+   * Other values will be copied directly from the second object.
+   *
+   * @borrows merge-options:mergeOptions as videojs.mergeOptions
+   */
+  videojs$1.mergeOptions = mergeOptions;
+
+  /**
+   * Change the context (this) of a function
+   *
+   * > NOTE: as of v5.0 we require an ES5 shim, so you should use the native
+   * `function() {}.bind(newContext);` instead of this.
+   *
+   * @borrows fn:bind as videojs.bind
+   */
+  videojs$1.bind = bind;
+
+  /**
+   * Register a Video.js plugin.
+   *
+   * @borrows plugin:registerPlugin as videojs.registerPlugin
+   * @method registerPlugin
+   *
+   * @param  {string} name
+   *         The name of the plugin to be registered. Must be a string and
+   *         must not match an existing plugin or a method on the `Player`
+   *         prototype.
+   *
+   * @param  {Function} plugin
+   *         A sub-class of `Plugin` or a function for basic plugins.
+   *
+   * @return {Function}
+   *         For advanced plugins, a factory function for that plugin. For
+   *         basic plugins, a wrapper function that initializes the plugin.
+   */
+  videojs$1.registerPlugin = Plugin.registerPlugin;
+
+  /**
+   * Deprecated method to register a plugin with Video.js
+   *
+   * @deprecated
+   *        videojs.plugin() is deprecated; use videojs.registerPlugin() instead
+   *
+   * @param {string} name
+   *        The plugin name
+   *
+   * @param {Plugin|Function} plugin
+   *         The plugin sub-class or function
+   */
+  videojs$1.plugin = function (name$$1, plugin) {
+    log$1.warn('videojs.plugin() is deprecated; use videojs.registerPlugin() instead');
+    return Plugin.registerPlugin(name$$1, plugin);
+  };
+
+  /**
+   * Gets an object containing multiple Video.js plugins.
+   *
+   * @param  {Array} [names]
+   *         If provided, should be an array of plugin names. Defaults to _all_
+   *         plugin names.
+   *
+   * @return {Object|undefined}
+   *         An object containing plugin(s) associated with their name(s) or
+   *         `undefined` if no matching plugins exist).
+   */
+  videojs$1.getPlugins = Plugin.getPlugins;
+
+  /**
+   * Gets a plugin by name if it exists.
+   *
+   * @param  {string} name
+   *         The name of a plugin.
+   *
+   * @return {Function|undefined}
+   *         The plugin (or `undefined`).
+   */
+  videojs$1.getPlugin = Plugin.getPlugin;
+
+  /**
+   * Gets a plugin's version, if available
+   *
+   * @param  {string} name
+   *         The name of a plugin.
+   *
+   * @return {string}
+   *         The plugin's version or an empty string.
+   */
+  videojs$1.getPluginVersion = Plugin.getPluginVersion;
+
+  /**
+   * Adding languages so that they're available to all players.
+   * Example: `videojs.addLanguage('es', { 'Hello': 'Hola' });`
+   *
+   * @param {string} code
+   *        The language code or dictionary property
+   *
+   * @param {Object} data
+   *        The data values to be translated
+   *
+   * @return {Object}
+   *         The resulting language dictionary object
+   */
+  videojs$1.addLanguage = function (code, data) {
+    var _mergeOptions;
+
+    code = ('' + code).toLowerCase();
+
+    videojs$1.options.languages = mergeOptions(videojs$1.options.languages, (_mergeOptions = {}, _mergeOptions[code] = data, _mergeOptions));
+
+    return videojs$1.options.languages[code];
+  };
+
+  /**
+   * Log messages
+   *
+   * @borrows log:log as videojs.log
+   */
+  videojs$1.log = log$1;
+
+  /**
+   * Creates an emulated TimeRange object.
+   *
+   * @borrows time-ranges:createTimeRanges as videojs.createTimeRange
+   */
+  /**
+   * @borrows time-ranges:createTimeRanges as videojs.createTimeRanges
+   */
+  videojs$1.createTimeRange = videojs$1.createTimeRanges = createTimeRanges;
+
+  /**
+   * Format seconds as a time string, H:MM:SS or M:SS
+   * Supplying a guide (in seconds) will force a number of leading zeros
+   * to cover the length of the guide
+   *
+   * @borrows format-time:formatTime as videojs.formatTime
+   */
+  videojs$1.formatTime = formatTime;
+
+  /**
+   * Replaces format-time with a custom implementation, to be used in place of the default.
+   *
+   * @borrows format-time:setFormatTime as videojs.setFormatTime
+   *
+   * @method setFormatTime
+   *
+   * @param {Function} customFn
+   *        A custom format-time function which will be called with the current time and guide (in seconds) as arguments.
+   *        Passed fn should return a string.
+   */
+  videojs$1.setFormatTime = setFormatTime;
+
+  /**
+   * Resets format-time to the default implementation.
+   *
+   * @borrows format-time:resetFormatTime as videojs.resetFormatTime
+   *
+   * @method resetFormatTime
+   */
+  videojs$1.resetFormatTime = resetFormatTime;
+
+  /**
+   * Resolve and parse the elements of a URL
+   *
+   * @borrows url:parseUrl as videojs.parseUrl
+   *
+   */
+  videojs$1.parseUrl = parseUrl;
+
+  /**
+   * Returns whether the url passed is a cross domain request or not.
+   *
+   * @borrows url:isCrossOrigin as videojs.isCrossOrigin
+   */
+  videojs$1.isCrossOrigin = isCrossOrigin;
+
+  /**
+   * Event target class.
+   *
+   * @borrows EventTarget as videojs.EventTarget
+   */
+  videojs$1.EventTarget = EventTarget;
+
+  /**
+   * Add an event listener to element
+   * It stores the handler function in a separate cache object
+   * and adds a generic handler to the element's event,
+   * along with a unique id (guid) to the element.
+   *
+   * @borrows events:on as videojs.on
+   */
+  videojs$1.on = on;
+
+  /**
+   * Trigger a listener only once for an event
+   *
+   * @borrows events:one as videojs.one
+   */
+  videojs$1.one = one;
+
+  /**
+   * Removes event listeners from an element
+   *
+   * @borrows events:off as videojs.off
+   */
+  videojs$1.off = off;
+
+  /**
+   * Trigger an event for an element
+   *
+   * @borrows events:trigger as videojs.trigger
+   */
+  videojs$1.trigger = trigger;
+
+  /**
+   * A cross-browser XMLHttpRequest wrapper. Here's a simple example:
+   *
+   * @param {Object} options
+   *        settings for the request.
+   *
+   * @return {XMLHttpRequest|XDomainRequest}
+   *         The request object.
+   *
+   * @see https://github.com/Raynos/xhr
+   */
+  videojs$1.xhr = xhr;
+
+  /**
+   * TextTrack class
+   *
+   * @borrows TextTrack as videojs.TextTrack
+   */
+  videojs$1.TextTrack = TextTrack;
+
+  /**
+   * export the AudioTrack class so that source handlers can create
+   * AudioTracks and then add them to the players AudioTrackList
+   *
+   * @borrows AudioTrack as videojs.AudioTrack
+   */
+  videojs$1.AudioTrack = AudioTrack;
+
+  /**
+   * export the VideoTrack class so that source handlers can create
+   * VideoTracks and then add them to the players VideoTrackList
+   *
+   * @borrows VideoTrack as videojs.VideoTrack
+   */
+  videojs$1.VideoTrack = VideoTrack;
+
+  /**
+   * Determines, via duck typing, whether or not a value is a DOM element.
+   *
+   * @borrows dom:isEl as videojs.isEl
+   * @deprecated Use videojs.dom.isEl() instead
+   */
+
+  /**
+   * Determines, via duck typing, whether or not a value is a text node.
+   *
+   * @borrows dom:isTextNode as videojs.isTextNode
+   * @deprecated Use videojs.dom.isTextNode() instead
+   */
+
+  /**
+   * Creates an element and applies properties.
+   *
+   * @borrows dom:createEl as videojs.createEl
+   * @deprecated Use videojs.dom.createEl() instead
+   */
+
+  /**
+   * Check if an element has a CSS class
+   *
+   * @borrows dom:hasElClass as videojs.hasClass
+   * @deprecated Use videojs.dom.hasClass() instead
+   */
+
+  /**
+   * Add a CSS class name to an element
+   *
+   * @borrows dom:addElClass as videojs.addClass
+   * @deprecated Use videojs.dom.addClass() instead
+   */
+
+  /**
+   * Remove a CSS class name from an element
+   *
+   * @borrows dom:removeElClass as videojs.removeClass
+   * @deprecated Use videojs.dom.removeClass() instead
+   */
+
+  /**
+   * Adds or removes a CSS class name on an element depending on an optional
+   * condition or the presence/absence of the class name.
+   *
+   * @borrows dom:toggleElClass as videojs.toggleClass
+   * @deprecated Use videojs.dom.toggleClass() instead
+   */
+
+  /**
+   * Apply attributes to an HTML element.
+   *
+   * @borrows dom:setElAttributes as videojs.setAttribute
+   * @deprecated Use videojs.dom.setAttributes() instead
+   */
+
+  /**
+   * Get an element's attribute values, as defined on the HTML tag
+   * Attributes are not the same as properties. They're defined on the tag
+   * or with setAttribute (which shouldn't be used with HTML)
+   * This will return true or false for boolean attributes.
+   *
+   * @borrows dom:getElAttributes as videojs.getAttributes
+   * @deprecated Use videojs.dom.getAttributes() instead
+   */
+
+  /**
+   * Empties the contents of an element.
+   *
+   * @borrows dom:emptyEl as videojs.emptyEl
+   * @deprecated Use videojs.dom.emptyEl() instead
+   */
+
+  /**
+   * Normalizes and appends content to an element.
+   *
+   * The content for an element can be passed in multiple types and
+   * combinations, whose behavior is as follows:
+   *
+   * - String
+   *   Normalized into a text node.
+   *
+   * - Element, TextNode
+   *   Passed through.
+   *
+   * - Array
+   *   A one-dimensional array of strings, elements, nodes, or functions (which
+   *   return single strings, elements, or nodes).
+   *
+   * - Function
+   *   If the sole argument, is expected to produce a string, element,
+   *   node, or array.
+   *
+   * @borrows dom:appendContents as videojs.appendContet
+   * @deprecated Use videojs.dom.appendContent() instead
+   */
+
+  /**
+   * Normalizes and inserts content into an element; this is identical to
+   * `appendContent()`, except it empties the element first.
+   *
+   * The content for an element can be passed in multiple types and
+   * combinations, whose behavior is as follows:
+   *
+   * - String
+   *   Normalized into a text node.
+   *
+   * - Element, TextNode
+   *   Passed through.
+   *
+   * - Array
+   *   A one-dimensional array of strings, elements, nodes, or functions (which
+   *   return single strings, elements, or nodes).
+   *
+   * - Function
+   *   If the sole argument, is expected to produce a string, element,
+   *   node, or array.
+   *
+   * @borrows dom:insertContent as videojs.insertContent
+   * @deprecated Use videojs.dom.insertContent() instead
+   */
+  ['isEl', 'isTextNode', 'createEl', 'hasClass', 'addClass', 'removeClass', 'toggleClass', 'setAttributes', 'getAttributes', 'emptyEl', 'appendContent', 'insertContent'].forEach(function (k) {
+    videojs$1[k] = function () {
+      log$1.warn('videojs.' + k + '() is deprecated; use videojs.dom.' + k + '() instead');
+      return Dom[k].apply(null, arguments);
+    };
+  });
+
+  /**
+   * A safe getComputedStyle.
+   *
+   * This is because in Firefox, if the player is loaded in an iframe with `display:none`,
+   * then `getComputedStyle` returns `null`, so, we do a null-check to make sure
+   * that the player doesn't break in these cases.
+   * See https://bugzilla.mozilla.org/show_bug.cgi?id=548397 for more details.
+   *
+   * @borrows computed-style:computedStyle as videojs.computedStyle
+   */
+  videojs$1.computedStyle = computedStyle;
+
+  /**
+   * Export the Dom utilities for use in external plugins
+   * and Tech's
+   */
+  videojs$1.dom = Dom;
+
+  /**
+   * Export the Url utilities for use in external plugins
+   * and Tech's
+   */
+  videojs$1.url = Url;
+
+  var urlToolkit = createCommonjsModule(function (module, exports) {
+    // see https://tools.ietf.org/html/rfc1808
+
+    /* jshint ignore:start */
+    (function (root) {
+      /* jshint ignore:end */
+
+      var URL_REGEX = /^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/;
+      var FIRST_SEGMENT_REGEX = /^([^\/;?#]*)(.*)$/;
+      var SLASH_DOT_REGEX = /(?:\/|^)\.(?=\/)/g;
+      var SLASH_DOT_DOT_REGEX = /(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g;
+
+      var URLToolkit = { // jshint ignore:line
+        // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //
+        // E.g
+        // With opts.alwaysNormalize = false (default, spec compliant)
+        // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g
+        // With opts.alwaysNormalize = true (not spec compliant)
+        // http://a.com/b/cd + /e/f/../g => http://a.com/e/g
+        buildAbsoluteURL: function buildAbsoluteURL(baseURL, relativeURL, opts) {
+          opts = opts || {};
+          // remove any remaining space and CRLF
+          baseURL = baseURL.trim();
+          relativeURL = relativeURL.trim();
+          if (!relativeURL) {
+            // 2a) If the embedded URL is entirely empty, it inherits the
+            // entire base URL (i.e., is set equal to the base URL)
+            // and we are done.
+            if (!opts.alwaysNormalize) {
+              return baseURL;
+            }
+            var basePartsForNormalise = URLToolkit.parseURL(baseURL);
+            if (!basePartsForNormalise) {
+              throw new Error('Error trying to parse base URL.');
+            }
+            basePartsForNormalise.path = URLToolkit.normalizePath(basePartsForNormalise.path);
+            return URLToolkit.buildURLFromParts(basePartsForNormalise);
+          }
+          var relativeParts = URLToolkit.parseURL(relativeURL);
+          if (!relativeParts) {
+            throw new Error('Error trying to parse relative URL.');
+          }
+          if (relativeParts.scheme) {
+            // 2b) If the embedded URL starts with a scheme name, it is
+            // interpreted as an absolute URL and we are done.
+            if (!opts.alwaysNormalize) {
+              return relativeURL;
+            }
+            relativeParts.path = URLToolkit.normalizePath(relativeParts.path);
+            return URLToolkit.buildURLFromParts(relativeParts);
+          }
+          var baseParts = URLToolkit.parseURL(baseURL);
+          if (!baseParts) {
+            throw new Error('Error trying to parse base URL.');
+          }
+          if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {
+            // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc
+            // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'
+            var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);
+            baseParts.netLoc = pathParts[1];
+            baseParts.path = pathParts[2];
+          }
+          if (baseParts.netLoc && !baseParts.path) {
+            baseParts.path = '/';
+          }
+          var builtParts = {
+            // 2c) Otherwise, the embedded URL inherits the scheme of
+            // the base URL.
+            scheme: baseParts.scheme,
+            netLoc: relativeParts.netLoc,
+            path: null,
+            params: relativeParts.params,
+            query: relativeParts.query,
+            fragment: relativeParts.fragment
+          };
+          if (!relativeParts.netLoc) {
+            // 3) If the embedded URL's <net_loc> is non-empty, we skip to
+            // Step 7.  Otherwise, the embedded URL inherits the <net_loc>
+            // (if any) of the base URL.
+            builtParts.netLoc = baseParts.netLoc;
+            // 4) If the embedded URL path is preceded by a slash "/", the
+            // path is not relative and we skip to Step 7.
+            if (relativeParts.path[0] !== '/') {
+              if (!relativeParts.path) {
+                // 5) If the embedded URL path is empty (and not preceded by a
+                // slash), then the embedded URL inherits the base URL path
+                builtParts.path = baseParts.path;
+                // 5a) if the embedded URL's <params> is non-empty, we skip to
+                // step 7; otherwise, it inherits the <params> of the base
+                // URL (if any) and
+                if (!relativeParts.params) {
+                  builtParts.params = baseParts.params;
+                  // 5b) if the embedded URL's <query> is non-empty, we skip to
+                  // step 7; otherwise, it inherits the <query> of the base
+                  // URL (if any) and we skip to step 7.
+                  if (!relativeParts.query) {
+                    builtParts.query = baseParts.query;
+                  }
+                }
+              } else {
+                // 6) The last segment of the base URL's path (anything
+                // following the rightmost slash "/", or the entire path if no
+                // slash is present) is removed and the embedded URL's path is
+                // appended in its place.
+                var baseURLPath = baseParts.path;
+                var newPath = baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) + relativeParts.path;
+                builtParts.path = URLToolkit.normalizePath(newPath);
+              }
+            }
+          }
+          if (builtParts.path === null) {
+            builtParts.path = opts.alwaysNormalize ? URLToolkit.normalizePath(relativeParts.path) : relativeParts.path;
+          }
+          return URLToolkit.buildURLFromParts(builtParts);
+        },
+        parseURL: function parseURL(url) {
+          var parts = URL_REGEX.exec(url);
+          if (!parts) {
+            return null;
+          }
+          return {
+            scheme: parts[1] || '',
+            netLoc: parts[2] || '',
+            path: parts[3] || '',
+            params: parts[4] || '',
+            query: parts[5] || '',
+            fragment: parts[6] || ''
+          };
+        },
+        normalizePath: function normalizePath(path) {
+          // The following operations are
+          // then applied, in order, to the new path:
+          // 6a) All occurrences of "./", where "." is a complete path
+          // segment, are removed.
+          // 6b) If the path ends with "." as a complete path segment,
+          // that "." is removed.
+          path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');
+          // 6c) All occurrences of "<segment>/../", where <segment> is a
+          // complete path segment not equal to "..", are removed.
+          // Removal of these path segments is performed iteratively,
+          // removing the leftmost matching pattern on each iteration,
+          // until no matching pattern remains.
+          // 6d) If the path ends with "<segment>/..", where <segment> is a
+          // complete path segment not equal to "..", that
+          // "<segment>/.." is removed.
+          while (path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length) {
+          } // jshint ignore:line
+          return path.split('').reverse().join('');
+        },
+        buildURLFromParts: function buildURLFromParts(parts) {
+          return parts.scheme + parts.netLoc + parts.path + parts.params + parts.query + parts.fragment;
+        }
+      };
+
+      /* jshint ignore:start */
+      module.exports = URLToolkit;
+    })(commonjsGlobal);
+    /* jshint ignore:end */
+  });
+
+  var classCallCheck$1 = function classCallCheck$$1(instance, Constructor) {
+    if (!(instance instanceof Constructor)) {
+      throw new TypeError("Cannot call a class as a function");
+    }
+  };
+
+  var _extends$1 = Object.assign || function (target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i];
+
+      for (var key in source) {
+        if (Object.prototype.hasOwnProperty.call(source, key)) {
+          target[key] = source[key];
+        }
+      }
+    }
+
+    return target;
+  };
+
+  var inherits$1 = function inherits$$1(subClass, superClass) {
+    if (typeof superClass !== "function" && superClass !== null) {
+      throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : _typeof(superClass)));
+    }
+
+    subClass.prototype = Object.create(superClass && superClass.prototype, {
+      constructor: {
+        value: subClass,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+  };
+
+  var possibleConstructorReturn$1 = function possibleConstructorReturn$$1(self, call) {
+    if (!self) {
+      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+    }
+
+    return call && ((typeof call === "undefined" ? "undefined" : _typeof(call)) === "object" || typeof call === "function") ? call : self;
+  };
+
+  /**
+   * @file stream.js
+   */
+  /**
+   * A lightweight readable stream implemention that handles event dispatching.
+   *
+   * @class Stream
+   */
+  var Stream = function () {
+    function Stream() {
+      classCallCheck$1(this, Stream);
+
+      this.listeners = {};
+    }
+
+    /**
+     * Add a listener for a specified event type.
+     *
+     * @param {String} type the event name
+     * @param {Function} listener the callback to be invoked when an event of
+     * the specified type occurs
+     */
+
+    Stream.prototype.on = function on(type, listener) {
+      if (!this.listeners[type]) {
+        this.listeners[type] = [];
+      }
+      this.listeners[type].push(listener);
+    };
+
+    /**
+     * Remove a listener for a specified event type.
+     *
+     * @param {String} type the event name
+     * @param {Function} listener  a function previously registered for this
+     * type of event through `on`
+     * @return {Boolean} if we could turn it off or not
+     */
+
+    Stream.prototype.off = function off(type, listener) {
+      if (!this.listeners[type]) {
+        return false;
+      }
+
+      var index = this.listeners[type].indexOf(listener);
+
+      this.listeners[type].splice(index, 1);
+      return index > -1;
+    };
+
+    /**
+     * Trigger an event of the specified type on this stream. Any additional
+     * arguments to this function are passed as parameters to event listeners.
+     *
+     * @param {String} type the event name
+     */
+
+    Stream.prototype.trigger = function trigger(type) {
+      var callbacks = this.listeners[type];
+      var i = void 0;
+      var length = void 0;
+      var args = void 0;
+
+      if (!callbacks) {
+        return;
+      }
+      // Slicing the arguments on every invocation of this method
+      // can add a significant amount of overhead. Avoid the
+      // intermediate object creation for the common case of a
+      // single callback argument
+      if (arguments.length === 2) {
+        length = callbacks.length;
+        for (i = 0; i < length; ++i) {
+          callbacks[i].call(this, arguments[1]);
+        }
+      } else {
+        args = Array.prototype.slice.call(arguments, 1);
+        length = callbacks.length;
+        for (i = 0; i < length; ++i) {
+          callbacks[i].apply(this, args);
+        }
+      }
+    };
+
+    /**
+     * Destroys the stream and cleans up.
+     */
+
+    Stream.prototype.dispose = function dispose() {
+      this.listeners = {};
+    };
+    /**
+     * Forwards all `data` events on this stream to the destination stream. The
+     * destination stream should provide a method `push` to receive the data
+     * events as they arrive.
+     *
+     * @param {Stream} destination the stream that will receive all `data` events
+     * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
+     */
+
+    Stream.prototype.pipe = function pipe(destination) {
+      this.on('data', function (data) {
+        destination.push(data);
+      });
+    };
+
+    return Stream;
+  }();
+
+  /**
+   * @file m3u8/line-stream.js
+   */
+  /**
+   * A stream that buffers string input and generates a `data` event for each
+   * line.
+   *
+   * @class LineStream
+   * @extends Stream
+   */
+
+  var LineStream = function (_Stream) {
+    inherits$1(LineStream, _Stream);
+
+    function LineStream() {
+      classCallCheck$1(this, LineStream);
+
+      var _this = possibleConstructorReturn$1(this, _Stream.call(this));
+
+      _this.buffer = '';
+      return _this;
+    }
+
+    /**
+     * Add new data to be parsed.
+     *
+     * @param {String} data the text to process
+     */
+
+    LineStream.prototype.push = function push(data) {
+      var nextNewline = void 0;
+
+      this.buffer += data;
+      nextNewline = this.buffer.indexOf('\n');
+
+      for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\n')) {
+        this.trigger('data', this.buffer.substring(0, nextNewline));
+        this.buffer = this.buffer.substring(nextNewline + 1);
+      }
+    };
+
+    return LineStream;
+  }(Stream);
+
+  /**
+   * @file m3u8/parse-stream.js
+   */
+  /**
+   * "forgiving" attribute list psuedo-grammar:
+   * attributes -> keyvalue (',' keyvalue)*
+   * keyvalue   -> key '=' value
+   * key        -> [^=]*
+   * value      -> '"' [^"]* '"' | [^,]*
+   */
+  var attributeSeparator = function attributeSeparator() {
+    var key = '[^=]*';
+    var value = '"[^"]*"|[^,]*';
+    var keyvalue = '(?:' + key + ')=(?:' + value + ')';
+
+    return new RegExp('(?:^|,)(' + keyvalue + ')');
+  };
+
+  /**
+   * Parse attributes from a line given the seperator
+   *
+   * @param {String} attributes the attibute line to parse
+   */
+  var parseAttributes = function parseAttributes(attributes) {
+    // split the string using attributes as the separator
+    var attrs = attributes.split(attributeSeparator());
+    var result = {};
+    var i = attrs.length;
+    var attr = void 0;
+
+    while (i--) {
+      // filter out unmatched portions of the string
+      if (attrs[i] === '') {
+        continue;
+      }
+
+      // split the key and value
+      attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1);
+      // trim whitespace and remove optional quotes around the value
+      attr[0] = attr[0].replace(/^\s+|\s+$/g, '');
+      attr[1] = attr[1].replace(/^\s+|\s+$/g, '');
+      attr[1] = attr[1].replace(/^['"](.*)['"]$/g, '$1');
+      result[attr[0]] = attr[1];
+    }
+    return result;
+  };
+
+  /**
+   * A line-level M3U8 parser event stream. It expects to receive input one
+   * line at a time and performs a context-free parse of its contents. A stream
+   * interpretation of a manifest can be useful if the manifest is expected to
+   * be too large to fit comfortably into memory or the entirety of the input
+   * is not immediately available. Otherwise, it's probably much easier to work
+   * with a regular `Parser` object.
+   *
+   * Produces `data` events with an object that captures the parser's
+   * interpretation of the input. That object has a property `tag` that is one
+   * of `uri`, `comment`, or `tag`. URIs only have a single additional
+   * property, `line`, which captures the entirety of the input without
+   * interpretation. Comments similarly have a single additional property
+   * `text` which is the input without the leading `#`.
+   *
+   * Tags always have a property `tagType` which is the lower-cased version of
+   * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,
+   * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized
+   * tags are given the tag type `unknown` and a single additional property
+   * `data` with the remainder of the input.
+   *
+   * @class ParseStream
+   * @extends Stream
+   */
+
+  var ParseStream = function (_Stream) {
+    inherits$1(ParseStream, _Stream);
+
+    function ParseStream() {
+      classCallCheck$1(this, ParseStream);
+
+      var _this = possibleConstructorReturn$1(this, _Stream.call(this));
+
+      _this.customParsers = [];
+      return _this;
+    }
+
+    /**
+     * Parses an additional line of input.
+     *
+     * @param {String} line a single line of an M3U8 file to parse
+     */
+
+    ParseStream.prototype.push = function push(line) {
+      var match = void 0;
+      var event = void 0;
+
+      // strip whitespace
+      line = line.replace(/^[\u0000\s]+|[\u0000\s]+$/g, '');
+      if (line.length === 0) {
+        // ignore empty lines
+        return;
+      }
+
+      // URIs
+      if (line[0] !== '#') {
+        this.trigger('data', {
+          type: 'uri',
+          uri: line
+        });
+        return;
+      }
+
+      for (var i = 0; i < this.customParsers.length; i++) {
+        if (this.customParsers[i].call(this, line)) {
+          return;
+        }
+      }
+
+      // Comments
+      if (line.indexOf('#EXT') !== 0) {
+        this.trigger('data', {
+          type: 'comment',
+          text: line.slice(1)
+        });
+        return;
+      }
+
+      // strip off any carriage returns here so the regex matching
+      // doesn't have to account for them.
+      line = line.replace('\r', '');
+
+      // Tags
+      match = /^#EXTM3U/.exec(line);
+      if (match) {
+        this.trigger('data', {
+          type: 'tag',
+          tagType: 'm3u'
+        });
+        return;
+      }
+      match = /^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'inf'
+        };
+        if (match[1]) {
+          event.duration = parseFloat(match[1]);
+        }
+        if (match[2]) {
+          event.title = match[2];
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'targetduration'
+        };
+        if (match[1]) {
+          event.duration = parseInt(match[1], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'totalduration'
+        };
+        if (match[1]) {
+          event.duration = parseInt(match[1], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'version'
+        };
+        if (match[1]) {
+          event.version = parseInt(match[1], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'media-sequence'
+        };
+        if (match[1]) {
+          event.number = parseInt(match[1], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'discontinuity-sequence'
+        };
+        if (match[1]) {
+          event.number = parseInt(match[1], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'playlist-type'
+        };
+        if (match[1]) {
+          event.playlistType = match[1];
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'byterange'
+        };
+        if (match[1]) {
+          event.length = parseInt(match[1], 10);
+        }
+        if (match[2]) {
+          event.offset = parseInt(match[2], 10);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'allow-cache'
+        };
+        if (match[1]) {
+          event.allowed = !/NO/.test(match[1]);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-MAP:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'map'
+        };
+
+        if (match[1]) {
+          var attributes = parseAttributes(match[1]);
+
+          if (attributes.URI) {
+            event.uri = attributes.URI;
+          }
+          if (attributes.BYTERANGE) {
+            var _attributes$BYTERANGE = attributes.BYTERANGE.split('@'),
+              length = _attributes$BYTERANGE[0],
+              offset = _attributes$BYTERANGE[1];
+
+            event.byterange = {};
+            if (length) {
+              event.byterange.length = parseInt(length, 10);
+            }
+            if (offset) {
+              event.byterange.offset = parseInt(offset, 10);
+            }
+          }
+        }
+
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'stream-inf'
+        };
+        if (match[1]) {
+          event.attributes = parseAttributes(match[1]);
+
+          if (event.attributes.RESOLUTION) {
+            var split = event.attributes.RESOLUTION.split('x');
+            var resolution = {};
+
+            if (split[0]) {
+              resolution.width = parseInt(split[0], 10);
+            }
+            if (split[1]) {
+              resolution.height = parseInt(split[1], 10);
+            }
+            event.attributes.RESOLUTION = resolution;
+          }
+          if (event.attributes.BANDWIDTH) {
+            event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);
+          }
+          if (event.attributes['PROGRAM-ID']) {
+            event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);
+          }
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-MEDIA:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'media'
+        };
+        if (match[1]) {
+          event.attributes = parseAttributes(match[1]);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-ENDLIST/.exec(line);
+      if (match) {
+        this.trigger('data', {
+          type: 'tag',
+          tagType: 'endlist'
+        });
+        return;
+      }
+      match = /^#EXT-X-DISCONTINUITY/.exec(line);
+      if (match) {
+        this.trigger('data', {
+          type: 'tag',
+          tagType: 'discontinuity'
+        });
+        return;
+      }
+      match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'program-date-time'
+        };
+        if (match[1]) {
+          event.dateTimeString = match[1];
+          event.dateTimeObject = new Date(match[1]);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-KEY:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'key'
+        };
+        if (match[1]) {
+          event.attributes = parseAttributes(match[1]);
+          // parse the IV string into a Uint32Array
+          if (event.attributes.IV) {
+            if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {
+              event.attributes.IV = event.attributes.IV.substring(2);
+            }
+
+            event.attributes.IV = event.attributes.IV.match(/.{8}/g);
+            event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);
+            event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);
+            event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);
+            event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);
+            event.attributes.IV = new Uint32Array(event.attributes.IV);
+          }
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-START:?(.*)$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'start'
+        };
+        if (match[1]) {
+          event.attributes = parseAttributes(match[1]);
+
+          event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);
+          event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'cue-out-cont'
+        };
+        if (match[1]) {
+          event.data = match[1];
+        } else {
+          event.data = '';
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'cue-out'
+        };
+        if (match[1]) {
+          event.data = match[1];
+        } else {
+          event.data = '';
+        }
+        this.trigger('data', event);
+        return;
+      }
+      match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(line);
+      if (match) {
+        event = {
+          type: 'tag',
+          tagType: 'cue-in'
+        };
+        if (match[1]) {
+          event.data = match[1];
+        } else {
+          event.data = '';
+        }
+        this.trigger('data', event);
+        return;
+      }
+
+      // unknown tag type
+      this.trigger('data', {
+        type: 'tag',
+        data: line.slice(4)
+      });
+    };
+
+    /**
+     * Add a parser for custom headers
+     *
+     * @param {Object}   options              a map of options for the added parser
+     * @param {RegExp}   options.expression   a regular expression to match the custom header
+     * @param {string}   options.customType   the custom type to register to the output
+     * @param {Function} [options.dataParser] function to parse the line into an object
+     * @param {boolean}  [options.segment]    should tag data be attached to the segment object
+     */
+
+    ParseStream.prototype.addParser = function addParser(_ref) {
+      var _this2 = this;
+
+      var expression = _ref.expression,
+        customType = _ref.customType,
+        dataParser = _ref.dataParser,
+        segment = _ref.segment;
+
+      if (typeof dataParser !== 'function') {
+        dataParser = function dataParser(line) {
+          return line;
+        };
+      }
+      this.customParsers.push(function (line) {
+        var match = expression.exec(line);
+
+        if (match) {
+          _this2.trigger('data', {
+            type: 'custom',
+            data: dataParser(line),
+            customType: customType,
+            segment: segment
+          });
+          return true;
+        }
+      });
+    };
+
+    return ParseStream;
+  }(Stream);
+
+  /**
+   * @file m3u8/parser.js
+   */
+  /**
+   * A parser for M3U8 files. The current interpretation of the input is
+   * exposed as a property `manifest` on parser objects. It's just two lines to
+   * create and parse a manifest once you have the contents available as a string:
+   *
+   * ```js
+   * var parser = new m3u8.Parser();
+   * parser.push(xhr.responseText);
+   * ```
+   *
+   * New input can later be applied to update the manifest object by calling
+   * `push` again.
+   *
+   * The parser attempts to create a usable manifest object even if the
+   * underlying input is somewhat nonsensical. It emits `info` and `warning`
+   * events during the parse if it encounters input that seems invalid or
+   * requires some property of the manifest object to be defaulted.
+   *
+   * @class Parser
+   * @extends Stream
+   */
+
+  var Parser = function (_Stream) {
+    inherits$1(Parser, _Stream);
+
+    function Parser() {
+      classCallCheck$1(this, Parser);
+
+      var _this = possibleConstructorReturn$1(this, _Stream.call(this));
+
+      _this.lineStream = new LineStream();
+      _this.parseStream = new ParseStream();
+      _this.lineStream.pipe(_this.parseStream);
+
+      /* eslint-disable consistent-this */
+      var self = _this;
+      /* eslint-enable consistent-this */
+      var uris = [];
+      var currentUri = {};
+      // if specified, the active EXT-X-MAP definition
+      var currentMap = void 0;
+      // if specified, the active decryption key
+      var _key = void 0;
+      var noop = function noop() {
+      };
+      var defaultMediaGroups = {
+        'AUDIO': {},
+        'VIDEO': {},
+        'CLOSED-CAPTIONS': {},
+        'SUBTITLES': {}
+      };
+      // group segments into numbered timelines delineated by discontinuities
+      var currentTimeline = 0;
+
+      // the manifest is empty until the parse stream begins delivering data
+      _this.manifest = {
+        allowCache: true,
+        discontinuityStarts: [],
+        segments: []
+      };
+
+      // update the manifest with the m3u8 entry from the parse stream
+      _this.parseStream.on('data', function (entry) {
+        var mediaGroup = void 0;
+        var rendition = void 0;
+
+        ({
+          tag: function tag() {
+            // switch based on the tag type
+            (({
+              'allow-cache': function allowCache() {
+                this.manifest.allowCache = entry.allowed;
+                if (!('allowed' in entry)) {
+                  this.trigger('info', {
+                    message: 'defaulting allowCache to YES'
+                  });
+                  this.manifest.allowCache = true;
+                }
+              },
+              byterange: function byterange() {
+                var byterange = {};
+
+                if ('length' in entry) {
+                  currentUri.byterange = byterange;
+                  byterange.length = entry.length;
+
+                  if (!('offset' in entry)) {
+                    this.trigger('info', {
+                      message: 'defaulting offset to zero'
+                    });
+                    entry.offset = 0;
+                  }
+                }
+                if ('offset' in entry) {
+                  currentUri.byterange = byterange;
+                  byterange.offset = entry.offset;
+                }
+              },
+              endlist: function endlist() {
+                this.manifest.endList = true;
+              },
+              inf: function inf() {
+                if (!('mediaSequence' in this.manifest)) {
+                  this.manifest.mediaSequence = 0;
+                  this.trigger('info', {
+                    message: 'defaulting media sequence to zero'
+                  });
+                }
+                if (!('discontinuitySequence' in this.manifest)) {
+                  this.manifest.discontinuitySequence = 0;
+                  this.trigger('info', {
+                    message: 'defaulting discontinuity sequence to zero'
+                  });
+                }
+                if (entry.duration > 0) {
+                  currentUri.duration = entry.duration;
+                }
+
+                if (entry.duration === 0) {
+                  currentUri.duration = 0.01;
+                  this.trigger('info', {
+                    message: 'updating zero segment duration to a small value'
+                  });
+                }
+
+                this.manifest.segments = uris;
+              },
+              key: function key() {
+                if (!entry.attributes) {
+                  this.trigger('warn', {
+                    message: 'ignoring key declaration without attribute list'
+                  });
+                  return;
+                }
+                // clear the active encryption key
+                if (entry.attributes.METHOD === 'NONE') {
+                  _key = null;
+                  return;
+                }
+                if (!entry.attributes.URI) {
+                  this.trigger('warn', {
+                    message: 'ignoring key declaration without URI'
+                  });
+                  return;
+                }
+                if (!entry.attributes.METHOD) {
+                  this.trigger('warn', {
+                    message: 'defaulting key method to AES-128'
+                  });
+                }
+
+                // setup an encryption key for upcoming segments
+                _key = {
+                  method: entry.attributes.METHOD || 'AES-128',
+                  uri: entry.attributes.URI
+                };
+
+                if (typeof entry.attributes.IV !== 'undefined') {
+                  _key.iv = entry.attributes.IV;
+                }
+              },
+              'media-sequence': function mediaSequence() {
+                if (!isFinite(entry.number)) {
+                  this.trigger('warn', {
+                    message: 'ignoring invalid media sequence: ' + entry.number
+                  });
+                  return;
+                }
+                this.manifest.mediaSequence = entry.number;
+              },
+              'discontinuity-sequence': function discontinuitySequence() {
+                if (!isFinite(entry.number)) {
+                  this.trigger('warn', {
+                    message: 'ignoring invalid discontinuity sequence: ' + entry.number
+                  });
+                  return;
+                }
+                this.manifest.discontinuitySequence = entry.number;
+                currentTimeline = entry.number;
+              },
+              'playlist-type': function playlistType() {
+                if (!/VOD|EVENT/.test(entry.playlistType)) {
+                  this.trigger('warn', {
+                    message: 'ignoring unknown playlist type: ' + entry.playlist
+                  });
+                  return;
+                }
+                this.manifest.playlistType = entry.playlistType;
+              },
+              map: function map() {
+                currentMap = {};
+                if (entry.uri) {
+                  currentMap.uri = entry.uri;
+                }
+                if (entry.byterange) {
+                  currentMap.byterange = entry.byterange;
+                }
+              },
+              'stream-inf': function streamInf() {
+                this.manifest.playlists = uris;
+                this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
+
+                if (!entry.attributes) {
+                  this.trigger('warn', {
+                    message: 'ignoring empty stream-inf attributes'
+                  });
+                  return;
+                }
+
+                if (!currentUri.attributes) {
+                  currentUri.attributes = {};
+                }
+                _extends$1(currentUri.attributes, entry.attributes);
+              },
+              media: function media() {
+                this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;
+
+                if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {
+                  this.trigger('warn', {
+                    message: 'ignoring incomplete or missing media group'
+                  });
+                  return;
+                }
+
+                // find the media group, creating defaults as necessary
+                var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];
+
+                mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};
+                mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']];
+
+                // collect the rendition metadata
+                rendition = {
+                  'default': /yes/i.test(entry.attributes.DEFAULT)
+                };
+                if (rendition['default']) {
+                  rendition.autoselect = true;
+                } else {
+                  rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);
+                }
+                if (entry.attributes.LANGUAGE) {
+                  rendition.language = entry.attributes.LANGUAGE;
+                }
+                if (entry.attributes.URI) {
+                  rendition.uri = entry.attributes.URI;
+                }
+                if (entry.attributes['INSTREAM-ID']) {
+                  rendition.instreamId = entry.attributes['INSTREAM-ID'];
+                }
+                if (entry.attributes.CHARACTERISTICS) {
+                  rendition.characteristics = entry.attributes.CHARACTERISTICS;
+                }
+                if (entry.attributes.FORCED) {
+                  rendition.forced = /yes/i.test(entry.attributes.FORCED);
+                }
+
+                // insert the new rendition
+                mediaGroup[entry.attributes.NAME] = rendition;
+              },
+              discontinuity: function discontinuity() {
+                currentTimeline += 1;
+                currentUri.discontinuity = true;
+                this.manifest.discontinuityStarts.push(uris.length);
+              },
+              'program-date-time': function programDateTime() {
+                if (typeof this.manifest.dateTimeString === 'undefined') {
+                  // PROGRAM-DATE-TIME is a media-segment tag, but for backwards
+                  // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag
+                  // to the manifest object
+                  // TODO: Consider removing this in future major version
+                  this.manifest.dateTimeString = entry.dateTimeString;
+                  this.manifest.dateTimeObject = entry.dateTimeObject;
+                }
+
+                currentUri.dateTimeString = entry.dateTimeString;
+                currentUri.dateTimeObject = entry.dateTimeObject;
+              },
+              targetduration: function targetduration() {
+                if (!isFinite(entry.duration) || entry.duration < 0) {
+                  this.trigger('warn', {
+                    message: 'ignoring invalid target duration: ' + entry.duration
+                  });
+                  return;
+                }
+                this.manifest.targetDuration = entry.duration;
+              },
+              totalduration: function totalduration() {
+                if (!isFinite(entry.duration) || entry.duration < 0) {
+                  this.trigger('warn', {
+                    message: 'ignoring invalid total duration: ' + entry.duration
+                  });
+                  return;
+                }
+                this.manifest.totalDuration = entry.duration;
+              },
+              start: function start() {
+                if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {
+                  this.trigger('warn', {
+                    message: 'ignoring start declaration without appropriate attribute list'
+                  });
+                  return;
+                }
+                this.manifest.start = {
+                  timeOffset: entry.attributes['TIME-OFFSET'],
+                  precise: entry.attributes.PRECISE
+                };
+              },
+              'cue-out': function cueOut() {
+                currentUri.cueOut = entry.data;
+              },
+              'cue-out-cont': function cueOutCont() {
+                currentUri.cueOutCont = entry.data;
+              },
+              'cue-in': function cueIn() {
+                currentUri.cueIn = entry.data;
+              }
+            })[entry.tagType] || noop).call(self);
+          },
+          uri: function uri() {
+            currentUri.uri = entry.uri;
+            uris.push(currentUri);
+
+            // if no explicit duration was declared, use the target duration
+            if (this.manifest.targetDuration && !('duration' in currentUri)) {
+              this.trigger('warn', {
+                message: 'defaulting segment duration to the target duration'
+              });
+              currentUri.duration = this.manifest.targetDuration;
+            }
+            // annotate with encryption information, if necessary
+            if (_key) {
+              currentUri.key = _key;
+            }
+            currentUri.timeline = currentTimeline;
+            // annotate with initialization segment information, if necessary
+            if (currentMap) {
+              currentUri.map = currentMap;
+            }
+
+            // prepare for the next URI
+            currentUri = {};
+          },
+          comment: function comment() {
+            // comments are not important for playback
+          },
+          custom: function custom() {
+            // if this is segment-level data attach the output to the segment
+            if (entry.segment) {
+              currentUri.custom = currentUri.custom || {};
+              currentUri.custom[entry.customType] = entry.data;
+              // if this is manifest-level data attach to the top level manifest object
+            } else {
+              this.manifest.custom = this.manifest.custom || {};
+              this.manifest.custom[entry.customType] = entry.data;
+            }
+          }
+        })[entry.type].call(self);
+      });
+      return _this;
+    }
+
+    /**
+     * Parse the input string and update the manifest object.
+     *
+     * @param {String} chunk a potentially incomplete portion of the manifest
+     */
+
+    Parser.prototype.push = function push(chunk) {
+      this.lineStream.push(chunk);
+    };
+
+    /**
+     * Flush any remaining input. This can be handy if the last line of an M3U8
+     * manifest did not contain a trailing newline but the file has been
+     * completely received.
+     */
+
+    Parser.prototype.end = function end() {
+      // flush any buffered input
+      this.lineStream.push('\n');
+    };
+    /**
+     * Add an additional parser for non-standard tags
+     *
+     * @param {Object}   options              a map of options for the added parser
+     * @param {RegExp}   options.expression   a regular expression to match the custom header
+     * @param {string}   options.type         the type to register to the output
+     * @param {Function} [options.dataParser] function to parse the line into an object
+     * @param {boolean}  [options.segment]    should tag data be attached to the segment object
+     */
+
+    Parser.prototype.addParser = function addParser(options) {
+      this.parseStream.addParser(options);
+    };
+
+    return Parser;
+  }(Stream);
+
+  /**
+   * mpd-parser
+   * @version 0.6.0
+   * @copyright 2018 Brightcove, Inc
+   * @license Apache-2.0
+   */
+
+  var formatAudioPlaylist = function formatAudioPlaylist(_ref) {
+    var _attributes;
+
+    var attributes = _ref.attributes,
+      segments = _ref.segments;
+
+    var playlist = {
+      attributes: (_attributes = {
+        NAME: attributes.id,
+        BANDWIDTH: attributes.bandwidth,
+        CODECS: attributes.codecs
+      }, _attributes['PROGRAM-ID'] = 1, _attributes),
+      uri: '',
+      endList: (attributes.type || 'static') === 'static',
+      timeline: attributes.periodIndex,
+      resolvedUri: '',
+      targetDuration: attributes.duration,
+      segments: segments,
+      mediaSequence: segments.length ? segments[0].number : 1
+    };
+
+    if (attributes.contentProtection) {
+      playlist.contentProtection = attributes.contentProtection;
+    }
+
+    return playlist;
+  };
+
+  var formatVttPlaylist = function formatVttPlaylist(_ref2) {
+    var _attributes2;
+
+    var attributes = _ref2.attributes,
+      segments = _ref2.segments;
+
+    if (typeof segments === 'undefined') {
+      // vtt tracks may use single file in BaseURL
+      segments = [{
+        uri: attributes.baseUrl,
+        timeline: attributes.periodIndex,
+        resolvedUri: attributes.baseUrl || '',
+        duration: attributes.sourceDuration,
+        number: 0
+      }];
+      // targetDuration should be the same duration as the only segment
+      attributes.duration = attributes.sourceDuration;
+    }
+    return {
+      attributes: (_attributes2 = {
+        NAME: attributes.id,
+        BANDWIDTH: attributes.bandwidth
+      }, _attributes2['PROGRAM-ID'] = 1, _attributes2),
+      uri: '',
+      endList: (attributes.type || 'static') === 'static',
+      timeline: attributes.periodIndex,
+      resolvedUri: attributes.baseUrl || '',
+      targetDuration: attributes.duration,
+      segments: segments,
+      mediaSequence: segments.length ? segments[0].number : 1
+    };
+  };
+
+  var organizeAudioPlaylists = function organizeAudioPlaylists(playlists) {
+    return playlists.reduce(function (a, playlist) {
+      var role = playlist.attributes.role && playlist.attributes.role.value || 'main';
+      var language = playlist.attributes.lang || '';
+
+      var label = 'main';
+
+      if (language) {
+        label = playlist.attributes.lang + ' (' + role + ')';
+      }
+
+      // skip if we already have the highest quality audio for a language
+      if (a[label] && a[label].playlists[0].attributes.BANDWIDTH > playlist.attributes.bandwidth) {
+        return a;
+      }
+
+      a[label] = {
+        language: language,
+        autoselect: true,
+        default: role === 'main',
+        playlists: [formatAudioPlaylist(playlist)],
+        uri: ''
+      };
+
+      return a;
+    }, {});
+  };
+
+  var organizeVttPlaylists = function organizeVttPlaylists(playlists) {
+    return playlists.reduce(function (a, playlist) {
+      var label = playlist.attributes.lang || 'text';
+
+      // skip if we already have subtitles
+      if (a[label]) {
+        return a;
+      }
+
+      a[label] = {
+        language: label,
+        default: false,
+        autoselect: false,
+        playlists: [formatVttPlaylist(playlist)],
+        uri: ''
+      };
+
+      return a;
+    }, {});
+  };
+
+  var formatVideoPlaylist = function formatVideoPlaylist(_ref3) {
+    var _attributes3;
+
+    var attributes = _ref3.attributes,
+      segments = _ref3.segments;
+
+    var playlist = {
+      attributes: (_attributes3 = {
+        NAME: attributes.id,
+        AUDIO: 'audio',
+        SUBTITLES: 'subs',
+        RESOLUTION: {
+          width: attributes.width,
+          height: attributes.height
+        },
+        CODECS: attributes.codecs,
+        BANDWIDTH: attributes.bandwidth
+      }, _attributes3['PROGRAM-ID'] = 1, _attributes3),
+      uri: '',
+      endList: (attributes.type || 'static') === 'static',
+      timeline: attributes.periodIndex,
+      resolvedUri: '',
+      targetDuration: attributes.duration,
+      segments: segments,
+      mediaSequence: segments.length ? segments[0].number : 1
+    };
+
+    if (attributes.contentProtection) {
+      playlist.contentProtection = attributes.contentProtection;
+    }
+
+    return playlist;
+  };
+
+  var toM3u8 = function toM3u8(dashPlaylists) {
+    var _mediaGroups;
+
+    if (!dashPlaylists.length) {
+      return {};
+    }
+
+    // grab all master attributes
+    var _dashPlaylists$0$attr = dashPlaylists[0].attributes,
+      duration = _dashPlaylists$0$attr.sourceDuration,
+      _dashPlaylists$0$attr2 = _dashPlaylists$0$attr.minimumUpdatePeriod,
+      minimumUpdatePeriod = _dashPlaylists$0$attr2 === undefined ? 0 : _dashPlaylists$0$attr2;
+
+
+    var videoOnly = function videoOnly(_ref4) {
+      var attributes = _ref4.attributes;
+      return attributes.mimeType === 'video/mp4' || attributes.contentType === 'video';
+    };
+    var audioOnly = function audioOnly(_ref5) {
+      var attributes = _ref5.attributes;
+      return attributes.mimeType === 'audio/mp4' || attributes.contentType === 'audio';
+    };
+    var vttOnly = function vttOnly(_ref6) {
+      var attributes = _ref6.attributes;
+      return attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';
+    };
+
+    var videoPlaylists = dashPlaylists.filter(videoOnly).map(formatVideoPlaylist);
+    var audioPlaylists = dashPlaylists.filter(audioOnly);
+    var vttPlaylists = dashPlaylists.filter(vttOnly);
+
+    var master = {
+      allowCache: true,
+      discontinuityStarts: [],
+      segments: [],
+      endList: true,
+      mediaGroups: (_mediaGroups = {
+        AUDIO: {},
+        VIDEO: {}
+      }, _mediaGroups['CLOSED-CAPTIONS'] = {}, _mediaGroups.SUBTITLES = {}, _mediaGroups),
+      uri: '',
+      duration: duration,
+      playlists: videoPlaylists,
+      minimumUpdatePeriod: minimumUpdatePeriod * 1000
+    };
+
+    if (audioPlaylists.length) {
+      master.mediaGroups.AUDIO.audio = organizeAudioPlaylists(audioPlaylists);
+    }
+
+    if (vttPlaylists.length) {
+      master.mediaGroups.SUBTITLES.subs = organizeVttPlaylists(vttPlaylists);
+    }
+
+    return master;
+  };
+
+  var isObject$1 = function isObject(obj) {
+    return !!obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
+  };
+
+  var merge = function merge() {
+    for (var _len = arguments.length, objects = Array(_len), _key = 0; _key < _len; _key++) {
+      objects[_key] = arguments[_key];
+    }
+
+    return objects.reduce(function (result, source) {
+
+      Object.keys(source).forEach(function (key) {
+
+        if (Array.isArray(result[key]) && Array.isArray(source[key])) {
+          result[key] = result[key].concat(source[key]);
+        } else if (isObject$1(result[key]) && isObject$1(source[key])) {
+          result[key] = merge(result[key], source[key]);
+        } else {
+          result[key] = source[key];
+        }
+      });
+      return result;
+    }, {});
+  };
+
+  var resolveUrl = function resolveUrl(baseUrl, relativeUrl) {
+    // return early if we don't need to resolve
+    if (/^[a-z]+:/i.test(relativeUrl)) {
+      return relativeUrl;
+    }
+
+    // if the base URL is relative then combine with the current location
+    if (!/\/\//i.test(baseUrl)) {
+      baseUrl = urlToolkit.buildAbsoluteURL(window_1.location.href, baseUrl);
+    }
+
+    return urlToolkit.buildAbsoluteURL(baseUrl, relativeUrl);
+  };
+
+  /**
+   * @typedef {Object} SingleUri
+   * @property {string} uri - relative location of segment
+   * @property {string} resolvedUri - resolved location of segment
+   * @property {Object} byterange - Object containing information on how to make byte range
+   *   requests following byte-range-spec per RFC2616.
+   * @property {String} byterange.length - length of range request
+   * @property {String} byterange.offset - byte offset of range request
+   *
+   * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1
+   */
+
+  /**
+   * Converts a URLType node (5.3.9.2.3 Table 13) to a segment object
+   * that conforms to how m3u8-parser is structured
+   *
+   * @see https://github.com/videojs/m3u8-parser
+   *
+   * @param {string} baseUrl - baseUrl provided by <BaseUrl> nodes
+   * @param {string} source - source url for segment
+   * @param {string} range - optional range used for range calls, follows
+   * @return {SingleUri} full segment information transformed into a format similar
+   *   to m3u8-parser
+   */
+  var urlTypeToSegment = function urlTypeToSegment(_ref7) {
+    var _ref7$baseUrl = _ref7.baseUrl,
+      baseUrl = _ref7$baseUrl === undefined ? '' : _ref7$baseUrl,
+      _ref7$source = _ref7.source,
+      source = _ref7$source === undefined ? '' : _ref7$source,
+      _ref7$range = _ref7.range,
+      range = _ref7$range === undefined ? '' : _ref7$range;
+
+    var init = {
+      uri: source,
+      resolvedUri: resolveUrl(baseUrl || '', source)
+    };
+
+    if (range) {
+      var ranges = range.split('-');
+      var startRange = parseInt(ranges[0], 10);
+      var endRange = parseInt(ranges[1], 10);
+
+      init.byterange = {
+        length: endRange - startRange,
+        offset: startRange
+      };
+    }
+
+    return init;
+  };
+
+  /**
+   * Calculates the R (repetition) value for a live stream (for the final segment
+   * in a manifest where the r value is negative 1)
+   *
+   * @param {Object} attributes
+   *        Object containing all inherited attributes from parent elements with attribute
+   *        names as keys
+   * @param {number} time
+   *        current time (typically the total time up until the final segment)
+   * @param {number} duration
+   *        duration property for the given <S />
+   *
+   * @return {number}
+   *        R value to reach the end of the given period
+   */
+  var getLiveRValue = function getLiveRValue(attributes, time, duration) {
+    var NOW = attributes.NOW,
+      clientOffset = attributes.clientOffset,
+      availabilityStartTime = attributes.availabilityStartTime,
+      _attributes$timescale = attributes.timescale,
+      timescale = _attributes$timescale === undefined ? 1 : _attributes$timescale,
+      _attributes$start = attributes.start,
+      start = _attributes$start === undefined ? 0 : _attributes$start,
+      _attributes$minimumUp = attributes.minimumUpdatePeriod,
+      minimumUpdatePeriod = _attributes$minimumUp === undefined ? 0 : _attributes$minimumUp;
+
+    var now = (NOW + clientOffset) / 1000;
+    var periodStartWC = availabilityStartTime + start;
+    var periodEndWC = now + minimumUpdatePeriod;
+    var periodDuration = periodEndWC - periodStartWC;
+
+    return Math.ceil((periodDuration * timescale - time) / duration);
+  };
+
+  /**
+   * Uses information provided by SegmentTemplate.SegmentTimeline to determine segment
+   * timing and duration
+   *
+   * @param {Object} attributes
+   *        Object containing all inherited attributes from parent elements with attribute
+   *        names as keys
+   * @param {Object[]} segmentTimeline
+   *        List of objects representing the attributes of each S element contained within
+   *
+   * @return {{number: number, duration: number, time: number, timeline: number}[]}
+   *         List of Objects with segment timing and duration info
+   */
+  var parseByTimeline = function parseByTimeline(attributes, segmentTimeline) {
+    var _attributes$type = attributes.type,
+      type = _attributes$type === undefined ? 'static' : _attributes$type,
+      _attributes$minimumUp2 = attributes.minimumUpdatePeriod,
+      minimumUpdatePeriod = _attributes$minimumUp2 === undefined ? 0 : _attributes$minimumUp2,
+      _attributes$media = attributes.media,
+      media = _attributes$media === undefined ? '' : _attributes$media,
+      sourceDuration = attributes.sourceDuration,
+      _attributes$timescale2 = attributes.timescale,
+      timescale = _attributes$timescale2 === undefined ? 1 : _attributes$timescale2,
+      _attributes$startNumb = attributes.startNumber,
+      startNumber = _attributes$startNumb === undefined ? 1 : _attributes$startNumb,
+      timeline = attributes.periodIndex;
+
+    var segments = [];
+    var time = -1;
+
+    for (var sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {
+      var S = segmentTimeline[sIndex];
+      var duration = S.d;
+      var repeat = S.r || 0;
+      var segmentTime = S.t || 0;
+
+      if (time < 0) {
+        // first segment
+        time = segmentTime;
+      }
+
+      if (segmentTime && segmentTime > time) {
+        // discontinuity
+
+        // TODO: How to handle this type of discontinuity
+        // timeline++ here would treat it like HLS discontuity and content would
+        // get appended without gap
+        // E.G.
+        //  <S t="0" d="1" />
+        //  <S d="1" />
+        //  <S d="1" />
+        //  <S t="5" d="1" />
+        // would have $Time$ values of [0, 1, 2, 5]
+        // should this be appened at time positions [0, 1, 2, 3],(#EXT-X-DISCONTINUITY)
+        // or [0, 1, 2, gap, gap, 5]? (#EXT-X-GAP)
+        // does the value of sourceDuration consider this when calculating arbitrary
+        // negative @r repeat value?
+        // E.G. Same elements as above with this added at the end
+        //  <S d="1" r="-1" />
+        //  with a sourceDuration of 10
+        // Would the 2 gaps be included in the time duration calculations resulting in
+        // 8 segments with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9] or 10 segments
+        // with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9, 10, 11] ?
+
+        time = segmentTime;
+      }
+
+      var count = void 0;
+
+      if (repeat < 0) {
+        var nextS = sIndex + 1;
+
+        if (nextS === segmentTimeline.length) {
+          // last segment
+          if (type === 'dynamic' && minimumUpdatePeriod > 0 && media.indexOf('$Number$') > 0) {
+            count = getLiveRValue(attributes, time, duration);
+          } else {
+            // TODO: This may be incorrect depending on conclusion of TODO above
+            count = (sourceDuration * timescale - time) / duration;
+          }
+        } else {
+          count = (segmentTimeline[nextS].t - time) / duration;
+        }
+      } else {
+        count = repeat + 1;
+      }
+
+      var end = startNumber + segments.length + count;
+      var number = startNumber + segments.length;
+
+      while (number < end) {
+        segments.push({number: number, duration: duration / timescale, time: time, timeline: timeline});
+        time += duration;
+        number++;
+      }
+    }
+
+    return segments;
+  };
+
+  var range = function range(start, end) {
+    var result = [];
+
+    for (var i = start; i < end; i++) {
+      result.push(i);
+    }
+
+    return result;
+  };
+
+  var flatten = function flatten(lists) {
+    return lists.reduce(function (x, y) {
+      return x.concat(y);
+    }, []);
+  };
+
+  var from = function from(list) {
+    if (!list.length) {
+      return [];
+    }
+
+    var result = [];
+
+    for (var i = 0; i < list.length; i++) {
+      result.push(list[i]);
+    }
+
+    return result;
+  };
+
+  /**
+   * Functions for calculating the range of available segments in static and dynamic
+   * manifests.
+   */
+  var segmentRange = {
+    /**
+     * Returns the entire range of available segments for a static MPD
+     *
+     * @param {Object} attributes
+     *        Inheritied MPD attributes
+     * @return {{ start: number, end: number }}
+     *         The start and end numbers for available segments
+     */
+    static: function _static(attributes) {
+      var duration = attributes.duration,
+        _attributes$timescale3 = attributes.timescale,
+        timescale = _attributes$timescale3 === undefined ? 1 : _attributes$timescale3,
+        sourceDuration = attributes.sourceDuration;
+
+
+      return {
+        start: 0,
+        end: Math.ceil(sourceDuration / (duration / timescale))
+      };
+    },
+
+
+    /**
+     * Returns the current live window range of available segments for a dynamic MPD
+     *
+     * @param {Object} attributes
+     *        Inheritied MPD attributes
+     * @return {{ start: number, end: number }}
+     *         The start and end numbers for available segments
+     */
+    dynamic: function dynamic(attributes) {
+      var NOW = attributes.NOW,
+        clientOffset = attributes.clientOffset,
+        availabilityStartTime = attributes.availabilityStartTime,
+        _attributes$timescale4 = attributes.timescale,
+        timescale = _attributes$timescale4 === undefined ? 1 : _attributes$timescale4,
+        duration = attributes.duration,
+        _attributes$start2 = attributes.start,
+        start = _attributes$start2 === undefined ? 0 : _attributes$start2,
+        _attributes$minimumUp3 = attributes.minimumUpdatePeriod,
+        minimumUpdatePeriod = _attributes$minimumUp3 === undefined ? 0 : _attributes$minimumUp3,
+        _attributes$timeShift = attributes.timeShiftBufferDepth,
+        timeShiftBufferDepth = _attributes$timeShift === undefined ? Infinity : _attributes$timeShift;
+
+      var now = (NOW + clientOffset) / 1000;
+      var periodStartWC = availabilityStartTime + start;
+      var periodEndWC = now + minimumUpdatePeriod;
+      var periodDuration = periodEndWC - periodStartWC;
+      var segmentCount = Math.ceil(periodDuration * timescale / duration);
+      var availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);
+      var availableEnd = Math.floor((now - periodStartWC) * timescale / duration);
+
+      return {
+        start: Math.max(0, availableStart),
+        end: Math.min(segmentCount, availableEnd)
+      };
+    }
+  };
+
+  /**
+   * Maps a range of numbers to objects with information needed to build the corresponding
+   * segment list
+   *
+   * @name toSegmentsCallback
+   * @function
+   * @param {number} number
+   *        Number of the segment
+   * @param {number} index
+   *        Index of the number in the range list
+   * @return {{ number: Number, duration: Number, timeline: Number, time: Number }}
+   *         Object with segment timing and duration info
+   */
+
+  /**
+   * Returns a callback for Array.prototype.map for mapping a range of numbers to
+   * information needed to build the segment list.
+   *
+   * @param {Object} attributes
+   *        Inherited MPD attributes
+   * @return {toSegmentsCallback}
+   *         Callback map function
+   */
+  var toSegments = function toSegments(attributes) {
+    return function (number, index) {
+      var duration = attributes.duration,
+        _attributes$timescale5 = attributes.timescale,
+        timescale = _attributes$timescale5 === undefined ? 1 : _attributes$timescale5,
+        periodIndex = attributes.periodIndex,
+        _attributes$startNumb2 = attributes.startNumber,
+        startNumber = _attributes$startNumb2 === undefined ? 1 : _attributes$startNumb2;
+
+
+      return {
+        number: startNumber + number,
+        duration: duration / timescale,
+        timeline: periodIndex,
+        time: index * duration
+      };
+    };
+  };
+
+  /**
+   * Returns a list of objects containing segment timing and duration info used for
+   * building the list of segments. This uses the @duration attribute specified
+   * in the MPD manifest to derive the range of segments.
+   *
+   * @param {Object} attributes
+   *        Inherited MPD attributes
+   * @return {{number: number, duration: number, time: number, timeline: number}[]}
+   *         List of Objects with segment timing and duration info
+   */
+  var parseByDuration = function parseByDuration(attributes) {
+    var _attributes$type2 = attributes.type,
+      type = _attributes$type2 === undefined ? 'static' : _attributes$type2,
+      duration = attributes.duration,
+      _attributes$timescale6 = attributes.timescale,
+      timescale = _attributes$timescale6 === undefined ? 1 : _attributes$timescale6,
+      sourceDuration = attributes.sourceDuration;
+
+    var _segmentRange$type = segmentRange[type](attributes),
+      start = _segmentRange$type.start,
+      end = _segmentRange$type.end;
+
+    var segments = range(start, end).map(toSegments(attributes));
+
+    if (type === 'static') {
+      var index = segments.length - 1;
+
+      // final segment may be less than full segment duration
+      segments[index].duration = sourceDuration - duration / timescale * index;
+    }
+
+    return segments;
+  };
+
+  var identifierPattern = /\$([A-z]*)(?:(%0)([0-9]+)d)?\$/g;
+
+  /**
+   * Replaces template identifiers with corresponding values. To be used as the callback
+   * for String.prototype.replace
+   *
+   * @name replaceCallback
+   * @function
+   * @param {string} match
+   *        Entire match of identifier
+   * @param {string} identifier
+   *        Name of matched identifier
+   * @param {string} format
+   *        Format tag string. Its presence indicates that padding is expected
+   * @param {string} width
+   *        Desired length of the replaced value. Values less than this width shall be left
+   *        zero padded
+   * @return {string}
+   *         Replacement for the matched identifier
+   */
+
+  /**
+   * Returns a function to be used as a callback for String.prototype.replace to replace
+   * template identifiers
+   *
+   * @param {Obect} values
+   *        Object containing values that shall be used to replace known identifiers
+   * @param {number} values.RepresentationID
+   *        Value of the Representation@id attribute
+   * @param {number} values.Number
+   *        Number of the corresponding segment
+   * @param {number} values.Bandwidth
+   *        Value of the Representation@bandwidth attribute.
+   * @param {number} values.Time
+   *        Timestamp value of the corresponding segment
+   * @return {replaceCallback}
+   *         Callback to be used with String.prototype.replace to replace identifiers
+   */
+  var identifierReplacement = function identifierReplacement(values) {
+    return function (match, identifier, format, width) {
+      if (match === '$$') {
+        // escape sequence
+        return '$';
+      }
+
+      if (typeof values[identifier] === 'undefined') {
+        return match;
+      }
+
+      var value = '' + values[identifier];
+
+      if (identifier === 'RepresentationID') {
+        // Format tag shall not be present with RepresentationID
+        return value;
+      }
+
+      if (!format) {
+        width = 1;
+      } else {
+        width = parseInt(width, 10);
+      }
+
+      if (value.length >= width) {
+        return value;
+      }
+
+      return '' + new Array(width - value.length + 1).join('0') + value;
+    };
+  };
+
+  /**
+   * Constructs a segment url from a template string
+   *
+   * @param {string} url
+   *        Template string to construct url from
+   * @param {Obect} values
+   *        Object containing values that shall be used to replace known identifiers
+   * @param {number} values.RepresentationID
+   *        Value of the Representation@id attribute
+   * @param {number} values.Number
+   *        Number of the corresponding segment
+   * @param {number} values.Bandwidth
+   *        Value of the Representation@bandwidth attribute.
+   * @param {number} values.Time
+   *        Timestamp value of the corresponding segment
+   * @return {string}
+   *         Segment url with identifiers replaced
+   */
+  var constructTemplateUrl = function constructTemplateUrl(url, values) {
+    return url.replace(identifierPattern, identifierReplacement(values));
+  };
+
+  /**
+   * Generates a list of objects containing timing and duration information about each
+   * segment needed to generate segment uris and the complete segment object
+   *
+   * @param {Object} attributes
+   *        Object containing all inherited attributes from parent elements with attribute
+   *        names as keys
+   * @param {Object[]|undefined} segmentTimeline
+   *        List of objects representing the attributes of each S element contained within
+   *        the SegmentTimeline element
+   * @return {{number: number, duration: number, time: number, timeline: number}[]}
+   *         List of Objects with segment timing and duration info
+   */
+  var parseTemplateInfo = function parseTemplateInfo(attributes, segmentTimeline) {
+    if (!attributes.duration && !segmentTimeline) {
+      // if neither @duration or SegmentTimeline are present, then there shall be exactly
+      // one media segment
+      return [{
+        number: attributes.startNumber || 1,
+        duration: attributes.sourceDuration,
+        time: 0,
+        timeline: attributes.periodIndex
+      }];
+    }
+
+    if (attributes.duration) {
+      return parseByDuration(attributes);
+    }
+
+    return parseByTimeline(attributes, segmentTimeline);
+  };
+
+  /**
+   * Generates a list of segments using information provided by the SegmentTemplate element
+   *
+   * @param {Object} attributes
+   *        Object containing all inherited attributes from parent elements with attribute
+   *        names as keys
+   * @param {Object[]|undefined} segmentTimeline
+   *        List of objects representing the attributes of each S element contained within
+   *        the SegmentTimeline element
+   * @return {Object[]}
+   *         List of segment objects
+   */
+  var segmentsFromTemplate = function segmentsFromTemplate(attributes, segmentTimeline) {
+    var templateValues = {
+      RepresentationID: attributes.id,
+      Bandwidth: attributes.bandwidth || 0
+    };
+
+    var _attributes$initializ = attributes.initialization,
+      initialization = _attributes$initializ === undefined ? {sourceURL: '', range: ''} : _attributes$initializ;
+
+
+    var mapSegment = urlTypeToSegment({
+      baseUrl: attributes.baseUrl,
+      source: constructTemplateUrl(initialization.sourceURL, templateValues),
+      range: initialization.range
+    });
+
+    var segments = parseTemplateInfo(attributes, segmentTimeline);
+
+    return segments.map(function (segment) {
+      templateValues.Number = segment.number;
+      templateValues.Time = segment.time;
+
+      var uri = constructTemplateUrl(attributes.media || '', templateValues);
+
+      return {
+        uri: uri,
+        timeline: segment.timeline,
+        duration: segment.duration,
+        resolvedUri: resolveUrl(attributes.baseUrl || '', uri),
+        map: mapSegment,
+        number: segment.number
+      };
+    });
+  };
+
+  var errors = {
+    INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',
+    DASH_EMPTY_MANIFEST: 'DASH_EMPTY_MANIFEST',
+    DASH_INVALID_XML: 'DASH_INVALID_XML',
+    NO_BASE_URL: 'NO_BASE_URL',
+    MISSING_SEGMENT_INFORMATION: 'MISSING_SEGMENT_INFORMATION',
+    SEGMENT_TIME_UNSPECIFIED: 'SEGMENT_TIME_UNSPECIFIED',
+    UNSUPPORTED_UTC_TIMING_SCHEME: 'UNSUPPORTED_UTC_TIMING_SCHEME'
+  };
+
+  /**
+   * Converts a <SegmentUrl> (of type URLType from the DASH spec 5.3.9.2 Table 14)
+   * to an object that matches the output of a segment in videojs/mpd-parser
+   *
+   * @param {Object} attributes
+   *   Object containing all inherited attributes from parent elements with attribute
+   *   names as keys
+   * @param {Object} segmentUrl
+   *   <SegmentURL> node to translate into a segment object
+   * @return {Object} translated segment object
+   */
+  var SegmentURLToSegmentObject = function SegmentURLToSegmentObject(attributes, segmentUrl) {
+    var baseUrl = attributes.baseUrl,
+      _attributes$initializ2 = attributes.initialization,
+      initialization = _attributes$initializ2 === undefined ? {} : _attributes$initializ2;
+
+
+    var initSegment = urlTypeToSegment({
+      baseUrl: baseUrl,
+      source: initialization.sourceURL,
+      range: initialization.range
+    });
+
+    var segment = urlTypeToSegment({
+      baseUrl: baseUrl,
+      source: segmentUrl.media,
+      range: segmentUrl.mediaRange
+    });
+
+    segment.map = initSegment;
+
+    return segment;
+  };
+
+  /**
+   * Generates a list of segments using information provided by the SegmentList element
+   * SegmentList (DASH SPEC Section 5.3.9.3.2) contains a set of <SegmentURL> nodes.  Each
+   * node should be translated into segment.
+   *
+   * @param {Object} attributes
+   *   Object containing all inherited attributes from parent elements with attribute
+   *   names as keys
+   * @param {Object[]|undefined} segmentTimeline
+   *        List of objects representing the attributes of each S element contained within
+   *        the SegmentTimeline element
+   * @return {Object.<Array>} list of segments
+   */
+  var segmentsFromList = function segmentsFromList(attributes, segmentTimeline) {
+    var duration = attributes.duration,
+      _attributes$segmentUr = attributes.segmentUrls,
+      segmentUrls = _attributes$segmentUr === undefined ? [] : _attributes$segmentUr;
+
+    // Per spec (5.3.9.2.1) no way to determine segment duration OR
+    // if both SegmentTimeline and @duration are defined, it is outside of spec.
+
+    if (!duration && !segmentTimeline || duration && segmentTimeline) {
+      throw new Error(errors.SEGMENT_TIME_UNSPECIFIED);
+    }
+
+    var segmentUrlMap = segmentUrls.map(function (segmentUrlObject) {
+      return SegmentURLToSegmentObject(attributes, segmentUrlObject);
+    });
+    var segmentTimeInfo = void 0;
+
+    if (duration) {
+      segmentTimeInfo = parseByDuration(attributes);
+    }
+
+    if (segmentTimeline) {
+      segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);
+    }
+
+    var segments = segmentTimeInfo.map(function (segmentTime, index) {
+      if (segmentUrlMap[index]) {
+        var segment = segmentUrlMap[index];
+
+        segment.timeline = segmentTime.timeline;
+        segment.duration = segmentTime.duration;
+        segment.number = segmentTime.number;
+        return segment;
+      }
+      // Since we're mapping we should get rid of any blank segments (in case
+      // the given SegmentTimeline is handling for more elements than we have
+      // SegmentURLs for).
+    }).filter(function (segment) {
+      return segment;
+    });
+
+    return segments;
+  };
+
+  /**
+   * Translates SegmentBase into a set of segments.
+   * (DASH SPEC Section 5.3.9.3.2) contains a set of <SegmentURL> nodes.  Each
+   * node should be translated into segment.
+   *
+   * @param {Object} attributes
+   *   Object containing all inherited attributes from parent elements with attribute
+   *   names as keys
+   * @return {Object.<Array>} list of segments
+   */
+  var segmentsFromBase = function segmentsFromBase(attributes) {
+    var baseUrl = attributes.baseUrl,
+      _attributes$initializ3 = attributes.initialization,
+      initialization = _attributes$initializ3 === undefined ? {} : _attributes$initializ3,
+      sourceDuration = attributes.sourceDuration,
+      _attributes$timescale7 = attributes.timescale,
+      timescale = _attributes$timescale7 === undefined ? 1 : _attributes$timescale7,
+      _attributes$indexRang = attributes.indexRange,
+      indexRange = _attributes$indexRang === undefined ? '' : _attributes$indexRang,
+      duration = attributes.duration;
+
+    // base url is required for SegmentBase to work, per spec (Section 5.3.9.2.1)
+
+    if (!baseUrl) {
+      throw new Error(errors.NO_BASE_URL);
+    }
+
+    var initSegment = urlTypeToSegment({
+      baseUrl: baseUrl,
+      source: initialization.sourceURL,
+      range: initialization.range
+    });
+    var segment = urlTypeToSegment({baseUrl: baseUrl, source: baseUrl, range: indexRange});
+
+    segment.map = initSegment;
+
+    // If there is a duration, use it, otherwise use the given duration of the source
+    // (since SegmentBase is only for one total segment)
+    if (duration) {
+      var segmentTimeInfo = parseByDuration(attributes);
+
+      if (segmentTimeInfo.length) {
+        segment.duration = segmentTimeInfo[0].duration;
+        segment.timeline = segmentTimeInfo[0].timeline;
+      }
+    } else if (sourceDuration) {
+      segment.duration = sourceDuration / timescale;
+      segment.timeline = 0;
+    }
+
+    // This is used for mediaSequence
+    segment.number = 0;
+
+    return [segment];
+  };
+
+  var generateSegments = function generateSegments(_ref8) {
+    var attributes = _ref8.attributes,
+      segmentInfo = _ref8.segmentInfo;
+
+    var segmentAttributes = void 0;
+    var segmentsFn = void 0;
+
+    if (segmentInfo.template) {
+      segmentsFn = segmentsFromTemplate;
+      segmentAttributes = merge(attributes, segmentInfo.template);
+    } else if (segmentInfo.base) {
+      segmentsFn = segmentsFromBase;
+      segmentAttributes = merge(attributes, segmentInfo.base);
+    } else if (segmentInfo.list) {
+      segmentsFn = segmentsFromList;
+      segmentAttributes = merge(attributes, segmentInfo.list);
+    }
+
+    if (!segmentsFn) {
+      return {attributes: attributes};
+    }
+
+    var segments = segmentsFn(segmentAttributes, segmentInfo.timeline);
+
+    // The @duration attribute will be used to determin the playlist's targetDuration which
+    // must be in seconds. Since we've generated the segment list, we no longer need
+    // @duration to be in @timescale units, so we can convert it here.
+    if (segmentAttributes.duration) {
+      var _segmentAttributes = segmentAttributes,
+        duration = _segmentAttributes.duration,
+        _segmentAttributes$ti = _segmentAttributes.timescale,
+        timescale = _segmentAttributes$ti === undefined ? 1 : _segmentAttributes$ti;
+
+
+      segmentAttributes.duration = duration / timescale;
+    } else if (segments.length) {
+      // if there is no @duration attribute, use the largest segment duration as
+      // as target duration
+      segmentAttributes.duration = segments.reduce(function (max, segment) {
+        return Math.max(max, Math.ceil(segment.duration));
+      }, 0);
+    } else {
+      segmentAttributes.duration = 0;
+    }
+
+    return {
+      attributes: segmentAttributes,
+      segments: segments
+    };
+  };
+
+  var toPlaylists = function toPlaylists(representations) {
+    return representations.map(generateSegments);
+  };
+
+  var findChildren = function findChildren(element, name) {
+    return from(element.childNodes).filter(function (_ref9) {
+      var tagName = _ref9.tagName;
+      return tagName === name;
+    });
+  };
+
+  var getContent = function getContent(element) {
+    return element.textContent.trim();
+  };
+
+  var parseDuration = function parseDuration(str) {
+    var SECONDS_IN_YEAR = 365 * 24 * 60 * 60;
+    var SECONDS_IN_MONTH = 30 * 24 * 60 * 60;
+    var SECONDS_IN_DAY = 24 * 60 * 60;
+    var SECONDS_IN_HOUR = 60 * 60;
+    var SECONDS_IN_MIN = 60;
+
+    // P10Y10M10DT10H10M10.1S
+    var durationRegex = /P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/;
+    var match = durationRegex.exec(str);
+
+    if (!match) {
+      return 0;
+    }
+
+    var _match$slice = match.slice(1),
+      year = _match$slice[0],
+      month = _match$slice[1],
+      day = _match$slice[2],
+      hour = _match$slice[3],
+      minute = _match$slice[4],
+      second = _match$slice[5];
+
+    return parseFloat(year || 0) * SECONDS_IN_YEAR + parseFloat(month || 0) * SECONDS_IN_MONTH + parseFloat(day || 0) * SECONDS_IN_DAY + parseFloat(hour || 0) * SECONDS_IN_HOUR + parseFloat(minute || 0) * SECONDS_IN_MIN + parseFloat(second || 0);
+  };
+
+  var parseDate = function parseDate(str) {
+    // Date format without timezone according to ISO 8601
+    // YYY-MM-DDThh:mm:ss.ssssss
+    var dateRegex = /^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/;
+
+    // If the date string does not specifiy a timezone, we must specifiy UTC. This is
+    // expressed by ending with 'Z'
+    if (dateRegex.test(str)) {
+      str += 'Z';
+    }
+
+    return Date.parse(str);
+  };
+
+  // TODO: maybe order these in some way that makes it easy to find specific attributes
+  var parsers = {
+    /**
+     * Specifies the duration of the entire Media Presentation. Format is a duration string
+     * as specified in ISO 8601
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The duration in seconds
+     */
+    mediaPresentationDuration: function mediaPresentationDuration(value) {
+      return parseDuration(value);
+    },
+
+
+    /**
+     * Specifies the Segment availability start time for all Segments referred to in this
+     * MPD. For a dynamic manifest, it specifies the anchor for the earliest availability
+     * time. Format is a date string as specified in ISO 8601
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The date as seconds from unix epoch
+     */
+    availabilityStartTime: function availabilityStartTime(value) {
+      return parseDate(value) / 1000;
+    },
+
+
+    /**
+     * Specifies the smallest period between potential changes to the MPD. Format is a
+     * duration string as specified in ISO 8601
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The duration in seconds
+     */
+    minimumUpdatePeriod: function minimumUpdatePeriod(value) {
+      return parseDuration(value);
+    },
+
+
+    /**
+     * Specifies the duration of the smallest time shifting buffer for any Representation
+     * in the MPD. Format is a duration string as specified in ISO 8601
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The duration in seconds
+     */
+    timeShiftBufferDepth: function timeShiftBufferDepth(value) {
+      return parseDuration(value);
+    },
+
+
+    /**
+     * Specifies the PeriodStart time of the Period relative to the availabilityStarttime.
+     * Format is a duration string as specified in ISO 8601
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The duration in seconds
+     */
+    start: function start(value) {
+      return parseDuration(value);
+    },
+
+
+    /**
+     * Specifies the width of the visual presentation
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed width
+     */
+    width: function width(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the height of the visual presentation
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed height
+     */
+    height: function height(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the bitrate of the representation
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed bandwidth
+     */
+    bandwidth: function bandwidth(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the number of the first Media Segment in this Representation in the Period
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed number
+     */
+    startNumber: function startNumber(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the timescale in units per seconds
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The aprsed timescale
+     */
+    timescale: function timescale(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the constant approximate Segment duration
+     * NOTE: The <Period> element also contains an @duration attribute. This duration
+     *       specifies the duration of the Period. This attribute is currently not
+     *       supported by the rest of the parser, however we still check for it to prevent
+     *       errors.
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed duration
+     */
+    duration: function duration(value) {
+      var parsedValue = parseInt(value, 10);
+
+      if (isNaN(parsedValue)) {
+        return parseDuration(value);
+      }
+
+      return parsedValue;
+    },
+
+
+    /**
+     * Specifies the Segment duration, in units of the value of the @timescale.
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed duration
+     */
+    d: function d(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the MPD start time, in @timescale units, the first Segment in the series
+     * starts relative to the beginning of the Period
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed time
+     */
+    t: function t(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Specifies the repeat count of the number of following contiguous Segments with the
+     * same duration expressed by the value of @d
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {number}
+     *         The parsed number
+     */
+    r: function r(value) {
+      return parseInt(value, 10);
+    },
+
+
+    /**
+     * Default parser for all other attributes. Acts as a no-op and just returns the value
+     * as a string
+     *
+     * @param {string} value
+     *        value of attribute as a string
+     * @return {string}
+     *         Unparsed value
+     */
+    DEFAULT: function DEFAULT(value) {
+      return value;
+    }
+  };
+
+  /**
+   * Gets all the attributes and values of the provided node, parses attributes with known
+   * types, and returns an object with attribute names mapped to values.
+   *
+   * @param {Node} el
+   *        The node to parse attributes from
+   * @return {Object}
+   *         Object with all attributes of el parsed
+   */
+  var parseAttributes$1 = function parseAttributes(el) {
+    if (!(el && el.attributes)) {
+      return {};
+    }
+
+    return from(el.attributes).reduce(function (a, e) {
+      var parseFn = parsers[e.name] || parsers.DEFAULT;
+
+      a[e.name] = parseFn(e.value);
+
+      return a;
+    }, {});
+  };
+
+  function decodeB64ToUint8Array(b64Text) {
+    var decodedString = window_1.atob(b64Text);
+    var array = new Uint8Array(decodedString.length);
+
+    for (var i = 0; i < decodedString.length; i++) {
+      array[i] = decodedString.charCodeAt(i);
+    }
+    return array;
+  }
+
+  var keySystemsMap = {
+    'urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b': 'org.w3.clearkey',
+    'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed': 'com.widevine.alpha',
+    'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95': 'com.microsoft.playready',
+    'urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb': 'com.adobe.primetime'
+  };
+
+  /**
+   * Builds a list of urls that is the product of the reference urls and BaseURL values
+   *
+   * @param {string[]} referenceUrls
+   *        List of reference urls to resolve to
+   * @param {Node[]} baseUrlElements
+   *        List of BaseURL nodes from the mpd
+   * @return {string[]}
+   *         List of resolved urls
+   */
+  var buildBaseUrls = function buildBaseUrls(referenceUrls, baseUrlElements) {
+    if (!baseUrlElements.length) {
+      return referenceUrls;
+    }
+
+    return flatten(referenceUrls.map(function (reference) {
+      return baseUrlElements.map(function (baseUrlElement) {
+        return resolveUrl(reference, getContent(baseUrlElement));
+      });
+    }));
+  };
+
+  /**
+   * Contains all Segment information for its containing AdaptationSet
+   *
+   * @typedef {Object} SegmentInformation
+   * @property {Object|undefined} template
+   *           Contains the attributes for the SegmentTemplate node
+   * @property {Object[]|undefined} timeline
+   *           Contains a list of atrributes for each S node within the SegmentTimeline node
+   * @property {Object|undefined} list
+   *           Contains the attributes for the SegmentList node
+   * @property {Object|undefined} base
+   *           Contains the attributes for the SegmentBase node
+   */
+
+  /**
+   * Returns all available Segment information contained within the AdaptationSet node
+   *
+   * @param {Node} adaptationSet
+   *        The AdaptationSet node to get Segment information from
+   * @return {SegmentInformation}
+   *         The Segment information contained within the provided AdaptationSet
+   */
+  var getSegmentInformation = function getSegmentInformation(adaptationSet) {
+    var segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];
+    var segmentList = findChildren(adaptationSet, 'SegmentList')[0];
+    var segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(function (s) {
+      return merge({tag: 'SegmentURL'}, parseAttributes$1(s));
+    });
+    var segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];
+    var segmentTimelineParentNode = segmentList || segmentTemplate;
+    var segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];
+    var segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;
+    var segmentInitialization = segmentInitializationParentNode && findChildren(segmentInitializationParentNode, 'Initialization')[0];
+
+    // SegmentTemplate is handled slightly differently, since it can have both
+    // @initialization and an <Initialization> node.  @initialization can be templated,
+    // while the node can have a url and range specified.  If the <SegmentTemplate> has
+    // both @initialization and an <Initialization> subelement we opt to override with
+    // the node, as this interaction is not defined in the spec.
+    var template = segmentTemplate && parseAttributes$1(segmentTemplate);
+
+    if (template && segmentInitialization) {
+      template.initialization = segmentInitialization && parseAttributes$1(segmentInitialization);
+    } else if (template && template.initialization) {
+      // If it is @initialization we convert it to an object since this is the format that
+      // later functions will rely on for the initialization segment.  This is only valid
+      // for <SegmentTemplate>
+      template.initialization = {sourceURL: template.initialization};
+    }
+
+    var segmentInfo = {
+      template: template,
+      timeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(function (s) {
+        return parseAttributes$1(s);
+      }),
+      list: segmentList && merge(parseAttributes$1(segmentList), {
+        segmentUrls: segmentUrls,
+        initialization: parseAttributes$1(segmentInitialization)
+      }),
+      base: segmentBase && merge(parseAttributes$1(segmentBase), {
+        initialization: parseAttributes$1(segmentInitialization)
+      })
+    };
+
+    Object.keys(segmentInfo).forEach(function (key) {
+      if (!segmentInfo[key]) {
+        delete segmentInfo[key];
+      }
+    });
+
+    return segmentInfo;
+  };
+
+  /**
+   * Contains Segment information and attributes needed to construct a Playlist object
+   * from a Representation
+   *
+   * @typedef {Object} RepresentationInformation
+   * @property {SegmentInformation} segmentInfo
+   *           Segment information for this Representation
+   * @property {Object} attributes
+   *           Inherited attributes for this Representation
+   */
+
+  /**
+   * Maps a Representation node to an object containing Segment information and attributes
+   *
+   * @name inheritBaseUrlsCallback
+   * @function
+   * @param {Node} representation
+   *        Representation node from the mpd
+   * @return {RepresentationInformation}
+   *         Representation information needed to construct a Playlist object
+   */
+
+  /**
+   * Returns a callback for Array.prototype.map for mapping Representation nodes to
+   * Segment information and attributes using inherited BaseURL nodes.
+   *
+   * @param {Object} adaptationSetAttributes
+   *        Contains attributes inherited by the AdaptationSet
+   * @param {string[]} adaptationSetBaseUrls
+   *        Contains list of resolved base urls inherited by the AdaptationSet
+   * @param {SegmentInformation} adaptationSetSegmentInfo
+   *        Contains Segment information for the AdaptationSet
+   * @return {inheritBaseUrlsCallback}
+   *         Callback map function
+   */
+  var inheritBaseUrls = function inheritBaseUrls(adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) {
+    return function (representation) {
+      var repBaseUrlElements = findChildren(representation, 'BaseURL');
+      var repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);
+      var attributes = merge(adaptationSetAttributes, parseAttributes$1(representation));
+      var representationSegmentInfo = getSegmentInformation(representation);
+
+      return repBaseUrls.map(function (baseUrl) {
+        return {
+          segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),
+          attributes: merge(attributes, {baseUrl: baseUrl})
+        };
+      });
+    };
+  };
+
+  /**
+   * Tranforms a series of content protection nodes to
+   * an object containing pssh data by key system
+   *
+   * @param {Node[]} contentProtectionNodes
+   *        Content protection nodes
+   * @return {Object}
+   *        Object containing pssh data by key system
+   */
+  var generateKeySystemInformation = function generateKeySystemInformation(contentProtectionNodes) {
+    return contentProtectionNodes.reduce(function (acc, node) {
+      var attributes = parseAttributes$1(node);
+      var keySystem = keySystemsMap[attributes.schemeIdUri];
+
+      if (keySystem) {
+        acc[keySystem] = {attributes: attributes};
+
+        var psshNode = findChildren(node, 'cenc:pssh')[0];
+
+        if (psshNode) {
+          var pssh = getContent(psshNode);
+          var psshBuffer = pssh && decodeB64ToUint8Array(pssh);
+
+          acc[keySystem].pssh = psshBuffer;
+        }
+      }
+
+      return acc;
+    }, {});
+  };
+
+  /**
+   * Maps an AdaptationSet node to a list of Representation information objects
+   *
+   * @name toRepresentationsCallback
+   * @function
+   * @param {Node} adaptationSet
+   *        AdaptationSet node from the mpd
+   * @return {RepresentationInformation[]}
+   *         List of objects containing Representaion information
+   */
+
+  /**
+   * Returns a callback for Array.prototype.map for mapping AdaptationSet nodes to a list of
+   * Representation information objects
+   *
+   * @param {Object} periodAttributes
+   *        Contains attributes inherited by the Period
+   * @param {string[]} periodBaseUrls
+   *        Contains list of resolved base urls inherited by the Period
+   * @param {string[]} periodSegmentInfo
+   *        Contains Segment Information at the period level
+   * @return {toRepresentationsCallback}
+   *         Callback map function
+   */
+  var toRepresentations = function toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo) {
+    return function (adaptationSet) {
+      var adaptationSetAttributes = parseAttributes$1(adaptationSet);
+      var adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));
+      var role = findChildren(adaptationSet, 'Role')[0];
+      var roleAttributes = {role: parseAttributes$1(role)};
+
+      var attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);
+
+      var contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));
+
+      if (Object.keys(contentProtection).length) {
+        attrs = merge(attrs, {contentProtection: contentProtection});
+      }
+
+      var segmentInfo = getSegmentInformation(adaptationSet);
+      var representations = findChildren(adaptationSet, 'Representation');
+      var adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);
+
+      return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));
+    };
+  };
+
+  /**
+   * Maps an Period node to a list of Representation inforamtion objects for all
+   * AdaptationSet nodes contained within the Period
+   *
+   * @name toAdaptationSetsCallback
+   * @function
+   * @param {Node} period
+   *        Period node from the mpd
+   * @param {number} periodIndex
+   *        Index of the Period within the mpd
+   * @return {RepresentationInformation[]}
+   *         List of objects containing Representaion information
+   */
+
+  /**
+   * Returns a callback for Array.prototype.map for mapping Period nodes to a list of
+   * Representation information objects
+   *
+   * @param {Object} mpdAttributes
+   *        Contains attributes inherited by the mpd
+   * @param {string[]} mpdBaseUrls
+   *        Contains list of resolved base urls inherited by the mpd
+   * @return {toAdaptationSetsCallback}
+   *         Callback map function
+   */
+  var toAdaptationSets = function toAdaptationSets(mpdAttributes, mpdBaseUrls) {
+    return function (period, periodIndex) {
+      var periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period, 'BaseURL'));
+      var periodAtt = parseAttributes$1(period);
+      var periodAttributes = merge(mpdAttributes, periodAtt, {periodIndex: periodIndex});
+      var adaptationSets = findChildren(period, 'AdaptationSet');
+      var periodSegmentInfo = getSegmentInformation(period);
+
+      return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));
+    };
+  };
+
+  /**
+   * Traverses the mpd xml tree to generate a list of Representation information objects
+   * that have inherited attributes from parent nodes
+   *
+   * @param {Node} mpd
+   *        The root node of the mpd
+   * @param {Object} options
+   *        Available options for inheritAttributes
+   * @param {string} options.manifestUri
+   *        The uri source of the mpd
+   * @param {number} options.NOW
+   *        Current time per DASH IOP.  Default is current time in ms since epoch
+   * @param {number} options.clientOffset
+   *        Client time difference from NOW (in milliseconds)
+   * @return {RepresentationInformation[]}
+   *         List of objects containing Representation information
+   */
+  var inheritAttributes = function inheritAttributes(mpd) {
+    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    var _options$manifestUri = options.manifestUri,
+      manifestUri = _options$manifestUri === undefined ? '' : _options$manifestUri,
+      _options$NOW = options.NOW,
+      NOW = _options$NOW === undefined ? Date.now() : _options$NOW,
+      _options$clientOffset = options.clientOffset,
+      clientOffset = _options$clientOffset === undefined ? 0 : _options$clientOffset;
+
+    var periods = findChildren(mpd, 'Period');
+
+    if (periods.length !== 1) {
+      // TODO add support for multiperiod
+      throw new Error(errors.INVALID_NUMBER_OF_PERIOD);
+    }
+
+    var mpdAttributes = parseAttributes$1(mpd);
+    var mpdBaseUrls = buildBaseUrls([manifestUri], findChildren(mpd, 'BaseURL'));
+
+    mpdAttributes.sourceDuration = mpdAttributes.mediaPresentationDuration || 0;
+    mpdAttributes.NOW = NOW;
+    mpdAttributes.clientOffset = clientOffset;
+
+    return flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls)));
+  };
+
+  var stringToMpdXml = function stringToMpdXml(manifestString) {
+    if (manifestString === '') {
+      throw new Error(errors.DASH_EMPTY_MANIFEST);
+    }
+
+    var parser = new window_1.DOMParser();
+    var xml = parser.parseFromString(manifestString, 'application/xml');
+    var mpd = xml && xml.documentElement.tagName === 'MPD' ? xml.documentElement : null;
+
+    if (!mpd || mpd && mpd.getElementsByTagName('parsererror').length > 0) {
+      throw new Error(errors.DASH_INVALID_XML);
+    }
+
+    return mpd;
+  };
+
+  /**
+   * Parses the manifest for a UTCTiming node, returning the nodes attributes if found
+   *
+   * @param {string} mpd
+   *        XML string of the MPD manifest
+   * @return {Object|null}
+   *         Attributes of UTCTiming node specified in the manifest. Null if none found
+   */
+  var parseUTCTimingScheme = function parseUTCTimingScheme(mpd) {
+    var UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];
+
+    if (!UTCTimingNode) {
+      return null;
+    }
+
+    var attributes = parseAttributes$1(UTCTimingNode);
+
+    switch (attributes.schemeIdUri) {
+      case 'urn:mpeg:dash:utc:http-head:2014':
+      case 'urn:mpeg:dash:utc:http-head:2012':
+        attributes.method = 'HEAD';
+        break;
+      case 'urn:mpeg:dash:utc:http-xsdate:2014':
+      case 'urn:mpeg:dash:utc:http-iso:2014':
+      case 'urn:mpeg:dash:utc:http-xsdate:2012':
+      case 'urn:mpeg:dash:utc:http-iso:2012':
+        attributes.method = 'GET';
+        break;
+      case 'urn:mpeg:dash:utc:direct:2014':
+      case 'urn:mpeg:dash:utc:direct:2012':
+        attributes.method = 'DIRECT';
+        attributes.value = Date.parse(attributes.value);
+        break;
+      case 'urn:mpeg:dash:utc:http-ntp:2014':
+      case 'urn:mpeg:dash:utc:ntp:2014':
+      case 'urn:mpeg:dash:utc:sntp:2014':
+      default:
+        throw new Error(errors.UNSUPPORTED_UTC_TIMING_SCHEME);
+    }
+
+    return attributes;
+  };
+
+  var parse = function parse(manifestString, options) {
+    return toM3u8(toPlaylists(inheritAttributes(stringToMpdXml(manifestString), options)));
+  };
+
+  /**
+   * Parses the manifest for a UTCTiming node, returning the nodes attributes if found
+   *
+   * @param {string} manifestString
+   *        XML string of the MPD manifest
+   * @return {Object|null}
+   *         Attributes of UTCTiming node specified in the manifest. Null if none found
+   */
+  var parseUTCTiming = function parseUTCTiming(manifestString) {
+    return parseUTCTimingScheme(stringToMpdXml(manifestString));
+  };
+
+  var toUnsigned = function toUnsigned(value) {
+    return value >>> 0;
+  };
+
+  var bin = {
+    toUnsigned: toUnsigned
+  };
+  var bin_1 = bin.toUnsigned;
+
+  var bin$1 = /*#__PURE__*/Object.freeze({
+    default: bin,
+    __moduleExports: bin,
+    toUnsigned: bin_1
+  });
+
+  var require$$0$1 = (bin$1 && bin) || bin$1;
+
+  var toUnsigned$1 = require$$0$1.toUnsigned;
+  var _findBox, parseType, timescale, startTime;
+
+  // Find the data for a box specified by its path
+  _findBox = function findBox(data, path) {
+    var results = [],
+      i,
+      size,
+      type,
+      end,
+      subresults;
+
+    if (!path.length) {
+      // short-circuit the search for empty paths
+      return null;
+    }
+
+    for (i = 0; i < data.byteLength;) {
+      size = toUnsigned$1(data[i] << 24 | data[i + 1] << 16 | data[i + 2] << 8 | data[i + 3]);
+
+      type = parseType(data.subarray(i + 4, i + 8));
+
+      end = size > 1 ? i + size : data.byteLength;
+
+      if (type === path[0]) {
+        if (path.length === 1) {
+          // this is the end of the path and we've found the box we were
+          // looking for
+          results.push(data.subarray(i + 8, end));
+        } else {
+          // recursively search for the next box along the path
+          subresults = _findBox(data.subarray(i + 8, end), path.slice(1));
+          if (subresults.length) {
+            results = results.concat(subresults);
+          }
+        }
+      }
+      i = end;
+    }
+
+    // we've finished searching all of data
+    return results;
+  };
+
+  /**
+   * Returns the string representation of an ASCII encoded four byte buffer.
+   * @param buffer {Uint8Array} a four-byte buffer to translate
+   * @return {string} the corresponding string
+   */
+  parseType = function parseType(buffer) {
+    var result = '';
+    result += String.fromCharCode(buffer[0]);
+    result += String.fromCharCode(buffer[1]);
+    result += String.fromCharCode(buffer[2]);
+    result += String.fromCharCode(buffer[3]);
+    return result;
+  };
+
+  /**
+   * Parses an MP4 initialization segment and extracts the timescale
+   * values for any declared tracks. Timescale values indicate the
+   * number of clock ticks per second to assume for time-based values
+   * elsewhere in the MP4.
+   *
+   * To determine the start time of an MP4, you need two pieces of
+   * information: the timescale unit and the earliest base media decode
+   * time. Multiple timescales can be specified within an MP4 but the
+   * base media decode time is always expressed in the timescale from
+   * the media header box for the track:
+   * ```
+   * moov > trak > mdia > mdhd.timescale
+   * ```
+   * @param init {Uint8Array} the bytes of the init segment
+   * @return {object} a hash of track ids to timescale values or null if
+   * the init segment is malformed.
+   */
+  timescale = function timescale(init) {
+    var result = {},
+      traks = _findBox(init, ['moov', 'trak']);
+
+    // mdhd timescale
+    return traks.reduce(function (result, trak) {
+      var tkhd, version, index, id, mdhd;
+
+      tkhd = _findBox(trak, ['tkhd'])[0];
+      if (!tkhd) {
+        return null;
+      }
+      version = tkhd[0];
+      index = version === 0 ? 12 : 20;
+      id = toUnsigned$1(tkhd[index] << 24 | tkhd[index + 1] << 16 | tkhd[index + 2] << 8 | tkhd[index + 3]);
+
+      mdhd = _findBox(trak, ['mdia', 'mdhd'])[0];
+      if (!mdhd) {
+        return null;
+      }
+      version = mdhd[0];
+      index = version === 0 ? 12 : 20;
+      result[id] = toUnsigned$1(mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]);
+      return result;
+    }, result);
+  };
+
+  /**
+   * Determine the base media decode start time, in seconds, for an MP4
+   * fragment. If multiple fragments are specified, the earliest time is
+   * returned.
+   *
+   * The base media decode time can be parsed from track fragment
+   * metadata:
+   * ```
+   * moof > traf > tfdt.baseMediaDecodeTime
+   * ```
+   * It requires the timescale value from the mdhd to interpret.
+   *
+   * @param timescale {object} a hash of track ids to timescale values.
+   * @return {number} the earliest base media decode start time for the
+   * fragment, in seconds
+   */
+  startTime = function startTime(timescale, fragment) {
+    var trafs, baseTimes, result;
+
+    // we need info from two childrend of each track fragment box
+    trafs = _findBox(fragment, ['moof', 'traf']);
+
+    // determine the start times for each track
+    baseTimes = [].concat.apply([], trafs.map(function (traf) {
+      return _findBox(traf, ['tfhd']).map(function (tfhd) {
+        var id, scale, baseTime;
+
+        // get the track id from the tfhd
+        id = toUnsigned$1(tfhd[4] << 24 | tfhd[5] << 16 | tfhd[6] << 8 | tfhd[7]);
+        // assume a 90kHz clock if no timescale was specified
+        scale = timescale[id] || 90e3;
+
+        // get the base media decode time from the tfdt
+        baseTime = _findBox(traf, ['tfdt']).map(function (tfdt) {
+          var version, result;
+
+          version = tfdt[0];
+          result = toUnsigned$1(tfdt[4] << 24 | tfdt[5] << 16 | tfdt[6] << 8 | tfdt[7]);
+          if (version === 1) {
+            result *= Math.pow(2, 32);
+            result += toUnsigned$1(tfdt[8] << 24 | tfdt[9] << 16 | tfdt[10] << 8 | tfdt[11]);
+          }
+          return result;
+        })[0];
+        baseTime = baseTime || Infinity;
+
+        // convert base time to seconds
+        return baseTime / scale;
+      });
+    }));
+
+    // return the minimum
+    result = Math.min.apply(null, baseTimes);
+    return isFinite(result) ? result : 0;
+  };
+
+  var probe = {
+    parseType: parseType,
+    timescale: timescale,
+    startTime: startTime
+  };
+
+  var streamTypes = {
+    H264_STREAM_TYPE: 0x1B,
+    ADTS_STREAM_TYPE: 0x0F,
+    METADATA_STREAM_TYPE: 0x15
+  };
+  var streamTypes_1 = streamTypes.H264_STREAM_TYPE;
+  var streamTypes_2 = streamTypes.ADTS_STREAM_TYPE;
+  var streamTypes_3 = streamTypes.METADATA_STREAM_TYPE;
+
+  var streamTypes$1 = /*#__PURE__*/Object.freeze({
+    default: streamTypes,
+    __moduleExports: streamTypes,
+    H264_STREAM_TYPE: streamTypes_1,
+    ADTS_STREAM_TYPE: streamTypes_2,
+    METADATA_STREAM_TYPE: streamTypes_3
+  });
+
+  /**
+   * mux.js
+   *
+   * Copyright (c) 2014 Brightcove
+   * All rights reserved.
+   *
+   * A lightweight readable stream implemention that handles event dispatching.
+   * Objects that inherit from streams should call init in their constructors.
+   */
+
+  var Stream$1 = function Stream() {
+    this.init = function () {
+      var listeners = {};
+      /**
+       * Add a listener for a specified event type.
+       * @param type {string} the event name
+       * @param listener {function} the callback to be invoked when an event of
+       * the specified type occurs
+       */
+      this.on = function (type, listener) {
+        if (!listeners[type]) {
+          listeners[type] = [];
+        }
+        listeners[type] = listeners[type].concat(listener);
+      };
+      /**
+       * Remove a listener for a specified event type.
+       * @param type {string} the event name
+       * @param listener {function} a function previously registered for this
+       * type of event through `on`
+       */
+      this.off = function (type, listener) {
+        var index;
+        if (!listeners[type]) {
+          return false;
+        }
+        index = listeners[type].indexOf(listener);
+        listeners[type] = listeners[type].slice();
+        listeners[type].splice(index, 1);
+        return index > -1;
+      };
+      /**
+       * Trigger an event of the specified type on this stream. Any additional
+       * arguments to this function are passed as parameters to event listeners.
+       * @param type {string} the event name
+       */
+      this.trigger = function (type) {
+        var callbacks, i, length, args;
+        callbacks = listeners[type];
+        if (!callbacks) {
+          return;
+        }
+        // Slicing the arguments on every invocation of this method
+        // can add a significant amount of overhead. Avoid the
+        // intermediate object creation for the common case of a
+        // single callback argument
+        if (arguments.length === 2) {
+          length = callbacks.length;
+          for (i = 0; i < length; ++i) {
+            callbacks[i].call(this, arguments[1]);
+          }
+        } else {
+          args = [];
+          i = arguments.length;
+          for (i = 1; i < arguments.length; ++i) {
+            args.push(arguments[i]);
+          }
+          length = callbacks.length;
+          for (i = 0; i < length; ++i) {
+            callbacks[i].apply(this, args);
+          }
+        }
+      };
+      /**
+       * Destroys the stream and cleans up.
+       */
+      this.dispose = function () {
+        listeners = {};
+      };
+    };
+  };
+
+  /**
+   * Forwards all `data` events on this stream to the destination stream. The
+   * destination stream should provide a method `push` to receive the data
+   * events as they arrive.
+   * @param destination {stream} the stream that will receive all `data` events
+   * @param autoFlush {boolean} if false, we will not call `flush` on the destination
+   *                            when the current stream emits a 'done' event
+   * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
+   */
+  Stream$1.prototype.pipe = function (destination) {
+    this.on('data', function (data) {
+      destination.push(data);
+    });
+
+    this.on('done', function (flushSource) {
+      destination.flush(flushSource);
+    });
+
+    return destination;
+  };
+
+  // Default stream functions that are expected to be overridden to perform
+  // actual work. These are provided by the prototype as a sort of no-op
+  // implementation so that we don't have to check for their existence in the
+  // `pipe` function above.
+  Stream$1.prototype.push = function (data) {
+    this.trigger('data', data);
+  };
+
+  Stream$1.prototype.flush = function (flushSource) {
+    this.trigger('done', flushSource);
+  };
+
+  var stream = Stream$1;
+
+  var stream$1 = /*#__PURE__*/Object.freeze({
+    default: stream,
+    __moduleExports: stream
+  });
+
+  var Stream$2 = (stream$1 && stream) || stream$1;
+
+  var MAX_TS = 8589934592;
+
+  var RO_THRESH = 4294967296;
+
+  var handleRollover = function handleRollover(value, reference) {
+    var direction = 1;
+
+    if (value > reference) {
+      // If the current timestamp value is greater than our reference timestamp and we detect a
+      // timestamp rollover, this means the roll over is happening in the opposite direction.
+      // Example scenario: Enter a long stream/video just after a rollover occurred. The reference
+      // point will be set to a small number, e.g. 1. The user then seeks backwards over the
+      // rollover point. In loading this segment, the timestamp values will be very large,
+      // e.g. 2^33 - 1. Since this comes before the data we loaded previously, we want to adjust
+      // the time stamp to be `value - 2^33`.
+      direction = -1;
+    }
+
+    // Note: A seek forwards or back that is greater than the RO_THRESH (2^32, ~13 hours) will
+    // cause an incorrect adjustment.
+    while (Math.abs(reference - value) > RO_THRESH) {
+      value += direction * MAX_TS;
+    }
+
+    return value;
+  };
+
+  var TimestampRolloverStream = function TimestampRolloverStream(type) {
+    var lastDTS, referenceDTS;
+
+    TimestampRolloverStream.prototype.init.call(this);
+
+    this.type_ = type;
+
+    this.push = function (data) {
+      if (data.type !== this.type_) {
+        return;
+      }
+
+      if (referenceDTS === undefined) {
+        referenceDTS = data.dts;
+      }
+
+      data.dts = handleRollover(data.dts, referenceDTS);
+      data.pts = handleRollover(data.pts, referenceDTS);
+
+      lastDTS = data.dts;
+
+      this.trigger('data', data);
+    };
+
+    this.flush = function () {
+      referenceDTS = lastDTS;
+      this.trigger('done');
+    };
+
+    this.discontinuity = function () {
+      referenceDTS = void 0;
+      lastDTS = void 0;
+    };
+  };
+
+  TimestampRolloverStream.prototype = new Stream$2();
+
+  var timestampRolloverStream = {
+    TimestampRolloverStream: TimestampRolloverStream,
+    handleRollover: handleRollover
+  };
+  var timestampRolloverStream_1 = timestampRolloverStream.TimestampRolloverStream;
+  var timestampRolloverStream_2 = timestampRolloverStream.handleRollover;
+
+  var timestampRolloverStream$1 = /*#__PURE__*/Object.freeze({
+    default: timestampRolloverStream,
+    __moduleExports: timestampRolloverStream,
+    TimestampRolloverStream: timestampRolloverStream_1,
+    handleRollover: timestampRolloverStream_2
+  });
+
+  var StreamTypes = (streamTypes$1 && streamTypes) || streamTypes$1;
+
+  var parsePid = function parsePid(packet) {
+    var pid = packet[1] & 0x1f;
+    pid <<= 8;
+    pid |= packet[2];
+    return pid;
+  };
+
+  var parsePayloadUnitStartIndicator = function parsePayloadUnitStartIndicator(packet) {
+    return !!(packet[1] & 0x40);
+  };
+
+  var parseAdaptionField = function parseAdaptionField(packet) {
+    var offset = 0;
+    // if an adaption field is present, its length is specified by the
+    // fifth byte of the TS packet header. The adaptation field is
+    // used to add stuffing to PES packets that don't fill a complete
+    // TS packet, and to specify some forms of timing and control data
+    // that we do not currently use.
+    if ((packet[3] & 0x30) >>> 4 > 0x01) {
+      offset += packet[4] + 1;
+    }
+    return offset;
+  };
+
+  var parseType$1 = function parseType(packet, pmtPid) {
+    var pid = parsePid(packet);
+    if (pid === 0) {
+      return 'pat';
+    } else if (pid === pmtPid) {
+      return 'pmt';
+    } else if (pmtPid) {
+      return 'pes';
+    }
+    return null;
+  };
+
+  var parsePat = function parsePat(packet) {
+    var pusi = parsePayloadUnitStartIndicator(packet);
+    var offset = 4 + parseAdaptionField(packet);
+
+    if (pusi) {
+      offset += packet[offset] + 1;
+    }
+
+    return (packet[offset + 10] & 0x1f) << 8 | packet[offset + 11];
+  };
+
+  var parsePmt = function parsePmt(packet) {
+    var programMapTable = {};
+    var pusi = parsePayloadUnitStartIndicator(packet);
+    var payloadOffset = 4 + parseAdaptionField(packet);
+
+    if (pusi) {
+      payloadOffset += packet[payloadOffset] + 1;
+    }
+
+    // PMTs can be sent ahead of the time when they should actually
+    // take effect. We don't believe this should ever be the case
+    // for HLS but we'll ignore "forward" PMT declarations if we see
+    // them. Future PMT declarations have the current_next_indicator
+    // set to zero.
+    if (!(packet[payloadOffset + 5] & 0x01)) {
+      return;
+    }
+
+    var sectionLength, tableEnd, programInfoLength;
+    // the mapping table ends at the end of the current section
+    sectionLength = (packet[payloadOffset + 1] & 0x0f) << 8 | packet[payloadOffset + 2];
+    tableEnd = 3 + sectionLength - 4;
+
+    // to determine where the table is, we have to figure out how
+    // long the program info descriptors are
+    programInfoLength = (packet[payloadOffset + 10] & 0x0f) << 8 | packet[payloadOffset + 11];
+
+    // advance the offset to the first entry in the mapping table
+    var offset = 12 + programInfoLength;
+    while (offset < tableEnd) {
+      var i = payloadOffset + offset;
+      // add an entry that maps the elementary_pid to the stream_type
+      programMapTable[(packet[i + 1] & 0x1F) << 8 | packet[i + 2]] = packet[i];
+
+      // move to the next table entry
+      // skip past the elementary stream descriptors, if present
+      offset += ((packet[i + 3] & 0x0F) << 8 | packet[i + 4]) + 5;
+    }
+    return programMapTable;
+  };
+
+  var parsePesType = function parsePesType(packet, programMapTable) {
+    var pid = parsePid(packet);
+    var type = programMapTable[pid];
+    switch (type) {
+      case StreamTypes.H264_STREAM_TYPE:
+        return 'video';
+      case StreamTypes.ADTS_STREAM_TYPE:
+        return 'audio';
+      case StreamTypes.METADATA_STREAM_TYPE:
+        return 'timed-metadata';
+      default:
+        return null;
+    }
+  };
+
+  var parsePesTime = function parsePesTime(packet) {
+    var pusi = parsePayloadUnitStartIndicator(packet);
+    if (!pusi) {
+      return null;
+    }
+
+    var offset = 4 + parseAdaptionField(packet);
+
+    if (offset >= packet.byteLength) {
+      // From the H 222.0 MPEG-TS spec
+      // "For transport stream packets carrying PES packets, stuffing is needed when there
+      //  is insufficient PES packet data to completely fill the transport stream packet
+      //  payload bytes. Stuffing is accomplished by defining an adaptation field longer than
+      //  the sum of the lengths of the data elements in it, so that the payload bytes
+      //  remaining after the adaptation field exactly accommodates the available PES packet
+      //  data."
+      //
+      // If the offset is >= the length of the packet, then the packet contains no data
+      // and instead is just adaption field stuffing bytes
+      return null;
+    }
+
+    var pes = null;
+    var ptsDtsFlags;
+
+    // PES packets may be annotated with a PTS value, or a PTS value
+    // and a DTS value. Determine what combination of values is
+    // available to work with.
+    ptsDtsFlags = packet[offset + 7];
+
+    // PTS and DTS are normally stored as a 33-bit number.  Javascript
+    // performs all bitwise operations on 32-bit integers but javascript
+    // supports a much greater range (52-bits) of integer using standard
+    // mathematical operations.
+    // We construct a 31-bit value using bitwise operators over the 31
+    // most significant bits and then multiply by 4 (equal to a left-shift
+    // of 2) before we add the final 2 least significant bits of the
+    // timestamp (equal to an OR.)
+    if (ptsDtsFlags & 0xC0) {
+      pes = {};
+      // the PTS and DTS are not written out directly. For information
+      // on how they are encoded, see
+      // http://dvd.sourceforge.net/dvdinfo/pes-hdr.html
+      pes.pts = (packet[offset + 9] & 0x0E) << 27 | (packet[offset + 10] & 0xFF) << 20 | (packet[offset + 11] & 0xFE) << 12 | (packet[offset + 12] & 0xFF) << 5 | (packet[offset + 13] & 0xFE) >>> 3;
+      pes.pts *= 4; // Left shift by 2
+      pes.pts += (packet[offset + 13] & 0x06) >>> 1; // OR by the two LSBs
+      pes.dts = pes.pts;
+      if (ptsDtsFlags & 0x40) {
+        pes.dts = (packet[offset + 14] & 0x0E) << 27 | (packet[offset + 15] & 0xFF) << 20 | (packet[offset + 16] & 0xFE) << 12 | (packet[offset + 17] & 0xFF) << 5 | (packet[offset + 18] & 0xFE) >>> 3;
+        pes.dts *= 4; // Left shift by 2
+        pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
+      }
+    }
+    return pes;
+  };
+
+  var parseNalUnitType = function parseNalUnitType(type) {
+    switch (type) {
+      case 0x05:
+        return 'slice_layer_without_partitioning_rbsp_idr';
+      case 0x06:
+        return 'sei_rbsp';
+      case 0x07:
+        return 'seq_parameter_set_rbsp';
+      case 0x08:
+        return 'pic_parameter_set_rbsp';
+      case 0x09:
+        return 'access_unit_delimiter_rbsp';
+      default:
+        return null;
+    }
+  };
+
+  var videoPacketContainsKeyFrame = function videoPacketContainsKeyFrame(packet) {
+    var offset = 4 + parseAdaptionField(packet);
+    var frameBuffer = packet.subarray(offset);
+    var frameI = 0;
+    var frameSyncPoint = 0;
+    var foundKeyFrame = false;
+    var nalType;
+
+    // advance the sync point to a NAL start, if necessary
+    for (; frameSyncPoint < frameBuffer.byteLength - 3; frameSyncPoint++) {
+      if (frameBuffer[frameSyncPoint + 2] === 1) {
+        // the sync point is properly aligned
+        frameI = frameSyncPoint + 5;
+        break;
+      }
+    }
+
+    while (frameI < frameBuffer.byteLength) {
+      // look at the current byte to determine if we've hit the end of
+      // a NAL unit boundary
+      switch (frameBuffer[frameI]) {
+        case 0:
+          // skip past non-sync sequences
+          if (frameBuffer[frameI - 1] !== 0) {
+            frameI += 2;
+            break;
+          } else if (frameBuffer[frameI - 2] !== 0) {
+            frameI++;
+            break;
+          }
+
+          if (frameSyncPoint + 3 !== frameI - 2) {
+            nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);
+            if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {
+              foundKeyFrame = true;
+            }
+          }
+
+          // drop trailing zeroes
+          do {
+            frameI++;
+          } while (frameBuffer[frameI] !== 1 && frameI < frameBuffer.length);
+          frameSyncPoint = frameI - 2;
+          frameI += 3;
+          break;
+        case 1:
+          // skip past non-sync sequences
+          if (frameBuffer[frameI - 1] !== 0 || frameBuffer[frameI - 2] !== 0) {
+            frameI += 3;
+            break;
+          }
+
+          nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);
+          if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {
+            foundKeyFrame = true;
+          }
+          frameSyncPoint = frameI - 2;
+          frameI += 3;
+          break;
+        default:
+          // the current byte isn't a one or zero, so it cannot be part
+          // of a sync sequence
+          frameI += 3;
+          break;
+      }
+    }
+    frameBuffer = frameBuffer.subarray(frameSyncPoint);
+    frameI -= frameSyncPoint;
+    frameSyncPoint = 0;
+    // parse the final nal
+    if (frameBuffer && frameBuffer.byteLength > 3) {
+      nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);
+      if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {
+        foundKeyFrame = true;
+      }
+    }
+
+    return foundKeyFrame;
+  };
+
+  var probe$1 = {
+    parseType: parseType$1,
+    parsePat: parsePat,
+    parsePmt: parsePmt,
+    parsePayloadUnitStartIndicator: parsePayloadUnitStartIndicator,
+    parsePesType: parsePesType,
+    parsePesTime: parsePesTime,
+    videoPacketContainsKeyFrame: videoPacketContainsKeyFrame
+  };
+  var probe_1$1 = probe$1.parseType;
+  var probe_2$1 = probe$1.parsePat;
+  var probe_3$1 = probe$1.parsePmt;
+  var probe_4 = probe$1.parsePayloadUnitStartIndicator;
+  var probe_5 = probe$1.parsePesType;
+  var probe_6 = probe$1.parsePesTime;
+  var probe_7 = probe$1.videoPacketContainsKeyFrame;
+
+  var probe$2 = /*#__PURE__*/Object.freeze({
+    default: probe$1,
+    __moduleExports: probe$1,
+    parseType: probe_1$1,
+    parsePat: probe_2$1,
+    parsePmt: probe_3$1,
+    parsePayloadUnitStartIndicator: probe_4,
+    parsePesType: probe_5,
+    parsePesTime: probe_6,
+    videoPacketContainsKeyFrame: probe_7
+  });
+
+  /**
+   * mux.js
+   *
+   * Copyright (c) 2016 Brightcove
+   * All rights reserved.
+   *
+   * Utilities to detect basic properties and metadata about Aac data.
+   */
+
+  var ADTS_SAMPLING_FREQUENCIES = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];
+
+  var parseSyncSafeInteger = function parseSyncSafeInteger(data) {
+    return data[0] << 21 | data[1] << 14 | data[2] << 7 | data[3];
+  };
+
+  // return a percent-encoded representation of the specified byte range
+  // @see http://en.wikipedia.org/wiki/Percent-encoding
+  var percentEncode = function percentEncode(bytes, start, end) {
+    var i,
+      result = '';
+    for (i = start; i < end; i++) {
+      result += '%' + ('00' + bytes[i].toString(16)).slice(-2);
+    }
+    return result;
+  };
+
+  // return the string representation of the specified byte range,
+  // interpreted as ISO-8859-1.
+  var parseIso88591 = function parseIso88591(bytes, start, end) {
+    return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
+  };
+
+  var parseId3TagSize = function parseId3TagSize(header, byteIndex) {
+    var returnSize = header[byteIndex + 6] << 21 | header[byteIndex + 7] << 14 | header[byteIndex + 8] << 7 | header[byteIndex + 9],
+      flags = header[byteIndex + 5],
+      footerPresent = (flags & 16) >> 4;
+
+    if (footerPresent) {
+      return returnSize + 20;
+    }
+    return returnSize + 10;
+  };
+
+  var parseAdtsSize = function parseAdtsSize(header, byteIndex) {
+    var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
+      middle = header[byteIndex + 4] << 3,
+      highTwo = header[byteIndex + 3] & 0x3 << 11;
+
+    return highTwo | middle | lowThree;
+  };
+
+  var parseType$2 = function parseType(header, byteIndex) {
+    if (header[byteIndex] === 'I'.charCodeAt(0) && header[byteIndex + 1] === 'D'.charCodeAt(0) && header[byteIndex + 2] === '3'.charCodeAt(0)) {
+      return 'timed-metadata';
+    } else if (header[byteIndex] & 0xff === 0xff && (header[byteIndex + 1] & 0xf0) === 0xf0) {
+      return 'audio';
+    }
+    return null;
+  };
+
+  var parseSampleRate = function parseSampleRate(packet) {
+    var i = 0;
+
+    while (i + 5 < packet.length) {
+      if (packet[i] !== 0xFF || (packet[i + 1] & 0xF6) !== 0xF0) {
+        // If a valid header was not found,  jump one forward and attempt to
+        // find a valid ADTS header starting at the next byte
+        i++;
+        continue;
+      }
+      return ADTS_SAMPLING_FREQUENCIES[(packet[i + 2] & 0x3c) >>> 2];
+    }
+
+    return null;
+  };
+
+  var parseAacTimestamp = function parseAacTimestamp(packet) {
+    var frameStart, frameSize, frame, frameHeader;
+
+    // find the start of the first frame and the end of the tag
+    frameStart = 10;
+    if (packet[5] & 0x40) {
+      // advance the frame start past the extended header
+      frameStart += 4; // header size field
+      frameStart += parseSyncSafeInteger(packet.subarray(10, 14));
+    }
+
+    // parse one or more ID3 frames
+    // http://id3.org/id3v2.3.0#ID3v2_frame_overview
+    do {
+      // determine the number of bytes in this frame
+      frameSize = parseSyncSafeInteger(packet.subarray(frameStart + 4, frameStart + 8));
+      if (frameSize < 1) {
+        return null;
+      }
+      frameHeader = String.fromCharCode(packet[frameStart], packet[frameStart + 1], packet[frameStart + 2], packet[frameStart + 3]);
+
+      if (frameHeader === 'PRIV') {
+        frame = packet.subarray(frameStart + 10, frameStart + frameSize + 10);
+
+        for (var i = 0; i < frame.byteLength; i++) {
+          if (frame[i] === 0) {
+            var owner = parseIso88591(frame, 0, i);
+            if (owner === 'com.apple.streaming.transportStreamTimestamp') {
+              var d = frame.subarray(i + 1);
+              var size = (d[3] & 0x01) << 30 | d[4] << 22 | d[5] << 14 | d[6] << 6 | d[7] >>> 2;
+              size *= 4;
+              size += d[7] & 0x03;
+
+              return size;
+            }
+            break;
+          }
+        }
+      }
+
+      frameStart += 10; // advance past the frame header
+      frameStart += frameSize; // advance past the frame body
+    } while (frameStart < packet.byteLength);
+    return null;
+  };
+
+  var probe$3 = {
+    parseId3TagSize: parseId3TagSize,
+    parseAdtsSize: parseAdtsSize,
+    parseType: parseType$2,
+    parseSampleRate: parseSampleRate,
+    parseAacTimestamp: parseAacTimestamp
+  };
+  var probe_1$2 = probe$3.parseId3TagSize;
+  var probe_2$2 = probe$3.parseAdtsSize;
+  var probe_3$2 = probe$3.parseType;
+  var probe_4$1 = probe$3.parseSampleRate;
+  var probe_5$1 = probe$3.parseAacTimestamp;
+
+  var probe$4 = /*#__PURE__*/Object.freeze({
+    default: probe$3,
+    __moduleExports: probe$3,
+    parseId3TagSize: probe_1$2,
+    parseAdtsSize: probe_2$2,
+    parseType: probe_3$2,
+    parseSampleRate: probe_4$1,
+    parseAacTimestamp: probe_5$1
+  });
+
+  var require$$0$2 = (timestampRolloverStream$1 && timestampRolloverStream) || timestampRolloverStream$1;
+
+  var require$$1$1 = (probe$2 && probe$1) || probe$2;
+
+  var require$$2$1 = (probe$4 && probe$3) || probe$4;
+
+  var handleRollover$1 = require$$0$2.handleRollover;
+  var probe$5 = {};
+  probe$5.ts = require$$1$1;
+  probe$5.aac = require$$2$1;
+
+  var PES_TIMESCALE = 90000,
+    MP2T_PACKET_LENGTH = 188,
+    // bytes
+    SYNC_BYTE = 0x47;
+
+  var isLikelyAacData = function isLikelyAacData(data) {
+    if (data[0] === 'I'.charCodeAt(0) && data[1] === 'D'.charCodeAt(0) && data[2] === '3'.charCodeAt(0)) {
+      return true;
+    }
+    return false;
+  };
+
+  /**
+   * walks through segment data looking for pat and pmt packets to parse out
+   * program map table information
+   */
+  var parsePsi_ = function parsePsi_(bytes, pmt) {
+    var startIndex = 0,
+      endIndex = MP2T_PACKET_LENGTH,
+      packet,
+      type;
+
+    while (endIndex < bytes.byteLength) {
+      // Look for a pair of start and end sync bytes in the data..
+      if (bytes[startIndex] === SYNC_BYTE && bytes[endIndex] === SYNC_BYTE) {
+        // We found a packet
+        packet = bytes.subarray(startIndex, endIndex);
+        type = probe$5.ts.parseType(packet, pmt.pid);
+
+        switch (type) {
+          case 'pat':
+            if (!pmt.pid) {
+              pmt.pid = probe$5.ts.parsePat(packet);
+            }
+            break;
+          case 'pmt':
+            if (!pmt.table) {
+              pmt.table = probe$5.ts.parsePmt(packet);
+            }
+            break;
+          default:
+            break;
+        }
+
+        // Found the pat and pmt, we can stop walking the segment
+        if (pmt.pid && pmt.table) {
+          return;
+        }
+
+        startIndex += MP2T_PACKET_LENGTH;
+        endIndex += MP2T_PACKET_LENGTH;
+        continue;
+      }
+
+      // If we get here, we have somehow become de-synchronized and we need to step
+      // forward one byte at a time until we find a pair of sync bytes that denote
+      // a packet
+      startIndex++;
+      endIndex++;
+    }
+  };
+
+  /**
+   * walks through the segment data from the start and end to get timing information
+   * for the first and last audio pes packets
+   */
+  var parseAudioPes_ = function parseAudioPes_(bytes, pmt, result) {
+    var startIndex = 0,
+      endIndex = MP2T_PACKET_LENGTH,
+      packet,
+      type,
+      pesType,
+      pusi,
+      parsed;
+
+    var endLoop = false;
+
+    // Start walking from start of segment to get first audio packet
+    while (endIndex < bytes.byteLength) {
+      // Look for a pair of start and end sync bytes in the data..
+      if (bytes[startIndex] === SYNC_BYTE && bytes[endIndex] === SYNC_BYTE) {
+        // We found a packet
+        packet = bytes.subarray(startIndex, endIndex);
+        type = probe$5.ts.parseType(packet, pmt.pid);
+
+        switch (type) {
+          case 'pes':
+            pesType = probe$5.ts.parsePesType(packet, pmt.table);
+            pusi = probe$5.ts.parsePayloadUnitStartIndicator(packet);
+            if (pesType === 'audio' && pusi) {
+              parsed = probe$5.ts.parsePesTime(packet);
+              if (parsed) {
+                parsed.type = 'audio';
+                result.audio.push(parsed);
+                endLoop = true;
+              }
+            }
+            break;
+          default:
+            break;
+        }
+
+        if (endLoop) {
+          break;
+        }
+
+        startIndex += MP2T_PACKET_LENGTH;
+        endIndex += MP2T_PACKET_LENGTH;
+        continue;
+      }
+
+      // If we get here, we have somehow become de-synchronized and we need to step
+      // forward one byte at a time until we find a pair of sync bytes that denote
+      // a packet
+      startIndex++;
+      endIndex++;
+    }
+
+    // Start walking from end of segment to get last audio packet
+    endIndex = bytes.byteLength;
+    startIndex = endIndex - MP2T_PACKET_LENGTH;
+    endLoop = false;
+    while (startIndex >= 0) {
+      // Look for a pair of start and end sync bytes in the data..
+      if (bytes[startIndex] === SYNC_BYTE && bytes[endIndex] === SYNC_BYTE) {
+        // We found a packet
+        packet = bytes.subarray(startIndex, endIndex);
+        type = probe$5.ts.parseType(packet, pmt.pid);
+
+        switch (type) {
+          case 'pes':
+            pesType = probe$5.ts.parsePesType(packet, pmt.table);
+            pusi = probe$5.ts.parsePayloadUnitStartIndicator(packet);
+            if (pesType === 'audio' && pusi) {
+              parsed = probe$5.ts.parsePesTime(packet);
+              if (parsed) {
+                parsed.type = 'audio';
+                result.audio.push(parsed);
+                endLoop = true;
+              }
+            }
+            break;
+          default:
+            break;
+        }
+
+        if (endLoop) {
+          break;
+        }
+
+        startIndex -= MP2T_PACKET_LENGTH;
+        endIndex -= MP2T_PACKET_LENGTH;
+        continue;
+      }
+
+      // If we get here, we have somehow become de-synchronized and we need to step
+      // forward one byte at a time until we find a pair of sync bytes that denote
+      // a packet
+      startIndex--;
+      endIndex--;
+    }
+  };
+
+  /**
+   * walks through the segment data from the start and end to get timing information
+   * for the first and last video pes packets as well as timing information for the first
+   * key frame.
+   */
+  var parseVideoPes_ = function parseVideoPes_(bytes, pmt, result) {
+    var startIndex = 0,
+      endIndex = MP2T_PACKET_LENGTH,
+      packet,
+      type,
+      pesType,
+      pusi,
+      parsed,
+      frame,
+      i,
+      pes;
+
+    var endLoop = false;
+
+    var currentFrame = {
+      data: [],
+      size: 0
+    };
+
+    // Start walking from start of segment to get first video packet
+    while (endIndex < bytes.byteLength) {
+      // Look for a pair of start and end sync bytes in the data..
+      if (bytes[startIndex] === SYNC_BYTE && bytes[endIndex] === SYNC_BYTE) {
+        // We found a packet
+        packet = bytes.subarray(startIndex, endIndex);
+        type = probe$5.ts.parseType(packet, pmt.pid);
+
+        switch (type) {
+          case 'pes':
+            pesType = probe$5.ts.parsePesType(packet, pmt.table);
+            pusi = probe$5.ts.parsePayloadUnitStartIndicator(packet);
+            if (pesType === 'video') {
+              if (pusi && !endLoop) {
+                parsed = probe$5.ts.parsePesTime(packet);
+                if (parsed) {
+                  parsed.type = 'video';
+                  result.video.push(parsed);
+                  endLoop = true;
+                }
+              }
+              if (!result.firstKeyFrame) {
+                if (pusi) {
+                  if (currentFrame.size !== 0) {
+                    frame = new Uint8Array(currentFrame.size);
+                    i = 0;
+                    while (currentFrame.data.length) {
+                      pes = currentFrame.data.shift();
+                      frame.set(pes, i);
+                      i += pes.byteLength;
+                    }
+                    if (probe$5.ts.videoPacketContainsKeyFrame(frame)) {
+                      result.firstKeyFrame = probe$5.ts.parsePesTime(frame);
+                      result.firstKeyFrame.type = 'video';
+                    }
+                    currentFrame.size = 0;
+                  }
+                }
+                currentFrame.data.push(packet);
+                currentFrame.size += packet.byteLength;
+              }
+            }
+            break;
+          default:
+            break;
+        }
+
+        if (endLoop && result.firstKeyFrame) {
+          break;
+        }
+
+        startIndex += MP2T_PACKET_LENGTH;
+        endIndex += MP2T_PACKET_LENGTH;
+        continue;
+      }
+
+      // If we get here, we have somehow become de-synchronized and we need to step
+      // forward one byte at a time until we find a pair of sync bytes that denote
+      // a packet
+      startIndex++;
+      endIndex++;
+    }
+
+    // Start walking from end of segment to get last video packet
+    endIndex = bytes.byteLength;
+    startIndex = endIndex - MP2T_PACKET_LENGTH;
+    endLoop = false;
+    while (startIndex >= 0) {
+      // Look for a pair of start and end sync bytes in the data..
+      if (bytes[startIndex] === SYNC_BYTE && bytes[endIndex] === SYNC_BYTE) {
+        // We found a packet
+        packet = bytes.subarray(startIndex, endIndex);
+        type = probe$5.ts.parseType(packet, pmt.pid);
+
+        switch (type) {
+          case 'pes':
+            pesType = probe$5.ts.parsePesType(packet, pmt.table);
+            pusi = probe$5.ts.parsePayloadUnitStartIndicator(packet);
+            if (pesType === 'video' && pusi) {
+              parsed = probe$5.ts.parsePesTime(packet);
+              if (parsed) {
+                parsed.type = 'video';
+                result.video.push(parsed);
+                endLoop = true;
+              }
+            }
+            break;
+          default:
+            break;
+        }
+
+        if (endLoop) {
+          break;
+        }
+
+        startIndex -= MP2T_PACKET_LENGTH;
+        endIndex -= MP2T_PACKET_LENGTH;
+        continue;
+      }
+
+      // If we get here, we have somehow become de-synchronized and we need to step
+      // forward one byte at a time until we find a pair of sync bytes that denote
+      // a packet
+      startIndex--;
+      endIndex--;
+    }
+  };
+
+  /**
+   * Adjusts the timestamp information for the segment to account for
+   * rollover and convert to seconds based on pes packet timescale (90khz clock)
+   */
+  var adjustTimestamp_ = function adjustTimestamp_(segmentInfo, baseTimestamp) {
+    if (segmentInfo.audio && segmentInfo.audio.length) {
+      var audioBaseTimestamp = baseTimestamp;
+      if (typeof audioBaseTimestamp === 'undefined') {
+        audioBaseTimestamp = segmentInfo.audio[0].dts;
+      }
+      segmentInfo.audio.forEach(function (info) {
+        info.dts = handleRollover$1(info.dts, audioBaseTimestamp);
+        info.pts = handleRollover$1(info.pts, audioBaseTimestamp);
+        // time in seconds
+        info.dtsTime = info.dts / PES_TIMESCALE;
+        info.ptsTime = info.pts / PES_TIMESCALE;
+      });
+    }
+
+    if (segmentInfo.video && segmentInfo.video.length) {
+      var videoBaseTimestamp = baseTimestamp;
+      if (typeof videoBaseTimestamp === 'undefined') {
+        videoBaseTimestamp = segmentInfo.video[0].dts;
+      }
+      segmentInfo.video.forEach(function (info) {
+        info.dts = handleRollover$1(info.dts, videoBaseTimestamp);
+        info.pts = handleRollover$1(info.pts, videoBaseTimestamp);
+        // time in seconds
+        info.dtsTime = info.dts / PES_TIMESCALE;
+        info.ptsTime = info.pts / PES_TIMESCALE;
+      });
+      if (segmentInfo.firstKeyFrame) {
+        var frame = segmentInfo.firstKeyFrame;
+        frame.dts = handleRollover$1(frame.dts, videoBaseTimestamp);
+        frame.pts = handleRollover$1(frame.pts, videoBaseTimestamp);
+        // time in seconds
+        frame.dtsTime = frame.dts / PES_TIMESCALE;
+        frame.ptsTime = frame.dts / PES_TIMESCALE;
+      }
+    }
+  };
+
+  /**
+   * inspects the aac data stream for start and end time information
+   */
+  var inspectAac_ = function inspectAac_(bytes) {
+    var endLoop = false,
+      audioCount = 0,
+      sampleRate = null,
+      timestamp = null,
+      frameSize = 0,
+      byteIndex = 0,
+      packet;
+
+    while (bytes.length - byteIndex >= 3) {
+      var type = probe$5.aac.parseType(bytes, byteIndex);
+      switch (type) {
+        case 'timed-metadata':
+          // Exit early because we don't have enough to parse
+          // the ID3 tag header
+          if (bytes.length - byteIndex < 10) {
+            endLoop = true;
+            break;
+          }
+
+          frameSize = probe$5.aac.parseId3TagSize(bytes, byteIndex);
+
+          // Exit early if we don't have enough in the buffer
+          // to emit a full packet
+          if (frameSize > bytes.length) {
+            endLoop = true;
+            break;
+          }
+          if (timestamp === null) {
+            packet = bytes.subarray(byteIndex, byteIndex + frameSize);
+            timestamp = probe$5.aac.parseAacTimestamp(packet);
+          }
+          byteIndex += frameSize;
+          break;
+        case 'audio':
+          // Exit early because we don't have enough to parse
+          // the ADTS frame header
+          if (bytes.length - byteIndex < 7) {
+            endLoop = true;
+            break;
+          }
+
+          frameSize = probe$5.aac.parseAdtsSize(bytes, byteIndex);
+
+          // Exit early if we don't have enough in the buffer
+          // to emit a full packet
+          if (frameSize > bytes.length) {
+            endLoop = true;
+            break;
+          }
+          if (sampleRate === null) {
+            packet = bytes.subarray(byteIndex, byteIndex + frameSize);
+            sampleRate = probe$5.aac.parseSampleRate(packet);
+          }
+          audioCount++;
+          byteIndex += frameSize;
+          break;
+        default:
+          byteIndex++;
+          break;
+      }
+      if (endLoop) {
+        return null;
+      }
+    }
+    if (sampleRate === null || timestamp === null) {
+      return null;
+    }
+
+    var audioTimescale = PES_TIMESCALE / sampleRate;
+
+    var result = {
+      audio: [{
+        type: 'audio',
+        dts: timestamp,
+        pts: timestamp
+      }, {
+        type: 'audio',
+        dts: timestamp + audioCount * 1024 * audioTimescale,
+        pts: timestamp + audioCount * 1024 * audioTimescale
+      }]
+    };
+
+    return result;
+  };
+
+  /**
+   * inspects the transport stream segment data for start and end time information
+   * of the audio and video tracks (when present) as well as the first key frame's
+   * start time.
+   */
+  var inspectTs_ = function inspectTs_(bytes) {
+    var pmt = {
+      pid: null,
+      table: null
+    };
+
+    var result = {};
+
+    parsePsi_(bytes, pmt);
+
+    for (var pid in pmt.table) {
+      if (pmt.table.hasOwnProperty(pid)) {
+        var type = pmt.table[pid];
+        switch (type) {
+          case StreamTypes.H264_STREAM_TYPE:
+            result.video = [];
+            parseVideoPes_(bytes, pmt, result);
+            if (result.video.length === 0) {
+              delete result.video;
+            }
+            break;
+          case StreamTypes.ADTS_STREAM_TYPE:
+            result.audio = [];
+            parseAudioPes_(bytes, pmt, result);
+            if (result.audio.length === 0) {
+              delete result.audio;
+            }
+            break;
+          default:
+            break;
+        }
+      }
+    }
+    return result;
+  };
+
+  /**
+   * Inspects segment byte data and returns an object with start and end timing information
+   *
+   * @param {Uint8Array} bytes The segment byte data
+   * @param {Number} baseTimestamp Relative reference timestamp used when adjusting frame
+   *  timestamps for rollover. This value must be in 90khz clock.
+   * @return {Object} Object containing start and end frame timing info of segment.
+   */
+  var inspect = function inspect(bytes, baseTimestamp) {
+    var isAacData = isLikelyAacData(bytes);
+
+    var result;
+
+    if (isAacData) {
+      result = inspectAac_(bytes);
+    } else {
+      result = inspectTs_(bytes);
+    }
+
+    if (!result || !result.audio && !result.video) {
+      return null;
+    }
+
+    adjustTimestamp_(result, baseTimestamp);
+
+    return result;
+  };
+
+  var tsInspector = {
+    inspect: inspect
+  };
+
+  /*
+   * pkcs7.pad
+   * https://github.com/brightcove/pkcs7
+   *
+   * Copyright (c) 2014 Brightcove
+   * Licensed under the apache2 license.
+   */
+
+  /**
+   * Returns the subarray of a Uint8Array without PKCS#7 padding.
+   * @param padded {Uint8Array} unencrypted bytes that have been padded
+   * @return {Uint8Array} the unpadded bytes
+   * @see http://tools.ietf.org/html/rfc5652
+   */
+  function unpad(padded) {
+    return padded.subarray(0, padded.byteLength - padded[padded.byteLength - 1]);
+  }
+
+  var classCallCheck$2 = function classCallCheck$$1(instance, Constructor) {
+    if (!(instance instanceof Constructor)) {
+      throw new TypeError("Cannot call a class as a function");
+    }
+  };
+
+  var createClass$1 = function () {
+    function defineProperties(target, props) {
+      for (var i = 0; i < props.length; i++) {
+        var descriptor = props[i];
+        descriptor.enumerable = descriptor.enumerable || false;
+        descriptor.configurable = true;
+        if ("value" in descriptor) descriptor.writable = true;
+        Object.defineProperty(target, descriptor.key, descriptor);
+      }
+    }
+
+    return function (Constructor, protoProps, staticProps) {
+      if (protoProps) defineProperties(Constructor.prototype, protoProps);
+      if (staticProps) defineProperties(Constructor, staticProps);
+      return Constructor;
+    };
+  }();
+
+  var inherits$2 = function inherits$$1(subClass, superClass) {
+    if (typeof superClass !== "function" && superClass !== null) {
+      throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : _typeof(superClass)));
+    }
+
+    subClass.prototype = Object.create(superClass && superClass.prototype, {
+      constructor: {
+        value: subClass,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+  };
+
+  var possibleConstructorReturn$2 = function possibleConstructorReturn$$1(self, call) {
+    if (!self) {
+      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+    }
+
+    return call && ((typeof call === "undefined" ? "undefined" : _typeof(call)) === "object" || typeof call === "function") ? call : self;
+  };
+
+  /**
+   * @file aes.js
+   *
+   * This file contains an adaptation of the AES decryption algorithm
+   * from the Standford Javascript Cryptography Library. That work is
+   * covered by the following copyright and permissions notice:
+   *
+   * Copyright 2009-2010 Emily Stark, Mike Hamburg, Dan Boneh.
+   * All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions are
+   * met:
+   *
+   * 1. Redistributions of source code must retain the above copyright
+   *    notice, this list of conditions and the following disclaimer.
+   *
+   * 2. Redistributions in binary form must reproduce the above
+   *    copyright notice, this list of conditions and the following
+   *    disclaimer in the documentation and/or other materials provided
+   *    with the distribution.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+   * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR CONTRIBUTORS BE
+   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+   * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+   * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   *
+   * The views and conclusions contained in the software and documentation
+   * are those of the authors and should not be interpreted as representing
+   * official policies, either expressed or implied, of the authors.
+   */
+
+  /**
+   * Expand the S-box tables.
+   *
+   * @private
+   */
+  var precompute = function precompute() {
+    var tables = [[[], [], [], [], []], [[], [], [], [], []]];
+    var encTable = tables[0];
+    var decTable = tables[1];
+    var sbox = encTable[4];
+    var sboxInv = decTable[4];
+    var i = void 0;
+    var x = void 0;
+    var xInv = void 0;
+    var d = [];
+    var th = [];
+    var x2 = void 0;
+    var x4 = void 0;
+    var x8 = void 0;
+    var s = void 0;
+    var tEnc = void 0;
+    var tDec = void 0;
+
+    // Compute double and third tables
+    for (i = 0; i < 256; i++) {
+      th[(d[i] = i << 1 ^ (i >> 7) * 283) ^ i] = i;
+    }
+
+    for (x = xInv = 0; !sbox[x]; x ^= x2 || 1, xInv = th[xInv] || 1) {
+      // Compute sbox
+      s = xInv ^ xInv << 1 ^ xInv << 2 ^ xInv << 3 ^ xInv << 4;
+      s = s >> 8 ^ s & 255 ^ 99;
+      sbox[x] = s;
+      sboxInv[s] = x;
+
+      // Compute MixColumns
+      x8 = d[x4 = d[x2 = d[x]]];
+      tDec = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;
+      tEnc = d[s] * 0x101 ^ s * 0x1010100;
+
+      for (i = 0; i < 4; i++) {
+        encTable[i][x] = tEnc = tEnc << 24 ^ tEnc >>> 8;
+        decTable[i][s] = tDec = tDec << 24 ^ tDec >>> 8;
+      }
+    }
+
+    // Compactify. Considerable speedup on Firefox.
+    for (i = 0; i < 5; i++) {
+      encTable[i] = encTable[i].slice(0);
+      decTable[i] = decTable[i].slice(0);
+    }
+    return tables;
+  };
+  var aesTables = null;
+
+  /**
+   * Schedule out an AES key for both encryption and decryption. This
+   * is a low-level class. Use a cipher mode to do bulk encryption.
+   *
+   * @class AES
+   * @param key {Array} The key as an array of 4, 6 or 8 words.
+   */
+
+  var AES = function () {
+    function AES(key) {
+      classCallCheck$2(this, AES);
+
+      /**
+       * The expanded S-box and inverse S-box tables. These will be computed
+       * on the client so that we don't have to send them down the wire.
+       *
+       * There are two tables, _tables[0] is for encryption and
+       * _tables[1] is for decryption.
+       *
+       * The first 4 sub-tables are the expanded S-box with MixColumns. The
+       * last (_tables[01][4]) is the S-box itself.
+       *
+       * @private
+       */
+      // if we have yet to precompute the S-box tables
+      // do so now
+      if (!aesTables) {
+        aesTables = precompute();
+      }
+      // then make a copy of that object for use
+      this._tables = [[aesTables[0][0].slice(), aesTables[0][1].slice(), aesTables[0][2].slice(), aesTables[0][3].slice(), aesTables[0][4].slice()], [aesTables[1][0].slice(), aesTables[1][1].slice(), aesTables[1][2].slice(), aesTables[1][3].slice(), aesTables[1][4].slice()]];
+      var i = void 0;
+      var j = void 0;
+      var tmp = void 0;
+      var encKey = void 0;
+      var decKey = void 0;
+      var sbox = this._tables[0][4];
+      var decTable = this._tables[1];
+      var keyLen = key.length;
+      var rcon = 1;
+
+      if (keyLen !== 4 && keyLen !== 6 && keyLen !== 8) {
+        throw new Error('Invalid aes key size');
+      }
+
+      encKey = key.slice(0);
+      decKey = [];
+      this._key = [encKey, decKey];
+
+      // schedule encryption keys
+      for (i = keyLen; i < 4 * keyLen + 28; i++) {
+        tmp = encKey[i - 1];
+
+        // apply sbox
+        if (i % keyLen === 0 || keyLen === 8 && i % keyLen === 4) {
+          tmp = sbox[tmp >>> 24] << 24 ^ sbox[tmp >> 16 & 255] << 16 ^ sbox[tmp >> 8 & 255] << 8 ^ sbox[tmp & 255];
+
+          // shift rows and add rcon
+          if (i % keyLen === 0) {
+            tmp = tmp << 8 ^ tmp >>> 24 ^ rcon << 24;
+            rcon = rcon << 1 ^ (rcon >> 7) * 283;
+          }
+        }
+
+        encKey[i] = encKey[i - keyLen] ^ tmp;
+      }
+
+      // schedule decryption keys
+      for (j = 0; i; j++, i--) {
+        tmp = encKey[j & 3 ? i : i - 4];
+        if (i <= 4 || j < 4) {
+          decKey[j] = tmp;
+        } else {
+          decKey[j] = decTable[0][sbox[tmp >>> 24]] ^ decTable[1][sbox[tmp >> 16 & 255]] ^ decTable[2][sbox[tmp >> 8 & 255]] ^ decTable[3][sbox[tmp & 255]];
+        }
+      }
+    }
+
+    /**
+     * Decrypt 16 bytes, specified as four 32-bit words.
+     *
+     * @param {Number} encrypted0 the first word to decrypt
+     * @param {Number} encrypted1 the second word to decrypt
+     * @param {Number} encrypted2 the third word to decrypt
+     * @param {Number} encrypted3 the fourth word to decrypt
+     * @param {Int32Array} out the array to write the decrypted words
+     * into
+     * @param {Number} offset the offset into the output array to start
+     * writing results
+     * @return {Array} The plaintext.
+     */
+
+    AES.prototype.decrypt = function decrypt(encrypted0, encrypted1, encrypted2, encrypted3, out, offset) {
+      var key = this._key[1];
+      // state variables a,b,c,d are loaded with pre-whitened data
+      var a = encrypted0 ^ key[0];
+      var b = encrypted3 ^ key[1];
+      var c = encrypted2 ^ key[2];
+      var d = encrypted1 ^ key[3];
+      var a2 = void 0;
+      var b2 = void 0;
+      var c2 = void 0;
+
+      // key.length === 2 ?
+      var nInnerRounds = key.length / 4 - 2;
+      var i = void 0;
+      var kIndex = 4;
+      var table = this._tables[1];
+
+      // load up the tables
+      var table0 = table[0];
+      var table1 = table[1];
+      var table2 = table[2];
+      var table3 = table[3];
+      var sbox = table[4];
+
+      // Inner rounds. Cribbed from OpenSSL.
+      for (i = 0; i < nInnerRounds; i++) {
+        a2 = table0[a >>> 24] ^ table1[b >> 16 & 255] ^ table2[c >> 8 & 255] ^ table3[d & 255] ^ key[kIndex];
+        b2 = table0[b >>> 24] ^ table1[c >> 16 & 255] ^ table2[d >> 8 & 255] ^ table3[a & 255] ^ key[kIndex + 1];
+        c2 = table0[c >>> 24] ^ table1[d >> 16 & 255] ^ table2[a >> 8 & 255] ^ table3[b & 255] ^ key[kIndex + 2];
+        d = table0[d >>> 24] ^ table1[a >> 16 & 255] ^ table2[b >> 8 & 255] ^ table3[c & 255] ^ key[kIndex + 3];
+        kIndex += 4;
+        a = a2;
+        b = b2;
+        c = c2;
+      }
+
+      // Last round.
+      for (i = 0; i < 4; i++) {
+        out[(3 & -i) + offset] = sbox[a >>> 24] << 24 ^ sbox[b >> 16 & 255] << 16 ^ sbox[c >> 8 & 255] << 8 ^ sbox[d & 255] ^ key[kIndex++];
+        a2 = a;
+        a = b;
+        b = c;
+        c = d;
+        d = a2;
+      }
+    };
+
+    return AES;
+  }();
+
+  /**
+   * @file stream.js
+   */
+  /**
+   * A lightweight readable stream implemention that handles event dispatching.
+   *
+   * @class Stream
+   */
+  var Stream$3 = function () {
+    function Stream() {
+      classCallCheck$2(this, Stream);
+
+      this.listeners = {};
+    }
+
+    /**
+     * Add a listener for a specified event type.
+     *
+     * @param {String} type the event name
+     * @param {Function} listener the callback to be invoked when an event of
+     * the specified type occurs
+     */
+
+    Stream.prototype.on = function on(type, listener) {
+      if (!this.listeners[type]) {
+        this.listeners[type] = [];
+      }
+      this.listeners[type].push(listener);
+    };
+
+    /**
+     * Remove a listener for a specified event type.
+     *
+     * @param {String} type the event name
+     * @param {Function} listener  a function previously registered for this
+     * type of event through `on`
+     * @return {Boolean} if we could turn it off or not
+     */
+
+    Stream.prototype.off = function off(type, listener) {
+      if (!this.listeners[type]) {
+        return false;
+      }
+
+      var index = this.listeners[type].indexOf(listener);
+
+      this.listeners[type].splice(index, 1);
+      return index > -1;
+    };
+
+    /**
+     * Trigger an event of the specified type on this stream. Any additional
+     * arguments to this function are passed as parameters to event listeners.
+     *
+     * @param {String} type the event name
+     */
+
+    Stream.prototype.trigger = function trigger(type) {
+      var callbacks = this.listeners[type];
+
+      if (!callbacks) {
+        return;
+      }
+
+      // Slicing the arguments on every invocation of this method
+      // can add a significant amount of overhead. Avoid the
+      // intermediate object creation for the common case of a
+      // single callback argument
+      if (arguments.length === 2) {
+        var length = callbacks.length;
+
+        for (var i = 0; i < length; ++i) {
+          callbacks[i].call(this, arguments[1]);
+        }
+      } else {
+        var args = Array.prototype.slice.call(arguments, 1);
+        var _length = callbacks.length;
+
+        for (var _i = 0; _i < _length; ++_i) {
+          callbacks[_i].apply(this, args);
+        }
+      }
+    };
+
+    /**
+     * Destroys the stream and cleans up.
+     */
+
+    Stream.prototype.dispose = function dispose() {
+      this.listeners = {};
+    };
+    /**
+     * Forwards all `data` events on this stream to the destination stream. The
+     * destination stream should provide a method `push` to receive the data
+     * events as they arrive.
+     *
+     * @param {Stream} destination the stream that will receive all `data` events
+     * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
+     */
+
+    Stream.prototype.pipe = function pipe(destination) {
+      this.on('data', function (data) {
+        destination.push(data);
+      });
+    };
+
+    return Stream;
+  }();
+
+  /**
+   * @file async-stream.js
+   */
+  /**
+   * A wrapper around the Stream class to use setTiemout
+   * and run stream "jobs" Asynchronously
+   *
+   * @class AsyncStream
+   * @extends Stream
+   */
+
+  var AsyncStream = function (_Stream) {
+    inherits$2(AsyncStream, _Stream);
+
+    function AsyncStream() {
+      classCallCheck$2(this, AsyncStream);
+
+      var _this = possibleConstructorReturn$2(this, _Stream.call(this, Stream$3));
+
+      _this.jobs = [];
+      _this.delay = 1;
+      _this.timeout_ = null;
+      return _this;
+    }
+
+    /**
+     * process an async job
+     *
+     * @private
+     */
+
+    AsyncStream.prototype.processJob_ = function processJob_() {
+      this.jobs.shift()();
+      if (this.jobs.length) {
+        this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay);
+      } else {
+        this.timeout_ = null;
+      }
+    };
+
+    /**
+     * push a job into the stream
+     *
+     * @param {Function} job the job to push into the stream
+     */
+
+    AsyncStream.prototype.push = function push(job) {
+      this.jobs.push(job);
+      if (!this.timeout_) {
+        this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay);
+      }
+    };
+
+    return AsyncStream;
+  }(Stream$3);
+
+  /**
+   * @file decrypter.js
+   *
+   * An asynchronous implementation of AES-128 CBC decryption with
+   * PKCS#7 padding.
+   */
+
+  /**
+   * Convert network-order (big-endian) bytes into their little-endian
+   * representation.
+   */
+  var ntoh = function ntoh(word) {
+    return word << 24 | (word & 0xff00) << 8 | (word & 0xff0000) >> 8 | word >>> 24;
+  };
+
+  /**
+   * Decrypt bytes using AES-128 with CBC and PKCS#7 padding.
+   *
+   * @param {Uint8Array} encrypted the encrypted bytes
+   * @param {Uint32Array} key the bytes of the decryption key
+   * @param {Uint32Array} initVector the initialization vector (IV) to
+   * use for the first round of CBC.
+   * @return {Uint8Array} the decrypted bytes
+   *
+   * @see http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
+   * @see http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_.28CBC.29
+   * @see https://tools.ietf.org/html/rfc2315
+   */
+  var decrypt = function decrypt(encrypted, key, initVector) {
+    // word-level access to the encrypted bytes
+    var encrypted32 = new Int32Array(encrypted.buffer, encrypted.byteOffset, encrypted.byteLength >> 2);
+
+    var decipher = new AES(Array.prototype.slice.call(key));
+
+    // byte and word-level access for the decrypted output
+    var decrypted = new Uint8Array(encrypted.byteLength);
+    var decrypted32 = new Int32Array(decrypted.buffer);
+
+    // temporary variables for working with the IV, encrypted, and
+    // decrypted data
+    var init0 = void 0;
+    var init1 = void 0;
+    var init2 = void 0;
+    var init3 = void 0;
+    var encrypted0 = void 0;
+    var encrypted1 = void 0;
+    var encrypted2 = void 0;
+    var encrypted3 = void 0;
+
+    // iteration variable
+    var wordIx = void 0;
+
+    // pull out the words of the IV to ensure we don't modify the
+    // passed-in reference and easier access
+    init0 = initVector[0];
+    init1 = initVector[1];
+    init2 = initVector[2];
+    init3 = initVector[3];
+
+    // decrypt four word sequences, applying cipher-block chaining (CBC)
+    // to each decrypted block
+    for (wordIx = 0; wordIx < encrypted32.length; wordIx += 4) {
+      // convert big-endian (network order) words into little-endian
+      // (javascript order)
+      encrypted0 = ntoh(encrypted32[wordIx]);
+      encrypted1 = ntoh(encrypted32[wordIx + 1]);
+      encrypted2 = ntoh(encrypted32[wordIx + 2]);
+      encrypted3 = ntoh(encrypted32[wordIx + 3]);
+
+      // decrypt the block
+      decipher.decrypt(encrypted0, encrypted1, encrypted2, encrypted3, decrypted32, wordIx);
+
+      // XOR with the IV, and restore network byte-order to obtain the
+      // plaintext
+      decrypted32[wordIx] = ntoh(decrypted32[wordIx] ^ init0);
+      decrypted32[wordIx + 1] = ntoh(decrypted32[wordIx + 1] ^ init1);
+      decrypted32[wordIx + 2] = ntoh(decrypted32[wordIx + 2] ^ init2);
+      decrypted32[wordIx + 3] = ntoh(decrypted32[wordIx + 3] ^ init3);
+
+      // setup the IV for the next round
+      init0 = encrypted0;
+      init1 = encrypted1;
+      init2 = encrypted2;
+      init3 = encrypted3;
+    }
+
+    return decrypted;
+  };
+
+  /**
+   * The `Decrypter` class that manages decryption of AES
+   * data through `AsyncStream` objects and the `decrypt`
+   * function
+   *
+   * @param {Uint8Array} encrypted the encrypted bytes
+   * @param {Uint32Array} key the bytes of the decryption key
+   * @param {Uint32Array} initVector the initialization vector (IV) to
+   * @param {Function} done the function to run when done
+   * @class Decrypter
+   */
+
+  var Decrypter = function () {
+    function Decrypter(encrypted, key, initVector, done) {
+      classCallCheck$2(this, Decrypter);
+
+      var step = Decrypter.STEP;
+      var encrypted32 = new Int32Array(encrypted.buffer);
+      var decrypted = new Uint8Array(encrypted.byteLength);
+      var i = 0;
+
+      this.asyncStream_ = new AsyncStream();
+
+      // split up the encryption job and do the individual chunks asynchronously
+      this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i, i + step), key, initVector, decrypted));
+      for (i = step; i < encrypted32.length; i += step) {
+        initVector = new Uint32Array([ntoh(encrypted32[i - 4]), ntoh(encrypted32[i - 3]), ntoh(encrypted32[i - 2]), ntoh(encrypted32[i - 1])]);
+        this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i, i + step), key, initVector, decrypted));
+      }
+      // invoke the done() callback when everything is finished
+      this.asyncStream_.push(function () {
+        // remove pkcs#7 padding from the decrypted bytes
+        done(null, unpad(decrypted));
+      });
+    }
+
+    /**
+     * a getter for step the maximum number of bytes to process at one time
+     *
+     * @return {Number} the value of step 32000
+     */
+
+    /**
+     * @private
+     */
+    Decrypter.prototype.decryptChunk_ = function decryptChunk_(encrypted, key, initVector, decrypted) {
+      return function () {
+        var bytes = decrypt(encrypted, key, initVector);
+
+        decrypted.set(bytes, encrypted.byteOffset);
+      };
+    };
+
+    createClass$1(Decrypter, null, [{
+      key: 'STEP',
+      get: function get$$1() {
+        // 4 * 8000;
+        return 32000;
+      }
+    }]);
+    return Decrypter;
+  }();
+
+  /**
+   * @videojs/http-streaming
+   * @version 1.0.0
+   * @copyright 2018 Brightcove, Inc
+   * @license Apache-2.0
+   */
+
+  /**
+   * @file resolve-url.js
+   */
+
+  var resolveUrl$1 = function resolveUrl(baseURL, relativeURL) {
+    // return early if we don't need to resolve
+    if (/^[a-z]+:/i.test(relativeURL)) {
+      return relativeURL;
+    }
+
+    // if the base URL is relative then combine with the current location
+    if (!/\/\//i.test(baseURL)) {
+      baseURL = urlToolkit.buildAbsoluteURL(window_1.location.href, baseURL);
+    }
+
+    return urlToolkit.buildAbsoluteURL(baseURL, relativeURL);
+  };
+
+  /**
+   * @file playlist-loader.js
+   *
+   * A state machine that manages the loading, caching, and updating of
+   * M3U8 playlists.
+   *
+   */
+
+  var mergeOptions$1 = videojs$1.mergeOptions,
+    EventTarget$1 = videojs$1.EventTarget,
+    log$2 = videojs$1.log;
+
+  /**
+   * Loops through all supported media groups in master and calls the provided
+   * callback for each group
+   *
+   * @param {Object} master
+   *        The parsed master manifest object
+   * @param {Function} callback
+   *        Callback to call for each media group
+   */
+
+  var forEachMediaGroup = function forEachMediaGroup(master, callback) {
+    ['AUDIO', 'SUBTITLES'].forEach(function (mediaType) {
+      for (var groupKey in master.mediaGroups[mediaType]) {
+        for (var labelKey in master.mediaGroups[mediaType][groupKey]) {
+          var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];
+
+          callback(mediaProperties, mediaType, groupKey, labelKey);
+        }
+      }
+    });
+  };
+
+  /**
+   * Returns a new array of segments that is the result of merging
+   * properties from an older list of segments onto an updated
+   * list. No properties on the updated playlist will be overridden.
+   *
+   * @param {Array} original the outdated list of segments
+   * @param {Array} update the updated list of segments
+   * @param {Number=} offset the index of the first update
+   * segment in the original segment list. For non-live playlists,
+   * this should always be zero and does not need to be
+   * specified. For live playlists, it should be the difference
+   * between the media sequence numbers in the original and updated
+   * playlists.
+   * @return a list of merged segment objects
+   */
+  var updateSegments = function updateSegments(original, update, offset) {
+    var result = update.slice();
+
+    offset = offset || 0;
+    var length = Math.min(original.length, update.length + offset);
+
+    for (var i = offset; i < length; i++) {
+      result[i - offset] = mergeOptions$1(original[i], result[i - offset]);
+    }
+    return result;
+  };
+
+  var resolveSegmentUris = function resolveSegmentUris(segment, baseUri) {
+    if (!segment.resolvedUri) {
+      segment.resolvedUri = resolveUrl$1(baseUri, segment.uri);
+    }
+    if (segment.key && !segment.key.resolvedUri) {
+      segment.key.resolvedUri = resolveUrl$1(baseUri, segment.key.uri);
+    }
+    if (segment.map && !segment.map.resolvedUri) {
+      segment.map.resolvedUri = resolveUrl$1(baseUri, segment.map.uri);
+    }
+  };
+
+  /**
+   * Returns a new master playlist that is the result of merging an
+   * updated media playlist into the original version. If the
+   * updated media playlist does not match any of the playlist
+   * entries in the original master playlist, null is returned.
+   *
+   * @param {Object} master a parsed master M3U8 object
+   * @param {Object} media a parsed media M3U8 object
+   * @return {Object} a new object that represents the original
+   * master playlist with the updated media playlist merged in, or
+   * null if the merge produced no change.
+   */
+  var updateMaster = function updateMaster(master, media) {
+    var result = mergeOptions$1(master, {});
+    var playlist = result.playlists[media.uri];
+
+    if (!playlist) {
+      return null;
+    }
+
+    // consider the playlist unchanged if the number of segments is equal and the media
+    // sequence number is unchanged
+    if (playlist.segments && media.segments && playlist.segments.length === media.segments.length && playlist.mediaSequence === media.mediaSequence) {
+      return null;
+    }
+
+    var mergedPlaylist = mergeOptions$1(playlist, media);
+
+    // if the update could overlap existing segment information, merge the two segment lists
+    if (playlist.segments) {
+      mergedPlaylist.segments = updateSegments(playlist.segments, media.segments, media.mediaSequence - playlist.mediaSequence);
+    }
+
+    // resolve any segment URIs to prevent us from having to do it later
+    mergedPlaylist.segments.forEach(function (segment) {
+      resolveSegmentUris(segment, mergedPlaylist.resolvedUri);
+    });
+
+    // TODO Right now in the playlists array there are two references to each playlist, one
+    // that is referenced by index, and one by URI. The index reference may no longer be
+    // necessary.
+    for (var i = 0; i < result.playlists.length; i++) {
+      if (result.playlists[i].uri === media.uri) {
+        result.playlists[i] = mergedPlaylist;
+      }
+    }
+    result.playlists[media.uri] = mergedPlaylist;
+
+    return result;
+  };
+
+  var setupMediaPlaylists = function setupMediaPlaylists(master) {
+    // setup by-URI lookups and resolve media playlist URIs
+    var i = master.playlists.length;
+
+    while (i--) {
+      var playlist = master.playlists[i];
+
+      master.playlists[playlist.uri] = playlist;
+      playlist.resolvedUri = resolveUrl$1(master.uri, playlist.uri);
+      playlist.id = i;
+
+      if (!playlist.attributes) {
+        // Although the spec states an #EXT-X-STREAM-INF tag MUST have a
+        // BANDWIDTH attribute, we can play the stream without it. This means a poorly
+        // formatted master playlist may not have an attribute list. An attributes
+        // property is added here to prevent undefined references when we encounter
+        // this scenario.
+        playlist.attributes = {};
+
+        log$2.warn('Invalid playlist STREAM-INF detected. Missing BANDWIDTH attribute.');
+      }
+    }
+  };
+
+  var resolveMediaGroupUris = function resolveMediaGroupUris(master) {
+    forEachMediaGroup(master, function (properties) {
+      if (properties.uri) {
+        properties.resolvedUri = resolveUrl$1(master.uri, properties.uri);
+      }
+    });
+  };
+
+  /**
+   * Calculates the time to wait before refreshing a live playlist
+   *
+   * @param {Object} media
+   *        The current media
+   * @param {Boolean} update
+   *        True if there were any updates from the last refresh, false otherwise
+   * @return {Number}
+   *         The time in ms to wait before refreshing the live playlist
+   */
+  var refreshDelay = function refreshDelay(media, update) {
+    var lastSegment = media.segments[media.segments.length - 1];
+    var delay = void 0;
+
+    if (update && lastSegment && lastSegment.duration) {
+      delay = lastSegment.duration * 1000;
+    } else {
+      // if the playlist is unchanged since the last reload or last segment duration
+      // cannot be determined, try again after half the target duration
+      delay = (media.targetDuration || 10) * 500;
+    }
+    return delay;
+  };
+
+  /**
+   * Load a playlist from a remote location
+   *
+   * @class PlaylistLoader
+   * @extends Stream
+   * @param {String} srcUrl the url to start with
+   * @param {Boolean} withCredentials the withCredentials xhr option
+   * @constructor
+   */
+
+  var PlaylistLoader = function (_EventTarget) {
+    inherits(PlaylistLoader, _EventTarget);
+
+    function PlaylistLoader(srcUrl, hls, withCredentials) {
+      classCallCheck(this, PlaylistLoader);
+
+      var _this2 = possibleConstructorReturn(this, _EventTarget.call(this));
+
+      _this2.srcUrl = srcUrl;
+      _this2.hls_ = hls;
+      _this2.withCredentials = withCredentials;
+
+      if (!_this2.srcUrl) {
+        throw new Error('A non-empty playlist URL is required');
+      }
+
+      // initialize the loader state
+      _this2.state = 'HAVE_NOTHING';
+
+      // live playlist staleness timeout
+      _this2.on('mediaupdatetimeout', function () {
+        if (_this2.state !== 'HAVE_METADATA') {
+          // only refresh the media playlist if no other activity is going on
+          return;
+        }
+
+        _this2.state = 'HAVE_CURRENT_METADATA';
+
+        _this2.request = _this2.hls_.xhr({
+          uri: resolveUrl$1(_this2.master.uri, _this2.media().uri),
+          withCredentials: _this2.withCredentials
+        }, function (error, req) {
+          // disposed
+          if (!_this2.request) {
+            return;
+          }
+
+          if (error) {
+            return _this2.playlistRequestError(_this2.request, _this2.media().uri, 'HAVE_METADATA');
+          }
+
+          _this2.haveMetadata(_this2.request, _this2.media().uri);
+        });
+      });
+      return _this2;
+    }
+
+    PlaylistLoader.prototype.playlistRequestError = function playlistRequestError(xhr, url, startingState) {
+      // any in-flight request is now finished
+      this.request = null;
+
+      if (startingState) {
+        this.state = startingState;
+      }
+
+      this.error = {
+        playlist: this.master.playlists[url],
+        status: xhr.status,
+        message: 'HLS playlist request error at URL: ' + url,
+        responseText: xhr.responseText,
+        code: xhr.status >= 500 ? 4 : 2
+      };
+
+      this.trigger('error');
+    };
+
+    // update the playlist loader's state in response to a new or
+    // updated playlist.
+
+
+    PlaylistLoader.prototype.haveMetadata = function haveMetadata(xhr, url) {
+      var _this3 = this;
+
+      // any in-flight request is now finished
+      this.request = null;
+      this.state = 'HAVE_METADATA';
+
+      var parser = new Parser();
+
+      parser.push(xhr.responseText);
+      parser.end();
+      parser.manifest.uri = url;
+      // m3u8-parser does not attach an attributes property to media playlists so make
+      // sure that the property is attached to avoid undefined reference errors
+      parser.manifest.attributes = parser.manifest.attributes || {};
+
+      // merge this playlist into the master
+      var update = updateMaster(this.master, parser.manifest);
+
+      this.targetDuration = parser.manifest.targetDuration;
+
+      if (update) {
+        this.master = update;
+        this.media_ = this.master.playlists[parser.manifest.uri];
+      } else {
+        this.trigger('playlistunchanged');
+      }
+
+      // refresh live playlists after a target duration passes
+      if (!this.media().endList) {
+        window_1.clearTimeout(this.mediaUpdateTimeout);
+        this.mediaUpdateTimeout = window_1.setTimeout(function () {
+          _this3.trigger('mediaupdatetimeout');
+        }, refreshDelay(this.media(), !!update));
+      }
+
+      this.trigger('loadedplaylist');
+    };
+
+    /**
+     * Abort any outstanding work and clean up.
+     */
+
+
+    PlaylistLoader.prototype.dispose = function dispose() {
+      this.stopRequest();
+      window_1.clearTimeout(this.mediaUpdateTimeout);
+    };
+
+    PlaylistLoader.prototype.stopRequest = function stopRequest() {
+      if (this.request) {
+        var oldRequest = this.request;
+
+        this.request = null;
+        oldRequest.onreadystatechange = null;
+        oldRequest.abort();
+      }
+    };
+
+    /**
+     * When called without any arguments, returns the currently
+     * active media playlist. When called with a single argument,
+     * triggers the playlist loader to asynchronously switch to the
+     * specified media playlist. Calling this method while the
+     * loader is in the HAVE_NOTHING causes an error to be emitted
+     * but otherwise has no effect.
+     *
+     * @param {Object=} playlist the parsed media playlist
+     * object to switch to
+     * @return {Playlist} the current loaded media
+     */
+
+
+    PlaylistLoader.prototype.media = function media(playlist) {
+      var _this4 = this;
+
+      // getter
+      if (!playlist) {
+        return this.media_;
+      }
+
+      // setter
+      if (this.state === 'HAVE_NOTHING') {
+        throw new Error('Cannot switch media playlist from ' + this.state);
+      }
+
+      var startingState = this.state;
+
+      // find the playlist object if the target playlist has been
+      // specified by URI
+      if (typeof playlist === 'string') {
+        if (!this.master.playlists[playlist]) {
+          throw new Error('Unknown playlist URI: ' + playlist);
+        }
+        playlist = this.master.playlists[playlist];
+      }
+
+      var mediaChange = !this.media_ || playlist.uri !== this.media_.uri;
+
+      // switch to fully loaded playlists immediately
+      if (this.master.playlists[playlist.uri].endList) {
+        // abort outstanding playlist requests
+        if (this.request) {
+          this.request.onreadystatechange = null;
+          this.request.abort();
+          this.request = null;
+        }
+        this.state = 'HAVE_METADATA';
+        this.media_ = playlist;
+
+        // trigger media change if the active media has been updated
+        if (mediaChange) {
+          this.trigger('mediachanging');
+          this.trigger('mediachange');
+        }
+        return;
+      }
+
+      // switching to the active playlist is a no-op
+      if (!mediaChange) {
+        return;
+      }
+
+      this.state = 'SWITCHING_MEDIA';
+
+      // there is already an outstanding playlist request
+      if (this.request) {
+        if (resolveUrl$1(this.master.uri, playlist.uri) === this.request.url) {
+          // requesting to switch to the same playlist multiple times
+          // has no effect after the first
+          return;
+        }
+        this.request.onreadystatechange = null;
+        this.request.abort();
+        this.request = null;
+      }
+
+      // request the new playlist
+      if (this.media_) {
+        this.trigger('mediachanging');
+      }
+
+      this.request = this.hls_.xhr({
+        uri: resolveUrl$1(this.master.uri, playlist.uri),
+        withCredentials: this.withCredentials
+      }, function (error, req) {
+        // disposed
+        if (!_this4.request) {
+          return;
+        }
+
+        if (error) {
+          return _this4.playlistRequestError(_this4.request, playlist.uri, startingState);
+        }
+
+        _this4.haveMetadata(req, playlist.uri);
+
+        // fire loadedmetadata the first time a media playlist is loaded
+        if (startingState === 'HAVE_MASTER') {
+          _this4.trigger('loadedmetadata');
+        } else {
+          _this4.trigger('mediachange');
+        }
+      });
+    };
+
+    /**
+     * pause loading of the playlist
+     */
+
+
+    PlaylistLoader.prototype.pause = function pause() {
+      this.stopRequest();
+      window_1.clearTimeout(this.mediaUpdateTimeout);
+      if (this.state === 'HAVE_NOTHING') {
+        // If we pause the loader before any data has been retrieved, its as if we never
+        // started, so reset to an unstarted state.
+        this.started = false;
+      }
+      // Need to restore state now that no activity is happening
+      if (this.state === 'SWITCHING_MEDIA') {
+        // if the loader was in the process of switching media, it should either return to
+        // HAVE_MASTER or HAVE_METADATA depending on if the loader has loaded a media
+        // playlist yet. This is determined by the existence of loader.media_
+        if (this.media_) {
+          this.state = 'HAVE_METADATA';
+        } else {
+          this.state = 'HAVE_MASTER';
+        }
+      } else if (this.state === 'HAVE_CURRENT_METADATA') {
+        this.state = 'HAVE_METADATA';
+      }
+    };
+
+    /**
+     * start loading of the playlist
+     */
+
+
+    PlaylistLoader.prototype.load = function load(isFinalRendition) {
+      var _this5 = this;
+
+      window_1.clearTimeout(this.mediaUpdateTimeout);
+
+      var media = this.media();
+
+      if (isFinalRendition) {
+        var delay = media ? media.targetDuration / 2 * 1000 : 5 * 1000;
+
+        this.mediaUpdateTimeout = window_1.setTimeout(function () {
+          return _this5.load();
+        }, delay);
+        return;
+      }
+
+      if (!this.started) {
+        this.start();
+        return;
+      }
+
+      if (media && !media.endList) {
+        this.trigger('mediaupdatetimeout');
+      } else {
+        this.trigger('loadedplaylist');
+      }
+    };
+
+    /**
+     * start loading of the playlist
+     */
+
+
+    PlaylistLoader.prototype.start = function start() {
+      var _this6 = this;
+
+      this.started = true;
+
+      // request the specified URL
+      this.request = this.hls_.xhr({
+        uri: this.srcUrl,
+        withCredentials: this.withCredentials
+      }, function (error, req) {
+        // disposed
+        if (!_this6.request) {
+          return;
+        }
+
+        // clear the loader's request reference
+        _this6.request = null;
+
+        if (error) {
+          _this6.error = {
+            status: req.status,
+            message: 'HLS playlist request error at URL: ' + _this6.srcUrl,
+            responseText: req.responseText,
+            // MEDIA_ERR_NETWORK
+            code: 2
+          };
+          if (_this6.state === 'HAVE_NOTHING') {
+            _this6.started = false;
+          }
+          return _this6.trigger('error');
+        }
+
+        var parser = new Parser();
+
+        parser.push(req.responseText);
+        parser.end();
+
+        _this6.state = 'HAVE_MASTER';
+
+        parser.manifest.uri = _this6.srcUrl;
+
+        // loaded a master playlist
+        if (parser.manifest.playlists) {
+          _this6.master = parser.manifest;
+
+          setupMediaPlaylists(_this6.master);
+          resolveMediaGroupUris(_this6.master);
+
+          _this6.trigger('loadedplaylist');
+          if (!_this6.request) {
+            // no media playlist was specifically selected so start
+            // from the first listed one
+            _this6.media(parser.manifest.playlists[0]);
+          }
+          return;
+        }
+
+        // loaded a media playlist
+        // infer a master playlist if none was previously requested
+        _this6.master = {
+          mediaGroups: {
+            'AUDIO': {},
+            'VIDEO': {},
+            'CLOSED-CAPTIONS': {},
+            'SUBTITLES': {}
+          },
+          uri: window_1.location.href,
+          playlists: [{
+            uri: _this6.srcUrl,
+            id: 0
+          }]
+        };
+        _this6.master.playlists[_this6.srcUrl] = _this6.master.playlists[0];
+        _this6.master.playlists[0].resolvedUri = _this6.srcUrl;
+        // m3u8-parser does not attach an attributes property to media playlists so make
+        // sure that the property is attached to avoid undefined reference errors
+        _this6.master.playlists[0].attributes = _this6.master.playlists[0].attributes || {};
+        _this6.haveMetadata(req, _this6.srcUrl);
+        return _this6.trigger('loadedmetadata');
+      });
+    };
+
+    return PlaylistLoader;
+  }(EventTarget$1);
+
+  /**
+   * @file playlist.js
+   *
+   * Playlist related utilities.
+   */
+
+  var createTimeRange = videojs$1.createTimeRange;
+
+  /**
+   * walk backward until we find a duration we can use
+   * or return a failure
+   *
+   * @param {Playlist} playlist the playlist to walk through
+   * @param {Number} endSequence the mediaSequence to stop walking on
+   */
+
+  var backwardDuration = function backwardDuration(playlist, endSequence) {
+    var result = 0;
+    var i = endSequence - playlist.mediaSequence;
+    // if a start time is available for segment immediately following
+    // the interval, use it
+    var segment = playlist.segments[i];
+
+    // Walk backward until we find the latest segment with timeline
+    // information that is earlier than endSequence
+    if (segment) {
+      if (typeof segment.start !== 'undefined') {
+        return {result: segment.start, precise: true};
+      }
+      if (typeof segment.end !== 'undefined') {
+        return {
+          result: segment.end - segment.duration,
+          precise: true
+        };
+      }
+    }
+    while (i--) {
+      segment = playlist.segments[i];
+      if (typeof segment.end !== 'undefined') {
+        return {result: result + segment.end, precise: true};
+      }
+
+      result += segment.duration;
+
+      if (typeof segment.start !== 'undefined') {
+        return {result: result + segment.start, precise: true};
+      }
+    }
+    return {result: result, precise: false};
+  };
+
+  /**
+   * walk forward until we find a duration we can use
+   * or return a failure
+   *
+   * @param {Playlist} playlist the playlist to walk through
+   * @param {Number} endSequence the mediaSequence to stop walking on
+   */
+  var forwardDuration = function forwardDuration(playlist, endSequence) {
+    var result = 0;
+    var segment = void 0;
+    var i = endSequence - playlist.mediaSequence;
+    // Walk forward until we find the earliest segment with timeline
+    // information
+
+    for (; i < playlist.segments.length; i++) {
+      segment = playlist.segments[i];
+      if (typeof segment.start !== 'undefined') {
+        return {
+          result: segment.start - result,
+          precise: true
+        };
+      }
+
+      result += segment.duration;
+
+      if (typeof segment.end !== 'undefined') {
+        return {
+          result: segment.end - result,
+          precise: true
+        };
+      }
+    }
+    // indicate we didn't find a useful duration estimate
+    return {result: -1, precise: false};
+  };
+
+  /**
+   * Calculate the media duration from the segments associated with a
+   * playlist. The duration of a subinterval of the available segments
+   * may be calculated by specifying an end index.
+   *
+   * @param {Object} playlist a media playlist object
+   * @param {Number=} endSequence an exclusive upper boundary
+   * for the playlist.  Defaults to playlist length.
+   * @param {Number} expired the amount of time that has dropped
+   * off the front of the playlist in a live scenario
+   * @return {Number} the duration between the first available segment
+   * and end index.
+   */
+  var intervalDuration = function intervalDuration(playlist, endSequence, expired) {
+    var backward = void 0;
+    var forward = void 0;
+
+    if (typeof endSequence === 'undefined') {
+      endSequence = playlist.mediaSequence + playlist.segments.length;
+    }
+
+    if (endSequence < playlist.mediaSequence) {
+      return 0;
+    }
+
+    // do a backward walk to estimate the duration
+    backward = backwardDuration(playlist, endSequence);
+    if (backward.precise) {
+      // if we were able to base our duration estimate on timing
+      // information provided directly from the Media Source, return
+      // it
+      return backward.result;
+    }
+
+    // walk forward to see if a precise duration estimate can be made
+    // that way
+    forward = forwardDuration(playlist, endSequence);
+    if (forward.precise) {
+      // we found a segment that has been buffered and so it's
+      // position is known precisely
+      return forward.result;
+    }
+
+    // return the less-precise, playlist-based duration estimate
+    return backward.result + expired;
+  };
+
+  /**
+   * Calculates the duration of a playlist. If a start and end index
+   * are specified, the duration will be for the subset of the media
+   * timeline between those two indices. The total duration for live
+   * playlists is always Infinity.
+   *
+   * @param {Object} playlist a media playlist object
+   * @param {Number=} endSequence an exclusive upper
+   * boundary for the playlist. Defaults to the playlist media
+   * sequence number plus its length.
+   * @param {Number=} expired the amount of time that has
+   * dropped off the front of the playlist in a live scenario
+   * @return {Number} the duration between the start index and end
+   * index.
+   */
+  var duration = function duration(playlist, endSequence, expired) {
+    if (!playlist) {
+      return 0;
+    }
+
+    if (typeof expired !== 'number') {
+      expired = 0;
+    }
+
+    // if a slice of the total duration is not requested, use
+    // playlist-level duration indicators when they're present
+    if (typeof endSequence === 'undefined') {
+      // if present, use the duration specified in the playlist
+      if (playlist.totalDuration) {
+        return playlist.totalDuration;
+      }
+
+      // duration should be Infinity for live playlists
+      if (!playlist.endList) {
+        return window_1.Infinity;
+      }
+    }
+
+    // calculate the total duration based on the segment durations
+    return intervalDuration(playlist, endSequence, expired);
+  };
+
+  /**
+   * Calculate the time between two indexes in the current playlist
+   * neight the start- nor the end-index need to be within the current
+   * playlist in which case, the targetDuration of the playlist is used
+   * to approximate the durations of the segments
+   *
+   * @param {Object} playlist a media playlist object
+   * @param {Number} startIndex
+   * @param {Number} endIndex
+   * @return {Number} the number of seconds between startIndex and endIndex
+   */
+  var sumDurations = function sumDurations(playlist, startIndex, endIndex) {
+    var durations = 0;
+
+    if (startIndex > endIndex) {
+      var _ref = [endIndex, startIndex];
+      startIndex = _ref[0];
+      endIndex = _ref[1];
+    }
+
+    if (startIndex < 0) {
+      for (var i = startIndex; i < Math.min(0, endIndex); i++) {
+        durations += playlist.targetDuration;
+      }
+      startIndex = 0;
+    }
+
+    for (var _i2 = startIndex; _i2 < endIndex; _i2++) {
+      durations += playlist.segments[_i2].duration;
+    }
+
+    return durations;
+  };
+
+  /**
+   * Determines the media index of the segment corresponding to the safe edge of the live
+   * window which is the duration of the last segment plus 2 target durations from the end
+   * of the playlist.
+   *
+   * @param {Object} playlist
+   *        a media playlist object
+   * @return {Number}
+   *         The media index of the segment at the safe live point. 0 if there is no "safe"
+   *         point.
+   * @function safeLiveIndex
+   */
+  var safeLiveIndex = function safeLiveIndex(playlist) {
+    if (!playlist.segments.length) {
+      return 0;
+    }
+
+    var i = playlist.segments.length - 1;
+    var distanceFromEnd = playlist.segments[i].duration || playlist.targetDuration;
+    var safeDistance = distanceFromEnd + playlist.targetDuration * 2;
+
+    while (i--) {
+      distanceFromEnd += playlist.segments[i].duration;
+
+      if (distanceFromEnd >= safeDistance) {
+        break;
+      }
+    }
+
+    return Math.max(0, i);
+  };
+
+  /**
+   * Calculates the playlist end time
+   *
+   * @param {Object} playlist a media playlist object
+   * @param {Number=} expired the amount of time that has
+   *                  dropped off the front of the playlist in a live scenario
+   * @param {Boolean|false} useSafeLiveEnd a boolean value indicating whether or not the
+   *                        playlist end calculation should consider the safe live end
+   *                        (truncate the playlist end by three segments). This is normally
+   *                        used for calculating the end of the playlist's seekable range.
+   * @returns {Number} the end time of playlist
+   * @function playlistEnd
+   */
+  var playlistEnd = function playlistEnd(playlist, expired, useSafeLiveEnd) {
+    if (!playlist || !playlist.segments) {
+      return null;
+    }
+    if (playlist.endList) {
+      return duration(playlist);
+    }
+
+    if (expired === null) {
+      return null;
+    }
+
+    expired = expired || 0;
+
+    var endSequence = useSafeLiveEnd ? safeLiveIndex(playlist) : playlist.segments.length;
+
+    return intervalDuration(playlist, playlist.mediaSequence + endSequence, expired);
+  };
+
+  /**
+   * Calculates the interval of time that is currently seekable in a
+   * playlist. The returned time ranges are relative to the earliest
+   * moment in the specified playlist that is still available. A full
+   * seekable implementation for live streams would need to offset
+   * these values by the duration of content that has expired from the
+   * stream.
+   *
+   * @param {Object} playlist a media playlist object
+   * dropped off the front of the playlist in a live scenario
+   * @param {Number=} expired the amount of time that has
+   * dropped off the front of the playlist in a live scenario
+   * @return {TimeRanges} the periods of time that are valid targets
+   * for seeking
+   */
+  var seekable = function seekable(playlist, expired) {
+    var useSafeLiveEnd = true;
+    var seekableStart = expired || 0;
+    var seekableEnd = playlistEnd(playlist, expired, useSafeLiveEnd);
+
+    if (seekableEnd === null) {
+      return createTimeRange();
+    }
+    return createTimeRange(seekableStart, seekableEnd);
+  };
+
+  var isWholeNumber = function isWholeNumber(num) {
+    return num - Math.floor(num) === 0;
+  };
+
+  var roundSignificantDigit = function roundSignificantDigit(increment, num) {
+    // If we have a whole number, just add 1 to it
+    if (isWholeNumber(num)) {
+      return num + increment * 0.1;
+    }
+
+    var numDecimalDigits = num.toString().split('.')[1].length;
+
+    for (var i = 1; i <= numDecimalDigits; i++) {
+      var scale = Math.pow(10, i);
+      var temp = num * scale;
+
+      if (isWholeNumber(temp) || i === numDecimalDigits) {
+        return (temp + increment) / scale;
+      }
+    }
+  };
+
+  var ceilLeastSignificantDigit = roundSignificantDigit.bind(null, 1);
+  var floorLeastSignificantDigit = roundSignificantDigit.bind(null, -1);
+
+  /**
+   * Determine the index and estimated starting time of the segment that
+   * contains a specified playback position in a media playlist.
+   *
+   * @param {Object} playlist the media playlist to query
+   * @param {Number} currentTime The number of seconds since the earliest
+   * possible position to determine the containing segment for
+   * @param {Number} startIndex
+   * @param {Number} startTime
+   * @return {Object}
+   */
+  var getMediaInfoForTime = function getMediaInfoForTime(playlist, currentTime, startIndex, startTime) {
+    var i = void 0;
+    var segment = void 0;
+    var numSegments = playlist.segments.length;
+
+    var time = currentTime - startTime;
+
+    if (time < 0) {
+      // Walk backward from startIndex in the playlist, adding durations
+      // until we find a segment that contains `time` and return it
+      if (startIndex > 0) {
+        for (i = startIndex - 1; i >= 0; i--) {
+          segment = playlist.segments[i];
+          time += floorLeastSignificantDigit(segment.duration);
+          if (time > 0) {
+            return {
+              mediaIndex: i,
+              startTime: startTime - sumDurations(playlist, startIndex, i)
+            };
+          }
+        }
+      }
+      // We were unable to find a good segment within the playlist
+      // so select the first segment
+      return {
+        mediaIndex: 0,
+        startTime: currentTime
+      };
+    }
+
+    // When startIndex is negative, we first walk forward to first segment
+    // adding target durations. If we "run out of time" before getting to
+    // the first segment, return the first segment
+    if (startIndex < 0) {
+      for (i = startIndex; i < 0; i++) {
+        time -= playlist.targetDuration;
+        if (time < 0) {
+          return {
+            mediaIndex: 0,
+            startTime: currentTime
+          };
+        }
+      }
+      startIndex = 0;
+    }
+
+    // Walk forward from startIndex in the playlist, subtracting durations
+    // until we find a segment that contains `time` and return it
+    for (i = startIndex; i < numSegments; i++) {
+      segment = playlist.segments[i];
+      time -= ceilLeastSignificantDigit(segment.duration);
+      if (time < 0) {
+        return {
+          mediaIndex: i,
+          startTime: startTime + sumDurations(playlist, startIndex, i)
+        };
+      }
+    }
+
+    // We are out of possible candidates so load the last one...
+    return {
+      mediaIndex: numSegments - 1,
+      startTime: currentTime
+    };
+  };
+
+  /**
+   * Check whether the playlist is blacklisted or not.
+   *
+   * @param {Object} playlist the media playlist object
+   * @return {boolean} whether the playlist is blacklisted or not
+   * @function isBlacklisted
+   */
+  var isBlacklisted = function isBlacklisted(playlist) {
+    return playlist.excludeUntil && playlist.excludeUntil > Date.now();
+  };
+
+  /**
+   * Check whether the playlist is compatible with current playback configuration or has
+   * been blacklisted permanently for being incompatible.
+   *
+   * @param {Object} playlist the media playlist object
+   * @return {boolean} whether the playlist is incompatible or not
+   * @function isIncompatible
+   */
+  var isIncompatible = function isIncompatible(playlist) {
+    return playlist.excludeUntil && playlist.excludeUntil === Infinity;
+  };
+
+  /**
+   * Check whether the playlist is enabled or not.
+   *
+   * @param {Object} playlist the media playlist object
+   * @return {boolean} whether the playlist is enabled or not
+   * @function isEnabled
+   */
+  var isEnabled = function isEnabled(playlist) {
+    var blacklisted = isBlacklisted(playlist);
+
+    return !playlist.disabled && !blacklisted;
+  };
+
+  /**
+   * Check whether the playlist has been manually disabled through the representations api.
+   *
+   * @param {Object} playlist the media playlist object
+   * @return {boolean} whether the playlist is disabled manually or not
+   * @function isDisabled
+   */
+  var isDisabled = function isDisabled(playlist) {
+    return playlist.disabled;
+  };
+
+  /**
+   * Returns whether the current playlist is an AES encrypted HLS stream
+   *
+   * @return {Boolean} true if it's an AES encrypted HLS stream
+   */
+  var isAes = function isAes(media) {
+    for (var i = 0; i < media.segments.length; i++) {
+      if (media.segments[i].key) {
+        return true;
+      }
+    }
+    return false;
+  };
+
+  /**
+   * Returns whether the current playlist contains fMP4
+   *
+   * @return {Boolean} true if the playlist contains fMP4
+   */
+  var isFmp4 = function isFmp4(media) {
+    for (var i = 0; i < media.segments.length; i++) {
+      if (media.segments[i].map) {
+        return true;
+      }
+    }
+    return false;
+  };
+
+  /**
+   * Checks if the playlist has a value for the specified attribute
+   *
+   * @param {String} attr
+   *        Attribute to check for
+   * @param {Object} playlist
+   *        The media playlist object
+   * @return {Boolean}
+   *         Whether the playlist contains a value for the attribute or not
+   * @function hasAttribute
+   */
+  var hasAttribute = function hasAttribute(attr, playlist) {
+    return playlist.attributes && playlist.attributes[attr];
+  };
+
+  /**
+   * Estimates the time required to complete a segment download from the specified playlist
+   *
+   * @param {Number} segmentDuration
+   *        Duration of requested segment
+   * @param {Number} bandwidth
+   *        Current measured bandwidth of the player
+   * @param {Object} playlist
+   *        The media playlist object
+   * @param {Number=} bytesReceived
+   *        Number of bytes already received for the request. Defaults to 0
+   * @return {Number|NaN}
+   *         The estimated time to request the segment. NaN if bandwidth information for
+   *         the given playlist is unavailable
+   * @function estimateSegmentRequestTime
+   */
+  var estimateSegmentRequestTime = function estimateSegmentRequestTime(segmentDuration, bandwidth, playlist) {
+    var bytesReceived = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
+
+    if (!hasAttribute('BANDWIDTH', playlist)) {
+      return NaN;
+    }
+
+    var size = segmentDuration * playlist.attributes.BANDWIDTH;
+
+    return (size - bytesReceived * 8) / bandwidth;
+  };
+
+  /*
+   * Returns whether the current playlist is the lowest rendition
+   *
+   * @return {Boolean} true if on lowest rendition
+   */
+  var isLowestEnabledRendition = function isLowestEnabledRendition(master, media) {
+    if (master.playlists.length === 1) {
+      return true;
+    }
+
+    var currentBandwidth = media.attributes.BANDWIDTH || Number.MAX_VALUE;
+
+    return master.playlists.filter(function (playlist) {
+      if (!isEnabled(playlist)) {
+        return false;
+      }
+
+      return (playlist.attributes.BANDWIDTH || 0) < currentBandwidth;
+    }).length === 0;
+  };
+
+  // exports
+  var Playlist = {
+    duration: duration,
+    seekable: seekable,
+    safeLiveIndex: safeLiveIndex,
+    getMediaInfoForTime: getMediaInfoForTime,
+    isEnabled: isEnabled,
+    isDisabled: isDisabled,
+    isBlacklisted: isBlacklisted,
+    isIncompatible: isIncompatible,
+    playlistEnd: playlistEnd,
+    isAes: isAes,
+    isFmp4: isFmp4,
+    hasAttribute: hasAttribute,
+    estimateSegmentRequestTime: estimateSegmentRequestTime,
+    isLowestEnabledRendition: isLowestEnabledRendition
+  };
+
+  /**
+   * @file xhr.js
+   */
+
+  var videojsXHR = videojs$1.xhr,
+    mergeOptions$1$1 = videojs$1.mergeOptions;
+
+
+  var xhrFactory = function xhrFactory() {
+    var xhr = function XhrFunction(options, callback) {
+      // Add a default timeout for all hls requests
+      options = mergeOptions$1$1({
+        timeout: 45e3
+      }, options);
+
+      // Allow an optional user-specified function to modify the option
+      // object before we construct the xhr request
+      var beforeRequest = XhrFunction.beforeRequest || videojs$1.Hls.xhr.beforeRequest;
+
+      if (beforeRequest && typeof beforeRequest === 'function') {
+        var newOptions = beforeRequest(options);
+
+        if (newOptions) {
+          options = newOptions;
+        }
+      }
+
+      var request = videojsXHR(options, function (error, response) {
+        var reqResponse = request.response;
+
+        if (!error && reqResponse) {
+          request.responseTime = Date.now();
+          request.roundTripTime = request.responseTime - request.requestTime;
+          request.bytesReceived = reqResponse.byteLength || reqResponse.length;
+          if (!request.bandwidth) {
+            request.bandwidth = Math.floor(request.bytesReceived / request.roundTripTime * 8 * 1000);
+          }
+        }
+
+        if (response.headers) {
+          request.responseHeaders = response.headers;
+        }
+
+        // videojs.xhr now uses a specific code on the error
+        // object to signal that a request has timed out instead
+        // of setting a boolean on the request object
+        if (error && error.code === 'ETIMEDOUT') {
+          request.timedout = true;
+        }
+
+        // videojs.xhr no longer considers status codes outside of 200 and 0
+        // (for file uris) to be errors, but the old XHR did, so emulate that
+        // behavior. Status 206 may be used in response to byterange requests.
+        if (!error && !request.aborted && response.statusCode !== 200 && response.statusCode !== 206 && response.statusCode !== 0) {
+          error = new Error('XHR Failed with a response of: ' + (request && (reqResponse || request.responseText)));
+        }
+
+        callback(error, request);
+      });
+      var originalAbort = request.abort;
+
+      request.abort = function () {
+        request.aborted = true;
+        return originalAbort.apply(request, arguments);
+      };
+      request.uri = options.uri;
+      request.requestTime = Date.now();
+      return request;
+    };
+
+    return xhr;
+  };
+
+  /**
+   * @file bin-utils.js
+   */
+
+  /**
+   * convert a TimeRange to text
+   *
+   * @param {TimeRange} range the timerange to use for conversion
+   * @param {Number} i the iterator on the range to convert
+   */
+  var textRange = function textRange(range, i) {
+    return range.start(i) + '-' + range.end(i);
+  };
+
+  /**
+   * format a number as hex string
+   *
+   * @param {Number} e The number
+   * @param {Number} i the iterator
+   */
+  var formatHexString = function formatHexString(e, i) {
+    var value = e.toString(16);
+
+    return '00'.substring(0, 2 - value.length) + value + (i % 2 ? ' ' : '');
+  };
+  var formatAsciiString = function formatAsciiString(e) {
+    if (e >= 0x20 && e < 0x7e) {
+      return String.fromCharCode(e);
+    }
+    return '.';
+  };
+
+  /**
+   * Creates an object for sending to a web worker modifying properties that are TypedArrays
+   * into a new object with seperated properties for the buffer, byteOffset, and byteLength.
+   *
+   * @param {Object} message
+   *        Object of properties and values to send to the web worker
+   * @return {Object}
+   *         Modified message with TypedArray values expanded
+   * @function createTransferableMessage
+   */
+  var createTransferableMessage = function createTransferableMessage(message) {
+    var transferable = {};
+
+    Object.keys(message).forEach(function (key) {
+      var value = message[key];
+
+      if (ArrayBuffer.isView(value)) {
+        transferable[key] = {
+          bytes: value.buffer,
+          byteOffset: value.byteOffset,
+          byteLength: value.byteLength
+        };
+      } else {
+        transferable[key] = value;
+      }
+    });
+
+    return transferable;
+  };
+
+  /**
+   * Returns a unique string identifier for a media initialization
+   * segment.
+   */
+  var initSegmentId = function initSegmentId(initSegment) {
+    var byterange = initSegment.byterange || {
+      length: Infinity,
+      offset: 0
+    };
+
+    return [byterange.length, byterange.offset, initSegment.resolvedUri].join(',');
+  };
+
+  /**
+   * utils to help dump binary data to the console
+   */
+  var hexDump = function hexDump(data) {
+    var bytes = Array.prototype.slice.call(data);
+    var step = 16;
+    var result = '';
+    var hex = void 0;
+    var ascii = void 0;
+
+    for (var j = 0; j < bytes.length / step; j++) {
+      hex = bytes.slice(j * step, j * step + step).map(formatHexString).join('');
+      ascii = bytes.slice(j * step, j * step + step).map(formatAsciiString).join('');
+      result += hex + ' ' + ascii + '\n';
+    }
+
+    return result;
+  };
+
+  var tagDump = function tagDump(_ref2) {
+    var bytes = _ref2.bytes;
+    return hexDump(bytes);
+  };
+
+  var textRanges = function textRanges(ranges) {
+    var result = '';
+    var i = void 0;
+
+    for (i = 0; i < ranges.length; i++) {
+      result += textRange(ranges, i) + ' ';
+    }
+    return result;
+  };
+
+  var utils = /*#__PURE__*/Object.freeze({
+    createTransferableMessage: createTransferableMessage,
+    initSegmentId: initSegmentId,
+    hexDump: hexDump,
+    tagDump: tagDump,
+    textRanges: textRanges
+  });
+
+  /**
+   * ranges
+   *
+   * Utilities for working with TimeRanges.
+   *
+   */
+
+    // Fudge factor to account for TimeRanges rounding
+  var TIME_FUDGE_FACTOR = 1 / 30;
+  // Comparisons between time values such as current time and the end of the buffered range
+  // can be misleading because of precision differences or when the current media has poorly
+  // aligned audio and video, which can cause values to be slightly off from what you would
+  // expect. This value is what we consider to be safe to use in such comparisons to account
+  // for these scenarios.
+  var SAFE_TIME_DELTA = TIME_FUDGE_FACTOR * 3;
+  var filterRanges = function filterRanges(timeRanges, predicate) {
+    var results = [];
+    var i = void 0;
+
+    if (timeRanges && timeRanges.length) {
+      // Search for ranges that match the predicate
+      for (i = 0; i < timeRanges.length; i++) {
+        if (predicate(timeRanges.start(i), timeRanges.end(i))) {
+          results.push([timeRanges.start(i), timeRanges.end(i)]);
+        }
+      }
+    }
+
+    return videojs$1.createTimeRanges(results);
+  };
+
+  /**
+   * Attempts to find the buffered TimeRange that contains the specified
+   * time.
+   * @param {TimeRanges} buffered - the TimeRanges object to query
+   * @param {number} time  - the time to filter on.
+   * @returns {TimeRanges} a new TimeRanges object
+   */
+  var findRange = function findRange(buffered, time) {
+    return filterRanges(buffered, function (start, end) {
+      return start - TIME_FUDGE_FACTOR <= time && end + TIME_FUDGE_FACTOR >= time;
+    });
+  };
+
+  /**
+   * Returns the TimeRanges that begin later than the specified time.
+   * @param {TimeRanges} timeRanges - the TimeRanges object to query
+   * @param {number} time - the time to filter on.
+   * @returns {TimeRanges} a new TimeRanges object.
+   */
+  var findNextRange = function findNextRange(timeRanges, time) {
+    return filterRanges(timeRanges, function (start) {
+      return start - TIME_FUDGE_FACTOR >= time;
+    });
+  };
+
+  /**
+   * Returns gaps within a list of TimeRanges
+   * @param {TimeRanges} buffered - the TimeRanges object
+   * @return {TimeRanges} a TimeRanges object of gaps
+   */
+  var findGaps = function findGaps(buffered) {
+    if (buffered.length < 2) {
+      return videojs$1.createTimeRanges();
+    }
+
+    var ranges = [];
+
+    for (var i = 1; i < buffered.length; i++) {
+      var start = buffered.end(i - 1);
+      var end = buffered.start(i);
+
+      ranges.push([start, end]);
+    }
+
+    return videojs$1.createTimeRanges(ranges);
+  };
+
+  /**
+   * Gets a human readable string for a TimeRange
+   *
+   * @param {TimeRange} range
+   * @returns {String} a human readable string
+   */
+  var printableRange = function printableRange(range) {
+    var strArr = [];
+
+    if (!range || !range.length) {
+      return '';
+    }
+
+    for (var i = 0; i < range.length; i++) {
+      strArr.push(range.start(i) + ' => ' + range.end(i));
+    }
+
+    return strArr.join(', ');
+  };
+
+  /**
+   * Calculates the amount of time left in seconds until the player hits the end of the
+   * buffer and causes a rebuffer
+   *
+   * @param {TimeRange} buffered
+   *        The state of the buffer
+   * @param {Numnber} currentTime
+   *        The current time of the player
+   * @param {Number} playbackRate
+   *        The current playback rate of the player. Defaults to 1.
+   * @return {Number}
+   *         Time until the player has to start rebuffering in seconds.
+   * @function timeUntilRebuffer
+   */
+  var timeUntilRebuffer = function timeUntilRebuffer(buffered, currentTime) {
+    var playbackRate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+
+    var bufferedEnd = buffered.length ? buffered.end(buffered.length - 1) : 0;
+
+    return (bufferedEnd - currentTime) / playbackRate;
+  };
+
+  /**
+   * Converts a TimeRanges object into an array representation
+   * @param {TimeRanges} timeRanges
+   * @returns {Array}
+   */
+  var timeRangesToArray = function timeRangesToArray(timeRanges) {
+    var timeRangesList = [];
+
+    for (var i = 0; i < timeRanges.length; i++) {
+      timeRangesList.push({
+        start: timeRanges.start(i),
+        end: timeRanges.end(i)
+      });
+    }
+
+    return timeRangesList;
+  };
+
+  /**
+   * @file create-text-tracks-if-necessary.js
+   */
+
+  /**
+   * Create text tracks on video.js if they exist on a segment.
+   *
+   * @param {Object} sourceBuffer the VSB or FSB
+   * @param {Object} mediaSource the HTML media source
+   * @param {Object} segment the segment that may contain the text track
+   * @private
+   */
+  var createTextTracksIfNecessary = function createTextTracksIfNecessary(sourceBuffer, mediaSource, segment) {
+    var player = mediaSource.player_;
+
+    // create an in-band caption track if one is present in the segment
+    if (segment.captions && segment.captions.length) {
+      if (!sourceBuffer.inbandTextTracks_) {
+        sourceBuffer.inbandTextTracks_ = {};
+      }
+
+      for (var trackId in segment.captionStreams) {
+        if (!sourceBuffer.inbandTextTracks_[trackId]) {
+          player.tech_.trigger({type: 'usage', name: 'hls-608'});
+          var track = player.textTracks().getTrackById(trackId);
+
+          if (track) {
+            // Resuse an existing track with a CC# id because this was
+            // very likely created by videojs-contrib-hls from information
+            // in the m3u8 for us to use
+            sourceBuffer.inbandTextTracks_[trackId] = track;
+          } else {
+            // Otherwise, create a track with the default `CC#` label and
+            // without a language
+            sourceBuffer.inbandTextTracks_[trackId] = player.addRemoteTextTrack({
+              kind: 'captions',
+              id: trackId,
+              label: trackId
+            }, false).track;
+          }
+        }
+      }
+    }
+
+    if (segment.metadata && segment.metadata.length && !sourceBuffer.metadataTrack_) {
+      sourceBuffer.metadataTrack_ = player.addRemoteTextTrack({
+        kind: 'metadata',
+        label: 'Timed Metadata'
+      }, false).track;
+      sourceBuffer.metadataTrack_.inBandMetadataTrackDispatchType = segment.metadata.dispatchType;
+    }
+  };
+
+  /**
+   * @file remove-cues-from-track.js
+   */
+
+  /**
+   * Remove cues from a track on video.js.
+   *
+   * @param {Double} start start of where we should remove the cue
+   * @param {Double} end end of where the we should remove the cue
+   * @param {Object} track the text track to remove the cues from
+   * @private
+   */
+  var removeCuesFromTrack = function removeCuesFromTrack(start, end, track) {
+    var i = void 0;
+    var cue = void 0;
+
+    if (!track) {
+      return;
+    }
+
+    if (!track.cues) {
+      return;
+    }
+
+    i = track.cues.length;
+
+    while (i--) {
+      cue = track.cues[i];
+
+      // Remove any overlapping cue
+      if (cue.startTime <= end && cue.endTime >= start) {
+        track.removeCue(cue);
+      }
+    }
+  };
+
+  /**
+   * @file add-text-track-data.js
+   */
+  /**
+   * Define properties on a cue for backwards compatability,
+   * but warn the user that the way that they are using it
+   * is depricated and will be removed at a later date.
+   *
+   * @param {Cue} cue the cue to add the properties on
+   * @private
+   */
+  var deprecateOldCue = function deprecateOldCue(cue) {
+    Object.defineProperties(cue.frame, {
+      id: {
+        get: function get$$1() {
+          videojs$1.log.warn('cue.frame.id is deprecated. Use cue.value.key instead.');
+          return cue.value.key;
+        }
+      },
+      value: {
+        get: function get$$1() {
+          videojs$1.log.warn('cue.frame.value is deprecated. Use cue.value.data instead.');
+          return cue.value.data;
+        }
+      },
+      privateData: {
+        get: function get$$1() {
+          videojs$1.log.warn('cue.frame.privateData is deprecated. Use cue.value.data instead.');
+          return cue.value.data;
+        }
+      }
+    });
+  };
+
+  var durationOfVideo = function durationOfVideo(duration) {
+    var dur = void 0;
+
+    if (isNaN(duration) || Math.abs(duration) === Infinity) {
+      dur = Number.MAX_VALUE;
+    } else {
+      dur = duration;
+    }
+    return dur;
+  };
+  /**
+   * Add text track data to a source handler given the captions and
+   * metadata from the buffer.
+   *
+   * @param {Object} sourceHandler the virtual source buffer
+   * @param {Array} captionArray an array of caption data
+   * @param {Array} metadataArray an array of meta data
+   * @private
+   */
+  var addTextTrackData = function addTextTrackData(sourceHandler, captionArray, metadataArray) {
+    var Cue = window_1.WebKitDataCue || window_1.VTTCue;
+
+    if (captionArray) {
+      captionArray.forEach(function (caption) {
+        var track = caption.stream;
+
+        this.inbandTextTracks_[track].addCue(new Cue(caption.startTime + this.timestampOffset, caption.endTime + this.timestampOffset, caption.text));
+      }, sourceHandler);
+    }
+
+    if (metadataArray) {
+      var videoDuration = durationOfVideo(sourceHandler.mediaSource_.duration);
+
+      metadataArray.forEach(function (metadata) {
+        var time = metadata.cueTime + this.timestampOffset;
+
+        metadata.frames.forEach(function (frame) {
+          var cue = new Cue(time, time, frame.value || frame.url || frame.data || '');
+
+          cue.frame = frame;
+          cue.value = frame;
+          deprecateOldCue(cue);
+
+          this.metadataTrack_.addCue(cue);
+        }, this);
+      }, sourceHandler);
+
+      // Updating the metadeta cues so that
+      // the endTime of each cue is the startTime of the next cue
+      // the endTime of last cue is the duration of the video
+      if (sourceHandler.metadataTrack_ && sourceHandler.metadataTrack_.cues && sourceHandler.metadataTrack_.cues.length) {
+        var cues = sourceHandler.metadataTrack_.cues;
+        var cuesArray = [];
+
+        // Create a copy of the TextTrackCueList...
+        // ...disregarding cues with a falsey value
+        for (var i = 0; i < cues.length; i++) {
+          if (cues[i]) {
+            cuesArray.push(cues[i]);
+          }
+        }
+
+        // Group cues by their startTime value
+        var cuesGroupedByStartTime = cuesArray.reduce(function (obj, cue) {
+          var timeSlot = obj[cue.startTime] || [];
+
+          timeSlot.push(cue);
+          obj[cue.startTime] = timeSlot;
+
+          return obj;
+        }, {});
+
+        // Sort startTimes by ascending order
+        var sortedStartTimes = Object.keys(cuesGroupedByStartTime).sort(function (a, b) {
+          return Number(a) - Number(b);
+        });
+
+        // Map each cue group's endTime to the next group's startTime
+        sortedStartTimes.forEach(function (startTime, idx) {
+          var cueGroup = cuesGroupedByStartTime[startTime];
+          var nextTime = Number(sortedStartTimes[idx + 1]) || videoDuration;
+
+          // Map each cue's endTime the next group's startTime
+          cueGroup.forEach(function (cue) {
+            cue.endTime = nextTime;
+          });
+        });
+      }
+    }
+  };
+
+  var win$1 = typeof window !== 'undefined' ? window : {},
+    TARGET = typeof Symbol === 'undefined' ? '__target' : Symbol(),
+    SCRIPT_TYPE = 'application/javascript',
+    BlobBuilder = win$1.BlobBuilder || win$1.WebKitBlobBuilder || win$1.MozBlobBuilder || win$1.MSBlobBuilder,
+    URL = win$1.URL || win$1.webkitURL || URL && URL.msURL,
+    Worker = win$1.Worker;
+
+  /**
+   * Returns a wrapper around Web Worker code that is constructible.
+   *
+   * @function shimWorker
+   *
+   * @param { String }    filename    The name of the file
+   * @param { Function }  fn          Function wrapping the code of the worker
+   */
+  function shimWorker(filename, fn) {
+    return function ShimWorker(forceFallback) {
+      var o = this;
+
+      if (!fn) {
+        return new Worker(filename);
+      } else if (Worker && !forceFallback) {
+        // Convert the function's inner code to a string to construct the worker
+        var source = fn.toString().replace(/^function.+?{/, '').slice(0, -1),
+          objURL = createSourceObject(source);
+
+        this[TARGET] = new Worker(objURL);
+        wrapTerminate(this[TARGET], objURL);
+        return this[TARGET];
+      } else {
+        var selfShim = {
+          postMessage: function postMessage(m) {
+            if (o.onmessage) {
+              setTimeout(function () {
+                o.onmessage({data: m, target: selfShim});
+              });
+            }
+          }
+        };
+
+        fn.call(selfShim);
+        this.postMessage = function (m) {
+          setTimeout(function () {
+            selfShim.onmessage({data: m, target: o});
+          });
+        };
+        this.isThisThread = true;
+      }
+    };
+  }
+
+  // Test Worker capabilities
+  if (Worker) {
+    var testWorker,
+      objURL = createSourceObject('self.onmessage = function () {}'),
+      testArray = new Uint8Array(1);
+
+    try {
+      testWorker = new Worker(objURL);
+
+      // Native browser on some Samsung devices throws for transferables, let's detect it
+      testWorker.postMessage(testArray, [testArray.buffer]);
+    } catch (e) {
+      Worker = null;
+    } finally {
+      URL.revokeObjectURL(objURL);
+      if (testWorker) {
+        testWorker.terminate();
+      }
+    }
+  }
+
+  function createSourceObject(str) {
+    try {
+      return URL.createObjectURL(new Blob([str], {type: SCRIPT_TYPE}));
+    } catch (e) {
+      var blob = new BlobBuilder();
+      blob.append(str);
+      return URL.createObjectURL(blob.getBlob(type));
+    }
+  }
+
+  function wrapTerminate(worker, objURL) {
+    if (!worker || !objURL) return;
+    var term = worker.terminate;
+    worker.objURL = objURL;
+    worker.terminate = function () {
+      if (worker.objURL) URL.revokeObjectURL(worker.objURL);
+      term.call(worker);
+    };
+  }
+
+  var TransmuxWorker = new shimWorker("./transmuxer-worker.worker.js", function (window, document$$1) {
+    var self = this;
+    var transmuxerWorker = function () {
+
+      var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+      var win;
+
+      if (typeof window !== "undefined") {
+        win = window;
+      } else if (typeof commonjsGlobal !== "undefined") {
+        win = commonjsGlobal;
+      } else if (typeof self !== "undefined") {
+        win = self;
+      } else {
+        win = {};
+      }
+
+      var window_1$$1 = win;
+
+      /**
+       * mux.js
+       *
+       * Copyright (c) 2015 Brightcove
+       * All rights reserved.
+       *
+       * Functions that generate fragmented MP4s suitable for use with Media
+       * Source Extensions.
+       */
+
+      var UINT32_MAX = Math.pow(2, 32) - 1;
+
+      var box, dinf, esds, ftyp, mdat, mfhd, minf, moof, moov, mvex, mvhd, trak, tkhd, mdia, mdhd, hdlr, sdtp, stbl,
+        stsd, traf, trex, trun, types, MAJOR_BRAND, MINOR_VERSION, AVC1_BRAND, VIDEO_HDLR, AUDIO_HDLR, HDLR_TYPES, VMHD,
+        SMHD, DREF, STCO, STSC, STSZ, STTS;
+
+      // pre-calculate constants
+      (function () {
+        var i;
+        types = {
+          avc1: [], // codingname
+          avcC: [],
+          btrt: [],
+          dinf: [],
+          dref: [],
+          esds: [],
+          ftyp: [],
+          hdlr: [],
+          mdat: [],
+          mdhd: [],
+          mdia: [],
+          mfhd: [],
+          minf: [],
+          moof: [],
+          moov: [],
+          mp4a: [], // codingname
+          mvex: [],
+          mvhd: [],
+          sdtp: [],
+          smhd: [],
+          stbl: [],
+          stco: [],
+          stsc: [],
+          stsd: [],
+          stsz: [],
+          stts: [],
+          styp: [],
+          tfdt: [],
+          tfhd: [],
+          traf: [],
+          trak: [],
+          trun: [],
+          trex: [],
+          tkhd: [],
+          vmhd: []
+        };
+
+        // In environments where Uint8Array is undefined (e.g., IE8), skip set up so that we
+        // don't throw an error
+        if (typeof Uint8Array === 'undefined') {
+          return;
+        }
+
+        for (i in types) {
+          if (types.hasOwnProperty(i)) {
+            types[i] = [i.charCodeAt(0), i.charCodeAt(1), i.charCodeAt(2), i.charCodeAt(3)];
+          }
+        }
+
+        MAJOR_BRAND = new Uint8Array(['i'.charCodeAt(0), 's'.charCodeAt(0), 'o'.charCodeAt(0), 'm'.charCodeAt(0)]);
+        AVC1_BRAND = new Uint8Array(['a'.charCodeAt(0), 'v'.charCodeAt(0), 'c'.charCodeAt(0), '1'.charCodeAt(0)]);
+        MINOR_VERSION = new Uint8Array([0, 0, 0, 1]);
+        VIDEO_HDLR = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x00, // pre_defined
+          0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
+        ]);
+        AUDIO_HDLR = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x00, // pre_defined
+          0x73, 0x6f, 0x75, 0x6e, // handler_type: 'soun'
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
+        ]);
+        HDLR_TYPES = {
+          video: VIDEO_HDLR,
+          audio: AUDIO_HDLR
+        };
+        DREF = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x01, // entry_count
+          0x00, 0x00, 0x00, 0x0c, // entry_size
+          0x75, 0x72, 0x6c, 0x20, // 'url' type
+          0x00, // version 0
+          0x00, 0x00, 0x01 // entry_flags
+        ]);
+        SMHD = new Uint8Array([0x00, // version
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, // balance, 0 means centered
+          0x00, 0x00 // reserved
+        ]);
+        STCO = new Uint8Array([0x00, // version
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x00 // entry_count
+        ]);
+        STSC = STCO;
+        STSZ = new Uint8Array([0x00, // version
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x00, // sample_size
+          0x00, 0x00, 0x00, 0x00 // sample_count
+        ]);
+        STTS = STCO;
+        VMHD = new Uint8Array([0x00, // version
+          0x00, 0x00, 0x01, // flags
+          0x00, 0x00, // graphicsmode
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
+        ]);
+      })();
+
+      box = function box(type) {
+        var payload = [],
+          size = 0,
+          i,
+          result,
+          view;
+
+        for (i = 1; i < arguments.length; i++) {
+          payload.push(arguments[i]);
+        }
+
+        i = payload.length;
+
+        // calculate the total size we need to allocate
+        while (i--) {
+          size += payload[i].byteLength;
+        }
+        result = new Uint8Array(size + 8);
+        view = new DataView(result.buffer, result.byteOffset, result.byteLength);
+        view.setUint32(0, result.byteLength);
+        result.set(type, 4);
+
+        // copy the payload into the result
+        for (i = 0, size = 8; i < payload.length; i++) {
+          result.set(payload[i], size);
+          size += payload[i].byteLength;
+        }
+        return result;
+      };
+
+      dinf = function dinf() {
+        return box(types.dinf, box(types.dref, DREF));
+      };
+
+      esds = function esds(track) {
+        return box(types.esds, new Uint8Array([0x00, // version
+          0x00, 0x00, 0x00, // flags
+
+          // ES_Descriptor
+          0x03, // tag, ES_DescrTag
+          0x19, // length
+          0x00, 0x00, // ES_ID
+          0x00, // streamDependenceFlag, URL_flag, reserved, streamPriority
+
+          // DecoderConfigDescriptor
+          0x04, // tag, DecoderConfigDescrTag
+          0x11, // length
+          0x40, // object type
+          0x15, // streamType
+          0x00, 0x06, 0x00, // bufferSizeDB
+          0x00, 0x00, 0xda, 0xc0, // maxBitrate
+          0x00, 0x00, 0xda, 0xc0, // avgBitrate
+
+          // DecoderSpecificInfo
+          0x05, // tag, DecoderSpecificInfoTag
+          0x02, // length
+          // ISO/IEC 14496-3, AudioSpecificConfig
+          // for samplingFrequencyIndex see ISO/IEC 13818-7:2006, 8.1.3.2.2, Table 35
+          track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
+        ]));
+      };
+
+      ftyp = function ftyp() {
+        return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
+      };
+
+      hdlr = function hdlr(type) {
+        return box(types.hdlr, HDLR_TYPES[type]);
+      };
+      mdat = function mdat(data) {
+        return box(types.mdat, data);
+      };
+      mdhd = function mdhd(track) {
+        var result = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x02, // creation_time
+          0x00, 0x00, 0x00, 0x03, // modification_time
+          0x00, 0x01, 0x5f, 0x90, // timescale, 90,000 "ticks" per second
+
+          track.duration >>> 24 & 0xFF, track.duration >>> 16 & 0xFF, track.duration >>> 8 & 0xFF, track.duration & 0xFF, // duration
+          0x55, 0xc4, // 'und' language (undetermined)
+          0x00, 0x00]);
+
+        // Use the sample rate from the track metadata, when it is
+        // defined. The sample rate can be parsed out of an ADTS header, for
+        // instance.
+        if (track.samplerate) {
+          result[12] = track.samplerate >>> 24 & 0xFF;
+          result[13] = track.samplerate >>> 16 & 0xFF;
+          result[14] = track.samplerate >>> 8 & 0xFF;
+          result[15] = track.samplerate & 0xFF;
+        }
+
+        return box(types.mdhd, result);
+      };
+      mdia = function mdia(track) {
+        return box(types.mdia, mdhd(track), hdlr(track.type), minf(track));
+      };
+      mfhd = function mfhd(sequenceNumber) {
+        return box(types.mfhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // flags
+          (sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
+        ]));
+      };
+      minf = function minf(track) {
+        return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
+      };
+      moof = function moof(sequenceNumber, tracks) {
+        var trackFragments = [],
+          i = tracks.length;
+        // build traf boxes for each track fragment
+        while (i--) {
+          trackFragments[i] = traf(tracks[i]);
+        }
+        return box.apply(null, [types.moof, mfhd(sequenceNumber)].concat(trackFragments));
+      };
+      /**
+       * Returns a movie box.
+       * @param tracks {array} the tracks associated with this movie
+       * @see ISO/IEC 14496-12:2012(E), section 8.2.1
+       */
+      moov = function moov(tracks) {
+        var i = tracks.length,
+          boxes = [];
+
+        while (i--) {
+          boxes[i] = trak(tracks[i]);
+        }
+
+        return box.apply(null, [types.moov, mvhd(0xffffffff)].concat(boxes).concat(mvex(tracks)));
+      };
+      mvex = function mvex(tracks) {
+        var i = tracks.length,
+          boxes = [];
+
+        while (i--) {
+          boxes[i] = trex(tracks[i]);
+        }
+        return box.apply(null, [types.mvex].concat(boxes));
+      };
+      mvhd = function mvhd(duration) {
+        var bytes = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          0x00, 0x00, 0x00, 0x01, // creation_time
+          0x00, 0x00, 0x00, 0x02, // modification_time
+          0x00, 0x01, 0x5f, 0x90, // timescale, 90,000 "ticks" per second
+          (duration & 0xFF000000) >> 24, (duration & 0xFF0000) >> 16, (duration & 0xFF00) >> 8, duration & 0xFF, // duration
+          0x00, 0x01, 0x00, 0x00, // 1.0 rate
+          0x01, 0x00, // 1.0 volume
+          0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined
+          0xff, 0xff, 0xff, 0xff // next_track_ID
+        ]);
+        return box(types.mvhd, bytes);
+      };
+
+      sdtp = function sdtp(track) {
+        var samples = track.samples || [],
+          bytes = new Uint8Array(4 + samples.length),
+          flags,
+          i;
+
+        // leave the full box header (4 bytes) all zero
+
+        // write the sample table
+        for (i = 0; i < samples.length; i++) {
+          flags = samples[i].flags;
+
+          bytes[i + 4] = flags.dependsOn << 4 | flags.isDependedOn << 2 | flags.hasRedundancy;
+        }
+
+        return box(types.sdtp, bytes);
+      };
+
+      stbl = function stbl(track) {
+        return box(types.stbl, stsd(track), box(types.stts, STTS), box(types.stsc, STSC), box(types.stsz, STSZ), box(types.stco, STCO));
+      };
+
+      (function () {
+        var videoSample, audioSample;
+
+        stsd = function stsd(track) {
+
+          return box(types.stsd, new Uint8Array([0x00, // version 0
+            0x00, 0x00, 0x00, // flags
+            0x00, 0x00, 0x00, 0x01]), track.type === 'video' ? videoSample(track) : audioSample(track));
+        };
+
+        videoSample = function videoSample(track) {
+          var sps = track.sps || [],
+            pps = track.pps || [],
+            sequenceParameterSets = [],
+            pictureParameterSets = [],
+            i;
+
+          // assemble the SPSs
+          for (i = 0; i < sps.length; i++) {
+            sequenceParameterSets.push((sps[i].byteLength & 0xFF00) >>> 8);
+            sequenceParameterSets.push(sps[i].byteLength & 0xFF); // sequenceParameterSetLength
+            sequenceParameterSets = sequenceParameterSets.concat(Array.prototype.slice.call(sps[i])); // SPS
+          }
+
+          // assemble the PPSs
+          for (i = 0; i < pps.length; i++) {
+            pictureParameterSets.push((pps[i].byteLength & 0xFF00) >>> 8);
+            pictureParameterSets.push(pps[i].byteLength & 0xFF);
+            pictureParameterSets = pictureParameterSets.concat(Array.prototype.slice.call(pps[i]));
+          }
+
+          return box(types.avc1, new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved
+              0x00, 0x01, // data_reference_index
+              0x00, 0x00, // pre_defined
+              0x00, 0x00, // reserved
+              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined
+              (track.width & 0xff00) >> 8, track.width & 0xff, // width
+              (track.height & 0xff00) >> 8, track.height & 0xff, // height
+              0x00, 0x48, 0x00, 0x00, // horizresolution
+              0x00, 0x48, 0x00, 0x00, // vertresolution
+              0x00, 0x00, 0x00, 0x00, // reserved
+              0x00, 0x01, // frame_count
+              0x13, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x6a, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x2d, 0x68, 0x6c, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // compressorname
+              0x00, 0x18, // depth = 24
+              0x11, 0x11 // pre_defined = -1
+            ]), box(types.avcC, new Uint8Array([0x01, // configurationVersion
+              track.profileIdc, // AVCProfileIndication
+              track.profileCompatibility, // profile_compatibility
+              track.levelIdc, // AVCLevelIndication
+              0xff // lengthSizeMinusOne, hard-coded to 4 bytes
+            ].concat([sps.length // numOfSequenceParameterSets
+            ]).concat(sequenceParameterSets).concat([pps.length // numOfPictureParameterSets
+            ]).concat(pictureParameterSets))), // "PPS"
+            box(types.btrt, new Uint8Array([0x00, 0x1c, 0x9c, 0x80, // bufferSizeDB
+              0x00, 0x2d, 0xc6, 0xc0, // maxBitrate
+              0x00, 0x2d, 0xc6, 0xc0])) // avgBitrate
+          );
+        };
+
+        audioSample = function audioSample(track) {
+          return box(types.mp4a, new Uint8Array([
+
+            // SampleEntry, ISO/IEC 14496-12
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved
+            0x00, 0x01, // data_reference_index
+
+            // AudioSampleEntry, ISO/IEC 14496-12
+            0x00, 0x00, 0x00, 0x00, // reserved
+            0x00, 0x00, 0x00, 0x00, // reserved
+            (track.channelcount & 0xff00) >> 8, track.channelcount & 0xff, // channelcount
+
+            (track.samplesize & 0xff00) >> 8, track.samplesize & 0xff, // samplesize
+            0x00, 0x00, // pre_defined
+            0x00, 0x00, // reserved
+
+            (track.samplerate & 0xff00) >> 8, track.samplerate & 0xff, 0x00, 0x00 // samplerate, 16.16
+
+            // MP4AudioSampleEntry, ISO/IEC 14496-14
+          ]), esds(track));
+        };
+      })();
+
+      tkhd = function tkhd(track) {
+        var result = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x07, // flags
+          0x00, 0x00, 0x00, 0x00, // creation_time
+          0x00, 0x00, 0x00, 0x00, // modification_time
+          (track.id & 0xFF000000) >> 24, (track.id & 0xFF0000) >> 16, (track.id & 0xFF00) >> 8, track.id & 0xFF, // track_ID
+          0x00, 0x00, 0x00, 0x00, // reserved
+          (track.duration & 0xFF000000) >> 24, (track.duration & 0xFF0000) >> 16, (track.duration & 0xFF00) >> 8, track.duration & 0xFF, // duration
+          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved
+          0x00, 0x00, // layer
+          0x00, 0x00, // alternate_group
+          0x01, 0x00, // non-audio track volume
+          0x00, 0x00, // reserved
+          0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix
+          (track.width & 0xFF00) >> 8, track.width & 0xFF, 0x00, 0x00, // width
+          (track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
+        ]);
+
+        return box(types.tkhd, result);
+      };
+
+      /**
+       * Generate a track fragment (traf) box. A traf box collects metadata
+       * about tracks in a movie fragment (moof) box.
+       */
+      traf = function traf(track) {
+        var trackFragmentHeader, trackFragmentDecodeTime, trackFragmentRun, sampleDependencyTable, dataOffset,
+          upperWordBaseMediaDecodeTime, lowerWordBaseMediaDecodeTime;
+
+        trackFragmentHeader = box(types.tfhd, new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x3a, // flags
+          (track.id & 0xFF000000) >> 24, (track.id & 0xFF0000) >> 16, (track.id & 0xFF00) >> 8, track.id & 0xFF, // track_ID
+          0x00, 0x00, 0x00, 0x01, // sample_description_index
+          0x00, 0x00, 0x00, 0x00, // default_sample_duration
+          0x00, 0x00, 0x00, 0x00, // default_sample_size
+          0x00, 0x00, 0x00, 0x00 // default_sample_flags
+        ]));
+
+        upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / (UINT32_MAX + 1));
+        lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % (UINT32_MAX + 1));
+
+        trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01, // version 1
+          0x00, 0x00, 0x00, // flags
+          // baseMediaDecodeTime
+          upperWordBaseMediaDecodeTime >>> 24 & 0xFF, upperWordBaseMediaDecodeTime >>> 16 & 0xFF, upperWordBaseMediaDecodeTime >>> 8 & 0xFF, upperWordBaseMediaDecodeTime & 0xFF, lowerWordBaseMediaDecodeTime >>> 24 & 0xFF, lowerWordBaseMediaDecodeTime >>> 16 & 0xFF, lowerWordBaseMediaDecodeTime >>> 8 & 0xFF, lowerWordBaseMediaDecodeTime & 0xFF]));
+
+        // the data offset specifies the number of bytes from the start of
+        // the containing moof to the first payload byte of the associated
+        // mdat
+        dataOffset = 32 + // tfhd
+          20 + // tfdt
+          8 + // traf header
+          16 + // mfhd
+          8 + // moof header
+          8; // mdat header
+
+        // audio tracks require less metadata
+        if (track.type === 'audio') {
+          trackFragmentRun = trun(track, dataOffset);
+          return box(types.traf, trackFragmentHeader, trackFragmentDecodeTime, trackFragmentRun);
+        }
+
+        // video tracks should contain an independent and disposable samples
+        // box (sdtp)
+        // generate one and adjust offsets to match
+        sampleDependencyTable = sdtp(track);
+        trackFragmentRun = trun(track, sampleDependencyTable.length + dataOffset);
+        return box(types.traf, trackFragmentHeader, trackFragmentDecodeTime, trackFragmentRun, sampleDependencyTable);
+      };
+
+      /**
+       * Generate a track box.
+       * @param track {object} a track definition
+       * @return {Uint8Array} the track box
+       */
+      trak = function trak(track) {
+        track.duration = track.duration || 0xffffffff;
+        return box(types.trak, tkhd(track), mdia(track));
+      };
+
+      trex = function trex(track) {
+        var result = new Uint8Array([0x00, // version 0
+          0x00, 0x00, 0x00, // flags
+          (track.id & 0xFF000000) >> 24, (track.id & 0xFF0000) >> 16, (track.id & 0xFF00) >> 8, track.id & 0xFF, // track_ID
+          0x00, 0x00, 0x00, 0x01, // default_sample_description_index
+          0x00, 0x00, 0x00, 0x00, // default_sample_duration
+          0x00, 0x00, 0x00, 0x00, // default_sample_size
+          0x00, 0x01, 0x00, 0x01 // default_sample_flags
+        ]);
+        // the last two bytes of default_sample_flags is the sample
+        // degradation priority, a hint about the importance of this sample
+        // relative to others. Lower the degradation priority for all sample
+        // types other than video.
+        if (track.type !== 'video') {
+          result[result.length - 1] = 0x00;
+        }
+
+        return box(types.trex, result);
+      };
+
+      (function () {
+        var audioTrun, videoTrun, trunHeader;
+
+        // This method assumes all samples are uniform. That is, if a
+        // duration is present for the first sample, it will be present for
+        // all subsequent samples.
+        // see ISO/IEC 14496-12:2012, Section 8.8.8.1
+        trunHeader = function trunHeader(samples, offset) {
+          var durationPresent = 0,
+            sizePresent = 0,
+            flagsPresent = 0,
+            compositionTimeOffset = 0;
+
+          // trun flag constants
+          if (samples.length) {
+            if (samples[0].duration !== undefined) {
+              durationPresent = 0x1;
+            }
+            if (samples[0].size !== undefined) {
+              sizePresent = 0x2;
+            }
+            if (samples[0].flags !== undefined) {
+              flagsPresent = 0x4;
+            }
+            if (samples[0].compositionTimeOffset !== undefined) {
+              compositionTimeOffset = 0x8;
+            }
+          }
+
+          return [0x00, // version 0
+            0x00, durationPresent | sizePresent | flagsPresent | compositionTimeOffset, 0x01, // flags
+            (samples.length & 0xFF000000) >>> 24, (samples.length & 0xFF0000) >>> 16, (samples.length & 0xFF00) >>> 8, samples.length & 0xFF, // sample_count
+            (offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
+          ];
+        };
+
+        videoTrun = function videoTrun(track, offset) {
+          var bytes, samples, sample, i;
+
+          samples = track.samples || [];
+          offset += 8 + 12 + 16 * samples.length;
+
+          bytes = trunHeader(samples, offset);
+
+          for (i = 0; i < samples.length; i++) {
+            sample = samples[i];
+            bytes = bytes.concat([(sample.duration & 0xFF000000) >>> 24, (sample.duration & 0xFF0000) >>> 16, (sample.duration & 0xFF00) >>> 8, sample.duration & 0xFF, // sample_duration
+              (sample.size & 0xFF000000) >>> 24, (sample.size & 0xFF0000) >>> 16, (sample.size & 0xFF00) >>> 8, sample.size & 0xFF, // sample_size
+              sample.flags.isLeading << 2 | sample.flags.dependsOn, sample.flags.isDependedOn << 6 | sample.flags.hasRedundancy << 4 | sample.flags.paddingValue << 1 | sample.flags.isNonSyncSample, sample.flags.degradationPriority & 0xF0 << 8, sample.flags.degradationPriority & 0x0F, // sample_flags
+              (sample.compositionTimeOffset & 0xFF000000) >>> 24, (sample.compositionTimeOffset & 0xFF0000) >>> 16, (sample.compositionTimeOffset & 0xFF00) >>> 8, sample.compositionTimeOffset & 0xFF // sample_composition_time_offset
+            ]);
+          }
+          return box(types.trun, new Uint8Array(bytes));
+        };
+
+        audioTrun = function audioTrun(track, offset) {
+          var bytes, samples, sample, i;
+
+          samples = track.samples || [];
+          offset += 8 + 12 + 8 * samples.length;
+
+          bytes = trunHeader(samples, offset);
+
+          for (i = 0; i < samples.length; i++) {
+            sample = samples[i];
+            bytes = bytes.concat([(sample.duration & 0xFF000000) >>> 24, (sample.duration & 0xFF0000) >>> 16, (sample.duration & 0xFF00) >>> 8, sample.duration & 0xFF, // sample_duration
+              (sample.size & 0xFF000000) >>> 24, (sample.size & 0xFF0000) >>> 16, (sample.size & 0xFF00) >>> 8, sample.size & 0xFF]); // sample_size
+          }
+
+          return box(types.trun, new Uint8Array(bytes));
+        };
+
+        trun = function trun(track, offset) {
+          if (track.type === 'audio') {
+            return audioTrun(track, offset);
+          }
+
+          return videoTrun(track, offset);
+        };
+      })();
+
+      var mp4Generator = {
+        ftyp: ftyp,
+        mdat: mdat,
+        moof: moof,
+        moov: moov,
+        initSegment: function initSegment(tracks) {
+          var fileType = ftyp(),
+            movie = moov(tracks),
+            result;
+
+          result = new Uint8Array(fileType.byteLength + movie.byteLength);
+          result.set(fileType);
+          result.set(movie, fileType.byteLength);
+          return result;
+        }
+      };
+
+      /**
+       * mux.js
+       *
+       * Copyright (c) 2014 Brightcove
+       * All rights reserved.
+       *
+       * A lightweight readable stream implemention that handles event dispatching.
+       * Objects that inherit from streams should call init in their constructors.
+       */
+
+      var Stream = function Stream() {
+        this.init = function () {
+          var listeners = {};
+          /**
+           * Add a listener for a specified event type.
+           * @param type {string} the event name
+           * @param listener {function} the callback to be invoked when an event of
+           * the specified type occurs
+           */
+          this.on = function (type, listener) {
+            if (!listeners[type]) {
+              listeners[type] = [];
+            }
+            listeners[type] = listeners[type].concat(listener);
+          };
+          /**
+           * Remove a listener for a specified event type.
+           * @param type {string} the event name
+           * @param listener {function} a function previously registered for this
+           * type of event through `on`
+           */
+          this.off = function (type, listener) {
+            var index;
+            if (!listeners[type]) {
+              return false;
+            }
+            index = listeners[type].indexOf(listener);
+            listeners[type] = listeners[type].slice();
+            listeners[type].splice(index, 1);
+            return index > -1;
+          };
+          /**
+           * Trigger an event of the specified type on this stream. Any additional
+           * arguments to this function are passed as parameters to event listeners.
+           * @param type {string} the event name
+           */
+          this.trigger = function (type) {
+            var callbacks, i, length, args;
+            callbacks = listeners[type];
+            if (!callbacks) {
+              return;
+            }
+            // Slicing the arguments on every invocation of this method
+            // can add a significant amount of overhead. Avoid the
+            // intermediate object creation for the common case of a
+            // single callback argument
+            if (arguments.length === 2) {
+              length = callbacks.length;
+              for (i = 0; i < length; ++i) {
+                callbacks[i].call(this, arguments[1]);
+              }
+            } else {
+              args = [];
+              i = arguments.length;
+              for (i = 1; i < arguments.length; ++i) {
+                args.push(arguments[i]);
+              }
+              length = callbacks.length;
+              for (i = 0; i < length; ++i) {
+                callbacks[i].apply(this, args);
+              }
+            }
+          };
+          /**
+           * Destroys the stream and cleans up.
+           */
+          this.dispose = function () {
+            listeners = {};
+          };
+        };
+      };
+
+      /**
+       * Forwards all `data` events on this stream to the destination stream. The
+       * destination stream should provide a method `push` to receive the data
+       * events as they arrive.
+       * @param destination {stream} the stream that will receive all `data` events
+       * @param autoFlush {boolean} if false, we will not call `flush` on the destination
+       *                            when the current stream emits a 'done' event
+       * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
+       */
+      Stream.prototype.pipe = function (destination) {
+        this.on('data', function (data) {
+          destination.push(data);
+        });
+
+        this.on('done', function (flushSource) {
+          destination.flush(flushSource);
+        });
+
+        return destination;
+      };
+
+      // Default stream functions that are expected to be overridden to perform
+      // actual work. These are provided by the prototype as a sort of no-op
+      // implementation so that we don't have to check for their existence in the
+      // `pipe` function above.
+      Stream.prototype.push = function (data) {
+        this.trigger('data', data);
+      };
+
+      Stream.prototype.flush = function (flushSource) {
+        this.trigger('done', flushSource);
+      };
+
+      var stream = Stream;
+
+      // -----------------
+      // Link To Transport
+      // -----------------
+
+      // Supplemental enhancement information (SEI) NAL units have a
+      // payload type field to indicate how they are to be
+      // interpreted. CEAS-708 caption content is always transmitted with
+      // payload type 0x04.
+      var USER_DATA_REGISTERED_ITU_T_T35 = 4,
+        RBSP_TRAILING_BITS = 128;
+
+      /**
+       * Parse a supplemental enhancement information (SEI) NAL unit.
+       * Stops parsing once a message of type ITU T T35 has been found.
+       *
+       * @param bytes {Uint8Array} the bytes of a SEI NAL unit
+       * @return {object} the parsed SEI payload
+       * @see Rec. ITU-T H.264, 7.3.2.3.1
+       */
+      var parseSei = function parseSei(bytes) {
+        var i = 0,
+          result = {
+            payloadType: -1,
+            payloadSize: 0
+          },
+          payloadType = 0,
+          payloadSize = 0;
+
+        // go through the sei_rbsp parsing each each individual sei_message
+        while (i < bytes.byteLength) {
+          // stop once we have hit the end of the sei_rbsp
+          if (bytes[i] === RBSP_TRAILING_BITS) {
+            break;
+          }
+
+          // Parse payload type
+          while (bytes[i] === 0xFF) {
+            payloadType += 255;
+            i++;
+          }
+          payloadType += bytes[i++];
+
+          // Parse payload size
+          while (bytes[i] === 0xFF) {
+            payloadSize += 255;
+            i++;
+          }
+          payloadSize += bytes[i++];
+
+          // this sei_message is a 608/708 caption so save it and break
+          // there can only ever be one caption message in a frame's sei
+          if (!result.payload && payloadType === USER_DATA_REGISTERED_ITU_T_T35) {
+            result.payloadType = payloadType;
+            result.payloadSize = payloadSize;
+            result.payload = bytes.subarray(i, i + payloadSize);
+            break;
+          }
+
+          // skip the payload and parse the next message
+          i += payloadSize;
+          payloadType = 0;
+          payloadSize = 0;
+        }
+
+        return result;
+      };
+
+      // see ANSI/SCTE 128-1 (2013), section 8.1
+      var parseUserData = function parseUserData(sei) {
+        // itu_t_t35_contry_code must be 181 (United States) for
+        // captions
+        if (sei.payload[0] !== 181) {
+          return null;
+        }
+
+        // itu_t_t35_provider_code should be 49 (ATSC) for captions
+        if ((sei.payload[1] << 8 | sei.payload[2]) !== 49) {
+          return null;
+        }
+
+        // the user_identifier should be "GA94" to indicate ATSC1 data
+        if (String.fromCharCode(sei.payload[3], sei.payload[4], sei.payload[5], sei.payload[6]) !== 'GA94') {
+          return null;
+        }
+
+        // finally, user_data_type_code should be 0x03 for caption data
+        if (sei.payload[7] !== 0x03) {
+          return null;
+        }
+
+        // return the user_data_type_structure and strip the trailing
+        // marker bits
+        return sei.payload.subarray(8, sei.payload.length - 1);
+      };
+
+      // see CEA-708-D, section 4.4
+      var parseCaptionPackets = function parseCaptionPackets(pts, userData) {
+        var results = [],
+          i,
+          count,
+          offset,
+          data;
+
+        // if this is just filler, return immediately
+        if (!(userData[0] & 0x40)) {
+          return results;
+        }
+
+        // parse out the cc_data_1 and cc_data_2 fields
+        count = userData[0] & 0x1f;
+        for (i = 0; i < count; i++) {
+          offset = i * 3;
+          data = {
+            type: userData[offset + 2] & 0x03,
+            pts: pts
+          };
+
+          // capture cc data when cc_valid is 1
+          if (userData[offset + 2] & 0x04) {
+            data.ccData = userData[offset + 3] << 8 | userData[offset + 4];
+            results.push(data);
+          }
+        }
+        return results;
+      };
+
+      var CaptionStream = function CaptionStream() {
+
+        CaptionStream.prototype.init.call(this);
+
+        this.captionPackets_ = [];
+
+        this.ccStreams_ = [new Cea608Stream(0, 0), // eslint-disable-line no-use-before-define
+          new Cea608Stream(0, 1), // eslint-disable-line no-use-before-define
+          new Cea608Stream(1, 0), // eslint-disable-line no-use-before-define
+          new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
+        ];
+
+        this.reset();
+
+        // forward data and done events from CCs to this CaptionStream
+        this.ccStreams_.forEach(function (cc) {
+          cc.on('data', this.trigger.bind(this, 'data'));
+          cc.on('done', this.trigger.bind(this, 'done'));
+        }, this);
+      };
+
+      CaptionStream.prototype = new stream();
+      CaptionStream.prototype.push = function (event) {
+        var sei, userData;
+
+        // only examine SEI NALs
+        if (event.nalUnitType !== 'sei_rbsp') {
+          return;
+        }
+
+        // parse the sei
+        sei = parseSei(event.escapedRBSP);
+
+        // ignore everything but user_data_registered_itu_t_t35
+        if (sei.payloadType !== USER_DATA_REGISTERED_ITU_T_T35) {
+          return;
+        }
+
+        // parse out the user data payload
+        userData = parseUserData(sei);
+
+        // ignore unrecognized userData
+        if (!userData) {
+          return;
+        }
+
+        // Sometimes, the same segment # will be downloaded twice. To stop the
+        // caption data from being processed twice, we track the latest dts we've
+        // received and ignore everything with a dts before that. However, since
+        // data for a specific dts can be split across packets on either side of
+        // a segment boundary, we need to make sure we *don't* ignore the packets
+        // from the *next* segment that have dts === this.latestDts_. By constantly
+        // tracking the number of packets received with dts === this.latestDts_, we
+        // know how many should be ignored once we start receiving duplicates.
+        if (event.dts < this.latestDts_) {
+          // We've started getting older data, so set the flag.
+          this.ignoreNextEqualDts_ = true;
+          return;
+        } else if (event.dts === this.latestDts_ && this.ignoreNextEqualDts_) {
+          this.numSameDts_--;
+          if (!this.numSameDts_) {
+            // We've received the last duplicate packet, time to start processing again
+            this.ignoreNextEqualDts_ = false;
+          }
+          return;
+        }
+
+        // parse out CC data packets and save them for later
+        this.captionPackets_ = this.captionPackets_.concat(parseCaptionPackets(event.pts, userData));
+        if (this.latestDts_ !== event.dts) {
+          this.numSameDts_ = 0;
+        }
+        this.numSameDts_++;
+        this.latestDts_ = event.dts;
+      };
+
+      CaptionStream.prototype.flush = function () {
+        // make sure we actually parsed captions before proceeding
+        if (!this.captionPackets_.length) {
+          this.ccStreams_.forEach(function (cc) {
+            cc.flush();
+          }, this);
+          return;
+        }
+
+        // In Chrome, the Array#sort function is not stable so add a
+        // presortIndex that we can use to ensure we get a stable-sort
+        this.captionPackets_.forEach(function (elem, idx) {
+          elem.presortIndex = idx;
+        });
+
+        // sort caption byte-pairs based on their PTS values
+        this.captionPackets_.sort(function (a, b) {
+          if (a.pts === b.pts) {
+            return a.presortIndex - b.presortIndex;
+          }
+          return a.pts - b.pts;
+        });
+
+        this.captionPackets_.forEach(function (packet) {
+          if (packet.type < 2) {
+            // Dispatch packet to the right Cea608Stream
+            this.dispatchCea608Packet(packet);
+          }
+          // this is where an 'else' would go for a dispatching packets
+          // to a theoretical Cea708Stream that handles SERVICEn data
+        }, this);
+
+        this.captionPackets_.length = 0;
+        this.ccStreams_.forEach(function (cc) {
+          cc.flush();
+        }, this);
+        return;
+      };
+
+      CaptionStream.prototype.reset = function () {
+        this.latestDts_ = null;
+        this.ignoreNextEqualDts_ = false;
+        this.numSameDts_ = 0;
+        this.activeCea608Channel_ = [null, null];
+        this.ccStreams_.forEach(function (ccStream) {
+          ccStream.reset();
+        });
+      };
+
+      CaptionStream.prototype.dispatchCea608Packet = function (packet) {
+        // NOTE: packet.type is the CEA608 field
+        if (this.setsChannel1Active(packet)) {
+          this.activeCea608Channel_[packet.type] = 0;
+        } else if (this.setsChannel2Active(packet)) {
+          this.activeCea608Channel_[packet.type] = 1;
+        }
+        if (this.activeCea608Channel_[packet.type] === null) {
+          // If we haven't received anything to set the active channel, discard the
+          // data; we don't want jumbled captions
+          return;
+        }
+        this.ccStreams_[(packet.type << 1) + this.activeCea608Channel_[packet.type]].push(packet);
+      };
+
+      CaptionStream.prototype.setsChannel1Active = function (packet) {
+        return (packet.ccData & 0x7800) === 0x1000;
+      };
+      CaptionStream.prototype.setsChannel2Active = function (packet) {
+        return (packet.ccData & 0x7800) === 0x1800;
+      };
+
+      // ----------------------
+      // Session to Application
+      // ----------------------
+
+      var CHARACTER_TRANSLATION = {
+        0x2a: 0xe1, // á
+        0x5c: 0xe9, // é
+        0x5e: 0xed, // í
+        0x5f: 0xf3, // ó
+        0x60: 0xfa, // ú
+        0x7b: 0xe7, // ç
+        0x7c: 0xf7, // ÷
+        0x7d: 0xd1, // Ñ
+        0x7e: 0xf1, // ñ
+        0x7f: 0x2588, // â–ˆ
+        0x0130: 0xae, // ®
+        0x0131: 0xb0, // °
+        0x0132: 0xbd, // ½
+        0x0133: 0xbf, // ¿
+        0x0134: 0x2122, // â„¢
+        0x0135: 0xa2, // ¢
+        0x0136: 0xa3, // £
+        0x0137: 0x266a, // ♪
+        0x0138: 0xe0, // à
+        0x0139: 0xa0, //
+        0x013a: 0xe8, // è
+        0x013b: 0xe2, // â
+        0x013c: 0xea, // ê
+        0x013d: 0xee, // î
+        0x013e: 0xf4, // ô
+        0x013f: 0xfb, // û
+        0x0220: 0xc1, // Á
+        0x0221: 0xc9, // É
+        0x0222: 0xd3, // Ó
+        0x0223: 0xda, // Ú
+        0x0224: 0xdc, // Ü
+        0x0225: 0xfc, // ü
+        0x0226: 0x2018, // ‘
+        0x0227: 0xa1, // ¡
+        0x0228: 0x2a, // *
+        0x0229: 0x27, // '
+        0x022a: 0x2014, // —
+        0x022b: 0xa9, // ©
+        0x022c: 0x2120, // â„ 
+        0x022d: 0x2022, // •
+        0x022e: 0x201c, // “
+        0x022f: 0x201d, // ”
+        0x0230: 0xc0, // À
+        0x0231: 0xc2, // Â
+        0x0232: 0xc7, // Ç
+        0x0233: 0xc8, // È
+        0x0234: 0xca, // Ê
+        0x0235: 0xcb, // Ë
+        0x0236: 0xeb, // ë
+        0x0237: 0xce, // ÃŽ
+        0x0238: 0xcf, // Ï
+        0x0239: 0xef, // ï
+        0x023a: 0xd4, // Ô
+        0x023b: 0xd9, // Ù
+        0x023c: 0xf9, // ù
+        0x023d: 0xdb, // Û
+        0x023e: 0xab, // «
+        0x023f: 0xbb, // »
+        0x0320: 0xc3, // Ã
+        0x0321: 0xe3, // ã
+        0x0322: 0xcd, // Í
+        0x0323: 0xcc, // Ì
+        0x0324: 0xec, // ì
+        0x0325: 0xd2, // Ã’
+        0x0326: 0xf2, // ò
+        0x0327: 0xd5, // Õ
+        0x0328: 0xf5, // õ
+        0x0329: 0x7b, // {
+        0x032a: 0x7d, // }
+        0x032b: 0x5c, // \
+        0x032c: 0x5e, // ^
+        0x032d: 0x5f, // _
+        0x032e: 0x7c, // |
+        0x032f: 0x7e, // ~
+        0x0330: 0xc4, // Ä
+        0x0331: 0xe4, // ä
+        0x0332: 0xd6, // Ö
+        0x0333: 0xf6, // ö
+        0x0334: 0xdf, // ß
+        0x0335: 0xa5, // ¥
+        0x0336: 0xa4, // ¤
+        0x0337: 0x2502, // │
+        0x0338: 0xc5, // Ã…
+        0x0339: 0xe5, // å
+        0x033a: 0xd8, // Ø
+        0x033b: 0xf8, // ø
+        0x033c: 0x250c, // ┌
+        0x033d: 0x2510, // ┐
+        0x033e: 0x2514, // â””
+        0x033f: 0x2518 // ┘
+      };
+
+      var getCharFromCode = function getCharFromCode(code) {
+        if (code === null) {
+          return '';
+        }
+        code = CHARACTER_TRANSLATION[code] || code;
+        return String.fromCharCode(code);
+      };
+
+      // the index of the last row in a CEA-608 display buffer
+      var BOTTOM_ROW = 14;
+
+      // This array is used for mapping PACs -> row #, since there's no way of
+      // getting it through bit logic.
+      var ROWS = [0x1100, 0x1120, 0x1200, 0x1220, 0x1500, 0x1520, 0x1600, 0x1620, 0x1700, 0x1720, 0x1000, 0x1300, 0x1320, 0x1400, 0x1420];
+
+      // CEA-608 captions are rendered onto a 34x15 matrix of character
+      // cells. The "bottom" row is the last element in the outer array.
+      var createDisplayBuffer = function createDisplayBuffer() {
+        var result = [],
+          i = BOTTOM_ROW + 1;
+        while (i--) {
+          result.push('');
+        }
+        return result;
+      };
+
+      var Cea608Stream = function Cea608Stream(field, dataChannel) {
+        Cea608Stream.prototype.init.call(this);
+
+        this.field_ = field || 0;
+        this.dataChannel_ = dataChannel || 0;
+
+        this.name_ = 'CC' + ((this.field_ << 1 | this.dataChannel_) + 1);
+
+        this.setConstants();
+        this.reset();
+
+        this.push = function (packet) {
+          var data, swap, char0, char1, text;
+          // remove the parity bits
+          data = packet.ccData & 0x7f7f;
+
+          // ignore duplicate control codes; the spec demands they're sent twice
+          if (data === this.lastControlCode_) {
+            this.lastControlCode_ = null;
+            return;
+          }
+
+          // Store control codes
+          if ((data & 0xf000) === 0x1000) {
+            this.lastControlCode_ = data;
+          } else if (data !== this.PADDING_) {
+            this.lastControlCode_ = null;
+          }
+
+          char0 = data >>> 8;
+          char1 = data & 0xff;
+
+          if (data === this.PADDING_) {
+            return;
+          } else if (data === this.RESUME_CAPTION_LOADING_) {
+            this.mode_ = 'popOn';
+          } else if (data === this.END_OF_CAPTION_) {
+            this.clearFormatting(packet.pts);
+            // if a caption was being displayed, it's gone now
+            this.flushDisplayed(packet.pts);
+
+            // flip memory
+            swap = this.displayed_;
+            this.displayed_ = this.nonDisplayed_;
+            this.nonDisplayed_ = swap;
+
+            // start measuring the time to display the caption
+            this.startPts_ = packet.pts;
+          } else if (data === this.ROLL_UP_2_ROWS_) {
+            this.topRow_ = BOTTOM_ROW - 1;
+            this.mode_ = 'rollUp';
+          } else if (data === this.ROLL_UP_3_ROWS_) {
+            this.topRow_ = BOTTOM_ROW - 2;
+            this.mode_ = 'rollUp';
+          } else if (data === this.ROLL_UP_4_ROWS_) {
+            this.topRow_ = BOTTOM_ROW - 3;
+            this.mode_ = 'rollUp';
+          } else if (data === this.CARRIAGE_RETURN_) {
+            this.clearFormatting(packet.pts);
+            this.flushDisplayed(packet.pts);
+            this.shiftRowsUp_();
+            this.startPts_ = packet.pts;
+          } else if (data === this.BACKSPACE_) {
+            if (this.mode_ === 'popOn') {
+              this.nonDisplayed_[BOTTOM_ROW] = this.nonDisplayed_[BOTTOM_ROW].slice(0, -1);
+            } else {
+              this.displayed_[BOTTOM_ROW] = this.displayed_[BOTTOM_ROW].slice(0, -1);
+            }
+          } else if (data === this.ERASE_DISPLAYED_MEMORY_) {
+            this.flushDisplayed(packet.pts);
+            this.displayed_ = createDisplayBuffer();
+          } else if (data === this.ERASE_NON_DISPLAYED_MEMORY_) {
+            this.nonDisplayed_ = createDisplayBuffer();
+          } else if (data === this.RESUME_DIRECT_CAPTIONING_) {
+            this.mode_ = 'paintOn';
+
+            // Append special characters to caption text
+          } else if (this.isSpecialCharacter(char0, char1)) {
+            // Bitmask char0 so that we can apply character transformations
+            // regardless of field and data channel.
+            // Then byte-shift to the left and OR with char1 so we can pass the
+            // entire character code to `getCharFromCode`.
+            char0 = (char0 & 0x03) << 8;
+            text = getCharFromCode(char0 | char1);
+            this[this.mode_](packet.pts, text);
+            this.column_++;
+
+            // Append extended characters to caption text
+          } else if (this.isExtCharacter(char0, char1)) {
+            // Extended characters always follow their "non-extended" equivalents.
+            // IE if a "è" is desired, you'll always receive "eè"; non-compliant
+            // decoders are supposed to drop the "è", while compliant decoders
+            // backspace the "e" and insert "è".
+
+            // Delete the previous character
+            if (this.mode_ === 'popOn') {
+              this.nonDisplayed_[this.row_] = this.nonDisplayed_[this.row_].slice(0, -1);
+            } else {
+              this.displayed_[BOTTOM_ROW] = this.displayed_[BOTTOM_ROW].slice(0, -1);
+            }
+
+            // Bitmask char0 so that we can apply character transformations
+            // regardless of field and data channel.
+            // Then byte-shift to the left and OR with char1 so we can pass the
+            // entire character code to `getCharFromCode`.
+            char0 = (char0 & 0x03) << 8;
+            text = getCharFromCode(char0 | char1);
+            this[this.mode_](packet.pts, text);
+            this.column_++;
+
+            // Process mid-row codes
+          } else if (this.isMidRowCode(char0, char1)) {
+            // Attributes are not additive, so clear all formatting
+            this.clearFormatting(packet.pts);
+
+            // According to the standard, mid-row codes
+            // should be replaced with spaces, so add one now
+            this[this.mode_](packet.pts, ' ');
+            this.column_++;
+
+            if ((char1 & 0xe) === 0xe) {
+              this.addFormatting(packet.pts, ['i']);
+            }
+
+            if ((char1 & 0x1) === 0x1) {
+              this.addFormatting(packet.pts, ['u']);
+            }
+
+            // Detect offset control codes and adjust cursor
+          } else if (this.isOffsetControlCode(char0, char1)) {
+            // Cursor position is set by indent PAC (see below) in 4-column
+            // increments, with an additional offset code of 1-3 to reach any
+            // of the 32 columns specified by CEA-608. So all we need to do
+            // here is increment the column cursor by the given offset.
+            this.column_ += char1 & 0x03;
+
+            // Detect PACs (Preamble Address Codes)
+          } else if (this.isPAC(char0, char1)) {
+
+            // There's no logic for PAC -> row mapping, so we have to just
+            // find the row code in an array and use its index :(
+            var row = ROWS.indexOf(data & 0x1f20);
+
+            if (row !== this.row_) {
+              // formatting is only persistent for current row
+              this.clearFormatting(packet.pts);
+              this.row_ = row;
+            }
+            // All PACs can apply underline, so detect and apply
+            // (All odd-numbered second bytes set underline)
+            if (char1 & 0x1 && this.formatting_.indexOf('u') === -1) {
+              this.addFormatting(packet.pts, ['u']);
+            }
+
+            if ((data & 0x10) === 0x10) {
+              // We've got an indent level code. Each successive even number
+              // increments the column cursor by 4, so we can get the desired
+              // column position by bit-shifting to the right (to get n/2)
+              // and multiplying by 4.
+              this.column_ = ((data & 0xe) >> 1) * 4;
+            }
+
+            if (this.isColorPAC(char1)) {
+              // it's a color code, though we only support white, which
+              // can be either normal or italicized. white italics can be
+              // either 0x4e or 0x6e depending on the row, so we just
+              // bitwise-and with 0xe to see if italics should be turned on
+              if ((char1 & 0xe) === 0xe) {
+                this.addFormatting(packet.pts, ['i']);
+              }
+            }
+
+            // We have a normal character in char0, and possibly one in char1
+          } else if (this.isNormalChar(char0)) {
+            if (char1 === 0x00) {
+              char1 = null;
+            }
+            text = getCharFromCode(char0);
+            text += getCharFromCode(char1);
+            this[this.mode_](packet.pts, text);
+            this.column_ += text.length;
+          } // finish data processing
+        };
+      };
+      Cea608Stream.prototype = new stream();
+      // Trigger a cue point that captures the current state of the
+      // display buffer
+      Cea608Stream.prototype.flushDisplayed = function (pts) {
+        var content = this.displayed_
+        // remove spaces from the start and end of the string
+          .map(function (row) {
+            return row.trim();
+          })
+          // combine all text rows to display in one cue
+          .join('\n')
+          // and remove blank rows from the start and end, but not the middle
+          .replace(/^\n+|\n+$/g, '');
+
+        if (content.length) {
+          this.trigger('data', {
+            startPts: this.startPts_,
+            endPts: pts,
+            text: content,
+            stream: this.name_
+          });
+        }
+      };
+
+      /**
+       * Zero out the data, used for startup and on seek
+       */
+      Cea608Stream.prototype.reset = function () {
+        this.mode_ = 'popOn';
+        // When in roll-up mode, the index of the last row that will
+        // actually display captions. If a caption is shifted to a row
+        // with a lower index than this, it is cleared from the display
+        // buffer
+        this.topRow_ = 0;
+        this.startPts_ = 0;
+        this.displayed_ = createDisplayBuffer();
+        this.nonDisplayed_ = createDisplayBuffer();
+        this.lastControlCode_ = null;
+
+        // Track row and column for proper line-breaking and spacing
+        this.column_ = 0;
+        this.row_ = BOTTOM_ROW;
+
+        // This variable holds currently-applied formatting
+        this.formatting_ = [];
+      };
+
+      /**
+       * Sets up control code and related constants for this instance
+       */
+      Cea608Stream.prototype.setConstants = function () {
+        // The following attributes have these uses:
+        // ext_ :    char0 for mid-row codes, and the base for extended
+        //           chars (ext_+0, ext_+1, and ext_+2 are char0s for
+        //           extended codes)
+        // control_: char0 for control codes, except byte-shifted to the
+        //           left so that we can do this.control_ | CONTROL_CODE
+        // offset_:  char0 for tab offset codes
+        //
+        // It's also worth noting that control codes, and _only_ control codes,
+        // differ between field 1 and field2. Field 2 control codes are always
+        // their field 1 value plus 1. That's why there's the "| field" on the
+        // control value.
+        if (this.dataChannel_ === 0) {
+          this.BASE_ = 0x10;
+          this.EXT_ = 0x11;
+          this.CONTROL_ = (0x14 | this.field_) << 8;
+          this.OFFSET_ = 0x17;
+        } else if (this.dataChannel_ === 1) {
+          this.BASE_ = 0x18;
+          this.EXT_ = 0x19;
+          this.CONTROL_ = (0x1c | this.field_) << 8;
+          this.OFFSET_ = 0x1f;
+        }
+
+        // Constants for the LSByte command codes recognized by Cea608Stream. This
+        // list is not exhaustive. For a more comprehensive listing and semantics see
+        // http://www.gpo.gov/fdsys/pkg/CFR-2010-title47-vol1/pdf/CFR-2010-title47-vol1-sec15-119.pdf
+        // Padding
+        this.PADDING_ = 0x0000;
+        // Pop-on Mode
+        this.RESUME_CAPTION_LOADING_ = this.CONTROL_ | 0x20;
+        this.END_OF_CAPTION_ = this.CONTROL_ | 0x2f;
+        // Roll-up Mode
+        this.ROLL_UP_2_ROWS_ = this.CONTROL_ | 0x25;
+        this.ROLL_UP_3_ROWS_ = this.CONTROL_ | 0x26;
+        this.ROLL_UP_4_ROWS_ = this.CONTROL_ | 0x27;
+        this.CARRIAGE_RETURN_ = this.CONTROL_ | 0x2d;
+        // paint-on mode (not supported)
+        this.RESUME_DIRECT_CAPTIONING_ = this.CONTROL_ | 0x29;
+        // Erasure
+        this.BACKSPACE_ = this.CONTROL_ | 0x21;
+        this.ERASE_DISPLAYED_MEMORY_ = this.CONTROL_ | 0x2c;
+        this.ERASE_NON_DISPLAYED_MEMORY_ = this.CONTROL_ | 0x2e;
+      };
+
+      /**
+       * Detects if the 2-byte packet data is a special character
+       *
+       * Special characters have a second byte in the range 0x30 to 0x3f,
+       * with the first byte being 0x11 (for data channel 1) or 0x19 (for
+       * data channel 2).
+       *
+       * @param  {Integer} char0 The first byte
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the 2 bytes are an special character
+       */
+      Cea608Stream.prototype.isSpecialCharacter = function (char0, char1) {
+        return char0 === this.EXT_ && char1 >= 0x30 && char1 <= 0x3f;
+      };
+
+      /**
+       * Detects if the 2-byte packet data is an extended character
+       *
+       * Extended characters have a second byte in the range 0x20 to 0x3f,
+       * with the first byte being 0x12 or 0x13 (for data channel 1) or
+       * 0x1a or 0x1b (for data channel 2).
+       *
+       * @param  {Integer} char0 The first byte
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the 2 bytes are an extended character
+       */
+      Cea608Stream.prototype.isExtCharacter = function (char0, char1) {
+        return (char0 === this.EXT_ + 1 || char0 === this.EXT_ + 2) && char1 >= 0x20 && char1 <= 0x3f;
+      };
+
+      /**
+       * Detects if the 2-byte packet is a mid-row code
+       *
+       * Mid-row codes have a second byte in the range 0x20 to 0x2f, with
+       * the first byte being 0x11 (for data channel 1) or 0x19 (for data
+       * channel 2).
+       *
+       * @param  {Integer} char0 The first byte
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the 2 bytes are a mid-row code
+       */
+      Cea608Stream.prototype.isMidRowCode = function (char0, char1) {
+        return char0 === this.EXT_ && char1 >= 0x20 && char1 <= 0x2f;
+      };
+
+      /**
+       * Detects if the 2-byte packet is an offset control code
+       *
+       * Offset control codes have a second byte in the range 0x21 to 0x23,
+       * with the first byte being 0x17 (for data channel 1) or 0x1f (for
+       * data channel 2).
+       *
+       * @param  {Integer} char0 The first byte
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the 2 bytes are an offset control code
+       */
+      Cea608Stream.prototype.isOffsetControlCode = function (char0, char1) {
+        return char0 === this.OFFSET_ && char1 >= 0x21 && char1 <= 0x23;
+      };
+
+      /**
+       * Detects if the 2-byte packet is a Preamble Address Code
+       *
+       * PACs have a first byte in the range 0x10 to 0x17 (for data channel 1)
+       * or 0x18 to 0x1f (for data channel 2), with the second byte in the
+       * range 0x40 to 0x7f.
+       *
+       * @param  {Integer} char0 The first byte
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the 2 bytes are a PAC
+       */
+      Cea608Stream.prototype.isPAC = function (char0, char1) {
+        return char0 >= this.BASE_ && char0 < this.BASE_ + 8 && char1 >= 0x40 && char1 <= 0x7f;
+      };
+
+      /**
+       * Detects if a packet's second byte is in the range of a PAC color code
+       *
+       * PAC color codes have the second byte be in the range 0x40 to 0x4f, or
+       * 0x60 to 0x6f.
+       *
+       * @param  {Integer} char1 The second byte
+       * @return {Boolean}       Whether the byte is a color PAC
+       */
+      Cea608Stream.prototype.isColorPAC = function (char1) {
+        return char1 >= 0x40 && char1 <= 0x4f || char1 >= 0x60 && char1 <= 0x7f;
+      };
+
+      /**
+       * Detects if a single byte is in the range of a normal character
+       *
+       * Normal text bytes are in the range 0x20 to 0x7f.
+       *
+       * @param  {Integer} char  The byte
+       * @return {Boolean}       Whether the byte is a normal character
+       */
+      Cea608Stream.prototype.isNormalChar = function (char) {
+        return char >= 0x20 && char <= 0x7f;
+      };
+
+      // Adds the opening HTML tag for the passed character to the caption text,
+      // and keeps track of it for later closing
+      Cea608Stream.prototype.addFormatting = function (pts, format) {
+        this.formatting_ = this.formatting_.concat(format);
+        var text = format.reduce(function (text, format) {
+          return text + '<' + format + '>';
+        }, '');
+        this[this.mode_](pts, text);
+      };
+
+      // Adds HTML closing tags for current formatting to caption text and
+      // clears remembered formatting
+      Cea608Stream.prototype.clearFormatting = function (pts) {
+        if (!this.formatting_.length) {
+          return;
+        }
+        var text = this.formatting_.reverse().reduce(function (text, format) {
+          return text + '</' + format + '>';
+        }, '');
+        this.formatting_ = [];
+        this[this.mode_](pts, text);
+      };
+
+      // Mode Implementations
+      Cea608Stream.prototype.popOn = function (pts, text) {
+        var baseRow = this.nonDisplayed_[this.row_];
+
+        // buffer characters
+        baseRow += text;
+        this.nonDisplayed_[this.row_] = baseRow;
+      };
+
+      Cea608Stream.prototype.rollUp = function (pts, text) {
+        var baseRow = this.displayed_[BOTTOM_ROW];
+
+        baseRow += text;
+        this.displayed_[BOTTOM_ROW] = baseRow;
+      };
+
+      Cea608Stream.prototype.shiftRowsUp_ = function () {
+        var i;
+        // clear out inactive rows
+        for (i = 0; i < this.topRow_; i++) {
+          this.displayed_[i] = '';
+        }
+        // shift displayed rows up
+        for (i = this.topRow_; i < BOTTOM_ROW; i++) {
+          this.displayed_[i] = this.displayed_[i + 1];
+        }
+        // clear out the bottom row
+        this.displayed_[BOTTOM_ROW] = '';
+      };
+
+      // paintOn mode is not implemented
+      Cea608Stream.prototype.paintOn = function () {
+      };
+
+      // exports
+      var captionStream = {
+        CaptionStream: CaptionStream,
+        Cea608Stream: Cea608Stream
+      };
+
+      var streamTypes = {
+        H264_STREAM_TYPE: 0x1B,
+        ADTS_STREAM_TYPE: 0x0F,
+        METADATA_STREAM_TYPE: 0x15
+      };
+
+      var MAX_TS = 8589934592;
+
+      var RO_THRESH = 4294967296;
+
+      var handleRollover = function handleRollover(value, reference) {
+        var direction = 1;
+
+        if (value > reference) {
+          // If the current timestamp value is greater than our reference timestamp and we detect a
+          // timestamp rollover, this means the roll over is happening in the opposite direction.
+          // Example scenario: Enter a long stream/video just after a rollover occurred. The reference
+          // point will be set to a small number, e.g. 1. The user then seeks backwards over the
+          // rollover point. In loading this segment, the timestamp values will be very large,
+          // e.g. 2^33 - 1. Since this comes before the data we loaded previously, we want to adjust
+          // the time stamp to be `value - 2^33`.
+          direction = -1;
+        }
+
+        // Note: A seek forwards or back that is greater than the RO_THRESH (2^32, ~13 hours) will
+        // cause an incorrect adjustment.
+        while (Math.abs(reference - value) > RO_THRESH) {
+          value += direction * MAX_TS;
+        }
+
+        return value;
+      };
+
+      var TimestampRolloverStream = function TimestampRolloverStream(type) {
+        var lastDTS, referenceDTS;
+
+        TimestampRolloverStream.prototype.init.call(this);
+
+        this.type_ = type;
+
+        this.push = function (data) {
+          if (data.type !== this.type_) {
+            return;
+          }
+
+          if (referenceDTS === undefined) {
+            referenceDTS = data.dts;
+          }
+
+          data.dts = handleRollover(data.dts, referenceDTS);
+          data.pts = handleRollover(data.pts, referenceDTS);
+
+          lastDTS = data.dts;
+
+          this.trigger('data', data);
+        };
+
+        this.flush = function () {
+          referenceDTS = lastDTS;
+          this.trigger('done');
+        };
+
+        this.discontinuity = function () {
+          referenceDTS = void 0;
+          lastDTS = void 0;
+        };
+      };
+
+      TimestampRolloverStream.prototype = new stream();
+
+      var timestampRolloverStream = {
+        TimestampRolloverStream: TimestampRolloverStream,
+        handleRollover: handleRollover
+      };
+
+      var percentEncode = function percentEncode(bytes, start, end) {
+          var i,
+            result = '';
+          for (i = start; i < end; i++) {
+            result += '%' + ('00' + bytes[i].toString(16)).slice(-2);
+          }
+          return result;
+        },
+
+
+        // return the string representation of the specified byte range,
+        // interpreted as UTf-8.
+        parseUtf8 = function parseUtf8(bytes, start, end) {
+          return decodeURIComponent(percentEncode(bytes, start, end));
+        },
+
+
+        // return the string representation of the specified byte range,
+        // interpreted as ISO-8859-1.
+        parseIso88591 = function parseIso88591(bytes, start, end) {
+          return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
+        },
+        parseSyncSafeInteger = function parseSyncSafeInteger(data) {
+          return data[0] << 21 | data[1] << 14 | data[2] << 7 | data[3];
+        },
+        tagParsers = {
+          TXXX: function TXXX(tag) {
+            var i;
+            if (tag.data[0] !== 3) {
+              // ignore frames with unrecognized character encodings
+              return;
+            }
+
+            for (i = 1; i < tag.data.length; i++) {
+              if (tag.data[i] === 0) {
+                // parse the text fields
+                tag.description = parseUtf8(tag.data, 1, i);
+                // do not include the null terminator in the tag value
+                tag.value = parseUtf8(tag.data, i + 1, tag.data.length).replace(/\0*$/, '');
+                break;
+              }
+            }
+            tag.data = tag.value;
+          },
+          WXXX: function WXXX(tag) {
+            var i;
+            if (tag.data[0] !== 3) {
+              // ignore frames with unrecognized character encodings
+              return;
+            }
+
+            for (i = 1; i < tag.data.length; i++) {
+              if (tag.data[i] === 0) {
+                // parse the description and URL fields
+                tag.description = parseUtf8(tag.data, 1, i);
+                tag.url = parseUtf8(tag.data, i + 1, tag.data.length);
+                break;
+              }
+            }
+          },
+          PRIV: function PRIV(tag) {
+            var i;
+
+            for (i = 0; i < tag.data.length; i++) {
+              if (tag.data[i] === 0) {
+                // parse the description and URL fields
+                tag.owner = parseIso88591(tag.data, 0, i);
+                break;
+              }
+            }
+            tag.privateData = tag.data.subarray(i + 1);
+            tag.data = tag.privateData;
+          }
+        },
+        _MetadataStream;
+
+      _MetadataStream = function MetadataStream(options) {
+        var settings = {
+            debug: !!(options && options.debug),
+
+            // the bytes of the program-level descriptor field in MP2T
+            // see ISO/IEC 13818-1:2013 (E), section 2.6 "Program and
+            // program element descriptors"
+            descriptor: options && options.descriptor
+          },
+
+
+          // the total size in bytes of the ID3 tag being parsed
+          tagSize = 0,
+
+
+          // tag data that is not complete enough to be parsed
+          buffer = [],
+
+
+          // the total number of bytes currently in the buffer
+          bufferSize = 0,
+          i;
+
+        _MetadataStream.prototype.init.call(this);
+
+        // calculate the text track in-band metadata track dispatch type
+        // https://html.spec.whatwg.org/multipage/embedded-content.html#steps-to-expose-a-media-resource-specific-text-track
+        this.dispatchType = streamTypes.METADATA_STREAM_TYPE.toString(16);
+        if (settings.descriptor) {
+          for (i = 0; i < settings.descriptor.length; i++) {
+            this.dispatchType += ('00' + settings.descriptor[i].toString(16)).slice(-2);
+          }
+        }
+
+        this.push = function (chunk) {
+          var tag, frameStart, frameSize, frame, i, frameHeader;
+          if (chunk.type !== 'timed-metadata') {
+            return;
+          }
+
+          // if data_alignment_indicator is set in the PES header,
+          // we must have the start of a new ID3 tag. Assume anything
+          // remaining in the buffer was malformed and throw it out
+          if (chunk.dataAlignmentIndicator) {
+            bufferSize = 0;
+            buffer.length = 0;
+          }
+
+          // ignore events that don't look like ID3 data
+          if (buffer.length === 0 && (chunk.data.length < 10 || chunk.data[0] !== 'I'.charCodeAt(0) || chunk.data[1] !== 'D'.charCodeAt(0) || chunk.data[2] !== '3'.charCodeAt(0))) {
+            if (settings.debug) {
+              // eslint-disable-next-line no-console
+              console.log('Skipping unrecognized metadata packet');
+            }
+            return;
+          }
+
+          // add this chunk to the data we've collected so far
+
+          buffer.push(chunk);
+          bufferSize += chunk.data.byteLength;
+
+          // grab the size of the entire frame from the ID3 header
+          if (buffer.length === 1) {
+            // the frame size is transmitted as a 28-bit integer in the
+            // last four bytes of the ID3 header.
+            // The most significant bit of each byte is dropped and the
+            // results concatenated to recover the actual value.
+            tagSize = parseSyncSafeInteger(chunk.data.subarray(6, 10));
+
+            // ID3 reports the tag size excluding the header but it's more
+            // convenient for our comparisons to include it
+            tagSize += 10;
+          }
+
+          // if the entire frame has not arrived, wait for more data
+          if (bufferSize < tagSize) {
+            return;
+          }
+
+          // collect the entire frame so it can be parsed
+          tag = {
+            data: new Uint8Array(tagSize),
+            frames: [],
+            pts: buffer[0].pts,
+            dts: buffer[0].dts
+          };
+          for (i = 0; i < tagSize;) {
+            tag.data.set(buffer[0].data.subarray(0, tagSize - i), i);
+            i += buffer[0].data.byteLength;
+            bufferSize -= buffer[0].data.byteLength;
+            buffer.shift();
+          }
+
+          // find the start of the first frame and the end of the tag
+          frameStart = 10;
+          if (tag.data[5] & 0x40) {
+            // advance the frame start past the extended header
+            frameStart += 4; // header size field
+            frameStart += parseSyncSafeInteger(tag.data.subarray(10, 14));
+
+            // clip any padding off the end
+            tagSize -= parseSyncSafeInteger(tag.data.subarray(16, 20));
+          }
+
+          // parse one or more ID3 frames
+          // http://id3.org/id3v2.3.0#ID3v2_frame_overview
+          do {
+            // determine the number of bytes in this frame
+            frameSize = parseSyncSafeInteger(tag.data.subarray(frameStart + 4, frameStart + 8));
+            if (frameSize < 1) {
+              // eslint-disable-next-line no-console
+              return console.log('Malformed ID3 frame encountered. Skipping metadata parsing.');
+            }
+            frameHeader = String.fromCharCode(tag.data[frameStart], tag.data[frameStart + 1], tag.data[frameStart + 2], tag.data[frameStart + 3]);
+
+            frame = {
+              id: frameHeader,
+              data: tag.data.subarray(frameStart + 10, frameStart + frameSize + 10)
+            };
+            frame.key = frame.id;
+            if (tagParsers[frame.id]) {
+              tagParsers[frame.id](frame);
+
+              // handle the special PRIV frame used to indicate the start
+              // time for raw AAC data
+              if (frame.owner === 'com.apple.streaming.transportStreamTimestamp') {
+                var d = frame.data,
+                  size = (d[3] & 0x01) << 30 | d[4] << 22 | d[5] << 14 | d[6] << 6 | d[7] >>> 2;
+
+                size *= 4;
+                size += d[7] & 0x03;
+                frame.timeStamp = size;
+                // in raw AAC, all subsequent data will be timestamped based
+                // on the value of this frame
+                // we couldn't have known the appropriate pts and dts before
+                // parsing this ID3 tag so set those values now
+                if (tag.pts === undefined && tag.dts === undefined) {
+                  tag.pts = frame.timeStamp;
+                  tag.dts = frame.timeStamp;
+                }
+                this.trigger('timestamp', frame);
+              }
+            }
+            tag.frames.push(frame);
+
+            frameStart += 10; // advance past the frame header
+            frameStart += frameSize; // advance past the frame body
+          } while (frameStart < tagSize);
+          this.trigger('data', tag);
+        };
+      };
+      _MetadataStream.prototype = new stream();
+
+      var metadataStream = _MetadataStream;
+
+      var TimestampRolloverStream$1 = timestampRolloverStream.TimestampRolloverStream;
+
+      // object types
+      var _TransportPacketStream, _TransportParseStream, _ElementaryStream;
+
+      // constants
+      var MP2T_PACKET_LENGTH = 188,
+
+        // bytes
+        SYNC_BYTE = 0x47;
+
+      /**
+       * Splits an incoming stream of binary data into MPEG-2 Transport
+       * Stream packets.
+       */
+      _TransportPacketStream = function TransportPacketStream() {
+        var buffer = new Uint8Array(MP2T_PACKET_LENGTH),
+          bytesInBuffer = 0;
+
+        _TransportPacketStream.prototype.init.call(this);
+
+        // Deliver new bytes to the stream.
+
+        this.push = function (bytes) {
+          var startIndex = 0,
+            endIndex = MP2T_PACKET_LENGTH,
+            everything;
+
+          // If there are bytes remaining from the last segment, prepend them to the
+          // bytes that were pushed in
+          if (bytesInBuffer) {
+            everything = new Uint8Array(bytes.byteLength + bytesInBuffer);
+            everything.set(buffer.subarray(0, bytesInBuffer));
+            everything.set(bytes, bytesInBuffer);
+            bytesInBuffer = 0;
+          } else {
+            everything = bytes;
+          }
+
+          // While we have enough data for a packet
+          while (endIndex < everything.byteLength) {
+            // Look for a pair of start and end sync bytes in the data..
+            if (everything[startIndex] === SYNC_BYTE && everything[endIndex] === SYNC_BYTE) {
+              // We found a packet so emit it and jump one whole packet forward in
+              // the stream
+              this.trigger('data', everything.subarray(startIndex, endIndex));
+              startIndex += MP2T_PACKET_LENGTH;
+              endIndex += MP2T_PACKET_LENGTH;
+              continue;
+            }
+            // If we get here, we have somehow become de-synchronized and we need to step
+            // forward one byte at a time until we find a pair of sync bytes that denote
+            // a packet
+            startIndex++;
+            endIndex++;
+          }
+
+          // If there was some data left over at the end of the segment that couldn't
+          // possibly be a whole packet, keep it because it might be the start of a packet
+          // that continues in the next segment
+          if (startIndex < everything.byteLength) {
+            buffer.set(everything.subarray(startIndex), 0);
+            bytesInBuffer = everything.byteLength - startIndex;
+          }
+        };
+
+        this.flush = function () {
+          // If the buffer contains a whole packet when we are being flushed, emit it
+          // and empty the buffer. Otherwise hold onto the data because it may be
+          // important for decoding the next segment
+          if (bytesInBuffer === MP2T_PACKET_LENGTH && buffer[0] === SYNC_BYTE) {
+            this.trigger('data', buffer);
+            bytesInBuffer = 0;
+          }
+          this.trigger('done');
+        };
+      };
+      _TransportPacketStream.prototype = new stream();
+
+      /**
+       * Accepts an MP2T TransportPacketStream and emits data events with parsed
+       * forms of the individual transport stream packets.
+       */
+      _TransportParseStream = function TransportParseStream() {
+        var parsePsi, parsePat, parsePmt, self;
+        _TransportParseStream.prototype.init.call(this);
+        self = this;
+
+        this.packetsWaitingForPmt = [];
+        this.programMapTable = undefined;
+
+        parsePsi = function parsePsi(payload, psi) {
+          var offset = 0;
+
+          // PSI packets may be split into multiple sections and those
+          // sections may be split into multiple packets. If a PSI
+          // section starts in this packet, the payload_unit_start_indicator
+          // will be true and the first byte of the payload will indicate
+          // the offset from the current position to the start of the
+          // section.
+          if (psi.payloadUnitStartIndicator) {
+            offset += payload[offset] + 1;
+          }
+
+          if (psi.type === 'pat') {
+            parsePat(payload.subarray(offset), psi);
+          } else {
+            parsePmt(payload.subarray(offset), psi);
+          }
+        };
+
+        parsePat = function parsePat(payload, pat) {
+          pat.section_number = payload[7]; // eslint-disable-line camelcase
+          pat.last_section_number = payload[8]; // eslint-disable-line camelcase
+
+          // skip the PSI header and parse the first PMT entry
+          self.pmtPid = (payload[10] & 0x1F) << 8 | payload[11];
+          pat.pmtPid = self.pmtPid;
+        };
+
+        /**
+         * Parse out the relevant fields of a Program Map Table (PMT).
+         * @param payload {Uint8Array} the PMT-specific portion of an MP2T
+         * packet. The first byte in this array should be the table_id
+         * field.
+         * @param pmt {object} the object that should be decorated with
+         * fields parsed from the PMT.
+         */
+        parsePmt = function parsePmt(payload, pmt) {
+          var sectionLength, tableEnd, programInfoLength, offset;
+
+          // PMTs can be sent ahead of the time when they should actually
+          // take effect. We don't believe this should ever be the case
+          // for HLS but we'll ignore "forward" PMT declarations if we see
+          // them. Future PMT declarations have the current_next_indicator
+          // set to zero.
+          if (!(payload[5] & 0x01)) {
+            return;
+          }
+
+          // overwrite any existing program map table
+          self.programMapTable = {
+            video: null,
+            audio: null,
+            'timed-metadata': {}
+          };
+
+          // the mapping table ends at the end of the current section
+          sectionLength = (payload[1] & 0x0f) << 8 | payload[2];
+          tableEnd = 3 + sectionLength - 4;
+
+          // to determine where the table is, we have to figure out how
+          // long the program info descriptors are
+          programInfoLength = (payload[10] & 0x0f) << 8 | payload[11];
+
+          // advance the offset to the first entry in the mapping table
+          offset = 12 + programInfoLength;
+          while (offset < tableEnd) {
+            var streamType = payload[offset];
+            var pid = (payload[offset + 1] & 0x1F) << 8 | payload[offset + 2];
+
+            // only map a single elementary_pid for audio and video stream types
+            // TODO: should this be done for metadata too? for now maintain behavior of
+            //       multiple metadata streams
+            if (streamType === streamTypes.H264_STREAM_TYPE && self.programMapTable.video === null) {
+              self.programMapTable.video = pid;
+            } else if (streamType === streamTypes.ADTS_STREAM_TYPE && self.programMapTable.audio === null) {
+              self.programMapTable.audio = pid;
+            } else if (streamType === streamTypes.METADATA_STREAM_TYPE) {
+              // map pid to stream type for metadata streams
+              self.programMapTable['timed-metadata'][pid] = streamType;
+            }
+
+            // move to the next table entry
+            // skip past the elementary stream descriptors, if present
+            offset += ((payload[offset + 3] & 0x0F) << 8 | payload[offset + 4]) + 5;
+          }
+
+          // record the map on the packet as well
+          pmt.programMapTable = self.programMapTable;
+        };
+
+        /**
+         * Deliver a new MP2T packet to the stream.
+         */
+        this.push = function (packet) {
+          var result = {},
+            offset = 4;
+
+          result.payloadUnitStartIndicator = !!(packet[1] & 0x40);
+
+          // pid is a 13-bit field starting at the last bit of packet[1]
+          result.pid = packet[1] & 0x1f;
+          result.pid <<= 8;
+          result.pid |= packet[2];
+
+          // if an adaption field is present, its length is specified by the
+          // fifth byte of the TS packet header. The adaptation field is
+          // used to add stuffing to PES packets that don't fill a complete
+          // TS packet, and to specify some forms of timing and control data
+          // that we do not currently use.
+          if ((packet[3] & 0x30) >>> 4 > 0x01) {
+            offset += packet[offset] + 1;
+          }
+
+          // parse the rest of the packet based on the type
+          if (result.pid === 0) {
+            result.type = 'pat';
+            parsePsi(packet.subarray(offset), result);
+            this.trigger('data', result);
+          } else if (result.pid === this.pmtPid) {
+            result.type = 'pmt';
+            parsePsi(packet.subarray(offset), result);
+            this.trigger('data', result);
+
+            // if there are any packets waiting for a PMT to be found, process them now
+            while (this.packetsWaitingForPmt.length) {
+              this.processPes_.apply(this, this.packetsWaitingForPmt.shift());
+            }
+          } else if (this.programMapTable === undefined) {
+            // When we have not seen a PMT yet, defer further processing of
+            // PES packets until one has been parsed
+            this.packetsWaitingForPmt.push([packet, offset, result]);
+          } else {
+            this.processPes_(packet, offset, result);
+          }
+        };
+
+        this.processPes_ = function (packet, offset, result) {
+          // set the appropriate stream type
+          if (result.pid === this.programMapTable.video) {
+            result.streamType = streamTypes.H264_STREAM_TYPE;
+          } else if (result.pid === this.programMapTable.audio) {
+            result.streamType = streamTypes.ADTS_STREAM_TYPE;
+          } else {
+            // if not video or audio, it is timed-metadata or unknown
+            // if unknown, streamType will be undefined
+            result.streamType = this.programMapTable['timed-metadata'][result.pid];
+          }
+
+          result.type = 'pes';
+          result.data = packet.subarray(offset);
+
+          this.trigger('data', result);
+        };
+      };
+      _TransportParseStream.prototype = new stream();
+      _TransportParseStream.STREAM_TYPES = {
+        h264: 0x1b,
+        adts: 0x0f
+      };
+
+      /**
+       * Reconsistutes program elementary stream (PES) packets from parsed
+       * transport stream packets. That is, if you pipe an
+       * mp2t.TransportParseStream into a mp2t.ElementaryStream, the output
+       * events will be events which capture the bytes for individual PES
+       * packets plus relevant metadata that has been extracted from the
+       * container.
+       */
+      _ElementaryStream = function ElementaryStream() {
+        var self = this,
+
+
+          // PES packet fragments
+          video = {
+            data: [],
+            size: 0
+          },
+          audio = {
+            data: [],
+            size: 0
+          },
+          timedMetadata = {
+            data: [],
+            size: 0
+          },
+          parsePes = function parsePes(payload, pes) {
+            var ptsDtsFlags;
+
+            // get the packet length, this will be 0 for video
+            pes.packetLength = 6 + (payload[4] << 8 | payload[5]);
+
+            // find out if this packets starts a new keyframe
+            pes.dataAlignmentIndicator = (payload[6] & 0x04) !== 0;
+            // PES packets may be annotated with a PTS value, or a PTS value
+            // and a DTS value. Determine what combination of values is
+            // available to work with.
+            ptsDtsFlags = payload[7];
+
+            // PTS and DTS are normally stored as a 33-bit number.  Javascript
+            // performs all bitwise operations on 32-bit integers but javascript
+            // supports a much greater range (52-bits) of integer using standard
+            // mathematical operations.
+            // We construct a 31-bit value using bitwise operators over the 31
+            // most significant bits and then multiply by 4 (equal to a left-shift
+            // of 2) before we add the final 2 least significant bits of the
+            // timestamp (equal to an OR.)
+            if (ptsDtsFlags & 0xC0) {
+              // the PTS and DTS are not written out directly. For information
+              // on how they are encoded, see
+              // http://dvd.sourceforge.net/dvdinfo/pes-hdr.html
+              pes.pts = (payload[9] & 0x0E) << 27 | (payload[10] & 0xFF) << 20 | (payload[11] & 0xFE) << 12 | (payload[12] & 0xFF) << 5 | (payload[13] & 0xFE) >>> 3;
+              pes.pts *= 4; // Left shift by 2
+              pes.pts += (payload[13] & 0x06) >>> 1; // OR by the two LSBs
+              pes.dts = pes.pts;
+              if (ptsDtsFlags & 0x40) {
+                pes.dts = (payload[14] & 0x0E) << 27 | (payload[15] & 0xFF) << 20 | (payload[16] & 0xFE) << 12 | (payload[17] & 0xFF) << 5 | (payload[18] & 0xFE) >>> 3;
+                pes.dts *= 4; // Left shift by 2
+                pes.dts += (payload[18] & 0x06) >>> 1; // OR by the two LSBs
+              }
+            }
+            // the data section starts immediately after the PES header.
+            // pes_header_data_length specifies the number of header bytes
+            // that follow the last byte of the field.
+            pes.data = payload.subarray(9 + payload[8]);
+          },
+          flushStream = function flushStream(stream$$1, type, forceFlush) {
+            var packetData = new Uint8Array(stream$$1.size),
+              event = {
+                type: type
+              },
+              i = 0,
+              offset = 0,
+              packetFlushable = false,
+              fragment;
+
+            // do nothing if there is not enough buffered data for a complete
+            // PES header
+            if (!stream$$1.data.length || stream$$1.size < 9) {
+              return;
+            }
+            event.trackId = stream$$1.data[0].pid;
+
+            // reassemble the packet
+            for (i = 0; i < stream$$1.data.length; i++) {
+              fragment = stream$$1.data[i];
+
+              packetData.set(fragment.data, offset);
+              offset += fragment.data.byteLength;
+            }
+
+            // parse assembled packet's PES header
+            parsePes(packetData, event);
+
+            // non-video PES packets MUST have a non-zero PES_packet_length
+            // check that there is enough stream data to fill the packet
+            packetFlushable = type === 'video' || event.packetLength <= stream$$1.size;
+
+            // flush pending packets if the conditions are right
+            if (forceFlush || packetFlushable) {
+              stream$$1.size = 0;
+              stream$$1.data.length = 0;
+            }
+
+            // only emit packets that are complete. this is to avoid assembling
+            // incomplete PES packets due to poor segmentation
+            if (packetFlushable) {
+              self.trigger('data', event);
+            }
+          };
+
+        _ElementaryStream.prototype.init.call(this);
+
+        this.push = function (data) {
+          ({
+            pat: function pat() {
+              // we have to wait for the PMT to arrive as well before we
+              // have any meaningful metadata
+            },
+            pes: function pes() {
+              var stream$$1, streamType;
+
+              switch (data.streamType) {
+                case streamTypes.H264_STREAM_TYPE:
+                case streamTypes.H264_STREAM_TYPE:
+                  stream$$1 = video;
+                  streamType = 'video';
+                  break;
+                case streamTypes.ADTS_STREAM_TYPE:
+                  stream$$1 = audio;
+                  streamType = 'audio';
+                  break;
+                case streamTypes.METADATA_STREAM_TYPE:
+                  stream$$1 = timedMetadata;
+                  streamType = 'timed-metadata';
+                  break;
+                default:
+                  // ignore unknown stream types
+                  return;
+              }
+
+              // if a new packet is starting, we can flush the completed
+              // packet
+              if (data.payloadUnitStartIndicator) {
+                flushStream(stream$$1, streamType, true);
+              }
+
+              // buffer this fragment until we are sure we've received the
+              // complete payload
+              stream$$1.data.push(data);
+              stream$$1.size += data.data.byteLength;
+            },
+            pmt: function pmt() {
+              var event = {
+                  type: 'metadata',
+                  tracks: []
+                },
+                programMapTable = data.programMapTable;
+
+              // translate audio and video streams to tracks
+              if (programMapTable.video !== null) {
+                event.tracks.push({
+                  timelineStartInfo: {
+                    baseMediaDecodeTime: 0
+                  },
+                  id: +programMapTable.video,
+                  codec: 'avc',
+                  type: 'video'
+                });
+              }
+              if (programMapTable.audio !== null) {
+                event.tracks.push({
+                  timelineStartInfo: {
+                    baseMediaDecodeTime: 0
+                  },
+                  id: +programMapTable.audio,
+                  codec: 'adts',
+                  type: 'audio'
+                });
+              }
+
+              self.trigger('data', event);
+            }
+          })[data.type]();
+        };
+
+        /**
+         * Flush any remaining input. Video PES packets may be of variable
+         * length. Normally, the start of a new video packet can trigger the
+         * finalization of the previous packet. That is not possible if no
+         * more video is forthcoming, however. In that case, some other
+         * mechanism (like the end of the file) has to be employed. When it is
+         * clear that no additional data is forthcoming, calling this method
+         * will flush the buffered packets.
+         */
+        this.flush = function () {
+          // !!THIS ORDER IS IMPORTANT!!
+          // video first then audio
+          flushStream(video, 'video');
+          flushStream(audio, 'audio');
+          flushStream(timedMetadata, 'timed-metadata');
+          this.trigger('done');
+        };
+      };
+      _ElementaryStream.prototype = new stream();
+
+      var m2ts = {
+        PAT_PID: 0x0000,
+        MP2T_PACKET_LENGTH: MP2T_PACKET_LENGTH,
+        TransportPacketStream: _TransportPacketStream,
+        TransportParseStream: _TransportParseStream,
+        ElementaryStream: _ElementaryStream,
+        TimestampRolloverStream: TimestampRolloverStream$1,
+        CaptionStream: captionStream.CaptionStream,
+        Cea608Stream: captionStream.Cea608Stream,
+        MetadataStream: metadataStream
+      };
+
+      for (var type in streamTypes) {
+        if (streamTypes.hasOwnProperty(type)) {
+          m2ts[type] = streamTypes[type];
+        }
+      }
+
+      var m2ts_1 = m2ts;
+
+      var _AdtsStream;
+
+      var ADTS_SAMPLING_FREQUENCIES = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];
+
+      /*
+       * Accepts a ElementaryStream and emits data events with parsed
+       * AAC Audio Frames of the individual packets. Input audio in ADTS
+       * format is unpacked and re-emitted as AAC frames.
+       *
+       * @see http://wiki.multimedia.cx/index.php?title=ADTS
+       * @see http://wiki.multimedia.cx/?title=Understanding_AAC
+       */
+      _AdtsStream = function AdtsStream() {
+        var buffer;
+
+        _AdtsStream.prototype.init.call(this);
+
+        this.push = function (packet) {
+          var i = 0,
+            frameNum = 0,
+            frameLength,
+            protectionSkipBytes,
+            frameEnd,
+            oldBuffer,
+            sampleCount,
+            adtsFrameDuration;
+
+          if (packet.type !== 'audio') {
+            // ignore non-audio data
+            return;
+          }
+
+          // Prepend any data in the buffer to the input data so that we can parse
+          // aac frames the cross a PES packet boundary
+          if (buffer) {
+            oldBuffer = buffer;
+            buffer = new Uint8Array(oldBuffer.byteLength + packet.data.byteLength);
+            buffer.set(oldBuffer);
+            buffer.set(packet.data, oldBuffer.byteLength);
+          } else {
+            buffer = packet.data;
+          }
+
+          // unpack any ADTS frames which have been fully received
+          // for details on the ADTS header, see http://wiki.multimedia.cx/index.php?title=ADTS
+          while (i + 5 < buffer.length) {
+
+            // Loook for the start of an ADTS header..
+            if (buffer[i] !== 0xFF || (buffer[i + 1] & 0xF6) !== 0xF0) {
+              // If a valid header was not found,  jump one forward and attempt to
+              // find a valid ADTS header starting at the next byte
+              i++;
+              continue;
+            }
+
+            // The protection skip bit tells us if we have 2 bytes of CRC data at the
+            // end of the ADTS header
+            protectionSkipBytes = (~buffer[i + 1] & 0x01) * 2;
+
+            // Frame length is a 13 bit integer starting 16 bits from the
+            // end of the sync sequence
+            frameLength = (buffer[i + 3] & 0x03) << 11 | buffer[i + 4] << 3 | (buffer[i + 5] & 0xe0) >> 5;
+
+            sampleCount = ((buffer[i + 6] & 0x03) + 1) * 1024;
+            adtsFrameDuration = sampleCount * 90000 / ADTS_SAMPLING_FREQUENCIES[(buffer[i + 2] & 0x3c) >>> 2];
+
+            frameEnd = i + frameLength;
+
+            // If we don't have enough data to actually finish this ADTS frame, return
+            // and wait for more data
+            if (buffer.byteLength < frameEnd) {
+              return;
+            }
+
+            // Otherwise, deliver the complete AAC frame
+            this.trigger('data', {
+              pts: packet.pts + frameNum * adtsFrameDuration,
+              dts: packet.dts + frameNum * adtsFrameDuration,
+              sampleCount: sampleCount,
+              audioobjecttype: (buffer[i + 2] >>> 6 & 0x03) + 1,
+              channelcount: (buffer[i + 2] & 1) << 2 | (buffer[i + 3] & 0xc0) >>> 6,
+              samplerate: ADTS_SAMPLING_FREQUENCIES[(buffer[i + 2] & 0x3c) >>> 2],
+              samplingfrequencyindex: (buffer[i + 2] & 0x3c) >>> 2,
+              // assume ISO/IEC 14496-12 AudioSampleEntry default of 16
+              samplesize: 16,
+              data: buffer.subarray(i + 7 + protectionSkipBytes, frameEnd)
+            });
+
+            // If the buffer is empty, clear it and return
+            if (buffer.byteLength === frameEnd) {
+              buffer = undefined;
+              return;
+            }
+
+            frameNum++;
+
+            // Remove the finished frame from the buffer and start the process again
+            buffer = buffer.subarray(frameEnd);
+          }
+        };
+        this.flush = function () {
+          this.trigger('done');
+        };
+      };
+
+      _AdtsStream.prototype = new stream();
+
+      var adts = _AdtsStream;
+
+      var ExpGolomb;
+
+      /**
+       * Parser for exponential Golomb codes, a variable-bitwidth number encoding
+       * scheme used by h264.
+       */
+      ExpGolomb = function ExpGolomb(workingData) {
+        var
+          // the number of bytes left to examine in workingData
+          workingBytesAvailable = workingData.byteLength,
+
+
+          // the current word being examined
+          workingWord = 0,
+
+          // :uint
+
+          // the number of bits left to examine in the current word
+          workingBitsAvailable = 0; // :uint;
+
+        // ():uint
+        this.length = function () {
+          return 8 * workingBytesAvailable;
+        };
+
+        // ():uint
+        this.bitsAvailable = function () {
+          return 8 * workingBytesAvailable + workingBitsAvailable;
+        };
+
+        // ():void
+        this.loadWord = function () {
+          var position = workingData.byteLength - workingBytesAvailable,
+            workingBytes = new Uint8Array(4),
+            availableBytes = Math.min(4, workingBytesAvailable);
+
+          if (availableBytes === 0) {
+            throw new Error('no bytes available');
+          }
+
+          workingBytes.set(workingData.subarray(position, position + availableBytes));
+          workingWord = new DataView(workingBytes.buffer).getUint32(0);
+
+          // track the amount of workingData that has been processed
+          workingBitsAvailable = availableBytes * 8;
+          workingBytesAvailable -= availableBytes;
+        };
+
+        // (count:int):void
+        this.skipBits = function (count) {
+          var skipBytes; // :int
+          if (workingBitsAvailable > count) {
+            workingWord <<= count;
+            workingBitsAvailable -= count;
+          } else {
+            count -= workingBitsAvailable;
+            skipBytes = Math.floor(count / 8);
+
+            count -= skipBytes * 8;
+            workingBytesAvailable -= skipBytes;
+
+            this.loadWord();
+
+            workingWord <<= count;
+            workingBitsAvailable -= count;
+          }
+        };
+
+        // (size:int):uint
+        this.readBits = function (size) {
+          var bits = Math.min(workingBitsAvailable, size),
+
+            // :uint
+            valu = workingWord >>> 32 - bits; // :uint
+          // if size > 31, handle error
+          workingBitsAvailable -= bits;
+          if (workingBitsAvailable > 0) {
+            workingWord <<= bits;
+          } else if (workingBytesAvailable > 0) {
+            this.loadWord();
+          }
+
+          bits = size - bits;
+          if (bits > 0) {
+            return valu << bits | this.readBits(bits);
+          }
+          return valu;
+        };
+
+        // ():uint
+        this.skipLeadingZeros = function () {
+          var leadingZeroCount; // :uint
+          for (leadingZeroCount = 0; leadingZeroCount < workingBitsAvailable; ++leadingZeroCount) {
+            if ((workingWord & 0x80000000 >>> leadingZeroCount) !== 0) {
+              // the first bit of working word is 1
+              workingWord <<= leadingZeroCount;
+              workingBitsAvailable -= leadingZeroCount;
+              return leadingZeroCount;
+            }
+          }
+
+          // we exhausted workingWord and still have not found a 1
+          this.loadWord();
+          return leadingZeroCount + this.skipLeadingZeros();
+        };
+
+        // ():void
+        this.skipUnsignedExpGolomb = function () {
+          this.skipBits(1 + this.skipLeadingZeros());
+        };
+
+        // ():void
+        this.skipExpGolomb = function () {
+          this.skipBits(1 + this.skipLeadingZeros());
+        };
+
+        // ():uint
+        this.readUnsignedExpGolomb = function () {
+          var clz = this.skipLeadingZeros(); // :uint
+          return this.readBits(clz + 1) - 1;
+        };
+
+        // ():int
+        this.readExpGolomb = function () {
+          var valu = this.readUnsignedExpGolomb(); // :int
+          if (0x01 & valu) {
+            // the number is odd if the low order bit is set
+            return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
+          }
+          return -1 * (valu >>> 1); // divide by two then make it negative
+        };
+
+        // Some convenience functions
+        // :Boolean
+        this.readBoolean = function () {
+          return this.readBits(1) === 1;
+        };
+
+        // ():int
+        this.readUnsignedByte = function () {
+          return this.readBits(8);
+        };
+
+        this.loadWord();
+      };
+
+      var expGolomb = ExpGolomb;
+
+      var _H264Stream, _NalByteStream;
+      var PROFILES_WITH_OPTIONAL_SPS_DATA;
+
+      /**
+       * Accepts a NAL unit byte stream and unpacks the embedded NAL units.
+       */
+      _NalByteStream = function NalByteStream() {
+        var syncPoint = 0,
+          i,
+          buffer;
+        _NalByteStream.prototype.init.call(this);
+
+        this.push = function (data) {
+          var swapBuffer;
+
+          if (!buffer) {
+            buffer = data.data;
+          } else {
+            swapBuffer = new Uint8Array(buffer.byteLength + data.data.byteLength);
+            swapBuffer.set(buffer);
+            swapBuffer.set(data.data, buffer.byteLength);
+            buffer = swapBuffer;
+          }
+
+          // Rec. ITU-T H.264, Annex B
+          // scan for NAL unit boundaries
+
+          // a match looks like this:
+          // 0 0 1 .. NAL .. 0 0 1
+          // ^ sync point        ^ i
+          // or this:
+          // 0 0 1 .. NAL .. 0 0 0
+          // ^ sync point        ^ i
+
+          // advance the sync point to a NAL start, if necessary
+          for (; syncPoint < buffer.byteLength - 3; syncPoint++) {
+            if (buffer[syncPoint + 2] === 1) {
+              // the sync point is properly aligned
+              i = syncPoint + 5;
+              break;
+            }
+          }
+
+          while (i < buffer.byteLength) {
+            // look at the current byte to determine if we've hit the end of
+            // a NAL unit boundary
+            switch (buffer[i]) {
+              case 0:
+                // skip past non-sync sequences
+                if (buffer[i - 1] !== 0) {
+                  i += 2;
+                  break;
+                } else if (buffer[i - 2] !== 0) {
+                  i++;
+                  break;
+                }
+
+                // deliver the NAL unit if it isn't empty
+                if (syncPoint + 3 !== i - 2) {
+                  this.trigger('data', buffer.subarray(syncPoint + 3, i - 2));
+                }
+
+                // drop trailing zeroes
+                do {
+                  i++;
+                } while (buffer[i] !== 1 && i < buffer.length);
+                syncPoint = i - 2;
+                i += 3;
+                break;
+              case 1:
+                // skip past non-sync sequences
+                if (buffer[i - 1] !== 0 || buffer[i - 2] !== 0) {
+                  i += 3;
+                  break;
+                }
+
+                // deliver the NAL unit
+                this.trigger('data', buffer.subarray(syncPoint + 3, i - 2));
+                syncPoint = i - 2;
+                i += 3;
+                break;
+              default:
+                // the current byte isn't a one or zero, so it cannot be part
+                // of a sync sequence
+                i += 3;
+                break;
+            }
+          }
+          // filter out the NAL units that were delivered
+          buffer = buffer.subarray(syncPoint);
+          i -= syncPoint;
+          syncPoint = 0;
+        };
+
+        this.flush = function () {
+          // deliver the last buffered NAL unit
+          if (buffer && buffer.byteLength > 3) {
+            this.trigger('data', buffer.subarray(syncPoint + 3));
+          }
+          // reset the stream state
+          buffer = null;
+          syncPoint = 0;
+          this.trigger('done');
+        };
+      };
+      _NalByteStream.prototype = new stream();
+
+      // values of profile_idc that indicate additional fields are included in the SPS
+      // see Recommendation ITU-T H.264 (4/2013),
+      // 7.3.2.1.1 Sequence parameter set data syntax
+      PROFILES_WITH_OPTIONAL_SPS_DATA = {
+        100: true,
+        110: true,
+        122: true,
+        244: true,
+        44: true,
+        83: true,
+        86: true,
+        118: true,
+        128: true,
+        138: true,
+        139: true,
+        134: true
+      };
+
+      /**
+       * Accepts input from a ElementaryStream and produces H.264 NAL unit data
+       * events.
+       */
+      _H264Stream = function H264Stream() {
+        var nalByteStream = new _NalByteStream(),
+          self,
+          trackId,
+          currentPts,
+          currentDts,
+          discardEmulationPreventionBytes,
+          readSequenceParameterSet,
+          skipScalingList;
+
+        _H264Stream.prototype.init.call(this);
+        self = this;
+
+        this.push = function (packet) {
+          if (packet.type !== 'video') {
+            return;
+          }
+          trackId = packet.trackId;
+          currentPts = packet.pts;
+          currentDts = packet.dts;
+
+          nalByteStream.push(packet);
+        };
+
+        nalByteStream.on('data', function (data) {
+          var event = {
+            trackId: trackId,
+            pts: currentPts,
+            dts: currentDts,
+            data: data
+          };
+
+          switch (data[0] & 0x1f) {
+            case 0x05:
+              event.nalUnitType = 'slice_layer_without_partitioning_rbsp_idr';
+              break;
+            case 0x06:
+              event.nalUnitType = 'sei_rbsp';
+              event.escapedRBSP = discardEmulationPreventionBytes(data.subarray(1));
+              break;
+            case 0x07:
+              event.nalUnitType = 'seq_parameter_set_rbsp';
+              event.escapedRBSP = discardEmulationPreventionBytes(data.subarray(1));
+              event.config = readSequenceParameterSet(event.escapedRBSP);
+              break;
+            case 0x08:
+              event.nalUnitType = 'pic_parameter_set_rbsp';
+              break;
+            case 0x09:
+              event.nalUnitType = 'access_unit_delimiter_rbsp';
+              break;
+
+            default:
+              break;
+          }
+          self.trigger('data', event);
+        });
+        nalByteStream.on('done', function () {
+          self.trigger('done');
+        });
+
+        this.flush = function () {
+          nalByteStream.flush();
+        };
+
+        /**
+         * Advance the ExpGolomb decoder past a scaling list. The scaling
+         * list is optionally transmitted as part of a sequence parameter
+         * set and is not relevant to transmuxing.
+         * @param count {number} the number of entries in this scaling list
+         * @param expGolombDecoder {object} an ExpGolomb pointed to the
+         * start of a scaling list
+         * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1
+         */
+        skipScalingList = function skipScalingList(count, expGolombDecoder) {
+          var lastScale = 8,
+            nextScale = 8,
+            j,
+            deltaScale;
+
+          for (j = 0; j < count; j++) {
+            if (nextScale !== 0) {
+              deltaScale = expGolombDecoder.readExpGolomb();
+              nextScale = (lastScale + deltaScale + 256) % 256;
+            }
+
+            lastScale = nextScale === 0 ? lastScale : nextScale;
+          }
+        };
+
+        /**
+         * Expunge any "Emulation Prevention" bytes from a "Raw Byte
+         * Sequence Payload"
+         * @param data {Uint8Array} the bytes of a RBSP from a NAL
+         * unit
+         * @return {Uint8Array} the RBSP without any Emulation
+         * Prevention Bytes
+         */
+        discardEmulationPreventionBytes = function discardEmulationPreventionBytes(data) {
+          var length = data.byteLength,
+            emulationPreventionBytesPositions = [],
+            i = 1,
+            newLength,
+            newData;
+
+          // Find all `Emulation Prevention Bytes`
+          while (i < length - 2) {
+            if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {
+              emulationPreventionBytesPositions.push(i + 2);
+              i += 2;
+            } else {
+              i++;
+            }
+          }
+
+          // If no Emulation Prevention Bytes were found just return the original
+          // array
+          if (emulationPreventionBytesPositions.length === 0) {
+            return data;
+          }
+
+          // Create a new array to hold the NAL unit data
+          newLength = length - emulationPreventionBytesPositions.length;
+          newData = new Uint8Array(newLength);
+          var sourceIndex = 0;
+
+          for (i = 0; i < newLength; sourceIndex++, i++) {
+            if (sourceIndex === emulationPreventionBytesPositions[0]) {
+              // Skip this byte
+              sourceIndex++;
+              // Remove this position index
+              emulationPreventionBytesPositions.shift();
+            }
+            newData[i] = data[sourceIndex];
+          }
+
+          return newData;
+        };
+
+        /**
+         * Read a sequence parameter set and return some interesting video
+         * properties. A sequence parameter set is the H264 metadata that
+         * describes the properties of upcoming video frames.
+         * @param data {Uint8Array} the bytes of a sequence parameter set
+         * @return {object} an object with configuration parsed from the
+         * sequence parameter set, including the dimensions of the
+         * associated video frames.
+         */
+        readSequenceParameterSet = function readSequenceParameterSet(data) {
+          var frameCropLeftOffset = 0,
+            frameCropRightOffset = 0,
+            frameCropTopOffset = 0,
+            frameCropBottomOffset = 0,
+            sarScale = 1,
+            expGolombDecoder,
+            profileIdc,
+            levelIdc,
+            profileCompatibility,
+            chromaFormatIdc,
+            picOrderCntType,
+            numRefFramesInPicOrderCntCycle,
+            picWidthInMbsMinus1,
+            picHeightInMapUnitsMinus1,
+            frameMbsOnlyFlag,
+            scalingListCount,
+            sarRatio,
+            aspectRatioIdc,
+            i;
+
+          expGolombDecoder = new expGolomb(data);
+          profileIdc = expGolombDecoder.readUnsignedByte(); // profile_idc
+          profileCompatibility = expGolombDecoder.readUnsignedByte(); // constraint_set[0-5]_flag
+          levelIdc = expGolombDecoder.readUnsignedByte(); // level_idc u(8)
+          expGolombDecoder.skipUnsignedExpGolomb(); // seq_parameter_set_id
+
+          // some profiles have more optional data we don't need
+          if (PROFILES_WITH_OPTIONAL_SPS_DATA[profileIdc]) {
+            chromaFormatIdc = expGolombDecoder.readUnsignedExpGolomb();
+            if (chromaFormatIdc === 3) {
+              expGolombDecoder.skipBits(1); // separate_colour_plane_flag
+            }
+            expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
+            expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
+            expGolombDecoder.skipBits(1); // qpprime_y_zero_transform_bypass_flag
+            if (expGolombDecoder.readBoolean()) {
+              // seq_scaling_matrix_present_flag
+              scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;
+              for (i = 0; i < scalingListCount; i++) {
+                if (expGolombDecoder.readBoolean()) {
+                  // seq_scaling_list_present_flag[ i ]
+                  if (i < 6) {
+                    skipScalingList(16, expGolombDecoder);
+                  } else {
+                    skipScalingList(64, expGolombDecoder);
+                  }
+                }
+              }
+            }
+          }
+
+          expGolombDecoder.skipUnsignedExpGolomb(); // log2_max_frame_num_minus4
+          picOrderCntType = expGolombDecoder.readUnsignedExpGolomb();
+
+          if (picOrderCntType === 0) {
+            expGolombDecoder.readUnsignedExpGolomb(); // log2_max_pic_order_cnt_lsb_minus4
+          } else if (picOrderCntType === 1) {
+            expGolombDecoder.skipBits(1); // delta_pic_order_always_zero_flag
+            expGolombDecoder.skipExpGolomb(); // offset_for_non_ref_pic
+            expGolombDecoder.skipExpGolomb(); // offset_for_top_to_bottom_field
+            numRefFramesInPicOrderCntCycle = expGolombDecoder.readUnsignedExpGolomb();
+            for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {
+              expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
+            }
+          }
+
+          expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
+          expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
+
+          picWidthInMbsMinus1 = expGolombDecoder.readUnsignedExpGolomb();
+          picHeightInMapUnitsMinus1 = expGolombDecoder.readUnsignedExpGolomb();
+
+          frameMbsOnlyFlag = expGolombDecoder.readBits(1);
+          if (frameMbsOnlyFlag === 0) {
+            expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
+          }
+
+          expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
+          if (expGolombDecoder.readBoolean()) {
+            // frame_cropping_flag
+            frameCropLeftOffset = expGolombDecoder.readUnsignedExpGolomb();
+            frameCropRightOffset = expGolombDecoder.readUnsignedExpGolomb();
+            frameCropTopOffset = expGolombDecoder.readUnsignedExpGolomb();
+            frameCropBottomOffset = expGolombDecoder.readUnsignedExpGolomb();
+          }
+          if (expGolombDecoder.readBoolean()) {
+            // vui_parameters_present_flag
+            if (expGolombDecoder.readBoolean()) {
+              // aspect_ratio_info_present_flag
+              aspectRatioIdc = expGolombDecoder.readUnsignedByte();
+              switch (aspectRatioIdc) {
+                case 1:
+                  sarRatio = [1, 1];
+                  break;
+                case 2:
+                  sarRatio = [12, 11];
+                  break;
+                case 3:
+                  sarRatio = [10, 11];
+                  break;
+                case 4:
+                  sarRatio = [16, 11];
+                  break;
+                case 5:
+                  sarRatio = [40, 33];
+                  break;
+                case 6:
+                  sarRatio = [24, 11];
+                  break;
+                case 7:
+                  sarRatio = [20, 11];
+                  break;
+                case 8:
+                  sarRatio = [32, 11];
+                  break;
+                case 9:
+                  sarRatio = [80, 33];
+                  break;
+                case 10:
+                  sarRatio = [18, 11];
+                  break;
+                case 11:
+                  sarRatio = [15, 11];
+                  break;
+                case 12:
+                  sarRatio = [64, 33];
+                  break;
+                case 13:
+                  sarRatio = [160, 99];
+                  break;
+                case 14:
+                  sarRatio = [4, 3];
+                  break;
+                case 15:
+                  sarRatio = [3, 2];
+                  break;
+                case 16:
+                  sarRatio = [2, 1];
+                  break;
+                case 255: {
+                  sarRatio = [expGolombDecoder.readUnsignedByte() << 8 | expGolombDecoder.readUnsignedByte(), expGolombDecoder.readUnsignedByte() << 8 | expGolombDecoder.readUnsignedByte()];
+                  break;
+                }
+              }
+              if (sarRatio) {
+                sarScale = sarRatio[0] / sarRatio[1];
+              }
+            }
+          }
+          return {
+            profileIdc: profileIdc,
+            levelIdc: levelIdc,
+            profileCompatibility: profileCompatibility,
+            width: Math.ceil(((picWidthInMbsMinus1 + 1) * 16 - frameCropLeftOffset * 2 - frameCropRightOffset * 2) * sarScale),
+            height: (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 - frameCropTopOffset * 2 - frameCropBottomOffset * 2
+          };
+        };
+      };
+      _H264Stream.prototype = new stream();
+
+      var h264 = {
+        H264Stream: _H264Stream,
+        NalByteStream: _NalByteStream
+      };
+
+      // Constants
+      var _AacStream;
+
+      /**
+       * Splits an incoming stream of binary data into ADTS and ID3 Frames.
+       */
+
+      _AacStream = function AacStream() {
+        var everything = new Uint8Array(),
+          timeStamp = 0;
+
+        _AacStream.prototype.init.call(this);
+
+        this.setTimestamp = function (timestamp) {
+          timeStamp = timestamp;
+        };
+
+        this.parseId3TagSize = function (header, byteIndex) {
+          var returnSize = header[byteIndex + 6] << 21 | header[byteIndex + 7] << 14 | header[byteIndex + 8] << 7 | header[byteIndex + 9],
+            flags = header[byteIndex + 5],
+            footerPresent = (flags & 16) >> 4;
+
+          if (footerPresent) {
+            return returnSize + 20;
+          }
+          return returnSize + 10;
+        };
+
+        this.parseAdtsSize = function (header, byteIndex) {
+          var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
+            middle = header[byteIndex + 4] << 3,
+            highTwo = header[byteIndex + 3] & 0x3 << 11;
+
+          return highTwo | middle | lowThree;
+        };
+
+        this.push = function (bytes) {
+          var frameSize = 0,
+            byteIndex = 0,
+            bytesLeft,
+            chunk,
+            packet,
+            tempLength;
+
+          // If there are bytes remaining from the last segment, prepend them to the
+          // bytes that were pushed in
+          if (everything.length) {
+            tempLength = everything.length;
+            everything = new Uint8Array(bytes.byteLength + tempLength);
+            everything.set(everything.subarray(0, tempLength));
+            everything.set(bytes, tempLength);
+          } else {
+            everything = bytes;
+          }
+
+          while (everything.length - byteIndex >= 3) {
+            if (everything[byteIndex] === 'I'.charCodeAt(0) && everything[byteIndex + 1] === 'D'.charCodeAt(0) && everything[byteIndex + 2] === '3'.charCodeAt(0)) {
+
+              // Exit early because we don't have enough to parse
+              // the ID3 tag header
+              if (everything.length - byteIndex < 10) {
+                break;
+              }
+
+              // check framesize
+              frameSize = this.parseId3TagSize(everything, byteIndex);
+
+              // Exit early if we don't have enough in the buffer
+              // to emit a full packet
+              if (frameSize > everything.length) {
+                break;
+              }
+              chunk = {
+                type: 'timed-metadata',
+                data: everything.subarray(byteIndex, byteIndex + frameSize)
+              };
+              this.trigger('data', chunk);
+              byteIndex += frameSize;
+              continue;
+            } else if (everything[byteIndex] & 0xff === 0xff && (everything[byteIndex + 1] & 0xf0) === 0xf0) {
+
+              // Exit early because we don't have enough to parse
+              // the ADTS frame header
+              if (everything.length - byteIndex < 7) {
+                break;
+              }
+
+              frameSize = this.parseAdtsSize(everything, byteIndex);
+
+              // Exit early if we don't have enough in the buffer
+              // to emit a full packet
+              if (frameSize > everything.length) {
+                break;
+              }
+
+              packet = {
+                type: 'audio',
+                data: everything.subarray(byteIndex, byteIndex + frameSize),
+                pts: timeStamp,
+                dts: timeStamp
+              };
+              this.trigger('data', packet);
+              byteIndex += frameSize;
+              continue;
+            }
+            byteIndex++;
+          }
+          bytesLeft = everything.length - byteIndex;
+
+          if (bytesLeft > 0) {
+            everything = everything.subarray(byteIndex);
+          } else {
+            everything = new Uint8Array();
+          }
+        };
+      };
+
+      _AacStream.prototype = new stream();
+
+      var aac = _AacStream;
+
+      var highPrefix = [33, 16, 5, 32, 164, 27];
+      var lowPrefix = [33, 65, 108, 84, 1, 2, 4, 8, 168, 2, 4, 8, 17, 191, 252];
+      var zeroFill = function zeroFill(count) {
+        var a = [];
+        while (count--) {
+          a.push(0);
+        }
+        return a;
+      };
+
+      var makeTable = function makeTable(metaTable) {
+        return Object.keys(metaTable).reduce(function (obj, key) {
+          obj[key] = new Uint8Array(metaTable[key].reduce(function (arr, part) {
+            return arr.concat(part);
+          }, []));
+          return obj;
+        }, {});
+      };
+
+      // Frames-of-silence to use for filling in missing AAC frames
+      var coneOfSilence = {
+        96000: [highPrefix, [227, 64], zeroFill(154), [56]],
+        88200: [highPrefix, [231], zeroFill(170), [56]],
+        64000: [highPrefix, [248, 192], zeroFill(240), [56]],
+        48000: [highPrefix, [255, 192], zeroFill(268), [55, 148, 128], zeroFill(54), [112]],
+        44100: [highPrefix, [255, 192], zeroFill(268), [55, 163, 128], zeroFill(84), [112]],
+        32000: [highPrefix, [255, 192], zeroFill(268), [55, 234], zeroFill(226), [112]],
+        24000: [highPrefix, [255, 192], zeroFill(268), [55, 255, 128], zeroFill(268), [111, 112], zeroFill(126), [224]],
+        16000: [highPrefix, [255, 192], zeroFill(268), [55, 255, 128], zeroFill(268), [111, 255], zeroFill(269), [223, 108], zeroFill(195), [1, 192]],
+        12000: [lowPrefix, zeroFill(268), [3, 127, 248], zeroFill(268), [6, 255, 240], zeroFill(268), [13, 255, 224], zeroFill(268), [27, 253, 128], zeroFill(259), [56]],
+        11025: [lowPrefix, zeroFill(268), [3, 127, 248], zeroFill(268), [6, 255, 240], zeroFill(268), [13, 255, 224], zeroFill(268), [27, 255, 192], zeroFill(268), [55, 175, 128], zeroFill(108), [112]],
+        8000: [lowPrefix, zeroFill(268), [3, 121, 16], zeroFill(47), [7]]
+      };
+
+      var silence = makeTable(coneOfSilence);
+
+      var ONE_SECOND_IN_TS = 90000,
+
+        // 90kHz clock
+        secondsToVideoTs,
+        secondsToAudioTs,
+        videoTsToSeconds,
+        audioTsToSeconds,
+        audioTsToVideoTs,
+        videoTsToAudioTs;
+
+      secondsToVideoTs = function secondsToVideoTs(seconds) {
+        return seconds * ONE_SECOND_IN_TS;
+      };
+
+      secondsToAudioTs = function secondsToAudioTs(seconds, sampleRate) {
+        return seconds * sampleRate;
+      };
+
+      videoTsToSeconds = function videoTsToSeconds(timestamp) {
+        return timestamp / ONE_SECOND_IN_TS;
+      };
+
+      audioTsToSeconds = function audioTsToSeconds(timestamp, sampleRate) {
+        return timestamp / sampleRate;
+      };
+
+      audioTsToVideoTs = function audioTsToVideoTs(timestamp, sampleRate) {
+        return secondsToVideoTs(audioTsToSeconds(timestamp, sampleRate));
+      };
+
+      videoTsToAudioTs = function videoTsToAudioTs(timestamp, sampleRate) {
+        return secondsToAudioTs(videoTsToSeconds(timestamp), sampleRate);
+      };
+
+      var clock = {
+        secondsToVideoTs: secondsToVideoTs,
+        secondsToAudioTs: secondsToAudioTs,
+        videoTsToSeconds: videoTsToSeconds,
+        audioTsToSeconds: audioTsToSeconds,
+        audioTsToVideoTs: audioTsToVideoTs,
+        videoTsToAudioTs: videoTsToAudioTs
+      };
+
+      var H264Stream = h264.H264Stream;
+
+      // constants
+      var AUDIO_PROPERTIES = ['audioobjecttype', 'channelcount', 'samplerate', 'samplingfrequencyindex', 'samplesize'];
+
+      var VIDEO_PROPERTIES = ['width', 'height', 'profileIdc', 'levelIdc', 'profileCompatibility'];
+
+      var ONE_SECOND_IN_TS$1 = 90000; // 90kHz clock
+
+      // object types
+      var _VideoSegmentStream, _AudioSegmentStream, _Transmuxer, _CoalesceStream;
+
+      // Helper functions
+      var createDefaultSample, isLikelyAacData, collectDtsInfo, clearDtsInfo, calculateTrackBaseMediaDecodeTime,
+        arrayEquals, sumFrameByteLengths;
+
+      /**
+       * Default sample object
+       * see ISO/IEC 14496-12:2012, section 8.6.4.3
+       */
+      createDefaultSample = function createDefaultSample() {
+        return {
+          size: 0,
+          flags: {
+            isLeading: 0,
+            dependsOn: 1,
+            isDependedOn: 0,
+            hasRedundancy: 0,
+            degradationPriority: 0
+          }
+        };
+      };
+
+      isLikelyAacData = function isLikelyAacData(data) {
+        if (data[0] === 'I'.charCodeAt(0) && data[1] === 'D'.charCodeAt(0) && data[2] === '3'.charCodeAt(0)) {
+          return true;
+        }
+        return false;
+      };
+
+      /**
+       * Compare two arrays (even typed) for same-ness
+       */
+      arrayEquals = function arrayEquals(a, b) {
+        var i;
+
+        if (a.length !== b.length) {
+          return false;
+        }
+
+        // compare the value of each element in the array
+        for (i = 0; i < a.length; i++) {
+          if (a[i] !== b[i]) {
+            return false;
+          }
+        }
+
+        return true;
+      };
+
+      /**
+       * Sum the `byteLength` properties of the data in each AAC frame
+       */
+      sumFrameByteLengths = function sumFrameByteLengths(array) {
+        var i,
+          currentObj,
+          sum = 0;
+
+        // sum the byteLength's all each nal unit in the frame
+        for (i = 0; i < array.length; i++) {
+          currentObj = array[i];
+          sum += currentObj.data.byteLength;
+        }
+
+        return sum;
+      };
+
+      /**
+       * Constructs a single-track, ISO BMFF media segment from AAC data
+       * events. The output of this stream can be fed to a SourceBuffer
+       * configured with a suitable initialization segment.
+       * @param track {object} track metadata configuration
+       * @param options {object} transmuxer options object
+       * @param options.keepOriginalTimestamps {boolean} If true, keep the timestamps
+       *        in the source; false to adjust the first segment to start at 0.
+       */
+      _AudioSegmentStream = function AudioSegmentStream(track, options) {
+        var adtsFrames = [],
+          sequenceNumber = 0,
+          earliestAllowedDts = 0,
+          audioAppendStartTs = 0,
+          videoBaseMediaDecodeTime = Infinity;
+
+        options = options || {};
+
+        _AudioSegmentStream.prototype.init.call(this);
+
+        this.push = function (data) {
+          collectDtsInfo(track, data);
+
+          if (track) {
+            AUDIO_PROPERTIES.forEach(function (prop) {
+              track[prop] = data[prop];
+            });
+          }
+
+          // buffer audio data until end() is called
+          adtsFrames.push(data);
+        };
+
+        this.setEarliestDts = function (earliestDts) {
+          earliestAllowedDts = earliestDts - track.timelineStartInfo.baseMediaDecodeTime;
+        };
+
+        this.setVideoBaseMediaDecodeTime = function (baseMediaDecodeTime) {
+          videoBaseMediaDecodeTime = baseMediaDecodeTime;
+        };
+
+        this.setAudioAppendStart = function (timestamp) {
+          audioAppendStartTs = timestamp;
+        };
+
+        this.flush = function () {
+          var frames, moof, mdat, boxes;
+
+          // return early if no audio data has been observed
+          if (adtsFrames.length === 0) {
+            this.trigger('done', 'AudioSegmentStream');
+            return;
+          }
+
+          frames = this.trimAdtsFramesByEarliestDts_(adtsFrames);
+          track.baseMediaDecodeTime = calculateTrackBaseMediaDecodeTime(track, options.keepOriginalTimestamps);
+
+          this.prefixWithSilence_(track, frames);
+
+          // we have to build the index from byte locations to
+          // samples (that is, adts frames) in the audio data
+          track.samples = this.generateSampleTable_(frames);
+
+          // concatenate the audio data to constuct the mdat
+          mdat = mp4Generator.mdat(this.concatenateFrameData_(frames));
+
+          adtsFrames = [];
+
+          moof = mp4Generator.moof(sequenceNumber, [track]);
+          boxes = new Uint8Array(moof.byteLength + mdat.byteLength);
+
+          // bump the sequence number for next time
+          sequenceNumber++;
+
+          boxes.set(moof);
+          boxes.set(mdat, moof.byteLength);
+
+          clearDtsInfo(track);
+
+          this.trigger('data', {track: track, boxes: boxes});
+          this.trigger('done', 'AudioSegmentStream');
+        };
+
+        // Possibly pad (prefix) the audio track with silence if appending this track
+        // would lead to the introduction of a gap in the audio buffer
+        this.prefixWithSilence_ = function (track, frames) {
+          var baseMediaDecodeTimeTs,
+            frameDuration = 0,
+            audioGapDuration = 0,
+            audioFillFrameCount = 0,
+            audioFillDuration = 0,
+            silentFrame,
+            i;
+
+          if (!frames.length) {
+            return;
+          }
+
+          baseMediaDecodeTimeTs = clock.audioTsToVideoTs(track.baseMediaDecodeTime, track.samplerate);
+          // determine frame clock duration based on sample rate, round up to avoid overfills
+          frameDuration = Math.ceil(ONE_SECOND_IN_TS$1 / (track.samplerate / 1024));
+
+          if (audioAppendStartTs && videoBaseMediaDecodeTime) {
+            // insert the shortest possible amount (audio gap or audio to video gap)
+            audioGapDuration = baseMediaDecodeTimeTs - Math.max(audioAppendStartTs, videoBaseMediaDecodeTime);
+            // number of full frames in the audio gap
+            audioFillFrameCount = Math.floor(audioGapDuration / frameDuration);
+            audioFillDuration = audioFillFrameCount * frameDuration;
+          }
+
+          // don't attempt to fill gaps smaller than a single frame or larger
+          // than a half second
+          if (audioFillFrameCount < 1 || audioFillDuration > ONE_SECOND_IN_TS$1 / 2) {
+            return;
+          }
+
+          silentFrame = silence[track.samplerate];
+
+          if (!silentFrame) {
+            // we don't have a silent frame pregenerated for the sample rate, so use a frame
+            // from the content instead
+            silentFrame = frames[0].data;
+          }
+
+          for (i = 0; i < audioFillFrameCount; i++) {
+            frames.splice(i, 0, {
+              data: silentFrame
+            });
+          }
+
+          track.baseMediaDecodeTime -= Math.floor(clock.videoTsToAudioTs(audioFillDuration, track.samplerate));
+        };
+
+        // If the audio segment extends before the earliest allowed dts
+        // value, remove AAC frames until starts at or after the earliest
+        // allowed DTS so that we don't end up with a negative baseMedia-
+        // DecodeTime for the audio track
+        this.trimAdtsFramesByEarliestDts_ = function (adtsFrames) {
+          if (track.minSegmentDts >= earliestAllowedDts) {
+            return adtsFrames;
+          }
+
+          // We will need to recalculate the earliest segment Dts
+          track.minSegmentDts = Infinity;
+
+          return adtsFrames.filter(function (currentFrame) {
+            // If this is an allowed frame, keep it and record it's Dts
+            if (currentFrame.dts >= earliestAllowedDts) {
+              track.minSegmentDts = Math.min(track.minSegmentDts, currentFrame.dts);
+              track.minSegmentPts = track.minSegmentDts;
+              return true;
+            }
+            // Otherwise, discard it
+            return false;
+          });
+        };
+
+        // generate the track's raw mdat data from an array of frames
+        this.generateSampleTable_ = function (frames) {
+          var i,
+            currentFrame,
+            samples = [];
+
+          for (i = 0; i < frames.length; i++) {
+            currentFrame = frames[i];
+            samples.push({
+              size: currentFrame.data.byteLength,
+              duration: 1024 // For AAC audio, all samples contain 1024 samples
+            });
+          }
+          return samples;
+        };
+
+        // generate the track's sample table from an array of frames
+        this.concatenateFrameData_ = function (frames) {
+          var i,
+            currentFrame,
+            dataOffset = 0,
+            data = new Uint8Array(sumFrameByteLengths(frames));
+
+          for (i = 0; i < frames.length; i++) {
+            currentFrame = frames[i];
+
+            data.set(currentFrame.data, dataOffset);
+            dataOffset += currentFrame.data.byteLength;
+          }
+          return data;
+        };
+      };
+
+      _AudioSegmentStream.prototype = new stream();
+
+      /**
+       * Constructs a single-track, ISO BMFF media segment from H264 data
+       * events. The output of this stream can be fed to a SourceBuffer
+       * configured with a suitable initialization segment.
+       * @param track {object} track metadata configuration
+       * @param options {object} transmuxer options object
+       * @param options.alignGopsAtEnd {boolean} If true, start from the end of the
+       *        gopsToAlignWith list when attempting to align gop pts
+       * @param options.keepOriginalTimestamps {boolean} If true, keep the timestamps
+       *        in the source; false to adjust the first segment to start at 0.
+       */
+      _VideoSegmentStream = function VideoSegmentStream(track, options) {
+        var sequenceNumber = 0,
+          nalUnits = [],
+          gopsToAlignWith = [],
+          config,
+          pps;
+
+        options = options || {};
+
+        _VideoSegmentStream.prototype.init.call(this);
+
+        delete track.minPTS;
+
+        this.gopCache_ = [];
+
+        this.push = function (nalUnit) {
+          collectDtsInfo(track, nalUnit);
+
+          // record the track config
+          if (nalUnit.nalUnitType === 'seq_parameter_set_rbsp' && !config) {
+            config = nalUnit.config;
+            track.sps = [nalUnit.data];
+
+            VIDEO_PROPERTIES.forEach(function (prop) {
+              track[prop] = config[prop];
+            }, this);
+          }
+
+          if (nalUnit.nalUnitType === 'pic_parameter_set_rbsp' && !pps) {
+            pps = nalUnit.data;
+            track.pps = [nalUnit.data];
+          }
+
+          // buffer video until flush() is called
+          nalUnits.push(nalUnit);
+        };
+
+        this.flush = function () {
+          var frames, gopForFusion, gops, moof, mdat, boxes;
+
+          // Throw away nalUnits at the start of the byte stream until
+          // we find the first AUD
+          while (nalUnits.length) {
+            if (nalUnits[0].nalUnitType === 'access_unit_delimiter_rbsp') {
+              break;
+            }
+            nalUnits.shift();
+          }
+
+          // Return early if no video data has been observed
+          if (nalUnits.length === 0) {
+            this.resetStream_();
+            this.trigger('done', 'VideoSegmentStream');
+            return;
+          }
+
+          // Organize the raw nal-units into arrays that represent
+          // higher-level constructs such as frames and gops
+          // (group-of-pictures)
+          frames = this.groupNalsIntoFrames_(nalUnits);
+          gops = this.groupFramesIntoGops_(frames);
+
+          // If the first frame of this fragment is not a keyframe we have
+          // a problem since MSE (on Chrome) requires a leading keyframe.
+          //
+          // We have two approaches to repairing this situation:
+          // 1) GOP-FUSION:
+          //    This is where we keep track of the GOPS (group-of-pictures)
+          //    from previous fragments and attempt to find one that we can
+          //    prepend to the current fragment in order to create a valid
+          //    fragment.
+          // 2) KEYFRAME-PULLING:
+          //    Here we search for the first keyframe in the fragment and
+          //    throw away all the frames between the start of the fragment
+          //    and that keyframe. We then extend the duration and pull the
+          //    PTS of the keyframe forward so that it covers the time range
+          //    of the frames that were disposed of.
+          //
+          // #1 is far prefereable over #2 which can cause "stuttering" but
+          // requires more things to be just right.
+          if (!gops[0][0].keyFrame) {
+            // Search for a gop for fusion from our gopCache
+            gopForFusion = this.getGopForFusion_(nalUnits[0], track);
+
+            if (gopForFusion) {
+              gops.unshift(gopForFusion);
+              // Adjust Gops' metadata to account for the inclusion of the
+              // new gop at the beginning
+              gops.byteLength += gopForFusion.byteLength;
+              gops.nalCount += gopForFusion.nalCount;
+              gops.pts = gopForFusion.pts;
+              gops.dts = gopForFusion.dts;
+              gops.duration += gopForFusion.duration;
+            } else {
+              // If we didn't find a candidate gop fall back to keyframe-pulling
+              gops = this.extendFirstKeyFrame_(gops);
+            }
+          }
+
+          // Trim gops to align with gopsToAlignWith
+          if (gopsToAlignWith.length) {
+            var alignedGops;
+
+            if (options.alignGopsAtEnd) {
+              alignedGops = this.alignGopsAtEnd_(gops);
+            } else {
+              alignedGops = this.alignGopsAtStart_(gops);
+            }
+
+            if (!alignedGops) {
+              // save all the nals in the last GOP into the gop cache
+              this.gopCache_.unshift({
+                gop: gops.pop(),
+                pps: track.pps,
+                sps: track.sps
+              });
+
+              // Keep a maximum of 6 GOPs in the cache
+              this.gopCache_.length = Math.min(6, this.gopCache_.length);
+
+              // Clear nalUnits
+              nalUnits = [];
+
+              // return early no gops can be aligned with desired gopsToAlignWith
+              this.resetStream_();
+              this.trigger('done', 'VideoSegmentStream');
+              return;
+            }
+
+            // Some gops were trimmed. clear dts info so minSegmentDts and pts are correct
+            // when recalculated before sending off to CoalesceStream
+            clearDtsInfo(track);
+
+            gops = alignedGops;
+          }
+
+          collectDtsInfo(track, gops);
+
+          // First, we have to build the index from byte locations to
+          // samples (that is, frames) in the video data
+          track.samples = this.generateSampleTable_(gops);
+
+          // Concatenate the video data and construct the mdat
+          mdat = mp4Generator.mdat(this.concatenateNalData_(gops));
+
+          track.baseMediaDecodeTime = calculateTrackBaseMediaDecodeTime(track, options.keepOriginalTimestamps);
+
+          this.trigger('processedGopsInfo', gops.map(function (gop) {
+            return {
+              pts: gop.pts,
+              dts: gop.dts,
+              byteLength: gop.byteLength
+            };
+          }));
+
+          // save all the nals in the last GOP into the gop cache
+          this.gopCache_.unshift({
+            gop: gops.pop(),
+            pps: track.pps,
+            sps: track.sps
+          });
+
+          // Keep a maximum of 6 GOPs in the cache
+          this.gopCache_.length = Math.min(6, this.gopCache_.length);
+
+          // Clear nalUnits
+          nalUnits = [];
+
+          this.trigger('baseMediaDecodeTime', track.baseMediaDecodeTime);
+          this.trigger('timelineStartInfo', track.timelineStartInfo);
+
+          moof = mp4Generator.moof(sequenceNumber, [track]);
+
+          // it would be great to allocate this array up front instead of
+          // throwing away hundreds of media segment fragments
+          boxes = new Uint8Array(moof.byteLength + mdat.byteLength);
+
+          // Bump the sequence number for next time
+          sequenceNumber++;
+
+          boxes.set(moof);
+          boxes.set(mdat, moof.byteLength);
+
+          this.trigger('data', {track: track, boxes: boxes});
+
+          this.resetStream_();
+
+          // Continue with the flush process now
+          this.trigger('done', 'VideoSegmentStream');
+        };
+
+        this.resetStream_ = function () {
+          clearDtsInfo(track);
+
+          // reset config and pps because they may differ across segments
+          // for instance, when we are rendition switching
+          config = undefined;
+          pps = undefined;
+        };
+
+        // Search for a candidate Gop for gop-fusion from the gop cache and
+        // return it or return null if no good candidate was found
+        this.getGopForFusion_ = function (nalUnit) {
+          var halfSecond = 45000,
+
+            // Half-a-second in a 90khz clock
+            allowableOverlap = 10000,
+
+            // About 3 frames @ 30fps
+            nearestDistance = Infinity,
+            dtsDistance,
+            nearestGopObj,
+            currentGop,
+            currentGopObj,
+            i;
+
+          // Search for the GOP nearest to the beginning of this nal unit
+          for (i = 0; i < this.gopCache_.length; i++) {
+            currentGopObj = this.gopCache_[i];
+            currentGop = currentGopObj.gop;
+
+            // Reject Gops with different SPS or PPS
+            if (!(track.pps && arrayEquals(track.pps[0], currentGopObj.pps[0])) || !(track.sps && arrayEquals(track.sps[0], currentGopObj.sps[0]))) {
+              continue;
+            }
+
+            // Reject Gops that would require a negative baseMediaDecodeTime
+            if (currentGop.dts < track.timelineStartInfo.dts) {
+              continue;
+            }
+
+            // The distance between the end of the gop and the start of the nalUnit
+            dtsDistance = nalUnit.dts - currentGop.dts - currentGop.duration;
+
+            // Only consider GOPS that start before the nal unit and end within
+            // a half-second of the nal unit
+            if (dtsDistance >= -allowableOverlap && dtsDistance <= halfSecond) {
+
+              // Always use the closest GOP we found if there is more than
+              // one candidate
+              if (!nearestGopObj || nearestDistance > dtsDistance) {
+                nearestGopObj = currentGopObj;
+                nearestDistance = dtsDistance;
+              }
+            }
+          }
+
+          if (nearestGopObj) {
+            return nearestGopObj.gop;
+          }
+          return null;
+        };
+
+        this.extendFirstKeyFrame_ = function (gops) {
+          var currentGop;
+
+          if (!gops[0][0].keyFrame && gops.length > 1) {
+            // Remove the first GOP
+            currentGop = gops.shift();
+
+            gops.byteLength -= currentGop.byteLength;
+            gops.nalCount -= currentGop.nalCount;
+
+            // Extend the first frame of what is now the
+            // first gop to cover the time period of the
+            // frames we just removed
+            gops[0][0].dts = currentGop.dts;
+            gops[0][0].pts = currentGop.pts;
+            gops[0][0].duration += currentGop.duration;
+          }
+
+          return gops;
+        };
+
+        // Convert an array of nal units into an array of frames with each frame being
+        // composed of the nal units that make up that frame
+        // Also keep track of cummulative data about the frame from the nal units such
+        // as the frame duration, starting pts, etc.
+        this.groupNalsIntoFrames_ = function (nalUnits) {
+          var i,
+            currentNal,
+            currentFrame = [],
+            frames = [];
+
+          currentFrame.byteLength = 0;
+
+          for (i = 0; i < nalUnits.length; i++) {
+            currentNal = nalUnits[i];
+
+            // Split on 'aud'-type nal units
+            if (currentNal.nalUnitType === 'access_unit_delimiter_rbsp') {
+              // Since the very first nal unit is expected to be an AUD
+              // only push to the frames array when currentFrame is not empty
+              if (currentFrame.length) {
+                currentFrame.duration = currentNal.dts - currentFrame.dts;
+                frames.push(currentFrame);
+              }
+              currentFrame = [currentNal];
+              currentFrame.byteLength = currentNal.data.byteLength;
+              currentFrame.pts = currentNal.pts;
+              currentFrame.dts = currentNal.dts;
+            } else {
+              // Specifically flag key frames for ease of use later
+              if (currentNal.nalUnitType === 'slice_layer_without_partitioning_rbsp_idr') {
+                currentFrame.keyFrame = true;
+              }
+              currentFrame.duration = currentNal.dts - currentFrame.dts;
+              currentFrame.byteLength += currentNal.data.byteLength;
+              currentFrame.push(currentNal);
+            }
+          }
+
+          // For the last frame, use the duration of the previous frame if we
+          // have nothing better to go on
+          if (frames.length && (!currentFrame.duration || currentFrame.duration <= 0)) {
+            currentFrame.duration = frames[frames.length - 1].duration;
+          }
+
+          // Push the final frame
+          frames.push(currentFrame);
+          return frames;
+        };
+
+        // Convert an array of frames into an array of Gop with each Gop being composed
+        // of the frames that make up that Gop
+        // Also keep track of cummulative data about the Gop from the frames such as the
+        // Gop duration, starting pts, etc.
+        this.groupFramesIntoGops_ = function (frames) {
+          var i,
+            currentFrame,
+            currentGop = [],
+            gops = [];
+
+          // We must pre-set some of the values on the Gop since we
+          // keep running totals of these values
+          currentGop.byteLength = 0;
+          currentGop.nalCount = 0;
+          currentGop.duration = 0;
+          currentGop.pts = frames[0].pts;
+          currentGop.dts = frames[0].dts;
+
+          // store some metadata about all the Gops
+          gops.byteLength = 0;
+          gops.nalCount = 0;
+          gops.duration = 0;
+          gops.pts = frames[0].pts;
+          gops.dts = frames[0].dts;
+
+          for (i = 0; i < frames.length; i++) {
+            currentFrame = frames[i];
+
+            if (currentFrame.keyFrame) {
+              // Since the very first frame is expected to be an keyframe
+              // only push to the gops array when currentGop is not empty
+              if (currentGop.length) {
+                gops.push(currentGop);
+                gops.byteLength += currentGop.byteLength;
+                gops.nalCount += currentGop.nalCount;
+                gops.duration += currentGop.duration;
+              }
+
+              currentGop = [currentFrame];
+              currentGop.nalCount = currentFrame.length;
+              currentGop.byteLength = currentFrame.byteLength;
+              currentGop.pts = currentFrame.pts;
+              currentGop.dts = currentFrame.dts;
+              currentGop.duration = currentFrame.duration;
+            } else {
+              currentGop.duration += currentFrame.duration;
+              currentGop.nalCount += currentFrame.length;
+              currentGop.byteLength += currentFrame.byteLength;
+              currentGop.push(currentFrame);
+            }
+          }
+
+          if (gops.length && currentGop.duration <= 0) {
+            currentGop.duration = gops[gops.length - 1].duration;
+          }
+          gops.byteLength += currentGop.byteLength;
+          gops.nalCount += currentGop.nalCount;
+          gops.duration += currentGop.duration;
+
+          // push the final Gop
+          gops.push(currentGop);
+          return gops;
+        };
+
+        // generate the track's sample table from an array of gops
+        this.generateSampleTable_ = function (gops, baseDataOffset) {
+          var h,
+            i,
+            sample,
+            currentGop,
+            currentFrame,
+            dataOffset = baseDataOffset || 0,
+            samples = [];
+
+          for (h = 0; h < gops.length; h++) {
+            currentGop = gops[h];
+
+            for (i = 0; i < currentGop.length; i++) {
+              currentFrame = currentGop[i];
+
+              sample = createDefaultSample();
+
+              sample.dataOffset = dataOffset;
+              sample.compositionTimeOffset = currentFrame.pts - currentFrame.dts;
+              sample.duration = currentFrame.duration;
+              sample.size = 4 * currentFrame.length; // Space for nal unit size
+              sample.size += currentFrame.byteLength;
+
+              if (currentFrame.keyFrame) {
+                sample.flags.dependsOn = 2;
+              }
+
+              dataOffset += sample.size;
+
+              samples.push(sample);
+            }
+          }
+          return samples;
+        };
+
+        // generate the track's raw mdat data from an array of gops
+        this.concatenateNalData_ = function (gops) {
+          var h,
+            i,
+            j,
+            currentGop,
+            currentFrame,
+            currentNal,
+            dataOffset = 0,
+            nalsByteLength = gops.byteLength,
+            numberOfNals = gops.nalCount,
+            totalByteLength = nalsByteLength + 4 * numberOfNals,
+            data = new Uint8Array(totalByteLength),
+            view = new DataView(data.buffer);
+
+          // For each Gop..
+          for (h = 0; h < gops.length; h++) {
+            currentGop = gops[h];
+
+            // For each Frame..
+            for (i = 0; i < currentGop.length; i++) {
+              currentFrame = currentGop[i];
+
+              // For each NAL..
+              for (j = 0; j < currentFrame.length; j++) {
+                currentNal = currentFrame[j];
+
+                view.setUint32(dataOffset, currentNal.data.byteLength);
+                dataOffset += 4;
+                data.set(currentNal.data, dataOffset);
+                dataOffset += currentNal.data.byteLength;
+              }
+            }
+          }
+          return data;
+        };
+
+        // trim gop list to the first gop found that has a matching pts with a gop in the list
+        // of gopsToAlignWith starting from the START of the list
+        this.alignGopsAtStart_ = function (gops) {
+          var alignIndex, gopIndex, align, gop, byteLength, nalCount, duration, alignedGops;
+
+          byteLength = gops.byteLength;
+          nalCount = gops.nalCount;
+          duration = gops.duration;
+          alignIndex = gopIndex = 0;
+
+          while (alignIndex < gopsToAlignWith.length && gopIndex < gops.length) {
+            align = gopsToAlignWith[alignIndex];
+            gop = gops[gopIndex];
+
+            if (align.pts === gop.pts) {
+              break;
+            }
+
+            if (gop.pts > align.pts) {
+              // this current gop starts after the current gop we want to align on, so increment
+              // align index
+              alignIndex++;
+              continue;
+            }
+
+            // current gop starts before the current gop we want to align on. so increment gop
+            // index
+            gopIndex++;
+            byteLength -= gop.byteLength;
+            nalCount -= gop.nalCount;
+            duration -= gop.duration;
+          }
+
+          if (gopIndex === 0) {
+            // no gops to trim
+            return gops;
+          }
+
+          if (gopIndex === gops.length) {
+            // all gops trimmed, skip appending all gops
+            return null;
+          }
+
+          alignedGops = gops.slice(gopIndex);
+          alignedGops.byteLength = byteLength;
+          alignedGops.duration = duration;
+          alignedGops.nalCount = nalCount;
+          alignedGops.pts = alignedGops[0].pts;
+          alignedGops.dts = alignedGops[0].dts;
+
+          return alignedGops;
+        };
+
+        // trim gop list to the first gop found that has a matching pts with a gop in the list
+        // of gopsToAlignWith starting from the END of the list
+        this.alignGopsAtEnd_ = function (gops) {
+          var alignIndex, gopIndex, align, gop, alignEndIndex, matchFound;
+
+          alignIndex = gopsToAlignWith.length - 1;
+          gopIndex = gops.length - 1;
+          alignEndIndex = null;
+          matchFound = false;
+
+          while (alignIndex >= 0 && gopIndex >= 0) {
+            align = gopsToAlignWith[alignIndex];
+            gop = gops[gopIndex];
+
+            if (align.pts === gop.pts) {
+              matchFound = true;
+              break;
+            }
+
+            if (align.pts > gop.pts) {
+              alignIndex--;
+              continue;
+            }
+
+            if (alignIndex === gopsToAlignWith.length - 1) {
+              // gop.pts is greater than the last alignment candidate. If no match is found
+              // by the end of this loop, we still want to append gops that come after this
+              // point
+              alignEndIndex = gopIndex;
+            }
+
+            gopIndex--;
+          }
+
+          if (!matchFound && alignEndIndex === null) {
+            return null;
+          }
+
+          var trimIndex;
+
+          if (matchFound) {
+            trimIndex = gopIndex;
+          } else {
+            trimIndex = alignEndIndex;
+          }
+
+          if (trimIndex === 0) {
+            return gops;
+          }
+
+          var alignedGops = gops.slice(trimIndex);
+          var metadata = alignedGops.reduce(function (total, gop) {
+            total.byteLength += gop.byteLength;
+            total.duration += gop.duration;
+            total.nalCount += gop.nalCount;
+            return total;
+          }, {byteLength: 0, duration: 0, nalCount: 0});
+
+          alignedGops.byteLength = metadata.byteLength;
+          alignedGops.duration = metadata.duration;
+          alignedGops.nalCount = metadata.nalCount;
+          alignedGops.pts = alignedGops[0].pts;
+          alignedGops.dts = alignedGops[0].dts;
+
+          return alignedGops;
+        };
+
+        this.alignGopsWith = function (newGopsToAlignWith) {
+          gopsToAlignWith = newGopsToAlignWith;
+        };
+      };
+
+      _VideoSegmentStream.prototype = new stream();
+
+      /**
+       * Store information about the start and end of the track and the
+       * duration for each frame/sample we process in order to calculate
+       * the baseMediaDecodeTime
+       */
+      collectDtsInfo = function collectDtsInfo(track, data) {
+        if (typeof data.pts === 'number') {
+          if (track.timelineStartInfo.pts === undefined) {
+            track.timelineStartInfo.pts = data.pts;
+          }
+
+          if (track.minSegmentPts === undefined) {
+            track.minSegmentPts = data.pts;
+          } else {
+            track.minSegmentPts = Math.min(track.minSegmentPts, data.pts);
+          }
+
+          if (track.maxSegmentPts === undefined) {
+            track.maxSegmentPts = data.pts;
+          } else {
+            track.maxSegmentPts = Math.max(track.maxSegmentPts, data.pts);
+          }
+        }
+
+        if (typeof data.dts === 'number') {
+          if (track.timelineStartInfo.dts === undefined) {
+            track.timelineStartInfo.dts = data.dts;
+          }
+
+          if (track.minSegmentDts === undefined) {
+            track.minSegmentDts = data.dts;
+          } else {
+            track.minSegmentDts = Math.min(track.minSegmentDts, data.dts);
+          }
+
+          if (track.maxSegmentDts === undefined) {
+            track.maxSegmentDts = data.dts;
+          } else {
+            track.maxSegmentDts = Math.max(track.maxSegmentDts, data.dts);
+          }
+        }
+      };
+
+      /**
+       * Clear values used to calculate the baseMediaDecodeTime between
+       * tracks
+       */
+      clearDtsInfo = function clearDtsInfo(track) {
+        delete track.minSegmentDts;
+        delete track.maxSegmentDts;
+        delete track.minSegmentPts;
+        delete track.maxSegmentPts;
+      };
+
+      /**
+       * Calculate the track's baseMediaDecodeTime based on the earliest
+       * DTS the transmuxer has ever seen and the minimum DTS for the
+       * current track
+       * @param track {object} track metadata configuration
+       * @param keepOriginalTimestamps {boolean} If true, keep the timestamps
+       *        in the source; false to adjust the first segment to start at 0.
+       */
+      calculateTrackBaseMediaDecodeTime = function calculateTrackBaseMediaDecodeTime(track, keepOriginalTimestamps) {
+        var baseMediaDecodeTime,
+          scale,
+          minSegmentDts = track.minSegmentDts;
+
+        // Optionally adjust the time so the first segment starts at zero.
+        if (!keepOriginalTimestamps) {
+          minSegmentDts -= track.timelineStartInfo.dts;
+        }
+
+        // track.timelineStartInfo.baseMediaDecodeTime is the location, in time, where
+        // we want the start of the first segment to be placed
+        baseMediaDecodeTime = track.timelineStartInfo.baseMediaDecodeTime;
+
+        // Add to that the distance this segment is from the very first
+        baseMediaDecodeTime += minSegmentDts;
+
+        // baseMediaDecodeTime must not become negative
+        baseMediaDecodeTime = Math.max(0, baseMediaDecodeTime);
+
+        if (track.type === 'audio') {
+          // Audio has a different clock equal to the sampling_rate so we need to
+          // scale the PTS values into the clock rate of the track
+          scale = track.samplerate / ONE_SECOND_IN_TS$1;
+          baseMediaDecodeTime *= scale;
+          baseMediaDecodeTime = Math.floor(baseMediaDecodeTime);
+        }
+
+        return baseMediaDecodeTime;
+      };
+
+      /**
+       * A Stream that can combine multiple streams (ie. audio & video)
+       * into a single output segment for MSE. Also supports audio-only
+       * and video-only streams.
+       */
+      _CoalesceStream = function CoalesceStream(options, metadataStream) {
+        // Number of Tracks per output segment
+        // If greater than 1, we combine multiple
+        // tracks into a single segment
+        this.numberOfTracks = 0;
+        this.metadataStream = metadataStream;
+
+        if (typeof options.remux !== 'undefined') {
+          this.remuxTracks = !!options.remux;
+        } else {
+          this.remuxTracks = true;
+        }
+
+        this.pendingTracks = [];
+        this.videoTrack = null;
+        this.pendingBoxes = [];
+        this.pendingCaptions = [];
+        this.pendingMetadata = [];
+        this.pendingBytes = 0;
+        this.emittedTracks = 0;
+
+        _CoalesceStream.prototype.init.call(this);
+
+        // Take output from multiple
+        this.push = function (output) {
+          // buffer incoming captions until the associated video segment
+          // finishes
+          if (output.text) {
+            return this.pendingCaptions.push(output);
+          }
+          // buffer incoming id3 tags until the final flush
+          if (output.frames) {
+            return this.pendingMetadata.push(output);
+          }
+
+          // Add this track to the list of pending tracks and store
+          // important information required for the construction of
+          // the final segment
+          this.pendingTracks.push(output.track);
+          this.pendingBoxes.push(output.boxes);
+          this.pendingBytes += output.boxes.byteLength;
+
+          if (output.track.type === 'video') {
+            this.videoTrack = output.track;
+          }
+          if (output.track.type === 'audio') {
+            this.audioTrack = output.track;
+          }
+        };
+      };
+
+      _CoalesceStream.prototype = new stream();
+      _CoalesceStream.prototype.flush = function (flushSource) {
+        var offset = 0,
+          event = {
+            captions: [],
+            captionStreams: {},
+            metadata: [],
+            info: {}
+          },
+          caption,
+          id3,
+          initSegment,
+          timelineStartPts = 0,
+          i;
+
+        if (this.pendingTracks.length < this.numberOfTracks) {
+          if (flushSource !== 'VideoSegmentStream' && flushSource !== 'AudioSegmentStream') {
+            // Return because we haven't received a flush from a data-generating
+            // portion of the segment (meaning that we have only recieved meta-data
+            // or captions.)
+            return;
+          } else if (this.remuxTracks) {
+            // Return until we have enough tracks from the pipeline to remux (if we
+            // are remuxing audio and video into a single MP4)
+            return;
+          } else if (this.pendingTracks.length === 0) {
+            // In the case where we receive a flush without any data having been
+            // received we consider it an emitted track for the purposes of coalescing
+            // `done` events.
+            // We do this for the case where there is an audio and video track in the
+            // segment but no audio data. (seen in several playlists with alternate
+            // audio tracks and no audio present in the main TS segments.)
+            this.emittedTracks++;
+
+            if (this.emittedTracks >= this.numberOfTracks) {
+              this.trigger('done');
+              this.emittedTracks = 0;
+            }
+            return;
+          }
+        }
+
+        if (this.videoTrack) {
+          timelineStartPts = this.videoTrack.timelineStartInfo.pts;
+          VIDEO_PROPERTIES.forEach(function (prop) {
+            event.info[prop] = this.videoTrack[prop];
+          }, this);
+        } else if (this.audioTrack) {
+          timelineStartPts = this.audioTrack.timelineStartInfo.pts;
+          AUDIO_PROPERTIES.forEach(function (prop) {
+            event.info[prop] = this.audioTrack[prop];
+          }, this);
+        }
+
+        if (this.pendingTracks.length === 1) {
+          event.type = this.pendingTracks[0].type;
+        } else {
+          event.type = 'combined';
+        }
+
+        this.emittedTracks += this.pendingTracks.length;
+
+        initSegment = mp4Generator.initSegment(this.pendingTracks);
+
+        // Create a new typed array to hold the init segment
+        event.initSegment = new Uint8Array(initSegment.byteLength);
+
+        // Create an init segment containing a moov
+        // and track definitions
+        event.initSegment.set(initSegment);
+
+        // Create a new typed array to hold the moof+mdats
+        event.data = new Uint8Array(this.pendingBytes);
+
+        // Append each moof+mdat (one per track) together
+        for (i = 0; i < this.pendingBoxes.length; i++) {
+          event.data.set(this.pendingBoxes[i], offset);
+          offset += this.pendingBoxes[i].byteLength;
+        }
+
+        // Translate caption PTS times into second offsets into the
+        // video timeline for the segment, and add track info
+        for (i = 0; i < this.pendingCaptions.length; i++) {
+          caption = this.pendingCaptions[i];
+          caption.startTime = caption.startPts - timelineStartPts;
+          caption.startTime /= 90e3;
+          caption.endTime = caption.endPts - timelineStartPts;
+          caption.endTime /= 90e3;
+          event.captionStreams[caption.stream] = true;
+          event.captions.push(caption);
+        }
+
+        // Translate ID3 frame PTS times into second offsets into the
+        // video timeline for the segment
+        for (i = 0; i < this.pendingMetadata.length; i++) {
+          id3 = this.pendingMetadata[i];
+          id3.cueTime = id3.pts - timelineStartPts;
+          id3.cueTime /= 90e3;
+          event.metadata.push(id3);
+        }
+        // We add this to every single emitted segment even though we only need
+        // it for the first
+        event.metadata.dispatchType = this.metadataStream.dispatchType;
+
+        // Reset stream state
+        this.pendingTracks.length = 0;
+        this.videoTrack = null;
+        this.pendingBoxes.length = 0;
+        this.pendingCaptions.length = 0;
+        this.pendingBytes = 0;
+        this.pendingMetadata.length = 0;
+
+        // Emit the built segment
+        this.trigger('data', event);
+
+        // Only emit `done` if all tracks have been flushed and emitted
+        if (this.emittedTracks >= this.numberOfTracks) {
+          this.trigger('done');
+          this.emittedTracks = 0;
+        }
+      };
+      /**
+       * A Stream that expects MP2T binary data as input and produces
+       * corresponding media segments, suitable for use with Media Source
+       * Extension (MSE) implementations that support the ISO BMFF byte
+       * stream format, like Chrome.
+       */
+      _Transmuxer = function Transmuxer(options) {
+        var self = this,
+          hasFlushed = true,
+          videoTrack,
+          audioTrack;
+
+        _Transmuxer.prototype.init.call(this);
+
+        options = options || {};
+        this.baseMediaDecodeTime = options.baseMediaDecodeTime || 0;
+        this.transmuxPipeline_ = {};
+
+        this.setupAacPipeline = function () {
+          var pipeline = {};
+          this.transmuxPipeline_ = pipeline;
+
+          pipeline.type = 'aac';
+          pipeline.metadataStream = new m2ts_1.MetadataStream();
+
+          // set up the parsing pipeline
+          pipeline.aacStream = new aac();
+          pipeline.audioTimestampRolloverStream = new m2ts_1.TimestampRolloverStream('audio');
+          pipeline.timedMetadataTimestampRolloverStream = new m2ts_1.TimestampRolloverStream('timed-metadata');
+          pipeline.adtsStream = new adts();
+          pipeline.coalesceStream = new _CoalesceStream(options, pipeline.metadataStream);
+          pipeline.headOfPipeline = pipeline.aacStream;
+
+          pipeline.aacStream.pipe(pipeline.audioTimestampRolloverStream).pipe(pipeline.adtsStream);
+          pipeline.aacStream.pipe(pipeline.timedMetadataTimestampRolloverStream).pipe(pipeline.metadataStream).pipe(pipeline.coalesceStream);
+
+          pipeline.metadataStream.on('timestamp', function (frame) {
+            pipeline.aacStream.setTimestamp(frame.timeStamp);
+          });
+
+          pipeline.aacStream.on('data', function (data) {
+            if (data.type === 'timed-metadata' && !pipeline.audioSegmentStream) {
+              audioTrack = audioTrack || {
+                timelineStartInfo: {
+                  baseMediaDecodeTime: self.baseMediaDecodeTime
+                },
+                codec: 'adts',
+                type: 'audio'
+              };
+              // hook up the audio segment stream to the first track with aac data
+              pipeline.coalesceStream.numberOfTracks++;
+              pipeline.audioSegmentStream = new _AudioSegmentStream(audioTrack, options);
+              // Set up the final part of the audio pipeline
+              pipeline.adtsStream.pipe(pipeline.audioSegmentStream).pipe(pipeline.coalesceStream);
+            }
+          });
+
+          // Re-emit any data coming from the coalesce stream to the outside world
+          pipeline.coalesceStream.on('data', this.trigger.bind(this, 'data'));
+          // Let the consumer know we have finished flushing the entire pipeline
+          pipeline.coalesceStream.on('done', this.trigger.bind(this, 'done'));
+        };
+
+        this.setupTsPipeline = function () {
+          var pipeline = {};
+          this.transmuxPipeline_ = pipeline;
+
+          pipeline.type = 'ts';
+          pipeline.metadataStream = new m2ts_1.MetadataStream();
+
+          // set up the parsing pipeline
+          pipeline.packetStream = new m2ts_1.TransportPacketStream();
+          pipeline.parseStream = new m2ts_1.TransportParseStream();
+          pipeline.elementaryStream = new m2ts_1.ElementaryStream();
+          pipeline.videoTimestampRolloverStream = new m2ts_1.TimestampRolloverStream('video');
+          pipeline.audioTimestampRolloverStream = new m2ts_1.TimestampRolloverStream('audio');
+          pipeline.timedMetadataTimestampRolloverStream = new m2ts_1.TimestampRolloverStream('timed-metadata');
+          pipeline.adtsStream = new adts();
+          pipeline.h264Stream = new H264Stream();
+          pipeline.captionStream = new m2ts_1.CaptionStream();
+          pipeline.coalesceStream = new _CoalesceStream(options, pipeline.metadataStream);
+          pipeline.headOfPipeline = pipeline.packetStream;
+
+          // disassemble MPEG2-TS packets into elementary streams
+          pipeline.packetStream.pipe(pipeline.parseStream).pipe(pipeline.elementaryStream);
+
+          // !!THIS ORDER IS IMPORTANT!!
+          // demux the streams
+          pipeline.elementaryStream.pipe(pipeline.videoTimestampRolloverStream).pipe(pipeline.h264Stream);
+          pipeline.elementaryStream.pipe(pipeline.audioTimestampRolloverStream).pipe(pipeline.adtsStream);
+
+          pipeline.elementaryStream.pipe(pipeline.timedMetadataTimestampRolloverStream).pipe(pipeline.metadataStream).pipe(pipeline.coalesceStream);
+
+          // Hook up CEA-608/708 caption stream
+          pipeline.h264Stream.pipe(pipeline.captionStream).pipe(pipeline.coalesceStream);
+
+          pipeline.elementaryStream.on('data', function (data) {
+            var i;
+
+            if (data.type === 'metadata') {
+              i = data.tracks.length;
+
+              // scan the tracks listed in the metadata
+              while (i--) {
+                if (!videoTrack && data.tracks[i].type === 'video') {
+                  videoTrack = data.tracks[i];
+                  videoTrack.timelineStartInfo.baseMediaDecodeTime = self.baseMediaDecodeTime;
+                } else if (!audioTrack && data.tracks[i].type === 'audio') {
+                  audioTrack = data.tracks[i];
+                  audioTrack.timelineStartInfo.baseMediaDecodeTime = self.baseMediaDecodeTime;
+                }
+              }
+
+              // hook up the video segment stream to the first track with h264 data
+              if (videoTrack && !pipeline.videoSegmentStream) {
+                pipeline.coalesceStream.numberOfTracks++;
+                pipeline.videoSegmentStream = new _VideoSegmentStream(videoTrack, options);
+
+                pipeline.videoSegmentStream.on('timelineStartInfo', function (timelineStartInfo) {
+                  // When video emits timelineStartInfo data after a flush, we forward that
+                  // info to the AudioSegmentStream, if it exists, because video timeline
+                  // data takes precedence.
+                  if (audioTrack) {
+                    audioTrack.timelineStartInfo = timelineStartInfo;
+                    // On the first segment we trim AAC frames that exist before the
+                    // very earliest DTS we have seen in video because Chrome will
+                    // interpret any video track with a baseMediaDecodeTime that is
+                    // non-zero as a gap.
+                    pipeline.audioSegmentStream.setEarliestDts(timelineStartInfo.dts);
+                  }
+                });
+
+                pipeline.videoSegmentStream.on('processedGopsInfo', self.trigger.bind(self, 'gopInfo'));
+
+                pipeline.videoSegmentStream.on('baseMediaDecodeTime', function (baseMediaDecodeTime) {
+                  if (audioTrack) {
+                    pipeline.audioSegmentStream.setVideoBaseMediaDecodeTime(baseMediaDecodeTime);
+                  }
+                });
+
+                // Set up the final part of the video pipeline
+                pipeline.h264Stream.pipe(pipeline.videoSegmentStream).pipe(pipeline.coalesceStream);
+              }
+
+              if (audioTrack && !pipeline.audioSegmentStream) {
+                // hook up the audio segment stream to the first track with aac data
+                pipeline.coalesceStream.numberOfTracks++;
+                pipeline.audioSegmentStream = new _AudioSegmentStream(audioTrack, options);
+
+                // Set up the final part of the audio pipeline
+                pipeline.adtsStream.pipe(pipeline.audioSegmentStream).pipe(pipeline.coalesceStream);
+              }
+            }
+          });
+
+          // Re-emit any data coming from the coalesce stream to the outside world
+          pipeline.coalesceStream.on('data', this.trigger.bind(this, 'data'));
+          // Let the consumer know we have finished flushing the entire pipeline
+          pipeline.coalesceStream.on('done', this.trigger.bind(this, 'done'));
+        };
+
+        // hook up the segment streams once track metadata is delivered
+        this.setBaseMediaDecodeTime = function (baseMediaDecodeTime) {
+          var pipeline = this.transmuxPipeline_;
+
+          this.baseMediaDecodeTime = baseMediaDecodeTime;
+          if (audioTrack) {
+            audioTrack.timelineStartInfo.dts = undefined;
+            audioTrack.timelineStartInfo.pts = undefined;
+            clearDtsInfo(audioTrack);
+            audioTrack.timelineStartInfo.baseMediaDecodeTime = baseMediaDecodeTime;
+            if (pipeline.audioTimestampRolloverStream) {
+              pipeline.audioTimestampRolloverStream.discontinuity();
+            }
+          }
+          if (videoTrack) {
+            if (pipeline.videoSegmentStream) {
+              pipeline.videoSegmentStream.gopCache_ = [];
+              pipeline.videoTimestampRolloverStream.discontinuity();
+            }
+            videoTrack.timelineStartInfo.dts = undefined;
+            videoTrack.timelineStartInfo.pts = undefined;
+            clearDtsInfo(videoTrack);
+            pipeline.captionStream.reset();
+            videoTrack.timelineStartInfo.baseMediaDecodeTime = baseMediaDecodeTime;
+          }
+
+          if (pipeline.timedMetadataTimestampRolloverStream) {
+            pipeline.timedMetadataTimestampRolloverStream.discontinuity();
+          }
+        };
+
+        this.setAudioAppendStart = function (timestamp) {
+          if (audioTrack) {
+            this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(timestamp);
+          }
+        };
+
+        this.alignGopsWith = function (gopsToAlignWith) {
+          if (videoTrack && this.transmuxPipeline_.videoSegmentStream) {
+            this.transmuxPipeline_.videoSegmentStream.alignGopsWith(gopsToAlignWith);
+          }
+        };
+
+        // feed incoming data to the front of the parsing pipeline
+        this.push = function (data) {
+          if (hasFlushed) {
+            var isAac = isLikelyAacData(data);
+
+            if (isAac && this.transmuxPipeline_.type !== 'aac') {
+              this.setupAacPipeline();
+            } else if (!isAac && this.transmuxPipeline_.type !== 'ts') {
+              this.setupTsPipeline();
+            }
+            hasFlushed = false;
+          }
+          this.transmuxPipeline_.headOfPipeline.push(data);
+        };
+
+        // flush any buffered data
+        this.flush = function () {
+          hasFlushed = true;
+          // Start at the top of the pipeline and flush all pending work
+          this.transmuxPipeline_.headOfPipeline.flush();
+        };
+
+        // Caption data has to be reset when seeking outside buffered range
+        this.resetCaptions = function () {
+          if (this.transmuxPipeline_.captionStream) {
+            this.transmuxPipeline_.captionStream.reset();
+          }
+        };
+      };
+      _Transmuxer.prototype = new stream();
+
+      var transmuxer = {
+        Transmuxer: _Transmuxer,
+        VideoSegmentStream: _VideoSegmentStream,
+        AudioSegmentStream: _AudioSegmentStream,
+        AUDIO_PROPERTIES: AUDIO_PROPERTIES,
+        VIDEO_PROPERTIES: VIDEO_PROPERTIES
+      };
+
+      var mp4 = {
+        generator: mp4Generator,
+        Transmuxer: transmuxer.Transmuxer,
+        AudioSegmentStream: transmuxer.AudioSegmentStream,
+        VideoSegmentStream: transmuxer.VideoSegmentStream
+      };
+
+      var classCallCheck$$1 = function classCallCheck$$1(instance, Constructor) {
+        if (!(instance instanceof Constructor)) {
+          throw new TypeError("Cannot call a class as a function");
+        }
+      };
+
+      var createClass$$1 = function () {
+        function defineProperties(target, props) {
+          for (var i = 0; i < props.length; i++) {
+            var descriptor = props[i];
+            descriptor.enumerable = descriptor.enumerable || false;
+            descriptor.configurable = true;
+            if ("value" in descriptor) descriptor.writable = true;
+            Object.defineProperty(target, descriptor.key, descriptor);
+          }
+        }
+
+        return function (Constructor, protoProps, staticProps) {
+          if (protoProps) defineProperties(Constructor.prototype, protoProps);
+          if (staticProps) defineProperties(Constructor, staticProps);
+          return Constructor;
+        };
+      }();
+
+      /**
+       * @file transmuxer-worker.js
+       */
+
+      /**
+       * Re-emits transmuxer events by converting them into messages to the
+       * world outside the worker.
+       *
+       * @param {Object} transmuxer the transmuxer to wire events on
+       * @private
+       */
+      var wireTransmuxerEvents = function wireTransmuxerEvents(transmuxer) {
+        transmuxer.on('data', function (segment) {
+          // transfer ownership of the underlying ArrayBuffer
+          // instead of doing a copy to save memory
+          // ArrayBuffers are transferable but generic TypedArrays are not
+          // @link https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers#Passing_data_by_transferring_ownership_(transferable_objects)
+          var initArray = segment.initSegment;
+
+          segment.initSegment = {
+            data: initArray.buffer,
+            byteOffset: initArray.byteOffset,
+            byteLength: initArray.byteLength
+          };
+
+          var typedArray = segment.data;
+
+          segment.data = typedArray.buffer;
+          window_1$$1.postMessage({
+            action: 'data',
+            segment: segment,
+            byteOffset: typedArray.byteOffset,
+            byteLength: typedArray.byteLength
+          }, [segment.data]);
+        });
+
+        if (transmuxer.captionStream) {
+          transmuxer.captionStream.on('data', function (caption) {
+            window_1$$1.postMessage({
+              action: 'caption',
+              data: caption
+            });
+          });
+        }
+
+        transmuxer.on('done', function (data) {
+          window_1$$1.postMessage({action: 'done'});
+        });
+
+        transmuxer.on('gopInfo', function (gopInfo) {
+          window_1$$1.postMessage({
+            action: 'gopInfo',
+            gopInfo: gopInfo
+          });
+        });
+      };
+
+      /**
+       * All incoming messages route through this hash. If no function exists
+       * to handle an incoming message, then we ignore the message.
+       *
+       * @class MessageHandlers
+       * @param {Object} options the options to initialize with
+       */
+
+      var MessageHandlers = function () {
+        function MessageHandlers(options) {
+          classCallCheck$$1(this, MessageHandlers);
+
+          this.options = options || {};
+          this.init();
+        }
+
+        /**
+         * initialize our web worker and wire all the events.
+         */
+
+        createClass$$1(MessageHandlers, [{
+          key: 'init',
+          value: function init() {
+            if (this.transmuxer) {
+              this.transmuxer.dispose();
+            }
+            this.transmuxer = new mp4.Transmuxer(this.options);
+            wireTransmuxerEvents(this.transmuxer);
+          }
+
+          /**
+           * Adds data (a ts segment) to the start of the transmuxer pipeline for
+           * processing.
+           *
+           * @param {ArrayBuffer} data data to push into the muxer
+           */
+
+        }, {
+          key: 'push',
+          value: function push(data) {
+            // Cast array buffer to correct type for transmuxer
+            var segment = new Uint8Array(data.data, data.byteOffset, data.byteLength);
+
+            this.transmuxer.push(segment);
+          }
+
+          /**
+           * Recreate the transmuxer so that the next segment added via `push`
+           * start with a fresh transmuxer.
+           */
+
+        }, {
+          key: 'reset',
+          value: function reset() {
+            this.init();
+          }
+
+          /**
+           * Set the value that will be used as the `baseMediaDecodeTime` time for the
+           * next segment pushed in. Subsequent segments will have their `baseMediaDecodeTime`
+           * set relative to the first based on the PTS values.
+           *
+           * @param {Object} data used to set the timestamp offset in the muxer
+           */
+
+        }, {
+          key: 'setTimestampOffset',
+          value: function setTimestampOffset(data) {
+            var timestampOffset = data.timestampOffset || 0;
+
+            this.transmuxer.setBaseMediaDecodeTime(Math.round(timestampOffset * 90000));
+          }
+        }, {
+          key: 'setAudioAppendStart',
+          value: function setAudioAppendStart(data) {
+            this.transmuxer.setAudioAppendStart(Math.ceil(data.appendStart * 90000));
+          }
+
+          /**
+           * Forces the pipeline to finish processing the last segment and emit it's
+           * results.
+           *
+           * @param {Object} data event data, not really used
+           */
+
+        }, {
+          key: 'flush',
+          value: function flush(data) {
+            this.transmuxer.flush();
+          }
+        }, {
+          key: 'resetCaptions',
+          value: function resetCaptions() {
+            this.transmuxer.resetCaptions();
+          }
+        }, {
+          key: 'alignGopsWith',
+          value: function alignGopsWith(data) {
+            this.transmuxer.alignGopsWith(data.gopsToAlignWith.slice());
+          }
+        }]);
+        return MessageHandlers;
+      }();
+
+      /**
+       * Our web wroker interface so that things can talk to mux.js
+       * that will be running in a web worker. the scope is passed to this by
+       * webworkify.
+       *
+       * @param {Object} self the scope for the web worker
+       */
+
+      var TransmuxerWorker = function TransmuxerWorker(self) {
+        self.onmessage = function (event) {
+          if (event.data.action === 'init' && event.data.options) {
+            this.messageHandlers = new MessageHandlers(event.data.options);
+            return;
+          }
+
+          if (!this.messageHandlers) {
+            this.messageHandlers = new MessageHandlers();
+          }
+
+          if (event.data && event.data.action && event.data.action !== 'init') {
+            if (this.messageHandlers[event.data.action]) {
+              this.messageHandlers[event.data.action](event.data);
+            }
+          }
+        };
+      };
+
+      var transmuxerWorker = new TransmuxerWorker(self);
+
+      return transmuxerWorker;
+    }();
+  });
+
+  /**
+   * @file codec-utils.js
+   */
+
+  /**
+   * Check if a codec string refers to an audio codec.
+   *
+   * @param {String} codec codec string to check
+   * @return {Boolean} if this is an audio codec
+   * @private
+   */
+  var isAudioCodec = function isAudioCodec(codec) {
+    return (/mp4a\.\d+.\d+/i.test(codec)
+    );
+  };
+
+  /**
+   * Check if a codec string refers to a video codec.
+   *
+   * @param {String} codec codec string to check
+   * @return {Boolean} if this is a video codec
+   * @private
+   */
+  var isVideoCodec = function isVideoCodec(codec) {
+    return (/avc1\.[\da-f]+/i.test(codec)
+    );
+  };
+
+  /**
+   * Parse a content type header into a type and parameters
+   * object
+   *
+   * @param {String} type the content type header
+   * @return {Object} the parsed content-type
+   * @private
+   */
+  var parseContentType = function parseContentType(type) {
+    var object = {type: '', parameters: {}};
+    var parameters = type.trim().split(';');
+
+    // first parameter should always be content-type
+    object.type = parameters.shift().trim();
+    parameters.forEach(function (parameter) {
+      var pair = parameter.trim().split('=');
+
+      if (pair.length > 1) {
+        var name = pair[0].replace(/"/g, '').trim();
+        var value = pair[1].replace(/"/g, '').trim();
+
+        object.parameters[name] = value;
+      }
+    });
+
+    return object;
+  };
+
+  /**
+   * Replace the old apple-style `avc1.<dd>.<dd>` codec string with the standard
+   * `avc1.<hhhhhh>`
+   *
+   * @param {Array} codecs an array of codec strings to fix
+   * @return {Array} the translated codec array
+   * @private
+   */
+  var translateLegacyCodecs = function translateLegacyCodecs(codecs) {
+    return codecs.map(function (codec) {
+      return codec.replace(/avc1\.(\d+)\.(\d+)/i, function (orig, profile, avcLevel) {
+        var profileHex = ('00' + Number(profile).toString(16)).slice(-2);
+        var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);
+
+        return 'avc1.' + profileHex + '00' + avcLevelHex;
+      });
+    });
+  };
+
+  /**
+   * @file virtual-source-buffer.js
+   */
+
+    // We create a wrapper around the SourceBuffer so that we can manage the
+    // state of the `updating` property manually. We have to do this because
+    // Firefox changes `updating` to false long before triggering `updateend`
+    // events and that was causing strange problems in videojs-contrib-hls
+  var makeWrappedSourceBuffer = function makeWrappedSourceBuffer(mediaSource, mimeType) {
+      var sourceBuffer = mediaSource.addSourceBuffer(mimeType);
+      var wrapper = Object.create(null);
+
+      wrapper.updating = false;
+      wrapper.realBuffer_ = sourceBuffer;
+
+      var _loop = function _loop(key) {
+        if (typeof sourceBuffer[key] === 'function') {
+          wrapper[key] = function () {
+            return sourceBuffer[key].apply(sourceBuffer, arguments);
+          };
+        } else if (typeof wrapper[key] === 'undefined') {
+          Object.defineProperty(wrapper, key, {
+            get: function get$$1() {
+              return sourceBuffer[key];
+            },
+            set: function set$$1(v) {
+              return sourceBuffer[key] = v;
+            }
+          });
+        }
+      };
+
+      for (var key in sourceBuffer) {
+        _loop(key);
+      }
+
+      return wrapper;
+    };
+
+  /**
+   * Returns a list of gops in the buffer that have a pts value of 3 seconds or more in
+   * front of current time.
+   *
+   * @param {Array} buffer
+   *        The current buffer of gop information
+   * @param {Player} player
+   *        The player instance
+   * @param {Double} mapping
+   *        Offset to map display time to stream presentation time
+   * @return {Array}
+   *         List of gops considered safe to append over
+   */
+  var gopsSafeToAlignWith = function gopsSafeToAlignWith(buffer, player, mapping) {
+    if (!player || !buffer.length) {
+      return [];
+    }
+
+    // pts value for current time + 3 seconds to give a bit more wiggle room
+    var currentTimePts = Math.ceil((player.currentTime() - mapping + 3) * 90000);
+
+    var i = void 0;
+
+    for (i = 0; i < buffer.length; i++) {
+      if (buffer[i].pts > currentTimePts) {
+        break;
+      }
+    }
+
+    return buffer.slice(i);
+  };
+
+  /**
+   * Appends gop information (timing and byteLength) received by the transmuxer for the
+   * gops appended in the last call to appendBuffer
+   *
+   * @param {Array} buffer
+   *        The current buffer of gop information
+   * @param {Array} gops
+   *        List of new gop information
+   * @param {boolean} replace
+   *        If true, replace the buffer with the new gop information. If false, append the
+   *        new gop information to the buffer in the right location of time.
+   * @return {Array}
+   *         Updated list of gop information
+   */
+  var updateGopBuffer = function updateGopBuffer(buffer, gops, replace) {
+    if (!gops.length) {
+      return buffer;
+    }
+
+    if (replace) {
+      // If we are in safe append mode, then completely overwrite the gop buffer
+      // with the most recent appeneded data. This will make sure that when appending
+      // future segments, we only try to align with gops that are both ahead of current
+      // time and in the last segment appended.
+      return gops.slice();
+    }
+
+    var start = gops[0].pts;
+
+    var i = 0;
+
+    for (i; i < buffer.length; i++) {
+      if (buffer[i].pts >= start) {
+        break;
+      }
+    }
+
+    return buffer.slice(0, i).concat(gops);
+  };
+
+  /**
+   * Removes gop information in buffer that overlaps with provided start and end
+   *
+   * @param {Array} buffer
+   *        The current buffer of gop information
+   * @param {Double} start
+   *        position to start the remove at
+   * @param {Double} end
+   *        position to end the remove at
+   * @param {Double} mapping
+   *        Offset to map display time to stream presentation time
+   */
+  var removeGopBuffer = function removeGopBuffer(buffer, start, end, mapping) {
+    var startPts = Math.ceil((start - mapping) * 90000);
+    var endPts = Math.ceil((end - mapping) * 90000);
+    var updatedBuffer = buffer.slice();
+
+    var i = buffer.length;
+
+    while (i--) {
+      if (buffer[i].pts <= endPts) {
+        break;
+      }
+    }
+
+    if (i === -1) {
+      // no removal because end of remove range is before start of buffer
+      return updatedBuffer;
+    }
+
+    var j = i + 1;
+
+    while (j--) {
+      if (buffer[j].pts <= startPts) {
+        break;
+      }
+    }
+
+    // clamp remove range start to 0 index
+    j = Math.max(j, 0);
+
+    updatedBuffer.splice(j, i - j + 1);
+
+    return updatedBuffer;
+  };
+
+  /**
+   * VirtualSourceBuffers exist so that we can transmux non native formats
+   * into a native format, but keep the same api as a native source buffer.
+   * It creates a transmuxer, that works in its own thread (a web worker) and
+   * that transmuxer muxes the data into a native format. VirtualSourceBuffer will
+   * then send all of that data to the naive sourcebuffer so that it is
+   * indestinguishable from a natively supported format.
+   *
+   * @param {HtmlMediaSource} mediaSource the parent mediaSource
+   * @param {Array} codecs array of codecs that we will be dealing with
+   * @class VirtualSourceBuffer
+   * @extends video.js.EventTarget
+   */
+
+  var VirtualSourceBuffer = function (_videojs$EventTarget) {
+    inherits(VirtualSourceBuffer, _videojs$EventTarget);
+
+    function VirtualSourceBuffer(mediaSource, codecs) {
+      classCallCheck(this, VirtualSourceBuffer);
+
+      var _this7 = possibleConstructorReturn(this, _videojs$EventTarget.call(this, videojs$1.EventTarget));
+
+      _this7.timestampOffset_ = 0;
+      _this7.pendingBuffers_ = [];
+      _this7.bufferUpdating_ = false;
+
+      _this7.mediaSource_ = mediaSource;
+      _this7.codecs_ = codecs;
+      _this7.audioCodec_ = null;
+      _this7.videoCodec_ = null;
+      _this7.audioDisabled_ = false;
+      _this7.appendAudioInitSegment_ = true;
+      _this7.gopBuffer_ = [];
+      _this7.timeMapping_ = 0;
+      _this7.safeAppend_ = videojs$1.browser.IE_VERSION >= 11;
+
+      var options = {
+        remux: false,
+        alignGopsAtEnd: _this7.safeAppend_
+      };
+
+      _this7.codecs_.forEach(function (codec) {
+        if (isAudioCodec(codec)) {
+          _this7.audioCodec_ = codec;
+        } else if (isVideoCodec(codec)) {
+          _this7.videoCodec_ = codec;
+        }
+      });
+
+      // append muxed segments to their respective native buffers as
+      // soon as they are available
+      _this7.transmuxer_ = new TransmuxWorker();
+      _this7.transmuxer_.postMessage({action: 'init', options: options});
+
+      _this7.transmuxer_.onmessage = function (event) {
+        if (event.data.action === 'data') {
+          return _this7.data_(event);
+        }
+
+        if (event.data.action === 'done') {
+          return _this7.done_(event);
+        }
+
+        if (event.data.action === 'gopInfo') {
+          return _this7.appendGopInfo_(event);
+        }
+      };
+
+      // this timestampOffset is a property with the side-effect of resetting
+      // baseMediaDecodeTime in the transmuxer on the setter
+      Object.defineProperty(_this7, 'timestampOffset', {
+        get: function get$$1() {
+          return this.timestampOffset_;
+        },
+        set: function set$$1(val) {
+          if (typeof val === 'number' && val >= 0) {
+            this.timestampOffset_ = val;
+            this.appendAudioInitSegment_ = true;
+
+            // reset gop buffer on timestampoffset as this signals a change in timeline
+            this.gopBuffer_.length = 0;
+            this.timeMapping_ = 0;
+
+            // We have to tell the transmuxer to set the baseMediaDecodeTime to
+            // the desired timestampOffset for the next segment
+            this.transmuxer_.postMessage({
+              action: 'setTimestampOffset',
+              timestampOffset: val
+            });
+          }
+        }
+      });
+
+      // setting the append window affects both source buffers
+      Object.defineProperty(_this7, 'appendWindowStart', {
+        get: function get$$1() {
+          return (this.videoBuffer_ || this.audioBuffer_).appendWindowStart;
+        },
+        set: function set$$1(start) {
+          if (this.videoBuffer_) {
+            this.videoBuffer_.appendWindowStart = start;
+          }
+          if (this.audioBuffer_) {
+            this.audioBuffer_.appendWindowStart = start;
+          }
+        }
+      });
+
+      // this buffer is "updating" if either of its native buffers are
+      Object.defineProperty(_this7, 'updating', {
+        get: function get$$1() {
+          return !!(this.bufferUpdating_ || !this.audioDisabled_ && this.audioBuffer_ && this.audioBuffer_.updating || this.videoBuffer_ && this.videoBuffer_.updating);
+        }
+      });
+
+      // the buffered property is the intersection of the buffered
+      // ranges of the native source buffers
+      Object.defineProperty(_this7, 'buffered', {
+        get: function get$$1() {
+          var start = null;
+          var end = null;
+          var arity = 0;
+          var extents = [];
+          var ranges = [];
+
+          // neither buffer has been created yet
+          if (!this.videoBuffer_ && !this.audioBuffer_) {
+            return videojs$1.createTimeRange();
+          }
+
+          // only one buffer is configured
+          if (!this.videoBuffer_) {
+            return this.audioBuffer_.buffered;
+          }
+          if (!this.audioBuffer_) {
+            return this.videoBuffer_.buffered;
+          }
+
+          // both buffers are configured
+          if (this.audioDisabled_) {
+            return this.videoBuffer_.buffered;
+          }
+
+          // both buffers are empty
+          if (this.videoBuffer_.buffered.length === 0 && this.audioBuffer_.buffered.length === 0) {
+            return videojs$1.createTimeRange();
+          }
+
+          // Handle the case where we have both buffers and create an
+          // intersection of the two
+          var videoBuffered = this.videoBuffer_.buffered;
+          var audioBuffered = this.audioBuffer_.buffered;
+          var count = videoBuffered.length;
+
+          // A) Gather up all start and end times
+          while (count--) {
+            extents.push({time: videoBuffered.start(count), type: 'start'});
+            extents.push({time: videoBuffered.end(count), type: 'end'});
+          }
+          count = audioBuffered.length;
+          while (count--) {
+            extents.push({time: audioBuffered.start(count), type: 'start'});
+            extents.push({time: audioBuffered.end(count), type: 'end'});
+          }
+          // B) Sort them by time
+          extents.sort(function (a, b) {
+            return a.time - b.time;
+          });
+
+          // C) Go along one by one incrementing arity for start and decrementing
+          //    arity for ends
+          for (count = 0; count < extents.length; count++) {
+            if (extents[count].type === 'start') {
+              arity++;
+
+              // D) If arity is ever incremented to 2 we are entering an
+              //    overlapping range
+              if (arity === 2) {
+                start = extents[count].time;
+              }
+            } else if (extents[count].type === 'end') {
+              arity--;
+
+              // E) If arity is ever decremented to 1 we leaving an
+              //    overlapping range
+              if (arity === 1) {
+                end = extents[count].time;
+              }
+            }
+
+            // F) Record overlapping ranges
+            if (start !== null && end !== null) {
+              ranges.push([start, end]);
+              start = null;
+              end = null;
+            }
+          }
+
+          return videojs$1.createTimeRanges(ranges);
+        }
+      });
+      return _this7;
+    }
+
+    /**
+     * When we get a data event from the transmuxer
+     * we call this function and handle the data that
+     * was sent to us
+     *
+     * @private
+     * @param {Event} event the data event from the transmuxer
+     */
+
+
+    VirtualSourceBuffer.prototype.data_ = function data_(event) {
+      var segment = event.data.segment;
+
+      // Cast ArrayBuffer to TypedArray
+      segment.data = new Uint8Array(segment.data, event.data.byteOffset, event.data.byteLength);
+
+      segment.initSegment = new Uint8Array(segment.initSegment.data, segment.initSegment.byteOffset, segment.initSegment.byteLength);
+
+      createTextTracksIfNecessary(this, this.mediaSource_, segment);
+
+      // Add the segments to the pendingBuffers array
+      this.pendingBuffers_.push(segment);
+      return;
+    };
+
+    /**
+     * When we get a done event from the transmuxer
+     * we call this function and we process all
+     * of the pending data that we have been saving in the
+     * data_ function
+     *
+     * @private
+     * @param {Event} event the done event from the transmuxer
+     */
+
+
+    VirtualSourceBuffer.prototype.done_ = function done_(event) {
+      // Don't process and append data if the mediaSource is closed
+      if (this.mediaSource_.readyState === 'closed') {
+        this.pendingBuffers_.length = 0;
+        return;
+      }
+
+      // All buffers should have been flushed from the muxer
+      // start processing anything we have received
+      this.processPendingSegments_();
+      return;
+    };
+
+    /**
+     * Create our internal native audio/video source buffers and add
+     * event handlers to them with the following conditions:
+     * 1. they do not already exist on the mediaSource
+     * 2. this VSB has a codec for them
+     *
+     * @private
+     */
+
+
+    VirtualSourceBuffer.prototype.createRealSourceBuffers_ = function createRealSourceBuffers_() {
+      var _this8 = this;
+
+      var types = ['audio', 'video'];
+
+      types.forEach(function (type) {
+        // Don't create a SourceBuffer of this type if we don't have a
+        // codec for it
+        if (!_this8[type + 'Codec_']) {
+          return;
+        }
+
+        // Do nothing if a SourceBuffer of this type already exists
+        if (_this8[type + 'Buffer_']) {
+          return;
+        }
+
+        var buffer = null;
+
+        // If the mediasource already has a SourceBuffer for the codec
+        // use that
+        if (_this8.mediaSource_[type + 'Buffer_']) {
+          buffer = _this8.mediaSource_[type + 'Buffer_'];
+          // In multiple audio track cases, the audio source buffer is disabled
+          // on the main VirtualSourceBuffer by the HTMLMediaSource much earlier
+          // than createRealSourceBuffers_ is called to create the second
+          // VirtualSourceBuffer because that happens as a side-effect of
+          // videojs-contrib-hls starting the audioSegmentLoader. As a result,
+          // the audioBuffer is essentially "ownerless" and no one will toggle
+          // the `updating` state back to false once the `updateend` event is received
+          //
+          // Setting `updating` to false manually will work around this
+          // situation and allow work to continue
+          buffer.updating = false;
+        } else {
+          var codecProperty = type + 'Codec_';
+          var mimeType = type + '/mp4;codecs="' + _this8[codecProperty] + '"';
+
+          buffer = makeWrappedSourceBuffer(_this8.mediaSource_.nativeMediaSource_, mimeType);
+
+          _this8.mediaSource_[type + 'Buffer_'] = buffer;
+        }
+
+        _this8[type + 'Buffer_'] = buffer;
+
+        // Wire up the events to the SourceBuffer
+        ['update', 'updatestart', 'updateend'].forEach(function (event) {
+          buffer.addEventListener(event, function () {
+            // if audio is disabled
+            if (type === 'audio' && _this8.audioDisabled_) {
+              return;
+            }
+
+            if (event === 'updateend') {
+              _this8[type + 'Buffer_'].updating = false;
+            }
+
+            var shouldTrigger = types.every(function (t) {
+              // skip checking audio's updating status if audio
+              // is not enabled
+              if (t === 'audio' && _this8.audioDisabled_) {
+                return true;
+              }
+              // if the other type if updating we don't trigger
+              if (type !== t && _this8[t + 'Buffer_'] && _this8[t + 'Buffer_'].updating) {
+                return false;
+              }
+              return true;
+            });
+
+            if (shouldTrigger) {
+              return _this8.trigger(event);
+            }
+          });
+        });
+      });
+    };
+
+    /**
+     * Emulate the native mediasource function, but our function will
+     * send all of the proposed segments to the transmuxer so that we
+     * can transmux them before we append them to our internal
+     * native source buffers in the correct format.
+     *
+     * @link https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/appendBuffer
+     * @param {Uint8Array} segment the segment to append to the buffer
+     */
+
+
+    VirtualSourceBuffer.prototype.appendBuffer = function appendBuffer(segment) {
+      // Start the internal "updating" state
+      this.bufferUpdating_ = true;
+
+      if (this.audioBuffer_ && this.audioBuffer_.buffered.length) {
+        var audioBuffered = this.audioBuffer_.buffered;
+
+        this.transmuxer_.postMessage({
+          action: 'setAudioAppendStart',
+          appendStart: audioBuffered.end(audioBuffered.length - 1)
+        });
+      }
+
+      if (this.videoBuffer_) {
+        this.transmuxer_.postMessage({
+          action: 'alignGopsWith',
+          gopsToAlignWith: gopsSafeToAlignWith(this.gopBuffer_, this.mediaSource_.player_, this.timeMapping_)
+        });
+      }
+
+      this.transmuxer_.postMessage({
+        action: 'push',
+        // Send the typed-array of data as an ArrayBuffer so that
+        // it can be sent as a "Transferable" and avoid the costly
+        // memory copy
+        data: segment.buffer,
+
+        // To recreate the original typed-array, we need information
+        // about what portion of the ArrayBuffer it was a view into
+        byteOffset: segment.byteOffset,
+        byteLength: segment.byteLength
+      }, [segment.buffer]);
+      this.transmuxer_.postMessage({action: 'flush'});
+    };
+
+    /**
+     * Appends gop information (timing and byteLength) received by the transmuxer for the
+     * gops appended in the last call to appendBuffer
+     *
+     * @param {Event} event
+     *        The gopInfo event from the transmuxer
+     * @param {Array} event.data.gopInfo
+     *        List of gop info to append
+     */
+
+
+    VirtualSourceBuffer.prototype.appendGopInfo_ = function appendGopInfo_(event) {
+      this.gopBuffer_ = updateGopBuffer(this.gopBuffer_, event.data.gopInfo, this.safeAppend_);
+    };
+
+    /**
+     * Emulate the native mediasource function and remove parts
+     * of the buffer from any of our internal buffers that exist
+     *
+     * @link https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/remove
+     * @param {Double} start position to start the remove at
+     * @param {Double} end position to end the remove at
+     */
+
+
+    VirtualSourceBuffer.prototype.remove = function remove(start, end) {
+      if (this.videoBuffer_) {
+        this.videoBuffer_.updating = true;
+        this.videoBuffer_.remove(start, end);
+        this.gopBuffer_ = removeGopBuffer(this.gopBuffer_, start, end, this.timeMapping_);
+      }
+      if (!this.audioDisabled_ && this.audioBuffer_) {
+        this.audioBuffer_.updating = true;
+        this.audioBuffer_.remove(start, end);
+      }
+
+      // Remove Metadata Cues (id3)
+      removeCuesFromTrack(start, end, this.metadataTrack_);
+
+      // Remove Any Captions
+      if (this.inbandTextTracks_) {
+        for (var track in this.inbandTextTracks_) {
+          removeCuesFromTrack(start, end, this.inbandTextTracks_[track]);
+        }
+      }
+    };
+
+    /**
+     * Process any segments that the muxer has output
+     * Concatenate segments together based on type and append them into
+     * their respective sourceBuffers
+     *
+     * @private
+     */
+
+
+    VirtualSourceBuffer.prototype.processPendingSegments_ = function processPendingSegments_() {
+      var sortedSegments = {
+        video: {
+          segments: [],
+          bytes: 0
+        },
+        audio: {
+          segments: [],
+          bytes: 0
+        },
+        captions: [],
+        metadata: []
+      };
+
+      // Sort segments into separate video/audio arrays and
+      // keep track of their total byte lengths
+      sortedSegments = this.pendingBuffers_.reduce(function (segmentObj, segment) {
+        var type = segment.type;
+        var data = segment.data;
+        var initSegment = segment.initSegment;
+
+        segmentObj[type].segments.push(data);
+        segmentObj[type].bytes += data.byteLength;
+
+        segmentObj[type].initSegment = initSegment;
+
+        // Gather any captions into a single array
+        if (segment.captions) {
+          segmentObj.captions = segmentObj.captions.concat(segment.captions);
+        }
+
+        if (segment.info) {
+          segmentObj[type].info = segment.info;
+        }
+
+        // Gather any metadata into a single array
+        if (segment.metadata) {
+          segmentObj.metadata = segmentObj.metadata.concat(segment.metadata);
+        }
+
+        return segmentObj;
+      }, sortedSegments);
+
+      // Create the real source buffers if they don't exist by now since we
+      // finally are sure what tracks are contained in the source
+      if (!this.videoBuffer_ && !this.audioBuffer_) {
+        // Remove any codecs that may have been specified by default but
+        // are no longer applicable now
+        if (sortedSegments.video.bytes === 0) {
+          this.videoCodec_ = null;
+        }
+        if (sortedSegments.audio.bytes === 0) {
+          this.audioCodec_ = null;
+        }
+
+        this.createRealSourceBuffers_();
+      }
+
+      if (sortedSegments.audio.info) {
+        this.mediaSource_.trigger({type: 'audioinfo', info: sortedSegments.audio.info});
+      }
+      if (sortedSegments.video.info) {
+        this.mediaSource_.trigger({type: 'videoinfo', info: sortedSegments.video.info});
+      }
+
+      if (this.appendAudioInitSegment_) {
+        if (!this.audioDisabled_ && this.audioBuffer_) {
+          sortedSegments.audio.segments.unshift(sortedSegments.audio.initSegment);
+          sortedSegments.audio.bytes += sortedSegments.audio.initSegment.byteLength;
+        }
+        this.appendAudioInitSegment_ = false;
+      }
+
+      var triggerUpdateend = false;
+
+      // Merge multiple video and audio segments into one and append
+      if (this.videoBuffer_ && sortedSegments.video.bytes) {
+        sortedSegments.video.segments.unshift(sortedSegments.video.initSegment);
+        sortedSegments.video.bytes += sortedSegments.video.initSegment.byteLength;
+        this.concatAndAppendSegments_(sortedSegments.video, this.videoBuffer_);
+        // TODO: are video tracks the only ones with text tracks?
+        addTextTrackData(this, sortedSegments.captions, sortedSegments.metadata);
+      } else if (this.videoBuffer_ && (this.audioDisabled_ || !this.audioBuffer_)) {
+        // The transmuxer did not return any bytes of video, meaning it was all trimmed
+        // for gop alignment. Since we have a video buffer and audio is disabled, updateend
+        // will never be triggered by this source buffer, which will cause contrib-hls
+        // to be stuck forever waiting for updateend. If audio is not disabled, updateend
+        // will be triggered by the audio buffer, which will be sent upwards since the video
+        // buffer will not be in an updating state.
+        triggerUpdateend = true;
+      }
+
+      if (!this.audioDisabled_ && this.audioBuffer_) {
+        this.concatAndAppendSegments_(sortedSegments.audio, this.audioBuffer_);
+      }
+
+      this.pendingBuffers_.length = 0;
+
+      if (triggerUpdateend) {
+        this.trigger('updateend');
+      }
+
+      // We are no longer in the internal "updating" state
+      this.bufferUpdating_ = false;
+    };
+
+    /**
+     * Combine all segments into a single Uint8Array and then append them
+     * to the destination buffer
+     *
+     * @param {Object} segmentObj
+     * @param {SourceBuffer} destinationBuffer native source buffer to append data to
+     * @private
+     */
+
+
+    VirtualSourceBuffer.prototype.concatAndAppendSegments_ = function concatAndAppendSegments_(segmentObj, destinationBuffer) {
+      var offset = 0;
+      var tempBuffer = void 0;
+
+      if (segmentObj.bytes) {
+        tempBuffer = new Uint8Array(segmentObj.bytes);
+
+        // Combine the individual segments into one large typed-array
+        segmentObj.segments.forEach(function (segment) {
+          tempBuffer.set(segment, offset);
+          offset += segment.byteLength;
+        });
+
+        try {
+          destinationBuffer.updating = true;
+          destinationBuffer.appendBuffer(tempBuffer);
+        } catch (error) {
+          if (this.mediaSource_.player_) {
+            this.mediaSource_.player_.error({
+              code: -3,
+              type: 'APPEND_BUFFER_ERR',
+              message: error.message,
+              originalError: error
+            });
+          }
+        }
+      }
+    };
+
+    /**
+     * Emulate the native mediasource function. abort any soureBuffer
+     * actions and throw out any un-appended data.
+     *
+     * @link https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/abort
+     */
+
+
+    VirtualSourceBuffer.prototype.abort = function abort() {
+      if (this.videoBuffer_) {
+        this.videoBuffer_.abort();
+      }
+      if (!this.audioDisabled_ && this.audioBuffer_) {
+        this.audioBuffer_.abort();
+      }
+      if (this.transmuxer_) {
+        this.transmuxer_.postMessage({action: 'reset'});
+      }
+      this.pendingBuffers_.length = 0;
+      this.bufferUpdating_ = false;
+    };
+
+    return VirtualSourceBuffer;
+  }(videojs$1.EventTarget);
+
+  /**
+   * @file html-media-source.js
+   */
+
+  /**
+   * Our MediaSource implementation in HTML, mimics native
+   * MediaSource where/if possible.
+   *
+   * @link https://developer.mozilla.org/en-US/docs/Web/API/MediaSource
+   * @class HtmlMediaSource
+   * @extends videojs.EventTarget
+   */
+
+
+  var HtmlMediaSource = function (_videojs$EventTarget2) {
+    inherits(HtmlMediaSource, _videojs$EventTarget2);
+
+    function HtmlMediaSource() {
+      classCallCheck(this, HtmlMediaSource);
+
+      var _this9 = possibleConstructorReturn(this, _videojs$EventTarget2.call(this));
+
+      var property = void 0;
+
+      _this9.nativeMediaSource_ = new window_1.MediaSource();
+      // delegate to the native MediaSource's methods by default
+      for (property in _this9.nativeMediaSource_) {
+        if (!(property in HtmlMediaSource.prototype) && typeof _this9.nativeMediaSource_[property] === 'function') {
+          _this9[property] = _this9.nativeMediaSource_[property].bind(_this9.nativeMediaSource_);
+        }
+      }
+
+      // emulate `duration` and `seekable` until seeking can be
+      // handled uniformly for live streams
+      // see https://github.com/w3c/media-source/issues/5
+      _this9.duration_ = NaN;
+      Object.defineProperty(_this9, 'duration', {
+        get: function get$$1() {
+          if (this.duration_ === Infinity) {
+            return this.duration_;
+          }
+          return this.nativeMediaSource_.duration;
+        },
+        set: function set$$1(duration) {
+          this.duration_ = duration;
+          if (duration !== Infinity) {
+            this.nativeMediaSource_.duration = duration;
+            return;
+          }
+        }
+      });
+      Object.defineProperty(_this9, 'seekable', {
+        get: function get$$1() {
+          if (this.duration_ === Infinity) {
+            return videojs$1.createTimeRanges([[0, this.nativeMediaSource_.duration]]);
+          }
+          return this.nativeMediaSource_.seekable;
+        }
+      });
+
+      Object.defineProperty(_this9, 'readyState', {
+        get: function get$$1() {
+          return this.nativeMediaSource_.readyState;
+        }
+      });
+
+      Object.defineProperty(_this9, 'activeSourceBuffers', {
+        get: function get$$1() {
+          return this.activeSourceBuffers_;
+        }
+      });
+
+      // the list of virtual and native SourceBuffers created by this
+      // MediaSource
+      _this9.sourceBuffers = [];
+
+      _this9.activeSourceBuffers_ = [];
+
+      /**
+       * update the list of active source buffers based upon various
+       * imformation from HLS and video.js
+       *
+       * @private
+       */
+      _this9.updateActiveSourceBuffers_ = function () {
+        // Retain the reference but empty the array
+        _this9.activeSourceBuffers_.length = 0;
+
+        // If there is only one source buffer, then it will always be active and audio will
+        // be disabled based on the codec of the source buffer
+        if (_this9.sourceBuffers.length === 1) {
+          var sourceBuffer = _this9.sourceBuffers[0];
+
+          sourceBuffer.appendAudioInitSegment_ = true;
+          sourceBuffer.audioDisabled_ = !sourceBuffer.audioCodec_;
+          _this9.activeSourceBuffers_.push(sourceBuffer);
+          return;
+        }
+
+        // There are 2 source buffers, a combined (possibly video only) source buffer and
+        // and an audio only source buffer.
+        // By default, the audio in the combined virtual source buffer is enabled
+        // and the audio-only source buffer (if it exists) is disabled.
+        var disableCombined = false;
+        var disableAudioOnly = true;
+
+        // TODO: maybe we can store the sourcebuffers on the track objects?
+        // safari may do something like this
+        for (var i = 0; i < _this9.player_.audioTracks().length; i++) {
+          var track = _this9.player_.audioTracks()[i];
+
+          if (track.enabled && track.kind !== 'main') {
+            // The enabled track is an alternate audio track so disable the audio in
+            // the combined source buffer and enable the audio-only source buffer.
+            disableCombined = true;
+            disableAudioOnly = false;
+            break;
+          }
+        }
+
+        _this9.sourceBuffers.forEach(function (sourceBuffer, index) {
+          /* eslinst-disable */
+          // TODO once codecs are required, we can switch to using the codecs to determine
+          //      what stream is the video stream, rather than relying on videoTracks
+          /* eslinst-enable */
+
+          sourceBuffer.appendAudioInitSegment_ = true;
+
+          if (sourceBuffer.videoCodec_ && sourceBuffer.audioCodec_) {
+            // combined
+            sourceBuffer.audioDisabled_ = disableCombined;
+          } else if (sourceBuffer.videoCodec_ && !sourceBuffer.audioCodec_) {
+            // If the "combined" source buffer is video only, then we do not want
+            // disable the audio-only source buffer (this is mostly for demuxed
+            // audio and video hls)
+            sourceBuffer.audioDisabled_ = true;
+            disableAudioOnly = false;
+          } else if (!sourceBuffer.videoCodec_ && sourceBuffer.audioCodec_) {
+            // audio only
+            // In the case of audio only with alternate audio and disableAudioOnly is true
+            // this means we want to disable the audio on the alternate audio sourcebuffer
+            // but not the main "combined" source buffer. The "combined" source buffer is
+            // always at index 0, so this ensures audio won't be disabled in both source
+            // buffers.
+            sourceBuffer.audioDisabled_ = index ? disableAudioOnly : !disableAudioOnly;
+            if (sourceBuffer.audioDisabled_) {
+              return;
+            }
+          }
+
+          _this9.activeSourceBuffers_.push(sourceBuffer);
+        });
+      };
+
+      _this9.onPlayerMediachange_ = function () {
+        _this9.sourceBuffers.forEach(function (sourceBuffer) {
+          sourceBuffer.appendAudioInitSegment_ = true;
+        });
+      };
+
+      _this9.onHlsReset_ = function () {
+        _this9.sourceBuffers.forEach(function (sourceBuffer) {
+          if (sourceBuffer.transmuxer_) {
+            sourceBuffer.transmuxer_.postMessage({action: 'resetCaptions'});
+          }
+        });
+      };
+
+      _this9.onHlsSegmentTimeMapping_ = function (event) {
+        _this9.sourceBuffers.forEach(function (buffer) {
+          return buffer.timeMapping_ = event.mapping;
+        });
+      };
+
+      // Re-emit MediaSource events on the polyfill
+      ['sourceopen', 'sourceclose', 'sourceended'].forEach(function (eventName) {
+        this.nativeMediaSource_.addEventListener(eventName, this.trigger.bind(this));
+      }, _this9);
+
+      // capture the associated player when the MediaSource is
+      // successfully attached
+      _this9.on('sourceopen', function (event) {
+        // Get the player this MediaSource is attached to
+        var video = document_1.querySelector('[src="' + _this9.url_ + '"]');
+
+        if (!video) {
+          return;
+        }
+
+        _this9.player_ = videojs$1(video.parentNode);
+
+        // hls-reset is fired by videojs.Hls on to the tech after the main SegmentLoader
+        // resets its state and flushes the buffer
+        _this9.player_.tech_.on('hls-reset', _this9.onHlsReset_);
+        // hls-segment-time-mapping is fired by videojs.Hls on to the tech after the main
+        // SegmentLoader inspects an MTS segment and has an accurate stream to display
+        // time mapping
+        _this9.player_.tech_.on('hls-segment-time-mapping', _this9.onHlsSegmentTimeMapping_);
+
+        if (_this9.player_.audioTracks && _this9.player_.audioTracks()) {
+          _this9.player_.audioTracks().on('change', _this9.updateActiveSourceBuffers_);
+          _this9.player_.audioTracks().on('addtrack', _this9.updateActiveSourceBuffers_);
+          _this9.player_.audioTracks().on('removetrack', _this9.updateActiveSourceBuffers_);
+        }
+
+        _this9.player_.on('mediachange', _this9.onPlayerMediachange_);
+      });
+
+      _this9.on('sourceended', function (event) {
+        var duration = durationOfVideo(_this9.duration);
+
+        for (var i = 0; i < _this9.sourceBuffers.length; i++) {
+          var sourcebuffer = _this9.sourceBuffers[i];
+          var cues = sourcebuffer.metadataTrack_ && sourcebuffer.metadataTrack_.cues;
+
+          if (cues && cues.length) {
+            cues[cues.length - 1].endTime = duration;
+          }
+        }
+      });
+
+      // explicitly terminate any WebWorkers that were created
+      // by SourceHandlers
+      _this9.on('sourceclose', function (event) {
+        this.sourceBuffers.forEach(function (sourceBuffer) {
+          if (sourceBuffer.transmuxer_) {
+            sourceBuffer.transmuxer_.terminate();
+          }
+        });
+
+        this.sourceBuffers.length = 0;
+        if (!this.player_) {
+          return;
+        }
+
+        if (this.player_.audioTracks && this.player_.audioTracks()) {
+          this.player_.audioTracks().off('change', this.updateActiveSourceBuffers_);
+          this.player_.audioTracks().off('addtrack', this.updateActiveSourceBuffers_);
+          this.player_.audioTracks().off('removetrack', this.updateActiveSourceBuffers_);
+        }
+
+        // We can only change this if the player hasn't been disposed of yet
+        // because `off` eventually tries to use the el_ property. If it has
+        // been disposed of, then don't worry about it because there are no
+        // event handlers left to unbind anyway
+        if (this.player_.el_) {
+          this.player_.off('mediachange', this.onPlayerMediachange_);
+          this.player_.tech_.off('hls-reset', this.onHlsReset_);
+          this.player_.tech_.off('hls-segment-time-mapping', this.onHlsSegmentTimeMapping_);
+        }
+      });
+      return _this9;
+    }
+
+    /**
+     * Add a range that that can now be seeked to.
+     *
+     * @param {Double} start where to start the addition
+     * @param {Double} end where to end the addition
+     * @private
+     */
+
+
+    HtmlMediaSource.prototype.addSeekableRange_ = function addSeekableRange_(start, end) {
+      var error = void 0;
+
+      if (this.duration !== Infinity) {
+        error = new Error('MediaSource.addSeekableRange() can only be invoked ' + 'when the duration is Infinity');
+        error.name = 'InvalidStateError';
+        error.code = 11;
+        throw error;
+      }
+
+      if (end > this.nativeMediaSource_.duration || isNaN(this.nativeMediaSource_.duration)) {
+        this.nativeMediaSource_.duration = end;
+      }
+    };
+
+    /**
+     * Add a source buffer to the media source.
+     *
+     * @link https://developer.mozilla.org/en-US/docs/Web/API/MediaSource/addSourceBuffer
+     * @param {String} type the content-type of the content
+     * @return {Object} the created source buffer
+     */
+
+
+    HtmlMediaSource.prototype.addSourceBuffer = function addSourceBuffer(type) {
+      var buffer = void 0;
+      var parsedType = parseContentType(type);
+
+      // Create a VirtualSourceBuffer to transmux MPEG-2 transport
+      // stream segments into fragmented MP4s
+      if (/^(video|audio)\/mp2t$/i.test(parsedType.type)) {
+        var codecs = [];
+
+        if (parsedType.parameters && parsedType.parameters.codecs) {
+          codecs = parsedType.parameters.codecs.split(',');
+          codecs = translateLegacyCodecs(codecs);
+          codecs = codecs.filter(function (codec) {
+            return isAudioCodec(codec) || isVideoCodec(codec);
+          });
+        }
+
+        if (codecs.length === 0) {
+          codecs = ['avc1.4d400d', 'mp4a.40.2'];
+        }
+
+        buffer = new VirtualSourceBuffer(this, codecs);
+
+        if (this.sourceBuffers.length !== 0) {
+          // If another VirtualSourceBuffer already exists, then we are creating a
+          // SourceBuffer for an alternate audio track and therefore we know that
+          // the source has both an audio and video track.
+          // That means we should trigger the manual creation of the real
+          // SourceBuffers instead of waiting for the transmuxer to return data
+          this.sourceBuffers[0].createRealSourceBuffers_();
+          buffer.createRealSourceBuffers_();
+
+          // Automatically disable the audio on the first source buffer if
+          // a second source buffer is ever created
+          this.sourceBuffers[0].audioDisabled_ = true;
+        }
+      } else {
+        // delegate to the native implementation
+        buffer = this.nativeMediaSource_.addSourceBuffer(type);
+      }
+
+      this.sourceBuffers.push(buffer);
+      return buffer;
+    };
+
+    return HtmlMediaSource;
+  }(videojs$1.EventTarget);
+
+  /**
+   * @file videojs-contrib-media-sources.js
+   */
+
+
+  var urlCount = 0;
+
+  // ------------
+  // Media Source
+  // ------------
+
+  // store references to the media sources so they can be connected
+  // to a video element (a swf object)
+  // TODO: can we store this somewhere local to this module?
+  videojs$1.mediaSources = {};
+
+  /**
+   * Provide a method for a swf object to notify JS that a
+   * media source is now open.
+   *
+   * @param {String} msObjectURL string referencing the MSE Object URL
+   * @param {String} swfId the swf id
+   */
+  var open = function open(msObjectURL, swfId) {
+    var mediaSource = videojs$1.mediaSources[msObjectURL];
+
+    if (mediaSource) {
+      mediaSource.trigger({type: 'sourceopen', swfId: swfId});
+    } else {
+      throw new Error('Media Source not found (Video.js)');
+    }
+  };
+
+  /**
+   * Check to see if the native MediaSource object exists and supports
+   * an MP4 container with both H.264 video and AAC-LC audio.
+   *
+   * @return {Boolean} if  native media sources are supported
+   */
+  var supportsNativeMediaSources = function supportsNativeMediaSources() {
+    return !!window_1.MediaSource && !!window_1.MediaSource.isTypeSupported && window_1.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"');
+  };
+
+  /**
+   * An emulation of the MediaSource API so that we can support
+   * native and non-native functionality. returns an instance of
+   * HtmlMediaSource.
+   *
+   * @link https://developer.mozilla.org/en-US/docs/Web/API/MediaSource/MediaSource
+   */
+  var MediaSource = function MediaSource() {
+    this.MediaSource = {
+      open: open,
+      supportsNativeMediaSources: supportsNativeMediaSources
+    };
+
+    if (supportsNativeMediaSources()) {
+      return new HtmlMediaSource();
+    }
+
+    throw new Error('Cannot use create a virtual MediaSource for this video');
+  };
+
+  MediaSource.open = open;
+  MediaSource.supportsNativeMediaSources = supportsNativeMediaSources;
+
+  /**
+   * A wrapper around the native URL for our MSE object
+   * implementation, this object is exposed under videojs.URL
+   *
+   * @link https://developer.mozilla.org/en-US/docs/Web/API/URL/URL
+   */
+  var URL$1 = {
+    /**
+     * A wrapper around the native createObjectURL for our objects.
+     * This function maps a native or emulated mediaSource to a blob
+     * url so that it can be loaded into video.js
+     *
+     * @link https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
+     * @param {MediaSource} object the object to create a blob url to
+     */
+    createObjectURL: function createObjectURL(object) {
+      var objectUrlPrefix = 'blob:vjs-media-source/';
+      var url = void 0;
+
+      // use the native MediaSource to generate an object URL
+      if (object instanceof HtmlMediaSource) {
+        url = window_1.URL.createObjectURL(object.nativeMediaSource_);
+        object.url_ = url;
+        return url;
+      }
+      // if the object isn't an emulated MediaSource, delegate to the
+      // native implementation
+      if (!(object instanceof HtmlMediaSource)) {
+        url = window_1.URL.createObjectURL(object);
+        object.url_ = url;
+        return url;
+      }
+
+      // build a URL that can be used to map back to the emulated
+      // MediaSource
+      url = objectUrlPrefix + urlCount;
+
+      urlCount++;
+
+      // setup the mapping back to object
+      videojs$1.mediaSources[url] = object;
+
+      return url;
+    }
+  };
+
+  videojs$1.MediaSource = MediaSource;
+  videojs$1.URL = URL$1;
+
+  var EventTarget$1$1 = videojs$1.EventTarget,
+    mergeOptions$2 = videojs$1.mergeOptions;
+
+  /**
+   * Returns a new master manifest that is the result of merging an updated master manifest
+   * into the original version.
+   *
+   * @param {Object} oldMaster
+   *        The old parsed mpd object
+   * @param {Object} newMaster
+   *        The updated parsed mpd object
+   * @return {Object}
+   *         A new object representing the original master manifest with the updated media
+   *         playlists merged in
+   */
+
+  var updateMaster$1 = function updateMaster$1(oldMaster, newMaster) {
+    var update = mergeOptions$2(oldMaster, {
+      // These are top level properties that can be updated
+      duration: newMaster.duration,
+      minimumUpdatePeriod: newMaster.minimumUpdatePeriod
+    });
+
+    // First update the playlists in playlist list
+    for (var i = 0; i < newMaster.playlists.length; i++) {
+      var playlistUpdate = updateMaster(update, newMaster.playlists[i]);
+
+      if (playlistUpdate) {
+        update = playlistUpdate;
+      }
+    }
+
+    // Then update media group playlists
+    forEachMediaGroup(newMaster, function (properties, type, group, label) {
+      if (properties.playlists && properties.playlists.length) {
+        var uri = properties.playlists[0].uri;
+        var _playlistUpdate = updateMaster(update, properties.playlists[0]);
+
+        if (_playlistUpdate) {
+          update = _playlistUpdate;
+          // update the playlist reference within media groups
+          update.mediaGroups[type][group][label].playlists[0] = update.playlists[uri];
+        }
+      }
+    });
+
+    return update;
+  };
+
+  var DashPlaylistLoader = function (_EventTarget$) {
+    inherits(DashPlaylistLoader, _EventTarget$);
+
+    // DashPlaylistLoader must accept either a src url or a playlist because subsequent
+    // playlist loader setups from media groups will expect to be able to pass a playlist
+    // (since there aren't external URLs to media playlists with DASH)
+    function DashPlaylistLoader(srcUrlOrPlaylist, hls, withCredentials, masterPlaylistLoader) {
+      classCallCheck(this, DashPlaylistLoader);
+
+      var _this10 = possibleConstructorReturn(this, _EventTarget$.call(this));
+
+      _this10.hls_ = hls;
+      _this10.withCredentials = withCredentials;
+
+      if (!srcUrlOrPlaylist) {
+        throw new Error('A non-empty playlist URL or playlist is required');
+      }
+
+      // event naming?
+      _this10.on('minimumUpdatePeriod', function () {
+        _this10.refreshXml_();
+      });
+
+      // live playlist staleness timeout
+      _this10.on('mediaupdatetimeout', function () {
+        _this10.refreshMedia_();
+      });
+
+      // initialize the loader state
+      if (typeof srcUrlOrPlaylist === 'string') {
+        _this10.srcUrl = srcUrlOrPlaylist;
+        _this10.state = 'HAVE_NOTHING';
+        return possibleConstructorReturn(_this10);
+      }
+
+      _this10.masterPlaylistLoader_ = masterPlaylistLoader;
+
+      _this10.state = 'HAVE_METADATA';
+      _this10.started = true;
+      // we only should have one playlist so select it
+      _this10.media(srcUrlOrPlaylist);
+      // trigger async to mimic behavior of HLS, where it must request a playlist
+      window_1.setTimeout(function () {
+        _this10.trigger('loadedmetadata');
+      }, 0);
+      return _this10;
+    }
+
+    DashPlaylistLoader.prototype.dispose = function dispose() {
+      this.stopRequest();
+      window_1.clearTimeout(this.mediaUpdateTimeout);
+    };
+
+    DashPlaylistLoader.prototype.stopRequest = function stopRequest() {
+      if (this.request) {
+        var oldRequest = this.request;
+
+        this.request = null;
+        oldRequest.onreadystatechange = null;
+        oldRequest.abort();
+      }
+    };
+
+    DashPlaylistLoader.prototype.media = function media(playlist) {
+      // getter
+      if (!playlist) {
+        return this.media_;
+      }
+
+      // setter
+      if (this.state === 'HAVE_NOTHING') {
+        throw new Error('Cannot switch media playlist from ' + this.state);
+      }
+
+      var startingState = this.state;
+
+      // find the playlist object if the target playlist has been specified by URI
+      if (typeof playlist === 'string') {
+        if (!this.master.playlists[playlist]) {
+          throw new Error('Unknown playlist URI: ' + playlist);
+        }
+        playlist = this.master.playlists[playlist];
+      }
+
+      var mediaChange = !this.media_ || playlist.uri !== this.media_.uri;
+
+      this.state = 'HAVE_METADATA';
+
+      // switching to the active playlist is a no-op
+      if (!mediaChange) {
+        return;
+      }
+
+      // switching from an already loaded playlist
+      if (this.media_) {
+        this.trigger('mediachanging');
+      }
+
+      this.media_ = playlist;
+
+      this.refreshMedia_();
+
+      // trigger media change if the active media has been updated
+      if (startingState !== 'HAVE_MASTER') {
+        this.trigger('mediachange');
+      }
+    };
+
+    DashPlaylistLoader.prototype.pause = function pause() {
+      this.stopRequest();
+      if (this.state === 'HAVE_NOTHING') {
+        // If we pause the loader before any data has been retrieved, its as if we never
+        // started, so reset to an unstarted state.
+        this.started = false;
+      }
+    };
+
+    DashPlaylistLoader.prototype.load = function load() {
+      // because the playlists are internal to the manifest, load should either load the
+      // main manifest, or do nothing but trigger an event
+      if (!this.started) {
+        this.start();
+        return;
+      }
+
+      this.trigger('loadedplaylist');
+    };
+
+    /**
+     * Parses the master xml string and updates playlist uri references
+     *
+     * @return {Object}
+     *         The parsed mpd manifest object
+     */
+
+
+    DashPlaylistLoader.prototype.parseMasterXml = function parseMasterXml() {
+      var master = parse(this.masterXml_, {
+        manifestUri: this.srcUrl,
+        clientOffset: this.clientOffset_
+      });
+
+      master.uri = this.srcUrl;
+
+      // Set up phony URIs for the playlists since we won't have external URIs for DASH
+      // but reference playlists by their URI throughout the project
+      // TODO: Should we create the dummy uris in mpd-parser as well (leaning towards yes).
+      for (var i = 0; i < master.playlists.length; i++) {
+        var phonyUri = 'placeholder-uri-' + i;
+
+        master.playlists[i].uri = phonyUri;
+        // set up by URI references
+        master.playlists[phonyUri] = master.playlists[i];
+      }
+
+      // set up phony URIs for the media group playlists since we won't have external
+      // URIs for DASH but reference playlists by their URI throughout the project
+      forEachMediaGroup(master, function (properties, mediaType, groupKey, labelKey) {
+        if (properties.playlists && properties.playlists.length) {
+          var _phonyUri = 'placeholder-uri-' + mediaType + '-' + groupKey + '-' + labelKey;
+
+          properties.playlists[0].uri = _phonyUri;
+          // setup URI references
+          master.playlists[_phonyUri] = properties.playlists[0];
+        }
+      });
+
+      setupMediaPlaylists(master);
+      resolveMediaGroupUris(master);
+
+      return master;
+    };
+
+    DashPlaylistLoader.prototype.start = function start() {
+      var _this11 = this;
+
+      this.started = true;
+
+      // request the specified URL
+      this.request = this.hls_.xhr({
+        uri: this.srcUrl,
+        withCredentials: this.withCredentials
+      }, function (error, req) {
+        // disposed
+        if (!_this11.request) {
+          return;
+        }
+
+        // clear the loader's request reference
+        _this11.request = null;
+
+        if (error) {
+          _this11.error = {
+            status: req.status,
+            message: 'DASH playlist request error at URL: ' + _this11.srcUrl,
+            responseText: req.responseText,
+            // MEDIA_ERR_NETWORK
+            code: 2
+          };
+          if (_this11.state === 'HAVE_NOTHING') {
+            _this11.started = false;
+          }
+          return _this11.trigger('error');
+        }
+
+        _this11.masterXml_ = req.responseText;
+
+        if (req.responseHeaders && req.responseHeaders.date) {
+          _this11.masterLoaded_ = Date.parse(req.responseHeaders.date);
+        } else {
+          _this11.masterLoaded_ = Date.now();
+        }
+
+        _this11.syncClientServerClock_(_this11.onClientServerClockSync_.bind(_this11));
+      });
+    };
+
+    /**
+     * Parses the master xml for UTCTiming node to sync the client clock to the server
+     * clock. If the UTCTiming node requires a HEAD or GET request, that request is made.
+     *
+     * @param {Function} done
+     *        Function to call when clock sync has completed
+     */
+
+
+    DashPlaylistLoader.prototype.syncClientServerClock_ = function syncClientServerClock_(done) {
+      var _this12 = this;
+
+      var utcTiming = parseUTCTiming(this.masterXml_);
+
+      // No UTCTiming element found in the mpd. Use Date header from mpd request as the
+      // server clock
+      if (utcTiming === null) {
+        this.clientOffset_ = this.masterLoaded_ - Date.now();
+        return done();
+      }
+
+      if (utcTiming.method === 'DIRECT') {
+        this.clientOffset_ = utcTiming.value - Date.now();
+        return done();
+      }
+
+      this.request = this.hls_.xhr({
+        uri: resolveUrl$1(this.srcUrl, utcTiming.value),
+        method: utcTiming.method,
+        withCredentials: this.withCredentials
+      }, function (error, req) {
+        // disposed
+        if (!_this12.request) {
+          return;
+        }
+
+        if (error) {
+          // sync request failed, fall back to using date header from mpd
+          // TODO: log warning
+          _this12.clientOffset_ = _this12.masterLoaded_ - Date.now();
+          return done();
+        }
+
+        var serverTime = void 0;
+
+        if (utcTiming.method === 'HEAD') {
+          if (!req.responseHeaders || !req.responseHeaders.date) {
+            // expected date header not preset, fall back to using date header from mpd
+            // TODO: log warning
+            serverTime = _this12.masterLoaded_;
+          } else {
+            serverTime = Date.parse(req.responseHeaders.date);
+          }
+        } else {
+          serverTime = Date.parse(req.responseText);
+        }
+
+        _this12.clientOffset_ = serverTime - Date.now();
+
+        done();
+      });
+    };
+
+    /**
+     * Handler for after client/server clock synchronization has happened. Sets up
+     * xml refresh timer if specificed by the manifest.
+     */
+
+
+    DashPlaylistLoader.prototype.onClientServerClockSync_ = function onClientServerClockSync_() {
+      var _this13 = this;
+
+      this.master = this.parseMasterXml();
+
+      this.state = 'HAVE_MASTER';
+
+      this.trigger('loadedplaylist');
+
+      if (!this.media_) {
+        // no media playlist was specifically selected so start
+        // from the first listed one
+        this.media(this.master.playlists[0]);
+      }
+      // trigger loadedmetadata to resolve setup of media groups
+      // trigger async to mimic behavior of HLS, where it must request a playlist
+      window_1.setTimeout(function () {
+        _this13.trigger('loadedmetadata');
+      }, 0);
+
+      // TODO: minimumUpdatePeriod can have a value of 0. Currently the manifest will not
+      // be refreshed when this is the case. The inter-op guide says that when the
+      // minimumUpdatePeriod is 0, the manifest should outline all currently available
+      // segments, but future segments may require an update. I think a good solution
+      // would be to update the manifest at the same rate that the media playlists
+      // are "refreshed", i.e. every targetDuration.
+      if (this.master.minimumUpdatePeriod) {
+        window_1.setTimeout(function () {
+          _this13.trigger('minimumUpdatePeriod');
+        }, this.master.minimumUpdatePeriod);
+      }
+    };
+
+    /**
+     * Sends request to refresh the master xml and updates the parsed master manifest
+     * TODO: Does the client offset need to be recalculated when the xml is refreshed?
+     */
+
+
+    DashPlaylistLoader.prototype.refreshXml_ = function refreshXml_() {
+      var _this14 = this;
+
+      this.request = this.hls_.xhr({
+        uri: this.srcUrl,
+        withCredentials: this.withCredentials
+      }, function (error, req) {
+        // disposed
+        if (!_this14.request) {
+          return;
+        }
+
+        // clear the loader's request reference
+        _this14.request = null;
+
+        if (error) {
+          _this14.error = {
+            status: req.status,
+            message: 'DASH playlist request error at URL: ' + _this14.srcUrl,
+            responseText: req.responseText,
+            // MEDIA_ERR_NETWORK
+            code: 2
+          };
+          if (_this14.state === 'HAVE_NOTHING') {
+            _this14.started = false;
+          }
+          return _this14.trigger('error');
+        }
+
+        _this14.masterXml_ = req.responseText;
+
+        var newMaster = _this14.parseMasterXml();
+
+        _this14.master = updateMaster$1(_this14.master, newMaster);
+
+        window_1.setTimeout(function () {
+          _this14.trigger('minimumUpdatePeriod');
+        }, _this14.master.minimumUpdatePeriod);
+      });
+    };
+
+    /**
+     * Refreshes the media playlist by re-parsing the master xml and updating playlist
+     * references. If this is an alternate loader, the updated parsed manifest is retrieved
+     * from the master loader.
+     */
+
+
+    DashPlaylistLoader.prototype.refreshMedia_ = function refreshMedia_() {
+      var _this15 = this;
+
+      var oldMaster = void 0;
+      var newMaster = void 0;
+
+      if (this.masterPlaylistLoader_) {
+        oldMaster = this.masterPlaylistLoader_.master;
+        newMaster = this.masterPlaylistLoader_.parseMasterXml();
+      } else {
+        oldMaster = this.master;
+        newMaster = this.parseMasterXml();
+      }
+
+      var updatedMaster = updateMaster$1(oldMaster, newMaster);
+
+      if (updatedMaster) {
+        if (this.masterPlaylistLoader_) {
+          this.masterPlaylistLoader_.master = updatedMaster;
+        } else {
+          this.master = updatedMaster;
+        }
+        this.media_ = updatedMaster.playlists[this.media_.uri];
+      } else {
+        this.trigger('playlistunchanged');
+      }
+
+      if (!this.media().endList) {
+        this.mediaUpdateTimeout = window_1.setTimeout(function () {
+          _this15.trigger('mediaupdatetimeout');
+        }, refreshDelay(this.media(), !!updatedMaster));
+      }
+
+      this.trigger('loadedplaylist');
+    };
+
+    return DashPlaylistLoader;
+  }(EventTarget$1$1);
+
+  var logger = function logger(source) {
+    if (videojs$1.log.debug) {
+      return videojs$1.log.debug.bind(videojs$1, 'VHS:', source + ' >');
+    }
+
+    return function () {
+    };
+  };
+
+  function noop$1() {
+  }
+
+  /**
+   * @file source-updater.js
+   */
+
+  /**
+   * A queue of callbacks to be serialized and applied when a
+   * MediaSource and its associated SourceBuffers are not in the
+   * updating state. It is used by the segment loader to update the
+   * underlying SourceBuffers when new data is loaded, for instance.
+   *
+   * @class SourceUpdater
+   * @param {MediaSource} mediaSource the MediaSource to create the
+   * SourceBuffer from
+   * @param {String} mimeType the desired MIME type of the underlying
+   * SourceBuffer
+   * @param {Object} sourceBufferEmitter an event emitter that fires when a source buffer is
+   * added to the media source
+   */
+
+  var SourceUpdater = function () {
+    function SourceUpdater(mediaSource, mimeType, type, sourceBufferEmitter) {
+      classCallCheck(this, SourceUpdater);
+
+      this.callbacks_ = [];
+      this.pendingCallback_ = null;
+      this.timestampOffset_ = 0;
+      this.mediaSource = mediaSource;
+      this.processedAppend_ = false;
+      this.type_ = type;
+      this.mimeType_ = mimeType;
+      this.logger_ = logger('SourceUpdater[' + type + '][' + mimeType + ']');
+
+      if (mediaSource.readyState === 'closed') {
+        mediaSource.addEventListener('sourceopen', this.createSourceBuffer_.bind(this, mimeType, sourceBufferEmitter));
+      } else {
+        this.createSourceBuffer_(mimeType, sourceBufferEmitter);
+      }
+    }
+
+    SourceUpdater.prototype.createSourceBuffer_ = function createSourceBuffer_(mimeType, sourceBufferEmitter) {
+      var _this16 = this;
+
+      this.sourceBuffer_ = this.mediaSource.addSourceBuffer(mimeType);
+
+      this.logger_('created SourceBuffer');
+
+      if (sourceBufferEmitter) {
+        sourceBufferEmitter.trigger('sourcebufferadded');
+
+        if (this.mediaSource.sourceBuffers.length < 2) {
+          // There's another source buffer we must wait for before we can start updating
+          // our own (or else we can get into a bad state, i.e., appending video/audio data
+          // before the other video/audio source buffer is available and leading to a video
+          // or audio only buffer).
+          sourceBufferEmitter.on('sourcebufferadded', function () {
+            _this16.start_();
+          });
+          return;
+        }
+      }
+
+      this.start_();
+    };
+
+    SourceUpdater.prototype.start_ = function start_() {
+      var _this17 = this;
+
+      this.started_ = true;
+
+      // run completion handlers and process callbacks as updateend
+      // events fire
+      this.onUpdateendCallback_ = function () {
+        var pendingCallback = _this17.pendingCallback_;
+
+        _this17.pendingCallback_ = null;
+
+        _this17.logger_('buffered [' + printableRange(_this17.buffered()) + ']');
+
+        if (pendingCallback) {
+          pendingCallback();
+        }
+
+        _this17.runCallback_();
+      };
+
+      this.sourceBuffer_.addEventListener('updateend', this.onUpdateendCallback_);
+
+      this.runCallback_();
+    };
+
+    /**
+     * Aborts the current segment and resets the segment parser.
+     *
+     * @param {Function} done function to call when done
+     * @see http://w3c.github.io/media-source/#widl-SourceBuffer-abort-void
+     */
+
+
+    SourceUpdater.prototype.abort = function abort(done) {
+      var _this18 = this;
+
+      if (this.processedAppend_) {
+        this.queueCallback_(function () {
+          _this18.sourceBuffer_.abort();
+        }, done);
+      }
+    };
+
+    /**
+     * Queue an update to append an ArrayBuffer.
+     *
+     * @param {ArrayBuffer} bytes
+     * @param {Function} done the function to call when done
+     * @see http://www.w3.org/TR/media-source/#widl-SourceBuffer-appendBuffer-void-ArrayBuffer-data
+     */
+
+
+    SourceUpdater.prototype.appendBuffer = function appendBuffer(bytes, done) {
+      var _this19 = this;
+
+      this.processedAppend_ = true;
+      this.queueCallback_(function () {
+        _this19.sourceBuffer_.appendBuffer(bytes);
+      }, done);
+    };
+
+    /**
+     * Indicates what TimeRanges are buffered in the managed SourceBuffer.
+     *
+     * @see http://www.w3.org/TR/media-source/#widl-SourceBuffer-buffered
+     */
+
+
+    SourceUpdater.prototype.buffered = function buffered() {
+      if (!this.sourceBuffer_) {
+        return videojs$1.createTimeRanges();
+      }
+      return this.sourceBuffer_.buffered;
+    };
+
+    /**
+     * Queue an update to remove a time range from the buffer.
+     *
+     * @param {Number} start where to start the removal
+     * @param {Number} end where to end the removal
+     * @see http://www.w3.org/TR/media-source/#widl-SourceBuffer-remove-void-double-start-unrestricted-double-end
+     */
+
+
+    SourceUpdater.prototype.remove = function remove(start, end) {
+      var _this20 = this;
+
+      if (this.processedAppend_) {
+        this.queueCallback_(function () {
+          _this20.logger_('remove [' + start + ' => ' + end + ']');
+          _this20.sourceBuffer_.remove(start, end);
+        }, noop$1);
+      }
+    };
+
+    /**
+     * Whether the underlying sourceBuffer is updating or not
+     *
+     * @return {Boolean} the updating status of the SourceBuffer
+     */
+
+
+    SourceUpdater.prototype.updating = function updating() {
+      return !this.sourceBuffer_ || this.sourceBuffer_.updating || this.pendingCallback_;
+    };
+
+    /**
+     * Set/get the timestampoffset on the SourceBuffer
+     *
+     * @return {Number} the timestamp offset
+     */
+
+
+    SourceUpdater.prototype.timestampOffset = function timestampOffset(offset) {
+      var _this21 = this;
+
+      if (typeof offset !== 'undefined') {
+        this.queueCallback_(function () {
+          _this21.sourceBuffer_.timestampOffset = offset;
+        });
+        this.timestampOffset_ = offset;
+      }
+      return this.timestampOffset_;
+    };
+
+    /**
+     * Queue a callback to run
+     */
+
+
+    SourceUpdater.prototype.queueCallback_ = function queueCallback_(callback, done) {
+      this.callbacks_.push([callback.bind(this), done]);
+      this.runCallback_();
+    };
+
+    /**
+     * Run a queued callback
+     */
+
+
+    SourceUpdater.prototype.runCallback_ = function runCallback_() {
+      var callbacks = void 0;
+
+      if (!this.updating() && this.callbacks_.length && this.started_) {
+        callbacks = this.callbacks_.shift();
+        this.pendingCallback_ = callbacks[1];
+        callbacks[0]();
+      }
+    };
+
+    /**
+     * dispose of the source updater and the underlying sourceBuffer
+     */
+
+
+    SourceUpdater.prototype.dispose = function dispose() {
+      this.sourceBuffer_.removeEventListener('updateend', this.onUpdateendCallback_);
+      if (this.sourceBuffer_ && this.mediaSource.readyState === 'open') {
+        this.sourceBuffer_.abort();
+      }
+    };
+
+    return SourceUpdater;
+  }();
+
+  var Config = {
+    GOAL_BUFFER_LENGTH: 30,
+    MAX_GOAL_BUFFER_LENGTH: 60,
+    GOAL_BUFFER_LENGTH_RATE: 1,
+    // A fudge factor to apply to advertised playlist bitrates to account for
+    // temporary flucations in client bandwidth
+    BANDWIDTH_VARIANCE: 1.2,
+    // How much of the buffer must be filled before we consider upswitching
+    BUFFER_LOW_WATER_LINE: 0,
+    MAX_BUFFER_LOW_WATER_LINE: 30,
+    BUFFER_LOW_WATER_LINE_RATE: 1
+  };
+
+  var REQUEST_ERRORS = {
+    FAILURE: 2,
+    TIMEOUT: -101,
+    ABORTED: -102
+  };
+
+  /**
+   * Turns segment byterange into a string suitable for use in
+   * HTTP Range requests
+   *
+   * @param {Object} byterange - an object with two values defining the start and end
+   *                             of a byte-range
+   */
+  var byterangeStr = function byterangeStr(byterange) {
+    var byterangeStart = void 0;
+    var byterangeEnd = void 0;
+
+    // `byterangeEnd` is one less than `offset + length` because the HTTP range
+    // header uses inclusive ranges
+    byterangeEnd = byterange.offset + byterange.length - 1;
+    byterangeStart = byterange.offset;
+    return 'bytes=' + byterangeStart + '-' + byterangeEnd;
+  };
+
+  /**
+   * Defines headers for use in the xhr request for a particular segment.
+   *
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   */
+  var segmentXhrHeaders = function segmentXhrHeaders(segment) {
+    var headers = {};
+
+    if (segment.byterange) {
+      headers.Range = byterangeStr(segment.byterange);
+    }
+    return headers;
+  };
+
+  /**
+   * Abort all requests
+   *
+   * @param {Object} activeXhrs - an object that tracks all XHR requests
+   */
+  var abortAll = function abortAll(activeXhrs) {
+    activeXhrs.forEach(function (xhr) {
+      xhr.abort();
+    });
+  };
+
+  /**
+   * Gather important bandwidth stats once a request has completed
+   *
+   * @param {Object} request - the XHR request from which to gather stats
+   */
+  var getRequestStats = function getRequestStats(request) {
+    return {
+      bandwidth: request.bandwidth,
+      bytesReceived: request.bytesReceived || 0,
+      roundTripTime: request.roundTripTime || 0
+    };
+  };
+
+  /**
+   * If possible gather bandwidth stats as a request is in
+   * progress
+   *
+   * @param {Event} progressEvent - an event object from an XHR's progress event
+   */
+  var getProgressStats = function getProgressStats(progressEvent) {
+    var request = progressEvent.target;
+    var roundTripTime = Date.now() - request.requestTime;
+    var stats = {
+      bandwidth: Infinity,
+      bytesReceived: 0,
+      roundTripTime: roundTripTime || 0
+    };
+
+    stats.bytesReceived = progressEvent.loaded;
+    // This can result in Infinity if stats.roundTripTime is 0 but that is ok
+    // because we should only use bandwidth stats on progress to determine when
+    // abort a request early due to insufficient bandwidth
+    stats.bandwidth = Math.floor(stats.bytesReceived / stats.roundTripTime * 8 * 1000);
+
+    return stats;
+  };
+
+  /**
+   * Handle all error conditions in one place and return an object
+   * with all the information
+   *
+   * @param {Error|null} error - if non-null signals an error occured with the XHR
+   * @param {Object} request -  the XHR request that possibly generated the error
+   */
+  var handleErrors = function handleErrors(error, request) {
+    if (request.timedout) {
+      return {
+        status: request.status,
+        message: 'HLS request timed-out at URL: ' + request.uri,
+        code: REQUEST_ERRORS.TIMEOUT,
+        xhr: request
+      };
+    }
+
+    if (request.aborted) {
+      return {
+        status: request.status,
+        message: 'HLS request aborted at URL: ' + request.uri,
+        code: REQUEST_ERRORS.ABORTED,
+        xhr: request
+      };
+    }
+
+    if (error) {
+      return {
+        status: request.status,
+        message: 'HLS request errored at URL: ' + request.uri,
+        code: REQUEST_ERRORS.FAILURE,
+        xhr: request
+      };
+    }
+
+    return null;
+  };
+
+  /**
+   * Handle responses for key data and convert the key data to the correct format
+   * for the decryption step later
+   *
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} finishProcessingFn - a callback to execute to continue processing
+   *                                        this request
+   */
+  var handleKeyResponse = function handleKeyResponse(segment, finishProcessingFn) {
+    return function (error, request) {
+      var response = request.response;
+      var errorObj = handleErrors(error, request);
+
+      if (errorObj) {
+        return finishProcessingFn(errorObj, segment);
+      }
+
+      if (response.byteLength !== 16) {
+        return finishProcessingFn({
+          status: request.status,
+          message: 'Invalid HLS key at URL: ' + request.uri,
+          code: REQUEST_ERRORS.FAILURE,
+          xhr: request
+        }, segment);
+      }
+
+      var view = new DataView(response);
+
+      segment.key.bytes = new Uint32Array([view.getUint32(0), view.getUint32(4), view.getUint32(8), view.getUint32(12)]);
+      return finishProcessingFn(null, segment);
+    };
+  };
+
+  /**
+   * Handle init-segment responses
+   *
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} finishProcessingFn - a callback to execute to continue processing
+   *                                        this request
+   */
+  var handleInitSegmentResponse = function handleInitSegmentResponse(segment, finishProcessingFn) {
+    return function (error, request) {
+      var response = request.response;
+      var errorObj = handleErrors(error, request);
+
+      if (errorObj) {
+        return finishProcessingFn(errorObj, segment);
+      }
+
+      // stop processing if received empty content
+      if (response.byteLength === 0) {
+        return finishProcessingFn({
+          status: request.status,
+          message: 'Empty HLS segment content at URL: ' + request.uri,
+          code: REQUEST_ERRORS.FAILURE,
+          xhr: request
+        }, segment);
+      }
+
+      segment.map.bytes = new Uint8Array(request.response);
+      return finishProcessingFn(null, segment);
+    };
+  };
+
+  /**
+   * Response handler for segment-requests being sure to set the correct
+   * property depending on whether the segment is encryped or not
+   * Also records and keeps track of stats that are used for ABR purposes
+   *
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} finishProcessingFn - a callback to execute to continue processing
+   *                                        this request
+   */
+  var handleSegmentResponse = function handleSegmentResponse(segment, finishProcessingFn) {
+    return function (error, request) {
+      var response = request.response;
+      var errorObj = handleErrors(error, request);
+
+      if (errorObj) {
+        return finishProcessingFn(errorObj, segment);
+      }
+
+      // stop processing if received empty content
+      if (response.byteLength === 0) {
+        return finishProcessingFn({
+          status: request.status,
+          message: 'Empty HLS segment content at URL: ' + request.uri,
+          code: REQUEST_ERRORS.FAILURE,
+          xhr: request
+        }, segment);
+      }
+
+      segment.stats = getRequestStats(request);
+
+      if (segment.key) {
+        segment.encryptedBytes = new Uint8Array(request.response);
+      } else {
+        segment.bytes = new Uint8Array(request.response);
+      }
+
+      return finishProcessingFn(null, segment);
+    };
+  };
+
+  /**
+   * Decrypt the segment via the decryption web worker
+   *
+   * @param {WebWorker} decrypter - a WebWorker interface to AES-128 decryption routines
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} doneFn - a callback that is executed after decryption has completed
+   */
+  var decryptSegment = function decryptSegment(decrypter, segment, doneFn) {
+    var decryptionHandler = function decryptionHandler(event) {
+      if (event.data.source === segment.requestId) {
+        decrypter.removeEventListener('message', decryptionHandler);
+        var decrypted = event.data.decrypted;
+
+        segment.bytes = new Uint8Array(decrypted.bytes, decrypted.byteOffset, decrypted.byteLength);
+        return doneFn(null, segment);
+      }
+    };
+
+    decrypter.addEventListener('message', decryptionHandler);
+
+    // this is an encrypted segment
+    // incrementally decrypt the segment
+    decrypter.postMessage(createTransferableMessage({
+      source: segment.requestId,
+      encrypted: segment.encryptedBytes,
+      key: segment.key.bytes,
+      iv: segment.key.iv
+    }), [segment.encryptedBytes.buffer, segment.key.bytes.buffer]);
+  };
+
+  /**
+   * The purpose of this function is to get the most pertinent error from the
+   * array of errors.
+   * For instance if a timeout and two aborts occur, then the aborts were
+   * likely triggered by the timeout so return that error object.
+   */
+  var getMostImportantError = function getMostImportantError(errors) {
+    return errors.reduce(function (prev, err) {
+      return err.code > prev.code ? err : prev;
+    });
+  };
+
+  /**
+   * This function waits for all XHRs to finish (with either success or failure)
+   * before continueing processing via it's callback. The function gathers errors
+   * from each request into a single errors array so that the error status for
+   * each request can be examined later.
+   *
+   * @param {Object} activeXhrs - an object that tracks all XHR requests
+   * @param {WebWorker} decrypter - a WebWorker interface to AES-128 decryption routines
+   * @param {Function} doneFn - a callback that is executed after all resources have been
+   *                            downloaded and any decryption completed
+   */
+  var waitForCompletion = function waitForCompletion(activeXhrs, decrypter, doneFn) {
+    var errors = [];
+    var count = 0;
+
+    return function (error, segment) {
+      if (error) {
+        // If there are errors, we have to abort any outstanding requests
+        abortAll(activeXhrs);
+        errors.push(error);
+      }
+      count += 1;
+
+      if (count === activeXhrs.length) {
+        // Keep track of when *all* of the requests have completed
+        segment.endOfAllRequests = Date.now();
+
+        if (errors.length > 0) {
+          var worstError = getMostImportantError(errors);
+
+          return doneFn(worstError, segment);
+        }
+        if (segment.encryptedBytes) {
+          return decryptSegment(decrypter, segment, doneFn);
+        }
+        // Otherwise, everything is ready just continue
+        return doneFn(null, segment);
+      }
+    };
+  };
+
+  /**
+   * Simple progress event callback handler that gathers some stats before
+   * executing a provided callback with the `segment` object
+   *
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} progressFn - a callback that is executed each time a progress event
+   *                                is received
+   * @param {Event} event - the progress event object from XMLHttpRequest
+   */
+  var handleProgress = function handleProgress(segment, progressFn) {
+    return function (event) {
+      segment.stats = videojs$1.mergeOptions(segment.stats, getProgressStats(event));
+
+      // record the time that we receive the first byte of data
+      if (!segment.stats.firstBytesReceivedAt && segment.stats.bytesReceived) {
+        segment.stats.firstBytesReceivedAt = Date.now();
+      }
+
+      return progressFn(event, segment);
+    };
+  };
+
+  /**
+   * Load all resources and does any processing necessary for a media-segment
+   *
+   * Features:
+   *   decrypts the media-segment if it has a key uri and an iv
+   *   aborts *all* requests if *any* one request fails
+   *
+   * The segment object, at minimum, has the following format:
+   * {
+   *   resolvedUri: String,
+   *   [byterange]: {
+   *     offset: Number,
+   *     length: Number
+   *   },
+   *   [key]: {
+   *     resolvedUri: String
+   *     [byterange]: {
+   *       offset: Number,
+   *       length: Number
+   *     },
+   *     iv: {
+   *       bytes: Uint32Array
+   *     }
+   *   },
+   *   [map]: {
+   *     resolvedUri: String,
+   *     [byterange]: {
+   *       offset: Number,
+   *       length: Number
+   *     },
+   *     [bytes]: Uint8Array
+   *   }
+   * }
+   * ...where [name] denotes optional properties
+   *
+   * @param {Function} xhr - an instance of the xhr wrapper in xhr.js
+   * @param {Object} xhrOptions - the base options to provide to all xhr requests
+   * @param {WebWorker} decryptionWorker - a WebWorker interface to AES-128
+   *                                       decryption routines
+   * @param {Object} segment - a simplified copy of the segmentInfo object
+   *                           from SegmentLoader
+   * @param {Function} progressFn - a callback that receives progress events from the main
+   *                                segment's xhr request
+   * @param {Function} doneFn - a callback that is executed only once all requests have
+   *                            succeeded or failed
+   * @returns {Function} a function that, when invoked, immediately aborts all
+   *                     outstanding requests
+   */
+  var mediaSegmentRequest = function mediaSegmentRequest(xhr, xhrOptions, decryptionWorker, segment, progressFn, doneFn) {
+    var activeXhrs = [];
+    var finishProcessingFn = waitForCompletion(activeXhrs, decryptionWorker, doneFn);
+
+    // optionally, request the decryption key
+    if (segment.key) {
+      var keyRequestOptions = videojs$1.mergeOptions(xhrOptions, {
+        uri: segment.key.resolvedUri,
+        responseType: 'arraybuffer'
+      });
+      var keyRequestCallback = handleKeyResponse(segment, finishProcessingFn);
+      var keyXhr = xhr(keyRequestOptions, keyRequestCallback);
+
+      activeXhrs.push(keyXhr);
+    }
+
+    // optionally, request the associated media init segment
+    if (segment.map && !segment.map.bytes) {
+      var initSegmentOptions = videojs$1.mergeOptions(xhrOptions, {
+        uri: segment.map.resolvedUri,
+        responseType: 'arraybuffer',
+        headers: segmentXhrHeaders(segment.map)
+      });
+      var initSegmentRequestCallback = handleInitSegmentResponse(segment, finishProcessingFn);
+      var initSegmentXhr = xhr(initSegmentOptions, initSegmentRequestCallback);
+
+      activeXhrs.push(initSegmentXhr);
+    }
+
+    var segmentRequestOptions = videojs$1.mergeOptions(xhrOptions, {
+      uri: segment.resolvedUri,
+      responseType: 'arraybuffer',
+      headers: segmentXhrHeaders(segment)
+    });
+    var segmentRequestCallback = handleSegmentResponse(segment, finishProcessingFn);
+    var segmentXhr = xhr(segmentRequestOptions, segmentRequestCallback);
+
+    segmentXhr.addEventListener('progress', handleProgress(segment, progressFn));
+    activeXhrs.push(segmentXhr);
+
+    return function () {
+      return abortAll(activeXhrs);
+    };
+  };
+
+  /**
+   * @file - codecs.js - Handles tasks regarding codec strings such as translating them to
+   * codec strings, or translating codec strings into objects that can be examined.
+   */
+
+    // Default codec parameters if none were provided for video and/or audio
+  var defaultCodecs = {
+      videoCodec: 'avc1',
+      videoObjectTypeIndicator: '.4d400d',
+      // AAC-LC
+      audioProfile: '2'
+    };
+
+  /**
+   * Parses a codec string to retrieve the number of codecs specified,
+   * the video codec and object type indicator, and the audio profile.
+   */
+
+  var parseCodecs = function parseCodecs() {
+    var codecs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
+
+    var result = {
+      codecCount: 0
+    };
+    var parsed = void 0;
+
+    result.codecCount = codecs.split(',').length;
+    result.codecCount = result.codecCount || 2;
+
+    // parse the video codec
+    parsed = /(^|\s|,)+(avc[13])([^ ,]*)/i.exec(codecs);
+    if (parsed) {
+      result.videoCodec = parsed[2];
+      result.videoObjectTypeIndicator = parsed[3];
+    }
+
+    // parse the last field of the audio codec
+    result.audioProfile = /(^|\s|,)+mp4a.[0-9A-Fa-f]+\.([0-9A-Fa-f]+)/i.exec(codecs);
+    result.audioProfile = result.audioProfile && result.audioProfile[2];
+
+    return result;
+  };
+
+  /**
+   * Replace codecs in the codec string with the old apple-style `avc1.<dd>.<dd>` to the
+   * standard `avc1.<hhhhhh>`.
+   *
+   * @param codecString {String} the codec string
+   * @return {String} the codec string with old apple-style codecs replaced
+   *
+   * @private
+   */
+  var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {
+    return codecString.replace(/avc1\.(\d+)\.(\d+)/i, function (match) {
+      return translateLegacyCodecs([match])[0];
+    });
+  };
+
+  /**
+   * Build a media mime-type string from a set of parameters
+   * @param {String} type either 'audio' or 'video'
+   * @param {String} container either 'mp2t' or 'mp4'
+   * @param {Array} codecs an array of codec strings to add
+   * @return {String} a valid media mime-type
+   */
+  var makeMimeTypeString = function makeMimeTypeString(type, container, codecs) {
+    // The codecs array is filtered so that falsey values are
+    // dropped and don't cause Array#join to create spurious
+    // commas
+    return type + '/' + container + '; codecs="' + codecs.filter(function (c) {
+      return !!c;
+    }).join(', ') + '"';
+  };
+
+  /**
+   * Returns the type container based on information in the playlist
+   * @param {Playlist} media the current media playlist
+   * @return {String} a valid media container type
+   */
+  var getContainerType = function getContainerType(media) {
+    // An initialization segment means the media playlist is an iframe
+    // playlist or is using the mp4 container. We don't currently
+    // support iframe playlists, so assume this is signalling mp4
+    // fragments.
+    if (media.segments && media.segments.length && media.segments[0].map) {
+      return 'mp4';
+    }
+    return 'mp2t';
+  };
+
+  /**
+   * Returns a set of codec strings parsed from the playlist or the default
+   * codec strings if no codecs were specified in the playlist
+   * @param {Playlist} media the current media playlist
+   * @return {Object} an object with the video and audio codecs
+   */
+  var getCodecs = function getCodecs(media) {
+    // if the codecs were explicitly specified, use them instead of the
+    // defaults
+    var mediaAttributes = media.attributes || {};
+
+    if (mediaAttributes.CODECS) {
+      return parseCodecs(mediaAttributes.CODECS);
+    }
+    return defaultCodecs;
+  };
+
+  var audioProfileFromDefault = function audioProfileFromDefault(master, audioGroupId) {
+    if (!master.mediaGroups.AUDIO || !audioGroupId) {
+      return null;
+    }
+
+    var audioGroup = master.mediaGroups.AUDIO[audioGroupId];
+
+    if (!audioGroup) {
+      return null;
+    }
+
+    for (var name in audioGroup) {
+      var audioType = audioGroup[name];
+
+      if (audioType.default && audioType.playlists) {
+        // codec should be the same for all playlists within the audio type
+        return parseCodecs(audioType.playlists[0].attributes.CODECS).audioProfile;
+      }
+    }
+
+    return null;
+  };
+
+  /**
+   * Calculates the MIME type strings for a working configuration of
+   * SourceBuffers to play variant streams in a master playlist. If
+   * there is no possible working configuration, an empty array will be
+   * returned.
+   *
+   * @param master {Object} the m3u8 object for the master playlist
+   * @param media {Object} the m3u8 object for the variant playlist
+   * @return {Array} the MIME type strings. If the array has more than
+   * one entry, the first element should be applied to the video
+   * SourceBuffer and the second to the audio SourceBuffer.
+   *
+   * @private
+   */
+  var mimeTypesForPlaylist = function mimeTypesForPlaylist(master, media) {
+    var containerType = getContainerType(media);
+    var codecInfo = getCodecs(media);
+    var mediaAttributes = media.attributes || {};
+    // Default condition for a traditional HLS (no demuxed audio/video)
+    var isMuxed = true;
+    var isMaat = false;
+
+    if (!media) {
+      // Not enough information
+      return [];
+    }
+
+    if (master.mediaGroups.AUDIO && mediaAttributes.AUDIO) {
+      var audioGroup = master.mediaGroups.AUDIO[mediaAttributes.AUDIO];
+
+      // Handle the case where we are in a multiple-audio track scenario
+      if (audioGroup) {
+        isMaat = true;
+        // Start with the everything demuxed then...
+        isMuxed = false;
+        // ...check to see if any audio group tracks are muxed (ie. lacking a uri)
+        for (var groupId in audioGroup) {
+          // either a uri is present (if the case of HLS and an external playlist), or
+          // playlists is present (in the case of DASH where we don't have external audio
+          // playlists)
+          if (!audioGroup[groupId].uri && !audioGroup[groupId].playlists) {
+            isMuxed = true;
+            break;
+          }
+        }
+      }
+    }
+
+    // HLS with multiple-audio tracks must always get an audio codec.
+    // Put another way, there is no way to have a video-only multiple-audio HLS!
+    if (isMaat && !codecInfo.audioProfile) {
+      if (!isMuxed) {
+        // It is possible for codecs to be specified on the audio media group playlist but
+        // not on the rendition playlist. This is mostly the case for DASH, where audio and
+        // video are always separate (and separately specified).
+        codecInfo.audioProfile = audioProfileFromDefault(master, mediaAttributes.AUDIO);
+      }
+
+      if (!codecInfo.audioProfile) {
+        videojs$1.log.warn('Multiple audio tracks present but no audio codec string is specified. ' + 'Attempting to use the default audio codec (mp4a.40.2)');
+        codecInfo.audioProfile = defaultCodecs.audioProfile;
+      }
+    }
+
+    // Generate the final codec strings from the codec object generated above
+    var codecStrings = {};
+
+    if (codecInfo.videoCodec) {
+      codecStrings.video = '' + codecInfo.videoCodec + codecInfo.videoObjectTypeIndicator;
+    }
+
+    if (codecInfo.audioProfile) {
+      codecStrings.audio = 'mp4a.40.' + codecInfo.audioProfile;
+    }
+
+    // Finally, make and return an array with proper mime-types depending on
+    // the configuration
+    var justAudio = makeMimeTypeString('audio', containerType, [codecStrings.audio]);
+    var justVideo = makeMimeTypeString('video', containerType, [codecStrings.video]);
+    var bothVideoAudio = makeMimeTypeString('video', containerType, [codecStrings.video, codecStrings.audio]);
+
+    if (isMaat) {
+      if (!isMuxed && codecStrings.video) {
+        return [justVideo, justAudio];
+      }
+
+      if (!isMuxed && !codecStrings.video) {
+        // There is no muxed content and no video codec string, so this is an audio only
+        // stream with alternate audio.
+        return [justAudio, justAudio];
+      }
+
+      // There exists the possiblity that this will return a `video/container`
+      // mime-type for the first entry in the array even when there is only audio.
+      // This doesn't appear to be a problem and simplifies the code.
+      return [bothVideoAudio, justAudio];
+    }
+
+    // If there is no video codec at all, always just return a single
+    // audio/<container> mime-type
+    if (!codecStrings.video) {
+      return [justAudio];
+    }
+
+    // When not using separate audio media groups, audio and video is
+    // *always* muxed
+    return [bothVideoAudio];
+  };
+
+  // Utilities
+
+  /**
+   * Returns the CSS value for the specified property on an element
+   * using `getComputedStyle`. Firefox has a long-standing issue where
+   * getComputedStyle() may return null when running in an iframe with
+   * `display: none`.
+   *
+   * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397
+   * @param {HTMLElement} el the htmlelement to work on
+   * @param {string} the proprety to get the style for
+   */
+  var safeGetComputedStyle = function safeGetComputedStyle(el, property) {
+    var result = void 0;
+
+    if (!el) {
+      return '';
+    }
+
+    result = window_1.getComputedStyle(el);
+    if (!result) {
+      return '';
+    }
+
+    return result[property];
+  };
+
+  /**
+   * Resuable stable sort function
+   *
+   * @param {Playlists} array
+   * @param {Function} sortFn Different comparators
+   * @function stableSort
+   */
+  var stableSort = function stableSort(array, sortFn) {
+    var newArray = array.slice();
+
+    array.sort(function (left, right) {
+      var cmp = sortFn(left, right);
+
+      if (cmp === 0) {
+        return newArray.indexOf(left) - newArray.indexOf(right);
+      }
+      return cmp;
+    });
+  };
+
+  /**
+   * A comparator function to sort two playlist object by bandwidth.
+   *
+   * @param {Object} left a media playlist object
+   * @param {Object} right a media playlist object
+   * @return {Number} Greater than zero if the bandwidth attribute of
+   * left is greater than the corresponding attribute of right. Less
+   * than zero if the bandwidth of right is greater than left and
+   * exactly zero if the two are equal.
+   */
+  var comparePlaylistBandwidth = function comparePlaylistBandwidth(left, right) {
+    var leftBandwidth = void 0;
+    var rightBandwidth = void 0;
+
+    if (left.attributes.BANDWIDTH) {
+      leftBandwidth = left.attributes.BANDWIDTH;
+    }
+    leftBandwidth = leftBandwidth || window_1.Number.MAX_VALUE;
+    if (right.attributes.BANDWIDTH) {
+      rightBandwidth = right.attributes.BANDWIDTH;
+    }
+    rightBandwidth = rightBandwidth || window_1.Number.MAX_VALUE;
+
+    return leftBandwidth - rightBandwidth;
+  };
+
+  /**
+   * A comparator function to sort two playlist object by resolution (width).
+   * @param {Object} left a media playlist object
+   * @param {Object} right a media playlist object
+   * @return {Number} Greater than zero if the resolution.width attribute of
+   * left is greater than the corresponding attribute of right. Less
+   * than zero if the resolution.width of right is greater than left and
+   * exactly zero if the two are equal.
+   */
+  var comparePlaylistResolution = function comparePlaylistResolution(left, right) {
+    var leftWidth = void 0;
+    var rightWidth = void 0;
+
+    if (left.attributes.RESOLUTION && left.attributes.RESOLUTION.width) {
+      leftWidth = left.attributes.RESOLUTION.width;
+    }
+
+    leftWidth = leftWidth || window_1.Number.MAX_VALUE;
+
+    if (right.attributes.RESOLUTION && right.attributes.RESOLUTION.width) {
+      rightWidth = right.attributes.RESOLUTION.width;
+    }
+
+    rightWidth = rightWidth || window_1.Number.MAX_VALUE;
+
+    // NOTE - Fallback to bandwidth sort as appropriate in cases where multiple renditions
+    // have the same media dimensions/ resolution
+    if (leftWidth === rightWidth && left.attributes.BANDWIDTH && right.attributes.BANDWIDTH) {
+      return left.attributes.BANDWIDTH - right.attributes.BANDWIDTH;
+    }
+    return leftWidth - rightWidth;
+  };
+
+  /**
+   * Chooses the appropriate media playlist based on bandwidth and player size
+   *
+   * @param {Object} master
+   *        Object representation of the master manifest
+   * @param {Number} playerBandwidth
+   *        Current calculated bandwidth of the player
+   * @param {Number} playerWidth
+   *        Current width of the player element
+   * @param {Number} playerHeight
+   *        Current height of the player element
+   * @return {Playlist} the highest bitrate playlist less than the
+   * currently detected bandwidth, accounting for some amount of
+   * bandwidth variance
+   */
+  var simpleSelector = function simpleSelector(master, playerBandwidth, playerWidth, playerHeight) {
+    // convert the playlists to an intermediary representation to make comparisons easier
+    var sortedPlaylistReps = master.playlists.map(function (playlist) {
+      var width = void 0;
+      var height = void 0;
+      var bandwidth = void 0;
+
+      width = playlist.attributes.RESOLUTION && playlist.attributes.RESOLUTION.width;
+      height = playlist.attributes.RESOLUTION && playlist.attributes.RESOLUTION.height;
+      bandwidth = playlist.attributes.BANDWIDTH;
+
+      bandwidth = bandwidth || window_1.Number.MAX_VALUE;
+
+      return {
+        bandwidth: bandwidth,
+        width: width,
+        height: height,
+        playlist: playlist
+      };
+    });
+
+    stableSort(sortedPlaylistReps, function (left, right) {
+      return left.bandwidth - right.bandwidth;
+    });
+
+    // filter out any playlists that have been excluded due to
+    // incompatible configurations
+    sortedPlaylistReps = sortedPlaylistReps.filter(function (rep) {
+      return !Playlist.isIncompatible(rep.playlist);
+    });
+
+    // filter out any playlists that have been disabled manually through the representations
+    // api or blacklisted temporarily due to playback errors.
+    var enabledPlaylistReps = sortedPlaylistReps.filter(function (rep) {
+      return Playlist.isEnabled(rep.playlist);
+    });
+
+    if (!enabledPlaylistReps.length) {
+      // if there are no enabled playlists, then they have all been blacklisted or disabled
+      // by the user through the representations api. In this case, ignore blacklisting and
+      // fallback to what the user wants by using playlists the user has not disabled.
+      enabledPlaylistReps = sortedPlaylistReps.filter(function (rep) {
+        return !Playlist.isDisabled(rep.playlist);
+      });
+    }
+
+    // filter out any variant that has greater effective bitrate
+    // than the current estimated bandwidth
+    var bandwidthPlaylistReps = enabledPlaylistReps.filter(function (rep) {
+      return rep.bandwidth * Config.BANDWIDTH_VARIANCE < playerBandwidth;
+    });
+
+    var highestRemainingBandwidthRep = bandwidthPlaylistReps[bandwidthPlaylistReps.length - 1];
+
+    // get all of the renditions with the same (highest) bandwidth
+    // and then taking the very first element
+    var bandwidthBestRep = bandwidthPlaylistReps.filter(function (rep) {
+      return rep.bandwidth === highestRemainingBandwidthRep.bandwidth;
+    })[0];
+
+    // filter out playlists without resolution information
+    var haveResolution = bandwidthPlaylistReps.filter(function (rep) {
+      return rep.width && rep.height;
+    });
+
+    // sort variants by resolution
+    stableSort(haveResolution, function (left, right) {
+      return left.width - right.width;
+    });
+
+    // if we have the exact resolution as the player use it
+    var resolutionBestRepList = haveResolution.filter(function (rep) {
+      return rep.width === playerWidth && rep.height === playerHeight;
+    });
+
+    highestRemainingBandwidthRep = resolutionBestRepList[resolutionBestRepList.length - 1];
+    // ensure that we pick the highest bandwidth variant that have exact resolution
+    var resolutionBestRep = resolutionBestRepList.filter(function (rep) {
+      return rep.bandwidth === highestRemainingBandwidthRep.bandwidth;
+    })[0];
+
+    var resolutionPlusOneList = void 0;
+    var resolutionPlusOneSmallest = void 0;
+    var resolutionPlusOneRep = void 0;
+
+    // find the smallest variant that is larger than the player
+    // if there is no match of exact resolution
+    if (!resolutionBestRep) {
+      resolutionPlusOneList = haveResolution.filter(function (rep) {
+        return rep.width > playerWidth || rep.height > playerHeight;
+      });
+
+      // find all the variants have the same smallest resolution
+      resolutionPlusOneSmallest = resolutionPlusOneList.filter(function (rep) {
+        return rep.width === resolutionPlusOneList[0].width && rep.height === resolutionPlusOneList[0].height;
+      });
+
+      // ensure that we also pick the highest bandwidth variant that
+      // is just-larger-than the video player
+      highestRemainingBandwidthRep = resolutionPlusOneSmallest[resolutionPlusOneSmallest.length - 1];
+      resolutionPlusOneRep = resolutionPlusOneSmallest.filter(function (rep) {
+        return rep.bandwidth === highestRemainingBandwidthRep.bandwidth;
+      })[0];
+    }
+
+    // fallback chain of variants
+    var chosenRep = resolutionPlusOneRep || resolutionBestRep || bandwidthBestRep || enabledPlaylistReps[0] || sortedPlaylistReps[0];
+
+    return chosenRep ? chosenRep.playlist : null;
+  };
+
+  // Playlist Selectors
+
+  /**
+   * Chooses the appropriate media playlist based on the most recent
+   * bandwidth estimate and the player size.
+   *
+   * Expects to be called within the context of an instance of HlsHandler
+   *
+   * @return {Playlist} the highest bitrate playlist less than the
+   * currently detected bandwidth, accounting for some amount of
+   * bandwidth variance
+   */
+  var lastBandwidthSelector = function lastBandwidthSelector() {
+    return simpleSelector(this.playlists.master, this.systemBandwidth, parseInt(safeGetComputedStyle(this.tech_.el(), 'width'), 10), parseInt(safeGetComputedStyle(this.tech_.el(), 'height'), 10));
+  };
+
+  /**
+   * Chooses the appropriate media playlist based on the potential to rebuffer
+   *
+   * @param {Object} settings
+   *        Object of information required to use this selector
+   * @param {Object} settings.master
+   *        Object representation of the master manifest
+   * @param {Number} settings.currentTime
+   *        The current time of the player
+   * @param {Number} settings.bandwidth
+   *        Current measured bandwidth
+   * @param {Number} settings.duration
+   *        Duration of the media
+   * @param {Number} settings.segmentDuration
+   *        Segment duration to be used in round trip time calculations
+   * @param {Number} settings.timeUntilRebuffer
+   *        Time left in seconds until the player has to rebuffer
+   * @param {Number} settings.currentTimeline
+   *        The current timeline segments are being loaded from
+   * @param {SyncController} settings.syncController
+   *        SyncController for determining if we have a sync point for a given playlist
+   * @return {Object|null}
+   *         {Object} return.playlist
+   *         The highest bandwidth playlist with the least amount of rebuffering
+   *         {Number} return.rebufferingImpact
+   *         The amount of time in seconds switching to this playlist will rebuffer. A
+   *         negative value means that switching will cause zero rebuffering.
+   */
+  var minRebufferMaxBandwidthSelector = function minRebufferMaxBandwidthSelector(settings) {
+    var master = settings.master,
+      currentTime = settings.currentTime,
+      bandwidth = settings.bandwidth,
+      duration$$1 = settings.duration,
+      segmentDuration = settings.segmentDuration,
+      timeUntilRebuffer = settings.timeUntilRebuffer,
+      currentTimeline = settings.currentTimeline,
+      syncController = settings.syncController;
+
+    // filter out any playlists that have been excluded due to
+    // incompatible configurations
+
+    var compatiblePlaylists = master.playlists.filter(function (playlist) {
+      return !Playlist.isIncompatible(playlist);
+    });
+
+    // filter out any playlists that have been disabled manually through the representations
+    // api or blacklisted temporarily due to playback errors.
+    var enabledPlaylists = compatiblePlaylists.filter(Playlist.isEnabled);
+
+    if (!enabledPlaylists.length) {
+      // if there are no enabled playlists, then they have all been blacklisted or disabled
+      // by the user through the representations api. In this case, ignore blacklisting and
+      // fallback to what the user wants by using playlists the user has not disabled.
+      enabledPlaylists = compatiblePlaylists.filter(function (playlist) {
+        return !Playlist.isDisabled(playlist);
+      });
+    }
+
+    var bandwidthPlaylists = enabledPlaylists.filter(Playlist.hasAttribute.bind(null, 'BANDWIDTH'));
+
+    var rebufferingEstimates = bandwidthPlaylists.map(function (playlist) {
+      var syncPoint = syncController.getSyncPoint(playlist, duration$$1, currentTimeline, currentTime);
+      // If there is no sync point for this playlist, switching to it will require a
+      // sync request first. This will double the request time
+      var numRequests = syncPoint ? 1 : 2;
+      var requestTimeEstimate = Playlist.estimateSegmentRequestTime(segmentDuration, bandwidth, playlist);
+      var rebufferingImpact = requestTimeEstimate * numRequests - timeUntilRebuffer;
+
+      return {
+        playlist: playlist,
+        rebufferingImpact: rebufferingImpact
+      };
+    });
+
+    var noRebufferingPlaylists = rebufferingEstimates.filter(function (estimate) {
+      return estimate.rebufferingImpact <= 0;
+    });
+
+    // Sort by bandwidth DESC
+    stableSort(noRebufferingPlaylists, function (a, b) {
+      return comparePlaylistBandwidth(b.playlist, a.playlist);
+    });
+
+    if (noRebufferingPlaylists.length) {
+      return noRebufferingPlaylists[0];
+    }
+
+    stableSort(rebufferingEstimates, function (a, b) {
+      return a.rebufferingImpact - b.rebufferingImpact;
+    });
+
+    return rebufferingEstimates[0] || null;
+  };
+
+  /**
+   * Chooses the appropriate media playlist, which in this case is the lowest bitrate
+   * one with video.  If no renditions with video exist, return the lowest audio rendition.
+   *
+   * Expects to be called within the context of an instance of HlsHandler
+   *
+   * @return {Object|null}
+   *         {Object} return.playlist
+   *         The lowest bitrate playlist that contains a video codec.  If no such rendition
+   *         exists pick the lowest audio rendition.
+   */
+  var lowestBitrateCompatibleVariantSelector = function lowestBitrateCompatibleVariantSelector() {
+    // filter out any playlists that have been excluded due to
+    // incompatible configurations or playback errors
+    var playlists = this.playlists.master.playlists.filter(Playlist.isEnabled);
+
+    // Sort ascending by bitrate
+    stableSort(playlists, function (a, b) {
+      return comparePlaylistBandwidth(a, b);
+    });
+
+    // Parse and assume that playlists with no video codec have no video
+    // (this is not necessarily true, although it is generally true).
+    //
+    // If an entire manifest has no valid videos everything will get filtered
+    // out.
+    var playlistsWithVideo = playlists.filter(function (playlist) {
+      return parseCodecs(playlist.attributes.CODECS).videoCodec;
+    });
+
+    return playlistsWithVideo[0] || null;
+  };
+
+  /**
+   * @file segment-loader.js
+   */
+
+    // in ms
+  var CHECK_BUFFER_DELAY = 500;
+
+  /**
+   * Determines if we should call endOfStream on the media source based
+   * on the state of the buffer or if appened segment was the final
+   * segment in the playlist.
+   *
+   * @param {Object} playlist a media playlist object
+   * @param {Object} mediaSource the MediaSource object
+   * @param {Number} segmentIndex the index of segment we last appended
+   * @returns {Boolean} do we need to call endOfStream on the MediaSource
+   */
+  var detectEndOfStream = function detectEndOfStream(playlist, mediaSource, segmentIndex) {
+    if (!playlist || !mediaSource) {
+      return false;
+    }
+
+    var segments = playlist.segments;
+
+    // determine a few boolean values to help make the branch below easier
+    // to read
+    var appendedLastSegment = segmentIndex === segments.length;
+
+    // if we've buffered to the end of the video, we need to call endOfStream
+    // so that MediaSources can trigger the `ended` event when it runs out of
+    // buffered data instead of waiting for me
+    return playlist.endList && mediaSource.readyState === 'open' && appendedLastSegment;
+  };
+
+  var finite = function finite(num) {
+    return typeof num === 'number' && isFinite(num);
+  };
+
+  var illegalMediaSwitch = function illegalMediaSwitch(loaderType, startingMedia, newSegmentMedia) {
+    // Although these checks should most likely cover non 'main' types, for now it narrows
+    // the scope of our checks.
+    if (loaderType !== 'main' || !startingMedia || !newSegmentMedia) {
+      return null;
+    }
+
+    if (!newSegmentMedia.containsAudio && !newSegmentMedia.containsVideo) {
+      return 'Neither audio nor video found in segment.';
+    }
+
+    if (startingMedia.containsVideo && !newSegmentMedia.containsVideo) {
+      return 'Only audio found in segment when we expected video.' + ' We can\'t switch to audio only from a stream that had video.' + ' To get rid of this message, please add codec information to the manifest.';
+    }
+
+    if (!startingMedia.containsVideo && newSegmentMedia.containsVideo) {
+      return 'Video found in segment when we expected only audio.' + ' We can\'t switch to a stream with video from an audio only stream.' + ' To get rid of this message, please add codec information to the manifest.';
+    }
+
+    return null;
+  };
+
+  /**
+   * Calculates a time value that is safe to remove from the back buffer without interupting
+   * playback.
+   *
+   * @param {TimeRange} seekable
+   *        The current seekable range
+   * @param {Number} currentTime
+   *        The current time of the player
+   * @param {Number} targetDuration
+   *        The target duration of the current playlist
+   * @return {Number}
+   *         Time that is safe to remove from the back buffer without interupting playback
+   */
+  var safeBackBufferTrimTime = function safeBackBufferTrimTime(seekable$$1, currentTime, targetDuration) {
+    var removeToTime = void 0;
+
+    if (seekable$$1.length && seekable$$1.start(0) > 0 && seekable$$1.start(0) < currentTime) {
+      // If we have a seekable range use that as the limit for what can be removed safely
+      removeToTime = seekable$$1.start(0);
+    } else {
+      // otherwise remove anything older than 30 seconds before the current play head
+      removeToTime = currentTime - 30;
+    }
+
+    // Don't allow removing from the buffer within target duration of current time
+    // to avoid the possibility of removing the GOP currently being played which could
+    // cause playback stalls.
+    return Math.min(removeToTime, currentTime - targetDuration);
+  };
+
+  var segmentInfoString = function segmentInfoString(segmentInfo) {
+    var _segmentInfo$segment = segmentInfo.segment,
+      start = _segmentInfo$segment.start,
+      end = _segmentInfo$segment.end,
+      _segmentInfo$playlist = segmentInfo.playlist,
+      seq = _segmentInfo$playlist.mediaSequence,
+      id = _segmentInfo$playlist.id,
+      _segmentInfo$playlist2 = _segmentInfo$playlist.segments,
+      segments = _segmentInfo$playlist2 === undefined ? [] : _segmentInfo$playlist2,
+      index = segmentInfo.mediaIndex,
+      timeline = segmentInfo.timeline;
+
+
+    return ['appending [' + index + '] of [' + seq + ', ' + (seq + segments.length) + '] from playlist [' + id + ']', '[' + start + ' => ' + end + '] in timeline [' + timeline + ']'].join(' ');
+  };
+
+  /**
+   * An object that manages segment loading and appending.
+   *
+   * @class SegmentLoader
+   * @param {Object} options required and optional options
+   * @extends videojs.EventTarget
+   */
+
+  var SegmentLoader = function (_videojs$EventTarget3) {
+    inherits(SegmentLoader, _videojs$EventTarget3);
+
+    function SegmentLoader(settings) {
+      classCallCheck(this, SegmentLoader);
+
+      // check pre-conditions
+      var _this22 = possibleConstructorReturn(this, _videojs$EventTarget3.call(this));
+
+      if (!settings) {
+        throw new TypeError('Initialization settings are required');
+      }
+      if (typeof settings.currentTime !== 'function') {
+        throw new TypeError('No currentTime getter specified');
+      }
+      if (!settings.mediaSource) {
+        throw new TypeError('No MediaSource specified');
+      }
+      // public properties
+      _this22.bandwidth = settings.bandwidth;
+      _this22.throughput = {rate: 0, count: 0};
+      _this22.roundTrip = NaN;
+      _this22.resetStats_();
+      _this22.mediaIndex = null;
+
+      // private settings
+      _this22.hasPlayed_ = settings.hasPlayed;
+      _this22.currentTime_ = settings.currentTime;
+      _this22.seekable_ = settings.seekable;
+      _this22.seeking_ = settings.seeking;
+      _this22.duration_ = settings.duration;
+      _this22.mediaSource_ = settings.mediaSource;
+      _this22.hls_ = settings.hls;
+      _this22.loaderType_ = settings.loaderType;
+      _this22.startingMedia_ = void 0;
+      _this22.segmentMetadataTrack_ = settings.segmentMetadataTrack;
+      _this22.goalBufferLength_ = settings.goalBufferLength;
+      _this22.sourceType_ = settings.sourceType;
+      _this22.state_ = 'INIT';
+
+      // private instance variables
+      _this22.checkBufferTimeout_ = null;
+      _this22.error_ = void 0;
+      _this22.currentTimeline_ = -1;
+      _this22.pendingSegment_ = null;
+      _this22.mimeType_ = null;
+      _this22.sourceUpdater_ = null;
+      _this22.xhrOptions_ = null;
+
+      // Fragmented mp4 playback
+      _this22.activeInitSegmentId_ = null;
+      _this22.initSegments_ = {};
+
+      _this22.decrypter_ = settings.decrypter;
+
+      // Manages the tracking and generation of sync-points, mappings
+      // between a time in the display time and a segment index within
+      // a playlist
+      _this22.syncController_ = settings.syncController;
+      _this22.syncPoint_ = {
+        segmentIndex: 0,
+        time: 0
+      };
+
+      _this22.syncController_.on('syncinfoupdate', function () {
+        return _this22.trigger('syncinfoupdate');
+      });
+
+      _this22.mediaSource_.addEventListener('sourceopen', function () {
+        return _this22.ended_ = false;
+      });
+
+      // ...for determining the fetch location
+      _this22.fetchAtBuffer_ = false;
+
+      _this22.logger_ = logger('SegmentLoader[' + _this22.loaderType_ + ']');
+
+      Object.defineProperty(_this22, 'state', {
+        get: function get$$1() {
+          return this.state_;
+        },
+        set: function set$$1(newState) {
+          if (newState !== this.state_) {
+            this.logger_(this.state_ + ' -> ' + newState);
+            this.state_ = newState;
+          }
+        }
+      });
+      return _this22;
+    }
+
+    /**
+     * reset all of our media stats
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.resetStats_ = function resetStats_() {
+      this.mediaBytesTransferred = 0;
+      this.mediaRequests = 0;
+      this.mediaRequestsAborted = 0;
+      this.mediaRequestsTimedout = 0;
+      this.mediaRequestsErrored = 0;
+      this.mediaTransferDuration = 0;
+      this.mediaSecondsLoaded = 0;
+    };
+
+    /**
+     * dispose of the SegmentLoader and reset to the default state
+     */
+
+
+    SegmentLoader.prototype.dispose = function dispose() {
+      this.state = 'DISPOSED';
+      this.pause();
+      this.abort_();
+      if (this.sourceUpdater_) {
+        this.sourceUpdater_.dispose();
+      }
+      this.resetStats_();
+    };
+
+    /**
+     * abort anything that is currently doing on with the SegmentLoader
+     * and reset to a default state
+     */
+
+
+    SegmentLoader.prototype.abort = function abort() {
+      if (this.state !== 'WAITING') {
+        if (this.pendingSegment_) {
+          this.pendingSegment_ = null;
+        }
+        return;
+      }
+
+      this.abort_();
+
+      // We aborted the requests we were waiting on, so reset the loader's state to READY
+      // since we are no longer "waiting" on any requests. XHR callback is not always run
+      // when the request is aborted. This will prevent the loader from being stuck in the
+      // WAITING state indefinitely.
+      this.state = 'READY';
+
+      // don't wait for buffer check timeouts to begin fetching the
+      // next segment
+      if (!this.paused()) {
+        this.monitorBuffer_();
+      }
+    };
+
+    /**
+     * abort all pending xhr requests and null any pending segements
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.abort_ = function abort_() {
+      if (this.pendingSegment_) {
+        this.pendingSegment_.abortRequests();
+      }
+
+      // clear out the segment being processed
+      this.pendingSegment_ = null;
+    };
+
+    /**
+     * set an error on the segment loader and null out any pending segements
+     *
+     * @param {Error} error the error to set on the SegmentLoader
+     * @return {Error} the error that was set or that is currently set
+     */
+
+
+    SegmentLoader.prototype.error = function error(_error) {
+      if (typeof _error !== 'undefined') {
+        this.error_ = _error;
+      }
+
+      this.pendingSegment_ = null;
+      return this.error_;
+    };
+
+    SegmentLoader.prototype.endOfStream = function endOfStream() {
+      this.ended_ = true;
+      this.pause();
+      this.trigger('ended');
+    };
+
+    /**
+     * Indicates which time ranges are buffered
+     *
+     * @return {TimeRange}
+     *         TimeRange object representing the current buffered ranges
+     */
+
+
+    SegmentLoader.prototype.buffered_ = function buffered_() {
+      if (!this.sourceUpdater_) {
+        return videojs$1.createTimeRanges();
+      }
+
+      return this.sourceUpdater_.buffered();
+    };
+
+    /**
+     * Gets and sets init segment for the provided map
+     *
+     * @param {Object} map
+     *        The map object representing the init segment to get or set
+     * @param {Boolean=} set
+     *        If true, the init segment for the provided map should be saved
+     * @return {Object}
+     *         map object for desired init segment
+     */
+
+
+    SegmentLoader.prototype.initSegment = function initSegment(map) {
+      var set$$1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+      if (!map) {
+        return null;
+      }
+
+      var id = initSegmentId(map);
+      var storedMap = this.initSegments_[id];
+
+      if (set$$1 && !storedMap && map.bytes) {
+        this.initSegments_[id] = storedMap = {
+          resolvedUri: map.resolvedUri,
+          byterange: map.byterange,
+          bytes: map.bytes
+        };
+      }
+
+      return storedMap || map;
+    };
+
+    /**
+     * Returns true if all configuration required for loading is present, otherwise false.
+     *
+     * @return {Boolean} True if the all configuration is ready for loading
+     * @private
+     */
+
+
+    SegmentLoader.prototype.couldBeginLoading_ = function couldBeginLoading_() {
+      return this.playlist_ && (
+        // the source updater is created when init_ is called, so either having a
+        // source updater or being in the INIT state with a mimeType is enough
+        // to say we have all the needed configuration to start loading.
+        this.sourceUpdater_ || this.mimeType_ && this.state === 'INIT') && !this.paused();
+    };
+
+    /**
+     * load a playlist and start to fill the buffer
+     */
+
+
+    SegmentLoader.prototype.load = function load() {
+      // un-pause
+      this.monitorBuffer_();
+
+      // if we don't have a playlist yet, keep waiting for one to be
+      // specified
+      if (!this.playlist_) {
+        return;
+      }
+
+      // not sure if this is the best place for this
+      this.syncController_.setDateTimeMapping(this.playlist_);
+
+      // if all the configuration is ready, initialize and begin loading
+      if (this.state === 'INIT' && this.couldBeginLoading_()) {
+        return this.init_();
+      }
+
+      // if we're in the middle of processing a segment already, don't
+      // kick off an additional segment request
+      if (!this.couldBeginLoading_() || this.state !== 'READY' && this.state !== 'INIT') {
+        return;
+      }
+
+      this.state = 'READY';
+    };
+
+    /**
+     * Once all the starting parameters have been specified, begin
+     * operation. This method should only be invoked from the INIT
+     * state.
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.init_ = function init_() {
+      this.state = 'READY';
+      this.sourceUpdater_ = new SourceUpdater(this.mediaSource_, this.mimeType_, this.loaderType_, this.sourceBufferEmitter_);
+      this.resetEverything();
+      return this.monitorBuffer_();
+    };
+
+    /**
+     * set a playlist on the segment loader
+     *
+     * @param {PlaylistLoader} media the playlist to set on the segment loader
+     */
+
+
+    SegmentLoader.prototype.playlist = function playlist(newPlaylist) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+      if (!newPlaylist) {
+        return;
+      }
+
+      var oldPlaylist = this.playlist_;
+      var segmentInfo = this.pendingSegment_;
+
+      this.playlist_ = newPlaylist;
+      this.xhrOptions_ = options;
+
+      // when we haven't started playing yet, the start of a live playlist
+      // is always our zero-time so force a sync update each time the playlist
+      // is refreshed from the server
+      if (!this.hasPlayed_()) {
+        newPlaylist.syncInfo = {
+          mediaSequence: newPlaylist.mediaSequence,
+          time: 0
+        };
+      }
+
+      var oldId = oldPlaylist ? oldPlaylist.id : null;
+
+      this.logger_('playlist update [' + oldId + ' => ' + newPlaylist.id + ']');
+
+      // in VOD, this is always a rendition switch (or we updated our syncInfo above)
+      // in LIVE, we always want to update with new playlists (including refreshes)
+      this.trigger('syncinfoupdate');
+
+      // if we were unpaused but waiting for a playlist, start
+      // buffering now
+      if (this.state === 'INIT' && this.couldBeginLoading_()) {
+        return this.init_();
+      }
+
+      if (!oldPlaylist || oldPlaylist.uri !== newPlaylist.uri) {
+        if (this.mediaIndex !== null) {
+          // we must "resync" the segment loader when we switch renditions and
+          // the segment loader is already synced to the previous rendition
+          this.resyncLoader();
+        }
+
+        // the rest of this function depends on `oldPlaylist` being defined
+        return;
+      }
+
+      // we reloaded the same playlist so we are in a live scenario
+      // and we will likely need to adjust the mediaIndex
+      var mediaSequenceDiff = newPlaylist.mediaSequence - oldPlaylist.mediaSequence;
+
+      this.logger_('live window shift [' + mediaSequenceDiff + ']');
+
+      // update the mediaIndex on the SegmentLoader
+      // this is important because we can abort a request and this value must be
+      // equal to the last appended mediaIndex
+      if (this.mediaIndex !== null) {
+        this.mediaIndex -= mediaSequenceDiff;
+      }
+
+      // update the mediaIndex on the SegmentInfo object
+      // this is important because we will update this.mediaIndex with this value
+      // in `handleUpdateEnd_` after the segment has been successfully appended
+      if (segmentInfo) {
+        segmentInfo.mediaIndex -= mediaSequenceDiff;
+
+        // we need to update the referenced segment so that timing information is
+        // saved for the new playlist's segment, however, if the segment fell off the
+        // playlist, we can leave the old reference and just lose the timing info
+        if (segmentInfo.mediaIndex >= 0) {
+          segmentInfo.segment = newPlaylist.segments[segmentInfo.mediaIndex];
+        }
+      }
+
+      this.syncController_.saveExpiredSegmentInfo(oldPlaylist, newPlaylist);
+    };
+
+    /**
+     * Prevent the loader from fetching additional segments. If there
+     * is a segment request outstanding, it will finish processing
+     * before the loader halts. A segment loader can be unpaused by
+     * calling load().
+     */
+
+
+    SegmentLoader.prototype.pause = function pause() {
+      if (this.checkBufferTimeout_) {
+        window_1.clearTimeout(this.checkBufferTimeout_);
+
+        this.checkBufferTimeout_ = null;
+      }
+    };
+
+    /**
+     * Returns whether the segment loader is fetching additional
+     * segments when given the opportunity. This property can be
+     * modified through calls to pause() and load().
+     */
+
+
+    SegmentLoader.prototype.paused = function paused() {
+      return this.checkBufferTimeout_ === null;
+    };
+
+    /**
+     * create/set the following mimetype on the SourceBuffer through a
+     * SourceUpdater
+     *
+     * @param {String} mimeType the mime type string to use
+     * @param {Object} sourceBufferEmitter an event emitter that fires when a source buffer
+     * is added to the media source
+     */
+
+
+    SegmentLoader.prototype.mimeType = function mimeType(_mimeType, sourceBufferEmitter) {
+      if (this.mimeType_) {
+        return;
+      }
+
+      this.mimeType_ = _mimeType;
+      this.sourceBufferEmitter_ = sourceBufferEmitter;
+      // if we were unpaused but waiting for a sourceUpdater, start
+      // buffering now
+      if (this.state === 'INIT' && this.couldBeginLoading_()) {
+        this.init_();
+      }
+    };
+
+    /**
+     * Delete all the buffered data and reset the SegmentLoader
+     */
+
+
+    SegmentLoader.prototype.resetEverything = function resetEverything() {
+      this.ended_ = false;
+      this.resetLoader();
+      this.remove(0, this.duration_());
+      this.trigger('reseteverything');
+    };
+
+    /**
+     * Force the SegmentLoader to resync and start loading around the currentTime instead
+     * of starting at the end of the buffer
+     *
+     * Useful for fast quality changes
+     */
+
+
+    SegmentLoader.prototype.resetLoader = function resetLoader() {
+      this.fetchAtBuffer_ = false;
+      this.resyncLoader();
+    };
+
+    /**
+     * Force the SegmentLoader to restart synchronization and make a conservative guess
+     * before returning to the simple walk-forward method
+     */
+
+
+    SegmentLoader.prototype.resyncLoader = function resyncLoader() {
+      this.mediaIndex = null;
+      this.syncPoint_ = null;
+      this.abort();
+    };
+
+    /**
+     * Remove any data in the source buffer between start and end times
+     * @param {Number} start - the start time of the region to remove from the buffer
+     * @param {Number} end - the end time of the region to remove from the buffer
+     */
+
+
+    SegmentLoader.prototype.remove = function remove(start, end) {
+      if (this.sourceUpdater_) {
+        this.sourceUpdater_.remove(start, end);
+      }
+      removeCuesFromTrack(start, end, this.segmentMetadataTrack_);
+    };
+
+    /**
+     * (re-)schedule monitorBufferTick_ to run as soon as possible
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.monitorBuffer_ = function monitorBuffer_() {
+      if (this.checkBufferTimeout_) {
+        window_1.clearTimeout(this.checkBufferTimeout_);
+      }
+
+      this.checkBufferTimeout_ = window_1.setTimeout(this.monitorBufferTick_.bind(this), 1);
+    };
+
+    /**
+     * As long as the SegmentLoader is in the READY state, periodically
+     * invoke fillBuffer_().
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.monitorBufferTick_ = function monitorBufferTick_() {
+      if (this.state === 'READY') {
+        this.fillBuffer_();
+      }
+
+      if (this.checkBufferTimeout_) {
+        window_1.clearTimeout(this.checkBufferTimeout_);
+      }
+
+      this.checkBufferTimeout_ = window_1.setTimeout(this.monitorBufferTick_.bind(this), CHECK_BUFFER_DELAY);
+    };
+
+    /**
+     * fill the buffer with segements unless the sourceBuffers are
+     * currently updating
+     *
+     * Note: this function should only ever be called by monitorBuffer_
+     * and never directly
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.fillBuffer_ = function fillBuffer_() {
+      if (this.sourceUpdater_.updating()) {
+        return;
+      }
+
+      if (!this.syncPoint_) {
+        this.syncPoint_ = this.syncController_.getSyncPoint(this.playlist_, this.duration_(), this.currentTimeline_, this.currentTime_());
+      }
+
+      // see if we need to begin loading immediately
+      var segmentInfo = this.checkBuffer_(this.buffered_(), this.playlist_, this.mediaIndex, this.hasPlayed_(), this.currentTime_(), this.syncPoint_);
+
+      if (!segmentInfo) {
+        return;
+      }
+
+      var isEndOfStream = detectEndOfStream(this.playlist_, this.mediaSource_, segmentInfo.mediaIndex);
+
+      if (isEndOfStream) {
+        this.endOfStream();
+        return;
+      }
+
+      if (segmentInfo.mediaIndex === this.playlist_.segments.length - 1 && this.mediaSource_.readyState === 'ended' && !this.seeking_()) {
+        return;
+      }
+
+      // We will need to change timestampOffset of the sourceBuffer if either of
+      // the following conditions are true:
+      // - The segment.timeline !== this.currentTimeline
+      //   (we are crossing a discontinuity somehow)
+      // - The "timestampOffset" for the start of this segment is less than
+      //   the currently set timestampOffset
+      if (segmentInfo.timeline !== this.currentTimeline_ || segmentInfo.startOfSegment !== null && segmentInfo.startOfSegment < this.sourceUpdater_.timestampOffset()) {
+        this.syncController_.reset();
+        segmentInfo.timestampOffset = segmentInfo.startOfSegment;
+      }
+
+      this.loadSegment_(segmentInfo);
+    };
+
+    /**
+     * Determines what segment request should be made, given current playback
+     * state.
+     *
+     * @param {TimeRanges} buffered - the state of the buffer
+     * @param {Object} playlist - the playlist object to fetch segments from
+     * @param {Number} mediaIndex - the previous mediaIndex fetched or null
+     * @param {Boolean} hasPlayed - a flag indicating whether we have played or not
+     * @param {Number} currentTime - the playback position in seconds
+     * @param {Object} syncPoint - a segment info object that describes the
+     * @returns {Object} a segment request object that describes the segment to load
+     */
+
+
+    SegmentLoader.prototype.checkBuffer_ = function checkBuffer_(buffered, playlist, mediaIndex, hasPlayed, currentTime, syncPoint) {
+      var lastBufferedEnd = 0;
+      var startOfSegment = void 0;
+
+      if (buffered.length) {
+        lastBufferedEnd = buffered.end(buffered.length - 1);
+      }
+
+      var bufferedTime = Math.max(0, lastBufferedEnd - currentTime);
+
+      if (!playlist.segments.length) {
+        return null;
+      }
+
+      // if there is plenty of content buffered, and the video has
+      // been played before relax for awhile
+      if (bufferedTime >= this.goalBufferLength_()) {
+        return null;
+      }
+
+      // if the video has not yet played once, and we already have
+      // one segment downloaded do nothing
+      if (!hasPlayed && bufferedTime >= 1) {
+        return null;
+      }
+
+      // When the syncPoint is null, there is no way of determining a good
+      // conservative segment index to fetch from
+      // The best thing to do here is to get the kind of sync-point data by
+      // making a request
+      if (syncPoint === null) {
+        mediaIndex = this.getSyncSegmentCandidate_(playlist);
+        return this.generateSegmentInfo_(playlist, mediaIndex, null, true);
+      }
+
+      // Under normal playback conditions fetching is a simple walk forward
+      if (mediaIndex !== null) {
+        var segment = playlist.segments[mediaIndex];
+
+        if (segment && segment.end) {
+          startOfSegment = segment.end;
+        } else {
+          startOfSegment = lastBufferedEnd;
+        }
+        return this.generateSegmentInfo_(playlist, mediaIndex + 1, startOfSegment, false);
+      }
+
+      // There is a sync-point but the lack of a mediaIndex indicates that
+      // we need to make a good conservative guess about which segment to
+      // fetch
+      if (this.fetchAtBuffer_) {
+        // Find the segment containing the end of the buffer
+        var mediaSourceInfo = Playlist.getMediaInfoForTime(playlist, lastBufferedEnd, syncPoint.segmentIndex, syncPoint.time);
+
+        mediaIndex = mediaSourceInfo.mediaIndex;
+        startOfSegment = mediaSourceInfo.startTime;
+      } else {
+        // Find the segment containing currentTime
+        var _mediaSourceInfo = Playlist.getMediaInfoForTime(playlist, currentTime, syncPoint.segmentIndex, syncPoint.time);
+
+        mediaIndex = _mediaSourceInfo.mediaIndex;
+        startOfSegment = _mediaSourceInfo.startTime;
+      }
+
+      return this.generateSegmentInfo_(playlist, mediaIndex, startOfSegment, false);
+    };
+
+    /**
+     * The segment loader has no recourse except to fetch a segment in the
+     * current playlist and use the internal timestamps in that segment to
+     * generate a syncPoint. This function returns a good candidate index
+     * for that process.
+     *
+     * @param {Object} playlist - the playlist object to look for a
+     * @returns {Number} An index of a segment from the playlist to load
+     */
+
+
+    SegmentLoader.prototype.getSyncSegmentCandidate_ = function getSyncSegmentCandidate_(playlist) {
+      var _this23 = this;
+
+      if (this.currentTimeline_ === -1) {
+        return 0;
+      }
+
+      var segmentIndexArray = playlist.segments.map(function (s, i) {
+        return {
+          timeline: s.timeline,
+          segmentIndex: i
+        };
+      }).filter(function (s) {
+        return s.timeline === _this23.currentTimeline_;
+      });
+
+      if (segmentIndexArray.length) {
+        return segmentIndexArray[Math.min(segmentIndexArray.length - 1, 1)].segmentIndex;
+      }
+
+      return Math.max(playlist.segments.length - 1, 0);
+    };
+
+    SegmentLoader.prototype.generateSegmentInfo_ = function generateSegmentInfo_(playlist, mediaIndex, startOfSegment, isSyncRequest) {
+      if (mediaIndex < 0 || mediaIndex >= playlist.segments.length) {
+        return null;
+      }
+
+      var segment = playlist.segments[mediaIndex];
+
+      return {
+        requestId: 'segment-loader-' + Math.random(),
+        // resolve the segment URL relative to the playlist
+        uri: segment.resolvedUri,
+        // the segment's mediaIndex at the time it was requested
+        mediaIndex: mediaIndex,
+        // whether or not to update the SegmentLoader's state with this
+        // segment's mediaIndex
+        isSyncRequest: isSyncRequest,
+        startOfSegment: startOfSegment,
+        // the segment's playlist
+        playlist: playlist,
+        // unencrypted bytes of the segment
+        bytes: null,
+        // when a key is defined for this segment, the encrypted bytes
+        encryptedBytes: null,
+        // The target timestampOffset for this segment when we append it
+        // to the source buffer
+        timestampOffset: null,
+        // The timeline that the segment is in
+        timeline: segment.timeline,
+        // The expected duration of the segment in seconds
+        duration: segment.duration,
+        // retain the segment in case the playlist updates while doing an async process
+        segment: segment
+      };
+    };
+
+    /**
+     * Determines if the network has enough bandwidth to complete the current segment
+     * request in a timely manner. If not, the request will be aborted early and bandwidth
+     * updated to trigger a playlist switch.
+     *
+     * @param {Object} stats
+     *        Object containing stats about the request timing and size
+     * @return {Boolean} True if the request was aborted, false otherwise
+     * @private
+     */
+
+
+    SegmentLoader.prototype.abortRequestEarly_ = function abortRequestEarly_(stats) {
+      if (this.hls_.tech_.paused() ||
+        // Don't abort if the current playlist is on the lowestEnabledRendition
+        // TODO: Replace using timeout with a boolean indicating whether this playlist is
+        //       the lowestEnabledRendition.
+        !this.xhrOptions_.timeout ||
+        // Don't abort if we have no bandwidth information to estimate segment sizes
+        !this.playlist_.attributes.BANDWIDTH) {
+        return false;
+      }
+
+      // Wait at least 1 second since the first byte of data has been received before
+      // using the calculated bandwidth from the progress event to allow the bitrate
+      // to stabilize
+      if (Date.now() - (stats.firstBytesReceivedAt || Date.now()) < 1000) {
+        return false;
+      }
+
+      var currentTime = this.currentTime_();
+      var measuredBandwidth = stats.bandwidth;
+      var segmentDuration = this.pendingSegment_.duration;
+
+      var requestTimeRemaining = Playlist.estimateSegmentRequestTime(segmentDuration, measuredBandwidth, this.playlist_, stats.bytesReceived);
+
+      // Subtract 1 from the timeUntilRebuffer so we still consider an early abort
+      // if we are only left with less than 1 second when the request completes.
+      // A negative timeUntilRebuffering indicates we are already rebuffering
+      var timeUntilRebuffer$$1 = timeUntilRebuffer(this.buffered_(), currentTime, this.hls_.tech_.playbackRate()) - 1;
+
+      // Only consider aborting early if the estimated time to finish the download
+      // is larger than the estimated time until the player runs out of forward buffer
+      if (requestTimeRemaining <= timeUntilRebuffer$$1) {
+        return false;
+      }
+
+      var switchCandidate = minRebufferMaxBandwidthSelector({
+        master: this.hls_.playlists.master,
+        currentTime: currentTime,
+        bandwidth: measuredBandwidth,
+        duration: this.duration_(),
+        segmentDuration: segmentDuration,
+        timeUntilRebuffer: timeUntilRebuffer$$1,
+        currentTimeline: this.currentTimeline_,
+        syncController: this.syncController_
+      });
+
+      if (!switchCandidate) {
+        return;
+      }
+
+      var rebufferingImpact = requestTimeRemaining - timeUntilRebuffer$$1;
+
+      var timeSavedBySwitching = rebufferingImpact - switchCandidate.rebufferingImpact;
+
+      var minimumTimeSaving = 0.5;
+
+      // If we are already rebuffering, increase the amount of variance we add to the
+      // potential round trip time of the new request so that we are not too aggressive
+      // with switching to a playlist that might save us a fraction of a second.
+      if (timeUntilRebuffer$$1 <= TIME_FUDGE_FACTOR) {
+        minimumTimeSaving = 1;
+      }
+
+      if (!switchCandidate.playlist || switchCandidate.playlist.uri === this.playlist_.uri || timeSavedBySwitching < minimumTimeSaving) {
+        return false;
+      }
+
+      // set the bandwidth to that of the desired playlist being sure to scale by
+      // BANDWIDTH_VARIANCE and add one so the playlist selector does not exclude it
+      // don't trigger a bandwidthupdate as the bandwidth is artifial
+      this.bandwidth = switchCandidate.playlist.attributes.BANDWIDTH * Config.BANDWIDTH_VARIANCE + 1;
+      this.abort();
+      this.trigger('earlyabort');
+      return true;
+    };
+
+    /**
+     * XHR `progress` event handler
+     *
+     * @param {Event}
+     *        The XHR `progress` event
+     * @param {Object} simpleSegment
+     *        A simplified segment object copy
+     * @private
+     */
+
+
+    SegmentLoader.prototype.handleProgress_ = function handleProgress_(event, simpleSegment) {
+      if (!this.pendingSegment_ || simpleSegment.requestId !== this.pendingSegment_.requestId || this.abortRequestEarly_(simpleSegment.stats)) {
+        return;
+      }
+
+      this.trigger('progress');
+    };
+
+    /**
+     * load a specific segment from a request into the buffer
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.loadSegment_ = function loadSegment_(segmentInfo) {
+      this.state = 'WAITING';
+      this.pendingSegment_ = segmentInfo;
+      this.trimBackBuffer_(segmentInfo);
+
+      segmentInfo.abortRequests = mediaSegmentRequest(this.hls_.xhr, this.xhrOptions_, this.decrypter_, this.createSimplifiedSegmentObj_(segmentInfo),
+        // progress callback
+        this.handleProgress_.bind(this), this.segmentRequestFinished_.bind(this));
+    };
+
+    /**
+     * trim the back buffer so that we don't have too much data
+     * in the source buffer
+     *
+     * @private
+     *
+     * @param {Object} segmentInfo - the current segment
+     */
+
+
+    SegmentLoader.prototype.trimBackBuffer_ = function trimBackBuffer_(segmentInfo) {
+      var removeToTime = safeBackBufferTrimTime(this.seekable_(), this.currentTime_(), this.playlist_.targetDuration || 10);
+
+      // Chrome has a hard limit of 150MB of
+      // buffer and a very conservative "garbage collector"
+      // We manually clear out the old buffer to ensure
+      // we don't trigger the QuotaExceeded error
+      // on the source buffer during subsequent appends
+
+      if (removeToTime > 0) {
+        this.remove(0, removeToTime);
+      }
+    };
+
+    /**
+     * created a simplified copy of the segment object with just the
+     * information necessary to perform the XHR and decryption
+     *
+     * @private
+     *
+     * @param {Object} segmentInfo - the current segment
+     * @returns {Object} a simplified segment object copy
+     */
+
+
+    SegmentLoader.prototype.createSimplifiedSegmentObj_ = function createSimplifiedSegmentObj_(segmentInfo) {
+      var segment = segmentInfo.segment;
+      var simpleSegment = {
+        resolvedUri: segment.resolvedUri,
+        byterange: segment.byterange,
+        requestId: segmentInfo.requestId
+      };
+
+      if (segment.key) {
+        // if the media sequence is greater than 2^32, the IV will be incorrect
+        // assuming 10s segments, that would be about 1300 years
+        var iv = segment.key.iv || new Uint32Array([0, 0, 0, segmentInfo.mediaIndex + segmentInfo.playlist.mediaSequence]);
+
+        simpleSegment.key = {
+          resolvedUri: segment.key.resolvedUri,
+          iv: iv
+        };
+      }
+
+      if (segment.map) {
+        simpleSegment.map = this.initSegment(segment.map);
+      }
+
+      return simpleSegment;
+    };
+
+    /**
+     * Handle the callback from the segmentRequest function and set the
+     * associated SegmentLoader state and errors if necessary
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.segmentRequestFinished_ = function segmentRequestFinished_(error, simpleSegment) {
+      // every request counts as a media request even if it has been aborted
+      // or canceled due to a timeout
+      this.mediaRequests += 1;
+
+      if (simpleSegment.stats) {
+        this.mediaBytesTransferred += simpleSegment.stats.bytesReceived;
+        this.mediaTransferDuration += simpleSegment.stats.roundTripTime;
+      }
+
+      // The request was aborted and the SegmentLoader has already been reset
+      if (!this.pendingSegment_) {
+        this.mediaRequestsAborted += 1;
+        return;
+      }
+
+      // the request was aborted and the SegmentLoader has already started
+      // another request. this can happen when the timeout for an aborted
+      // request triggers due to a limitation in the XHR library
+      // do not count this as any sort of request or we risk double-counting
+      if (simpleSegment.requestId !== this.pendingSegment_.requestId) {
+        return;
+      }
+
+      // an error occurred from the active pendingSegment_ so reset everything
+      if (error) {
+        this.pendingSegment_ = null;
+        this.state = 'READY';
+
+        // the requests were aborted just record the aborted stat and exit
+        // this is not a true error condition and nothing corrective needs
+        // to be done
+        if (error.code === REQUEST_ERRORS.ABORTED) {
+          this.mediaRequestsAborted += 1;
+          return;
+        }
+
+        this.pause();
+
+        // the error is really just that at least one of the requests timed-out
+        // set the bandwidth to a very low value and trigger an ABR switch to
+        // take emergency action
+        if (error.code === REQUEST_ERRORS.TIMEOUT) {
+          this.mediaRequestsTimedout += 1;
+          this.bandwidth = 1;
+          this.roundTrip = NaN;
+          this.trigger('bandwidthupdate');
+          return;
+        }
+
+        // if control-flow has arrived here, then the error is real
+        // emit an error event to blacklist the current playlist
+        this.mediaRequestsErrored += 1;
+        this.error(error);
+        this.trigger('error');
+        return;
+      }
+
+      // the response was a success so set any bandwidth stats the request
+      // generated for ABR purposes
+      this.bandwidth = simpleSegment.stats.bandwidth;
+      this.roundTrip = simpleSegment.stats.roundTripTime;
+
+      // if this request included an initialization segment, save that data
+      // to the initSegment cache
+      if (simpleSegment.map) {
+        simpleSegment.map = this.initSegment(simpleSegment.map, true);
+      }
+
+      this.processSegmentResponse_(simpleSegment);
+    };
+
+    /**
+     * Move any important data from the simplified segment object
+     * back to the real segment object for future phases
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.processSegmentResponse_ = function processSegmentResponse_(simpleSegment) {
+      var segmentInfo = this.pendingSegment_;
+
+      segmentInfo.bytes = simpleSegment.bytes;
+      if (simpleSegment.map) {
+        segmentInfo.segment.map.bytes = simpleSegment.map.bytes;
+      }
+
+      segmentInfo.endOfAllRequests = simpleSegment.endOfAllRequests;
+      this.handleSegment_();
+    };
+
+    /**
+     * append a decrypted segement to the SourceBuffer through a SourceUpdater
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.handleSegment_ = function handleSegment_() {
+      var _this24 = this;
+
+      if (!this.pendingSegment_) {
+        this.state = 'READY';
+        return;
+      }
+
+      var segmentInfo = this.pendingSegment_;
+      var segment = segmentInfo.segment;
+      var timingInfo = this.syncController_.probeSegmentInfo(segmentInfo);
+
+      // When we have our first timing info, determine what media types this loader is
+      // dealing with. Although we're maintaining extra state, it helps to preserve the
+      // separation of segment loader from the actual source buffers.
+      if (typeof this.startingMedia_ === 'undefined' && timingInfo && (
+        // Guard against cases where we're not getting timing info at all until we are
+        // certain that all streams will provide it.
+        timingInfo.containsAudio || timingInfo.containsVideo)) {
+        this.startingMedia_ = {
+          containsAudio: timingInfo.containsAudio,
+          containsVideo: timingInfo.containsVideo
+        };
+      }
+
+      var illegalMediaSwitchError = illegalMediaSwitch(this.loaderType_, this.startingMedia_, timingInfo);
+
+      if (illegalMediaSwitchError) {
+        this.error({
+          message: illegalMediaSwitchError,
+          blacklistDuration: Infinity
+        });
+        this.trigger('error');
+        return;
+      }
+
+      if (segmentInfo.isSyncRequest) {
+        this.trigger('syncinfoupdate');
+        this.pendingSegment_ = null;
+        this.state = 'READY';
+        return;
+      }
+
+      if (segmentInfo.timestampOffset !== null && segmentInfo.timestampOffset !== this.sourceUpdater_.timestampOffset()) {
+        this.sourceUpdater_.timestampOffset(segmentInfo.timestampOffset);
+        // fired when a timestamp offset is set in HLS (can also identify discontinuities)
+        this.trigger('timestampoffset');
+      }
+
+      var timelineMapping = this.syncController_.mappingForTimeline(segmentInfo.timeline);
+
+      if (timelineMapping !== null) {
+        this.trigger({
+          type: 'segmenttimemapping',
+          mapping: timelineMapping
+        });
+      }
+
+      this.state = 'APPENDING';
+
+      // if the media initialization segment is changing, append it
+      // before the content segment
+      if (segment.map) {
+        var initId = initSegmentId(segment.map);
+
+        if (!this.activeInitSegmentId_ || this.activeInitSegmentId_ !== initId) {
+          var initSegment = this.initSegment(segment.map);
+
+          this.sourceUpdater_.appendBuffer(initSegment.bytes, function () {
+            _this24.activeInitSegmentId_ = initId;
+          });
+        }
+      }
+
+      segmentInfo.byteLength = segmentInfo.bytes.byteLength;
+      if (typeof segment.start === 'number' && typeof segment.end === 'number') {
+        this.mediaSecondsLoaded += segment.end - segment.start;
+      } else {
+        this.mediaSecondsLoaded += segment.duration;
+      }
+
+      this.logger_(segmentInfoString(segmentInfo));
+
+      this.sourceUpdater_.appendBuffer(segmentInfo.bytes, this.handleUpdateEnd_.bind(this));
+    };
+
+    /**
+     * callback to run when appendBuffer is finished. detects if we are
+     * in a good state to do things with the data we got, or if we need
+     * to wait for more
+     *
+     * @private
+     */
+
+
+    SegmentLoader.prototype.handleUpdateEnd_ = function handleUpdateEnd_() {
+      if (!this.pendingSegment_) {
+        this.state = 'READY';
+        if (!this.paused()) {
+          this.monitorBuffer_();
+        }
+        return;
+      }
+
+      var segmentInfo = this.pendingSegment_;
+      var segment = segmentInfo.segment;
+      var isWalkingForward = this.mediaIndex !== null;
+
+      this.pendingSegment_ = null;
+      this.recordThroughput_(segmentInfo);
+      this.addSegmentMetadataCue_(segmentInfo);
+
+      this.state = 'READY';
+
+      this.mediaIndex = segmentInfo.mediaIndex;
+      this.fetchAtBuffer_ = true;
+      this.currentTimeline_ = segmentInfo.timeline;
+
+      // We must update the syncinfo to recalculate the seekable range before
+      // the following conditional otherwise it may consider this a bad "guess"
+      // and attempt to resync when the post-update seekable window and live
+      // point would mean that this was the perfect segment to fetch
+      this.trigger('syncinfoupdate');
+
+      // If we previously appended a segment that ends more than 3 targetDurations before
+      // the currentTime_ that means that our conservative guess was too conservative.
+      // In that case, reset the loader state so that we try to use any information gained
+      // from the previous request to create a new, more accurate, sync-point.
+      if (segment.end && this.currentTime_() - segment.end > segmentInfo.playlist.targetDuration * 3) {
+        this.resetEverything();
+        return;
+      }
+
+      // Don't do a rendition switch unless we have enough time to get a sync segment
+      // and conservatively guess
+      if (isWalkingForward) {
+        this.trigger('bandwidthupdate');
+      }
+      this.trigger('progress');
+
+      // any time an update finishes and the last segment is in the
+      // buffer, end the stream. this ensures the "ended" event will
+      // fire if playback reaches that point.
+      var isEndOfStream = detectEndOfStream(segmentInfo.playlist, this.mediaSource_, segmentInfo.mediaIndex + 1);
+
+      if (isEndOfStream) {
+        this.endOfStream();
+      }
+
+      if (!this.paused()) {
+        this.monitorBuffer_();
+      }
+    };
+
+    /**
+     * Records the current throughput of the decrypt, transmux, and append
+     * portion of the semgment pipeline. `throughput.rate` is a the cumulative
+     * moving average of the throughput. `throughput.count` is the number of
+     * data points in the average.
+     *
+     * @private
+     * @param {Object} segmentInfo the object returned by loadSegment
+     */
+
+
+    SegmentLoader.prototype.recordThroughput_ = function recordThroughput_(segmentInfo) {
+      var rate = this.throughput.rate;
+      // Add one to the time to ensure that we don't accidentally attempt to divide
+      // by zero in the case where the throughput is ridiculously high
+      var segmentProcessingTime = Date.now() - segmentInfo.endOfAllRequests + 1;
+      // Multiply by 8000 to convert from bytes/millisecond to bits/second
+      var segmentProcessingThroughput = Math.floor(segmentInfo.byteLength / segmentProcessingTime * 8 * 1000);
+
+      // This is just a cumulative moving average calculation:
+      //   newAvg = oldAvg + (sample - oldAvg) / (sampleCount + 1)
+      this.throughput.rate += (segmentProcessingThroughput - rate) / ++this.throughput.count;
+    };
+
+    /**
+     * Adds a cue to the segment-metadata track with some metadata information about the
+     * segment
+     *
+     * @private
+     * @param {Object} segmentInfo
+     *        the object returned by loadSegment
+     * @method addSegmentMetadataCue_
+     */
+
+
+    SegmentLoader.prototype.addSegmentMetadataCue_ = function addSegmentMetadataCue_(segmentInfo) {
+      if (!this.segmentMetadataTrack_) {
+        return;
+      }
+
+      var segment = segmentInfo.segment;
+      var start = segment.start;
+      var end = segment.end;
+
+      // Do not try adding the cue if the start and end times are invalid.
+      if (!finite(start) || !finite(end)) {
+        return;
+      }
+
+      removeCuesFromTrack(start, end, this.segmentMetadataTrack_);
+
+      var Cue = window_1.WebKitDataCue || window_1.VTTCue;
+      var value = {
+        bandwidth: segmentInfo.playlist.attributes.BANDWIDTH,
+        resolution: segmentInfo.playlist.attributes.RESOLUTION,
+        codecs: segmentInfo.playlist.attributes.CODECS,
+        byteLength: segmentInfo.byteLength,
+        uri: segmentInfo.uri,
+        timeline: segmentInfo.timeline,
+        playlist: segmentInfo.playlist.uri,
+        start: start,
+        end: end
+      };
+      var data = JSON.stringify(value);
+      var cue = new Cue(start, end, data);
+
+      // Attach the metadata to the value property of the cue to keep consistency between
+      // the differences of WebKitDataCue in safari and VTTCue in other browsers
+      cue.value = value;
+
+      this.segmentMetadataTrack_.addCue(cue);
+    };
+
+    return SegmentLoader;
+  }(videojs$1.EventTarget);
+
+  /**
+   * @file vtt-segment-loader.js
+   */
+
+  var VTT_LINE_TERMINATORS = new Uint8Array('\n\n'.split('').map(function (char) {
+    return char.charCodeAt(0);
+  }));
+
+  var uintToString = function uintToString(uintArray) {
+    return String.fromCharCode.apply(null, uintArray);
+  };
+
+  /**
+   * An object that manages segment loading and appending.
+   *
+   * @class VTTSegmentLoader
+   * @param {Object} options required and optional options
+   * @extends videojs.EventTarget
+   */
+
+  var VTTSegmentLoader = function (_SegmentLoader) {
+    inherits(VTTSegmentLoader, _SegmentLoader);
+
+    function VTTSegmentLoader(settings) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+      classCallCheck(this, VTTSegmentLoader);
+
+      // SegmentLoader requires a MediaSource be specified or it will throw an error;
+      // however, VTTSegmentLoader has no need of a media source, so delete the reference
+      var _this25 = possibleConstructorReturn(this, _SegmentLoader.call(this, settings, options));
+
+      _this25.mediaSource_ = null;
+
+      _this25.subtitlesTrack_ = null;
+      return _this25;
+    }
+
+    /**
+     * Indicates which time ranges are buffered
+     *
+     * @return {TimeRange}
+     *         TimeRange object representing the current buffered ranges
+     */
+
+
+    VTTSegmentLoader.prototype.buffered_ = function buffered_() {
+      if (!this.subtitlesTrack_ || !this.subtitlesTrack_.cues.length) {
+        return videojs$1.createTimeRanges();
+      }
+
+      var cues = this.subtitlesTrack_.cues;
+      var start = cues[0].startTime;
+      var end = cues[cues.length - 1].startTime;
+
+      return videojs$1.createTimeRanges([[start, end]]);
+    };
+
+    /**
+     * Gets and sets init segment for the provided map
+     *
+     * @param {Object} map
+     *        The map object representing the init segment to get or set
+     * @param {Boolean=} set
+     *        If true, the init segment for the provided map should be saved
+     * @return {Object}
+     *         map object for desired init segment
+     */
+
+
+    VTTSegmentLoader.prototype.initSegment = function initSegment(map) {
+      var set$$1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+      if (!map) {
+        return null;
+      }
+
+      var id = initSegmentId(map);
+      var storedMap = this.initSegments_[id];
+
+      if (set$$1 && !storedMap && map.bytes) {
+        // append WebVTT line terminators to the media initialization segment if it exists
+        // to follow the WebVTT spec (https://w3c.github.io/webvtt/#file-structure) that
+        // requires two or more WebVTT line terminators between the WebVTT header and the
+        // rest of the file
+        var combinedByteLength = VTT_LINE_TERMINATORS.byteLength + map.bytes.byteLength;
+        var combinedSegment = new Uint8Array(combinedByteLength);
+
+        combinedSegment.set(map.bytes);
+        combinedSegment.set(VTT_LINE_TERMINATORS, map.bytes.byteLength);
+
+        this.initSegments_[id] = storedMap = {
+          resolvedUri: map.resolvedUri,
+          byterange: map.byterange,
+          bytes: combinedSegment
+        };
+      }
+
+      return storedMap || map;
+    };
+
+    /**
+     * Returns true if all configuration required for loading is present, otherwise false.
+     *
+     * @return {Boolean} True if the all configuration is ready for loading
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.couldBeginLoading_ = function couldBeginLoading_() {
+      return this.playlist_ && this.subtitlesTrack_ && !this.paused();
+    };
+
+    /**
+     * Once all the starting parameters have been specified, begin
+     * operation. This method should only be invoked from the INIT
+     * state.
+     *
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.init_ = function init_() {
+      this.state = 'READY';
+      this.resetEverything();
+      return this.monitorBuffer_();
+    };
+
+    /**
+     * Set a subtitle track on the segment loader to add subtitles to
+     *
+     * @param {TextTrack=} track
+     *        The text track to add loaded subtitles to
+     * @return {TextTrack}
+     *        Returns the subtitles track
+     */
+
+
+    VTTSegmentLoader.prototype.track = function track(_track) {
+      if (typeof _track === 'undefined') {
+        return this.subtitlesTrack_;
+      }
+
+      this.subtitlesTrack_ = _track;
+
+      // if we were unpaused but waiting for a sourceUpdater, start
+      // buffering now
+      if (this.state === 'INIT' && this.couldBeginLoading_()) {
+        this.init_();
+      }
+
+      return this.subtitlesTrack_;
+    };
+
+    /**
+     * Remove any data in the source buffer between start and end times
+     * @param {Number} start - the start time of the region to remove from the buffer
+     * @param {Number} end - the end time of the region to remove from the buffer
+     */
+
+
+    VTTSegmentLoader.prototype.remove = function remove(start, end) {
+      removeCuesFromTrack(start, end, this.subtitlesTrack_);
+    };
+
+    /**
+     * fill the buffer with segements unless the sourceBuffers are
+     * currently updating
+     *
+     * Note: this function should only ever be called by monitorBuffer_
+     * and never directly
+     *
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.fillBuffer_ = function fillBuffer_() {
+      var _this26 = this;
+
+      if (!this.syncPoint_) {
+        this.syncPoint_ = this.syncController_.getSyncPoint(this.playlist_, this.duration_(), this.currentTimeline_, this.currentTime_());
+      }
+
+      // see if we need to begin loading immediately
+      var segmentInfo = this.checkBuffer_(this.buffered_(), this.playlist_, this.mediaIndex, this.hasPlayed_(), this.currentTime_(), this.syncPoint_);
+
+      segmentInfo = this.skipEmptySegments_(segmentInfo);
+
+      if (!segmentInfo) {
+        return;
+      }
+
+      if (this.syncController_.timestampOffsetForTimeline(segmentInfo.timeline) === null) {
+        // We don't have the timestamp offset that we need to sync subtitles.
+        // Rerun on a timestamp offset or user interaction.
+        var checkTimestampOffset = function checkTimestampOffset() {
+          _this26.state = 'READY';
+          if (!_this26.paused()) {
+            // if not paused, queue a buffer check as soon as possible
+            _this26.monitorBuffer_();
+          }
+        };
+
+        this.syncController_.one('timestampoffset', checkTimestampOffset);
+        this.state = 'WAITING_ON_TIMELINE';
+        return;
+      }
+
+      this.loadSegment_(segmentInfo);
+    };
+
+    /**
+     * Prevents the segment loader from requesting segments we know contain no subtitles
+     * by walking forward until we find the next segment that we don't know whether it is
+     * empty or not.
+     *
+     * @param {Object} segmentInfo
+     *        a segment info object that describes the current segment
+     * @return {Object}
+     *         a segment info object that describes the current segment
+     */
+
+
+    VTTSegmentLoader.prototype.skipEmptySegments_ = function skipEmptySegments_(segmentInfo) {
+      while (segmentInfo && segmentInfo.segment.empty) {
+        segmentInfo = this.generateSegmentInfo_(segmentInfo.playlist, segmentInfo.mediaIndex + 1, segmentInfo.startOfSegment + segmentInfo.duration, segmentInfo.isSyncRequest);
+      }
+      return segmentInfo;
+    };
+
+    /**
+     * append a decrypted segement to the SourceBuffer through a SourceUpdater
+     *
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.handleSegment_ = function handleSegment_() {
+      var _this27 = this;
+
+      if (!this.pendingSegment_ || !this.subtitlesTrack_) {
+        this.state = 'READY';
+        return;
+      }
+
+      this.state = 'APPENDING';
+
+      var segmentInfo = this.pendingSegment_;
+      var segment = segmentInfo.segment;
+
+      // Make sure that vttjs has loaded, otherwise, wait till it finished loading
+      if (typeof window_1.WebVTT !== 'function' && this.subtitlesTrack_ && this.subtitlesTrack_.tech_) {
+
+        var loadHandler = function loadHandler() {
+          _this27.handleSegment_();
+        };
+
+        this.state = 'WAITING_ON_VTTJS';
+        this.subtitlesTrack_.tech_.one('vttjsloaded', loadHandler);
+        this.subtitlesTrack_.tech_.one('vttjserror', function () {
+          _this27.subtitlesTrack_.tech_.off('vttjsloaded', loadHandler);
+          _this27.error({
+            message: 'Error loading vtt.js'
+          });
+          _this27.state = 'READY';
+          _this27.pause();
+          _this27.trigger('error');
+        });
+
+        return;
+      }
+
+      segment.requested = true;
+
+      try {
+        this.parseVTTCues_(segmentInfo);
+      } catch (e) {
+        this.error({
+          message: e.message
+        });
+        this.state = 'READY';
+        this.pause();
+        return this.trigger('error');
+      }
+
+      this.updateTimeMapping_(segmentInfo, this.syncController_.timelines[segmentInfo.timeline], this.playlist_);
+
+      if (segmentInfo.isSyncRequest) {
+        this.trigger('syncinfoupdate');
+        this.pendingSegment_ = null;
+        this.state = 'READY';
+        return;
+      }
+
+      segmentInfo.byteLength = segmentInfo.bytes.byteLength;
+
+      this.mediaSecondsLoaded += segment.duration;
+
+      if (segmentInfo.cues.length) {
+        // remove any overlapping cues to prevent doubling
+        this.remove(segmentInfo.cues[0].endTime, segmentInfo.cues[segmentInfo.cues.length - 1].endTime);
+      }
+
+      segmentInfo.cues.forEach(function (cue) {
+        _this27.subtitlesTrack_.addCue(cue);
+      });
+
+      this.handleUpdateEnd_();
+    };
+
+    /**
+     * Uses the WebVTT parser to parse the segment response
+     *
+     * @param {Object} segmentInfo
+     *        a segment info object that describes the current segment
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.parseVTTCues_ = function parseVTTCues_(segmentInfo) {
+      var decoder = void 0;
+      var decodeBytesToString = false;
+
+      if (typeof window_1.TextDecoder === 'function') {
+        decoder = new window_1.TextDecoder('utf8');
+      } else {
+        decoder = window_1.WebVTT.StringDecoder();
+        decodeBytesToString = true;
+      }
+
+      var parser = new window_1.WebVTT.Parser(window_1, window_1.vttjs, decoder);
+
+      segmentInfo.cues = [];
+      segmentInfo.timestampmap = {MPEGTS: 0, LOCAL: 0};
+
+      parser.oncue = segmentInfo.cues.push.bind(segmentInfo.cues);
+      parser.ontimestampmap = function (map) {
+        return segmentInfo.timestampmap = map;
+      };
+      parser.onparsingerror = function (error) {
+        videojs$1.log.warn('Error encountered when parsing cues: ' + error.message);
+      };
+
+      if (segmentInfo.segment.map) {
+        var mapData = segmentInfo.segment.map.bytes;
+
+        if (decodeBytesToString) {
+          mapData = uintToString(mapData);
+        }
+
+        parser.parse(mapData);
+      }
+
+      var segmentData = segmentInfo.bytes;
+
+      if (decodeBytesToString) {
+        segmentData = uintToString(segmentData);
+      }
+
+      parser.parse(segmentData);
+      parser.flush();
+    };
+
+    /**
+     * Updates the start and end times of any cues parsed by the WebVTT parser using
+     * the information parsed from the X-TIMESTAMP-MAP header and a TS to media time mapping
+     * from the SyncController
+     *
+     * @param {Object} segmentInfo
+     *        a segment info object that describes the current segment
+     * @param {Object} mappingObj
+     *        object containing a mapping from TS to media time
+     * @param {Object} playlist
+     *        the playlist object containing the segment
+     * @private
+     */
+
+
+    VTTSegmentLoader.prototype.updateTimeMapping_ = function updateTimeMapping_(segmentInfo, mappingObj, playlist) {
+      var segment = segmentInfo.segment;
+
+      if (!mappingObj) {
+        // If the sync controller does not have a mapping of TS to Media Time for the
+        // timeline, then we don't have enough information to update the cue
+        // start/end times
+        return;
+      }
+
+      if (!segmentInfo.cues.length) {
+        // If there are no cues, we also do not have enough information to figure out
+        // segment timing. Mark that the segment contains no cues so we don't re-request
+        // an empty segment.
+        segment.empty = true;
+        return;
+      }
+
+      var timestampmap = segmentInfo.timestampmap;
+      var diff = timestampmap.MPEGTS / 90000 - timestampmap.LOCAL + mappingObj.mapping;
+
+      segmentInfo.cues.forEach(function (cue) {
+        // First convert cue time to TS time using the timestamp-map provided within the vtt
+        cue.startTime += diff;
+        cue.endTime += diff;
+      });
+
+      if (!playlist.syncInfo) {
+        var firstStart = segmentInfo.cues[0].startTime;
+        var lastStart = segmentInfo.cues[segmentInfo.cues.length - 1].startTime;
+
+        playlist.syncInfo = {
+          mediaSequence: playlist.mediaSequence + segmentInfo.mediaIndex,
+          time: Math.min(firstStart, lastStart - segment.duration)
+        };
+      }
+    };
+
+    return VTTSegmentLoader;
+  }(SegmentLoader);
+
+  /**
+   * @file ad-cue-tags.js
+   */
+
+  /**
+   * Searches for an ad cue that overlaps with the given mediaTime
+   */
+
+
+  var findAdCue = function findAdCue(track, mediaTime) {
+    var cues = track.cues;
+
+    for (var i = 0; i < cues.length; i++) {
+      var cue = cues[i];
+
+      if (mediaTime >= cue.adStartTime && mediaTime <= cue.adEndTime) {
+        return cue;
+      }
+    }
+    return null;
+  };
+
+  var updateAdCues = function updateAdCues(media, track) {
+    var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+
+    if (!media.segments) {
+      return;
+    }
+
+    var mediaTime = offset;
+    var cue = void 0;
+
+    for (var i = 0; i < media.segments.length; i++) {
+      var segment = media.segments[i];
+
+      if (!cue) {
+        // Since the cues will span for at least the segment duration, adding a fudge
+        // factor of half segment duration will prevent duplicate cues from being
+        // created when timing info is not exact (e.g. cue start time initialized
+        // at 10.006677, but next call mediaTime is 10.003332 )
+        cue = findAdCue(track, mediaTime + segment.duration / 2);
+      }
+
+      if (cue) {
+        if ('cueIn' in segment) {
+          // Found a CUE-IN so end the cue
+          cue.endTime = mediaTime;
+          cue.adEndTime = mediaTime;
+          mediaTime += segment.duration;
+          cue = null;
+          continue;
+        }
+
+        if (mediaTime < cue.endTime) {
+          // Already processed this mediaTime for this cue
+          mediaTime += segment.duration;
+          continue;
+        }
+
+        // otherwise extend cue until a CUE-IN is found
+        cue.endTime += segment.duration;
+      } else {
+        if ('cueOut' in segment) {
+          cue = new window_1.VTTCue(mediaTime, mediaTime + segment.duration, segment.cueOut);
+          cue.adStartTime = mediaTime;
+          // Assumes tag format to be
+          // #EXT-X-CUE-OUT:30
+          cue.adEndTime = mediaTime + parseFloat(segment.cueOut);
+          track.addCue(cue);
+        }
+
+        if ('cueOutCont' in segment) {
+          // Entered into the middle of an ad cue
+          var adOffset = void 0;
+          var adTotal = void 0;
+
+          // Assumes tag formate to be
+          // #EXT-X-CUE-OUT-CONT:10/30
+
+          var _segment$cueOutCont$s = segment.cueOutCont.split('/').map(parseFloat);
+
+          adOffset = _segment$cueOutCont$s[0];
+          adTotal = _segment$cueOutCont$s[1];
+
+
+          cue = new window_1.VTTCue(mediaTime, mediaTime + segment.duration, '');
+          cue.adStartTime = mediaTime - adOffset;
+          cue.adEndTime = cue.adStartTime + adTotal;
+          track.addCue(cue);
+        }
+      }
+      mediaTime += segment.duration;
+    }
+  };
+
+  /**
+   * @file sync-controller.js
+   */
+
+  var tsprobe = tsInspector.inspect;
+
+  var syncPointStrategies = [
+    // Stategy "VOD": Handle the VOD-case where the sync-point is *always*
+    //                the equivalence display-time 0 === segment-index 0
+    {
+      name: 'VOD',
+      run: function run(syncController, playlist, duration$$1, currentTimeline, currentTime) {
+        if (duration$$1 !== Infinity) {
+          var syncPoint = {
+            time: 0,
+            segmentIndex: 0
+          };
+
+          return syncPoint;
+        }
+        return null;
+      }
+    },
+    // Stategy "ProgramDateTime": We have a program-date-time tag in this playlist
+    {
+      name: 'ProgramDateTime',
+      run: function run(syncController, playlist, duration$$1, currentTimeline, currentTime) {
+        if (!syncController.datetimeToDisplayTime) {
+          return null;
+        }
+
+        var segments = playlist.segments || [];
+        var syncPoint = null;
+        var lastDistance = null;
+
+        currentTime = currentTime || 0;
+
+        for (var i = 0; i < segments.length; i++) {
+          var segment = segments[i];
+
+          if (segment.dateTimeObject) {
+            var segmentTime = segment.dateTimeObject.getTime() / 1000;
+            var segmentStart = segmentTime + syncController.datetimeToDisplayTime;
+            var distance = Math.abs(currentTime - segmentStart);
+
+            // Once the distance begins to increase, we have passed
+            // currentTime and can stop looking for better candidates
+            if (lastDistance !== null && lastDistance < distance) {
+              break;
+            }
+
+            lastDistance = distance;
+            syncPoint = {
+              time: segmentStart,
+              segmentIndex: i
+            };
+          }
+        }
+        return syncPoint;
+      }
+    },
+    // Stategy "Segment": We have a known time mapping for a timeline and a
+    //                    segment in the current timeline with timing data
+    {
+      name: 'Segment',
+      run: function run(syncController, playlist, duration$$1, currentTimeline, currentTime) {
+        var segments = playlist.segments || [];
+        var syncPoint = null;
+        var lastDistance = null;
+
+        currentTime = currentTime || 0;
+
+        for (var i = 0; i < segments.length; i++) {
+          var segment = segments[i];
+
+          if (segment.timeline === currentTimeline && typeof segment.start !== 'undefined') {
+            var distance = Math.abs(currentTime - segment.start);
+
+            // Once the distance begins to increase, we have passed
+            // currentTime and can stop looking for better candidates
+            if (lastDistance !== null && lastDistance < distance) {
+              break;
+            }
+
+            if (!syncPoint || lastDistance === null || lastDistance >= distance) {
+              lastDistance = distance;
+              syncPoint = {
+                time: segment.start,
+                segmentIndex: i
+              };
+            }
+          }
+        }
+        return syncPoint;
+      }
+    },
+    // Stategy "Discontinuity": We have a discontinuity with a known
+    //                          display-time
+    {
+      name: 'Discontinuity',
+      run: function run(syncController, playlist, duration$$1, currentTimeline, currentTime) {
+        var syncPoint = null;
+
+        currentTime = currentTime || 0;
+
+        if (playlist.discontinuityStarts && playlist.discontinuityStarts.length) {
+          var lastDistance = null;
+
+          for (var i = 0; i < playlist.discontinuityStarts.length; i++) {
+            var segmentIndex = playlist.discontinuityStarts[i];
+            var discontinuity = playlist.discontinuitySequence + i + 1;
+            var discontinuitySync = syncController.discontinuities[discontinuity];
+
+            if (discontinuitySync) {
+              var distance = Math.abs(currentTime - discontinuitySync.time);
+
+              // Once the distance begins to increase, we have passed
+              // currentTime and can stop looking for better candidates
+              if (lastDistance !== null && lastDistance < distance) {
+                break;
+              }
+
+              if (!syncPoint || lastDistance === null || lastDistance >= distance) {
+                lastDistance = distance;
+                syncPoint = {
+                  time: discontinuitySync.time,
+                  segmentIndex: segmentIndex
+                };
+              }
+            }
+          }
+        }
+        return syncPoint;
+      }
+    },
+    // Stategy "Playlist": We have a playlist with a known mapping of
+    //                     segment index to display time
+    {
+      name: 'Playlist',
+      run: function run(syncController, playlist, duration$$1, currentTimeline, currentTime) {
+        if (playlist.syncInfo) {
+          var syncPoint = {
+            time: playlist.syncInfo.time,
+            segmentIndex: playlist.syncInfo.mediaSequence - playlist.mediaSequence
+          };
+
+          return syncPoint;
+        }
+        return null;
+      }
+    }];
+
+  var SyncController = function (_videojs$EventTarget4) {
+    inherits(SyncController, _videojs$EventTarget4);
+
+    function SyncController() {
+      classCallCheck(this, SyncController);
+
+      // Segment Loader state variables...
+      // ...for synching across variants
+      var _this28 = possibleConstructorReturn(this, _videojs$EventTarget4.call(this));
+
+      _this28.inspectCache_ = undefined;
+
+      // ...for synching across variants
+      _this28.timelines = [];
+      _this28.discontinuities = [];
+      _this28.datetimeToDisplayTime = null;
+
+      _this28.logger_ = logger('SyncController');
+      return _this28;
+    }
+
+    /**
+     * Find a sync-point for the playlist specified
+     *
+     * A sync-point is defined as a known mapping from display-time to
+     * a segment-index in the current playlist.
+     *
+     * @param {Playlist} playlist
+     *        The playlist that needs a sync-point
+     * @param {Number} duration
+     *        Duration of the MediaSource (Infinite if playing a live source)
+     * @param {Number} currentTimeline
+     *        The last timeline from which a segment was loaded
+     * @returns {Object}
+     *          A sync-point object
+     */
+
+
+    SyncController.prototype.getSyncPoint = function getSyncPoint(playlist, duration$$1, currentTimeline, currentTime) {
+      var syncPoints = this.runStrategies_(playlist, duration$$1, currentTimeline, currentTime);
+
+      if (!syncPoints.length) {
+        // Signal that we need to attempt to get a sync-point manually
+        // by fetching a segment in the playlist and constructing
+        // a sync-point from that information
+        return null;
+      }
+
+      // Now find the sync-point that is closest to the currentTime because
+      // that should result in the most accurate guess about which segment
+      // to fetch
+      return this.selectSyncPoint_(syncPoints, {key: 'time', value: currentTime});
+    };
+
+    /**
+     * Calculate the amount of time that has expired off the playlist during playback
+     *
+     * @param {Playlist} playlist
+     *        Playlist object to calculate expired from
+     * @param {Number} duration
+     *        Duration of the MediaSource (Infinity if playling a live source)
+     * @returns {Number|null}
+     *          The amount of time that has expired off the playlist during playback. Null
+     *          if no sync-points for the playlist can be found.
+     */
+
+
+    SyncController.prototype.getExpiredTime = function getExpiredTime(playlist, duration$$1) {
+      if (!playlist || !playlist.segments) {
+        return null;
+      }
+
+      var syncPoints = this.runStrategies_(playlist, duration$$1, playlist.discontinuitySequence, 0);
+
+      // Without sync-points, there is not enough information to determine the expired time
+      if (!syncPoints.length) {
+        return null;
+      }
+
+      var syncPoint = this.selectSyncPoint_(syncPoints, {
+        key: 'segmentIndex',
+        value: 0
+      });
+
+      // If the sync-point is beyond the start of the playlist, we want to subtract the
+      // duration from index 0 to syncPoint.segmentIndex instead of adding.
+      if (syncPoint.segmentIndex > 0) {
+        syncPoint.time *= -1;
+      }
+
+      return Math.abs(syncPoint.time + sumDurations(playlist, syncPoint.segmentIndex, 0));
+    };
+
+    /**
+     * Runs each sync-point strategy and returns a list of sync-points returned by the
+     * strategies
+     *
+     * @private
+     * @param {Playlist} playlist
+     *        The playlist that needs a sync-point
+     * @param {Number} duration
+     *        Duration of the MediaSource (Infinity if playing a live source)
+     * @param {Number} currentTimeline
+     *        The last timeline from which a segment was loaded
+     * @returns {Array}
+     *          A list of sync-point objects
+     */
+
+
+    SyncController.prototype.runStrategies_ = function runStrategies_(playlist, duration$$1, currentTimeline, currentTime) {
+      var syncPoints = [];
+
+      // Try to find a sync-point in by utilizing various strategies...
+      for (var i = 0; i < syncPointStrategies.length; i++) {
+        var strategy = syncPointStrategies[i];
+        var syncPoint = strategy.run(this, playlist, duration$$1, currentTimeline, currentTime);
+
+        if (syncPoint) {
+          syncPoint.strategy = strategy.name;
+          syncPoints.push({
+            strategy: strategy.name,
+            syncPoint: syncPoint
+          });
+        }
+      }
+
+      return syncPoints;
+    };
+
+    /**
+     * Selects the sync-point nearest the specified target
+     *
+     * @private
+     * @param {Array} syncPoints
+     *        List of sync-points to select from
+     * @param {Object} target
+     *        Object specifying the property and value we are targeting
+     * @param {String} target.key
+     *        Specifies the property to target. Must be either 'time' or 'segmentIndex'
+     * @param {Number} target.value
+     *        The value to target for the specified key.
+     * @returns {Object}
+     *          The sync-point nearest the target
+     */
+
+
+    SyncController.prototype.selectSyncPoint_ = function selectSyncPoint_(syncPoints, target) {
+      var bestSyncPoint = syncPoints[0].syncPoint;
+      var bestDistance = Math.abs(syncPoints[0].syncPoint[target.key] - target.value);
+      var bestStrategy = syncPoints[0].strategy;
+
+      for (var i = 1; i < syncPoints.length; i++) {
+        var newDistance = Math.abs(syncPoints[i].syncPoint[target.key] - target.value);
+
+        if (newDistance < bestDistance) {
+          bestDistance = newDistance;
+          bestSyncPoint = syncPoints[i].syncPoint;
+          bestStrategy = syncPoints[i].strategy;
+        }
+      }
+
+      this.logger_('syncPoint for [' + target.key + ': ' + target.value + '] chosen with strategy' + (' [' + bestStrategy + ']: [time:' + bestSyncPoint.time + ',') + (' segmentIndex:' + bestSyncPoint.segmentIndex + ']'));
+
+      return bestSyncPoint;
+    };
+
+    /**
+     * Save any meta-data present on the segments when segments leave
+     * the live window to the playlist to allow for synchronization at the
+     * playlist level later.
+     *
+     * @param {Playlist} oldPlaylist - The previous active playlist
+     * @param {Playlist} newPlaylist - The updated and most current playlist
+     */
+
+
+    SyncController.prototype.saveExpiredSegmentInfo = function saveExpiredSegmentInfo(oldPlaylist, newPlaylist) {
+      var mediaSequenceDiff = newPlaylist.mediaSequence - oldPlaylist.mediaSequence;
+
+      // When a segment expires from the playlist and it has a start time
+      // save that information as a possible sync-point reference in future
+      for (var i = mediaSequenceDiff - 1; i >= 0; i--) {
+        var lastRemovedSegment = oldPlaylist.segments[i];
+
+        if (lastRemovedSegment && typeof lastRemovedSegment.start !== 'undefined') {
+          newPlaylist.syncInfo = {
+            mediaSequence: oldPlaylist.mediaSequence + i,
+            time: lastRemovedSegment.start
+          };
+          this.logger_('playlist refresh sync: [time:' + newPlaylist.syncInfo.time + ',' + (' mediaSequence: ' + newPlaylist.syncInfo.mediaSequence + ']'));
+          this.trigger('syncinfoupdate');
+          break;
+        }
+      }
+    };
+
+    /**
+     * Save the mapping from playlist's ProgramDateTime to display. This should
+     * only ever happen once at the start of playback.
+     *
+     * @param {Playlist} playlist - The currently active playlist
+     */
+
+
+    SyncController.prototype.setDateTimeMapping = function setDateTimeMapping(playlist) {
+      if (!this.datetimeToDisplayTime && playlist.segments && playlist.segments.length && playlist.segments[0].dateTimeObject) {
+        var playlistTimestamp = playlist.segments[0].dateTimeObject.getTime() / 1000;
+
+        this.datetimeToDisplayTime = -playlistTimestamp;
+      }
+    };
+
+    /**
+     * Reset the state of the inspection cache when we do a rendition
+     * switch
+     */
+
+
+    SyncController.prototype.reset = function reset() {
+      this.inspectCache_ = undefined;
+    };
+
+    /**
+     * Probe or inspect a fmp4 or an mpeg2-ts segment to determine the start
+     * and end of the segment in it's internal "media time". Used to generate
+     * mappings from that internal "media time" to the display time that is
+     * shown on the player.
+     *
+     * @param {SegmentInfo} segmentInfo - The current active request information
+     */
+
+
+    SyncController.prototype.probeSegmentInfo = function probeSegmentInfo(segmentInfo) {
+      var segment = segmentInfo.segment;
+      var playlist = segmentInfo.playlist;
+      var timingInfo = void 0;
+
+      if (segment.map) {
+        timingInfo = this.probeMp4Segment_(segmentInfo);
+      } else {
+        timingInfo = this.probeTsSegment_(segmentInfo);
+      }
+
+      if (timingInfo) {
+        if (this.calculateSegmentTimeMapping_(segmentInfo, timingInfo)) {
+          this.saveDiscontinuitySyncInfo_(segmentInfo);
+
+          // If the playlist does not have sync information yet, record that information
+          // now with segment timing information
+          if (!playlist.syncInfo) {
+            playlist.syncInfo = {
+              mediaSequence: playlist.mediaSequence + segmentInfo.mediaIndex,
+              time: segment.start
+            };
+          }
+        }
+      }
+
+      return timingInfo;
+    };
+
+    /**
+     * Probe an fmp4 or an mpeg2-ts segment to determine the start of the segment
+     * in it's internal "media time".
+     *
+     * @private
+     * @param {SegmentInfo} segmentInfo - The current active request information
+     * @return {object} The start and end time of the current segment in "media time"
+     */
+
+
+    SyncController.prototype.probeMp4Segment_ = function probeMp4Segment_(segmentInfo) {
+      var segment = segmentInfo.segment;
+      var timescales = probe.timescale(segment.map.bytes);
+      var startTime = probe.startTime(timescales, segmentInfo.bytes);
+
+      if (segmentInfo.timestampOffset !== null) {
+        segmentInfo.timestampOffset -= startTime;
+      }
+
+      return {
+        start: startTime,
+        end: startTime + segment.duration
+      };
+    };
+
+    /**
+     * Probe an mpeg2-ts segment to determine the start and end of the segment
+     * in it's internal "media time".
+     *
+     * @private
+     * @param {SegmentInfo} segmentInfo - The current active request information
+     * @return {object} The start and end time of the current segment in "media time"
+     */
+
+
+    SyncController.prototype.probeTsSegment_ = function probeTsSegment_(segmentInfo) {
+      var timeInfo = tsprobe(segmentInfo.bytes, this.inspectCache_);
+      var segmentStartTime = void 0;
+      var segmentEndTime = void 0;
+
+      if (!timeInfo) {
+        return null;
+      }
+
+      if (timeInfo.video && timeInfo.video.length === 2) {
+        this.inspectCache_ = timeInfo.video[1].dts;
+        segmentStartTime = timeInfo.video[0].dtsTime;
+        segmentEndTime = timeInfo.video[1].dtsTime;
+      } else if (timeInfo.audio && timeInfo.audio.length === 2) {
+        this.inspectCache_ = timeInfo.audio[1].dts;
+        segmentStartTime = timeInfo.audio[0].dtsTime;
+        segmentEndTime = timeInfo.audio[1].dtsTime;
+      }
+
+      return {
+        start: segmentStartTime,
+        end: segmentEndTime,
+        containsVideo: timeInfo.video && timeInfo.video.length === 2,
+        containsAudio: timeInfo.audio && timeInfo.audio.length === 2
+      };
+    };
+
+    SyncController.prototype.timestampOffsetForTimeline = function timestampOffsetForTimeline(timeline) {
+      if (typeof this.timelines[timeline] === 'undefined') {
+        return null;
+      }
+      return this.timelines[timeline].time;
+    };
+
+    SyncController.prototype.mappingForTimeline = function mappingForTimeline(timeline) {
+      if (typeof this.timelines[timeline] === 'undefined') {
+        return null;
+      }
+      return this.timelines[timeline].mapping;
+    };
+
+    /**
+     * Use the "media time" for a segment to generate a mapping to "display time" and
+     * save that display time to the segment.
+     *
+     * @private
+     * @param {SegmentInfo} segmentInfo
+     *        The current active request information
+     * @param {object} timingInfo
+     *        The start and end time of the current segment in "media time"
+     * @returns {Boolean}
+     *          Returns false if segment time mapping could not be calculated
+     */
+
+
+    SyncController.prototype.calculateSegmentTimeMapping_ = function calculateSegmentTimeMapping_(segmentInfo, timingInfo) {
+      var segment = segmentInfo.segment;
+      var mappingObj = this.timelines[segmentInfo.timeline];
+
+      if (segmentInfo.timestampOffset !== null) {
+        mappingObj = {
+          time: segmentInfo.startOfSegment,
+          mapping: segmentInfo.startOfSegment - timingInfo.start
+        };
+        this.timelines[segmentInfo.timeline] = mappingObj;
+        this.trigger('timestampoffset');
+
+        this.logger_('time mapping for timeline ' + segmentInfo.timeline + ': ' + ('[time: ' + mappingObj.time + '] [mapping: ' + mappingObj.mapping + ']'));
+
+        segment.start = segmentInfo.startOfSegment;
+        segment.end = timingInfo.end + mappingObj.mapping;
+      } else if (mappingObj) {
+        segment.start = timingInfo.start + mappingObj.mapping;
+        segment.end = timingInfo.end + mappingObj.mapping;
+      } else {
+        return false;
+      }
+
+      return true;
+    };
+
+    /**
+     * Each time we have discontinuity in the playlist, attempt to calculate the location
+     * in display of the start of the discontinuity and save that. We also save an accuracy
+     * value so that we save values with the most accuracy (closest to 0.)
+     *
+     * @private
+     * @param {SegmentInfo} segmentInfo - The current active request information
+     */
+
+
+    SyncController.prototype.saveDiscontinuitySyncInfo_ = function saveDiscontinuitySyncInfo_(segmentInfo) {
+      var playlist = segmentInfo.playlist;
+      var segment = segmentInfo.segment;
+
+      // If the current segment is a discontinuity then we know exactly where
+      // the start of the range and it's accuracy is 0 (greater accuracy values
+      // mean more approximation)
+      if (segment.discontinuity) {
+        this.discontinuities[segment.timeline] = {
+          time: segment.start,
+          accuracy: 0
+        };
+      } else if (playlist.discontinuityStarts && playlist.discontinuityStarts.length) {
+        // Search for future discontinuities that we can provide better timing
+        // information for and save that information for sync purposes
+        for (var i = 0; i < playlist.discontinuityStarts.length; i++) {
+          var segmentIndex = playlist.discontinuityStarts[i];
+          var discontinuity = playlist.discontinuitySequence + i + 1;
+          var mediaIndexDiff = segmentIndex - segmentInfo.mediaIndex;
+          var accuracy = Math.abs(mediaIndexDiff);
+
+          if (!this.discontinuities[discontinuity] || this.discontinuities[discontinuity].accuracy > accuracy) {
+            var time = void 0;
+
+            if (mediaIndexDiff < 0) {
+              time = segment.start - sumDurations(playlist, segmentInfo.mediaIndex, segmentIndex);
+            } else {
+              time = segment.end + sumDurations(playlist, segmentInfo.mediaIndex + 1, segmentIndex);
+            }
+
+            this.discontinuities[discontinuity] = {
+              time: time,
+              accuracy: accuracy
+            };
+          }
+        }
+      }
+    };
+
+    return SyncController;
+  }(videojs$1.EventTarget);
+
+  var Decrypter$1 = new shimWorker("./decrypter-worker.worker.js", function (window, document$$1) {
+    var self = this;
+    var decrypterWorker = function () {
+
+      var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+      var win;
+
+      if (typeof window !== "undefined") {
+        win = window;
+      } else if (typeof commonjsGlobal !== "undefined") {
+        win = commonjsGlobal;
+      } else if (typeof self !== "undefined") {
+        win = self;
+      } else {
+        win = {};
+      }
+
+      var window_1$$1 = win;
+
+      /*
+       * pkcs7.pad
+       * https://github.com/brightcove/pkcs7
+       *
+       * Copyright (c) 2014 Brightcove
+       * Licensed under the apache2 license.
+       */
+
+      /**
+       * Returns the subarray of a Uint8Array without PKCS#7 padding.
+       * @param padded {Uint8Array} unencrypted bytes that have been padded
+       * @return {Uint8Array} the unpadded bytes
+       * @see http://tools.ietf.org/html/rfc5652
+       */
+      function unpad(padded) {
+        return padded.subarray(0, padded.byteLength - padded[padded.byteLength - 1]);
+      }
+
+      var classCallCheck$$1 = function classCallCheck$$1(instance, Constructor) {
+        if (!(instance instanceof Constructor)) {
+          throw new TypeError("Cannot call a class as a function");
+        }
+      };
+
+      var createClass$$1 = function () {
+        function defineProperties(target, props) {
+          for (var i = 0; i < props.length; i++) {
+            var descriptor = props[i];
+            descriptor.enumerable = descriptor.enumerable || false;
+            descriptor.configurable = true;
+            if ("value" in descriptor) descriptor.writable = true;
+            Object.defineProperty(target, descriptor.key, descriptor);
+          }
+        }
+
+        return function (Constructor, protoProps, staticProps) {
+          if (protoProps) defineProperties(Constructor.prototype, protoProps);
+          if (staticProps) defineProperties(Constructor, staticProps);
+          return Constructor;
+        };
+      }();
+
+      var inherits$$1 = function inherits$$1(subClass, superClass) {
+        if (typeof superClass !== "function" && superClass !== null) {
+          throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));
+        }
+
+        subClass.prototype = Object.create(superClass && superClass.prototype, {
+          constructor: {
+            value: subClass,
+            enumerable: false,
+            writable: true,
+            configurable: true
+          }
+        });
+        if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
+      };
+
+      var possibleConstructorReturn$$1 = function possibleConstructorReturn$$1(self, call) {
+        if (!self) {
+          throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+        }
+
+        return call && ((typeof call === 'undefined' ? 'undefined' : _typeof(call)) === "object" || typeof call === "function") ? call : self;
+      };
+
+      /**
+       * @file aes.js
+       *
+       * This file contains an adaptation of the AES decryption algorithm
+       * from the Standford Javascript Cryptography Library. That work is
+       * covered by the following copyright and permissions notice:
+       *
+       * Copyright 2009-2010 Emily Stark, Mike Hamburg, Dan Boneh.
+       * All rights reserved.
+       *
+       * Redistribution and use in source and binary forms, with or without
+       * modification, are permitted provided that the following conditions are
+       * met:
+       *
+       * 1. Redistributions of source code must retain the above copyright
+       *    notice, this list of conditions and the following disclaimer.
+       *
+       * 2. Redistributions in binary form must reproduce the above
+       *    copyright notice, this list of conditions and the following
+       *    disclaimer in the documentation and/or other materials provided
+       *    with the distribution.
+       *
+       * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+       * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+       * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+       * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR CONTRIBUTORS BE
+       * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+       * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+       * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+       * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+       * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+       * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+       * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+       *
+       * The views and conclusions contained in the software and documentation
+       * are those of the authors and should not be interpreted as representing
+       * official policies, either expressed or implied, of the authors.
+       */
+
+      /**
+       * Expand the S-box tables.
+       *
+       * @private
+       */
+      var precompute = function precompute() {
+        var tables = [[[], [], [], [], []], [[], [], [], [], []]];
+        var encTable = tables[0];
+        var decTable = tables[1];
+        var sbox = encTable[4];
+        var sboxInv = decTable[4];
+        var i = void 0;
+        var x = void 0;
+        var xInv = void 0;
+        var d = [];
+        var th = [];
+        var x2 = void 0;
+        var x4 = void 0;
+        var x8 = void 0;
+        var s = void 0;
+        var tEnc = void 0;
+        var tDec = void 0;
+
+        // Compute double and third tables
+        for (i = 0; i < 256; i++) {
+          th[(d[i] = i << 1 ^ (i >> 7) * 283) ^ i] = i;
+        }
+
+        for (x = xInv = 0; !sbox[x]; x ^= x2 || 1, xInv = th[xInv] || 1) {
+          // Compute sbox
+          s = xInv ^ xInv << 1 ^ xInv << 2 ^ xInv << 3 ^ xInv << 4;
+          s = s >> 8 ^ s & 255 ^ 99;
+          sbox[x] = s;
+          sboxInv[s] = x;
+
+          // Compute MixColumns
+          x8 = d[x4 = d[x2 = d[x]]];
+          tDec = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;
+          tEnc = d[s] * 0x101 ^ s * 0x1010100;
+
+          for (i = 0; i < 4; i++) {
+            encTable[i][x] = tEnc = tEnc << 24 ^ tEnc >>> 8;
+            decTable[i][s] = tDec = tDec << 24 ^ tDec >>> 8;
+          }
+        }
+
+        // Compactify. Considerable speedup on Firefox.
+        for (i = 0; i < 5; i++) {
+          encTable[i] = encTable[i].slice(0);
+          decTable[i] = decTable[i].slice(0);
+        }
+        return tables;
+      };
+      var aesTables = null;
+
+      /**
+       * Schedule out an AES key for both encryption and decryption. This
+       * is a low-level class. Use a cipher mode to do bulk encryption.
+       *
+       * @class AES
+       * @param key {Array} The key as an array of 4, 6 or 8 words.
+       */
+
+      var AES = function () {
+        function AES(key) {
+          classCallCheck$$1(this, AES);
+
+          /**
+           * The expanded S-box and inverse S-box tables. These will be computed
+           * on the client so that we don't have to send them down the wire.
+           *
+           * There are two tables, _tables[0] is for encryption and
+           * _tables[1] is for decryption.
+           *
+           * The first 4 sub-tables are the expanded S-box with MixColumns. The
+           * last (_tables[01][4]) is the S-box itself.
+           *
+           * @private
+           */
+          // if we have yet to precompute the S-box tables
+          // do so now
+          if (!aesTables) {
+            aesTables = precompute();
+          }
+          // then make a copy of that object for use
+          this._tables = [[aesTables[0][0].slice(), aesTables[0][1].slice(), aesTables[0][2].slice(), aesTables[0][3].slice(), aesTables[0][4].slice()], [aesTables[1][0].slice(), aesTables[1][1].slice(), aesTables[1][2].slice(), aesTables[1][3].slice(), aesTables[1][4].slice()]];
+          var i = void 0;
+          var j = void 0;
+          var tmp = void 0;
+          var encKey = void 0;
+          var decKey = void 0;
+          var sbox = this._tables[0][4];
+          var decTable = this._tables[1];
+          var keyLen = key.length;
+          var rcon = 1;
+
+          if (keyLen !== 4 && keyLen !== 6 && keyLen !== 8) {
+            throw new Error('Invalid aes key size');
+          }
+
+          encKey = key.slice(0);
+          decKey = [];
+          this._key = [encKey, decKey];
+
+          // schedule encryption keys
+          for (i = keyLen; i < 4 * keyLen + 28; i++) {
+            tmp = encKey[i - 1];
+
+            // apply sbox
+            if (i % keyLen === 0 || keyLen === 8 && i % keyLen === 4) {
+              tmp = sbox[tmp >>> 24] << 24 ^ sbox[tmp >> 16 & 255] << 16 ^ sbox[tmp >> 8 & 255] << 8 ^ sbox[tmp & 255];
+
+              // shift rows and add rcon
+              if (i % keyLen === 0) {
+                tmp = tmp << 8 ^ tmp >>> 24 ^ rcon << 24;
+                rcon = rcon << 1 ^ (rcon >> 7) * 283;
+              }
+            }
+
+            encKey[i] = encKey[i - keyLen] ^ tmp;
+          }
+
+          // schedule decryption keys
+          for (j = 0; i; j++, i--) {
+            tmp = encKey[j & 3 ? i : i - 4];
+            if (i <= 4 || j < 4) {
+              decKey[j] = tmp;
+            } else {
+              decKey[j] = decTable[0][sbox[tmp >>> 24]] ^ decTable[1][sbox[tmp >> 16 & 255]] ^ decTable[2][sbox[tmp >> 8 & 255]] ^ decTable[3][sbox[tmp & 255]];
+            }
+          }
+        }
+
+        /**
+         * Decrypt 16 bytes, specified as four 32-bit words.
+         *
+         * @param {Number} encrypted0 the first word to decrypt
+         * @param {Number} encrypted1 the second word to decrypt
+         * @param {Number} encrypted2 the third word to decrypt
+         * @param {Number} encrypted3 the fourth word to decrypt
+         * @param {Int32Array} out the array to write the decrypted words
+         * into
+         * @param {Number} offset the offset into the output array to start
+         * writing results
+         * @return {Array} The plaintext.
+         */
+
+        AES.prototype.decrypt = function decrypt$$1(encrypted0, encrypted1, encrypted2, encrypted3, out, offset) {
+          var key = this._key[1];
+          // state variables a,b,c,d are loaded with pre-whitened data
+          var a = encrypted0 ^ key[0];
+          var b = encrypted3 ^ key[1];
+          var c = encrypted2 ^ key[2];
+          var d = encrypted1 ^ key[3];
+          var a2 = void 0;
+          var b2 = void 0;
+          var c2 = void 0;
+
+          // key.length === 2 ?
+          var nInnerRounds = key.length / 4 - 2;
+          var i = void 0;
+          var kIndex = 4;
+          var table = this._tables[1];
+
+          // load up the tables
+          var table0 = table[0];
+          var table1 = table[1];
+          var table2 = table[2];
+          var table3 = table[3];
+          var sbox = table[4];
+
+          // Inner rounds. Cribbed from OpenSSL.
+          for (i = 0; i < nInnerRounds; i++) {
+            a2 = table0[a >>> 24] ^ table1[b >> 16 & 255] ^ table2[c >> 8 & 255] ^ table3[d & 255] ^ key[kIndex];
+            b2 = table0[b >>> 24] ^ table1[c >> 16 & 255] ^ table2[d >> 8 & 255] ^ table3[a & 255] ^ key[kIndex + 1];
+            c2 = table0[c >>> 24] ^ table1[d >> 16 & 255] ^ table2[a >> 8 & 255] ^ table3[b & 255] ^ key[kIndex + 2];
+            d = table0[d >>> 24] ^ table1[a >> 16 & 255] ^ table2[b >> 8 & 255] ^ table3[c & 255] ^ key[kIndex + 3];
+            kIndex += 4;
+            a = a2;
+            b = b2;
+            c = c2;
+          }
+
+          // Last round.
+          for (i = 0; i < 4; i++) {
+            out[(3 & -i) + offset] = sbox[a >>> 24] << 24 ^ sbox[b >> 16 & 255] << 16 ^ sbox[c >> 8 & 255] << 8 ^ sbox[d & 255] ^ key[kIndex++];
+            a2 = a;
+            a = b;
+            b = c;
+            c = d;
+            d = a2;
+          }
+        };
+
+        return AES;
+      }();
+
+      /**
+       * @file stream.js
+       */
+      /**
+       * A lightweight readable stream implemention that handles event dispatching.
+       *
+       * @class Stream
+       */
+      var Stream = function () {
+        function Stream() {
+          classCallCheck$$1(this, Stream);
+
+          this.listeners = {};
+        }
+
+        /**
+         * Add a listener for a specified event type.
+         *
+         * @param {String} type the event name
+         * @param {Function} listener the callback to be invoked when an event of
+         * the specified type occurs
+         */
+
+        Stream.prototype.on = function on(type, listener) {
+          if (!this.listeners[type]) {
+            this.listeners[type] = [];
+          }
+          this.listeners[type].push(listener);
+        };
+
+        /**
+         * Remove a listener for a specified event type.
+         *
+         * @param {String} type the event name
+         * @param {Function} listener  a function previously registered for this
+         * type of event through `on`
+         * @return {Boolean} if we could turn it off or not
+         */
+
+        Stream.prototype.off = function off(type, listener) {
+          if (!this.listeners[type]) {
+            return false;
+          }
+
+          var index = this.listeners[type].indexOf(listener);
+
+          this.listeners[type].splice(index, 1);
+          return index > -1;
+        };
+
+        /**
+         * Trigger an event of the specified type on this stream. Any additional
+         * arguments to this function are passed as parameters to event listeners.
+         *
+         * @param {String} type the event name
+         */
+
+        Stream.prototype.trigger = function trigger(type) {
+          var callbacks = this.listeners[type];
+
+          if (!callbacks) {
+            return;
+          }
+
+          // Slicing the arguments on every invocation of this method
+          // can add a significant amount of overhead. Avoid the
+          // intermediate object creation for the common case of a
+          // single callback argument
+          if (arguments.length === 2) {
+            var length = callbacks.length;
+
+            for (var i = 0; i < length; ++i) {
+              callbacks[i].call(this, arguments[1]);
+            }
+          } else {
+            var args = Array.prototype.slice.call(arguments, 1);
+            var _length = callbacks.length;
+
+            for (var _i = 0; _i < _length; ++_i) {
+              callbacks[_i].apply(this, args);
+            }
+          }
+        };
+
+        /**
+         * Destroys the stream and cleans up.
+         */
+
+        Stream.prototype.dispose = function dispose() {
+          this.listeners = {};
+        };
+        /**
+         * Forwards all `data` events on this stream to the destination stream. The
+         * destination stream should provide a method `push` to receive the data
+         * events as they arrive.
+         *
+         * @param {Stream} destination the stream that will receive all `data` events
+         * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
+         */
+
+        Stream.prototype.pipe = function pipe(destination) {
+          this.on('data', function (data) {
+            destination.push(data);
+          });
+        };
+
+        return Stream;
+      }();
+
+      /**
+       * @file async-stream.js
+       */
+      /**
+       * A wrapper around the Stream class to use setTiemout
+       * and run stream "jobs" Asynchronously
+       *
+       * @class AsyncStream
+       * @extends Stream
+       */
+
+      var AsyncStream$$1 = function (_Stream) {
+        inherits$$1(AsyncStream$$1, _Stream);
+
+        function AsyncStream$$1() {
+          classCallCheck$$1(this, AsyncStream$$1);
+
+          var _this = possibleConstructorReturn$$1(this, _Stream.call(this, Stream));
+
+          _this.jobs = [];
+          _this.delay = 1;
+          _this.timeout_ = null;
+          return _this;
+        }
+
+        /**
+         * process an async job
+         *
+         * @private
+         */
+
+        AsyncStream$$1.prototype.processJob_ = function processJob_() {
+          this.jobs.shift()();
+          if (this.jobs.length) {
+            this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay);
+          } else {
+            this.timeout_ = null;
+          }
+        };
+
+        /**
+         * push a job into the stream
+         *
+         * @param {Function} job the job to push into the stream
+         */
+
+        AsyncStream$$1.prototype.push = function push(job) {
+          this.jobs.push(job);
+          if (!this.timeout_) {
+            this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay);
+          }
+        };
+
+        return AsyncStream$$1;
+      }(Stream);
+
+      /**
+       * @file decrypter.js
+       *
+       * An asynchronous implementation of AES-128 CBC decryption with
+       * PKCS#7 padding.
+       */
+
+      /**
+       * Convert network-order (big-endian) bytes into their little-endian
+       * representation.
+       */
+      var ntoh = function ntoh(word) {
+        return word << 24 | (word & 0xff00) << 8 | (word & 0xff0000) >> 8 | word >>> 24;
+      };
+
+      /**
+       * Decrypt bytes using AES-128 with CBC and PKCS#7 padding.
+       *
+       * @param {Uint8Array} encrypted the encrypted bytes
+       * @param {Uint32Array} key the bytes of the decryption key
+       * @param {Uint32Array} initVector the initialization vector (IV) to
+       * use for the first round of CBC.
+       * @return {Uint8Array} the decrypted bytes
+       *
+       * @see http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
+       * @see http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_.28CBC.29
+       * @see https://tools.ietf.org/html/rfc2315
+       */
+      var decrypt$$1 = function decrypt$$1(encrypted, key, initVector) {
+        // word-level access to the encrypted bytes
+        var encrypted32 = new Int32Array(encrypted.buffer, encrypted.byteOffset, encrypted.byteLength >> 2);
+
+        var decipher = new AES(Array.prototype.slice.call(key));
+
+        // byte and word-level access for the decrypted output
+        var decrypted = new Uint8Array(encrypted.byteLength);
+        var decrypted32 = new Int32Array(decrypted.buffer);
+
+        // temporary variables for working with the IV, encrypted, and
+        // decrypted data
+        var init0 = void 0;
+        var init1 = void 0;
+        var init2 = void 0;
+        var init3 = void 0;
+        var encrypted0 = void 0;
+        var encrypted1 = void 0;
+        var encrypted2 = void 0;
+        var encrypted3 = void 0;
+
+        // iteration variable
+        var wordIx = void 0;
+
+        // pull out the words of the IV to ensure we don't modify the
+        // passed-in reference and easier access
+        init0 = initVector[0];
+        init1 = initVector[1];
+        init2 = initVector[2];
+        init3 = initVector[3];
+
+        // decrypt four word sequences, applying cipher-block chaining (CBC)
+        // to each decrypted block
+        for (wordIx = 0; wordIx < encrypted32.length; wordIx += 4) {
+          // convert big-endian (network order) words into little-endian
+          // (javascript order)
+          encrypted0 = ntoh(encrypted32[wordIx]);
+          encrypted1 = ntoh(encrypted32[wordIx + 1]);
+          encrypted2 = ntoh(encrypted32[wordIx + 2]);
+          encrypted3 = ntoh(encrypted32[wordIx + 3]);
+
+          // decrypt the block
+          decipher.decrypt(encrypted0, encrypted1, encrypted2, encrypted3, decrypted32, wordIx);
+
+          // XOR with the IV, and restore network byte-order to obtain the
+          // plaintext
+          decrypted32[wordIx] = ntoh(decrypted32[wordIx] ^ init0);
+          decrypted32[wordIx + 1] = ntoh(decrypted32[wordIx + 1] ^ init1);
+          decrypted32[wordIx + 2] = ntoh(decrypted32[wordIx + 2] ^ init2);
+          decrypted32[wordIx + 3] = ntoh(decrypted32[wordIx + 3] ^ init3);
+
+          // setup the IV for the next round
+          init0 = encrypted0;
+          init1 = encrypted1;
+          init2 = encrypted2;
+          init3 = encrypted3;
+        }
+
+        return decrypted;
+      };
+
+      /**
+       * The `Decrypter` class that manages decryption of AES
+       * data through `AsyncStream` objects and the `decrypt`
+       * function
+       *
+       * @param {Uint8Array} encrypted the encrypted bytes
+       * @param {Uint32Array} key the bytes of the decryption key
+       * @param {Uint32Array} initVector the initialization vector (IV) to
+       * @param {Function} done the function to run when done
+       * @class Decrypter
+       */
+
+      var Decrypter$$1 = function () {
+        function Decrypter$$1(encrypted, key, initVector, done) {
+          classCallCheck$$1(this, Decrypter$$1);
+
+          var step = Decrypter$$1.STEP;
+          var encrypted32 = new Int32Array(encrypted.buffer);
+          var decrypted = new Uint8Array(encrypted.byteLength);
+          var i = 0;
+
+          this.asyncStream_ = new AsyncStream$$1();
+
+          // split up the encryption job and do the individual chunks asynchronously
+          this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i, i + step), key, initVector, decrypted));
+          for (i = step; i < encrypted32.length; i += step) {
+            initVector = new Uint32Array([ntoh(encrypted32[i - 4]), ntoh(encrypted32[i - 3]), ntoh(encrypted32[i - 2]), ntoh(encrypted32[i - 1])]);
+            this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i, i + step), key, initVector, decrypted));
+          }
+          // invoke the done() callback when everything is finished
+          this.asyncStream_.push(function () {
+            // remove pkcs#7 padding from the decrypted bytes
+            done(null, unpad(decrypted));
+          });
+        }
+
+        /**
+         * a getter for step the maximum number of bytes to process at one time
+         *
+         * @return {Number} the value of step 32000
+         */
+
+        /**
+         * @private
+         */
+        Decrypter$$1.prototype.decryptChunk_ = function decryptChunk_(encrypted, key, initVector, decrypted) {
+          return function () {
+            var bytes = decrypt$$1(encrypted, key, initVector);
+
+            decrypted.set(bytes, encrypted.byteOffset);
+          };
+        };
+
+        createClass$$1(Decrypter$$1, null, [{
+          key: 'STEP',
+          get: function get$$1() {
+            // 4 * 8000;
+            return 32000;
+          }
+        }]);
+        return Decrypter$$1;
+      }();
+
+      /**
+       * @file bin-utils.js
+       */
+
+      /**
+       * Creates an object for sending to a web worker modifying properties that are TypedArrays
+       * into a new object with seperated properties for the buffer, byteOffset, and byteLength.
+       *
+       * @param {Object} message
+       *        Object of properties and values to send to the web worker
+       * @return {Object}
+       *         Modified message with TypedArray values expanded
+       * @function createTransferableMessage
+       */
+      var createTransferableMessage = function createTransferableMessage(message) {
+        var transferable = {};
+
+        Object.keys(message).forEach(function (key) {
+          var value = message[key];
+
+          if (ArrayBuffer.isView(value)) {
+            transferable[key] = {
+              bytes: value.buffer,
+              byteOffset: value.byteOffset,
+              byteLength: value.byteLength
+            };
+          } else {
+            transferable[key] = value;
+          }
+        });
+
+        return transferable;
+      };
+
+      /**
+       * Our web worker interface so that things can talk to aes-decrypter
+       * that will be running in a web worker. the scope is passed to this by
+       * webworkify.
+       *
+       * @param {Object} self
+       *        the scope for the web worker
+       */
+      var DecrypterWorker = function DecrypterWorker(self) {
+        self.onmessage = function (event) {
+          var data = event.data;
+          var encrypted = new Uint8Array(data.encrypted.bytes, data.encrypted.byteOffset, data.encrypted.byteLength);
+          var key = new Uint32Array(data.key.bytes, data.key.byteOffset, data.key.byteLength / 4);
+          var iv = new Uint32Array(data.iv.bytes, data.iv.byteOffset, data.iv.byteLength / 4);
+
+          /* eslint-disable no-new, handle-callback-err */
+          new Decrypter$$1(encrypted, key, iv, function (err, bytes) {
+            window_1$$1.postMessage(createTransferableMessage({
+              source: data.source,
+              decrypted: bytes
+            }), [bytes.buffer]);
+          });
+          /* eslint-enable */
+        };
+      };
+
+      var decrypterWorker = new DecrypterWorker(self);
+
+      return decrypterWorker;
+    }();
+  });
+
+  /**
+   * Convert the properties of an HLS track into an audioTrackKind.
+   *
+   * @private
+   */
+  var audioTrackKind_ = function audioTrackKind_(properties) {
+    var kind = properties.default ? 'main' : 'alternative';
+
+    if (properties.characteristics && properties.characteristics.indexOf('public.accessibility.describes-video') >= 0) {
+      kind = 'main-desc';
+    }
+
+    return kind;
+  };
+
+  /**
+   * Pause provided segment loader and playlist loader if active
+   *
+   * @param {SegmentLoader} segmentLoader
+   *        SegmentLoader to pause
+   * @param {Object} mediaType
+   *        Active media type
+   * @function stopLoaders
+   */
+  var stopLoaders = function stopLoaders(segmentLoader, mediaType) {
+    segmentLoader.abort();
+    segmentLoader.pause();
+
+    if (mediaType && mediaType.activePlaylistLoader) {
+      mediaType.activePlaylistLoader.pause();
+      mediaType.activePlaylistLoader = null;
+    }
+  };
+
+  /**
+   * Start loading provided segment loader and playlist loader
+   *
+   * @param {PlaylistLoader} playlistLoader
+   *        PlaylistLoader to start loading
+   * @param {Object} mediaType
+   *        Active media type
+   * @function startLoaders
+   */
+  var startLoaders = function startLoaders(playlistLoader, mediaType) {
+    // Segment loader will be started after `loadedmetadata` or `loadedplaylist` from the
+    // playlist loader
+    mediaType.activePlaylistLoader = playlistLoader;
+    playlistLoader.load();
+  };
+
+  /**
+   * Returns a function to be called when the media group changes. It performs a
+   * non-destructive (preserve the buffer) resync of the SegmentLoader. This is because a
+   * change of group is merely a rendition switch of the same content at another encoding,
+   * rather than a change of content, such as switching audio from English to Spanish.
+   *
+   * @param {String} type
+   *        MediaGroup type
+   * @param {Object} settings
+   *        Object containing required information for media groups
+   * @return {Function}
+   *         Handler for a non-destructive resync of SegmentLoader when the active media
+   *         group changes.
+   * @function onGroupChanged
+   */
+  var onGroupChanged = function onGroupChanged(type, settings) {
+    return function () {
+      var _settings$segmentLoad = settings.segmentLoaders,
+        segmentLoader = _settings$segmentLoad[type],
+        mainSegmentLoader = _settings$segmentLoad.main,
+        mediaType = settings.mediaTypes[type];
+
+      var activeTrack = mediaType.activeTrack();
+      var activeGroup = mediaType.activeGroup(activeTrack);
+      var previousActiveLoader = mediaType.activePlaylistLoader;
+
+      stopLoaders(segmentLoader, mediaType);
+
+      if (!activeGroup) {
+        // there is no group active
+        return;
+      }
+
+      if (!activeGroup.playlistLoader) {
+        if (previousActiveLoader) {
+          // The previous group had a playlist loader but the new active group does not
+          // this means we are switching from demuxed to muxed audio. In this case we want to
+          // do a destructive reset of the main segment loader and not restart the audio
+          // loaders.
+          mainSegmentLoader.resetEverything();
+        }
+        return;
+      }
+
+      // Non-destructive resync
+      segmentLoader.resyncLoader();
+
+      startLoaders(activeGroup.playlistLoader, mediaType);
+    };
+  };
+
+  /**
+   * Returns a function to be called when the media track changes. It performs a
+   * destructive reset of the SegmentLoader to ensure we start loading as close to
+   * currentTime as possible.
+   *
+   * @param {String} type
+   *        MediaGroup type
+   * @param {Object} settings
+   *        Object containing required information for media groups
+   * @return {Function}
+   *         Handler for a destructive reset of SegmentLoader when the active media
+   *         track changes.
+   * @function onTrackChanged
+   */
+  var onTrackChanged = function onTrackChanged(type, settings) {
+    return function () {
+      var _settings$segmentLoad2 = settings.segmentLoaders,
+        segmentLoader = _settings$segmentLoad2[type],
+        mainSegmentLoader = _settings$segmentLoad2.main,
+        mediaType = settings.mediaTypes[type];
+
+      var activeTrack = mediaType.activeTrack();
+      var activeGroup = mediaType.activeGroup(activeTrack);
+      var previousActiveLoader = mediaType.activePlaylistLoader;
+
+      stopLoaders(segmentLoader, mediaType);
+
+      if (!activeGroup) {
+        // there is no group active so we do not want to restart loaders
+        return;
+      }
+
+      if (!activeGroup.playlistLoader) {
+        // when switching from demuxed audio/video to muxed audio/video (noted by no playlist
+        // loader for the audio group), we want to do a destructive reset of the main segment
+        // loader and not restart the audio loaders
+        mainSegmentLoader.resetEverything();
+        return;
+      }
+
+      if (previousActiveLoader === activeGroup.playlistLoader) {
+        // Nothing has actually changed. This can happen because track change events can fire
+        // multiple times for a "single" change. One for enabling the new active track, and
+        // one for disabling the track that was active
+        startLoaders(activeGroup.playlistLoader, mediaType);
+        return;
+      }
+
+      if (segmentLoader.track) {
+        // For WebVTT, set the new text track in the segmentloader
+        segmentLoader.track(activeTrack);
+      }
+
+      // destructive reset
+      segmentLoader.resetEverything();
+
+      startLoaders(activeGroup.playlistLoader, mediaType);
+    };
+  };
+
+  var onError = {
+    /**
+     * Returns a function to be called when a SegmentLoader or PlaylistLoader encounters
+     * an error.
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @return {Function}
+     *         Error handler. Logs warning (or error if the playlist is blacklisted) to
+     *         console and switches back to default audio track.
+     * @function onError.AUDIO
+     */
+    AUDIO: function AUDIO(type, settings) {
+      return function () {
+        var segmentLoader = settings.segmentLoaders[type],
+          mediaType = settings.mediaTypes[type],
+          blacklistCurrentPlaylist = settings.blacklistCurrentPlaylist;
+
+
+        stopLoaders(segmentLoader, mediaType);
+
+        // switch back to default audio track
+        var activeTrack = mediaType.activeTrack();
+        var activeGroup = mediaType.activeGroup();
+        var id = (activeGroup.filter(function (group) {
+          return group.default;
+        })[0] || activeGroup[0]).id;
+        var defaultTrack = mediaType.tracks[id];
+
+        if (activeTrack === defaultTrack) {
+          // Default track encountered an error. All we can do now is blacklist the current
+          // rendition and hope another will switch audio groups
+          blacklistCurrentPlaylist({
+            message: 'Problem encountered loading the default audio track.'
+          });
+          return;
+        }
+
+        videojs$1.log.warn('Problem encountered loading the alternate audio track.' + 'Switching back to default.');
+
+        for (var trackId in mediaType.tracks) {
+          mediaType.tracks[trackId].enabled = mediaType.tracks[trackId] === defaultTrack;
+        }
+
+        mediaType.onTrackChanged();
+      };
+    },
+    /**
+     * Returns a function to be called when a SegmentLoader or PlaylistLoader encounters
+     * an error.
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @return {Function}
+     *         Error handler. Logs warning to console and disables the active subtitle track
+     * @function onError.SUBTITLES
+     */
+    SUBTITLES: function SUBTITLES(type, settings) {
+      return function () {
+        var segmentLoader = settings.segmentLoaders[type],
+          mediaType = settings.mediaTypes[type];
+
+
+        videojs$1.log.warn('Problem encountered loading the subtitle track.' + 'Disabling subtitle track.');
+
+        stopLoaders(segmentLoader, mediaType);
+
+        var track = mediaType.activeTrack();
+
+        if (track) {
+          track.mode = 'disabled';
+        }
+
+        mediaType.onTrackChanged();
+      };
+    }
+  };
+
+  var setupListeners = {
+    /**
+     * Setup event listeners for audio playlist loader
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {PlaylistLoader|null} playlistLoader
+     *        PlaylistLoader to register listeners on
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @function setupListeners.AUDIO
+     */
+    AUDIO: function AUDIO(type, playlistLoader, settings) {
+      if (!playlistLoader) {
+        // no playlist loader means audio will be muxed with the video
+        return;
+      }
+
+      var tech = settings.tech,
+        requestOptions = settings.requestOptions,
+        segmentLoader = settings.segmentLoaders[type];
+
+
+      playlistLoader.on('loadedmetadata', function () {
+        var media = playlistLoader.media();
+
+        segmentLoader.playlist(media, requestOptions);
+
+        // if the video is already playing, or if this isn't a live video and preload
+        // permits, start downloading segments
+        if (!tech.paused() || media.endList && tech.preload() !== 'none') {
+          segmentLoader.load();
+        }
+      });
+
+      playlistLoader.on('loadedplaylist', function () {
+        segmentLoader.playlist(playlistLoader.media(), requestOptions);
+
+        // If the player isn't paused, ensure that the segment loader is running
+        if (!tech.paused()) {
+          segmentLoader.load();
+        }
+      });
+
+      playlistLoader.on('error', onError[type](type, settings));
+    },
+    /**
+     * Setup event listeners for subtitle playlist loader
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {PlaylistLoader|null} playlistLoader
+     *        PlaylistLoader to register listeners on
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @function setupListeners.SUBTITLES
+     */
+    SUBTITLES: function SUBTITLES(type, playlistLoader, settings) {
+      var tech = settings.tech,
+        requestOptions = settings.requestOptions,
+        segmentLoader = settings.segmentLoaders[type],
+        mediaType = settings.mediaTypes[type];
+
+
+      playlistLoader.on('loadedmetadata', function () {
+        var media = playlistLoader.media();
+
+        segmentLoader.playlist(media, requestOptions);
+        segmentLoader.track(mediaType.activeTrack());
+
+        // if the video is already playing, or if this isn't a live video and preload
+        // permits, start downloading segments
+        if (!tech.paused() || media.endList && tech.preload() !== 'none') {
+          segmentLoader.load();
+        }
+      });
+
+      playlistLoader.on('loadedplaylist', function () {
+        segmentLoader.playlist(playlistLoader.media(), requestOptions);
+
+        // If the player isn't paused, ensure that the segment loader is running
+        if (!tech.paused()) {
+          segmentLoader.load();
+        }
+      });
+
+      playlistLoader.on('error', onError[type](type, settings));
+    }
+  };
+
+  var byGroupId = function byGroupId(type, groupId) {
+    return function (playlist) {
+      return playlist.attributes[type] === groupId;
+    };
+  };
+
+  var byResolvedUri = function byResolvedUri(resolvedUri) {
+    return function (playlist) {
+      return playlist.resolvedUri === resolvedUri;
+    };
+  };
+
+  var initialize = {
+    /**
+     * Setup PlaylistLoaders and AudioTracks for the audio groups
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @function initialize.AUDIO
+     */
+    'AUDIO': function AUDIO(type, settings) {
+      var hls = settings.hls,
+        sourceType = settings.sourceType,
+        segmentLoader = settings.segmentLoaders[type],
+        withCredentials = settings.requestOptions.withCredentials,
+        _settings$master = settings.master,
+        mediaGroups = _settings$master.mediaGroups,
+        playlists = _settings$master.playlists,
+        _settings$mediaTypes$ = settings.mediaTypes[type],
+        groups = _settings$mediaTypes$.groups,
+        tracks = _settings$mediaTypes$.tracks,
+        masterPlaylistLoader = settings.masterPlaylistLoader;
+
+      // force a default if we have none
+
+      if (!mediaGroups[type] || Object.keys(mediaGroups[type]).length === 0) {
+        mediaGroups[type] = {main: {default: {default: true}}};
+      }
+
+      for (var groupId in mediaGroups[type]) {
+        if (!groups[groupId]) {
+          groups[groupId] = [];
+        }
+
+        // List of playlists that have an AUDIO attribute value matching the current
+        // group ID
+        var groupPlaylists = playlists.filter(byGroupId(type, groupId));
+
+        for (var variantLabel in mediaGroups[type][groupId]) {
+          var properties = mediaGroups[type][groupId][variantLabel];
+
+          // List of playlists for the current group ID that have a matching uri with
+          // this alternate audio variant
+          var matchingPlaylists = groupPlaylists.filter(byResolvedUri(properties.resolvedUri));
+
+          if (matchingPlaylists.length) {
+            // If there is a playlist that has the same uri as this audio variant, assume
+            // that the playlist is audio only. We delete the resolvedUri property here
+            // to prevent a playlist loader from being created so that we don't have
+            // both the main and audio segment loaders loading the same audio segments
+            // from the same playlist.
+            delete properties.resolvedUri;
+          }
+
+          var playlistLoader = void 0;
+
+          if (properties.resolvedUri) {
+            playlistLoader = new PlaylistLoader(properties.resolvedUri, hls, withCredentials);
+          } else if (properties.playlists && sourceType === 'dash') {
+            playlistLoader = new DashPlaylistLoader(properties.playlists[0], hls, withCredentials, masterPlaylistLoader);
+          } else {
+            // no resolvedUri means the audio is muxed with the video when using this
+            // audio track
+            playlistLoader = null;
+          }
+
+          properties = videojs$1.mergeOptions({id: variantLabel, playlistLoader: playlistLoader}, properties);
+
+          setupListeners[type](type, properties.playlistLoader, settings);
+
+          groups[groupId].push(properties);
+
+          if (typeof tracks[variantLabel] === 'undefined') {
+            var track = new videojs$1.AudioTrack({
+              id: variantLabel,
+              kind: audioTrackKind_(properties),
+              enabled: false,
+              language: properties.language,
+              default: properties.default,
+              label: variantLabel
+            });
+
+            tracks[variantLabel] = track;
+          }
+        }
+      }
+
+      // setup single error event handler for the segment loader
+      segmentLoader.on('error', onError[type](type, settings));
+    },
+    /**
+     * Setup PlaylistLoaders and TextTracks for the subtitle groups
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @function initialize.SUBTITLES
+     */
+    'SUBTITLES': function SUBTITLES(type, settings) {
+      var tech = settings.tech,
+        hls = settings.hls,
+        sourceType = settings.sourceType,
+        segmentLoader = settings.segmentLoaders[type],
+        withCredentials = settings.requestOptions.withCredentials,
+        mediaGroups = settings.master.mediaGroups,
+        _settings$mediaTypes$2 = settings.mediaTypes[type],
+        groups = _settings$mediaTypes$2.groups,
+        tracks = _settings$mediaTypes$2.tracks,
+        masterPlaylistLoader = settings.masterPlaylistLoader;
+
+
+      for (var groupId in mediaGroups[type]) {
+        if (!groups[groupId]) {
+          groups[groupId] = [];
+        }
+
+        for (var variantLabel in mediaGroups[type][groupId]) {
+          if (mediaGroups[type][groupId][variantLabel].forced) {
+            // Subtitle playlists with the forced attribute are not selectable in Safari.
+            // According to Apple's HLS Authoring Specification:
+            //   If content has forced subtitles and regular subtitles in a given language,
+            //   the regular subtitles track in that language MUST contain both the forced
+            //   subtitles and the regular subtitles for that language.
+            // Because of this requirement and that Safari does not add forced subtitles,
+            // forced subtitles are skipped here to maintain consistent experience across
+            // all platforms
+            continue;
+          }
+
+          var properties = mediaGroups[type][groupId][variantLabel];
+
+          var playlistLoader = void 0;
+
+          if (sourceType === 'hls') {
+            playlistLoader = new PlaylistLoader(properties.resolvedUri, hls, withCredentials);
+          } else if (sourceType === 'dash') {
+            playlistLoader = new DashPlaylistLoader(properties.playlists[0], hls, withCredentials, masterPlaylistLoader);
+          }
+
+          properties = videojs$1.mergeOptions({
+            id: variantLabel,
+            playlistLoader: playlistLoader
+          }, properties);
+
+          setupListeners[type](type, properties.playlistLoader, settings);
+
+          groups[groupId].push(properties);
+
+          if (typeof tracks[variantLabel] === 'undefined') {
+            var track = tech.addRemoteTextTrack({
+              id: variantLabel,
+              kind: 'subtitles',
+              enabled: false,
+              language: properties.language,
+              label: variantLabel
+            }, false).track;
+
+            tracks[variantLabel] = track;
+          }
+        }
+      }
+
+      // setup single error event handler for the segment loader
+      segmentLoader.on('error', onError[type](type, settings));
+    },
+    /**
+     * Setup TextTracks for the closed-caption groups
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @function initialize['CLOSED-CAPTIONS']
+     */
+    'CLOSED-CAPTIONS': function CLOSEDCAPTIONS(type, settings) {
+      var tech = settings.tech,
+        mediaGroups = settings.master.mediaGroups,
+        _settings$mediaTypes$3 = settings.mediaTypes[type],
+        groups = _settings$mediaTypes$3.groups,
+        tracks = _settings$mediaTypes$3.tracks;
+
+
+      for (var groupId in mediaGroups[type]) {
+        if (!groups[groupId]) {
+          groups[groupId] = [];
+        }
+
+        for (var variantLabel in mediaGroups[type][groupId]) {
+          var properties = mediaGroups[type][groupId][variantLabel];
+
+          // We only support CEA608 captions for now, so ignore anything that
+          // doesn't use a CCx INSTREAM-ID
+          if (!properties.instreamId.match(/CC\d/)) {
+            continue;
+          }
+
+          // No PlaylistLoader is required for Closed-Captions because the captions are
+          // embedded within the video stream
+          groups[groupId].push(videojs$1.mergeOptions({id: variantLabel}, properties));
+
+          if (typeof tracks[variantLabel] === 'undefined') {
+            var track = tech.addRemoteTextTrack({
+              id: properties.instreamId,
+              kind: 'captions',
+              enabled: false,
+              language: properties.language,
+              label: variantLabel
+            }, false).track;
+
+            tracks[variantLabel] = track;
+          }
+        }
+      }
+    }
+  };
+
+  /**
+   * Returns a function used to get the active group of the provided type
+   *
+   * @param {String} type
+   *        MediaGroup type
+   * @param {Object} settings
+   *        Object containing required information for media groups
+   * @return {Function}
+   *         Function that returns the active media group for the provided type. Takes an
+   *         optional parameter {TextTrack} track. If no track is provided, a list of all
+   *         variants in the group, otherwise the variant corresponding to the provided
+   *         track is returned.
+   * @function activeGroup
+   */
+  var activeGroup = function activeGroup(type, settings) {
+    return function (track) {
+      var masterPlaylistLoader = settings.masterPlaylistLoader,
+        groups = settings.mediaTypes[type].groups;
+
+
+      var media = masterPlaylistLoader.media();
+
+      if (!media) {
+        return null;
+      }
+
+      var variants = null;
+
+      if (media.attributes[type]) {
+        variants = groups[media.attributes[type]];
+      }
+
+      variants = variants || groups.main;
+
+      if (typeof track === 'undefined') {
+        return variants;
+      }
+
+      if (track === null) {
+        // An active track was specified so a corresponding group is expected. track === null
+        // means no track is currently active so there is no corresponding group
+        return null;
+      }
+
+      return variants.filter(function (props) {
+        return props.id === track.id;
+      })[0] || null;
+    };
+  };
+
+  var activeTrack = {
+    /**
+     * Returns a function used to get the active track of type provided
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @return {Function}
+     *         Function that returns the active media track for the provided type. Returns
+     *         null if no track is active
+     * @function activeTrack.AUDIO
+     */
+    AUDIO: function AUDIO(type, settings) {
+      return function () {
+        var tracks = settings.mediaTypes[type].tracks;
+
+
+        for (var id in tracks) {
+          if (tracks[id].enabled) {
+            return tracks[id];
+          }
+        }
+
+        return null;
+      };
+    },
+    /**
+     * Returns a function used to get the active track of type provided
+     *
+     * @param {String} type
+     *        MediaGroup type
+     * @param {Object} settings
+     *        Object containing required information for media groups
+     * @return {Function}
+     *         Function that returns the active media track for the provided type. Returns
+     *         null if no track is active
+     * @function activeTrack.SUBTITLES
+     */
+    SUBTITLES: function SUBTITLES(type, settings) {
+      return function () {
+        var tracks = settings.mediaTypes[type].tracks;
+
+
+        for (var id in tracks) {
+          if (tracks[id].mode === 'showing') {
+            return tracks[id];
+          }
+        }
+
+        return null;
+      };
+    }
+  };
+
+  /**
+   * Setup PlaylistLoaders and Tracks for media groups (Audio, Subtitles,
+   * Closed-Captions) specified in the master manifest.
+   *
+   * @param {Object} settings
+   *        Object containing required information for setting up the media groups
+   * @param {SegmentLoader} settings.segmentLoaders.AUDIO
+   *        Audio segment loader
+   * @param {SegmentLoader} settings.segmentLoaders.SUBTITLES
+   *        Subtitle segment loader
+   * @param {SegmentLoader} settings.segmentLoaders.main
+   *        Main segment loader
+   * @param {Tech} settings.tech
+   *        The tech of the player
+   * @param {Object} settings.requestOptions
+   *        XHR request options used by the segment loaders
+   * @param {PlaylistLoader} settings.masterPlaylistLoader
+   *        PlaylistLoader for the master source
+   * @param {HlsHandler} settings.hls
+   *        HLS SourceHandler
+   * @param {Object} settings.master
+   *        The parsed master manifest
+   * @param {Object} settings.mediaTypes
+   *        Object to store the loaders, tracks, and utility methods for each media type
+   * @param {Function} settings.blacklistCurrentPlaylist
+   *        Blacklists the current rendition and forces a rendition switch.
+   * @function setupMediaGroups
+   */
+  var setupMediaGroups = function setupMediaGroups(settings) {
+    ['AUDIO', 'SUBTITLES', 'CLOSED-CAPTIONS'].forEach(function (type) {
+      initialize[type](type, settings);
+    });
+
+    var mediaTypes = settings.mediaTypes,
+      masterPlaylistLoader = settings.masterPlaylistLoader,
+      tech = settings.tech,
+      hls = settings.hls;
+
+    // setup active group and track getters and change event handlers
+
+    ['AUDIO', 'SUBTITLES'].forEach(function (type) {
+      mediaTypes[type].activeGroup = activeGroup(type, settings);
+      mediaTypes[type].activeTrack = activeTrack[type](type, settings);
+      mediaTypes[type].onGroupChanged = onGroupChanged(type, settings);
+      mediaTypes[type].onTrackChanged = onTrackChanged(type, settings);
+    });
+
+    // DO NOT enable the default subtitle or caption track.
+    // DO enable the default audio track
+    var audioGroup = mediaTypes.AUDIO.activeGroup();
+    var groupId = (audioGroup.filter(function (group) {
+      return group.default;
+    })[0] || audioGroup[0]).id;
+
+    mediaTypes.AUDIO.tracks[groupId].enabled = true;
+    mediaTypes.AUDIO.onTrackChanged();
+
+    masterPlaylistLoader.on('mediachange', function () {
+      ['AUDIO', 'SUBTITLES'].forEach(function (type) {
+        return mediaTypes[type].onGroupChanged();
+      });
+    });
+
+    // custom audio track change event handler for usage event
+    var onAudioTrackChanged = function onAudioTrackChanged() {
+      mediaTypes.AUDIO.onTrackChanged();
+      tech.trigger({type: 'usage', name: 'hls-audio-change'});
+    };
+
+    tech.audioTracks().addEventListener('change', onAudioTrackChanged);
+    tech.remoteTextTracks().addEventListener('change', mediaTypes.SUBTITLES.onTrackChanged);
+
+    hls.on('dispose', function () {
+      tech.audioTracks().removeEventListener('change', onAudioTrackChanged);
+      tech.remoteTextTracks().removeEventListener('change', mediaTypes.SUBTITLES.onTrackChanged);
+    });
+
+    // clear existing audio tracks and add the ones we just created
+    tech.clearTracks('audio');
+
+    for (var id in mediaTypes.AUDIO.tracks) {
+      tech.audioTracks().addTrack(mediaTypes.AUDIO.tracks[id]);
+    }
+  };
+
+  /**
+   * Creates skeleton object used to store the loaders, tracks, and utility methods for each
+   * media type
+   *
+   * @return {Object}
+   *         Object to store the loaders, tracks, and utility methods for each media type
+   * @function createMediaTypes
+   */
+  var createMediaTypes = function createMediaTypes() {
+    var mediaTypes = {};
+
+    ['AUDIO', 'SUBTITLES', 'CLOSED-CAPTIONS'].forEach(function (type) {
+      mediaTypes[type] = {
+        groups: {},
+        tracks: {},
+        activePlaylistLoader: null,
+        activeGroup: noop$1,
+        activeTrack: noop$1,
+        onGroupChanged: noop$1,
+        onTrackChanged: noop$1
+      };
+    });
+
+    return mediaTypes;
+  };
+
+  /**
+   * @file master-playlist-controller.js
+   */
+
+  var ABORT_EARLY_BLACKLIST_SECONDS = 60 * 2;
+
+  var Hls = void 0;
+
+  // SegmentLoader stats that need to have each loader's
+  // values summed to calculate the final value
+  var loaderStats = ['mediaRequests', 'mediaRequestsAborted', 'mediaRequestsTimedout', 'mediaRequestsErrored', 'mediaTransferDuration', 'mediaBytesTransferred'];
+  var sumLoaderStat = function sumLoaderStat(stat) {
+    return this.audioSegmentLoader_[stat] + this.mainSegmentLoader_[stat];
+  };
+
+  /**
+   * the master playlist controller controller all interactons
+   * between playlists and segmentloaders. At this time this mainly
+   * involves a master playlist and a series of audio playlists
+   * if they are available
+   *
+   * @class MasterPlaylistController
+   * @extends videojs.EventTarget
+   */
+
+  var MasterPlaylistController = function (_videojs$EventTarget5) {
+    inherits(MasterPlaylistController, _videojs$EventTarget5);
+
+    function MasterPlaylistController(options) {
+      classCallCheck(this, MasterPlaylistController);
+
+      var _this29 = possibleConstructorReturn(this, _videojs$EventTarget5.call(this));
+
+      var url = options.url,
+        withCredentials = options.withCredentials,
+        tech = options.tech,
+        bandwidth = options.bandwidth,
+        externHls = options.externHls,
+        useCueTags = options.useCueTags,
+        blacklistDuration = options.blacklistDuration,
+        enableLowInitialPlaylist = options.enableLowInitialPlaylist,
+        sourceType = options.sourceType;
+
+
+      if (!url) {
+        throw new Error('A non-empty playlist URL is required');
+      }
+
+      Hls = externHls;
+
+      _this29.withCredentials = withCredentials;
+      _this29.tech_ = tech;
+      _this29.hls_ = tech.hls;
+      _this29.sourceType_ = sourceType;
+      _this29.useCueTags_ = useCueTags;
+      _this29.blacklistDuration = blacklistDuration;
+      _this29.enableLowInitialPlaylist = enableLowInitialPlaylist;
+      if (_this29.useCueTags_) {
+        _this29.cueTagsTrack_ = _this29.tech_.addTextTrack('metadata', 'ad-cues');
+        _this29.cueTagsTrack_.inBandMetadataTrackDispatchType = '';
+      }
+
+      _this29.requestOptions_ = {
+        withCredentials: _this29.withCredentials,
+        timeout: null
+      };
+
+      _this29.mediaTypes_ = createMediaTypes();
+
+      _this29.mediaSource = new videojs$1.MediaSource();
+
+      // load the media source into the player
+      _this29.mediaSource.addEventListener('sourceopen', _this29.handleSourceOpen_.bind(_this29));
+
+      _this29.seekable_ = videojs$1.createTimeRanges();
+      _this29.hasPlayed_ = function () {
+        return false;
+      };
+
+      _this29.syncController_ = new SyncController(options);
+      _this29.segmentMetadataTrack_ = tech.addRemoteTextTrack({
+        kind: 'metadata',
+        label: 'segment-metadata'
+      }, false).track;
+
+      _this29.decrypter_ = new Decrypter$1();
+
+      var segmentLoaderSettings = {
+        hls: _this29.hls_,
+        mediaSource: _this29.mediaSource,
+        currentTime: _this29.tech_.currentTime.bind(_this29.tech_),
+        seekable: function seekable() {
+          return _this29.seekable();
+        },
+        seeking: function seeking() {
+          return _this29.tech_.seeking();
+        },
+        duration: function duration() {
+          return _this29.mediaSource.duration;
+        },
+        hasPlayed: function hasPlayed() {
+          return _this29.hasPlayed_();
+        },
+        goalBufferLength: function goalBufferLength() {
+          return _this29.goalBufferLength();
+        },
+        bandwidth: bandwidth,
+        syncController: _this29.syncController_,
+        decrypter: _this29.decrypter_,
+        sourceType: _this29.sourceType_
+      };
+
+      _this29.masterPlaylistLoader_ = _this29.sourceType_ === 'dash' ? new DashPlaylistLoader(url, _this29.hls_, _this29.withCredentials) : new PlaylistLoader(url, _this29.hls_, _this29.withCredentials);
+      _this29.setupMasterPlaylistLoaderListeners_();
+
+      // setup segment loaders
+      // combined audio/video or just video when alternate audio track is selected
+      _this29.mainSegmentLoader_ = new SegmentLoader(videojs$1.mergeOptions(segmentLoaderSettings, {
+        segmentMetadataTrack: _this29.segmentMetadataTrack_,
+        loaderType: 'main'
+      }), options);
+
+      // alternate audio track
+      _this29.audioSegmentLoader_ = new SegmentLoader(videojs$1.mergeOptions(segmentLoaderSettings, {
+        loaderType: 'audio'
+      }), options);
+
+      _this29.subtitleSegmentLoader_ = new VTTSegmentLoader(videojs$1.mergeOptions(segmentLoaderSettings, {
+        loaderType: 'vtt'
+      }), options);
+
+      _this29.setupSegmentLoaderListeners_();
+
+      // Create SegmentLoader stat-getters
+      loaderStats.forEach(function (stat) {
+        _this29[stat + '_'] = sumLoaderStat.bind(_this29, stat);
+      });
+
+      _this29.logger_ = logger('MPC');
+
+      _this29.masterPlaylistLoader_.load();
+      return _this29;
+    }
+
+    /**
+     * Register event handlers on the master playlist loader. A helper
+     * function for construction time.
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.setupMasterPlaylistLoaderListeners_ = function setupMasterPlaylistLoaderListeners_() {
+      var _this30 = this;
+
+      this.masterPlaylistLoader_.on('loadedmetadata', function () {
+        var media = _this30.masterPlaylistLoader_.media();
+        var requestTimeout = _this30.masterPlaylistLoader_.targetDuration * 1.5 * 1000;
+
+        // If we don't have any more available playlists, we don't want to
+        // timeout the request.
+        if (isLowestEnabledRendition(_this30.masterPlaylistLoader_.master, _this30.masterPlaylistLoader_.media())) {
+          _this30.requestOptions_.timeout = 0;
+        } else {
+          _this30.requestOptions_.timeout = requestTimeout;
+        }
+
+        // if this isn't a live video and preload permits, start
+        // downloading segments
+        if (media.endList && _this30.tech_.preload() !== 'none') {
+          _this30.mainSegmentLoader_.playlist(media, _this30.requestOptions_);
+          _this30.mainSegmentLoader_.load();
+        }
+
+        setupMediaGroups({
+          sourceType: _this30.sourceType_,
+          segmentLoaders: {
+            AUDIO: _this30.audioSegmentLoader_,
+            SUBTITLES: _this30.subtitleSegmentLoader_,
+            main: _this30.mainSegmentLoader_
+          },
+          tech: _this30.tech_,
+          requestOptions: _this30.requestOptions_,
+          masterPlaylistLoader: _this30.masterPlaylistLoader_,
+          hls: _this30.hls_,
+          master: _this30.master(),
+          mediaTypes: _this30.mediaTypes_,
+          blacklistCurrentPlaylist: _this30.blacklistCurrentPlaylist.bind(_this30)
+        });
+
+        _this30.triggerPresenceUsage_(_this30.master(), media);
+
+        try {
+          _this30.setupSourceBuffers_();
+        } catch (e) {
+          videojs$1.log.warn('Failed to create SourceBuffers', e);
+          return _this30.mediaSource.endOfStream('decode');
+        }
+        _this30.setupFirstPlay();
+
+        _this30.trigger('selectedinitialmedia');
+      });
+
+      this.masterPlaylistLoader_.on('loadedplaylist', function () {
+        var updatedPlaylist = _this30.masterPlaylistLoader_.media();
+
+        if (!updatedPlaylist) {
+          // blacklist any variants that are not supported by the browser before selecting
+          // an initial media as the playlist selectors do not consider browser support
+          _this30.excludeUnsupportedVariants_();
+
+          var selectedMedia = void 0;
+
+          if (_this30.enableLowInitialPlaylist) {
+            selectedMedia = _this30.selectInitialPlaylist();
+          }
+
+          if (!selectedMedia) {
+            selectedMedia = _this30.selectPlaylist();
+          }
+
+          _this30.initialMedia_ = selectedMedia;
+          _this30.masterPlaylistLoader_.media(_this30.initialMedia_);
+          return;
+        }
+
+        if (_this30.useCueTags_) {
+          _this30.updateAdCues_(updatedPlaylist);
+        }
+
+        // TODO: Create a new event on the PlaylistLoader that signals
+        // that the segments have changed in some way and use that to
+        // update the SegmentLoader instead of doing it twice here and
+        // on `mediachange`
+        _this30.mainSegmentLoader_.playlist(updatedPlaylist, _this30.requestOptions_);
+        _this30.updateDuration();
+
+        // If the player isn't paused, ensure that the segment loader is running,
+        // as it is possible that it was temporarily stopped while waiting for
+        // a playlist (e.g., in case the playlist errored and we re-requested it).
+        if (!_this30.tech_.paused()) {
+          _this30.mainSegmentLoader_.load();
+        }
+
+        if (!updatedPlaylist.endList) {
+          var addSeekableRange = function addSeekableRange() {
+            var seekable$$1 = _this30.seekable();
+
+            if (seekable$$1.length !== 0) {
+              _this30.mediaSource.addSeekableRange_(seekable$$1.start(0), seekable$$1.end(0));
+            }
+          };
+
+          if (_this30.duration() !== Infinity) {
+            var onDurationchange = function onDurationchange() {
+              if (_this30.duration() === Infinity) {
+                addSeekableRange();
+              } else {
+                _this30.tech_.one('durationchange', onDurationchange);
+              }
+            };
+
+            _this30.tech_.one('durationchange', onDurationchange);
+          } else {
+            addSeekableRange();
+          }
+        }
+      });
+
+      this.masterPlaylistLoader_.on('error', function () {
+        _this30.blacklistCurrentPlaylist(_this30.masterPlaylistLoader_.error);
+      });
+
+      this.masterPlaylistLoader_.on('mediachanging', function () {
+        _this30.mainSegmentLoader_.abort();
+        _this30.mainSegmentLoader_.pause();
+      });
+
+      this.masterPlaylistLoader_.on('mediachange', function () {
+        var media = _this30.masterPlaylistLoader_.media();
+        var requestTimeout = _this30.masterPlaylistLoader_.targetDuration * 1.5 * 1000;
+
+        // If we don't have any more available playlists, we don't want to
+        // timeout the request.
+        if (isLowestEnabledRendition(_this30.masterPlaylistLoader_.master, _this30.masterPlaylistLoader_.media())) {
+          _this30.requestOptions_.timeout = 0;
+        } else {
+          _this30.requestOptions_.timeout = requestTimeout;
+        }
+
+        // TODO: Create a new event on the PlaylistLoader that signals
+        // that the segments have changed in some way and use that to
+        // update the SegmentLoader instead of doing it twice here and
+        // on `loadedplaylist`
+        _this30.mainSegmentLoader_.playlist(media, _this30.requestOptions_);
+        _this30.mainSegmentLoader_.load();
+
+        _this30.tech_.trigger({
+          type: 'mediachange',
+          bubbles: true
+        });
+      });
+
+      this.masterPlaylistLoader_.on('playlistunchanged', function () {
+        var updatedPlaylist = _this30.masterPlaylistLoader_.media();
+        var playlistOutdated = _this30.stuckAtPlaylistEnd_(updatedPlaylist);
+
+        if (playlistOutdated) {
+          // Playlist has stopped updating and we're stuck at its end. Try to
+          // blacklist it and switch to another playlist in the hope that that
+          // one is updating (and give the player a chance to re-adjust to the
+          // safe live point).
+          _this30.blacklistCurrentPlaylist({
+            message: 'Playlist no longer updating.'
+          });
+          // useful for monitoring QoS
+          _this30.tech_.trigger('playliststuck');
+        }
+      });
+
+      this.masterPlaylistLoader_.on('renditiondisabled', function () {
+        _this30.tech_.trigger({type: 'usage', name: 'hls-rendition-disabled'});
+      });
+      this.masterPlaylistLoader_.on('renditionenabled', function () {
+        _this30.tech_.trigger({type: 'usage', name: 'hls-rendition-enabled'});
+      });
+    };
+
+    /**
+     * A helper function for triggerring presence usage events once per source
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.triggerPresenceUsage_ = function triggerPresenceUsage_(master, media) {
+      var mediaGroups = master.mediaGroups || {};
+      var defaultDemuxed = true;
+      var audioGroupKeys = Object.keys(mediaGroups.AUDIO);
+
+      for (var mediaGroup in mediaGroups.AUDIO) {
+        for (var label in mediaGroups.AUDIO[mediaGroup]) {
+          var properties = mediaGroups.AUDIO[mediaGroup][label];
+
+          if (!properties.uri) {
+            defaultDemuxed = false;
+          }
+        }
+      }
+
+      if (defaultDemuxed) {
+        this.tech_.trigger({type: 'usage', name: 'hls-demuxed'});
+      }
+
+      if (Object.keys(mediaGroups.SUBTITLES).length) {
+        this.tech_.trigger({type: 'usage', name: 'hls-webvtt'});
+      }
+
+      if (Hls.Playlist.isAes(media)) {
+        this.tech_.trigger({type: 'usage', name: 'hls-aes'});
+      }
+
+      if (Hls.Playlist.isFmp4(media)) {
+        this.tech_.trigger({type: 'usage', name: 'hls-fmp4'});
+      }
+
+      if (audioGroupKeys.length && Object.keys(mediaGroups.AUDIO[audioGroupKeys[0]]).length > 1) {
+        this.tech_.trigger({type: 'usage', name: 'hls-alternate-audio'});
+      }
+
+      if (this.useCueTags_) {
+        this.tech_.trigger({type: 'usage', name: 'hls-playlist-cue-tags'});
+      }
+    };
+    /**
+     * Register event handlers on the segment loaders. A helper function
+     * for construction time.
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.setupSegmentLoaderListeners_ = function setupSegmentLoaderListeners_() {
+      var _this31 = this;
+
+      this.mainSegmentLoader_.on('bandwidthupdate', function () {
+        var nextPlaylist = _this31.selectPlaylist();
+        var currentPlaylist = _this31.masterPlaylistLoader_.media();
+        var buffered = _this31.tech_.buffered();
+        var forwardBuffer = buffered.length ? buffered.end(buffered.length - 1) - _this31.tech_.currentTime() : 0;
+
+        var bufferLowWaterLine = _this31.bufferLowWaterLine();
+
+        // If the playlist is live, then we want to not take low water line into account.
+        // This is because in LIVE, the player plays 3 segments from the end of the
+        // playlist, and if `BUFFER_LOW_WATER_LINE` is greater than the duration availble
+        // in those segments, a viewer will never experience a rendition upswitch.
+        if (!currentPlaylist.endList ||
+          // For the same reason as LIVE, we ignore the low water line when the VOD
+          // duration is below the max potential low water line
+          _this31.duration() < Config.MAX_BUFFER_LOW_WATER_LINE ||
+          // we want to switch down to lower resolutions quickly to continue playback, but
+          nextPlaylist.attributes.BANDWIDTH < currentPlaylist.attributes.BANDWIDTH ||
+          // ensure we have some buffer before we switch up to prevent us running out of
+          // buffer while loading a higher rendition.
+          forwardBuffer >= bufferLowWaterLine) {
+          _this31.masterPlaylistLoader_.media(nextPlaylist);
+        }
+
+        _this31.tech_.trigger('bandwidthupdate');
+      });
+      this.mainSegmentLoader_.on('progress', function () {
+        _this31.trigger('progress');
+      });
+
+      this.mainSegmentLoader_.on('error', function () {
+        _this31.blacklistCurrentPlaylist(_this31.mainSegmentLoader_.error());
+      });
+
+      this.mainSegmentLoader_.on('syncinfoupdate', function () {
+        _this31.onSyncInfoUpdate_();
+      });
+
+      this.mainSegmentLoader_.on('timestampoffset', function () {
+        _this31.tech_.trigger({type: 'usage', name: 'hls-timestamp-offset'});
+      });
+      this.audioSegmentLoader_.on('syncinfoupdate', function () {
+        _this31.onSyncInfoUpdate_();
+      });
+
+      this.mainSegmentLoader_.on('ended', function () {
+        _this31.onEndOfStream();
+      });
+
+      this.mainSegmentLoader_.on('earlyabort', function () {
+        _this31.blacklistCurrentPlaylist({
+          message: 'Aborted early because there isn\'t enough bandwidth to complete the ' + 'request without rebuffering.'
+        }, ABORT_EARLY_BLACKLIST_SECONDS);
+      });
+
+      this.mainSegmentLoader_.on('reseteverything', function () {
+        // If playing an MTS stream, a videojs.MediaSource is listening for
+        // hls-reset to reset caption parsing state in the transmuxer
+        _this31.tech_.trigger('hls-reset');
+      });
+
+      this.mainSegmentLoader_.on('segmenttimemapping', function (event) {
+        // If playing an MTS stream in html, a videojs.MediaSource is listening for
+        // hls-segment-time-mapping update its internal mapping of stream to display time
+        _this31.tech_.trigger({
+          type: 'hls-segment-time-mapping',
+          mapping: event.mapping
+        });
+      });
+
+      this.audioSegmentLoader_.on('ended', function () {
+        _this31.onEndOfStream();
+      });
+    };
+
+    MasterPlaylistController.prototype.mediaSecondsLoaded_ = function mediaSecondsLoaded_() {
+      return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded + this.mainSegmentLoader_.mediaSecondsLoaded);
+    };
+
+    /**
+     * Call load on our SegmentLoaders
+     */
+
+
+    MasterPlaylistController.prototype.load = function load() {
+      this.mainSegmentLoader_.load();
+      if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
+        this.audioSegmentLoader_.load();
+      }
+      if (this.mediaTypes_.SUBTITLES.activePlaylistLoader) {
+        this.subtitleSegmentLoader_.load();
+      }
+    };
+
+    /**
+     * Re-tune playback quality level for the current player
+     * conditions. This method may perform destructive actions, like
+     * removing already buffered content, to readjust the currently
+     * active playlist quickly.
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.fastQualityChange_ = function fastQualityChange_() {
+      var media = this.selectPlaylist();
+
+      if (media !== this.masterPlaylistLoader_.media()) {
+        this.masterPlaylistLoader_.media(media);
+
+        this.mainSegmentLoader_.resetLoader();
+        // don't need to reset audio as it is reset when media changes
+      }
+    };
+
+    /**
+     * Begin playback.
+     */
+
+
+    MasterPlaylistController.prototype.play = function play() {
+      if (this.setupFirstPlay()) {
+        return;
+      }
+
+      if (this.tech_.ended()) {
+        this.tech_.setCurrentTime(0);
+      }
+
+      if (this.hasPlayed_()) {
+        this.load();
+      }
+
+      var seekable$$1 = this.tech_.seekable();
+
+      // if the viewer has paused and we fell out of the live window,
+      // seek forward to the live point
+      if (this.tech_.duration() === Infinity) {
+        if (this.tech_.currentTime() < seekable$$1.start(0)) {
+          return this.tech_.setCurrentTime(seekable$$1.end(seekable$$1.length - 1));
+        }
+      }
+    };
+
+    /**
+     * Seek to the latest media position if this is a live video and the
+     * player and video are loaded and initialized.
+     */
+
+
+    MasterPlaylistController.prototype.setupFirstPlay = function setupFirstPlay() {
+      var _this32 = this;
+
+      var media = this.masterPlaylistLoader_.media();
+
+      // Check that everything is ready to begin buffering for the first call to play
+      //  If 1) there is no active media
+      //     2) the player is paused
+      //     3) the first play has already been setup
+      // then exit early
+      if (!media || this.tech_.paused() || this.hasPlayed_()) {
+        return false;
+      }
+
+      // when the video is a live stream
+      if (!media.endList) {
+        var seekable$$1 = this.seekable();
+
+        if (!seekable$$1.length) {
+          // without a seekable range, the player cannot seek to begin buffering at the live
+          // point
+          return false;
+        }
+
+        if (videojs$1.browser.IE_VERSION && this.tech_.readyState() === 0) {
+          // IE11 throws an InvalidStateError if you try to set currentTime while the
+          // readyState is 0, so it must be delayed until the tech fires loadedmetadata.
+          this.tech_.one('loadedmetadata', function () {
+            _this32.trigger('firstplay');
+            _this32.tech_.setCurrentTime(seekable$$1.end(0));
+            _this32.hasPlayed_ = function () {
+              return true;
+            };
+          });
+
+          return false;
+        }
+
+        // trigger firstplay to inform the source handler to ignore the next seek event
+        this.trigger('firstplay');
+        // seek to the live point
+        this.tech_.setCurrentTime(seekable$$1.end(0));
+      }
+
+      this.hasPlayed_ = function () {
+        return true;
+      };
+      // we can begin loading now that everything is ready
+      this.load();
+      return true;
+    };
+
+    /**
+     * handle the sourceopen event on the MediaSource
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.handleSourceOpen_ = function handleSourceOpen_() {
+      // Only attempt to create the source buffer if none already exist.
+      // handleSourceOpen is also called when we are "re-opening" a source buffer
+      // after `endOfStream` has been called (in response to a seek for instance)
+      try {
+        this.setupSourceBuffers_();
+      } catch (e) {
+        videojs$1.log.warn('Failed to create Source Buffers', e);
+        return this.mediaSource.endOfStream('decode');
+      }
+
+      // if autoplay is enabled, begin playback. This is duplicative of
+      // code in video.js but is required because play() must be invoked
+      // *after* the media source has opened.
+      if (this.tech_.autoplay()) {
+        var playPromise = this.tech_.play();
+
+        // Catch/silence error when a pause interrupts a play request
+        // on browsers which return a promise
+        if (typeof playPromise !== 'undefined' && typeof playPromise.then === 'function') {
+          playPromise.then(null, function (e) {
+          });
+        }
+      }
+
+      this.trigger('sourceopen');
+    };
+
+    /**
+     * Calls endOfStream on the media source when all active stream types have called
+     * endOfStream
+     *
+     * @param {string} streamType
+     *        Stream type of the segment loader that called endOfStream
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.onEndOfStream = function onEndOfStream() {
+      var isEndOfStream = this.mainSegmentLoader_.ended_;
+
+      if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
+        // if the audio playlist loader exists, then alternate audio is active
+        if (!this.mainSegmentLoader_.startingMedia_ || this.mainSegmentLoader_.startingMedia_.containsVideo) {
+          // if we do not know if the main segment loader contains video yet or if we
+          // definitively know the main segment loader contains video, then we need to wait
+          // for both main and audio segment loaders to call endOfStream
+          isEndOfStream = isEndOfStream && this.audioSegmentLoader_.ended_;
+        } else {
+          // otherwise just rely on the audio loader
+          isEndOfStream = this.audioSegmentLoader_.ended_;
+        }
+      }
+
+      if (isEndOfStream) {
+        this.mediaSource.endOfStream();
+      }
+    };
+
+    /**
+     * Check if a playlist has stopped being updated
+     * @param {Object} playlist the media playlist object
+     * @return {boolean} whether the playlist has stopped being updated or not
+     */
+
+
+    MasterPlaylistController.prototype.stuckAtPlaylistEnd_ = function stuckAtPlaylistEnd_(playlist) {
+      var seekable$$1 = this.seekable();
+
+      if (!seekable$$1.length) {
+        // playlist doesn't have enough information to determine whether we are stuck
+        return false;
+      }
+
+      var expired = this.syncController_.getExpiredTime(playlist, this.mediaSource.duration);
+
+      if (expired === null) {
+        return false;
+      }
+
+      // does not use the safe live end to calculate playlist end, since we
+      // don't want to say we are stuck while there is still content
+      var absolutePlaylistEnd = Hls.Playlist.playlistEnd(playlist, expired);
+      var currentTime = this.tech_.currentTime();
+      var buffered = this.tech_.buffered();
+
+      if (!buffered.length) {
+        // return true if the playhead reached the absolute end of the playlist
+        return absolutePlaylistEnd - currentTime <= SAFE_TIME_DELTA;
+      }
+      var bufferedEnd = buffered.end(buffered.length - 1);
+
+      // return true if there is too little buffer left and buffer has reached absolute
+      // end of playlist
+      return bufferedEnd - currentTime <= SAFE_TIME_DELTA && absolutePlaylistEnd - bufferedEnd <= SAFE_TIME_DELTA;
+    };
+
+    /**
+     * Blacklists a playlist when an error occurs for a set amount of time
+     * making it unavailable for selection by the rendition selection algorithm
+     * and then forces a new playlist (rendition) selection.
+     *
+     * @param {Object=} error an optional error that may include the playlist
+     * to blacklist
+     * @param {Number=} blacklistDuration an optional number of seconds to blacklist the
+     * playlist
+     */
+
+
+    MasterPlaylistController.prototype.blacklistCurrentPlaylist = function blacklistCurrentPlaylist() {
+      var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      var blacklistDuration = arguments[1];
+
+      var currentPlaylist = void 0;
+      var nextPlaylist = void 0;
+
+      // If the `error` was generated by the playlist loader, it will contain
+      // the playlist we were trying to load (but failed) and that should be
+      // blacklisted instead of the currently selected playlist which is likely
+      // out-of-date in this scenario
+      currentPlaylist = error.playlist || this.masterPlaylistLoader_.media();
+
+      blacklistDuration = blacklistDuration || error.blacklistDuration || this.blacklistDuration;
+
+      // If there is no current playlist, then an error occurred while we were
+      // trying to load the master OR while we were disposing of the tech
+      if (!currentPlaylist) {
+        this.error = error;
+
+        try {
+          return this.mediaSource.endOfStream('network');
+        } catch (e) {
+          return this.trigger('error');
+        }
+      }
+
+      var isFinalRendition = this.masterPlaylistLoader_.master.playlists.filter(isEnabled).length === 1;
+
+      if (isFinalRendition) {
+        // Never blacklisting this playlist because it's final rendition
+        videojs$1.log.warn('Problem encountered with the current ' + 'HLS playlist. Trying again since it is the final playlist.');
+
+        this.tech_.trigger('retryplaylist');
+        return this.masterPlaylistLoader_.load(isFinalRendition);
+      }
+      // Blacklist this playlist
+      currentPlaylist.excludeUntil = Date.now() + blacklistDuration * 1000;
+      this.tech_.trigger('blacklistplaylist');
+      this.tech_.trigger({type: 'usage', name: 'hls-rendition-blacklisted'});
+
+      // Select a new playlist
+      nextPlaylist = this.selectPlaylist();
+      videojs$1.log.warn('Problem encountered with the current HLS playlist.' + (error.message ? ' ' + error.message : '') + ' Switching to another playlist.');
+
+      return this.masterPlaylistLoader_.media(nextPlaylist);
+    };
+
+    /**
+     * Pause all segment loaders
+     */
+
+
+    MasterPlaylistController.prototype.pauseLoading = function pauseLoading() {
+      this.mainSegmentLoader_.pause();
+      if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
+        this.audioSegmentLoader_.pause();
+      }
+      if (this.mediaTypes_.SUBTITLES.activePlaylistLoader) {
+        this.subtitleSegmentLoader_.pause();
+      }
+    };
+
+    /**
+     * set the current time on all segment loaders
+     *
+     * @param {TimeRange} currentTime the current time to set
+     * @return {TimeRange} the current time
+     */
+
+
+    MasterPlaylistController.prototype.setCurrentTime = function setCurrentTime(currentTime) {
+      var buffered = findRange(this.tech_.buffered(), currentTime);
+
+      if (!(this.masterPlaylistLoader_ && this.masterPlaylistLoader_.media())) {
+        // return immediately if the metadata is not ready yet
+        return 0;
+      }
+
+      // it's clearly an edge-case but don't thrown an error if asked to
+      // seek within an empty playlist
+      if (!this.masterPlaylistLoader_.media().segments) {
+        return 0;
+      }
+
+      // In flash playback, the segment loaders should be reset on every seek, even
+      // in buffer seeks. If the seek location is already buffered, continue buffering as
+      // usual
+      // TODO: redo this comment
+      if (buffered && buffered.length) {
+        return currentTime;
+      }
+
+      // cancel outstanding requests so we begin buffering at the new
+      // location
+      this.mainSegmentLoader_.resetEverything();
+      this.mainSegmentLoader_.abort();
+      if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
+        this.audioSegmentLoader_.resetEverything();
+        this.audioSegmentLoader_.abort();
+      }
+      if (this.mediaTypes_.SUBTITLES.activePlaylistLoader) {
+        this.subtitleSegmentLoader_.resetEverything();
+        this.subtitleSegmentLoader_.abort();
+      }
+
+      // start segment loader loading in case they are paused
+      this.load();
+    };
+
+    /**
+     * get the current duration
+     *
+     * @return {TimeRange} the duration
+     */
+
+
+    MasterPlaylistController.prototype.duration = function duration() {
+      if (!this.masterPlaylistLoader_) {
+        return 0;
+      }
+
+      if (this.mediaSource) {
+        return this.mediaSource.duration;
+      }
+
+      return Hls.Playlist.duration(this.masterPlaylistLoader_.media());
+    };
+
+    /**
+     * check the seekable range
+     *
+     * @return {TimeRange} the seekable range
+     */
+
+
+    MasterPlaylistController.prototype.seekable = function seekable() {
+      return this.seekable_;
+    };
+
+    MasterPlaylistController.prototype.onSyncInfoUpdate_ = function onSyncInfoUpdate_() {
+      var mainSeekable = void 0;
+      var audioSeekable = void 0;
+
+      if (!this.masterPlaylistLoader_) {
+        return;
+      }
+
+      var media = this.masterPlaylistLoader_.media();
+
+      if (!media) {
+        return;
+      }
+
+      var expired = this.syncController_.getExpiredTime(media, this.mediaSource.duration);
+
+      if (expired === null) {
+        // not enough information to update seekable
+        return;
+      }
+
+      mainSeekable = Hls.Playlist.seekable(media, expired);
+
+      if (mainSeekable.length === 0) {
+        return;
+      }
+
+      if (this.mediaTypes_.AUDIO.activePlaylistLoader) {
+        media = this.mediaTypes_.AUDIO.activePlaylistLoader.media();
+        expired = this.syncController_.getExpiredTime(media, this.mediaSource.duration);
+
+        if (expired === null) {
+          return;
+        }
+
+        audioSeekable = Hls.Playlist.seekable(media, expired);
+
+        if (audioSeekable.length === 0) {
+          return;
+        }
+      }
+
+      if (!audioSeekable) {
+        // seekable has been calculated based on buffering video data so it
+        // can be returned directly
+        this.seekable_ = mainSeekable;
+      } else if (audioSeekable.start(0) > mainSeekable.end(0) || mainSeekable.start(0) > audioSeekable.end(0)) {
+        // seekables are pretty far off, rely on main
+        this.seekable_ = mainSeekable;
+      } else {
+        this.seekable_ = videojs$1.createTimeRanges([[audioSeekable.start(0) > mainSeekable.start(0) ? audioSeekable.start(0) : mainSeekable.start(0), audioSeekable.end(0) < mainSeekable.end(0) ? audioSeekable.end(0) : mainSeekable.end(0)]]);
+      }
+
+      this.logger_('seekable updated [' + printableRange(this.seekable_) + ']');
+
+      this.tech_.trigger('seekablechanged');
+    };
+
+    /**
+     * Update the player duration
+     */
+
+
+    MasterPlaylistController.prototype.updateDuration = function updateDuration() {
+      var _this33 = this;
+
+      var oldDuration = this.mediaSource.duration;
+      var newDuration = Hls.Playlist.duration(this.masterPlaylistLoader_.media());
+      var buffered = this.tech_.buffered();
+      var setDuration = function setDuration() {
+        _this33.mediaSource.duration = newDuration;
+        _this33.tech_.trigger('durationchange');
+
+        _this33.mediaSource.removeEventListener('sourceopen', setDuration);
+      };
+
+      if (buffered.length > 0) {
+        newDuration = Math.max(newDuration, buffered.end(buffered.length - 1));
+      }
+
+      // if the duration has changed, invalidate the cached value
+      if (oldDuration !== newDuration) {
+        // update the duration
+        if (this.mediaSource.readyState !== 'open') {
+          this.mediaSource.addEventListener('sourceopen', setDuration);
+        } else {
+          setDuration();
+        }
+      }
+    };
+
+    /**
+     * dispose of the MasterPlaylistController and everything
+     * that it controls
+     */
+
+
+    MasterPlaylistController.prototype.dispose = function dispose() {
+      var _this34 = this;
+
+      this.decrypter_.terminate();
+      this.masterPlaylistLoader_.dispose();
+      this.mainSegmentLoader_.dispose();
+
+      ['AUDIO', 'SUBTITLES'].forEach(function (type) {
+        var groups = _this34.mediaTypes_[type].groups;
+
+        for (var id in groups) {
+          groups[id].forEach(function (group) {
+            if (group.playlistLoader) {
+              group.playlistLoader.dispose();
+            }
+          });
+        }
+      });
+
+      this.audioSegmentLoader_.dispose();
+      this.subtitleSegmentLoader_.dispose();
+    };
+
+    /**
+     * return the master playlist object if we have one
+     *
+     * @return {Object} the master playlist object that we parsed
+     */
+
+
+    MasterPlaylistController.prototype.master = function master() {
+      return this.masterPlaylistLoader_.master;
+    };
+
+    /**
+     * return the currently selected playlist
+     *
+     * @return {Object} the currently selected playlist object that we parsed
+     */
+
+
+    MasterPlaylistController.prototype.media = function media() {
+      // playlist loader will not return media if it has not been fully loaded
+      return this.masterPlaylistLoader_.media() || this.initialMedia_;
+    };
+
+    /**
+     * setup our internal source buffers on our segment Loaders
+     *
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.setupSourceBuffers_ = function setupSourceBuffers_() {
+      var media = this.masterPlaylistLoader_.media();
+      var mimeTypes = void 0;
+
+      // wait until a media playlist is available and the Media Source is
+      // attached
+      if (!media || this.mediaSource.readyState !== 'open') {
+        return;
+      }
+
+      mimeTypes = mimeTypesForPlaylist(this.masterPlaylistLoader_.master, media);
+      if (mimeTypes.length < 1) {
+        this.error = 'No compatible SourceBuffer configuration for the variant stream:' + media.resolvedUri;
+        return this.mediaSource.endOfStream('decode');
+      }
+
+      this.configureLoaderMimeTypes_(mimeTypes);
+      // exclude any incompatible variant streams from future playlist
+      // selection
+      this.excludeIncompatibleVariants_(media);
+    };
+
+    MasterPlaylistController.prototype.configureLoaderMimeTypes_ = function configureLoaderMimeTypes_(mimeTypes) {
+      // If the content is demuxed, we can't start appending segments to a source buffer
+      // until both source buffers are set up, or else the browser may not let us add the
+      // second source buffer (it will assume we are playing either audio only or video
+      // only).
+      var sourceBufferEmitter =
+        // If there is more than one mime type
+        mimeTypes.length > 1 &&
+        // and the first mime type does not have muxed video and audio
+        mimeTypes[0].indexOf(',') === -1 &&
+        // and the two mime types are different (they can be the same in the case of audio
+        // only with alternate audio)
+        mimeTypes[0] !== mimeTypes[1] ?
+          // then we want to wait on the second source buffer
+          new videojs$1.EventTarget() :
+          // otherwise there is no need to wait as the content is either audio only,
+          // video only, or muxed content.
+          null;
+
+      this.mainSegmentLoader_.mimeType(mimeTypes[0], sourceBufferEmitter);
+      if (mimeTypes[1]) {
+        this.audioSegmentLoader_.mimeType(mimeTypes[1], sourceBufferEmitter);
+      }
+    };
+
+    /**
+     * Blacklists playlists with codecs that are unsupported by the browser.
+     */
+
+
+    MasterPlaylistController.prototype.excludeUnsupportedVariants_ = function excludeUnsupportedVariants_() {
+      this.master().playlists.forEach(function (variant) {
+        if (variant.attributes.CODECS && window_1.MediaSource && window_1.MediaSource.isTypeSupported && !window_1.MediaSource.isTypeSupported('video/mp4; codecs="' + mapLegacyAvcCodecs(variant.attributes.CODECS) + '"')) {
+          variant.excludeUntil = Infinity;
+        }
+      });
+    };
+
+    /**
+     * Blacklist playlists that are known to be codec or
+     * stream-incompatible with the SourceBuffer configuration. For
+     * instance, Media Source Extensions would cause the video element to
+     * stall waiting for video data if you switched from a variant with
+     * video and audio to an audio-only one.
+     *
+     * @param {Object} media a media playlist compatible with the current
+     * set of SourceBuffers. Variants in the current master playlist that
+     * do not appear to have compatible codec or stream configurations
+     * will be excluded from the default playlist selection algorithm
+     * indefinitely.
+     * @private
+     */
+
+
+    MasterPlaylistController.prototype.excludeIncompatibleVariants_ = function excludeIncompatibleVariants_(media) {
+      var codecCount = 2;
+      var videoCodec = null;
+      var codecs = void 0;
+
+      if (media.attributes.CODECS) {
+        codecs = parseCodecs(media.attributes.CODECS);
+        videoCodec = codecs.videoCodec;
+        codecCount = codecs.codecCount;
+      }
+
+      this.master().playlists.forEach(function (variant) {
+        var variantCodecs = {
+          codecCount: 2,
+          videoCodec: null
+        };
+
+        if (variant.attributes.CODECS) {
+          variantCodecs = parseCodecs(variant.attributes.CODECS);
+        }
+
+        // if the streams differ in the presence or absence of audio or
+        // video, they are incompatible
+        if (variantCodecs.codecCount !== codecCount) {
+          variant.excludeUntil = Infinity;
+        }
+
+        // if h.264 is specified on the current playlist, some flavor of
+        // it must be specified on all compatible variants
+        if (variantCodecs.videoCodec !== videoCodec) {
+          variant.excludeUntil = Infinity;
+        }
+      });
+    };
+
+    MasterPlaylistController.prototype.updateAdCues_ = function updateAdCues_(media) {
+      var offset = 0;
+      var seekable$$1 = this.seekable();
+
+      if (seekable$$1.length) {
+        offset = seekable$$1.start(0);
+      }
+
+      updateAdCues(media, this.cueTagsTrack_, offset);
+    };
+
+    /**
+     * Calculates the desired forward buffer length based on current time
+     *
+     * @return {Number} Desired forward buffer length in seconds
+     */
+
+
+    MasterPlaylistController.prototype.goalBufferLength = function goalBufferLength() {
+      var currentTime = this.tech_.currentTime();
+      var initial = Config.GOAL_BUFFER_LENGTH;
+      var rate = Config.GOAL_BUFFER_LENGTH_RATE;
+      var max = Math.max(initial, Config.MAX_GOAL_BUFFER_LENGTH);
+
+      return Math.min(initial + currentTime * rate, max);
+    };
+
+    /**
+     * Calculates the desired buffer low water line based on current time
+     *
+     * @return {Number} Desired buffer low water line in seconds
+     */
+
+
+    MasterPlaylistController.prototype.bufferLowWaterLine = function bufferLowWaterLine() {
+      var currentTime = this.tech_.currentTime();
+      var initial = Config.BUFFER_LOW_WATER_LINE;
+      var rate = Config.BUFFER_LOW_WATER_LINE_RATE;
+      var max = Math.max(initial, Config.MAX_BUFFER_LOW_WATER_LINE);
+
+      return Math.min(initial + currentTime * rate, max);
+    };
+
+    return MasterPlaylistController;
+  }(videojs$1.EventTarget);
+
+  /**
+   * Returns a function that acts as the Enable/disable playlist function.
+   *
+   * @param {PlaylistLoader} loader - The master playlist loader
+   * @param {String} playlistUri - uri of the playlist
+   * @param {Function} changePlaylistFn - A function to be called after a
+   * playlist's enabled-state has been changed. Will NOT be called if a
+   * playlist's enabled-state is unchanged
+   * @param {Boolean=} enable - Value to set the playlist enabled-state to
+   * or if undefined returns the current enabled-state for the playlist
+   * @return {Function} Function for setting/getting enabled
+   */
+
+
+  var enableFunction = function enableFunction(loader, playlistUri, changePlaylistFn) {
+    return function (enable) {
+      var playlist = loader.master.playlists[playlistUri];
+      var incompatible = isIncompatible(playlist);
+      var currentlyEnabled = isEnabled(playlist);
+
+      if (typeof enable === 'undefined') {
+        return currentlyEnabled;
+      }
+
+      if (enable) {
+        delete playlist.disabled;
+      } else {
+        playlist.disabled = true;
+      }
+
+      if (enable !== currentlyEnabled && !incompatible) {
+        // Ensure the outside world knows about our changes
+        changePlaylistFn();
+        if (enable) {
+          loader.trigger('renditionenabled');
+        } else {
+          loader.trigger('renditiondisabled');
+        }
+      }
+      return enable;
+    };
+  };
+
+  /**
+   * The representation object encapsulates the publicly visible information
+   * in a media playlist along with a setter/getter-type function (enabled)
+   * for changing the enabled-state of a particular playlist entry
+   *
+   * @class Representation
+   */
+
+  var Representation = function Representation(hlsHandler, playlist, id) {
+    classCallCheck(this, Representation);
+
+    // Get a reference to a bound version of fastQualityChange_
+    var fastChangeFunction = hlsHandler.masterPlaylistController_.fastQualityChange_.bind(hlsHandler.masterPlaylistController_);
+
+    // some playlist attributes are optional
+    if (playlist.attributes.RESOLUTION) {
+      var resolution = playlist.attributes.RESOLUTION;
+
+      this.width = resolution.width;
+      this.height = resolution.height;
+    }
+
+    this.bandwidth = playlist.attributes.BANDWIDTH;
+
+    // The id is simply the ordinality of the media playlist
+    // within the master playlist
+    this.id = id;
+
+    // Partially-apply the enableFunction to create a playlist-
+    // specific variant
+    this.enabled = enableFunction(hlsHandler.playlists, playlist.uri, fastChangeFunction);
+  };
+
+  /**
+   * A mixin function that adds the `representations` api to an instance
+   * of the HlsHandler class
+   * @param {HlsHandler} hlsHandler - An instance of HlsHandler to add the
+   * representation API into
+   */
+
+
+  var renditionSelectionMixin = function renditionSelectionMixin(hlsHandler) {
+    var playlists = hlsHandler.playlists;
+
+    // Add a single API-specific function to the HlsHandler instance
+    hlsHandler.representations = function () {
+      return playlists.master.playlists.filter(function (media) {
+        return !isIncompatible(media);
+      }).map(function (e, i) {
+        return new Representation(hlsHandler, e, e.uri);
+      });
+    };
+  };
+
+  /**
+   * @file playback-watcher.js
+   *
+   * Playback starts, and now my watch begins. It shall not end until my death. I shall
+   * take no wait, hold no uncleared timeouts, father no bad seeks. I shall wear no crowns
+   * and win no glory. I shall live and die at my post. I am the corrector of the underflow.
+   * I am the watcher of gaps. I am the shield that guards the realms of seekable. I pledge
+   * my life and honor to the Playback Watch, for this Player and all the Players to come.
+   */
+
+    // Set of events that reset the playback-watcher time check logic and clear the timeout
+  var timerCancelEvents = ['seeking', 'seeked', 'pause', 'playing', 'error'];
+
+  /**
+   * @class PlaybackWatcher
+   */
+
+  var PlaybackWatcher = function () {
+    /**
+     * Represents an PlaybackWatcher object.
+     * @constructor
+     * @param {object} options an object that includes the tech and settings
+     */
+    function PlaybackWatcher(options) {
+      var _this35 = this;
+
+      classCallCheck(this, PlaybackWatcher);
+
+      this.tech_ = options.tech;
+      this.seekable = options.seekable;
+
+      this.consecutiveUpdates = 0;
+      this.lastRecordedTime = null;
+      this.timer_ = null;
+      this.checkCurrentTimeTimeout_ = null;
+      this.logger_ = logger('PlaybackWatcher');
+
+      this.logger_('initialize');
+
+      var canPlayHandler = function canPlayHandler() {
+        return _this35.monitorCurrentTime_();
+      };
+      var waitingHandler = function waitingHandler() {
+        return _this35.techWaiting_();
+      };
+      var cancelTimerHandler = function cancelTimerHandler() {
+        return _this35.cancelTimer_();
+      };
+      var fixesBadSeeksHandler = function fixesBadSeeksHandler() {
+        return _this35.fixesBadSeeks_();
+      };
+
+      this.tech_.on('seekablechanged', fixesBadSeeksHandler);
+      this.tech_.on('waiting', waitingHandler);
+      this.tech_.on(timerCancelEvents, cancelTimerHandler);
+      this.tech_.on('canplay', canPlayHandler);
+
+      // Define the dispose function to clean up our events
+      this.dispose = function () {
+        _this35.logger_('dispose');
+        _this35.tech_.off('seekablechanged', fixesBadSeeksHandler);
+        _this35.tech_.off('waiting', waitingHandler);
+        _this35.tech_.off(timerCancelEvents, cancelTimerHandler);
+        _this35.tech_.off('canplay', canPlayHandler);
+        if (_this35.checkCurrentTimeTimeout_) {
+          window_1.clearTimeout(_this35.checkCurrentTimeTimeout_);
+        }
+        _this35.cancelTimer_();
+      };
+    }
+
+    /**
+     * Periodically check current time to see if playback stopped
+     *
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.monitorCurrentTime_ = function monitorCurrentTime_() {
+      this.checkCurrentTime_();
+
+      if (this.checkCurrentTimeTimeout_) {
+        window_1.clearTimeout(this.checkCurrentTimeTimeout_);
+      }
+
+      // 42 = 24 fps // 250 is what Webkit uses // FF uses 15
+      this.checkCurrentTimeTimeout_ = window_1.setTimeout(this.monitorCurrentTime_.bind(this), 250);
+    };
+
+    /**
+     * The purpose of this function is to emulate the "waiting" event on
+     * browsers that do not emit it when they are waiting for more
+     * data to continue playback
+     *
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.checkCurrentTime_ = function checkCurrentTime_() {
+      if (this.tech_.seeking() && this.fixesBadSeeks_()) {
+        this.consecutiveUpdates = 0;
+        this.lastRecordedTime = this.tech_.currentTime();
+        return;
+      }
+
+      if (this.tech_.paused() || this.tech_.seeking()) {
+        return;
+      }
+
+      var currentTime = this.tech_.currentTime();
+      var buffered = this.tech_.buffered();
+
+      if (this.lastRecordedTime === currentTime && (!buffered.length || currentTime + SAFE_TIME_DELTA >= buffered.end(buffered.length - 1))) {
+        // If current time is at the end of the final buffered region, then any playback
+        // stall is most likely caused by buffering in a low bandwidth environment. The tech
+        // should fire a `waiting` event in this scenario, but due to browser and tech
+        // inconsistencies. Calling `techWaiting_` here allows us to simulate
+        // responding to a native `waiting` event when the tech fails to emit one.
+        return this.techWaiting_();
+      }
+
+      if (this.consecutiveUpdates >= 5 && currentTime === this.lastRecordedTime) {
+        this.consecutiveUpdates++;
+        this.waiting_();
+      } else if (currentTime === this.lastRecordedTime) {
+        this.consecutiveUpdates++;
+      } else {
+        this.consecutiveUpdates = 0;
+        this.lastRecordedTime = currentTime;
+      }
+    };
+
+    /**
+     * Cancels any pending timers and resets the 'timeupdate' mechanism
+     * designed to detect that we are stalled
+     *
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.cancelTimer_ = function cancelTimer_() {
+      this.consecutiveUpdates = 0;
+
+      if (this.timer_) {
+        this.logger_('cancelTimer_');
+        clearTimeout(this.timer_);
+      }
+
+      this.timer_ = null;
+    };
+
+    /**
+     * Fixes situations where there's a bad seek
+     *
+     * @return {Boolean} whether an action was taken to fix the seek
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.fixesBadSeeks_ = function fixesBadSeeks_() {
+      var seeking = this.tech_.seeking();
+      var seekable = this.seekable();
+      var currentTime = this.tech_.currentTime();
+      var seekTo = void 0;
+
+      if (seeking && this.afterSeekableWindow_(seekable, currentTime)) {
+        var seekableEnd = seekable.end(seekable.length - 1);
+
+        // sync to live point (if VOD, our seekable was updated and we're simply adjusting)
+        seekTo = seekableEnd;
+      }
+
+      if (seeking && this.beforeSeekableWindow_(seekable, currentTime)) {
+        var seekableStart = seekable.start(0);
+
+        // sync to the beginning of the live window
+        // provide a buffer of .1 seconds to handle rounding/imprecise numbers
+        seekTo = seekableStart + SAFE_TIME_DELTA;
+      }
+
+      if (typeof seekTo !== 'undefined') {
+        this.logger_('Trying to seek outside of seekable at time ' + currentTime + ' with ' + ('seekable range ' + printableRange(seekable) + '. Seeking to ') + (seekTo + '.'));
+
+        this.tech_.setCurrentTime(seekTo);
+        return true;
+      }
+
+      return false;
+    };
+
+    /**
+     * Handler for situations when we determine the player is waiting.
+     *
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.waiting_ = function waiting_() {
+      if (this.techWaiting_()) {
+        return;
+      }
+
+      // All tech waiting checks failed. Use last resort correction
+      var currentTime = this.tech_.currentTime();
+      var buffered = this.tech_.buffered();
+      var currentRange = findRange(buffered, currentTime);
+
+      // Sometimes the player can stall for unknown reasons within a contiguous buffered
+      // region with no indication that anything is amiss (seen in Firefox). Seeking to
+      // currentTime is usually enough to kickstart the player. This checks that the player
+      // is currently within a buffered region before attempting a corrective seek.
+      // Chrome does not appear to continue `timeupdate` events after a `waiting` event
+      // until there is ~ 3 seconds of forward buffer available. PlaybackWatcher should also
+      // make sure there is ~3 seconds of forward buffer before taking any corrective action
+      // to avoid triggering an `unknownwaiting` event when the network is slow.
+      if (currentRange.length && currentTime + 3 <= currentRange.end(0)) {
+        this.cancelTimer_();
+        this.tech_.setCurrentTime(currentTime);
+
+        this.logger_('Stopped at ' + currentTime + ' while inside a buffered region ' + ('[' + currentRange.start(0) + ' -> ' + currentRange.end(0) + ']. Attempting to resume ') + 'playback by seeking to the current time.');
+
+        // unknown waiting corrections may be useful for monitoring QoS
+        this.tech_.trigger({type: 'usage', name: 'hls-unknown-waiting'});
+        return;
+      }
+    };
+
+    /**
+     * Handler for situations when the tech fires a `waiting` event
+     *
+     * @return {Boolean}
+     *         True if an action (or none) was needed to correct the waiting. False if no
+     *         checks passed
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.techWaiting_ = function techWaiting_() {
+      var seekable = this.seekable();
+      var currentTime = this.tech_.currentTime();
+
+      if (this.tech_.seeking() && this.fixesBadSeeks_()) {
+        // Tech is seeking or bad seek fixed, no action needed
+        return true;
+      }
+
+      if (this.tech_.seeking() || this.timer_ !== null) {
+        // Tech is seeking or already waiting on another action, no action needed
+        return true;
+      }
+
+      if (this.beforeSeekableWindow_(seekable, currentTime)) {
+        var livePoint = seekable.end(seekable.length - 1);
+
+        this.logger_('Fell out of live window at time ' + currentTime + '. Seeking to ' + ('live point (seekable end) ' + livePoint));
+        this.cancelTimer_();
+        this.tech_.setCurrentTime(livePoint);
+
+        // live window resyncs may be useful for monitoring QoS
+        this.tech_.trigger({type: 'usage', name: 'hls-live-resync'});
+        return true;
+      }
+
+      var buffered = this.tech_.buffered();
+      var nextRange = findNextRange(buffered, currentTime);
+
+      if (this.videoUnderflow_(nextRange, buffered, currentTime)) {
+        // Even though the video underflowed and was stuck in a gap, the audio overplayed
+        // the gap, leading currentTime into a buffered range. Seeking to currentTime
+        // allows the video to catch up to the audio position without losing any audio
+        // (only suffering ~3 seconds of frozen video and a pause in audio playback).
+        this.cancelTimer_();
+        this.tech_.setCurrentTime(currentTime);
+
+        // video underflow may be useful for monitoring QoS
+        this.tech_.trigger({type: 'usage', name: 'hls-video-underflow'});
+        return true;
+      }
+
+      // check for gap
+      if (nextRange.length > 0) {
+        var difference = nextRange.start(0) - currentTime;
+
+        this.logger_('Stopped at ' + currentTime + ', setting timer for ' + difference + ', seeking ' + ('to ' + nextRange.start(0)));
+
+        this.timer_ = setTimeout(this.skipTheGap_.bind(this), difference * 1000, currentTime);
+        return true;
+      }
+
+      // All checks failed. Returning false to indicate failure to correct waiting
+      return false;
+    };
+
+    PlaybackWatcher.prototype.afterSeekableWindow_ = function afterSeekableWindow_(seekable, currentTime) {
+      if (!seekable.length) {
+        // we can't make a solid case if there's no seekable, default to false
+        return false;
+      }
+
+      if (currentTime > seekable.end(seekable.length - 1) + SAFE_TIME_DELTA) {
+        return true;
+      }
+
+      return false;
+    };
+
+    PlaybackWatcher.prototype.beforeSeekableWindow_ = function beforeSeekableWindow_(seekable, currentTime) {
+      if (seekable.length &&
+        // can't fall before 0 and 0 seekable start identifies VOD stream
+        seekable.start(0) > 0 && currentTime < seekable.start(0) - SAFE_TIME_DELTA) {
+        return true;
+      }
+
+      return false;
+    };
+
+    PlaybackWatcher.prototype.videoUnderflow_ = function videoUnderflow_(nextRange, buffered, currentTime) {
+      if (nextRange.length === 0) {
+        // Even if there is no available next range, there is still a possibility we are
+        // stuck in a gap due to video underflow.
+        var gap = this.gapFromVideoUnderflow_(buffered, currentTime);
+
+        if (gap) {
+          this.logger_('Encountered a gap in video from ' + gap.start + ' to ' + gap.end + '. ' + ('Seeking to current time ' + currentTime));
+
+          return true;
+        }
+      }
+
+      return false;
+    };
+
+    /**
+     * Timer callback. If playback still has not proceeded, then we seek
+     * to the start of the next buffered region.
+     *
+     * @private
+     */
+
+
+    PlaybackWatcher.prototype.skipTheGap_ = function skipTheGap_(scheduledCurrentTime) {
+      var buffered = this.tech_.buffered();
+      var currentTime = this.tech_.currentTime();
+      var nextRange = findNextRange(buffered, currentTime);
+
+      this.cancelTimer_();
+
+      if (nextRange.length === 0 || currentTime !== scheduledCurrentTime) {
+        return;
+      }
+
+      this.logger_('skipTheGap_:', 'currentTime:', currentTime, 'scheduled currentTime:', scheduledCurrentTime, 'nextRange start:', nextRange.start(0));
+
+      // only seek if we still have not played
+      this.tech_.setCurrentTime(nextRange.start(0) + TIME_FUDGE_FACTOR);
+
+      this.tech_.trigger({type: 'usage', name: 'hls-gap-skip'});
+    };
+
+    PlaybackWatcher.prototype.gapFromVideoUnderflow_ = function gapFromVideoUnderflow_(buffered, currentTime) {
+      // At least in Chrome, if there is a gap in the video buffer, the audio will continue
+      // playing for ~3 seconds after the video gap starts. This is done to account for
+      // video buffer underflow/underrun (note that this is not done when there is audio
+      // buffer underflow/underrun -- in that case the video will stop as soon as it
+      // encounters the gap, as audio stalls are more noticeable/jarring to a user than
+      // video stalls). The player's time will reflect the playthrough of audio, so the
+      // time will appear as if we are in a buffered region, even if we are stuck in a
+      // "gap."
+      //
+      // Example:
+      // video buffer:   0 => 10.1, 10.2 => 20
+      // audio buffer:   0 => 20
+      // overall buffer: 0 => 10.1, 10.2 => 20
+      // current time: 13
+      //
+      // Chrome's video froze at 10 seconds, where the video buffer encountered the gap,
+      // however, the audio continued playing until it reached ~3 seconds past the gap
+      // (13 seconds), at which point it stops as well. Since current time is past the
+      // gap, findNextRange will return no ranges.
+      //
+      // To check for this issue, we see if there is a gap that starts somewhere within
+      // a 3 second range (3 seconds +/- 1 second) back from our current time.
+      var gaps = findGaps(buffered);
+
+      for (var i = 0; i < gaps.length; i++) {
+        var start = gaps.start(i);
+        var end = gaps.end(i);
+
+        // gap is starts no more than 4 seconds back
+        if (currentTime - start < 4 && currentTime - start > 2) {
+          return {
+            start: start,
+            end: end
+          };
+        }
+      }
+
+      return null;
+    };
+
+    return PlaybackWatcher;
+  }();
+
+  var defaultOptions = {
+    errorInterval: 30,
+    getSource: function getSource(next) {
+      var tech = this.tech({IWillNotUseThisInPlugins: true});
+      var sourceObj = tech.currentSource_;
+
+      return next(sourceObj);
+    }
+  };
+
+  /**
+   * Main entry point for the plugin
+   *
+   * @param {Player} player a reference to a videojs Player instance
+   * @param {Object} [options] an object with plugin options
+   * @private
+   */
+  var initPlugin = function initPlugin(player, options) {
+    var lastCalled = 0;
+    var seekTo = 0;
+    var localOptions = videojs$1.mergeOptions(defaultOptions, options);
+
+    player.ready(function () {
+      player.trigger({type: 'usage', name: 'hls-error-reload-initialized'});
+    });
+
+    /**
+     * Player modifications to perform that must wait until `loadedmetadata`
+     * has been triggered
+     *
+     * @private
+     */
+    var loadedMetadataHandler = function loadedMetadataHandler() {
+      if (seekTo) {
+        player.currentTime(seekTo);
+      }
+    };
+
+    /**
+     * Set the source on the player element, play, and seek if necessary
+     *
+     * @param {Object} sourceObj An object specifying the source url and mime-type to play
+     * @private
+     */
+    var setSource = function setSource(sourceObj) {
+      if (sourceObj === null || sourceObj === undefined) {
+        return;
+      }
+      seekTo = player.duration() !== Infinity && player.currentTime() || 0;
+
+      player.one('loadedmetadata', loadedMetadataHandler);
+
+      player.src(sourceObj);
+      player.trigger({type: 'usage', name: 'hls-error-reload'});
+      player.play();
+    };
+
+    /**
+     * Attempt to get a source from either the built-in getSource function
+     * or a custom function provided via the options
+     *
+     * @private
+     */
+    var errorHandler = function errorHandler() {
+      // Do not attempt to reload the source if a source-reload occurred before
+      // 'errorInterval' time has elapsed since the last source-reload
+      if (Date.now() - lastCalled < localOptions.errorInterval * 1000) {
+        player.trigger({type: 'usage', name: 'hls-error-reload-canceled'});
+        return;
+      }
+
+      if (!localOptions.getSource || typeof localOptions.getSource !== 'function') {
+        videojs$1.log.error('ERROR: reloadSourceOnError - The option getSource must be a function!');
+        return;
+      }
+      lastCalled = Date.now();
+
+      return localOptions.getSource.call(player, setSource);
+    };
+
+    /**
+     * Unbind any event handlers that were bound by the plugin
+     *
+     * @private
+     */
+    var cleanupEvents = function cleanupEvents() {
+      player.off('loadedmetadata', loadedMetadataHandler);
+      player.off('error', errorHandler);
+      player.off('dispose', cleanupEvents);
+    };
+
+    /**
+     * Cleanup before re-initializing the plugin
+     *
+     * @param {Object} [newOptions] an object with plugin options
+     * @private
+     */
+    var reinitPlugin = function reinitPlugin(newOptions) {
+      cleanupEvents();
+      initPlugin(player, newOptions);
+    };
+
+    player.on('error', errorHandler);
+    player.on('dispose', cleanupEvents);
+
+    // Overwrite the plugin function so that we can correctly cleanup before
+    // initializing the plugin
+    player.reloadSourceOnError = reinitPlugin;
+  };
+
+  /**
+   * Reload the source when an error is detected as long as there
+   * wasn't an error previously within the last 30 seconds
+   *
+   * @param {Object} [options] an object with plugin options
+   */
+  var reloadSourceOnError = function reloadSourceOnError(options) {
+    initPlugin(this, options);
+  };
+
+  var version$3 = "1.0.0";
+
+  /**
+   * @file videojs-http-streaming.js
+   *
+   * The main file for the HLS project.
+   * License: https://github.com/videojs/videojs-http-streaming/blob/master/LICENSE
+   */
+
+  var Hls$1 = {
+    PlaylistLoader: PlaylistLoader,
+    Playlist: Playlist,
+    Decrypter: Decrypter,
+    AsyncStream: AsyncStream,
+    decrypt: decrypt,
+    utils: utils,
+
+    STANDARD_PLAYLIST_SELECTOR: lastBandwidthSelector,
+    INITIAL_PLAYLIST_SELECTOR: lowestBitrateCompatibleVariantSelector,
+    comparePlaylistBandwidth: comparePlaylistBandwidth,
+    comparePlaylistResolution: comparePlaylistResolution,
+
+    xhr: xhrFactory()
+  };
+
+  // 0.5 MB/s
+  var INITIAL_BANDWIDTH = 4194304;
+
+  // Define getter/setters for config properites
+  ['GOAL_BUFFER_LENGTH', 'MAX_GOAL_BUFFER_LENGTH', 'GOAL_BUFFER_LENGTH_RATE', 'BUFFER_LOW_WATER_LINE', 'MAX_BUFFER_LOW_WATER_LINE', 'BUFFER_LOW_WATER_LINE_RATE', 'BANDWIDTH_VARIANCE'].forEach(function (prop) {
+    Object.defineProperty(Hls$1, prop, {
+      get: function get$$1() {
+        videojs$1.log.warn('using Hls.' + prop + ' is UNSAFE be sure you know what you are doing');
+        return Config[prop];
+      },
+      set: function set$$1(value) {
+        videojs$1.log.warn('using Hls.' + prop + ' is UNSAFE be sure you know what you are doing');
+
+        if (typeof value !== 'number' || value < 0) {
+          videojs$1.log.warn('value of Hls.' + prop + ' must be greater than or equal to 0');
+          return;
+        }
+
+        Config[prop] = value;
+      }
+    });
+  });
+
+  var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {
+    var mpegurlRE = /^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i;
+
+    if (mpegurlRE.test(type)) {
+      return 'hls';
+    }
+
+    var dashRE = /^application\/dash\+xml/i;
+
+    if (dashRE.test(type)) {
+      return 'dash';
+    }
+
+    return null;
+  };
+
+  /**
+   * Updates the selectedIndex of the QualityLevelList when a mediachange happens in hls.
+   *
+   * @param {QualityLevelList} qualityLevels The QualityLevelList to update.
+   * @param {PlaylistLoader} playlistLoader PlaylistLoader containing the new media info.
+   * @function handleHlsMediaChange
+   */
+  var handleHlsMediaChange = function handleHlsMediaChange(qualityLevels, playlistLoader) {
+    var newPlaylist = playlistLoader.media();
+    var selectedIndex = -1;
+
+    for (var i = 0; i < qualityLevels.length; i++) {
+      if (qualityLevels[i].id === newPlaylist.uri) {
+        selectedIndex = i;
+        break;
+      }
+    }
+
+    qualityLevels.selectedIndex_ = selectedIndex;
+    qualityLevels.trigger({
+      selectedIndex: selectedIndex,
+      type: 'change'
+    });
+  };
+
+  /**
+   * Adds quality levels to list once playlist metadata is available
+   *
+   * @param {QualityLevelList} qualityLevels The QualityLevelList to attach events to.
+   * @param {Object} hls Hls object to listen to for media events.
+   * @function handleHlsLoadedMetadata
+   */
+  var handleHlsLoadedMetadata = function handleHlsLoadedMetadata(qualityLevels, hls) {
+    hls.representations().forEach(function (rep) {
+      qualityLevels.addQualityLevel(rep);
+    });
+    handleHlsMediaChange(qualityLevels, hls.playlists);
+  };
+
+  // HLS is a source handler, not a tech. Make sure attempts to use it
+  // as one do not cause exceptions.
+  Hls$1.canPlaySource = function () {
+    return videojs$1.log.warn('HLS is no longer a tech. Please remove it from ' + 'your player\'s techOrder.');
+  };
+
+  var emeKeySystems = function emeKeySystems(keySystemOptions, videoPlaylist, audioPlaylist) {
+    if (!keySystemOptions) {
+      return keySystemOptions;
+    }
+
+    // upsert the content types based on the selected playlist
+    var keySystemContentTypes = {};
+
+    for (var keySystem in keySystemOptions) {
+      keySystemContentTypes[keySystem] = {
+        audioContentType: 'audio/mp4; codecs="' + audioPlaylist.attributes.CODECS + '"',
+        videoContentType: 'video/mp4; codecs="' + videoPlaylist.attributes.CODECS + '"'
+      };
+
+      if (videoPlaylist.contentProtection && videoPlaylist.contentProtection[keySystem] && videoPlaylist.contentProtection[keySystem].pssh) {
+        keySystemContentTypes[keySystem].pssh = videoPlaylist.contentProtection[keySystem].pssh;
+      }
+
+      // videojs-contrib-eme accepts the option of specifying: 'com.some.cdm': 'url'
+      // so we need to prevent overwriting the URL entirely
+      if (typeof keySystemOptions[keySystem] === 'string') {
+        keySystemContentTypes[keySystem].url = keySystemOptions[keySystem];
+      }
+    }
+
+    return videojs$1.mergeOptions(keySystemOptions, keySystemContentTypes);
+  };
+
+  var setupEmeOptions = function setupEmeOptions(hlsHandler) {
+    if (hlsHandler.options_.sourceType !== 'dash') {
+      return;
+    }
+    var player = videojs$1.players[hlsHandler.tech_.options_.playerId];
+
+    if (player.eme) {
+      var sourceOptions = emeKeySystems(hlsHandler.source_.keySystems, hlsHandler.playlists.media(), hlsHandler.masterPlaylistController_.mediaTypes_.AUDIO.activePlaylistLoader.media());
+
+      if (sourceOptions) {
+        player.currentSource().keySystems = sourceOptions;
+      }
+    }
+  };
+
+  /**
+   * Whether the browser has built-in HLS support.
+   */
+  Hls$1.supportsNativeHls = function () {
+    var video = document_1.createElement('video');
+
+    // native HLS is definitely not supported if HTML5 video isn't
+    if (!videojs$1.getTech('Html5').isSupported()) {
+      return false;
+    }
+
+    // HLS manifests can go by many mime-types
+    var canPlay = [
+      // Apple santioned
+      'application/vnd.apple.mpegurl',
+      // Apple sanctioned for backwards compatibility
+      'audio/mpegurl',
+      // Very common
+      'audio/x-mpegurl',
+      // Very common
+      'application/x-mpegurl',
+      // Included for completeness
+      'video/x-mpegurl', 'video/mpegurl', 'application/mpegurl'];
+
+    return canPlay.some(function (canItPlay) {
+      return (/maybe|probably/i.test(video.canPlayType(canItPlay))
+      );
+    });
+  }();
+
+  Hls$1.supportsNativeDash = function () {
+    if (!videojs$1.getTech('Html5').isSupported()) {
+      return false;
+    }
+
+    return (/maybe|probably/i.test(document_1.createElement('video').canPlayType('application/dash+xml'))
+    );
+  }();
+
+  Hls$1.supportsTypeNatively = function (type) {
+    if (type === 'hls') {
+      return Hls$1.supportsNativeHls;
+    }
+
+    if (type === 'dash') {
+      return Hls$1.supportsNativeDash;
+    }
+
+    return false;
+  };
+
+  /**
+   * HLS is a source handler, not a tech. Make sure attempts to use it
+   * as one do not cause exceptions.
+   */
+  Hls$1.isSupported = function () {
+    return videojs$1.log.warn('HLS is no longer a tech. Please remove it from ' + 'your player\'s techOrder.');
+  };
+
+  var Component$1 = videojs$1.getComponent('Component');
+
+  /**
+   * The Hls Handler object, where we orchestrate all of the parts
+   * of HLS to interact with video.js
+   *
+   * @class HlsHandler
+   * @extends videojs.Component
+   * @param {Object} source the soruce object
+   * @param {Tech} tech the parent tech object
+   * @param {Object} options optional and required options
+   */
+
+  var HlsHandler = function (_Component) {
+    inherits(HlsHandler, _Component);
+
+    function HlsHandler(source, tech, options) {
+      classCallCheck(this, HlsHandler);
+
+      // tech.player() is deprecated but setup a reference to HLS for
+      // backwards-compatibility
+      var _this36 = possibleConstructorReturn(this, _Component.call(this, tech, options.hls));
+
+      if (tech.options_ && tech.options_.playerId) {
+        var _player = videojs$1(tech.options_.playerId);
+
+        if (!_player.hasOwnProperty('hls')) {
+          Object.defineProperty(_player, 'hls', {
+            get: function get$$1() {
+              videojs$1.log.warn('player.hls is deprecated. Use player.tech_.hls instead.');
+              tech.trigger({type: 'usage', name: 'hls-player-access'});
+              return _this36;
+            }
+          });
+        }
+
+        // Set up a reference to the HlsHandler from player.vhs. This allows users to start
+        // migrating from player.tech_.hls... to player.vhs... for API access. Although this
+        // isn't the most appropriate form of reference for video.js (since all APIs should
+        // be provided through core video.js), it is a common pattern for plugins, and vhs
+        // will act accordingly.
+        _player.vhs = _this36;
+        // deprecated, for backwards compatibility
+        _player.dash = _this36;
+      }
+
+      _this36.tech_ = tech;
+      _this36.source_ = source;
+      _this36.stats = {};
+      _this36.ignoreNextSeekingEvent_ = false;
+      _this36.setOptions_();
+
+      // overriding native HLS only works if audio tracks have been emulated
+      // error early if we're misconfigured:
+      if (_this36.options_.overrideNative && (tech.featuresNativeVideoTracks || tech.featuresNativeAudioTracks)) {
+        throw new Error('Overriding native HLS requires emulated tracks. ' + 'See https://git.io/vMpjB');
+      }
+
+      // listen for fullscreenchange events for this player so that we
+      // can adjust our quality selection quickly
+      _this36.on(document_1, ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'], function (event) {
+        var fullscreenElement = document_1.fullscreenElement || document_1.webkitFullscreenElement || document_1.mozFullScreenElement || document_1.msFullscreenElement;
+
+        if (fullscreenElement && fullscreenElement.contains(_this36.tech_.el())) {
+          _this36.masterPlaylistController_.fastQualityChange_();
+        }
+      });
+
+      _this36.on(_this36.tech_, 'seeking', function () {
+        if (this.ignoreNextSeekingEvent_) {
+          this.ignoreNextSeekingEvent_ = false;
+          return;
+        }
+
+        this.setCurrentTime(this.tech_.currentTime());
+      });
+      _this36.on(_this36.tech_, 'error', function () {
+        if (this.masterPlaylistController_) {
+          this.masterPlaylistController_.pauseLoading();
+        }
+      });
+
+      _this36.on(_this36.tech_, 'play', _this36.play);
+      return _this36;
+    }
+
+    HlsHandler.prototype.setOptions_ = function setOptions_() {
+      var _this37 = this;
+
+      // defaults
+      this.options_.withCredentials = this.options_.withCredentials || false;
+
+      if (typeof this.options_.blacklistDuration !== 'number') {
+        this.options_.blacklistDuration = 5 * 60;
+      }
+
+      // start playlist selection at a reasonable bandwidth for
+      // broadband internet (0.5 MB/s) or mobile (0.0625 MB/s)
+      if (typeof this.options_.bandwidth !== 'number') {
+        this.options_.bandwidth = INITIAL_BANDWIDTH;
+      }
+
+      // If the bandwidth number is unchanged from the initial setting
+      // then this takes precedence over the enableLowInitialPlaylist option
+      this.options_.enableLowInitialPlaylist = this.options_.enableLowInitialPlaylist && this.options_.bandwidth === INITIAL_BANDWIDTH;
+
+      // grab options passed to player.src
+      ['withCredentials', 'bandwidth'].forEach(function (option) {
+        if (typeof _this37.source_[option] !== 'undefined') {
+          _this37.options_[option] = _this37.source_[option];
+        }
+      });
+
+      this.bandwidth = this.options_.bandwidth;
+    };
+    /**
+     * called when player.src gets called, handle a new source
+     *
+     * @param {Object} src the source object to handle
+     */
+
+
+    HlsHandler.prototype.src = function src(_src, type) {
+      var _this38 = this;
+
+      // do nothing if the src is falsey
+      if (!_src) {
+        return;
+      }
+      this.setOptions_();
+      // add master playlist controller options
+      this.options_.url = this.source_.src;
+      this.options_.tech = this.tech_;
+      this.options_.externHls = Hls$1;
+      this.options_.sourceType = simpleTypeFromSourceType(type);
+
+      this.masterPlaylistController_ = new MasterPlaylistController(this.options_);
+      this.playbackWatcher_ = new PlaybackWatcher(videojs$1.mergeOptions(this.options_, {
+        seekable: function seekable() {
+          return _this38.seekable();
+        }
+      }));
+
+      this.masterPlaylistController_.on('error', function () {
+        var player = videojs$1.players[_this38.tech_.options_.playerId];
+
+        player.error(_this38.masterPlaylistController_.error);
+      });
+
+      // `this` in selectPlaylist should be the HlsHandler for backwards
+      // compatibility with < v2
+      this.masterPlaylistController_.selectPlaylist = this.selectPlaylist ? this.selectPlaylist.bind(this) : Hls$1.STANDARD_PLAYLIST_SELECTOR.bind(this);
+
+      this.masterPlaylistController_.selectInitialPlaylist = Hls$1.INITIAL_PLAYLIST_SELECTOR.bind(this);
+
+      // re-expose some internal objects for backwards compatibility with < v2
+      this.playlists = this.masterPlaylistController_.masterPlaylistLoader_;
+      this.mediaSource = this.masterPlaylistController_.mediaSource;
+
+      // Proxy assignment of some properties to the master playlist
+      // controller. Using a custom property for backwards compatibility
+      // with < v2
+      Object.defineProperties(this, {
+        selectPlaylist: {
+          get: function get$$1() {
+            return this.masterPlaylistController_.selectPlaylist;
+          },
+          set: function set$$1(selectPlaylist) {
+            this.masterPlaylistController_.selectPlaylist = selectPlaylist.bind(this);
+          }
+        },
+        throughput: {
+          get: function get$$1() {
+            return this.masterPlaylistController_.mainSegmentLoader_.throughput.rate;
+          },
+          set: function set$$1(throughput) {
+            this.masterPlaylistController_.mainSegmentLoader_.throughput.rate = throughput;
+            // By setting `count` to 1 the throughput value becomes the starting value
+            // for the cumulative average
+            this.masterPlaylistController_.mainSegmentLoader_.throughput.count = 1;
+          }
+        },
+        bandwidth: {
+          get: function get$$1() {
+            return this.masterPlaylistController_.mainSegmentLoader_.bandwidth;
+          },
+          set: function set$$1(bandwidth) {
+            this.masterPlaylistController_.mainSegmentLoader_.bandwidth = bandwidth;
+            // setting the bandwidth manually resets the throughput counter
+            // `count` is set to zero that current value of `rate` isn't included
+            // in the cumulative average
+            this.masterPlaylistController_.mainSegmentLoader_.throughput = {
+              rate: 0,
+              count: 0
+            };
+          }
+        },
+        /**
+         * `systemBandwidth` is a combination of two serial processes bit-rates. The first
+         * is the network bitrate provided by `bandwidth` and the second is the bitrate of
+         * the entire process after that - decryption, transmuxing, and appending - provided
+         * by `throughput`.
+         *
+         * Since the two process are serial, the overall system bandwidth is given by:
+         *   sysBandwidth = 1 / (1 / bandwidth + 1 / throughput)
+         */
+        systemBandwidth: {
+          get: function get$$1() {
+            var invBandwidth = 1 / (this.bandwidth || 1);
+            var invThroughput = void 0;
+
+            if (this.throughput > 0) {
+              invThroughput = 1 / this.throughput;
+            } else {
+              invThroughput = 0;
+            }
+
+            var systemBitrate = Math.floor(1 / (invBandwidth + invThroughput));
+
+            return systemBitrate;
+          },
+          set: function set$$1() {
+            videojs$1.log.error('The "systemBandwidth" property is read-only');
+          }
+        }
+      });
+
+      Object.defineProperties(this.stats, {
+        bandwidth: {
+          get: function get$$1() {
+            return _this38.bandwidth || 0;
+          },
+          enumerable: true
+        },
+        mediaRequests: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaRequests_() || 0;
+          },
+          enumerable: true
+        },
+        mediaRequestsAborted: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaRequestsAborted_() || 0;
+          },
+          enumerable: true
+        },
+        mediaRequestsTimedout: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaRequestsTimedout_() || 0;
+          },
+          enumerable: true
+        },
+        mediaRequestsErrored: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaRequestsErrored_() || 0;
+          },
+          enumerable: true
+        },
+        mediaTransferDuration: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaTransferDuration_() || 0;
+          },
+          enumerable: true
+        },
+        mediaBytesTransferred: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaBytesTransferred_() || 0;
+          },
+          enumerable: true
+        },
+        mediaSecondsLoaded: {
+          get: function get$$1() {
+            return _this38.masterPlaylistController_.mediaSecondsLoaded_() || 0;
+          },
+          enumerable: true
+        },
+        buffered: {
+          get: function get$$1() {
+            return timeRangesToArray(_this38.tech_.buffered());
+          },
+          enumerable: true
+        },
+        currentTime: {
+          get: function get$$1() {
+            return _this38.tech_.currentTime();
+          },
+          enumerable: true
+        },
+        currentSource: {
+          get: function get$$1() {
+            return _this38.tech_.currentSource_;
+          },
+          enumerable: true
+        },
+        currentTech: {
+          get: function get$$1() {
+            return _this38.tech_.name_;
+          },
+          enumerable: true
+        },
+        duration: {
+          get: function get$$1() {
+            return _this38.tech_.duration();
+          },
+          enumerable: true
+        },
+        master: {
+          get: function get$$1() {
+            return _this38.playlists.master;
+          },
+          enumerable: true
+        },
+        playerDimensions: {
+          get: function get$$1() {
+            return _this38.tech_.currentDimensions();
+          },
+          enumerable: true
+        },
+        seekable: {
+          get: function get$$1() {
+            return timeRangesToArray(_this38.tech_.seekable());
+          },
+          enumerable: true
+        },
+        timestamp: {
+          get: function get$$1() {
+            return Date.now();
+          },
+          enumerable: true
+        },
+        videoPlaybackQuality: {
+          get: function get$$1() {
+            return _this38.tech_.getVideoPlaybackQuality();
+          },
+          enumerable: true
+        }
+      });
+
+      this.tech_.one('canplay', this.masterPlaylistController_.setupFirstPlay.bind(this.masterPlaylistController_));
+
+      this.masterPlaylistController_.on('selectedinitialmedia', function () {
+        // Add the manual rendition mix-in to HlsHandler
+        renditionSelectionMixin(_this38);
+        setupEmeOptions(_this38);
+      });
+
+      // the bandwidth of the primary segment loader is our best
+      // estimate of overall bandwidth
+      this.on(this.masterPlaylistController_, 'progress', function () {
+        this.tech_.trigger('progress');
+      });
+
+      // In the live case, we need to ignore the very first `seeking` event since
+      // that will be the result of the seek-to-live behavior
+      this.on(this.masterPlaylistController_, 'firstplay', function () {
+        this.ignoreNextSeekingEvent_ = true;
+      });
+
+      this.tech_.ready(function () {
+        return _this38.setupQualityLevels_();
+      });
+
+      // do nothing if the tech has been disposed already
+      // this can occur if someone sets the src in player.ready(), for instance
+      if (!this.tech_.el()) {
+        return;
+      }
+
+      this.tech_.src(videojs$1.URL.createObjectURL(this.masterPlaylistController_.mediaSource));
+    };
+
+    /**
+     * Initializes the quality levels and sets listeners to update them.
+     *
+     * @method setupQualityLevels_
+     * @private
+     */
+
+
+    HlsHandler.prototype.setupQualityLevels_ = function setupQualityLevels_() {
+      var _this39 = this;
+
+      var player = videojs$1.players[this.tech_.options_.playerId];
+
+      if (player && player.qualityLevels) {
+        this.qualityLevels_ = player.qualityLevels();
+
+        this.masterPlaylistController_.on('selectedinitialmedia', function () {
+          handleHlsLoadedMetadata(_this39.qualityLevels_, _this39);
+        });
+
+        this.playlists.on('mediachange', function () {
+          handleHlsMediaChange(_this39.qualityLevels_, _this39.playlists);
+        });
+      }
+    };
+
+    /**
+     * Begin playing the video.
+     */
+
+
+    HlsHandler.prototype.play = function play() {
+      this.masterPlaylistController_.play();
+    };
+
+    /**
+     * a wrapper around the function in MasterPlaylistController
+     */
+
+
+    HlsHandler.prototype.setCurrentTime = function setCurrentTime(currentTime) {
+      this.masterPlaylistController_.setCurrentTime(currentTime);
+    };
+
+    /**
+     * a wrapper around the function in MasterPlaylistController
+     */
+
+
+    HlsHandler.prototype.duration = function duration() {
+      return this.masterPlaylistController_.duration();
+    };
+
+    /**
+     * a wrapper around the function in MasterPlaylistController
+     */
+
+
+    HlsHandler.prototype.seekable = function seekable() {
+      return this.masterPlaylistController_.seekable();
+    };
+
+    /**
+     * Abort all outstanding work and cleanup.
+     */
+
+
+    HlsHandler.prototype.dispose = function dispose() {
+      if (this.playbackWatcher_) {
+        this.playbackWatcher_.dispose();
+      }
+      if (this.masterPlaylistController_) {
+        this.masterPlaylistController_.dispose();
+      }
+      if (this.qualityLevels_) {
+        this.qualityLevels_.dispose();
+      }
+      _Component.prototype.dispose.call(this);
+    };
+
+    return HlsHandler;
+  }(Component$1);
+
+  /**
+   * The Source Handler object, which informs video.js what additional
+   * MIME types are supported and sets up playback. It is registered
+   * automatically to the appropriate tech based on the capabilities of
+   * the browser it is running in. It is not necessary to use or modify
+   * this object in normal usage.
+   */
+
+
+  var HlsSourceHandler = {
+    name: 'videojs-http-streaming',
+    VERSION: version$3,
+    canHandleSource: function canHandleSource(srcObj) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+      var localOptions = videojs$1.mergeOptions(videojs$1.options, options);
+
+      return HlsSourceHandler.canPlayType(srcObj.type, localOptions);
+    },
+    handleSource: function handleSource(source, tech) {
+      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+      var localOptions = videojs$1.mergeOptions(videojs$1.options, options);
+
+      tech.hls = new HlsHandler(source, tech, localOptions);
+      tech.hls.xhr = xhrFactory();
+
+      tech.hls.src(source.src, source.type);
+      return tech.hls;
+    },
+    canPlayType: function canPlayType(type) {
+      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+      var _videojs$mergeOptions = videojs$1.mergeOptions(videojs$1.options, options),
+        overrideNative = _videojs$mergeOptions.hls.overrideNative;
+
+      var supportedType = simpleTypeFromSourceType(type);
+      var canUseMsePlayback = supportedType && (!Hls$1.supportsTypeNatively(supportedType) || overrideNative);
+
+      return canUseMsePlayback ? 'maybe' : '';
+    }
+  };
+
+  if (typeof videojs$1.MediaSource === 'undefined' || typeof videojs$1.URL === 'undefined') {
+    videojs$1.MediaSource = MediaSource;
+    videojs$1.URL = URL$1;
+  }
+
+  // register source handlers with the appropriate techs
+  if (MediaSource.supportsNativeMediaSources()) {
+    videojs$1.getTech('Html5').registerSourceHandler(HlsSourceHandler, 0);
+  }
+
+  videojs$1.HlsHandler = HlsHandler;
+  videojs$1.HlsSourceHandler = HlsSourceHandler;
+  videojs$1.Hls = Hls$1;
+  if (!videojs$1.use) {
+    videojs$1.registerComponent('Hls', Hls$1);
+  }
+  videojs$1.options.hls = videojs$1.options.hls || {};
+
+  if (videojs$1.registerPlugin) {
+    videojs$1.registerPlugin('reloadSourceOnError', reloadSourceOnError);
+  } else {
+    videojs$1.plugin('reloadSourceOnError', reloadSourceOnError);
+  }
+
+  return videojs$1;
+
+})));
diff --git a/src/assets/libs/video-js-7.0.0/video.min.js b/src/assets/libs/video-js-7.0.0/video.min.js
new file mode 100644
index 0000000..6fb4314
--- /dev/null
+++ b/src/assets/libs/video-js-7.0.0/video.min.js
@@ -0,0 +1,12 @@
+/**
+ * @license
+ * Video.js 7.0.0 <http://videojs.com/>
+ * Copyright Brightcove, Inc. <https://www.brightcove.com/>
+ * Available under Apache License Version 2.0
+ * <https://github.com/videojs/video.js/blob/master/LICENSE>
+ *
+ * Includes vtt.js <https://github.com/mozilla/vtt.js>
+ * Available under Apache License Version 2.0
+ * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.videojs=e()}(this,function(){var d="7.0.0",t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var i,g="undefined"!=typeof window?window:"undefined"!=typeof t?t:"undefined"!=typeof self?self:{},r={},n=Object.freeze({default:r}),s=n&&r||n,a="undefined"!=typeof t?t:"undefined"!=typeof window?window:{};"undefined"!=typeof document?i=document:(i=a["__GLOBAL_DOCUMENT_CACHE@4"])||(i=a["__GLOBAL_DOCUMENT_CACHE@4"]=s);var p=i,o=void 0,u="info",l=[],c=function(t,e){var i=o.levels[u],r=new RegExp("^("+i+")$");if("log"!==t&&e.unshift(t.toUpperCase()+":"),l&&l.push([].concat(e)),e.unshift("VIDEOJS:"),g.console){var n=g.console[t];n||"debug"!==t||(n=g.console.info||g.console.log),n&&i&&r.test(t)&&n[Array.isArray(e)?"apply":"call"](g.console,e)}};(o=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];c("log",e)}).levels={all:"debug|log|warn|error",off:"",debug:"debug|log|warn|error",info:"log|warn|error",warn:"warn|error",error:"error",DEFAULT:u},o.level=function(t){if("string"==typeof t){if(!o.levels.hasOwnProperty(t))throw new Error('"'+t+'" in not a valid log level');u=t}return u},o.history=function(){return l?[].concat(l):[]},o.history.clear=function(){l&&(l.length=0)},o.history.disable=function(){null!==l&&(l.length=0,l=null)},o.history.enable=function(){null===l&&(l=[])},o.error=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return c("error",e)},o.warn=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return c("warn",e)},o.debug=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return c("debug",e)};var f=o;var m=function(t){for(var e="",i=0;i<arguments.length;i++)e+=t[i].replace(/\n\r?\s*/g,"")+(arguments[i+1]||"");return e},v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},_=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},b=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},h=function(t,e){return t.raw=e,t},T=Object.prototype.toString,S=function(t){return E(t)?Object.keys(t):[]};function k(e,i){S(e).forEach(function(t){return i(e[t],t)})}function C(i){for(var t=arguments.length,e=Array(1<t?t-1:0),r=1;r<t;r++)e[r-1]=arguments[r];return Object.assign?Object.assign.apply(Object,[i].concat(e)):(e.forEach(function(t){t&&k(t,function(t,e){i[e]=t})}),i)}function E(t){return!!t&&"object"===("undefined"==typeof t?"undefined":v(t))}function w(t){return E(t)&&"[object Object]"===T.call(t)&&t.constructor===Object}function A(t,e){if(!t||!e)return"";if("function"==typeof g.getComputedStyle){var i=g.getComputedStyle(t);return i?i[e]:""}return""}var L=h(["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set "," to ","."],["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set "," to ","."]);function P(t){return"string"==typeof t&&/\S/.test(t)}function O(t){if(/\s/.test(t))throw new Error("class has illegal whitespace characters")}function x(){return p===g.document}function I(t){return E(t)&&1===t.nodeType}function D(){try{return g.parent!==g.self}catch(t){return!0}}function R(r){return function(t,e){if(!P(t))return p[r](null);P(e)&&(e=p.querySelector(e));var i=I(e)?e:p;return i[r]&&i[r](t)}}function M(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"div",i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},r=arguments[3],n=p.createElement(t);return Object.getOwnPropertyNames(i).forEach(function(t){var e=i[t];-1!==t.indexOf("aria-")||"role"===t||"type"===t?(f.warn(m(L,t,e)),n.setAttribute(t,e)):"textContent"===t?U(n,e):n[t]=e}),Object.getOwnPropertyNames(e).forEach(function(t){n.setAttribute(t,e[t])}),r&&et(n,r),n}function U(t,e){return"undefined"==typeof t.textContent?t.innerText=e:t.textContent=e,t}function N(t,e){e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}function B(t,e){return O(e),t.classList?t.classList.contains(e):(i=e,new RegExp("(^|\\s)"+i+"($|\\s)")).test(t.className);var i}function j(t,e){return t.classList?t.classList.add(e):B(t,e)||(t.className=(t.className+" "+e).trim()),t}function F(t,e){return t.classList?t.classList.remove(e):(O(e),t.className=t.className.split(/\s+/).filter(function(t){return t!==e}).join(" ")),t}function H(t,e,i){var r=B(t,e);if("function"==typeof i&&(i=i(t,e)),"boolean"!=typeof i&&(i=!r),i!==r)return i?j(t,e):F(t,e),t}function V(i,r){Object.getOwnPropertyNames(r).forEach(function(t){var e=r[t];null===e||"undefined"==typeof e||!1===e?i.removeAttribute(t):i.setAttribute(t,!0===e?"":e)})}function q(t){var e={},i=",autoplay,controls,playsinline,loop,muted,default,defaultMuted,";if(t&&t.attributes&&0<t.attributes.length)for(var r=t.attributes,n=r.length-1;0<=n;n--){var s=r[n].name,a=r[n].value;"boolean"!=typeof t[s]&&-1===i.indexOf(","+s+",")||(a=null!==a),e[s]=a}return e}function W(t,e){return t.getAttribute(e)}function z(t,e,i){t.setAttribute(e,i)}function G(t,e){t.removeAttribute(e)}function X(){p.body.focus(),p.onselectstart=function(){return!1}}function Y(){p.onselectstart=function(){return!0}}function $(t){if(t&&t.getBoundingClientRect&&t.parentNode){var e=t.getBoundingClientRect(),i={};return["bottom","height","left","right","top","width"].forEach(function(t){void 0!==e[t]&&(i[t]=e[t])}),i.height||(i.height=parseFloat(A(t,"height"))),i.width||(i.width=parseFloat(A(t,"width"))),i}}function K(t){var e=void 0;if(t.getBoundingClientRect&&t.parentNode&&(e=t.getBoundingClientRect()),!e)return{left:0,top:0};var i=p.documentElement,r=p.body,n=i.clientLeft||r.clientLeft||0,s=g.pageXOffset||r.scrollLeft,a=e.left+s-n,o=i.clientTop||r.clientTop||0,u=g.pageYOffset||r.scrollTop,l=e.top+u-o;return{left:Math.round(a),top:Math.round(l)}}function Q(t,e){var i={},r=K(t),n=t.offsetWidth,s=t.offsetHeight,a=r.top,o=r.left,u=e.pageY,l=e.pageX;return e.changedTouches&&(l=e.changedTouches[0].pageX,u=e.changedTouches[0].pageY),i.y=Math.max(0,Math.min(1,(a-u+s)/s)),i.x=Math.max(0,Math.min(1,(l-o)/n)),i}function J(t){return E(t)&&3===t.nodeType}function Z(t){for(;t.firstChild;)t.removeChild(t.firstChild);return t}function tt(t){return"function"==typeof t&&(t=t()),(Array.isArray(t)?t:[t]).map(function(t){return"function"==typeof t&&(t=t()),I(t)||J(t)?t:"string"==typeof t&&/\S/.test(t)?p.createTextNode(t):void 0}).filter(function(t){return t})}function et(e,t){return tt(t).forEach(function(t){return e.appendChild(t)}),e}function it(t,e){return et(Z(t),e)}function rt(t){return void 0===t.button&&void 0===t.buttons||(0===t.button&&void 0===t.buttons||0===t.button&&1===t.buttons)}var nt=R("querySelector"),st=R("querySelectorAll"),at=Object.freeze({isReal:x,isEl:I,isInFrame:D,createEl:M,textContent:U,prependTo:N,hasClass:B,addClass:j,removeClass:F,toggleClass:H,setAttributes:V,getAttributes:q,getAttribute:W,setAttribute:z,removeAttribute:G,blockTextSelection:X,unblockTextSelection:Y,getBoundingClientRect:$,findPosition:K,getPointerPosition:Q,isTextNode:J,emptyEl:Z,normalizeContent:tt,appendContent:et,insertContent:it,isSingleLeftClick:rt,$:nt,$$:st}),ot=1;function ut(){return ot++}var lt={},ct="vdata"+(new Date).getTime();function ht(t){var e=t[ct];return e||(e=t[ct]=ut()),lt[e]||(lt[e]={}),lt[e]}function dt(t){var e=t[ct];return!!e&&!!Object.getOwnPropertyNames(lt[e]).length}function pt(e){var t=e[ct];if(t){delete lt[t];try{delete e[ct]}catch(t){e.removeAttribute?e.removeAttribute(ct):e[ct]=null}}}function ft(t,e){var i=ht(t);0===i.handlers[e].length&&(delete i.handlers[e],t.removeEventListener?t.removeEventListener(e,i.dispatcher,!1):t.detachEvent&&t.detachEvent("on"+e,i.dispatcher)),Object.getOwnPropertyNames(i.handlers).length<=0&&(delete i.handlers,delete i.dispatcher,delete i.disabled),0===Object.getOwnPropertyNames(i).length&&pt(t)}function mt(e,i,t,r){t.forEach(function(t){e(i,t,r)})}function gt(t){function e(){return!0}function i(){return!1}if(!t||!t.isPropagationStopped){var r=t||g.event;for(var n in t={},r)"layerX"!==n&&"layerY"!==n&&"keyLocation"!==n&&"webkitMovementX"!==n&&"webkitMovementY"!==n&&("returnValue"===n&&r.preventDefault||(t[n]=r[n]));if(t.target||(t.target=t.srcElement||p),t.relatedTarget||(t.relatedTarget=t.fromElement===t.target?t.toElement:t.fromElement),t.preventDefault=function(){r.preventDefault&&r.preventDefault(),t.returnValue=!1,r.returnValue=!1,t.defaultPrevented=!0},t.defaultPrevented=!1,t.stopPropagation=function(){r.stopPropagation&&r.stopPropagation(),t.cancelBubble=!0,r.cancelBubble=!0,t.isPropagationStopped=e},t.isPropagationStopped=i,t.stopImmediatePropagation=function(){r.stopImmediatePropagation&&r.stopImmediatePropagation(),t.isImmediatePropagationStopped=e,t.stopPropagation()},t.isImmediatePropagationStopped=i,null!==t.clientX&&void 0!==t.clientX){var s=p.documentElement,a=p.body;t.pageX=t.clientX+(s&&s.scrollLeft||a&&a.scrollLeft||0)-(s&&s.clientLeft||a&&a.clientLeft||0),t.pageY=t.clientY+(s&&s.scrollTop||a&&a.scrollTop||0)-(s&&s.clientTop||a&&a.clientTop||0)}t.which=t.charCode||t.keyCode,null!==t.button&&void 0!==t.button&&(t.button=1&t.button?0:4&t.button?1:2&t.button?2:0)}return t}var yt=!1;!function(){try{var t=Object.defineProperty({},"passive",{get:function(){yt=!0}});g.addEventListener("test",null,t),g.removeEventListener("test",null,t)}catch(t){}}();var vt=["touchstart","touchmove"];function _t(a,t,e){if(Array.isArray(t))return mt(_t,a,t,e);var o=ht(a);if(o.handlers||(o.handlers={}),o.handlers[t]||(o.handlers[t]=[]),e.guid||(e.guid=ut()),o.handlers[t].push(e),o.dispatcher||(o.disabled=!1,o.dispatcher=function(t,e){if(!o.disabled){t=gt(t);var i=o.handlers[t.type];if(i)for(var r=i.slice(0),n=0,s=r.length;n<s&&!t.isImmediatePropagationStopped();n++)try{r[n].call(a,t,e)}catch(t){f.error(t)}}}),1===o.handlers[t].length)if(a.addEventListener){var i=!1;yt&&-1<vt.indexOf(t)&&(i={passive:!0}),a.addEventListener(t,o.dispatcher,i)}else a.attachEvent&&a.attachEvent("on"+t,o.dispatcher)}function bt(t,e,i){if(dt(t)){var r=ht(t);if(r.handlers){if(Array.isArray(e))return mt(bt,t,e,i);var n=function(t,e){r.handlers[e]=[],ft(t,e)};if(void 0!==e){var s=r.handlers[e];if(s)if(i){if(i.guid)for(var a=0;a<s.length;a++)s[a].guid===i.guid&&s.splice(a--,1);ft(t,e)}else n(t,e)}else for(var o in r.handlers)Object.prototype.hasOwnProperty.call(r.handlers||{},o)&&n(t,o)}}}function Tt(t,e,i){var r=dt(t)?ht(t):{},n=t.parentNode||t.ownerDocument;if("string"==typeof e?e={type:e,target:t}:e.target||(e.target=t),e=gt(e),r.dispatcher&&r.dispatcher.call(t,e,i),n&&!e.isPropagationStopped()&&!0===e.bubbles)Tt.call(null,n,e,i);else if(!n&&!e.defaultPrevented){var s=ht(e.target);e.target[e.type]&&(s.disabled=!0,"function"==typeof e.target[e.type]&&e.target[e.type](),s.disabled=!1)}return!e.defaultPrevented}function St(e,i,r){if(Array.isArray(i))return mt(St,e,i,r);var t=function t(){bt(e,i,t),r.apply(this,arguments)};t.guid=r.guid=r.guid||ut(),_t(e,i,t)}var kt=Object.freeze({fixEvent:gt,on:_t,off:bt,trigger:Tt,one:St}),Ct=!1,Et=void 0,wt=function(){if(x()&&!1!==Et.options.autoSetup){var t=Array.prototype.slice.call(p.getElementsByTagName("video")),e=Array.prototype.slice.call(p.getElementsByTagName("audio")),i=Array.prototype.slice.call(p.getElementsByTagName("video-js")),r=t.concat(e,i);if(r&&0<r.length)for(var n=0,s=r.length;n<s;n++){var a=r[n];if(!a||!a.getAttribute){At(1);break}void 0===a.player&&null!==a.getAttribute("data-setup")&&Et(a)}else Ct||At(1)}};function At(t,e){e&&(Et=e),g.setTimeout(wt,t)}x()&&"complete"===p.readyState?Ct=!0:St(g,"load",function(){Ct=!0});var Lt=function(t){var e=p.createElement("style");return e.className=t,e},Pt=function(t,e){t.styleSheet?t.styleSheet.cssText=e:t.textContent=e},Ot=function(t,e,i){e.guid||(e.guid=ut());var r=function(){return e.apply(t,arguments)};return r.guid=i?i+"_"+e.guid:e.guid,r},xt=function(e,i){var r=Date.now();return function(){var t=Date.now();i<=t-r&&(e.apply(void 0,arguments),r=t)}},It=function(r,n,s){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:g,o=void 0;return function(){var t=this,e=arguments,i=function(){i=o=null,s||r.apply(t,e)};!o&&s&&r.apply(t,e),a.clearTimeout(o),o=a.setTimeout(i,n)}},Dt=function(){};Dt.prototype.allowedEvents_={},Dt.prototype.addEventListener=Dt.prototype.on=function(t,e){var i=this.addEventListener;this.addEventListener=function(){},_t(this,t,e),this.addEventListener=i},Dt.prototype.removeEventListener=Dt.prototype.off=function(t,e){bt(this,t,e)},Dt.prototype.one=function(t,e){var i=this.addEventListener;this.addEventListener=function(){},St(this,t,e),this.addEventListener=i},Dt.prototype.dispatchEvent=Dt.prototype.trigger=function(t){var e=t.type||t;"string"==typeof t&&(t={type:e}),t=gt(t),this.allowedEvents_[e]&&this["on"+e]&&this["on"+e](t),Tt(this,t)};var Rt=function(e){return e instanceof Dt||!!e.eventBusEl_&&["on","one","off","trigger"].every(function(t){return"function"==typeof e[t]})},Mt=function(t){return"string"==typeof t&&/\S/.test(t)||Array.isArray(t)&&!!t.length},Ut=function(t){if(!t.nodeName&&!Rt(t))throw new Error("Invalid target; must be a DOM node or evented object.")},Nt=function(t){if(!Mt(t))throw new Error("Invalid event type; must be a non-empty string or array.")},Bt=function(t){if("function"!=typeof t)throw new Error("Invalid listener; must be a function.")},jt=function(t,e){var i=e.length<3||e[0]===t||e[0]===t.eventBusEl_,r=void 0,n=void 0,s=void 0;return i?(r=t.eventBusEl_,3<=e.length&&e.shift(),n=e[0],s=e[1]):(r=e[0],n=e[1],s=e[2]),Ut(r),Nt(n),Bt(s),{isTargetingSelf:i,target:r,type:n,listener:s=Ot(t,s)}},Ft=function(t,e,i,r){Ut(t),t.nodeName?kt[e](t,i,r):t[e](i,r)},Ht={on:function(){for(var t=this,e=arguments.length,i=Array(e),r=0;r<e;r++)i[r]=arguments[r];var n=jt(this,i),s=n.isTargetingSelf,a=n.target,o=n.type,u=n.listener;if(Ft(a,"on",o,u),!s){var l=function(){return t.off(a,o,u)};l.guid=u.guid;var c=function(){return t.off("dispose",l)};c.guid=u.guid,Ft(this,"on","dispose",l),Ft(a,"on","dispose",c)}},one:function(){for(var n=this,t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];var r=jt(this,e),s=r.isTargetingSelf,a=r.target,o=r.type,u=r.listener;if(s)Ft(a,"one",o,u);else{var l=function t(){for(var e=arguments.length,i=Array(e),r=0;r<e;r++)i[r]=arguments[r];n.off(a,o,t),u.apply(null,i)};l.guid=u.guid,Ft(a,"one",o,l)}},off:function(t,e,i){if(!t||Mt(t))bt(this.eventBusEl_,t,e);else{var r=t,n=e;Ut(r),Nt(n),Bt(i),i=Ot(this,i),this.off("dispose",i),r.nodeName?(bt(r,n,i),bt(r,"dispose",i)):Rt(r)&&(r.off(n,i),r.off("dispose",i))}},trigger:function(t,e){return Tt(this.eventBusEl_,t,e)}};function Vt(t){var e=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).eventBusKey;if(e){if(!t[e].nodeName)throw new Error('The eventBusKey "'+e+'" does not refer to an element.');t.eventBusEl_=t[e]}else t.eventBusEl_=M("span",{className:"vjs-event-bus"});return C(t,Ht),t.on("dispose",function(){t.off(),g.setTimeout(function(){t.eventBusEl_=null},0)}),t}var qt={state:{},setState:function(t){var i=this;"function"==typeof t&&(t=t());var r=void 0;return k(t,function(t,e){i.state[e]!==t&&((r=r||{})[e]={from:i.state[e],to:t}),i.state[e]=t}),r&&Rt(this)&&this.trigger({changes:r,type:"statechanged"}),r}};function Wt(t,e){return C(t,qt),t.state=C({},t.state,e),"function"==typeof t.handleStateChanged&&Rt(t)&&t.on("statechanged",t.handleStateChanged),t}function zt(t){return"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function Gt(){for(var i={},t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return e.forEach(function(t){t&&k(t,function(t,e){w(t)?(w(i[e])||(i[e]={}),i[e]=Gt(i[e],t)):i[e]=t})}),i}var Xt=function(){function l(t,e,i){if(y(this,l),!t&&this.play?this.player_=t=this:this.player_=t,this.options_=Gt({},this.options_),e=this.options_=Gt(this.options_,e),this.id_=e.id||e.el&&e.el.id,!this.id_){var r=t&&t.id&&t.id()||"no_player";this.id_=r+"_component_"+ut()}this.name_=e.name||null,e.el?this.el_=e.el:!1!==e.createEl&&(this.el_=this.createEl()),!1!==e.evented&&Vt(this,{eventBusKey:this.el_?"el_":null}),Wt(this,this.constructor.defaultState),this.children_=[],this.childIndex_={},!(this.childNameIndex_={})!==e.initChildren&&this.initChildren(),this.ready(i),!1!==e.reportTouchActivity&&this.enableTouchActivity()}return l.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var t=this.children_.length-1;0<=t;t--)this.children_[t].dispose&&this.children_[t].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.el_&&(this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),pt(this.el_),this.el_=null),this.player_=null},l.prototype.player=function(){return this.player_},l.prototype.options=function(t){return f.warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),t&&(this.options_=Gt(this.options_,t)),this.options_},l.prototype.el=function(){return this.el_},l.prototype.createEl=function(t,e,i){return M(t,e,i)},l.prototype.localize=function(t,n){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:t,i=this.player_.language&&this.player_.language(),r=this.player_.languages&&this.player_.languages(),s=r&&r[i],a=i&&i.split("-")[0],o=r&&r[a],u=e;return s&&s[t]?u=s[t]:o&&o[t]&&(u=o[t]),n&&(u=u.replace(/\{(\d+)\}/g,function(t,e){var i=n[e-1],r=i;return"undefined"==typeof i&&(r=t),r})),u},l.prototype.contentEl=function(){return this.contentEl_||this.el_},l.prototype.id=function(){return this.id_},l.prototype.name=function(){return this.name_},l.prototype.children=function(){return this.children_},l.prototype.getChildById=function(t){return this.childIndex_[t]},l.prototype.getChild=function(t){if(t)return t=zt(t),this.childNameIndex_[t]},l.prototype.addChild=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:this.children_.length,r=void 0,n=void 0;if("string"==typeof t){n=zt(t);var s=e.componentClass||n;e.name=n;var a=l.getComponent(s);if(!a)throw new Error("Component "+s+" does not exist");if("function"!=typeof a)return null;r=new a(this.player_||this,e)}else r=t;if(this.children_.splice(i,0,r),"function"==typeof r.id&&(this.childIndex_[r.id()]=r),(n=n||r.name&&zt(r.name()))&&(this.childNameIndex_[n]=r),"function"==typeof r.el&&r.el()){var o=this.contentEl().children[i]||null;this.contentEl().insertBefore(r.el(),o)}return r},l.prototype.removeChild=function(t){if("string"==typeof t&&(t=this.getChild(t)),t&&this.children_){for(var e=!1,i=this.children_.length-1;0<=i;i--)if(this.children_[i]===t){e=!0,this.children_.splice(i,1);break}if(e){this.childIndex_[t.id()]=null,this.childNameIndex_[t.name()]=null;var r=t.el();r&&r.parentNode===this.contentEl()&&this.contentEl().removeChild(t.el())}}},l.prototype.initChildren=function(){var n=this,r=this.options_.children;if(r){var s=this.options_,t=void 0,i=l.getComponent("Tech");(t=Array.isArray(r)?r:Object.keys(r)).concat(Object.keys(this.options_).filter(function(e){return!t.some(function(t){return"string"==typeof t?e===t:e===t.name})})).map(function(t){var e=void 0,i=void 0;return"string"==typeof t?i=r[e=t]||n.options_[e]||{}:(e=t.name,i=t),{name:e,opts:i}}).filter(function(t){var e=l.getComponent(t.opts.componentClass||zt(t.name));return e&&!i.isTech(e)}).forEach(function(t){var e=t.name,i=t.opts;if(void 0!==s[e]&&(i=s[e]),!1!==i){!0===i&&(i={}),i.playerOptions=n.options_.playerOptions;var r=n.addChild(e,i);r&&(n[e]=r)}})}},l.prototype.buildCSSClass=function(){return""},l.prototype.ready=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(t)return this.isReady_?void(e?t.call(this):this.setTimeout(t,1)):(this.readyQueue_=this.readyQueue_||[],void this.readyQueue_.push(t))},l.prototype.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var t=this.readyQueue_;this.readyQueue_=[],t&&0<t.length&&t.forEach(function(t){t.call(this)},this),this.trigger("ready")},1)},l.prototype.$=function(t,e){return nt(t,e||this.contentEl())},l.prototype.$$=function(t,e){return st(t,e||this.contentEl())},l.prototype.hasClass=function(t){return B(this.el_,t)},l.prototype.addClass=function(t){j(this.el_,t)},l.prototype.removeClass=function(t){F(this.el_,t)},l.prototype.toggleClass=function(t,e){H(this.el_,t,e)},l.prototype.show=function(){this.removeClass("vjs-hidden")},l.prototype.hide=function(){this.addClass("vjs-hidden")},l.prototype.lockShowing=function(){this.addClass("vjs-lock-showing")},l.prototype.unlockShowing=function(){this.removeClass("vjs-lock-showing")},l.prototype.getAttribute=function(t){return W(this.el_,t)},l.prototype.setAttribute=function(t,e){z(this.el_,t,e)},l.prototype.removeAttribute=function(t){G(this.el_,t)},l.prototype.width=function(t,e){return this.dimension("width",t,e)},l.prototype.height=function(t,e){return this.dimension("height",t,e)},l.prototype.dimensions=function(t,e){this.width(t,!0),this.height(e)},l.prototype.dimension=function(t,e,i){if(void 0!==e)return null!==e&&e==e||(e=0),-1!==(""+e).indexOf("%")||-1!==(""+e).indexOf("px")?this.el_.style[t]=e:this.el_.style[t]="auto"===e?"":e+"px",void(i||this.trigger("componentresize"));if(!this.el_)return 0;var r=this.el_.style[t],n=r.indexOf("px");return-1!==n?parseInt(r.slice(0,n),10):parseInt(this.el_["offset"+zt(t)],10)},l.prototype.currentDimension=function(t){var e=0;if("width"!==t&&"height"!==t)throw new Error("currentDimension only accepts width or height value");if("function"==typeof g.getComputedStyle){var i=g.getComputedStyle(this.el_);e=i.getPropertyValue(t)||i[t]}if(0===(e=parseFloat(e))){var r="offset"+zt(t);e=this.el_[r]}return e},l.prototype.currentDimensions=function(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}},l.prototype.currentWidth=function(){return this.currentDimension("width")},l.prototype.currentHeight=function(){return this.currentDimension("height")},l.prototype.focus=function(){this.el_.focus()},l.prototype.blur=function(){this.el_.blur()},l.prototype.emitTapEvents=function(){var e=0,r=null,n=void 0;this.on("touchstart",function(t){1===t.touches.length&&(r={pageX:t.touches[0].pageX,pageY:t.touches[0].pageY},e=(new Date).getTime(),n=!0)}),this.on("touchmove",function(t){if(1<t.touches.length)n=!1;else if(r){var e=t.touches[0].pageX-r.pageX,i=t.touches[0].pageY-r.pageY;10<Math.sqrt(e*e+i*i)&&(n=!1)}});var t=function(){n=!1};this.on("touchleave",t),this.on("touchcancel",t),this.on("touchend",function(t){!(r=null)===n&&((new Date).getTime()-e<200&&(t.preventDefault(),this.trigger("tap")))})},l.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var e=Ot(this.player(),this.player().reportUserActivity),i=void 0;this.on("touchstart",function(){e(),this.clearInterval(i),i=this.setInterval(e,250)});var t=function(t){e(),this.clearInterval(i)};this.on("touchmove",e),this.on("touchend",t),this.on("touchcancel",t)}},l.prototype.setTimeout=function(t,e){var i=this;t=Ot(this,t);var r=g.setTimeout(t,e),n=function(){return i.clearTimeout(r)};return n.guid="vjs-timeout-"+r,this.on("dispose",n),r},l.prototype.clearTimeout=function(t){g.clearTimeout(t);var e=function(){};return e.guid="vjs-timeout-"+t,this.off("dispose",e),t},l.prototype.setInterval=function(t,e){var i=this;t=Ot(this,t);var r=g.setInterval(t,e),n=function(){return i.clearInterval(r)};return n.guid="vjs-interval-"+r,this.on("dispose",n),r},l.prototype.clearInterval=function(t){g.clearInterval(t);var e=function(){};return e.guid="vjs-interval-"+t,this.off("dispose",e),t},l.prototype.requestAnimationFrame=function(t){var e=this;if(this.supportsRaf_){t=Ot(this,t);var i=g.requestAnimationFrame(t),r=function(){return e.cancelAnimationFrame(i)};return r.guid="vjs-raf-"+i,this.on("dispose",r),i}return this.setTimeout(t,1e3/60)},l.prototype.cancelAnimationFrame=function(t){if(this.supportsRaf_){g.cancelAnimationFrame(t);var e=function(){};return e.guid="vjs-raf-"+t,this.off("dispose",e),t}return this.clearTimeout(t)},l.registerComponent=function(t,e){if("string"!=typeof t||!t)throw new Error('Illegal component name, "'+t+'"; must be a non-empty string.');var i=l.getComponent("Tech"),r=i&&i.isTech(e),n=l===e||l.prototype.isPrototypeOf(e.prototype);if(r||!n){var s=void 0;throw s=r?"techs must be registered using Tech.registerTech()":"must be a Component subclass",new Error('Illegal component, "'+t+'"; '+s+".")}t=zt(t),l.components_||(l.components_={});var a=l.getComponent("Player");if("Player"===t&&a&&a.players){var o=a.players,u=Object.keys(o);if(o&&0<u.length&&u.map(function(t){return o[t]}).every(Boolean))throw new Error("Can not register Player component after player has been created.")}return l.components_[t]=e},l.getComponent=function(t){if(t)return t=zt(t),l.components_&&l.components_[t]?l.components_[t]:void 0},l}();Xt.prototype.supportsRaf_="function"==typeof g.requestAnimationFrame&&"function"==typeof g.cancelAnimationFrame,Xt.registerComponent("Component",Xt);var Yt,$t,Kt,Qt,Jt=g.navigator&&g.navigator.userAgent||"",Zt=/AppleWebKit\/([\d.]+)/i.exec(Jt),te=Zt?parseFloat(Zt.pop()):null,ee=/iPad/i.test(Jt),ie=/iPhone/i.test(Jt)&&!ee,re=/iPod/i.test(Jt),ne=ie||ee||re,se=(Yt=Jt.match(/OS (\d+)_/i))&&Yt[1]?Yt[1]:null,ae=/Android/i.test(Jt),oe=function(){var t=Jt.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!t)return null;var e=t[1]&&parseFloat(t[1]),i=t[2]&&parseFloat(t[2]);return e&&i?parseFloat(t[1]+"."+t[2]):e||null}(),ue=ae&&oe<5&&te<537,le=/Firefox/i.test(Jt),ce=/Edge/i.test(Jt),he=!ce&&/Chrome/i.test(Jt),de=($t=Jt.match(/Chrome\/(\d+)/))&&$t[1]?parseFloat($t[1]):null,pe=(Kt=/MSIE\s(\d+)\.\d/.exec(Jt),!(Qt=Kt&&parseFloat(Kt[1]))&&/Trident\/7.0/i.test(Jt)&&/rv:11.0/.test(Jt)&&(Qt=11),Qt),fe=/Safari/i.test(Jt)&&!he&&!ae&&!ce,me=fe||ne,ge=x()&&("ontouchstart"in g||g.DocumentTouch&&g.document instanceof g.DocumentTouch),ye=Object.freeze({IS_IPAD:ee,IS_IPHONE:ie,IS_IPOD:re,IS_IOS:ne,IOS_VERSION:se,IS_ANDROID:ae,ANDROID_VERSION:oe,IS_NATIVE_ANDROID:ue,IS_FIREFOX:le,IS_EDGE:ce,IS_CHROME:he,CHROME_VERSION:de,IE_VERSION:pe,IS_SAFARI:fe,IS_ANY_SAFARI:me,TOUCH_ENABLED:ge});function ve(t,e,i,r){return function(t,e,i){if("number"!=typeof e||e<0||i<e)throw new Error("Failed to execute '"+t+"' on 'TimeRanges': The index provided ("+e+") is non-numeric or out of bounds (0-"+i+").")}(t,r,i.length-1),i[r][e]}function _e(t){return void 0===t||0===t.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:t.length,start:ve.bind(null,"start",0,t),end:ve.bind(null,"end",1,t)}}function be(t,e){return Array.isArray(t)?_e(t):void 0===t||void 0===e?_e():_e([[t,e]])}function Te(t,e){var i=0,r=void 0,n=void 0;if(!e)return 0;t&&t.length||(t=be(0,0));for(var s=0;s<t.length;s++)r=t.start(s),e<(n=t.end(s))&&(n=e),i+=n-r;return i/e}for(var Se={},ke=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Ce=ke[0],Ee=void 0,we=0;we<ke.length;we++)if(ke[we][1]in p){Ee=ke[we];break}if(Ee)for(var Ae=0;Ae<Ee.length;Ae++)Se[Ce[Ae]]=Ee[Ae];function Le(t){if(t instanceof Le)return t;"number"==typeof t?this.code=t:"string"==typeof t?this.message=t:E(t)&&("number"==typeof t.code&&(this.code=t.code),C(this,t)),this.message||(this.message=Le.defaultMessages[this.code]||"")}Le.prototype.code=0,Le.prototype.message="",Le.prototype.status=null,Le.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],Le.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var Pe=0;Pe<Le.errorTypes.length;Pe++)Le[Le.errorTypes[Pe]]=Pe,Le.prototype[Le.errorTypes[Pe]]=Pe;var Oe=function(t,e){var i,r=null;try{i=JSON.parse(t,e)}catch(t){r=t}return[r,i]};function xe(t){return null!=t&&"function"==typeof t.then}function Ie(t){xe(t)&&t.then(null,function(t){})}var De=function(r){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(t,e,i){return r[e]&&(t[e]=r[e]),t},{cues:r.cues&&Array.prototype.map.call(r.cues,function(t){return{startTime:t.startTime,endTime:t.endTime,text:t.text,id:t.id}})})},Re=function(t){var e=t.$$("track"),i=Array.prototype.map.call(e,function(t){return t.track});return Array.prototype.map.call(e,function(t){var e=De(t.track);return t.src&&(e.src=t.src),e}).concat(Array.prototype.filter.call(t.textTracks(),function(t){return-1===i.indexOf(t)}).map(De))},Me=function(t,i){return t.forEach(function(t){var e=i.addRemoteTextTrack(t).track;!t.src&&t.cues&&t.cues.forEach(function(t){return e.addCue(t)})}),i.textTracks()},Ue="vjs-modal-dialog",Ne=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.opened_=i.hasBeenOpened_=i.hasBeenFilled_=!1,i.closeable(!i.options_.uncloseable),i.content(i.options_.content),i.contentEl_=M("div",{className:Ue+"-content"},{role:"document"}),i.descEl_=M("p",{className:Ue+"-description vjs-control-text",id:i.el().getAttribute("aria-describedby")}),U(i.descEl_,i.description()),i.el_.appendChild(i.descEl_),i.el_.appendChild(i.contentEl_),i}return _(n,r),n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},n.prototype.dispose=function(){this.contentEl_=null,this.descEl_=null,this.previouslyActiveEl_=null,r.prototype.dispose.call(this)},n.prototype.buildCSSClass=function(){return Ue+" vjs-hidden "+r.prototype.buildCSSClass.call(this)},n.prototype.handleKeyPress=function(t){27===t.which&&this.closeable()&&this.close()},n.prototype.label=function(){return this.localize(this.options_.label||"Modal Window")},n.prototype.description=function(){var t=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(t+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),t},n.prototype.open=function(){if(!this.opened_){var t=this.player();this.trigger("beforemodalopen"),this.opened_=!0,(this.options_.fillAlways||!this.hasBeenOpened_&&!this.hasBeenFilled_)&&this.fill(),this.wasPlaying_=!t.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&t.pause(),this.closeable()&&this.on(this.el_.ownerDocument,"keydown",Ot(this,this.handleKeyPress)),this.hadControls_=t.controls(),t.controls(!1),this.show(),this.conditionalFocus_(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}},n.prototype.opened=function(t){return"boolean"==typeof t&&this[t?"open":"close"](),this.opened_},n.prototype.close=function(){if(this.opened_){var t=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&t.play(),this.closeable()&&this.off(this.el_.ownerDocument,"keydown",Ot(this,this.handleKeyPress)),this.hadControls_&&t.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.conditionalBlur_(),this.options_.temporary&&this.dispose()}},n.prototype.closeable=function(t){if("boolean"==typeof t){var e=this.closeable_=!!t,i=this.getChild("closeButton");if(e&&!i){var r=this.contentEl_;this.contentEl_=this.el_,i=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=r,this.on(i,"close",this.close)}!e&&i&&(this.off(i,"close",this.close),this.removeChild(i),i.dispose())}return this.closeable_},n.prototype.fill=function(){this.fillWith(this.content())},n.prototype.fillWith=function(t){var e=this.contentEl(),i=e.parentNode,r=e.nextSibling;this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,i.removeChild(e),this.empty(),it(e,t),this.trigger("modalfill"),r?i.insertBefore(e,r):i.appendChild(e);var n=this.getChild("closeButton");n&&i.appendChild(n.el_)},n.prototype.empty=function(){this.trigger("beforemodalempty"),Z(this.contentEl()),this.trigger("modalempty")},n.prototype.content=function(t){return"undefined"!=typeof t&&(this.content_=t),this.content_},n.prototype.conditionalFocus_=function(){var t=p.activeElement,e=this.player_.el_;this.previouslyActiveEl_=null,(e.contains(t)||e===t)&&(this.previouslyActiveEl_=t,this.focus(),this.on(p,"keydown",this.handleKeyDown))},n.prototype.conditionalBlur_=function(){this.previouslyActiveEl_&&(this.previouslyActiveEl_.focus(),this.previouslyActiveEl_=null),this.off(p,"keydown",this.handleKeyDown)},n.prototype.handleKeyDown=function(t){if(9===t.which){for(var e=this.focusableEls_(),i=this.el_.querySelector(":focus"),r=void 0,n=0;n<e.length;n++)if(i===e[n]){r=n;break}p.activeElement===this.el_&&(r=0),t.shiftKey&&0===r?(e[e.length-1].focus(),t.preventDefault()):t.shiftKey||r!==e.length-1||(e[0].focus(),t.preventDefault())}},n.prototype.focusableEls_=function(){var t=this.el_.querySelectorAll("*");return Array.prototype.filter.call(t,function(t){return(t instanceof g.HTMLAnchorElement||t instanceof g.HTMLAreaElement)&&t.hasAttribute("href")||(t instanceof g.HTMLInputElement||t instanceof g.HTMLSelectElement||t instanceof g.HTMLTextAreaElement||t instanceof g.HTMLButtonElement)&&!t.hasAttribute("disabled")||t instanceof g.HTMLIFrameElement||t instanceof g.HTMLObjectElement||t instanceof g.HTMLEmbedElement||t.hasAttribute("tabindex")&&-1!==t.getAttribute("tabindex")||t.hasAttribute("contenteditable")})},n}(Xt);Ne.prototype.options_={pauseOnOpen:!0,temporary:!0},Xt.registerComponent("ModalDialog",Ne);var Be=function(r){function n(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];y(this,n);var e=b(this,r.call(this));e.tracks_=[],Object.defineProperty(e,"length",{get:function(){return this.tracks_.length}});for(var i=0;i<t.length;i++)e.addTrack(t[i]);return e}return _(n,r),n.prototype.addTrack=function(t){var e=this.tracks_.length;""+e in this||Object.defineProperty(this,e,{get:function(){return this.tracks_[e]}}),-1===this.tracks_.indexOf(t)&&(this.tracks_.push(t),this.trigger({track:t,type:"addtrack"}))},n.prototype.removeTrack=function(t){for(var e=void 0,i=0,r=this.length;i<r;i++)if(this[i]===t){(e=this[i]).off&&e.off(),this.tracks_.splice(i,1);break}e&&this.trigger({track:e,type:"removetrack"})},n.prototype.getTrackById=function(t){for(var e=null,i=0,r=this.length;i<r;i++){var n=this[i];if(n.id===t){e=n;break}}return e},n}(Dt);for(var je in Be.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"},Be.prototype.allowedEvents_)Be.prototype["on"+je]=null;var Fe=function(t,e){for(var i=0;i<t.length;i++)Object.keys(t[i]).length&&e.id!==t[i].id&&(t[i].enabled=!1)},He=function(r){function n(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];y(this,n);for(var e=t.length-1;0<=e;e--)if(t[e].enabled){Fe(t,t[e]);break}var i=b(this,r.call(this,t));return i.changing_=!1,i}return _(n,r),n.prototype.addTrack=function(t){var e=this;t.enabled&&Fe(this,t),r.prototype.addTrack.call(this,t),t.addEventListener&&t.addEventListener("enabledchange",function(){e.changing_||(e.changing_=!0,Fe(e,t),e.changing_=!1,e.trigger("change"))})},n}(Be),Ve=function(t,e){for(var i=0;i<t.length;i++)Object.keys(t[i]).length&&e.id!==t[i].id&&(t[i].selected=!1)},qe=function(r){function n(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];y(this,n);for(var e=t.length-1;0<=e;e--)if(t[e].selected){Ve(t,t[e]);break}var i=b(this,r.call(this,t));return i.changing_=!1,Object.defineProperty(i,"selectedIndex",{get:function(){for(var t=0;t<this.length;t++)if(this[t].selected)return t;return-1},set:function(){}}),i}return _(n,r),n.prototype.addTrack=function(t){var e=this;t.selected&&Ve(this,t),r.prototype.addTrack.call(this,t),t.addEventListener&&t.addEventListener("selectedchange",function(){e.changing_||(e.changing_=!0,Ve(e,t),e.changing_=!1,e.trigger("change"))})},n}(Be),We=function(e){function t(){return y(this,t),b(this,e.apply(this,arguments))}return _(t,e),t.prototype.addTrack=function(t){e.prototype.addTrack.call(this,t),t.addEventListener("modechange",Ot(this,function(){this.trigger("change")}));-1===["metadata","chapters"].indexOf(t.kind)&&t.addEventListener("modechange",Ot(this,function(){this.trigger("selectedlanguagechange")}))},t}(Be),ze=function(){function r(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];y(this,r),this.trackElements_=[],Object.defineProperty(this,"length",{get:function(){return this.trackElements_.length}});for(var e=0,i=t.length;e<i;e++)this.addTrackElement_(t[e])}return r.prototype.addTrackElement_=function(t){var e=this.trackElements_.length;""+e in this||Object.defineProperty(this,e,{get:function(){return this.trackElements_[e]}}),-1===this.trackElements_.indexOf(t)&&this.trackElements_.push(t)},r.prototype.getTrackElementByTrack_=function(t){for(var e=void 0,i=0,r=this.trackElements_.length;i<r;i++)if(t===this.trackElements_[i].track){e=this.trackElements_[i];break}return e},r.prototype.removeTrackElement_=function(t){for(var e=0,i=this.trackElements_.length;e<i;e++)if(t===this.trackElements_[e]){this.trackElements_.splice(e,1);break}},r}(),Ge=function(){function e(t){y(this,e),e.prototype.setCues_.call(this,t),Object.defineProperty(this,"length",{get:function(){return this.length_}})}return e.prototype.setCues_=function(t){var e=this.length||0,i=0,r=t.length;this.cues_=t,this.length_=t.length;var n=function(t){""+t in this||Object.defineProperty(this,""+t,{get:function(){return this.cues_[t]}})};if(e<r)for(i=e;i<r;i++)n.call(this,i)},e.prototype.getCueById=function(t){for(var e=null,i=0,r=this.length;i<r;i++){var n=this[i];if(n.id===t){e=n;break}}return e},e}(),Xe={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},Ye={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},$e={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},Ke={disabled:"disabled",hidden:"hidden",showing:"showing"},Qe=function(s){function a(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};y(this,a);var e=b(this,s.call(this)),i={id:t.id||"vjs_track_"+ut(),kind:t.kind||"",label:t.label||"",language:t.language||""},r=function(t){Object.defineProperty(e,t,{get:function(){return i[t]},set:function(){}})};for(var n in i)r(n);return e}return _(a,s),a}(Dt),Je=function(t){var e=["protocol","hostname","port","pathname","search","hash","host"],i=p.createElement("a");i.href=t;var r=""===i.host&&"file:"!==i.protocol,n=void 0;r&&((n=p.createElement("div")).innerHTML='<a href="'+t+'"></a>',i=n.firstChild,n.setAttribute("style","display:none; position:absolute;"),p.body.appendChild(n));for(var s={},a=0;a<e.length;a++)s[e[a]]=i[e[a]];return"http:"===s.protocol&&(s.host=s.host.replace(/:80$/,"")),"https:"===s.protocol&&(s.host=s.host.replace(/:443$/,"")),s.protocol||(s.protocol=g.location.protocol),r&&p.body.removeChild(n),s},Ze=function(t){if(!t.match(/^https?:\/\//)){var e=p.createElement("div");e.innerHTML='<a href="'+t+'">x</a>',t=e.firstChild.href}return t},ti=function(t){if("string"==typeof t){var e=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i.exec(t);if(e)return e.pop().toLowerCase()}return""},ei=function(t){var e=g.location,i=Je(t);return(":"===i.protocol?e.protocol:i.protocol)+i.host!==e.protocol+e.host},ii=Object.freeze({parseUrl:Je,getAbsoluteURL:Ze,getFileExtension:ti,isCrossOrigin:ei}),ri=function(t){var e=ni.call(t);return"[object Function]"===e||"function"==typeof t&&"[object RegExp]"!==e||"undefined"!=typeof window&&(t===window.setTimeout||t===window.alert||t===window.confirm||t===window.prompt)},ni=Object.prototype.toString;var si=Object.freeze({default:ri,__moduleExports:ri}),ai=e(function(t,e){(e=t.exports=function(t){return t.replace(/^\s*|\s*$/g,"")}).left=function(t){return t.replace(/^\s*/,"")},e.right=function(t){return t.replace(/\s*$/,"")}}),oi=ai.left,ui=ai.right,li=Object.freeze({default:ai,__moduleExports:ai,left:oi,right:ui}),ci=si&&ri||si,hi=function(t,e,i){if(!ci(e))throw new TypeError("iterator must be a function");arguments.length<3&&(i=this);"[object Array]"===di.call(t)?function(t,e,i){for(var r=0,n=t.length;r<n;r++)pi.call(t,r)&&e.call(i,t[r],r,t)}(t,e,i):"string"==typeof t?function(t,e,i){for(var r=0,n=t.length;r<n;r++)e.call(i,t.charAt(r),r,t)}(t,e,i):function(t,e,i){for(var r in t)pi.call(t,r)&&e.call(i,t[r],r,t)}(t,e,i)},di=Object.prototype.toString,pi=Object.prototype.hasOwnProperty;var fi=Object.freeze({default:hi,__moduleExports:hi}),mi=li&&ai||li,gi=fi&&hi||fi,yi=function(t){if(!t)return{};var s={};return gi(mi(t).split("\n"),function(t){var e,i=t.indexOf(":"),r=mi(t.slice(0,i)).toLowerCase(),n=mi(t.slice(i+1));"undefined"==typeof s[r]?s[r]=n:(e=s[r],"[object Array]"===Object.prototype.toString.call(e)?s[r].push(n):s[r]=[s[r],n])}),s},vi=Object.freeze({default:yi,__moduleExports:yi}),_i=function(){for(var t={},e=0;e<arguments.length;e++){var i=arguments[e];for(var r in i)bi.call(i,r)&&(t[r]=i[r])}return t},bi=Object.prototype.hasOwnProperty;var Ti=Object.freeze({default:_i,__moduleExports:_i}),Si=vi&&yi||vi,ki=Ti&&_i||Ti,Ci=wi;function Ei(t,e,i){var r=t;return ci(e)?(i=e,"string"==typeof t&&(r={uri:t})):r=ki(e,{uri:t}),r.callback=i,r}function wi(t,e,i){return Ai(e=Ei(t,e,i))}function Ai(r){if("undefined"==typeof r.callback)throw new Error("callback argument missing");var n=!1,s=function(t,e,i){n||(n=!0,r.callback(t,e,i))};function e(t){return clearTimeout(u),t instanceof Error||(t=new Error(""+(t||"Unknown XMLHttpRequest Error"))),t.statusCode=0,s(t,m)}function t(){if(!a){var t;clearTimeout(u),t=r.useXDR&&void 0===o.status?200:1223===o.status?204:o.status;var e=m,i=null;return 0!==t?(e={body:function(){var t=void 0;if(t=o.response?o.response:o.responseText||function(t){if("document"===t.responseType)return t.responseXML;var e=t.responseXML&&"parsererror"===t.responseXML.documentElement.nodeName;return""!==t.responseType||e?null:t.responseXML}(o),f)try{t=JSON.parse(t)}catch(t){}return t}(),statusCode:t,method:c,headers:{},url:l,rawRequest:o},o.getAllResponseHeaders&&(e.headers=Si(o.getAllResponseHeaders()))):i=new Error("Internal XMLHttpRequest Error"),s(i,e,e.body)}}var i,a,o=r.xhr||null;o||(o=r.cors||r.useXDR?new wi.XDomainRequest:new wi.XMLHttpRequest);var u,l=o.url=r.uri||r.url,c=o.method=r.method||"GET",h=r.body||r.data,d=o.headers=r.headers||{},p=!!r.sync,f=!1,m={body:void 0,headers:{},statusCode:0,method:c,url:l,rawRequest:o};if("json"in r&&!1!==r.json&&(f=!0,d.accept||d.Accept||(d.Accept="application/json"),"GET"!==c&&"HEAD"!==c&&(d["content-type"]||d["Content-Type"]||(d["Content-Type"]="application/json"),h=JSON.stringify(!0===r.json?h:r.json))),o.onreadystatechange=function(){4===o.readyState&&setTimeout(t,0)},o.onload=t,o.onerror=e,o.onprogress=function(){},o.onabort=function(){a=!0},o.ontimeout=e,o.open(c,l,!p,r.username,r.password),p||(o.withCredentials=!!r.withCredentials),!p&&0<r.timeout&&(u=setTimeout(function(){if(!a){a=!0,o.abort("timeout");var t=new Error("XMLHttpRequest timeout");t.code="ETIMEDOUT",e(t)}},r.timeout)),o.setRequestHeader)for(i in d)d.hasOwnProperty(i)&&o.setRequestHeader(i,d[i]);else if(r.headers&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(r.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in r&&(o.responseType=r.responseType),"beforeSend"in r&&"function"==typeof r.beforeSend&&r.beforeSend(o),o.send(h||null),o}wi.XMLHttpRequest=g.XMLHttpRequest||function(){},wi.XDomainRequest="withCredentials"in new wi.XMLHttpRequest?wi.XMLHttpRequest:g.XDomainRequest,function(t,e){for(var i=0;i<t.length;i++)e(t[i])}(["get","put","post","patch","head","delete"],function(r){wi["delete"===r?"del":r]=function(t,e,i){return(e=Ei(t,e,i)).method=r.toUpperCase(),Ai(e)}});var Li=function(t,e){var i=new g.WebVTT.Parser(g,g.vttjs,g.WebVTT.StringDecoder()),r=[];i.oncue=function(t){e.addCue(t)},i.onparsingerror=function(t){r.push(t)},i.onflush=function(){e.trigger({type:"loadeddata",target:e})},i.parse(t),0<r.length&&(g.console&&g.console.groupCollapsed&&g.console.groupCollapsed("Text Track parsing errors for "+e.src),r.forEach(function(t){return f.error(t)}),g.console&&g.console.groupEnd&&g.console.groupEnd()),i.flush()},Pi=function(t,n){var e={uri:t},i=ei(t);i&&(e.cors=i),Ci(e,Ot(this,function(t,e,i){if(t)return f.error(t,e);if(n.loaded_=!0,"function"!=typeof g.WebVTT){if(n.tech_){var r=function(){return Li(i,n)};n.tech_.on("vttjsloaded",r),n.tech_.on("vttjserror",function(){f.error("vttjs failed to load, stopping trying to process "+n.src),n.tech_.off("vttjsloaded",r)})}}else Li(i,n)}))},Oi=function(l){function c(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(y(this,c),!t.tech)throw new Error("A tech was not provided.");var e=Gt(t,{kind:$e[t.kind]||"subtitles",language:t.language||t.srclang||""}),i=Ke[e.mode]||"disabled",r=e.default;"metadata"!==e.kind&&"chapters"!==e.kind||(i="hidden");var n=b(this,l.call(this,e));n.tech_=e.tech,n.cues_=[],n.activeCues_=[];var s=new Ge(n.cues_),a=new Ge(n.activeCues_),o=!1,u=Ot(n,function(){this.activeCues,o&&(this.trigger("cuechange"),o=!1)});return"disabled"!==i&&n.tech_.ready(function(){n.tech_.on("timeupdate",u)},!0),Object.defineProperties(n,{default:{get:function(){return r},set:function(){}},mode:{get:function(){return i},set:function(t){var e=this;Ke[t]&&("showing"===(i=t)&&this.tech_.ready(function(){e.tech_.on("timeupdate",u)},!0),this.trigger("modechange"))}},cues:{get:function(){return this.loaded_?s:null},set:function(){}},activeCues:{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return a;for(var t=this.tech_.currentTime(),e=[],i=0,r=this.cues.length;i<r;i++){var n=this.cues[i];n.startTime<=t&&n.endTime>=t?e.push(n):n.startTime===n.endTime&&n.startTime<=t&&n.startTime+.5>=t&&e.push(n)}if(o=!1,e.length!==this.activeCues_.length)o=!0;else for(var s=0;s<e.length;s++)-1===this.activeCues_.indexOf(e[s])&&(o=!0);return this.activeCues_=e,a.setCues_(this.activeCues_),a},set:function(){}}}),e.src?(n.src=e.src,Pi(e.src,n)):n.loaded_=!0,n}return _(c,l),c.prototype.addCue=function(t){var e=t;if(g.vttjs&&!(t instanceof g.vttjs.VTTCue)){for(var i in e=new g.vttjs.VTTCue(t.startTime,t.endTime,t.text),t)i in e||(e[i]=t[i]);e.id=t.id,e.originalCue_=t}for(var r=this.tech_.textTracks(),n=0;n<r.length;n++)r[n]!==this&&r[n].removeCue(e);this.cues_.push(e),this.cues.setCues_(this.cues_)},c.prototype.removeCue=function(t){for(var e=this.cues_.length;e--;){var i=this.cues_[e];if(i===t||i.originalCue_&&i.originalCue_===t){this.cues_.splice(e,1),this.cues.setCues_(this.cues_);break}}},c}(Qe);Oi.prototype.allowedEvents_={cuechange:"cuechange"};var xi=function(n){function s(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};y(this,s);var e=Gt(t,{kind:Ye[t.kind]||""}),i=b(this,n.call(this,e)),r=!1;return Object.defineProperty(i,"enabled",{get:function(){return r},set:function(t){"boolean"==typeof t&&t!==r&&(r=t,this.trigger("enabledchange"))}}),e.enabled&&(i.enabled=e.enabled),i.loaded_=!0,i}return _(s,n),s}(Qe),Ii=function(n){function s(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};y(this,s);var e=Gt(t,{kind:Xe[t.kind]||""}),i=b(this,n.call(this,e)),r=!1;return Object.defineProperty(i,"selected",{get:function(){return r},set:function(t){"boolean"==typeof t&&t!==r&&(r=t,this.trigger("selectedchange"))}}),e.selected&&(i.selected=e.selected),i}return _(s,n),s}(Qe),Di=0,Ri=2,Mi=function(n){function s(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};y(this,s);var e=b(this,n.call(this)),i=void 0,r=new Oi(t);return e.kind=r.kind,e.src=r.src,e.srclang=r.language,e.label=r.label,e.default=r.default,Object.defineProperties(e,{readyState:{get:function(){return i}},track:{get:function(){return r}}}),i=Di,r.addEventListener("loadeddata",function(){i=Ri,e.trigger({type:"load",target:e})}),e}return _(s,n),s}(Dt);Mi.prototype.allowedEvents_={load:"load"},Mi.NONE=Di,Mi.LOADING=1,Mi.LOADED=Ri,Mi.ERROR=3;var Ui={audio:{ListClass:He,TrackClass:xi,capitalName:"Audio"},video:{ListClass:qe,TrackClass:Ii,capitalName:"Video"},text:{ListClass:We,TrackClass:Oi,capitalName:"Text"}};Object.keys(Ui).forEach(function(t){Ui[t].getterName=t+"Tracks",Ui[t].privateName=t+"Tracks_"});var Ni={remoteText:{ListClass:We,TrackClass:Oi,capitalName:"RemoteText",getterName:"remoteTextTracks",privateName:"remoteTextTracks_"},remoteTextEl:{ListClass:ze,TrackClass:Mi,capitalName:"RemoteTextTrackEls",getterName:"remoteTextTrackEls",privateName:"remoteTextTrackEls_"}},Bi=Gt(Ui,Ni);Ni.names=Object.keys(Ni),Ui.names=Object.keys(Ui),Bi.names=[].concat(Ni.names).concat(Ui.names);var ji=Object.create||function(){function e(){}return function(t){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return e.prototype=t,new e}}();function Fi(t,e){this.name="ParsingError",this.code=t.code,this.message=e||t.message}function Hi(t){function e(t,e,i,r){return 3600*(0|t)+60*(0|e)+(0|i)+(0|r)/1e3}var i=t.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return i?i[3]?e(i[1],i[2],i[3].replace(":",""),i[4]):59<i[1]?e(i[1],i[2],0,i[4]):e(0,i[1],i[2],i[4]):null}function Vi(){this.values=ji(null)}function qi(t,e,i,r){var n=r?t.split(r):[t];for(var s in n)if("string"==typeof n[s]){var a=n[s].split(i);if(2===a.length)e(a[0],a[1])}}function Wi(e,t,s){var i,r,a,n=e;function o(){var t=Hi(e);if(null===t)throw new Fi(Fi.Errors.BadTimeStamp,"Malformed timestamp: "+n);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function u(){e=e.replace(/^\s+/,"")}if(u(),t.startTime=o(),u(),"--\x3e"!==e.substr(0,3))throw new Fi(Fi.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+n);e=e.substr(3),u(),t.endTime=o(),u(),i=e,r=t,a=new Vi,qi(i,function(t,e){switch(t){case"region":for(var i=s.length-1;0<=i;i--)if(s[i].id===e){a.set(t,s[i].region);break}break;case"vertical":a.alt(t,e,["rl","lr"]);break;case"line":var r=e.split(","),n=r[0];a.integer(t,n),a.percent(t,n)&&a.set("snapToLines",!1),a.alt(t,n,["auto"]),2===r.length&&a.alt("lineAlign",r[1],["start","middle","end"]);break;case"position":r=e.split(","),a.percent(t,r[0]),2===r.length&&a.alt("positionAlign",r[1],["start","middle","end"]);break;case"size":a.percent(t,e);break;case"align":a.alt(t,e,["start","middle","end","left","right"])}},/:/,/\s/),r.region=a.get("region",null),r.vertical=a.get("vertical",""),r.line=a.get("line","auto"),r.lineAlign=a.get("lineAlign","start"),r.snapToLines=a.get("snapToLines",!0),r.size=a.get("size",100),r.align=a.get("align","middle"),r.position=a.get("position",{start:0,left:0,middle:50,end:100,right:100},r.align),r.positionAlign=a.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},r.align)}((Fi.prototype=ji(Error.prototype)).constructor=Fi).Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},Vi.prototype={set:function(t,e){this.get(t)||""===e||(this.values[t]=e)},get:function(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e},has:function(t){return t in this.values},alt:function(t,e,i){for(var r=0;r<i.length;++r)if(e===i[r]){this.set(t,e);break}},integer:function(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))},percent:function(t,e){return!!(e.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&0<=(e=parseFloat(e))&&e<=100)&&(this.set(t,e),!0)}};var zi={"&amp;":"&","&lt;":"<","&gt;":">","&lrm;":"‎","&rlm;":"‏","&nbsp;":" "},Gi={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},Xi={v:"title",lang:"lang"},Yi={rt:"ruby"};function $i(s,i){function t(){if(!i)return null;var t,e=i.match(/^([^<]*)(<[^>]*>?)?/);return t=e[1]?e[1]:e[2],i=i.substr(t.length),t}function e(t){return zi[t]}function r(t){for(;f=t.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)t=t.replace(f[0],e);return t}function n(t,e){var i=Gi[t];if(!i)return null;var r=s.document.createElement(i);r.localName=i;var n=Xi[t];return n&&e&&(r[n]=e.trim()),r}for(var a,o,u,l=s.document.createElement("div"),c=l,h=[];null!==(a=t());)if("<"!==a[0])c.appendChild(s.document.createTextNode(r(a)));else{if("/"===a[1]){h.length&&h[h.length-1]===a.substr(2).replace(">","")&&(h.pop(),c=c.parentNode);continue}var d,p=Hi(a.substr(1,a.length-2));if(p){d=s.document.createProcessingInstruction("timestamp",p),c.appendChild(d);continue}var f=a.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!f)continue;if(!(d=n(f[1],f[3])))continue;if(o=c,Yi[(u=d).localName]&&Yi[u.localName]!==o.localName)continue;f[2]&&(d.className=f[2].substr(1).replace("."," ")),h.push(f[1]),c.appendChild(d),c=d}return l}var Ki=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];function Qi(t){for(var e=0;e<Ki.length;e++){var i=Ki[e];if(t>=i[0]&&t<=i[1])return!0}return!1}function Ji(){}function Zi(t,e,i){Ji.call(this),this.cue=e,this.cueDiv=$i(t,e.text);var r={color:"rgba(255, 255, 255, 1)",backgroundColor:"rgba(0, 0, 0, 0.8)",position:"relative",left:0,right:0,top:0,bottom:0,display:"inline",writingMode:""===e.vertical?"horizontal-tb":"lr"===e.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext"};this.applyStyles(r,this.cueDiv),this.div=t.document.createElement("div"),r={direction:function(t){var e=[],i="";if(!t||!t.childNodes)return"ltr";function n(t,e){for(var i=e.childNodes.length-1;0<=i;i--)t.push(e.childNodes[i])}function s(t){if(!t||!t.length)return null;var e=t.pop(),i=e.textContent||e.innerText;if(i){var r=i.match(/^.*(\n|\r)/);return r?r[t.length=0]:i}return"ruby"===e.tagName?s(t):e.childNodes?(n(t,e),s(t)):void 0}for(n(e,t);i=s(e);)for(var r=0;r<i.length;r++)if(Qi(i.charCodeAt(r)))return"rtl";return"ltr"}(this.cueDiv),writingMode:""===e.vertical?"horizontal-tb":"lr"===e.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext",textAlign:"middle"===e.align?"center":e.align,font:i.font,whiteSpace:"pre-line",position:"absolute"},this.applyStyles(r),this.div.appendChild(this.cueDiv);var n=0;switch(e.positionAlign){case"start":n=e.position;break;case"middle":n=e.position-e.size/2;break;case"end":n=e.position-e.size}""===e.vertical?this.applyStyles({left:this.formatStyle(n,"%"),width:this.formatStyle(e.size,"%")}):this.applyStyles({top:this.formatStyle(n,"%"),height:this.formatStyle(e.size,"%")}),this.move=function(t){this.applyStyles({top:this.formatStyle(t.top,"px"),bottom:this.formatStyle(t.bottom,"px"),left:this.formatStyle(t.left,"px"),right:this.formatStyle(t.right,"px"),height:this.formatStyle(t.height,"px"),width:this.formatStyle(t.width,"px")})}}function tr(t){var e,i,r,n;if(t.div){i=t.div.offsetHeight,r=t.div.offsetWidth,n=t.div.offsetTop;var s=(s=t.div.childNodes)&&(s=s[0])&&s.getClientRects&&s.getClientRects();t=t.div.getBoundingClientRect(),e=s?Math.max(s[0]&&s[0].height||0,t.height/s.length):0}this.left=t.left,this.right=t.right,this.top=t.top||n,this.height=t.height||i,this.bottom=t.bottom||n+(t.height||i),this.width=t.width||r,this.lineHeight=void 0!==e?e:t.lineHeight}function er(t,e,o,u){var i=new tr(e),r=e.cue,n=function(t){if("number"==typeof t.line&&(t.snapToLines||0<=t.line&&t.line<=100))return t.line;if(!t.track||!t.track.textTrackList||!t.track.textTrackList.mediaElement)return-1;for(var e=t.track,i=e.textTrackList,r=0,n=0;n<i.length&&i[n]!==e;n++)"showing"===i[n].mode&&r++;return-1*++r}(r),s=[];if(r.snapToLines){var a;switch(r.vertical){case"":s=["+y","-y"],a="height";break;case"rl":s=["+x","-x"],a="width";break;case"lr":s=["-x","+x"],a="width"}var l=i.lineHeight,c=l*Math.round(n),h=o[a]+l,d=s[0];Math.abs(c)>h&&(c=c<0?-1:1,c*=Math.ceil(h/l)*l),n<0&&(c+=""===r.vertical?o.height:o.width,s=s.reverse()),i.move(d,c)}else{var p=i.lineHeight/o.height*100;switch(r.lineAlign){case"middle":n-=p/2;break;case"end":n-=p}switch(r.vertical){case"":e.applyStyles({top:e.formatStyle(n,"%")});break;case"rl":e.applyStyles({left:e.formatStyle(n,"%")});break;case"lr":e.applyStyles({right:e.formatStyle(n,"%")})}s=["+y","-x","+x","-y"],i=new tr(e)}var f=function(t,e){for(var i,r=new tr(t),n=1,s=0;s<e.length;s++){for(;t.overlapsOppositeAxis(o,e[s])||t.within(o)&&t.overlapsAny(u);)t.move(e[s]);if(t.within(o))return t;var a=t.intersectPercentage(o);a<n&&(i=new tr(t),n=a),t=new tr(r)}return i||r}(i,s);e.move(f.toCSSCompatValues(o))}function ir(){}Ji.prototype.applyStyles=function(t,e){for(var i in e=e||this.div,t)t.hasOwnProperty(i)&&(e.style[i]=t[i])},Ji.prototype.formatStyle=function(t,e){return 0===t?0:t+e},(Zi.prototype=ji(Ji.prototype)).constructor=Zi,tr.prototype.move=function(t,e){switch(e=void 0!==e?e:this.lineHeight,t){case"+x":this.left+=e,this.right+=e;break;case"-x":this.left-=e,this.right-=e;break;case"+y":this.top+=e,this.bottom+=e;break;case"-y":this.top-=e,this.bottom-=e}},tr.prototype.overlaps=function(t){return this.left<t.right&&this.right>t.left&&this.top<t.bottom&&this.bottom>t.top},tr.prototype.overlapsAny=function(t){for(var e=0;e<t.length;e++)if(this.overlaps(t[e]))return!0;return!1},tr.prototype.within=function(t){return this.top>=t.top&&this.bottom<=t.bottom&&this.left>=t.left&&this.right<=t.right},tr.prototype.overlapsOppositeAxis=function(t,e){switch(e){case"+x":return this.left<t.left;case"-x":return this.right>t.right;case"+y":return this.top<t.top;case"-y":return this.bottom>t.bottom}},tr.prototype.intersectPercentage=function(t){return Math.max(0,Math.min(this.right,t.right)-Math.max(this.left,t.left))*Math.max(0,Math.min(this.bottom,t.bottom)-Math.max(this.top,t.top))/(this.height*this.width)},tr.prototype.toCSSCompatValues=function(t){return{top:this.top-t.top,bottom:t.bottom-this.bottom,left:this.left-t.left,right:t.right-this.right,height:this.height,width:this.width}},tr.getSimpleBoxPosition=function(t){var e=t.div?t.div.offsetHeight:t.tagName?t.offsetHeight:0,i=t.div?t.div.offsetWidth:t.tagName?t.offsetWidth:0,r=t.div?t.div.offsetTop:t.tagName?t.offsetTop:0;return{left:(t=t.div?t.div.getBoundingClientRect():t.tagName?t.getBoundingClientRect():t).left,right:t.right,top:t.top||r,height:t.height||e,bottom:t.bottom||r+(t.height||e),width:t.width||i}},ir.StringDecoder=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}},ir.convertCueToDOMTree=function(t,e){return t&&e?$i(t,e):null};ir.processCues=function(r,n,t){if(!r||!n||!t)return null;for(;t.firstChild;)t.removeChild(t.firstChild);var s=r.document.createElement("div");if(s.style.position="absolute",s.style.left="0",s.style.right="0",s.style.top="0",s.style.bottom="0",s.style.margin="1.5%",t.appendChild(s),function(t){for(var e=0;e<t.length;e++)if(t[e].hasBeenReset||!t[e].displayState)return!0;return!1}(n)){var a=[],o=tr.getSimpleBoxPosition(s),u={font:Math.round(.05*o.height*100)/100+"px sans-serif"};!function(){for(var t,e,i=0;i<n.length;i++)e=n[i],t=new Zi(r,e,u),s.appendChild(t.div),er(0,t,o,a),e.displayState=t.div,a.push(tr.getSimpleBoxPosition(t))}()}else for(var e=0;e<n.length;e++)s.appendChild(n[e].displayState)},(ir.Parser=function(t,e,i){i||(i=e,e={}),e||(e={}),this.window=t,this.vttjs=e,this.state="INITIAL",this.buffer="",this.decoder=i||new TextDecoder("utf8"),this.regionList=[]}).prototype={reportOrThrowError:function(t){if(!(t instanceof Fi))throw t;this.onparsingerror&&this.onparsingerror(t)},parse:function(t){var s=this;function e(){for(var t=s.buffer,e=0;e<t.length&&"\r"!==t[e]&&"\n"!==t[e];)++e;var i=t.substr(0,e);return"\r"===t[e]&&++e,"\n"===t[e]&&++e,s.buffer=t.substr(e),i}function i(t){t.match(/X-TIMESTAMP-MAP/)?qi(t,function(t,e){switch(t){case"X-TIMESTAMP-MAP":i=e,r=new Vi,qi(i,function(t,e){switch(t){case"MPEGT":r.integer(t+"S",e);break;case"LOCA":r.set(t+"L",Hi(e))}},/[^\d]:/,/,/),s.ontimestampmap&&s.ontimestampmap({MPEGTS:r.get("MPEGTS"),LOCAL:r.get("LOCAL")})}var i,r},/=/):qi(t,function(t,e){switch(t){case"Region":!function(t){var n=new Vi;if(qi(t,function(t,e){switch(t){case"id":n.set(t,e);break;case"width":n.percent(t,e);break;case"lines":n.integer(t,e);break;case"regionanchor":case"viewportanchor":var i=e.split(",");if(2!==i.length)break;var r=new Vi;if(r.percent("x",i[0]),r.percent("y",i[1]),!r.has("x")||!r.has("y"))break;n.set(t+"X",r.get("x")),n.set(t+"Y",r.get("y"));break;case"scroll":n.alt(t,e,["up"])}},/=/,/\s/),n.has("id")){var e=new(s.vttjs.VTTRegion||s.window.VTTRegion);e.width=n.get("width",100),e.lines=n.get("lines",3),e.regionAnchorX=n.get("regionanchorX",0),e.regionAnchorY=n.get("regionanchorY",100),e.viewportAnchorX=n.get("viewportanchorX",0),e.viewportAnchorY=n.get("viewportanchorY",100),e.scroll=n.get("scroll",""),s.onregion&&s.onregion(e),s.regionList.push({id:n.get("id"),region:e})}}(e)}},/:/)}t&&(s.buffer+=s.decoder.decode(t,{stream:!0}));try{var r;if("INITIAL"===s.state){if(!/\r\n|\n/.test(s.buffer))return this;var n=(r=e()).match(/^WEBVTT([ \t].*)?$/);if(!n||!n[0])throw new Fi(Fi.Errors.BadSignature);s.state="HEADER"}for(var a=!1;s.buffer;){if(!/\r\n|\n/.test(s.buffer))return this;switch(a?a=!1:r=e(),s.state){case"HEADER":/:/.test(r)?i(r):r||(s.state="ID");continue;case"NOTE":r||(s.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(r)){s.state="NOTE";break}if(!r)continue;if(s.cue=new(s.vttjs.VTTCue||s.window.VTTCue)(0,0,""),s.state="CUE",-1===r.indexOf("--\x3e")){s.cue.id=r;continue}case"CUE":try{Wi(r,s.cue,s.regionList)}catch(t){s.reportOrThrowError(t),s.cue=null,s.state="BADCUE";continue}s.state="CUETEXT";continue;case"CUETEXT":var o=-1!==r.indexOf("--\x3e");if(!r||o&&(a=!0)){s.oncue&&s.oncue(s.cue),s.cue=null,s.state="ID";continue}s.cue.text&&(s.cue.text+="\n"),s.cue.text+=r;continue;case"BADCUE":r||(s.state="ID");continue}}}catch(t){s.reportOrThrowError(t),"CUETEXT"===s.state&&s.cue&&s.oncue&&s.oncue(s.cue),s.cue=null,s.state="INITIAL"===s.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var e=this;try{if(e.buffer+=e.decoder.decode(),(e.cue||"HEADER"===e.state)&&(e.buffer+="\n\n",e.parse()),"INITIAL"===e.state)throw new Fi(Fi.Errors.BadSignature)}catch(t){e.reportOrThrowError(t)}return e.onflush&&e.onflush(),this}};var rr=ir,nr=Object.freeze({default:rr,__moduleExports:rr}),sr="auto",ar={"":1,lr:1,rl:1},or={start:1,middle:1,end:1,left:1,right:1};function ur(t){return"string"==typeof t&&(!!or[t.toLowerCase()]&&t.toLowerCase())}function lr(t,e,i){this.hasBeenReset=!1;var r="",n=!1,s=t,a=e,o=i,u=null,l="",c=!0,h="auto",d="start",p=50,f="middle",m=50,g="middle";Object.defineProperties(this,{id:{enumerable:!0,get:function(){return r},set:function(t){r=""+t}},pauseOnExit:{enumerable:!0,get:function(){return n},set:function(t){n=!!t}},startTime:{enumerable:!0,get:function(){return s},set:function(t){if("number"!=typeof t)throw new TypeError("Start time must be set to a number.");s=t,this.hasBeenReset=!0}},endTime:{enumerable:!0,get:function(){return a},set:function(t){if("number"!=typeof t)throw new TypeError("End time must be set to a number.");a=t,this.hasBeenReset=!0}},text:{enumerable:!0,get:function(){return o},set:function(t){o=""+t,this.hasBeenReset=!0}},region:{enumerable:!0,get:function(){return u},set:function(t){u=t,this.hasBeenReset=!0}},vertical:{enumerable:!0,get:function(){return l},set:function(t){var e,i="string"==typeof(e=t)&&!!ar[e.toLowerCase()]&&e.toLowerCase();if(!1===i)throw new SyntaxError("An invalid or illegal string was specified.");l=i,this.hasBeenReset=!0}},snapToLines:{enumerable:!0,get:function(){return c},set:function(t){c=!!t,this.hasBeenReset=!0}},line:{enumerable:!0,get:function(){return h},set:function(t){if("number"!=typeof t&&t!==sr)throw new SyntaxError("An invalid number or illegal string was specified.");h=t,this.hasBeenReset=!0}},lineAlign:{enumerable:!0,get:function(){return d},set:function(t){var e=ur(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");d=e,this.hasBeenReset=!0}},position:{enumerable:!0,get:function(){return p},set:function(t){if(t<0||100<t)throw new Error("Position must be between 0 and 100.");p=t,this.hasBeenReset=!0}},positionAlign:{enumerable:!0,get:function(){return f},set:function(t){var e=ur(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");f=e,this.hasBeenReset=!0}},size:{enumerable:!0,get:function(){return m},set:function(t){if(t<0||100<t)throw new Error("Size must be between 0 and 100.");m=t,this.hasBeenReset=!0}},align:{enumerable:!0,get:function(){return g},set:function(t){var e=ur(t);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");g=e,this.hasBeenReset=!0}}}),this.displayState=void 0}lr.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)};var cr=lr,hr=Object.freeze({default:cr,__moduleExports:cr}),dr={"":!0,up:!0};function pr(t){return"number"==typeof t&&0<=t&&t<=100}var fr=function(){var e=100,i=3,r=0,n=100,s=0,a=100,o="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return e},set:function(t){if(!pr(t))throw new Error("Width must be between 0 and 100.");e=t}},lines:{enumerable:!0,get:function(){return i},set:function(t){if("number"!=typeof t)throw new TypeError("Lines must be set to a number.");i=t}},regionAnchorY:{enumerable:!0,get:function(){return n},set:function(t){if(!pr(t))throw new Error("RegionAnchorX must be between 0 and 100.");n=t}},regionAnchorX:{enumerable:!0,get:function(){return r},set:function(t){if(!pr(t))throw new Error("RegionAnchorY must be between 0 and 100.");r=t}},viewportAnchorY:{enumerable:!0,get:function(){return a},set:function(t){if(!pr(t))throw new Error("ViewportAnchorY must be between 0 and 100.");a=t}},viewportAnchorX:{enumerable:!0,get:function(){return s},set:function(t){if(!pr(t))throw new Error("ViewportAnchorX must be between 0 and 100.");s=t}},scroll:{enumerable:!0,get:function(){return o},set:function(t){var e,i="string"==typeof(e=t)&&!!dr[e.toLowerCase()]&&e.toLowerCase();if(!1===i)throw new SyntaxError("An invalid or illegal string was specified.");o=i}}})},mr=Object.freeze({default:fr,__moduleExports:fr}),gr=nr&&rr||nr,yr=hr&&cr||hr,vr=mr&&fr||mr,_r=e(function(t){var e=t.exports={WebVTT:gr,VTTCue:yr,VTTRegion:vr};g.vttjs=e,g.WebVTT=e.WebVTT;var i=e.VTTCue,r=e.VTTRegion,n=g.VTTCue,s=g.VTTRegion;e.shim=function(){g.VTTCue=i,g.VTTRegion=r},e.restore=function(){g.VTTCue=n,g.VTTRegion=s},g.VTTCue||e.shim()});_r.WebVTT,_r.VTTCue,_r.VTTRegion;var br=function(e){function n(){var i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:function(){};y(this,n),i.reportTouchActivity=!1;var r=b(this,e.call(this,null,i,t));return r.hasStarted_=!1,r.on("playing",function(){this.hasStarted_=!0}),r.on("loadstart",function(){this.hasStarted_=!1}),Bi.names.forEach(function(t){var e=Bi[t];i&&i[e.getterName]&&(r[e.privateName]=i[e.getterName])}),r.featuresProgressEvents||r.manualProgressOn(),r.featuresTimeupdateEvents||r.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(function(t){!1===i["native"+t+"Tracks"]&&(r["featuresNative"+t+"Tracks"]=!1)}),!1===i.nativeCaptions||!1===i.nativeTextTracks?r.featuresNativeTextTracks=!1:!0!==i.nativeCaptions&&!0!==i.nativeTextTracks||(r.featuresNativeTextTracks=!0),r.featuresNativeTextTracks||r.emulateTextTracks(),r.autoRemoteTextTracks_=new Bi.text.ListClass,r.initTrackListeners(),i.nativeControlsForTouch||r.emitTapEvents(),r.constructor&&(r.name_=r.constructor.name||"Unknown Tech"),r}return _(n,e),n.prototype.triggerSourceset=function(t){var e=this;this.isReady_||this.one("ready",function(){return e.setTimeout(function(){return e.triggerSourceset(t)},1)}),this.trigger({src:t,type:"sourceset"})},n.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},n.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},n.prototype.trackProgress=function(t){this.stopTrackingProgress(),this.progressInterval=this.setInterval(Ot(this,function(){var t=this.bufferedPercent();this.bufferedPercent_!==t&&this.trigger("progress"),1===(this.bufferedPercent_=t)&&this.stopTrackingProgress()}),500)},n.prototype.onDurationChange=function(t){this.duration_=this.duration()},n.prototype.buffered=function(){return be(0,0)},n.prototype.bufferedPercent=function(){return Te(this.buffered(),this.duration_)},n.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},n.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},n.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},n.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},n.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},n.prototype.dispose=function(){this.clearTracks(Ui.names),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),e.prototype.dispose.call(this)},n.prototype.clearTracks=function(t){var n=this;(t=[].concat(t)).forEach(function(t){for(var e=n[t+"Tracks"]()||[],i=e.length;i--;){var r=e[i];"text"===t&&n.removeRemoteTextTrack(r),e.removeTrack(r)}})},n.prototype.cleanupAutoTextTracks=function(){for(var t=this.autoRemoteTextTracks_||[],e=t.length;e--;){var i=t[e];this.removeRemoteTextTrack(i)}},n.prototype.reset=function(){},n.prototype.error=function(t){return void 0!==t&&(this.error_=new Le(t),this.trigger("error")),this.error_},n.prototype.played=function(){return this.hasStarted_?be(0,0):be()},n.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},n.prototype.initTrackListeners=function(){var n=this;Ui.names.forEach(function(t){var e=Ui[t],i=function(){n.trigger(t+"trackchange")},r=n[e.getterName]();r.addEventListener("removetrack",i),r.addEventListener("addtrack",i),n.on("dispose",function(){r.removeEventListener("removetrack",i),r.removeEventListener("addtrack",i)})})},n.prototype.addWebVttScript_=function(){var t=this;if(!g.WebVTT)if(p.body.contains(this.el())){if(!this.options_["vtt.js"]&&w(_r)&&0<Object.keys(_r).length)return void this.trigger("vttjsloaded");var e=p.createElement("script");e.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js",e.onload=function(){t.trigger("vttjsloaded")},e.onerror=function(){t.trigger("vttjserror")},this.on("dispose",function(){e.onload=null,e.onerror=null}),g.WebVTT=!0,this.el().parentNode.appendChild(e)}else this.ready(this.addWebVttScript_)},n.prototype.emulateTextTracks=function(){var t=this,i=this.textTracks(),e=this.remoteTextTracks(),r=function(t){return i.addTrack(t.track)},n=function(t){return i.removeTrack(t.track)};e.on("addtrack",r),e.on("removetrack",n),this.addWebVttScript_();var s=function(){return t.trigger("texttrackchange")},a=function(){s();for(var t=0;t<i.length;t++){var e=i[t];e.removeEventListener("cuechange",s),"showing"===e.mode&&e.addEventListener("cuechange",s)}};a(),i.addEventListener("change",a),i.addEventListener("addtrack",a),i.addEventListener("removetrack",a),this.on("dispose",function(){e.off("addtrack",r),e.off("removetrack",n),i.removeEventListener("change",a),i.removeEventListener("addtrack",a),i.removeEventListener("removetrack",a);for(var t=0;t<i.length;t++){i[t].removeEventListener("cuechange",s)}})},n.prototype.addTextTrack=function(t,e,i){if(!t)throw new Error("TextTrack kind is required but was not provided");return function(t,e,i,r){var n=4<arguments.length&&void 0!==arguments[4]?arguments[4]:{},s=t.textTracks();n.kind=e,i&&(n.label=i),r&&(n.language=r),n.tech=t;var a=new Bi.text.TrackClass(n);return s.addTrack(a),a}(this,t,e,i)},n.prototype.createRemoteTextTrack=function(t){var e=Gt(t,{tech:this});return new Ni.remoteTextEl.TrackClass(e)},n.prototype.addRemoteTextTrack=function(){var t=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=arguments[1],r=this.createRemoteTextTrack(e);return!0!==i&&!1!==i&&(f.warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),i=!0),this.remoteTextTrackEls().addTrackElement_(r),this.remoteTextTracks().addTrack(r.track),!0!==i&&this.ready(function(){return t.autoRemoteTextTracks_.addTrack(r.track)}),r},n.prototype.removeRemoteTextTrack=function(t){var e=this.remoteTextTrackEls().getTrackElementByTrack_(t);this.remoteTextTrackEls().removeTrackElement_(e),this.remoteTextTracks().removeTrack(t),this.autoRemoteTextTracks_.removeTrack(t)},n.prototype.getVideoPlaybackQuality=function(){return{}},n.prototype.setPoster=function(){},n.prototype.playsinline=function(){},n.prototype.setPlaysinline=function(){},n.prototype.overrideNativeAudioTracks=function(){},n.prototype.overrideNativeVideoTracks=function(){},n.prototype.canPlayType=function(){return""},n.canPlayType=function(){return""},n.canPlaySource=function(t,e){return n.canPlayType(t.type)},n.isTech=function(t){return t.prototype instanceof n||t instanceof n||t===n},n.registerTech=function(t,e){if(n.techs_||(n.techs_={}),!n.isTech(e))throw new Error("Tech "+t+" must be a Tech");if(!n.canPlayType)throw new Error("Techs must have a static canPlayType method on them");if(!n.canPlaySource)throw new Error("Techs must have a static canPlaySource method on them");return t=zt(t),n.techs_[t]=e,"Tech"!==t&&n.defaultTechOrder_.push(t),e},n.getTech=function(t){if(t)return t=zt(t),n.techs_&&n.techs_[t]?n.techs_[t]:g&&g.videojs&&g.videojs[t]?(f.warn("The "+t+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),g.videojs[t]):void 0},n}(Xt);Bi.names.forEach(function(t){var e=Bi[t];br.prototype[e.getterName]=function(){return this[e.privateName]=this[e.privateName]||new e.ListClass,this[e.privateName]}}),br.prototype.featuresVolumeControl=!0,br.prototype.featuresFullscreenResize=!1,br.prototype.featuresPlaybackRate=!1,br.prototype.featuresProgressEvents=!1,br.prototype.featuresSourceset=!1,br.prototype.featuresTimeupdateEvents=!1,br.prototype.featuresNativeTextTracks=!1,br.withSourceHandlers=function(n){n.registerSourceHandler=function(t,e){var i=n.sourceHandlers;i||(i=n.sourceHandlers=[]),void 0===e&&(e=i.length),i.splice(e,0,t)},n.canPlayType=function(t){for(var e=n.sourceHandlers||[],i=void 0,r=0;r<e.length;r++)if(i=e[r].canPlayType(t))return i;return""},n.selectSourceHandler=function(t,e){for(var i=n.sourceHandlers||[],r=0;r<i.length;r++)if(i[r].canHandleSource(t,e))return i[r];return null},n.canPlaySource=function(t,e){var i=n.selectSourceHandler(t,e);return i?i.canHandleSource(t,e):""};["seekable","seeking","duration"].forEach(function(t){var e=this[t];"function"==typeof e&&(this[t]=function(){return this.sourceHandler_&&this.sourceHandler_[t]?this.sourceHandler_[t].apply(this.sourceHandler_,arguments):e.apply(this,arguments)})},n.prototype),n.prototype.setSource=function(t){var e=n.selectSourceHandler(t,this.options_);e||(n.nativeSourceHandler?e=n.nativeSourceHandler:f.error("No source handler found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),e!==n.nativeSourceHandler&&(this.currentSource_=t),this.sourceHandler_=e.handleSource(t,this,this.options_),this.on("dispose",this.disposeSourceHandler)},n.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},Xt.registerComponent("Tech",br),br.registerTech("Tech",br),br.defaultTechOrder_=[];var Tr={},Sr={},kr={};function Cr(t,e,i){t.setTimeout(function(){return function i(){var r=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];var n=arguments[2];var s=arguments[3];var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:[];var o=5<arguments.length&&void 0!==arguments[5]&&arguments[5];var e=t[0],u=t.slice(1);if("string"==typeof e)i(r,Tr[e],n,s,a,o);else if(e){var l=function(t,e){var i=Sr[t.id()],r=null;if(null==i)return r=e(t),Sr[t.id()]=[[e,r]],r;for(var n=0;n<i.length;n++){var s=i[n],a=s[0],o=s[1];a===e&&(r=o)}null===r&&(r=e(t),i.push([e,r]));return r}(s,e);l.setSource(C({},r),function(t,e){if(t)return i(r,u,n,s,a,o);a.push(l),i(e,r.type===e.type?u:Tr[e.type],n,s,a,o)})}else u.length?i(r,u,n,s,a,o):o?n(r,a):i(r,Tr["*"],n,s,a,!0)}(e,Tr[e.type],i,t)},1)}function Er(t,e,i){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,n="call"+zt(i),s=t.reduce(Pr(n),r),a=s===kr,o=a?null:e[i](s);return function(t,e,i,r){for(var n=t.length-1;0<=n;n--){var s=t[n];s[e]&&s[e](r,i)}}(t,i,o,a),o}var wr={buffered:1,currentTime:1,duration:1,seekable:1,played:1,paused:1},Ar={setCurrentTime:1},Lr={play:1,pause:1};function Pr(i){return function(t,e){return t===kr?kr:e[i]?e[i](t):t}}var Or={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",mp3:"audio/mpeg",aac:"audio/aac",oga:"audio/ogg",m3u8:"application/x-mpegURL"},xr=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=ti(t);return Or[e.toLowerCase()]||""};function Ir(t){var e=xr(t.src);return!t.type&&e&&(t.type=e),t}var Dr=function(l){function c(t,e,i){y(this,c);var r=Gt({createEl:!1},e),n=b(this,l.call(this,t,r,i));if(e.playerOptions.sources&&0!==e.playerOptions.sources.length)t.src(e.playerOptions.sources);else for(var s=0,a=e.playerOptions.techOrder;s<a.length;s++){var o=zt(a[s]),u=br.getTech(o);if(o||(u=Xt.getComponent(o)),u&&u.isSupported()){t.loadTech_(o);break}}return n}return _(c,l),c}(Xt);Xt.registerComponent("MediaLoader",Dr);var Rr=function(n){function r(t,e){y(this,r);var i=b(this,n.call(this,t,e));return i.emitTapEvents(),i.enable(),i}return _(r,n),r.prototype.createEl=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"div",e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};e=C({innerHTML:'<span aria-hidden="true" class="vjs-icon-placeholder"></span>',className:this.buildCSSClass(),tabIndex:0},e),"button"===t&&f.error("Creating a ClickableComponent with an HTML element of "+t+" is not supported; use a Button instead."),i=C({role:"button"},i),this.tabIndex_=e.tabIndex;var r=n.prototype.createEl.call(this,t,e,i);return this.createControlTextEl(r),r},r.prototype.dispose=function(){this.controlTextEl_=null,n.prototype.dispose.call(this)},r.prototype.createControlTextEl=function(t){return this.controlTextEl_=M("span",{className:"vjs-control-text"},{"aria-live":"polite"}),t&&t.appendChild(this.controlTextEl_),this.controlText(this.controlText_,t),this.controlTextEl_},r.prototype.controlText=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:this.el();if(void 0===t)return this.controlText_||"Need Text";var i=this.localize(t);this.controlText_=t,U(this.controlTextEl_,i),this.nonIconControl||e.setAttribute("title",i)},r.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+n.prototype.buildCSSClass.call(this)},r.prototype.enable=function(){this.enabled_||(this.enabled_=!0,this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.on(["tap","click"],this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur))},r.prototype.disable=function(){this.enabled_=!1,this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off(["tap","click"],this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur)},r.prototype.handleClick=function(t){},r.prototype.handleFocus=function(t){_t(p,"keydown",Ot(this,this.handleKeyPress))},r.prototype.handleKeyPress=function(t){32===t.which||13===t.which?(t.preventDefault(),this.trigger("click")):n.prototype.handleKeyPress&&n.prototype.handleKeyPress.call(this,t)},r.prototype.handleBlur=function(t){bt(p,"keydown",Ot(this,this.handleKeyPress))},r}(Xt);Xt.registerComponent("ClickableComponent",Rr);var Mr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.update(),t.on("posterchange",Ot(i,i.update)),i}return _(n,r),n.prototype.dispose=function(){this.player().off("posterchange",this.update),r.prototype.dispose.call(this)},n.prototype.createEl=function(){return M("div",{className:"vjs-poster",tabIndex:-1})},n.prototype.update=function(t){var e=this.player().poster();this.setSrc(e),e?this.show():this.hide()},n.prototype.setSrc=function(t){var e="";t&&(e='url("'+t+'")'),this.el_.style.backgroundImage=e},n.prototype.handleClick=function(t){this.player_.controls()&&(this.player_.paused()?this.player_.play():this.player_.pause())},n}(Rr);Xt.registerComponent("PosterImage",Mr);var Ur="#222",Nr={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'};function Br(t,e){return"rgba("+parseInt(t[1]+t[1],16)+","+parseInt(t[2]+t[2],16)+","+parseInt(t[3]+t[3],16)+","+e+")"}function jr(t,e,i){try{t.style[e]=i}catch(t){return}}var Fr=function(n){function s(i,t,e){y(this,s);var r=b(this,n.call(this,i,t,e));return i.on("loadstart",Ot(r,r.toggleDisplay)),i.on("texttrackchange",Ot(r,r.updateDisplay)),i.on("loadstart",Ot(r,r.preselectTrack)),i.ready(Ot(r,function(){if(i.tech_&&i.tech_.featuresNativeTextTracks)this.hide();else{i.on("fullscreenchange",Ot(this,this.updateDisplay));for(var t=this.options_.playerOptions.tracks||[],e=0;e<t.length;e++)this.player_.addRemoteTextTrack(t[e],!0);this.preselectTrack()}})),r}return _(s,n),s.prototype.preselectTrack=function(){for(var t={captions:1,subtitles:1},e=this.player_.textTracks(),i=this.player_.cache_.selectedLanguage,r=void 0,n=void 0,s=void 0,a=0;a<e.length;a++){var o=e[a];i&&i.enabled&&i.language===o.language?o.kind===i.kind?s=o:s||(s=o):i&&!i.enabled?n=r=s=null:o.default&&("descriptions"!==o.kind||r?o.kind in t&&!n&&(n=o):r=o)}s?s.mode="showing":n?n.mode="showing":r&&(r.mode="showing")},s.prototype.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},s.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"},{"aria-live":"off","aria-atomic":"true"})},s.prototype.clearDisplay=function(){"function"==typeof g.WebVTT&&g.WebVTT.processCues(g,[],this.el_)},s.prototype.updateDisplay=function(){var t=this.player_.textTracks();this.clearDisplay();for(var e=null,i=null,r=t.length;r--;){var n=t[r];"showing"===n.mode&&("descriptions"===n.kind?e=n:i=n)}i?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(i)):e&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(e))},s.prototype.updateForTrack=function(t){if("function"==typeof g.WebVTT&&t.activeCues){for(var e=[],i=0;i<t.activeCues.length;i++)e.push(t.activeCues[i]);if(g.WebVTT.processCues(g,e,this.el_),this.player_.textTrackSettings)for(var r=this.player_.textTrackSettings.getValues(),n=e.length;n--;){var s=e[n];if(s){var a=s.displayState;if(r.color&&(a.firstChild.style.color=r.color),r.textOpacity&&jr(a.firstChild,"color",Br(r.color||"#fff",r.textOpacity)),r.backgroundColor&&(a.firstChild.style.backgroundColor=r.backgroundColor),r.backgroundOpacity&&jr(a.firstChild,"backgroundColor",Br(r.backgroundColor||"#000",r.backgroundOpacity)),r.windowColor&&(r.windowOpacity?jr(a,"backgroundColor",Br(r.windowColor,r.windowOpacity)):a.style.backgroundColor=r.windowColor),r.edgeStyle&&("dropshadow"===r.edgeStyle?a.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px "+Ur:"raised"===r.edgeStyle?a.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px "+Ur:"depressed"===r.edgeStyle?a.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px "+Ur:"uniform"===r.edgeStyle&&(a.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px "+Ur)),r.fontPercent&&1!==r.fontPercent){var o=g.parseFloat(a.style.fontSize);a.style.fontSize=o*r.fontPercent+"px",a.style.height="auto",a.style.top="auto",a.style.bottom="2px"}r.fontFamily&&"default"!==r.fontFamily&&("small-caps"===r.fontFamily?a.firstChild.style.fontVariant="small-caps":a.firstChild.style.fontFamily=Nr[r.fontFamily])}}}},s}(Xt);Xt.registerComponent("TextTrackDisplay",Fr);var Hr=function(n){function t(){return y(this,t),b(this,n.apply(this,arguments))}return _(t,n),t.prototype.createEl=function(){var t=this.player_.isAudio(),e=this.localize(t?"Audio Player":"Video Player"),i=M("span",{className:"vjs-control-text",innerHTML:this.localize("{1} is loading.",[e])}),r=n.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner",dir:"ltr"});return r.appendChild(i),r},t}(Xt);Xt.registerComponent("LoadingSpinner",Hr);var Vr=function(e){function t(){return y(this,t),b(this,e.apply(this,arguments))}return _(t,e),t.prototype.createEl=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};e=C({innerHTML:'<span aria-hidden="true" class="vjs-icon-placeholder"></span>',className:this.buildCSSClass()},e),i=C({type:"button"},i);var r=Xt.prototype.createEl.call(this,"button",e,i);return this.createControlTextEl(r),r},t.prototype.addChild=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=this.constructor.name;return f.warn("Adding an actionable (user controllable) child to a Button ("+i+") is not supported; use a ClickableComponent instead."),Xt.prototype.addChild.call(this,t,e)},t.prototype.enable=function(){e.prototype.enable.call(this),this.el_.removeAttribute("disabled")},t.prototype.disable=function(){e.prototype.disable.call(this),this.el_.setAttribute("disabled","disabled")},t.prototype.handleKeyPress=function(t){32!==t.which&&13!==t.which&&e.prototype.handleKeyPress.call(this,t)},t}(Rr);Xt.registerComponent("Button",Vr);var qr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.mouseused_=!1,i.on("mousedown",i.handleMouseDown),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-big-play-button"},n.prototype.handleClick=function(t){var e=this.player_.play();if(!(this.mouseused_&&t.clientX&&t.clientY)){var i=this.player_.getChild("controlBar"),r=i&&i.getChild("playToggle");if(r){var n=function(){return r.focus()};xe(e)?e.then(n,function(){}):this.setTimeout(n,1)}else this.player_.focus()}},n.prototype.handleKeyPress=function(t){this.mouseused_=!1,r.prototype.handleKeyPress.call(this,t)},n.prototype.handleMouseDown=function(t){this.mouseused_=!0},n}(Vr);qr.prototype.controlText_="Play Video",Xt.registerComponent("BigPlayButton",qr);var Wr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.controlText(e&&e.controlText||i.localize("Close")),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-close-button "+r.prototype.buildCSSClass.call(this)},n.prototype.handleClick=function(t){this.trigger({type:"close",bubbles:!1})},n}(Vr);Xt.registerComponent("CloseButton",Wr);var zr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"play",i.handlePlay),i.on(t,"pause",i.handlePause),i.on(t,"ended",i.handleEnded),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-play-control "+r.prototype.buildCSSClass.call(this)},n.prototype.handleClick=function(t){this.player_.paused()?this.player_.play():this.player_.pause()},n.prototype.handleSeeked=function(t){this.removeClass("vjs-ended"),this.player_.paused()?this.handlePause(t):this.handlePlay(t)},n.prototype.handlePlay=function(t){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},n.prototype.handlePause=function(t){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},n.prototype.handleEnded=function(t){this.removeClass("vjs-playing"),this.addClass("vjs-ended"),this.controlText("Replay"),this.one(this.player_,"seeked",this.handleSeeked)},n}(Vr);zr.prototype.controlText_="Play",Xt.registerComponent("PlayToggle",zr);var Gr=function(t,e){t=t<0?0:t;var i=Math.floor(t%60),r=Math.floor(t/60%60),n=Math.floor(t/3600),s=Math.floor(e/60%60),a=Math.floor(e/3600);return(isNaN(t)||t===1/0)&&(n=r=i="-"),(n=0<n||0<a?n+":":"")+(r=((n||10<=s)&&r<10?"0"+r:r)+":")+(i=i<10?"0"+i:i)},Xr=Gr;function Yr(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:t;return Xr(t,e)}var $r=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.throttledUpdateContent=xt(Ot(i,i.updateContent),25),i.on(t,"timeupdate",i.throttledUpdateContent),i}return _(n,r),n.prototype.createEl=function(t){var e=this.buildCSSClass(),i=r.prototype.createEl.call(this,"div",{className:e+" vjs-time-control vjs-control",innerHTML:'<span class="vjs-control-text">'+this.localize(this.labelText_)+" </span>"});return this.contentEl_=M("span",{className:e+"-display"},{"aria-live":"off"}),this.updateTextNode_(),i.appendChild(this.contentEl_),i},n.prototype.dispose=function(){this.contentEl_=null,this.textNode_=null,r.prototype.dispose.call(this)},n.prototype.updateTextNode_=function(){if(this.contentEl_){for(;this.contentEl_.firstChild;)this.contentEl_.removeChild(this.contentEl_.firstChild);this.textNode_=p.createTextNode(this.formattedTime_||this.formatTime_(0)),this.contentEl_.appendChild(this.textNode_)}},n.prototype.formatTime_=function(t){return Yr(t)},n.prototype.updateFormattedTime_=function(t){var e=this.formatTime_(t);e!==this.formattedTime_&&(this.formattedTime_=e,this.requestAnimationFrame(this.updateTextNode_))},n.prototype.updateContent=function(t){},n}(Xt);$r.prototype.labelText_="Time",$r.prototype.controlText_="Time",Xt.registerComponent("TimeDisplay",$r);var Kr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"ended",i.handleEnded),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-current-time"},n.prototype.updateContent=function(t){var e=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.updateFormattedTime_(e)},n.prototype.handleEnded=function(t){this.player_.duration()&&this.updateFormattedTime_(this.player_.duration())},n}($r);Kr.prototype.labelText_="Current Time",Kr.prototype.controlText_="Current Time",Xt.registerComponent("CurrentTimeDisplay",Kr);var Qr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"durationchange",i.updateContent),i.on(t,"loadedmetadata",i.throttledUpdateContent),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-duration"},n.prototype.updateContent=function(t){var e=this.player_.duration();e&&this.duration_!==e&&(this.duration_=e,this.updateFormattedTime_(e))},n}($r);Qr.prototype.labelText_="Duration",Qr.prototype.controlText_="Duration",Xt.registerComponent("DurationDisplay",Qr);var Jr=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"})},e}(Xt);Xt.registerComponent("TimeDivider",Jr);var Zr=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"durationchange",i.throttledUpdateContent),i.on(t,"ended",i.handleEnded),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-remaining-time"},n.prototype.formatTime_=function(t){return"-"+r.prototype.formatTime_.call(this,t)},n.prototype.updateContent=function(t){this.player_.duration()&&(this.player_.remainingTimeDisplay?this.updateFormattedTime_(this.player_.remainingTimeDisplay()):this.updateFormattedTime_(this.player_.remainingTime()))},n.prototype.handleEnded=function(t){this.player_.duration()&&this.updateFormattedTime_(0)},n}($r);Zr.prototype.labelText_="Remaining Time",Zr.prototype.controlText_="Remaining Time",Xt.registerComponent("RemainingTimeDisplay",Zr);var tn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.updateShowing(),i.on(i.player(),"durationchange",i.updateShowing),i}return _(n,r),n.prototype.createEl=function(){var t=r.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=M("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+" </span>"+this.localize("LIVE")},{"aria-live":"off"}),t.appendChild(this.contentEl_),t},n.prototype.dispose=function(){this.contentEl_=null,r.prototype.dispose.call(this)},n.prototype.updateShowing=function(t){this.player().duration()===1/0?this.show():this.hide()},n}(Xt);Xt.registerComponent("LiveDisplay",tn);var en=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.bar=i.getChild(i.options_.barName),i.vertical(!!i.options_.vertical),i.enable(),i}return _(n,r),n.prototype.enabled=function(){return this.enabled_},n.prototype.enable=function(){this.enabled()||(this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(this.player_,"controlsvisible",this.update),this.playerEvent&&this.on(this.player_,this.playerEvent,this.update),this.removeClass("disabled"),this.setAttribute("tabindex",0),this.enabled_=!0)},n.prototype.disable=function(){if(this.enabled()){var t=this.bar.el_.ownerDocument;this.off("mousedown",this.handleMouseDown),this.off("touchstart",this.handleMouseDown),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this.off("click",this.handleClick),this.off(this.player_,"controlsvisible",this.update),this.off(t,"mousemove",this.handleMouseMove),this.off(t,"mouseup",this.handleMouseUp),this.off(t,"touchmove",this.handleMouseMove),this.off(t,"touchend",this.handleMouseUp),this.removeAttribute("tabindex"),this.addClass("disabled"),this.playerEvent&&this.off(this.player_,this.playerEvent,this.update),this.enabled_=!1}},n.prototype.createEl=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};return e.className=e.className+" vjs-slider",e=C({tabIndex:0},e),i=C({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},i),r.prototype.createEl.call(this,t,e,i)},n.prototype.handleMouseDown=function(t){var e=this.bar.el_.ownerDocument;t.preventDefault(),X(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(e,"mousemove",this.handleMouseMove),this.on(e,"mouseup",this.handleMouseUp),this.on(e,"touchmove",this.handleMouseMove),this.on(e,"touchend",this.handleMouseUp),this.handleMouseMove(t)},n.prototype.handleMouseMove=function(t){},n.prototype.handleMouseUp=function(){var t=this.bar.el_.ownerDocument;Y(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(t,"mousemove",this.handleMouseMove),this.off(t,"mouseup",this.handleMouseUp),this.off(t,"touchmove",this.handleMouseMove),this.off(t,"touchend",this.handleMouseUp),this.update()},n.prototype.update=function(){if(this.el_){var t=this.getPercent(),e=this.bar;if(e){("number"!=typeof t||t!=t||t<0||t===1/0)&&(t=0);var i=(100*t).toFixed(2)+"%",r=e.el().style;return this.vertical()?r.height=i:r.width=i,t}}},n.prototype.calculateDistance=function(t){var e=Q(this.el_,t);return this.vertical()?e.y:e.x},n.prototype.handleFocus=function(){this.on(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},n.prototype.handleKeyPress=function(t){37===t.which||40===t.which?(t.preventDefault(),this.stepBack()):38!==t.which&&39!==t.which||(t.preventDefault(),this.stepForward())},n.prototype.handleBlur=function(){this.off(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},n.prototype.handleClick=function(t){t.stopImmediatePropagation(),t.preventDefault()},n.prototype.vertical=function(t){if(void 0===t)return this.vertical_||!1;this.vertical_=!!t,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal")},n}(Xt);Xt.registerComponent("Slider",en);var rn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.partEls_=[],i.on(t,"progress",i.update),i}return _(n,r),n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+"</span>: 0%</span>"})},n.prototype.dispose=function(){this.partEls_=null,r.prototype.dispose.call(this)},n.prototype.update=function(t){var e=this.player_.buffered(),i=this.player_.duration(),r=this.player_.bufferedEnd(),n=this.partEls_,s=function(t,e){var i=t/e||0;return 100*(1<=i?1:i)+"%"};this.el_.style.width=s(r,i);for(var a=0;a<e.length;a++){var o=e.start(a),u=e.end(a),l=n[a];l||(l=this.el_.appendChild(M()),n[a]=l),l.style.left=s(o,r),l.style.width=s(u-o,r)}for(var c=n.length;c>e.length;c--)this.el_.removeChild(n[c-1]);n.length=e.length},n}(Xt);Xt.registerComponent("LoadProgressBar",rn);var nn=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:"vjs-time-tooltip"})},e.prototype.update=function(t,e,i){var r=$(this.el_),n=$(this.player_.el()),s=t.width*e;if(n&&r){var a=t.left-n.left+s,o=t.width-s+(n.right-t.right),u=r.width/2;a<u?u+=u-a:o<u&&(u=o),u<0?u=0:u>r.width&&(u=r.width),this.el_.style.right="-"+u+"px",U(this.el_,i)}},e}(Xt);Xt.registerComponent("TimeTooltip",nn);var sn=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"})},e.prototype.update=function(i,r){var n=this;this.rafId_&&this.cancelAnimationFrame(this.rafId_),this.rafId_=this.requestAnimationFrame(function(){var t=Yr(n.player_.scrubbing()?n.player_.getCache().currentTime:n.player_.currentTime(),n.player_.duration()),e=n.getChild("timeTooltip");e&&e.update(i,r,t)})},e}(Xt);sn.prototype.options_={children:[]},ne||ae||sn.prototype.options_.children.push("timeTooltip"),Xt.registerComponent("PlayProgressBar",sn);var an=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.update=xt(Ot(i,i.update),25),i}return _(n,r),n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},n.prototype.update=function(i,r){var n=this;this.rafId_&&this.cancelAnimationFrame(this.rafId_),this.rafId_=this.requestAnimationFrame(function(){var t=n.player_.duration(),e=Yr(r*t,t);n.el_.style.left=i.width*r+"px",n.getChild("timeTooltip").update(i,r,e)})},n}(Xt);an.prototype.options_={children:["timeTooltip"]},Xt.registerComponent("MouseTimeDisplay",an);var on=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.setEventHandlers_(),i}return _(n,r),n.prototype.setEventHandlers_=function(){var t=this;this.update=xt(Ot(this,this.update),30),this.on(this.player_,"timeupdate",this.update),this.on(this.player_,"ended",this.handleEnded),this.updateInterval=null,this.on(this.player_,["playing"],function(){t.clearInterval(t.updateInterval),t.updateInterval=t.setInterval(function(){t.requestAnimationFrame(function(){t.update()})},30)}),this.on(this.player_,["ended","pause","waiting"],function(){t.clearInterval(t.updateInterval)}),this.on(this.player_,["timeupdate","ended"],this.update)},n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":this.localize("Progress Bar")})},n.prototype.update_=function(t,e){var i=this.player_.duration();this.el_.setAttribute("aria-valuenow",(100*e).toFixed(2)),this.el_.setAttribute("aria-valuetext",this.localize("progress bar timing: currentTime={1} duration={2}",[Yr(t,i),Yr(i,i)],"{1} of {2}")),this.bar.update($(this.el_),e)},n.prototype.update=function(t){var e=r.prototype.update.call(this);return this.update_(this.getCurrentTime_(),e),e},n.prototype.getCurrentTime_=function(){return this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime()},n.prototype.handleEnded=function(t){this.update_(this.player_.duration(),1)},n.prototype.getPercent=function(){var t=this.getCurrentTime_()/this.player_.duration();return 1<=t?1:t||0},n.prototype.handleMouseDown=function(t){rt(t)&&(t.stopPropagation(),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),r.prototype.handleMouseDown.call(this,t))},n.prototype.handleMouseMove=function(t){if(rt(t)){var e=this.calculateDistance(t)*this.player_.duration();e===this.player_.duration()&&(e-=.1),this.player_.currentTime(e)}},n.prototype.enable=function(){r.prototype.enable.call(this);var t=this.getChild("mouseTimeDisplay");t&&t.show()},n.prototype.disable=function(){r.prototype.disable.call(this);var t=this.getChild("mouseTimeDisplay");t&&t.hide()},n.prototype.handleMouseUp=function(t){r.prototype.handleMouseUp.call(this,t),t&&t.stopPropagation(),this.player_.scrubbing(!1),this.player_.trigger({type:"timeupdate",target:this,manuallyTriggered:!0}),this.videoWasPlaying&&Ie(this.player_.play())},n.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},n.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},n.prototype.handleAction=function(t){this.player_.paused()?this.player_.play():this.player_.pause()},n.prototype.handleKeyPress=function(t){32===t.which||13===t.which?(t.preventDefault(),this.handleAction(t)):r.prototype.handleKeyPress&&r.prototype.handleKeyPress.call(this,t)},n}(en);on.prototype.options_={children:["loadProgressBar","playProgressBar"],barName:"playProgressBar"},ne||ae||on.prototype.options_.children.splice(1,0,"mouseTimeDisplay"),on.prototype.playerEvent="timeupdate",Xt.registerComponent("SeekBar",on);var un=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.handleMouseMove=xt(Ot(i,i.handleMouseMove),25),i.throttledHandleMouseSeek=xt(Ot(i,i.handleMouseSeek),25),i.enable(),i}return _(n,r),n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},n.prototype.handleMouseMove=function(t){var e=this.getChild("seekBar");if(e){var i=e.getChild("mouseTimeDisplay"),r=e.el(),n=$(r),s=Q(r,t).x;1<s?s=1:s<0&&(s=0),i&&i.update(n,s)}},n.prototype.handleMouseSeek=function(t){var e=this.getChild("seekBar");e&&e.handleMouseMove(t)},n.prototype.enabled=function(){return this.enabled_},n.prototype.disable=function(){this.children().forEach(function(t){return t.disable&&t.disable()}),this.enabled()&&(this.off(["mousedown","touchstart"],this.handleMouseDown),this.off(this.el_,"mousemove",this.handleMouseMove),this.handleMouseUp(),this.addClass("disabled"),this.enabled_=!1)},n.prototype.enable=function(){this.children().forEach(function(t){return t.enable&&t.enable()}),this.enabled()||(this.on(["mousedown","touchstart"],this.handleMouseDown),this.on(this.el_,"mousemove",this.handleMouseMove),this.removeClass("disabled"),this.enabled_=!0)},n.prototype.handleMouseDown=function(t){var e=this.el_.ownerDocument,i=this.getChild("seekBar");i&&i.handleMouseDown(t),this.on(e,"mousemove",this.throttledHandleMouseSeek),this.on(e,"touchmove",this.throttledHandleMouseSeek),this.on(e,"mouseup",this.handleMouseUp),this.on(e,"touchend",this.handleMouseUp)},n.prototype.handleMouseUp=function(t){var e=this.el_.ownerDocument,i=this.getChild("seekBar");i&&i.handleMouseUp(t),this.off(e,"mousemove",this.throttledHandleMouseSeek),this.off(e,"touchmove",this.throttledHandleMouseSeek),this.off(e,"mouseup",this.handleMouseUp),this.off(e,"touchend",this.handleMouseUp)},n}(Xt);un.prototype.options_={children:["seekBar"]},Xt.registerComponent("ProgressControl",un);var ln=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"fullscreenchange",i.handleFullscreenChange),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+r.prototype.buildCSSClass.call(this)},n.prototype.handleFullscreenChange=function(t){this.player_.isFullscreen()?this.controlText("Non-Fullscreen"):this.controlText("Fullscreen")},n.prototype.handleClick=function(t){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()},n}(Vr);ln.prototype.controlText_="Fullscreen",Xt.registerComponent("FullscreenToggle",ln);var cn=function(t,e){e.tech_&&!e.tech_.featuresVolumeControl&&t.addClass("vjs-hidden"),t.on(e,"loadstart",function(){e.tech_.featuresVolumeControl?t.removeClass("vjs-hidden"):t.addClass("vjs-hidden")})},hn=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},e}(Xt);Xt.registerComponent("VolumeLevel",hn);var dn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on("slideractive",i.updateLastVolume_),i.on(t,"volumechange",i.updateARIAAttributes),t.ready(function(){return i.updateARIAAttributes()}),i}return _(n,r),n.prototype.createEl=function(){return r.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":this.localize("Volume Level"),"aria-live":"polite"})},n.prototype.handleMouseDown=function(t){rt(t)&&r.prototype.handleMouseDown.call(this,t)},n.prototype.handleMouseMove=function(t){rt(t)&&(this.checkMuted(),this.player_.volume(this.calculateDistance(t)))},n.prototype.checkMuted=function(){this.player_.muted()&&this.player_.muted(!1)},n.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},n.prototype.stepForward=function(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)},n.prototype.stepBack=function(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)},n.prototype.updateARIAAttributes=function(t){var e=this.player_.muted()?0:this.volumeAsPercentage_();this.el_.setAttribute("aria-valuenow",e),this.el_.setAttribute("aria-valuetext",e+"%")},n.prototype.volumeAsPercentage_=function(){return Math.round(100*this.player_.volume())},n.prototype.updateLastVolume_=function(){var t=this,e=this.player_.volume();this.one("sliderinactive",function(){0===t.player_.volume()&&t.player_.lastVolume_(e)})},n}(en);dn.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},dn.prototype.playerEvent="volumechange",Xt.registerComponent("VolumeBar",dn);var pn=function(r){function n(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};y(this,n),e.vertical=e.vertical||!1,("undefined"==typeof e.volumeBar||w(e.volumeBar))&&(e.volumeBar=e.volumeBar||{},e.volumeBar.vertical=e.vertical);var i=b(this,r.call(this,t,e));return cn(i,t),i.throttledHandleMouseMove=xt(Ot(i,i.handleMouseMove),25),i.on("mousedown",i.handleMouseDown),i.on("touchstart",i.handleMouseDown),i.on(i.volumeBar,["focus","slideractive"],function(){i.volumeBar.addClass("vjs-slider-active"),i.addClass("vjs-slider-active"),i.trigger("slideractive")}),i.on(i.volumeBar,["blur","sliderinactive"],function(){i.volumeBar.removeClass("vjs-slider-active"),i.removeClass("vjs-slider-active"),i.trigger("sliderinactive")}),i}return _(n,r),n.prototype.createEl=function(){var t="vjs-volume-horizontal";return this.options_.vertical&&(t="vjs-volume-vertical"),r.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control "+t})},n.prototype.handleMouseDown=function(t){var e=this.el_.ownerDocument;this.on(e,"mousemove",this.throttledHandleMouseMove),this.on(e,"touchmove",this.throttledHandleMouseMove),this.on(e,"mouseup",this.handleMouseUp),this.on(e,"touchend",this.handleMouseUp)},n.prototype.handleMouseUp=function(t){var e=this.el_.ownerDocument;this.off(e,"mousemove",this.throttledHandleMouseMove),this.off(e,"touchmove",this.throttledHandleMouseMove),this.off(e,"mouseup",this.handleMouseUp),this.off(e,"touchend",this.handleMouseUp)},n.prototype.handleMouseMove=function(t){this.volumeBar.handleMouseMove(t)},n}(Xt);pn.prototype.options_={children:["volumeBar"]},Xt.registerComponent("VolumeControl",pn);var fn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return cn(i,t),i.on(t,["loadstart","volumechange"],i.update),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-mute-control "+r.prototype.buildCSSClass.call(this)},n.prototype.handleClick=function(t){var e=this.player_.volume(),i=this.player_.lastVolume_();if(0===e){var r=i<.1?.1:i;this.player_.volume(r),this.player_.muted(!1)}else this.player_.muted(!this.player_.muted())},n.prototype.update=function(t){this.updateIcon_(),this.updateControlText_()},n.prototype.updateIcon_=function(){var t=this.player_.volume(),e=3;0===t||this.player_.muted()?e=0:t<.33?e=1:t<.67&&(e=2);for(var i=0;i<4;i++)F(this.el_,"vjs-vol-"+i);j(this.el_,"vjs-vol-"+e)},n.prototype.updateControlText_=function(){var t=this.player_.muted()||0===this.player_.volume()?"Unmute":"Mute";this.controlText()!==t&&this.controlText(t)},n}(Vr);fn.prototype.controlText_="Mute",Xt.registerComponent("MuteToggle",fn);var mn=function(r){function n(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};y(this,n),"undefined"!=typeof e.inline?e.inline=e.inline:e.inline=!0,("undefined"==typeof e.volumeControl||w(e.volumeControl))&&(e.volumeControl=e.volumeControl||{},e.volumeControl.vertical=!e.inline);var i=b(this,r.call(this,t,e));return cn(i,t),i.on(i.volumeControl,["slideractive"],i.sliderActive_),i.on(i.volumeControl,["sliderinactive"],i.sliderInactive_),i}return _(n,r),n.prototype.sliderActive_=function(){this.addClass("vjs-slider-active")},n.prototype.sliderInactive_=function(){this.removeClass("vjs-slider-active")},n.prototype.createEl=function(){var t="vjs-volume-panel-horizontal";return this.options_.inline||(t="vjs-volume-panel-vertical"),r.prototype.createEl.call(this,"div",{className:"vjs-volume-panel vjs-control "+t})},n}(Xt);mn.prototype.options_={children:["muteToggle","volumeControl"]},Xt.registerComponent("VolumePanel",mn);var gn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return e&&(i.menuButton_=e.menuButton),i.focusedChild_=-1,i.on("keydown",i.handleKeyPress),i}return _(n,r),n.prototype.addItem=function(e){this.addChild(e),e.on("click",Ot(this,function(t){this.menuButton_&&(this.menuButton_.unpressButton(),"CaptionSettingsMenuItem"!==e.name()&&this.menuButton_.focus())}))},n.prototype.createEl=function(){var t=this.options_.contentElType||"ul";this.contentEl_=M(t,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu");var e=r.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return e.appendChild(this.contentEl_),_t(e,"click",function(t){t.preventDefault(),t.stopImmediatePropagation()}),e},n.prototype.dispose=function(){this.contentEl_=null,r.prototype.dispose.call(this)},n.prototype.handleKeyPress=function(t){37===t.which||40===t.which?(t.preventDefault(),this.stepForward()):38!==t.which&&39!==t.which||(t.preventDefault(),this.stepBack())},n.prototype.stepForward=function(){var t=0;void 0!==this.focusedChild_&&(t=this.focusedChild_+1),this.focus(t)},n.prototype.stepBack=function(){var t=0;void 0!==this.focusedChild_&&(t=this.focusedChild_-1),this.focus(t)},n.prototype.focus=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,e=this.children().slice();e.length&&e[0].className&&/vjs-menu-title/.test(e[0].className)&&e.shift(),0<e.length&&(t<0?t=0:t>=e.length&&(t=e.length-1),e[this.focusedChild_=t].el_.focus())},n}(Xt);Xt.registerComponent("Menu",gn);var yn=function(n){function s(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};y(this,s);var i=b(this,n.call(this,t,e));i.menuButton_=new Vr(t,e),i.menuButton_.controlText(i.controlText_),i.menuButton_.el_.setAttribute("aria-haspopup","true");var r=Vr.prototype.buildCSSClass();return i.menuButton_.el_.className=i.buildCSSClass()+" "+r,i.menuButton_.removeClass("vjs-control"),i.addChild(i.menuButton_),i.update(),i.enabled_=!0,i.on(i.menuButton_,"tap",i.handleClick),i.on(i.menuButton_,"click",i.handleClick),i.on(i.menuButton_,"focus",i.handleFocus),i.on(i.menuButton_,"blur",i.handleBlur),i.on("keydown",i.handleSubmenuKeyPress),i}return _(s,n),s.prototype.update=function(){var t=this.createMenu();this.menu&&(this.menu.dispose(),this.removeChild(this.menu)),this.menu=t,this.addChild(t),this.buttonPressed_=!1,this.menuButton_.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?this.hide():this.show()},s.prototype.createMenu=function(){var t=new gn(this.player_,{menuButton:this});if(this.hideThreshold_=0,this.options_.title){var e=M("li",{className:"vjs-menu-title",innerHTML:zt(this.options_.title),tabIndex:-1});this.hideThreshold_+=1,t.children_.unshift(e),N(e,t.contentEl())}if(this.items=this.createItems(),this.items)for(var i=0;i<this.items.length;i++)t.addItem(this.items[i]);return t},s.prototype.createItems=function(){},s.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:this.buildWrapperCSSClass()},{})},s.prototype.buildWrapperCSSClass=function(){var t="vjs-menu-button";return!0===this.options_.inline?t+="-inline":t+="-popup","vjs-menu-button "+t+" "+Vr.prototype.buildCSSClass()+" "+n.prototype.buildCSSClass.call(this)},s.prototype.buildCSSClass=function(){var t="vjs-menu-button";return!0===this.options_.inline?t+="-inline":t+="-popup","vjs-menu-button "+t+" "+n.prototype.buildCSSClass.call(this)},s.prototype.controlText=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:this.menuButton_.el();return this.menuButton_.controlText(t,e)},s.prototype.handleClick=function(t){this.one(this.menu.contentEl(),"mouseleave",Ot(this,function(t){this.unpressButton(),this.el_.blur()})),this.buttonPressed_?this.unpressButton():this.pressButton()},s.prototype.focus=function(){this.menuButton_.focus()},s.prototype.blur=function(){this.menuButton_.blur()},s.prototype.handleFocus=function(){_t(p,"keydown",Ot(this,this.handleKeyPress))},s.prototype.handleBlur=function(){bt(p,"keydown",Ot(this,this.handleKeyPress))},s.prototype.handleKeyPress=function(t){27===t.which||9===t.which?(this.buttonPressed_&&this.unpressButton(),9!==t.which&&(t.preventDefault(),this.menuButton_.el_.focus())):38!==t.which&&40!==t.which||this.buttonPressed_||(this.pressButton(),t.preventDefault())},s.prototype.handleSubmenuKeyPress=function(t){27!==t.which&&9!==t.which||(this.buttonPressed_&&this.unpressButton(),9!==t.which&&(t.preventDefault(),this.menuButton_.el_.focus()))},s.prototype.pressButton=function(){if(this.enabled_){if(this.buttonPressed_=!0,this.menu.lockShowing(),this.menuButton_.el_.setAttribute("aria-expanded","true"),ne&&D())return;this.menu.focus()}},s.prototype.unpressButton=function(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.menuButton_.el_.setAttribute("aria-expanded","false"))},s.prototype.disable=function(){this.unpressButton(),this.enabled_=!1,this.addClass("vjs-disabled"),this.menuButton_.disable()},s.prototype.enable=function(){this.enabled_=!0,this.removeClass("vjs-disabled"),this.menuButton_.enable()},s}(Xt);Xt.registerComponent("MenuButton",yn);var vn=function(s){function a(t,e){y(this,a);var i=e.tracks,r=b(this,s.call(this,t,e));if(r.items.length<=1&&r.hide(),!i)return b(r);var n=Ot(r,r.update);return i.addEventListener("removetrack",n),i.addEventListener("addtrack",n),r.player_.on("ready",n),r.player_.on("dispose",function(){i.removeEventListener("removetrack",n),i.removeEventListener("addtrack",n)}),r}return _(a,s),a}(yn);Xt.registerComponent("TrackButton",vn);var _n=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.selectable=e.selectable,i.isSelected_=e.selected||!1,i.selected(i.isSelected_),i.selectable?i.el_.setAttribute("role","menuitemcheckbox"):i.el_.setAttribute("role","menuitem"),i}return _(n,r),n.prototype.createEl=function(t,e,i){return this.nonIconControl=!0,r.prototype.createEl.call(this,"li",C({className:"vjs-menu-item",innerHTML:'<span class="vjs-menu-item-text">'+this.localize(this.options_.label)+"</span>",tabIndex:-1},e),i)},n.prototype.handleClick=function(t){this.selected(!0)},n.prototype.selected=function(t){this.selectable&&(t?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected"),this.isSelected_=!0):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText(""),this.isSelected_=!1))},n}(Rr);Xt.registerComponent("MenuItem",_n);var bn=function(u){function l(t,e){y(this,l);var i=e.track,r=t.textTracks();e.label=i.label||i.language||"Unknown",e.selected="showing"===i.mode;var n=b(this,u.call(this,t,e));n.track=i;var s=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];n.handleTracksChange.apply(n,e)},a=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];n.handleSelectedLanguageChange.apply(n,e)};if(t.on(["loadstart","texttrackchange"],s),r.addEventListener("change",s),r.addEventListener("selectedlanguagechange",a),n.on("dispose",function(){t.off(["loadstart","texttrackchange"],s),r.removeEventListener("change",s),r.removeEventListener("selectedlanguagechange",a)}),void 0===r.onchange){var o=void 0;n.on(["tap","click"],function(){if("object"!==v(g.Event))try{o=new g.Event("change")}catch(t){}o||(o=p.createEvent("Event")).initEvent("change",!0,!0),r.dispatchEvent(o)})}return n.handleTracksChange(),n}return _(l,u),l.prototype.handleClick=function(t){var e=this.track.kind,i=this.track.kinds,r=this.player_.textTracks();if(i||(i=[e]),u.prototype.handleClick.call(this,t),r)for(var n=0;n<r.length;n++){var s=r[n];s===this.track&&-1<i.indexOf(s.kind)?"showing"!==s.mode&&(s.mode="showing"):"disabled"!==s.mode&&(s.mode="disabled")}},l.prototype.handleTracksChange=function(t){var e="showing"===this.track.mode;e!==this.isSelected_&&this.selected(e)},l.prototype.handleSelectedLanguageChange=function(t){if("showing"===this.track.mode){var e=this.player_.cache_.selectedLanguage;if(e&&e.enabled&&e.language===this.track.language&&e.kind!==this.track.kind)return;this.player_.cache_.selectedLanguage={enabled:!0,language:this.track.language,kind:this.track.kind}}},l.prototype.dispose=function(){this.track=null,u.prototype.dispose.call(this)},l}(_n);Xt.registerComponent("TextTrackMenuItem",bn);var Tn=function(i){function r(t,e){return y(this,r),e.track={player:t,kind:e.kind,kinds:e.kinds,default:!1,mode:"disabled"},e.kinds||(e.kinds=[e.kind]),e.label?e.track.label=e.label:e.track.label=e.kinds.join(" and ")+" off",e.selectable=!0,b(this,i.call(this,t,e))}return _(r,i),r.prototype.handleTracksChange=function(t){for(var e=this.player().textTracks(),i=!0,r=0,n=e.length;r<n;r++){var s=e[r];if(-1<this.options_.kinds.indexOf(s.kind)&&"showing"===s.mode){i=!1;break}}i!==this.isSelected_&&this.selected(i)},r.prototype.handleSelectedLanguageChange=function(t){for(var e=this.player().textTracks(),i=!0,r=0,n=e.length;r<n;r++){var s=e[r];if(-1<["captions","descriptions","subtitles"].indexOf(s.kind)&&"showing"===s.mode){i=!1;break}}i&&(this.player_.cache_.selectedLanguage={enabled:!1})},r}(bn);Xt.registerComponent("OffTextTrackMenuItem",Tn);var Sn=function(i){function r(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return y(this,r),e.tracks=t.textTracks(),b(this,i.call(this,t,e))}return _(r,i),r.prototype.createItems=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:bn,i=void 0;this.label_&&(i=this.label_+" off"),t.push(new Tn(this.player_,{kinds:this.kinds_,kind:this.kind_,label:i})),this.hideThreshold_+=1;var r=this.player_.textTracks();Array.isArray(this.kinds_)||(this.kinds_=[this.kind_]);for(var n=0;n<r.length;n++){var s=r[n];if(-1<this.kinds_.indexOf(s.kind)){var a=new e(this.player_,{track:s,selectable:!0});a.addClass("vjs-"+s.kind+"-menu-item"),t.push(a)}}return t},r}(vn);Xt.registerComponent("TextTrackButton",Sn);var kn=function(a){function o(t,e){y(this,o);var i=e.track,r=e.cue,n=t.currentTime();e.selectable=!0,e.label=r.text,e.selected=r.startTime<=n&&n<r.endTime;var s=b(this,a.call(this,t,e));return s.track=i,s.cue=r,i.addEventListener("cuechange",Ot(s,s.update)),s}return _(o,a),o.prototype.handleClick=function(t){a.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},o.prototype.update=function(t){var e=this.cue,i=this.player_.currentTime();this.selected(e.startTime<=i&&i<e.endTime)},o}(_n);Xt.registerComponent("ChaptersTrackMenuItem",kn);var Cn=function(r){function n(t,e,i){return y(this,n),b(this,r.call(this,t,e,i))}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-chapters-button "+r.prototype.buildCSSClass.call(this)},n.prototype.buildWrapperCSSClass=function(){return"vjs-chapters-button "+r.prototype.buildWrapperCSSClass.call(this)},n.prototype.update=function(t){this.track_&&(!t||"addtrack"!==t.type&&"removetrack"!==t.type)||this.setTrack(this.findChaptersTrack()),r.prototype.update.call(this)},n.prototype.setTrack=function(t){if(this.track_!==t){if(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_){var e=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);e&&e.removeEventListener("load",this.updateHandler_),this.track_=null}if(this.track_=t,this.track_){this.track_.mode="hidden";var i=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);i&&i.addEventListener("load",this.updateHandler_)}}},n.prototype.findChaptersTrack=function(){for(var t=this.player_.textTracks()||[],e=t.length-1;0<=e;e--){var i=t[e];if(i.kind===this.kind_)return i}},n.prototype.getMenuCaption=function(){return this.track_&&this.track_.label?this.track_.label:this.localize(zt(this.kind_))},n.prototype.createMenu=function(){return this.options_.title=this.getMenuCaption(),r.prototype.createMenu.call(this)},n.prototype.createItems=function(){var t=[];if(!this.track_)return t;var e=this.track_.cues;if(!e)return t;for(var i=0,r=e.length;i<r;i++){var n=e[i],s=new kn(this.player_,{track:this.track_,cue:n});t.push(s)}return t},n}(Sn);Cn.prototype.kind_="chapters",Cn.prototype.controlText_="Chapters",Xt.registerComponent("ChaptersButton",Cn);var En=function(a){function o(t,e,i){y(this,o);var r=b(this,a.call(this,t,e,i)),n=t.textTracks(),s=Ot(r,r.handleTracksChange);return n.addEventListener("change",s),r.on("dispose",function(){n.removeEventListener("change",s)}),r}return _(o,a),o.prototype.handleTracksChange=function(t){for(var e=this.player().textTracks(),i=!1,r=0,n=e.length;r<n;r++){var s=e[r];if(s.kind!==this.kind_&&"showing"===s.mode){i=!0;break}}i?this.disable():this.enable()},o.prototype.buildCSSClass=function(){return"vjs-descriptions-button "+a.prototype.buildCSSClass.call(this)},o.prototype.buildWrapperCSSClass=function(){return"vjs-descriptions-button "+a.prototype.buildWrapperCSSClass.call(this)},o}(Sn);En.prototype.kind_="descriptions",En.prototype.controlText_="Descriptions",Xt.registerComponent("DescriptionsButton",En);var wn=function(r){function n(t,e,i){return y(this,n),b(this,r.call(this,t,e,i))}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+r.prototype.buildCSSClass.call(this)},n.prototype.buildWrapperCSSClass=function(){return"vjs-subtitles-button "+r.prototype.buildWrapperCSSClass.call(this)},n}(Sn);wn.prototype.kind_="subtitles",wn.prototype.controlText_="Subtitles",Xt.registerComponent("SubtitlesButton",wn);var An=function(r){function n(t,e){y(this,n),e.track={player:t,kind:e.kind,label:e.kind+" settings",selectable:!1,default:!1,mode:"disabled"},e.selectable=!1,e.name="CaptionSettingsMenuItem";var i=b(this,r.call(this,t,e));return i.addClass("vjs-texttrack-settings"),i.controlText(", opens "+e.kind+" settings dialog"),i}return _(n,r),n.prototype.handleClick=function(t){this.player().getChild("textTrackSettings").open()},n}(bn);Xt.registerComponent("CaptionSettingsMenuItem",An);var Ln=function(r){function n(t,e,i){return y(this,n),b(this,r.call(this,t,e,i))}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-captions-button "+r.prototype.buildCSSClass.call(this)},n.prototype.buildWrapperCSSClass=function(){return"vjs-captions-button "+r.prototype.buildWrapperCSSClass.call(this)},n.prototype.createItems=function(){var t=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(t.push(new An(this.player_,{kind:this.kind_})),this.hideThreshold_+=1),r.prototype.createItems.call(this,t)},n}(Sn);Ln.prototype.kind_="captions",Ln.prototype.controlText_="Captions",Xt.registerComponent("CaptionsButton",Ln);var Pn=function(n){function t(){return y(this,t),b(this,n.apply(this,arguments))}return _(t,n),t.prototype.createEl=function(t,e,i){var r='<span class="vjs-menu-item-text">'+this.localize(this.options_.label);return"captions"===this.options_.track.kind&&(r+='\n        <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n        <span class="vjs-control-text"> '+this.localize("Captions")+"</span>\n      "),r+="</span>",n.prototype.createEl.call(this,t,C({innerHTML:r},e),i)},t}(bn);Xt.registerComponent("SubsCapsMenuItem",Pn);var On=function(r){function n(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};y(this,n);var i=b(this,r.call(this,t,e));return i.label_="subtitles",-1<["en","en-us","en-ca","fr-ca"].indexOf(i.player_.language_)&&(i.label_="captions"),i.menuButton_.controlText(zt(i.label_)),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-subs-caps-button "+r.prototype.buildCSSClass.call(this)},n.prototype.buildWrapperCSSClass=function(){return"vjs-subs-caps-button "+r.prototype.buildWrapperCSSClass.call(this)},n.prototype.createItems=function(){var t=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(t.push(new An(this.player_,{kind:this.label_})),this.hideThreshold_+=1),t=r.prototype.createItems.call(this,t,Pn)},n}(Sn);On.prototype.kinds_=["captions","subtitles"],On.prototype.controlText_="Subtitles",Xt.registerComponent("SubsCapsButton",On);var xn=function(a){function o(t,e){y(this,o);var i=e.track,r=t.audioTracks();e.label=i.label||i.language||"Unknown",e.selected=i.enabled;var n=b(this,a.call(this,t,e));n.track=i;var s=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];n.handleTracksChange.apply(n,e)};return r.addEventListener("change",s),n.on("dispose",function(){r.removeEventListener("change",s)}),n}return _(o,a),o.prototype.handleClick=function(t){var e=this.player_.audioTracks();a.prototype.handleClick.call(this,t);for(var i=0;i<e.length;i++){var r=e[i];r.enabled=r===this.track}},o.prototype.handleTracksChange=function(t){this.selected(this.track.enabled)},o}(_n);Xt.registerComponent("AudioTrackMenuItem",xn);var In=function(i){function r(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return y(this,r),e.tracks=t.audioTracks(),b(this,i.call(this,t,e))}return _(r,i),r.prototype.buildCSSClass=function(){return"vjs-audio-button "+i.prototype.buildCSSClass.call(this)},r.prototype.buildWrapperCSSClass=function(){return"vjs-audio-button "+i.prototype.buildWrapperCSSClass.call(this)},r.prototype.createItems=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this.hideThreshold_=1;for(var e=this.player_.audioTracks(),i=0;i<e.length;i++){var r=e[i];t.push(new xn(this.player_,{track:r,selectable:!0}))}return t},r}(vn);In.prototype.controlText_="Audio Track",Xt.registerComponent("AudioTrackButton",In);var Dn=function(s){function a(t,e){y(this,a);var i=e.rate,r=parseFloat(i,10);e.label=i,e.selected=1===r,e.selectable=!0;var n=b(this,s.call(this,t,e));return n.label=i,n.rate=r,n.on(t,"ratechange",n.update),n}return _(a,s),a.prototype.handleClick=function(t){s.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},a.prototype.update=function(t){this.selected(this.player().playbackRate()===this.rate)},a}(_n);Dn.prototype.contentElType="button",Xt.registerComponent("PlaybackRateMenuItem",Dn);var Rn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.updateVisibility(),i.updateLabel(),i.on(t,"loadstart",i.updateVisibility),i.on(t,"ratechange",i.updateLabel),i}return _(n,r),n.prototype.createEl=function(){var t=r.prototype.createEl.call(this);return this.labelEl_=M("div",{className:"vjs-playback-rate-value",innerHTML:"1x"}),t.appendChild(this.labelEl_),t},n.prototype.dispose=function(){this.labelEl_=null,r.prototype.dispose.call(this)},n.prototype.buildCSSClass=function(){return"vjs-playback-rate "+r.prototype.buildCSSClass.call(this)},n.prototype.buildWrapperCSSClass=function(){return"vjs-playback-rate "+r.prototype.buildWrapperCSSClass.call(this)},n.prototype.createMenu=function(){var t=new gn(this.player()),e=this.playbackRates();if(e)for(var i=e.length-1;0<=i;i--)t.addChild(new Dn(this.player(),{rate:e[i]+"x"}));return t},n.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},n.prototype.handleClick=function(t){for(var e=this.player().playbackRate(),i=this.playbackRates(),r=i[0],n=0;n<i.length;n++)if(i[n]>e){r=i[n];break}this.player().playbackRate(r)},n.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},n.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&0<this.playbackRates().length},n.prototype.updateVisibility=function(t){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},n.prototype.updateLabel=function(t){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},n}(yn);Rn.prototype.controlText_="Playback Rate",Xt.registerComponent("PlaybackRateMenuButton",Rn);var Mn=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.buildCSSClass=function(){return"vjs-spacer "+t.prototype.buildCSSClass.call(this)},e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},e}(Xt);Xt.registerComponent("Spacer",Mn);var Un=function(e){function t(){return y(this,t),b(this,e.apply(this,arguments))}return _(t,e),t.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+e.prototype.buildCSSClass.call(this)},t.prototype.createEl=function(){var t=e.prototype.createEl.call(this,{className:this.buildCSSClass()});return t.innerHTML=" ",t},t}(Mn);Xt.registerComponent("CustomControlSpacer",Un);var Nn=function(t){function e(){return y(this,e),b(this,t.apply(this,arguments))}return _(e,t),e.prototype.createEl=function(){return t.prototype.createEl.call(this,"div",{className:"vjs-control-bar",dir:"ltr"})},e}(Xt);Nn.prototype.options_={children:["playToggle","volumePanel","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subsCapsButton","audioTrackButton","fullscreenToggle"]},Xt.registerComponent("ControlBar",Nn);var Bn=function(r){function n(t,e){y(this,n);var i=b(this,r.call(this,t,e));return i.on(t,"error",i.open),i}return _(n,r),n.prototype.buildCSSClass=function(){return"vjs-error-display "+r.prototype.buildCSSClass.call(this)},n.prototype.content=function(){var t=this.player().error();return t?this.localize(t.message):""},n}(Ne);Bn.prototype.options_=Gt(Ne.prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),Xt.registerComponent("ErrorDisplay",Bn);var jn="vjs-text-track-settings",Fn=["#000","Black"],Hn=["#00F","Blue"],Vn=["#0FF","Cyan"],qn=["#0F0","Green"],Wn=["#F0F","Magenta"],zn=["#F00","Red"],Gn=["#FFF","White"],Xn=["#FF0","Yellow"],Yn=["1","Opaque"],$n=["0.5","Semi-Transparent"],Kn=["0","Transparent"],Qn={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[Fn,Gn,zn,qn,Hn,Xn,Wn,Vn]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Transparency",options:[Yn,$n,Kn]},color:{selector:".vjs-fg-color > select",id:"captions-foreground-color-%s",label:"Color",options:[Gn,Fn,zn,qn,Hn,Xn,Wn,Vn]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],default:2,parser:function(t){return"1.00"===t?null:Number(t)}},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Transparency",options:[Yn,$n]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Transparency",options:[Kn,$n,Yn]}};function Jn(t,e){if(e&&(t=e(t)),t&&"none"!==t)return t}Qn.windowColor.options=Qn.backgroundColor.options;var Zn=function(r){function n(t,e){y(this,n),e.temporary=!1;var i=b(this,r.call(this,t,e));return i.updateDisplay=Ot(i,i.updateDisplay),i.fill(),i.hasBeenOpened_=i.hasBeenFilled_=!0,i.endDialog=M("p",{className:"vjs-control-text",textContent:i.localize("End of dialog window.")}),i.el().appendChild(i.endDialog),i.setDefaults(),void 0===e.persistTextTrackSettings&&(i.options_.persistTextTrackSettings=i.options_.playerOptions.persistTextTrackSettings),i.on(i.$(".vjs-done-button"),"click",function(){i.saveSettings(),i.close()}),i.on(i.$(".vjs-default-button"),"click",function(){i.setDefaults(),i.updateDisplay()}),k(Qn,function(t){i.on(i.$(t.selector),"change",i.updateDisplay)}),i.options_.persistTextTrackSettings&&i.restoreSettings(),i}return _(n,r),n.prototype.dispose=function(){this.endDialog=null,r.prototype.dispose.call(this)},n.prototype.createElSelect_=function(t){var i=this,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"",r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"label",n=Qn[t],s=n.id.replace("%s",this.id_),a=[e,s].join(" ").trim();return["<"+r+' id="'+s+'" class="'+("label"===r?"vjs-label":"")+'">',this.localize(n.label),"</"+r+">",'<select aria-labelledby="'+a+'">'].concat(n.options.map(function(t){var e=s+"-"+t[1].replace(/\W+/g,"");return['<option id="'+e+'" value="'+t[0]+'" ','aria-labelledby="'+a+" "+e+'">',i.localize(t[1]),"</option>"].join("")})).concat("</select>").join("")},n.prototype.createElFgColor_=function(){var t="captions-text-legend-"+this.id_;return['<fieldset class="vjs-fg-color vjs-track-setting">','<legend id="'+t+'">',this.localize("Text"),"</legend>",this.createElSelect_("color",t),'<span class="vjs-text-opacity vjs-opacity">',this.createElSelect_("textOpacity",t),"</span>","</fieldset>"].join("")},n.prototype.createElBgColor_=function(){var t="captions-background-"+this.id_;return['<fieldset class="vjs-bg-color vjs-track-setting">','<legend id="'+t+'">',this.localize("Background"),"</legend>",this.createElSelect_("backgroundColor",t),'<span class="vjs-bg-opacity vjs-opacity">',this.createElSelect_("backgroundOpacity",t),"</span>","</fieldset>"].join("")},n.prototype.createElWinColor_=function(){var t="captions-window-"+this.id_;return['<fieldset class="vjs-window-color vjs-track-setting">','<legend id="'+t+'">',this.localize("Window"),"</legend>",this.createElSelect_("windowColor",t),'<span class="vjs-window-opacity vjs-opacity">',this.createElSelect_("windowOpacity",t),"</span>","</fieldset>"].join("")},n.prototype.createElColors_=function(){return M("div",{className:"vjs-track-settings-colors",innerHTML:[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()].join("")})},n.prototype.createElFont_=function(){return M("div",{className:"vjs-track-settings-font",innerHTML:['<fieldset class="vjs-font-percent vjs-track-setting">',this.createElSelect_("fontPercent","","legend"),"</fieldset>",'<fieldset class="vjs-edge-style vjs-track-setting">',this.createElSelect_("edgeStyle","","legend"),"</fieldset>",'<fieldset class="vjs-font-family vjs-track-setting">',this.createElSelect_("fontFamily","","legend"),"</fieldset>"].join("")})},n.prototype.createElControls_=function(){var t=this.localize("restore all settings to the default values");return M("div",{className:"vjs-track-settings-controls",innerHTML:['<button class="vjs-default-button" title="'+t+'">',this.localize("Reset"),'<span class="vjs-control-text"> '+t+"</span>","</button>",'<button class="vjs-done-button">'+this.localize("Done")+"</button>"].join("")})},n.prototype.content=function(){return[this.createElColors_(),this.createElFont_(),this.createElControls_()]},n.prototype.label=function(){return this.localize("Caption Settings Dialog")},n.prototype.description=function(){return this.localize("Beginning of dialog window. Escape will cancel and close the window.")},n.prototype.buildCSSClass=function(){return r.prototype.buildCSSClass.call(this)+" vjs-text-track-settings"},n.prototype.getValues=function(){var a=this;return function(i,r){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;return S(i).reduce(function(t,e){return r(t,i[e],e)},t)}(Qn,function(t,e,i){var r,n,s=(r=a.$(e.selector),n=e.parser,Jn(r.options[r.options.selectedIndex].value,n));return void 0!==s&&(t[i]=s),t},{})},n.prototype.setValues=function(i){var r=this;k(Qn,function(t,e){!function(t,e,i){if(e)for(var r=0;r<t.options.length;r++)if(Jn(t.options[r].value,i)===e){t.selectedIndex=r;break}}(r.$(t.selector),i[e],t.parser)})},n.prototype.setDefaults=function(){var i=this;k(Qn,function(t){var e=t.hasOwnProperty("default")?t.default:0;i.$(t.selector).selectedIndex=e})},n.prototype.restoreSettings=function(){var t=void 0;try{t=JSON.parse(g.localStorage.getItem(jn))}catch(t){f.warn(t)}t&&this.setValues(t)},n.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var t=this.getValues();try{Object.keys(t).length?g.localStorage.setItem(jn,JSON.stringify(t)):g.localStorage.removeItem(jn)}catch(t){f.warn(t)}}},n.prototype.updateDisplay=function(){var t=this.player_.getChild("textTrackDisplay");t&&t.updateDisplay()},n.prototype.conditionalBlur_=function(){this.previouslyActiveEl_=null,this.off(p,"keydown",this.handleKeyDown);var t=this.player_.controlBar,e=t&&t.subsCapsButton,i=t&&t.captionsButton;e?e.focus():i&&i.focus()},n}(Ne);Xt.registerComponent("TextTrackSettings",Zn);var ts=function(s){function a(t,e){y(this,a);var i=e.ResizeObserver||g.ResizeObserver;null===e.ResizeObserver&&(i=!1);var r=Gt({createEl:!i},e),n=b(this,s.call(this,t,r));return n.ResizeObserver=e.ResizeObserver||g.ResizeObserver,n.loadListener_=null,n.resizeObserver_=null,n.debouncedHandler_=It(function(){n.resizeHandler()},100,!1,t),i?(n.resizeObserver_=new n.ResizeObserver(n.debouncedHandler_),n.resizeObserver_.observe(t.el())):(n.loadListener_=function(){n.el_.contentWindow&&_t(n.el_.contentWindow,"resize",n.debouncedHandler_),n.off("load",n.loadListener_)},n.on("load",n.loadListener_)),n}return _(a,s),a.prototype.createEl=function(){return s.prototype.createEl.call(this,"iframe",{className:"vjs-resize-manager"})},a.prototype.resizeHandler=function(){this.player_.trigger("playerresize")},a.prototype.dispose=function(){this.resizeObserver_&&(this.resizeObserver_.unobserve(this.player_.el()),this.resizeObserver_.disconnect()),this.el_&&this.el_.contentWindow&&bt(this.el_.contentWindow,"resize",this.debouncedHandler_),this.loadListener_&&this.off("load",this.loadListener_),this.ResizeObserver=null,this.resizeObserver=null,this.debouncedHandler_=null,this.loadListener_=null},a}(Xt);Xt.registerComponent("ResizeManager",ts);var es=function(t){var e=t.el();if(e.hasAttribute("src"))return t.triggerSourceset(e.src),!0;var i=t.$$("source"),r=[],n="";if(!i.length)return!1;for(var s=0;s<i.length;s++){var a=i[s].src;a&&-1===r.indexOf(a)&&r.push(a)}return!!r.length&&(1===r.length&&(n=r[0]),t.triggerSourceset(n),!0)},is=Object.defineProperty({},"innerHTML",{get:function(){return this.cloneNode(!0).innerHTML},set:function(t){var e=p.createElement(this.nodeName.toLowerCase());e.innerHTML=t;for(var i=p.createDocumentFragment();e.childNodes.length;)i.appendChild(e.childNodes[0]);return this.innerText="",g.Element.prototype.appendChild.call(this,i),this.innerHTML}}),rs=function(t,e){for(var i={},r=0;r<t.length&&!((i=Object.getOwnPropertyDescriptor(t[r],e))&&i.set&&i.get);r++);return i.enumerable=!0,i.configurable=!0,i},ns=function(s){var a=s.el();if(!a.resetSourceWatch_){var e={},t=rs([s.el(),g.HTMLMediaElement.prototype,g.Element.prototype,is],"innerHTML"),i=function(n){return function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];var r=n.apply(a,e);return es(s),r}};["append","appendChild","insertAdjacentHTML"].forEach(function(t){a[t]&&(e[t]=a[t],a[t]=i(e[t]))}),Object.defineProperty(a,"innerHTML",Gt(t,{set:i(t.set)})),a.resetSourceWatch_=function(){a.resetSourceWatch_=null,Object.keys(e).forEach(function(t){a[t]=e[t]}),Object.defineProperty(a,"innerHTML",t)},s.one("sourceset",a.resetSourceWatch_)}},ss=Object.defineProperty({},"src",{get:function(){return this.hasAttribute("src")?Ze(g.Element.prototype.getAttribute.call(this,"src")):""},set:function(t){return g.Element.prototype.setAttribute.call(this,"src",t),t}}),as=function(r){if(r.featuresSourceset){var n=r.el();if(!n.resetSourceset_){var i=rs([r.el(),g.HTMLMediaElement.prototype,ss],"src"),s=n.setAttribute,e=n.load;Object.defineProperty(n,"src",Gt(i,{set:function(t){var e=i.set.call(n,t);return r.triggerSourceset(n.src),e}})),n.setAttribute=function(t,e){var i=s.call(n,t,e);return/src/i.test(t)&&r.triggerSourceset(n.src),i},n.load=function(){var t=e.call(n);return es(r)||(r.triggerSourceset(""),ns(r)),t},n.currentSrc?r.triggerSourceset(n.currentSrc):es(r)||ns(r),n.resetSourceset_=function(){n.resetSourceset_=null,n.load=e,n.setAttribute=s,Object.defineProperty(n,"src",i),n.resetSourceWatch_&&n.resetSourceWatch_()}}}},os=h(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."],["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."]),us=function(c){function h(t,e){y(this,h);var i=b(this,c.call(this,t,e)),r=t.source,n=!1;if(r&&(i.el_.currentSrc!==r.src||t.tag&&3===t.tag.initNetworkState_)?i.setSource(r):i.handleLateInit_(i.el_),t.enableSourceset&&i.setupSourcesetHandling_(),i.el_.hasChildNodes()){for(var s=i.el_.childNodes,a=s.length,o=[];a--;){var u=s[a];"track"===u.nodeName.toLowerCase()&&(i.featuresNativeTextTracks?(i.remoteTextTrackEls().addTrackElement_(u),i.remoteTextTracks().addTrack(u.track),i.textTracks().addTrack(u.track),n||i.el_.hasAttribute("crossorigin")||!ei(u.src)||(n=!0)):o.push(u))}for(var l=0;l<o.length;l++)i.el_.removeChild(o[l])}return i.proxyNativeTracks_(),i.featuresNativeTextTracks&&n&&f.warn(m(os)),i.restoreMetadataTracksInIOSNativePlayer_(),(ge||ie||ue)&&!0===t.nativeControlsForTouch&&i.setControls(!0),i.proxyWebkitFullscreen_(),i.triggerReady(),i}return _(h,c),h.prototype.dispose=function(){this.el_.resetSourceset_&&this.el_.resetSourceset_(),h.disposeMediaElement(this.el_),this.options_=null,c.prototype.dispose.call(this)},h.prototype.setupSourcesetHandling_=function(){as(this)},h.prototype.restoreMetadataTracksInIOSNativePlayer_=function(){var r=this.textTracks(),n=void 0,t=function(){n=[];for(var t=0;t<r.length;t++){var e=r[t];"metadata"===e.kind&&n.push({track:e,storedMode:e.mode})}};t(),r.addEventListener("change",t),this.on("dispose",function(){return r.removeEventListener("change",t)});var e=function t(){for(var e=0;e<n.length;e++){var i=n[e];"disabled"===i.track.mode&&i.track.mode!==i.storedMode&&(i.track.mode=i.storedMode)}r.removeEventListener("change",t)};this.on("webkitbeginfullscreen",function(){r.removeEventListener("change",t),r.removeEventListener("change",e),r.addEventListener("change",e)}),this.on("webkitendfullscreen",function(){r.removeEventListener("change",t),r.addEventListener("change",t),r.removeEventListener("change",e)})},h.prototype.overrideNative_=function(t,e){var i=this;if(e===this["featuresNative"+t+"Tracks"]){var r=t.toLowerCase();this[r+"TracksListeners_"]&&Object.keys(this[r+"TracksListeners_"]).forEach(function(t){i.el()[r+"Tracks"].removeEventListener(t,i[r+"TracksListeners_"][t])}),this["featuresNative"+t+"Tracks"]=!e,this[r+"TracksListeners_"]=null,this.proxyNativeTracksForType_(r)}},h.prototype.overrideNativeAudioTracks=function(t){this.overrideNative_("Audio",t)},h.prototype.overrideNativeVideoTracks=function(t){this.overrideNative_("Video",t)},h.prototype.proxyNativeTracksForType_=function(t){var r=this,e=Ui[t],n=this.el()[e.getterName],s=this[e.getterName]();if(this["featuresNative"+e.capitalName+"Tracks"]&&n&&n.addEventListener){var a={change:function(t){s.trigger({type:"change",target:s,currentTarget:s,srcElement:s})},addtrack:function(t){s.addTrack(t.track)},removetrack:function(t){s.removeTrack(t.track)}},i=function(){for(var t=[],e=0;e<s.length;e++){for(var i=!1,r=0;r<n.length;r++)if(n[r]===s[e]){i=!0;break}i||t.push(s[e])}for(;t.length;)s.removeTrack(t.shift())};this[e.getterName+"Listeners_"]=a,Object.keys(a).forEach(function(e){var i=a[e];n.addEventListener(e,i),r.on("dispose",function(t){return n.removeEventListener(e,i)})}),this.on("loadstart",i),this.on("dispose",function(t){return r.off("loadstart",i)})}},h.prototype.proxyNativeTracks_=function(){var e=this;Ui.names.forEach(function(t){e.proxyNativeTracksForType_(t)})},h.prototype.createEl=function(){var t=this.options_.tag;if(!t||!this.options_.playerElIngest&&!this.movingMediaElementInDOM){if(t){var e=t.cloneNode(!0);t.parentNode&&t.parentNode.insertBefore(e,t),h.disposeMediaElement(t),t=e}else{t=p.createElement("video");var i=Gt({},this.options_.tag&&q(this.options_.tag));ge&&!0===this.options_.nativeControlsForTouch||delete i.controls,V(t,C(i,{id:this.options_.techId,class:"vjs-tech"}))}t.playerId=this.options_.playerId}"undefined"!=typeof this.options_.preload&&z(t,"preload",this.options_.preload);for(var r=["loop","muted","playsinline","autoplay"],n=0;n<r.length;n++){var s=r[n],a=this.options_[s];"undefined"!=typeof a&&(a?z(t,s,s):G(t,s),t[s]=a)}return t},h.prototype.handleLateInit_=function(t){if(0!==t.networkState&&3!==t.networkState){if(0===t.readyState){var e=!1,i=function(){e=!0};this.on("loadstart",i);var r=function(){e||this.trigger("loadstart")};return this.on("loadedmetadata",r),void this.ready(function(){this.off("loadstart",i),this.off("loadedmetadata",r),e||this.trigger("loadstart")})}var n=["loadstart"];n.push("loadedmetadata"),2<=t.readyState&&n.push("loadeddata"),3<=t.readyState&&n.push("canplay"),4<=t.readyState&&n.push("canplaythrough"),this.ready(function(){n.forEach(function(t){this.trigger(t)},this)})}},h.prototype.setCurrentTime=function(t){try{this.el_.currentTime=t}catch(t){f(t,"Video is not ready. (Video.js)")}},h.prototype.duration=function(){var e=this;if(this.el_.duration===1/0&&ae&&he&&0===this.el_.currentTime){return this.on("timeupdate",function t(){0<e.el_.currentTime&&(e.el_.duration===1/0&&e.trigger("durationchange"),e.off("timeupdate",t))}),NaN}return this.el_.duration||NaN},h.prototype.width=function(){return this.el_.offsetWidth},h.prototype.height=function(){return this.el_.offsetHeight},h.prototype.proxyWebkitFullscreen_=function(){var t=this;if("webkitDisplayingFullscreen"in this.el_){var e=function(){this.trigger("fullscreenchange",{isFullscreen:!1})},i=function(){"webkitPresentationMode"in this.el_&&"picture-in-picture"!==this.el_.webkitPresentationMode&&(this.one("webkitendfullscreen",e),this.trigger("fullscreenchange",{isFullscreen:!0}))};this.on("webkitbeginfullscreen",i),this.on("dispose",function(){t.off("webkitbeginfullscreen",i),t.off("webkitendfullscreen",e)})}},h.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var t=g.navigator&&g.navigator.userAgent||"";if(/Android/.test(t)||!/Chrome|Mac OS X 10.5/.test(t))return!0}return!1},h.prototype.enterFullScreen=function(){var t=this.el_;t.paused&&t.networkState<=t.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){t.pause(),t.webkitEnterFullScreen()},0)):t.webkitEnterFullScreen()},h.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},h.prototype.src=function(t){if(void 0===t)return this.el_.src;this.setSrc(t)},h.prototype.reset=function(){h.resetMediaElement(this.el_)},h.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},h.prototype.setControls=function(t){this.el_.controls=!!t},h.prototype.addTextTrack=function(t,e,i){return this.featuresNativeTextTracks?this.el_.addTextTrack(t,e,i):c.prototype.addTextTrack.call(this,t,e,i)},h.prototype.createRemoteTextTrack=function(t){if(!this.featuresNativeTextTracks)return c.prototype.createRemoteTextTrack.call(this,t);var e=p.createElement("track");return t.kind&&(e.kind=t.kind),t.label&&(e.label=t.label),(t.language||t.srclang)&&(e.srclang=t.language||t.srclang),t.default&&(e.default=t.default),t.id&&(e.id=t.id),t.src&&(e.src=t.src),e},h.prototype.addRemoteTextTrack=function(t,e){var i=c.prototype.addRemoteTextTrack.call(this,t,e);return this.featuresNativeTextTracks&&this.el().appendChild(i),i},h.prototype.removeRemoteTextTrack=function(t){if(c.prototype.removeRemoteTextTrack.call(this,t),this.featuresNativeTextTracks)for(var e=this.$$("track"),i=e.length;i--;)t!==e[i]&&t!==e[i].track||this.el().removeChild(e[i])},h.prototype.getVideoPlaybackQuality=function(){if("function"==typeof this.el().getVideoPlaybackQuality)return this.el().getVideoPlaybackQuality();var t={};return"undefined"!=typeof this.el().webkitDroppedFrameCount&&"undefined"!=typeof this.el().webkitDecodedFrameCount&&(t.droppedVideoFrames=this.el().webkitDroppedFrameCount,t.totalVideoFrames=this.el().webkitDecodedFrameCount),g.performance&&"function"==typeof g.performance.now?t.creationTime=g.performance.now():g.performance&&g.performance.timing&&"number"==typeof g.performance.timing.navigationStart&&(t.creationTime=g.Date.now()-g.performance.timing.navigationStart),t},h}(br);if(x()){us.TEST_VID=p.createElement("video");var ls=p.createElement("track");ls.kind="captions",ls.srclang="en",ls.label="English",us.TEST_VID.appendChild(ls)}us.isSupported=function(){try{us.TEST_VID.volume=.5}catch(t){return!1}return!(!us.TEST_VID||!us.TEST_VID.canPlayType)},us.canPlayType=function(t){return us.TEST_VID.canPlayType(t)},us.canPlaySource=function(t,e){return us.canPlayType(t.type)},us.canControlVolume=function(){try{var t=us.TEST_VID.volume;return us.TEST_VID.volume=t/2+.1,t!==us.TEST_VID.volume}catch(t){return!1}},us.canControlPlaybackRate=function(){if(ae&&he&&de<58)return!1;try{var t=us.TEST_VID.playbackRate;return us.TEST_VID.playbackRate=t/2+.1,t!==us.TEST_VID.playbackRate}catch(t){return!1}},us.canOverrideAttributes=function(){try{var t=function(){};Object.defineProperty(p.createElement("video"),"src",{get:t,set:t}),Object.defineProperty(p.createElement("audio"),"src",{get:t,set:t}),Object.defineProperty(p.createElement("video"),"innerHTML",{get:t,set:t}),Object.defineProperty(p.createElement("audio"),"innerHTML",{get:t,set:t})}catch(t){return!1}return!0},us.supportsNativeTextTracks=function(){return me},us.supportsNativeVideoTracks=function(){return!(!us.TEST_VID||!us.TEST_VID.videoTracks)},us.supportsNativeAudioTracks=function(){return!(!us.TEST_VID||!us.TEST_VID.audioTracks)},us.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","resize","volumechange"],us.prototype.featuresVolumeControl=us.canControlVolume(),us.prototype.featuresPlaybackRate=us.canControlPlaybackRate(),us.prototype.featuresSourceset=us.canOverrideAttributes(),us.prototype.movingMediaElementInDOM=!ne,us.prototype.featuresFullscreenResize=!0,us.prototype.featuresProgressEvents=!0,us.prototype.featuresTimeupdateEvents=!0,us.prototype.featuresNativeTextTracks=us.supportsNativeTextTracks(),us.prototype.featuresNativeVideoTracks=us.supportsNativeVideoTracks(),us.prototype.featuresNativeAudioTracks=us.supportsNativeAudioTracks();var cs=us.TEST_VID&&us.TEST_VID.constructor.prototype.canPlayType,hs=/^application\/(?:x-|vnd\.apple\.)mpegurl/i;us.patchCanPlayType=function(){4<=oe&&!le&&!he&&(us.TEST_VID.constructor.prototype.canPlayType=function(t){return t&&hs.test(t)?"maybe":cs.call(this,t)})},us.unpatchCanPlayType=function(){var t=us.TEST_VID.constructor.prototype.canPlayType;return us.TEST_VID.constructor.prototype.canPlayType=cs,t},us.patchCanPlayType(),us.disposeMediaElement=function(t){if(t){for(t.parentNode&&t.parentNode.removeChild(t);t.hasChildNodes();)t.removeChild(t.firstChild);t.removeAttribute("src"),"function"==typeof t.load&&function(){try{t.load()}catch(t){}}()}},us.resetMediaElement=function(t){if(t){for(var e=t.querySelectorAll("source"),i=e.length;i--;)t.removeChild(e[i]);t.removeAttribute("src"),"function"==typeof t.load&&function(){try{t.load()}catch(t){}}()}},["muted","defaultMuted","autoplay","controls","loop","playsinline"].forEach(function(t){us.prototype[t]=function(){return this.el_[t]||this.el_.hasAttribute(t)}}),["muted","defaultMuted","autoplay","loop","playsinline"].forEach(function(e){us.prototype["set"+zt(e)]=function(t){(this.el_[e]=t)?this.el_.setAttribute(e,e):this.el_.removeAttribute(e)}}),["paused","currentTime","buffered","volume","poster","preload","error","seeking","seekable","ended","playbackRate","defaultPlaybackRate","played","networkState","readyState","videoWidth","videoHeight"].forEach(function(t){us.prototype[t]=function(){return this.el_[t]}}),["volume","src","poster","preload","playbackRate","defaultPlaybackRate"].forEach(function(e){us.prototype["set"+zt(e)]=function(t){this.el_[e]=t}}),["pause","load","play"].forEach(function(t){us.prototype[t]=function(){return this.el_[t]()}}),br.withSourceHandlers(us),us.nativeSourceHandler={},us.nativeSourceHandler.canPlayType=function(t){try{return us.TEST_VID.canPlayType(t)}catch(t){return""}},us.nativeSourceHandler.canHandleSource=function(t,e){if(t.type)return us.nativeSourceHandler.canPlayType(t.type);if(t.src){var i=ti(t.src);return us.nativeSourceHandler.canPlayType("video/"+i)}return""},us.nativeSourceHandler.handleSource=function(t,e,i){e.setSrc(t.src)},us.nativeSourceHandler.dispose=function(){},us.registerSourceHandler(us.nativeSourceHandler),br.registerTech("Html5",us);var ds=h(["\n        Using the tech directly can be dangerous. I hope you know what you're doing.\n        See https://github.com/videojs/video.js/issues/2617 for more info.\n      "],["\n        Using the tech directly can be dangerous. I hope you know what you're doing.\n        See https://github.com/videojs/video.js/issues/2617 for more info.\n      "]),ps=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","resize","volumechange","texttrackchange"],fs={canplay:"CanPlay",canplaythrough:"CanPlayThrough",playing:"Playing",seeked:"Seeked"},ms=function(c){function h(t,e,i){if(y(this,h),t.id=t.id||e.id||"vjs_video_"+ut(),(e=C(h.getTagSettings(t),e)).initChildren=!1,e.createEl=!1,e.evented=!1,e.reportTouchActivity=!1,!e.language)if("function"==typeof t.closest){var r=t.closest("[lang]");r&&r.getAttribute&&(e.language=r.getAttribute("lang"))}else for(var n=t;n&&1===n.nodeType;){if(q(n).hasOwnProperty("lang")){e.language=n.getAttribute("lang");break}n=n.parentNode}var s=b(this,c.call(this,null,e,i));if(s.isPosterFromTech_=!1,s.queuedCallbacks_=[],s.isReady_=!1,s.hasStarted_=!1,s.userActive_=!1,!s.options_||!s.options_.techOrder||!s.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(s.tag=t,s.tagAttributes=t&&q(t),s.language(s.options_.language),e.languages){var a={};Object.getOwnPropertyNames(e.languages).forEach(function(t){a[t.toLowerCase()]=e.languages[t]}),s.languages_=a}else s.languages_=h.prototype.options_.languages;s.cache_={},s.poster_=e.poster||"",s.controls_=!!e.controls,s.cache_.lastVolume=1,t.controls=!1,t.removeAttribute("controls"),s.scrubbing_=!1,s.el_=s.createEl(),s.cache_.lastPlaybackRate=s.defaultPlaybackRate(),Vt(s,{eventBusKey:"el_"});var o=Gt(s.options_);if(e.plugins){var u=e.plugins;Object.keys(u).forEach(function(t){if("function"!=typeof this[t])throw new Error('plugin "'+t+'" does not exist');this[t](u[t])},s)}s.options_.playerOptions=o,s.middleware_=[],s.initChildren(),s.isAudio("audio"===t.nodeName.toLowerCase()),s.controls()?s.addClass("vjs-controls-enabled"):s.addClass("vjs-controls-disabled"),s.el_.setAttribute("role","region"),s.isAudio()?s.el_.setAttribute("aria-label",s.localize("Audio Player")):s.el_.setAttribute("aria-label",s.localize("Video Player")),s.isAudio()&&s.addClass("vjs-audio"),s.flexNotSupported_()&&s.addClass("vjs-no-flex"),ne||s.addClass("vjs-workinghover"),h.players[s.id_]=s;var l=d.split(".")[0];return s.addClass("vjs-v"+l),s.userActive(!0),s.reportUserActivity(),s.one("play",s.listenForUserActivity_),s.on("fullscreenchange",s.handleFullscreenChange_),s.on("stageclick",s.handleStageClick_),s.changingSrc_=!1,s.playWaitingForReady_=!1,s.playOnLoadstart_=null,s}return _(h,c),h.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode&&(this.styleEl_.parentNode.removeChild(this.styleEl_),this.styleEl_=null),h.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&(this.tech_.dispose(),this.isPosterFromTech_=!1,this.poster_=""),this.playerElIngest_&&(this.playerElIngest_=null),this.tag&&(this.tag=null),Sr[this.id()]=null,c.prototype.dispose.call(this)},h.prototype.createEl=function(){var e=this.tag,i=void 0,t=this.playerElIngest_=e.parentNode&&e.parentNode.hasAttribute&&e.parentNode.hasAttribute("data-vjs-player"),r="video-js"===this.tag.tagName.toLowerCase();t?i=this.el_=e.parentNode:r||(i=this.el_=c.prototype.createEl.call(this,"div"));var n=q(e);if(r){for(i=this.el_=e,e=this.tag=p.createElement("video");i.children.length;)e.appendChild(i.firstChild);B(i,"video-js")||j(i,"video-js"),i.appendChild(e),t=this.playerElIngest_=i,Object.keys(i).forEach(function(t){e[t]=i[t]})}if(e.setAttribute("tabindex","-1"),e.removeAttribute("width"),e.removeAttribute("height"),Object.getOwnPropertyNames(n).forEach(function(t){i.setAttribute(t,n[t]),r&&e.setAttribute(t,n[t])}),e.playerId=e.id,e.id+="_html5_api",e.className="vjs-tech",e.player=i.player=this,this.addClass("vjs-paused"),!0!==g.VIDEOJS_NO_DYNAMIC_STYLE){this.styleEl_=Lt("vjs-styles-dimensions");var s=nt(".vjs-styles-defaults"),a=nt("head");a.insertBefore(this.styleEl_,s?s.nextSibling:a.firstChild)}this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio);for(var o=e.getElementsByTagName("a"),u=0;u<o.length;u++){var l=o.item(u);j(l,"vjs-hidden"),l.setAttribute("hidden","hidden")}return e.initNetworkState_=e.networkState,e.parentNode&&!t&&e.parentNode.insertBefore(i,e),N(e,i),this.children_.unshift(e),this.el_.setAttribute("lang",this.language_),this.el_=i},h.prototype.width=function(t){return this.dimension("width",t)},h.prototype.height=function(t){return this.dimension("height",t)},h.prototype.dimension=function(t,e){var i=t+"_";if(void 0===e)return this[i]||0;if(""===e)return this[i]=void 0,void this.updateStyleEl_();var r=parseFloat(e);isNaN(r)?f.error('Improper value "'+e+'" supplied for for '+t):(this[i]=r,this.updateStyleEl_())},h.prototype.fluid=function(t){if(void 0===t)return!!this.fluid_;this.fluid_=!!t,t?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid"),this.updateStyleEl_()},h.prototype.aspectRatio=function(t){if(void 0===t)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(t))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=t,this.fluid(!0),this.updateStyleEl_()},h.prototype.updateStyleEl_=function(){if(!0!==g.VIDEOJS_NO_DYNAMIC_STYLE){var t=void 0,e=void 0,i=void 0,r=(void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:0<this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9").split(":"),n=r[1]/r[0];t=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/n:this.videoWidth()||300,e=void 0!==this.height_?this.height_:t*n,i=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(i),Pt(this.styleEl_,"\n      ."+i+" {\n        width: "+t+"px;\n        height: "+e+"px;\n      }\n\n      ."+i+".vjs-fluid {\n        padding-top: "+100*n+"%;\n      }\n    ")}else{var s="number"==typeof this.width_?this.width_:this.options_.width,a="number"==typeof this.height_?this.height_:this.options_.height,o=this.tech_&&this.tech_.el();o&&(0<=s&&(o.width=s),0<=a&&(o.height=a))}},h.prototype.loadTech_=function(t,e){var i=this;this.tech_&&this.unloadTech_();var r=zt(t),n=t.charAt(0).toLowerCase()+t.slice(1);"Html5"!==r&&this.tag&&(br.getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=r,this.isReady_=!1;var s={source:e,nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+"_"+r+"_api",autoplay:this.options_.autoplay,playsinline:this.options_.playsinline,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"],canOverridePoster:!!this.options_.techCanOverridePoster,enableSourceset:this.options_.enableSourceset};Bi.names.forEach(function(t){var e=Bi[t];s[e.getterName]=i[e.privateName]}),C(s,this.options_[r]),C(s,this.options_[n]),C(s,this.options_[t.toLowerCase()]),this.tag&&(s.tag=this.tag),e&&e.src===this.cache_.src&&0<this.cache_.currentTime&&(s.startTime=this.cache_.currentTime);var a=br.getTech(t);if(!a)throw new Error("No Tech named '"+r+"' exists! '"+r+"' should be registered using videojs.registerTech()'");this.tech_=new a(s),this.tech_.ready(Ot(this,this.handleTechReady_),!0),Me(this.textTracksJson_||[],this.tech_),ps.forEach(function(t){i.on(i.tech_,t,i["handleTech"+zt(t)+"_"])}),Object.keys(fs).forEach(function(e){i.on(i.tech_,e,function(t){0===i.tech_.playbackRate()&&i.tech_.seeking()?i.queuedCallbacks_.push({callback:i["handleTech"+fs[e]+"_"].bind(i),event:t}):i["handleTech"+fs[e]+"_"](t)})}),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"sourceset",this.handleTechSourceset_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.on(this.tech_,"textdata",this.handleTechTextData_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===r&&this.tag||N(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},h.prototype.unloadTech_=function(){var i=this;Bi.names.forEach(function(t){var e=Bi[t];i[e.privateName]=i[e.getterName]()}),this.textTracksJson_=Re(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1,this.isPosterFromTech_&&(this.poster_="",this.trigger("posterchange")),this.isPosterFromTech_=!1},h.prototype.tech=function(t){return void 0===t&&f.warn(m(ds)),this.tech_},h.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},h.prototype.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mousedown",this.handleTechClick_)},h.prototype.handleTechReady_=function(){if(this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),(this.src()||this.currentSrc())&&this.tag&&this.options_.autoplay&&this.paused())try{delete this.tag.poster}catch(t){f("deleting tag.poster throws in some browsers",t)}},h.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-seeking"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},h.prototype.updateSourceCaches_=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=t,i="";"string"!=typeof e&&(e=t.src,i=t.type),this.cache_.source=this.cache_.source||{},this.cache_.sources=this.cache_.sources||[],e&&!i&&(i=function(t,e){if(!e)return"";if(t.cache_.source.src===e&&t.cache_.source.type)return t.cache_.source.type;var i=t.cache_.sources.filter(function(t){return t.src===e});if(i.length)return i[0].type;for(var r=t.$$("source"),n=0;n<r.length;n++){var s=r[n];if(s.type&&s.src&&s.src===e)return s.type}return xr(e)}(this,e)),this.cache_.source={src:e,type:i};for(var r=this.cache_.sources.filter(function(t){return t.src&&t.src===e}),n=[],s=this.$$("source"),a=[],o=0;o<s.length;o++){var u=q(s[o]);n.push(u),u.src&&u.src===e&&a.push(u.src)}a.length&&!r.length?this.cache_.sources=n:r.length||(this.cache_.sources=[this.cache_.source]),this.cache_.src=e},h.prototype.handleTechSourceset_=function(t){var i=this;if(!this.changingSrc_&&(this.updateSourceCaches_(t.src),!t.src)){this.tech_.one(["sourceset","loadstart"],function t(e){"sourceset"!==e.type&&i.updateSourceCaches_(i.techGet_("currentSrc")),i.tech_.off(["sourceset","loadstart"],t)})}this.trigger({src:t.src,type:"sourceset"})},h.prototype.hasStarted=function(t){if(void 0===t)return this.hasStarted_;t!==this.hasStarted_&&(this.hasStarted_=t,this.hasStarted_?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started"))},h.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},h.prototype.handleTechRateChange_=function(){0<this.tech_.playbackRate()&&0===this.cache_.lastPlaybackRate&&(this.queuedCallbacks_.forEach(function(t){return t.callback(t.event)}),this.queuedCallbacks_=[]),this.cache_.lastPlaybackRate=this.tech_.playbackRate(),this.trigger("ratechange")},h.prototype.handleTechWaiting_=function(){var t=this;this.addClass("vjs-waiting"),this.trigger("waiting"),this.one("timeupdate",function(){return t.removeClass("vjs-waiting")})},h.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},h.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},h.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},h.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},h.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},h.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&(f.warn("Passing the `starttime` option to the player will be deprecated in 6.0"),this.currentTime(this.options_.starttime)),this.addClass("vjs-has-started"),this.trigger("firstplay")},h.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},h.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},h.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},h.prototype.handleTechClick_=function(t){rt(t)&&this.controls_&&(this.paused()?this.play():this.pause())},h.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},h.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},h.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},h.prototype.handleTechTouchEnd_=function(t){t.preventDefault()},h.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},h.prototype.handleStageClick_=function(){this.reportUserActivity()},h.prototype.handleTechFullscreenChange_=function(t,e){e&&this.isFullscreen(e.isFullscreen),this.trigger("fullscreenchange")},h.prototype.handleTechError_=function(){var t=this.tech_.error();this.error(t)},h.prototype.handleTechTextData_=function(){var t=null;1<arguments.length&&(t=arguments[1]),this.trigger("textdata",t)},h.prototype.getCache=function(){return this.cache_},h.prototype.techCall_=function(n,s){this.ready(function(){if(n in Ar)return t=this.middleware_,e=this.tech_,r=s,e[i=n](t.reduce(Pr(i),r));if(n in Lr)return Er(this.middleware_,this.tech_,n,s);var t,e,i,r;try{this.tech_&&this.tech_[n](s)}catch(t){throw f(t),t}},!0)},h.prototype.techGet_=function(e){if(this.tech_&&this.tech_.isReady_){if(e in wr)return t=this.middleware_,i=this.tech_,r=e,t.reduceRight(Pr(r),i[r]());if(e in Lr)return Er(this.middleware_,this.tech_,e);var t,i,r;try{return this.tech_[e]()}catch(t){if(void 0===this.tech_[e])throw f("Video.js: "+e+" method not defined for "+this.techName_+" playback technology.",t),t;if("TypeError"===t.name)throw f("Video.js: "+e+" unavailable on "+this.techName_+" playback technology element.",t),this.tech_.isReady_=!1,t;throw f(t),t}}},h.prototype.play=function(){var t=this;if(this.playOnLoadstart_&&this.off("loadstart",this.playOnLoadstart_),this.isReady_){if(!this.changingSrc_&&(this.src()||this.currentSrc()))return this.techGet_("play");this.playOnLoadstart_=function(){t.playOnLoadstart_=null,Ie(t.play())},this.one("loadstart",this.playOnLoadstart_)}else{if(this.playWaitingForReady_)return;this.playWaitingForReady_=!0,this.ready(function(){t.playWaitingForReady_=!1,Ie(t.play())})}},h.prototype.pause=function(){this.techCall_("pause")},h.prototype.paused=function(){return!1!==this.techGet_("paused")},h.prototype.played=function(){return this.techGet_("played")||be(0,0)},h.prototype.scrubbing=function(t){if("undefined"==typeof t)return this.scrubbing_;this.scrubbing_=!!t,t?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing")},h.prototype.currentTime=function(t){return"undefined"!=typeof t?(t<0&&(t=0),void this.techCall_("setCurrentTime",t)):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)},h.prototype.duration=function(t){if(void 0===t)return void 0!==this.cache_.duration?this.cache_.duration:NaN;(t=parseFloat(t))<0&&(t=1/0),t!==this.cache_.duration&&((this.cache_.duration=t)===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange"))},h.prototype.remainingTime=function(){return this.duration()-this.currentTime()},h.prototype.remainingTimeDisplay=function(){return Math.floor(this.duration())-Math.floor(this.currentTime())},h.prototype.buffered=function(){var t=this.techGet_("buffered");return t&&t.length||(t=be(0,0)),t},h.prototype.bufferedPercent=function(){return Te(this.buffered(),this.duration())},h.prototype.bufferedEnd=function(){var t=this.buffered(),e=this.duration(),i=t.end(t.length-1);return e<i&&(i=e),i},h.prototype.volume=function(t){var e=void 0;return void 0!==t?(e=Math.max(0,Math.min(1,parseFloat(t))),this.cache_.volume=e,this.techCall_("setVolume",e),void(0<e&&this.lastVolume_(e))):(e=parseFloat(this.techGet_("volume")),isNaN(e)?1:e)},h.prototype.muted=function(t){if(void 0===t)return this.techGet_("muted")||!1;this.techCall_("setMuted",t)},h.prototype.defaultMuted=function(t){return void 0!==t?this.techCall_("setDefaultMuted",t):this.techGet_("defaultMuted")||!1},h.prototype.lastVolume_=function(t){if(void 0===t||0===t)return this.cache_.lastVolume;this.cache_.lastVolume=t},h.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},h.prototype.isFullscreen=function(t){if(void 0===t)return!!this.isFullscreen_;this.isFullscreen_=!!t},h.prototype.requestFullscreen=function(){var i=Se;this.isFullscreen(!0),i.requestFullscreen?(_t(p,i.fullscreenchange,Ot(this,function t(e){this.isFullscreen(p[i.fullscreenElement]),!1===this.isFullscreen()&&bt(p,i.fullscreenchange,t),this.trigger("fullscreenchange")})),this.el_[i.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange"))},h.prototype.exitFullscreen=function(){var t=Se;this.isFullscreen(!1),t.requestFullscreen?p[t.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange"))},h.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=p.documentElement.style.overflow,_t(p,"keydown",Ot(this,this.fullWindowOnEscKey)),p.documentElement.style.overflow="hidden",j(p.body,"vjs-full-window"),this.trigger("enterFullWindow")},h.prototype.fullWindowOnEscKey=function(t){27===t.keyCode&&(!0===this.isFullscreen()?this.exitFullscreen():this.exitFullWindow())},h.prototype.exitFullWindow=function(){this.isFullWindow=!1,bt(p,"keydown",this.fullWindowOnEscKey),p.documentElement.style.overflow=this.docOrigOverflow,F(p.body,"vjs-full-window"),this.trigger("exitFullWindow")},h.prototype.canPlayType=function(t){for(var e=void 0,i=0,r=this.options_.techOrder;i<r.length;i++){var n=r[i],s=br.getTech(n);if(s||(s=Xt.getComponent(n)),s){if(s.isSupported()&&(e=s.canPlayType(t)))return e}else f.error('The "'+n+'" tech is undefined. Skipped browser support check for that tech.')}return""},h.prototype.selectSource=function(t){var i,r=this,e=this.options_.techOrder.map(function(t){return[t,br.getTech(t)]}).filter(function(t){var e=t[0],i=t[1];return i?i.isSupported():(f.error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.'),!1)}),n=function(t,i,r){var n=void 0;return t.some(function(e){return i.some(function(t){if(n=r(e,t))return!0})}),n},s=function(t,e){var i=t[0];if(t[1].canPlaySource(e,r.options_[i.toLowerCase()]))return{source:e,tech:i}};return(this.options_.sourceOrder?n(t,e,(i=s,function(t,e){return i(e,t)})):n(e,t,s))||!1},h.prototype.src=function(t){var n=this;if("undefined"==typeof t)return this.cache_.src||"";var s=function e(t){if(Array.isArray(t)){var i=[];t.forEach(function(t){t=e(t),Array.isArray(t)?i=i.concat(t):E(t)&&i.push(t)}),t=i}else t="string"==typeof t&&t.trim()?[Ir({src:t})]:E(t)&&"string"==typeof t.src&&t.src&&t.src.trim()?[Ir(t)]:[];return t}(t);s.length?(this.changingSrc_=!0,this.cache_.sources=s,this.updateSourceCaches_(s[0]),Cr(this,s[0],function(t,e){var i,r;if(n.middleware_=e,n.cache_.sources=s,n.updateSourceCaches_(t),n.src_(t))return 1<s.length?n.src(s.slice(1)):(n.changingSrc_=!1,n.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),void n.triggerReady());i=e,r=n.tech_,i.forEach(function(t){return t.setTech&&t.setTech(r)})})):this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0)},h.prototype.src_=function(t){var e,i,r=this,n=this.selectSource([t]);return!n||(e=n.tech,i=this.techName_,zt(e)!==zt(i)?(this.changingSrc_=!0,this.loadTech_(n.tech,n.source),this.tech_.ready(function(){r.changingSrc_=!1})):this.ready(function(){this.tech_.constructor.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",t):this.techCall_("src",t.src),this.changingSrc_=!1},!0),!1)},h.prototype.load=function(){this.techCall_("load")},h.prototype.reset=function(){this.loadTech_(this.options_.techOrder[0],null),this.techCall_("reset")},h.prototype.currentSources=function(){var t=this.currentSource(),e=[];return 0!==Object.keys(t).length&&e.push(t),this.cache_.sources||e},h.prototype.currentSource=function(){return this.cache_.source||{}},h.prototype.currentSrc=function(){return this.currentSource()&&this.currentSource().src||""},h.prototype.currentType=function(){return this.currentSource()&&this.currentSource().type||""},h.prototype.preload=function(t){return void 0!==t?(this.techCall_("setPreload",t),void(this.options_.preload=t)):this.techGet_("preload")},h.prototype.autoplay=function(t){return void 0!==t?(this.techCall_("setAutoplay",t),void(this.options_.autoplay=t)):this.techGet_("autoplay",t)},h.prototype.playsinline=function(t){return void 0!==t?(this.techCall_("setPlaysinline",t),this.options_.playsinline=t,this):this.techGet_("playsinline")},h.prototype.loop=function(t){return void 0!==t?(this.techCall_("setLoop",t),void(this.options_.loop=t)):this.techGet_("loop")},h.prototype.poster=function(t){if(void 0===t)return this.poster_;t||(t=""),t!==this.poster_&&(this.poster_=t,this.techCall_("setPoster",t),this.isPosterFromTech_=!1,this.trigger("posterchange"))},h.prototype.handleTechPosterChange_=function(){if((!this.poster_||this.options_.techCanOverridePoster)&&this.tech_&&this.tech_.poster){var t=this.tech_.poster()||"";t!==this.poster_&&(this.poster_=t,this.isPosterFromTech_=!0,this.trigger("posterchange"))}},h.prototype.controls=function(t){if(void 0===t)return!!this.controls_;t=!!t,this.controls_!==t&&(this.controls_=t,this.usingNativeControls()&&this.techCall_("setControls",t),this.controls_?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_()))},h.prototype.usingNativeControls=function(t){if(void 0===t)return!!this.usingNativeControls_;t=!!t,this.usingNativeControls_!==t&&(this.usingNativeControls_=t,this.usingNativeControls_?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols")))},h.prototype.error=function(t){return void 0===t?this.error_||null:null===t?(this.error_=t,this.removeClass("vjs-error"),void(this.errorDisplay&&this.errorDisplay.close())):(this.error_=new Le(t),this.addClass("vjs-error"),f.error("(CODE:"+this.error_.code+" "+Le.errorTypes[this.error_.code]+")",this.error_.message,this.error_),void this.trigger("error"))},h.prototype.reportUserActivity=function(t){this.userActivity_=!0},h.prototype.userActive=function(t){if(void 0===t)return this.userActive_;if((t=!!t)!==this.userActive_){if(this.userActive_=t,this.userActive_)return this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),void this.trigger("useractive");this.tech_&&this.tech_.one("mousemove",function(t){t.stopPropagation(),t.preventDefault()}),this.userActivity_=!1,this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive")}},h.prototype.listenForUserActivity_=function(){var e=void 0,i=void 0,r=void 0,n=Ot(this,this.reportUserActivity);this.on("mousedown",function(){n(),this.clearInterval(e),e=this.setInterval(n,250)}),this.on("mousemove",function(t){t.screenX===i&&t.screenY===r||(i=t.screenX,r=t.screenY,n())}),this.on("mouseup",function(t){n(),this.clearInterval(e)}),this.on("keydown",n),this.on("keyup",n);var s=void 0;this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(s);var t=this.options_.inactivityTimeout;t<=0||(s=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},t))}},250)},h.prototype.playbackRate=function(t){if(void 0===t)return this.tech_&&this.tech_.featuresPlaybackRate?this.cache_.lastPlaybackRate||this.techGet_("playbackRate"):1;this.techCall_("setPlaybackRate",t)},h.prototype.defaultPlaybackRate=function(t){return void 0!==t?this.techCall_("setDefaultPlaybackRate",t):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("defaultPlaybackRate"):1},h.prototype.isAudio=function(t){if(void 0===t)return!!this.isAudio_;this.isAudio_=!!t},h.prototype.addTextTrack=function(t,e,i){if(this.tech_)return this.tech_.addTextTrack(t,e,i)},h.prototype.addRemoteTextTrack=function(t,e){if(this.tech_)return this.tech_.addRemoteTextTrack(t,e)},h.prototype.removeRemoteTextTrack=function(){var t=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).track,e=void 0===t?arguments[0]:t;if(this.tech_)return this.tech_.removeRemoteTextTrack(e)},h.prototype.getVideoPlaybackQuality=function(){return this.techGet_("getVideoPlaybackQuality")},h.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},h.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},h.prototype.language=function(t){if(void 0===t)return this.language_;this.language_=String(t).toLowerCase()},h.prototype.languages=function(){return Gt(h.prototype.options_.languages,this.languages_)},h.prototype.toJSON=function(){var t=Gt(this.options_),e=t.tracks;t.tracks=[];for(var i=0;i<e.length;i++){var r=e[i];(r=Gt(r)).player=void 0,t.tracks[i]=r}return t},h.prototype.createModal=function(t,e){var i=this;(e=e||{}).content=t||"";var r=new Ne(this,e);return this.addChild(r),r.on("dispose",function(){i.removeChild(r)}),r.open(),r},h.getTagSettings=function(t){var e={sources:[],tracks:[]},i=q(t),r=i["data-setup"];if(B(t,"vjs-fluid")&&(i.fluid=!0),null!==r){var n=Oe(r||"{}"),s=n[0],a=n[1];s&&f.error(s),C(i,a)}if(C(e,i),t.hasChildNodes())for(var o=t.childNodes,u=0,l=o.length;u<l;u++){var c=o[u],h=c.nodeName.toLowerCase();"source"===h?e.sources.push(q(c)):"track"===h&&e.tracks.push(q(c))}return e},h.prototype.flexNotSupported_=function(){var t=p.createElement("i");return!("flexBasis"in t.style||"webkitFlexBasis"in t.style||"mozFlexBasis"in t.style||"msFlexBasis"in t.style||"msFlexOrder"in t.style)},h}(Xt);Bi.names.forEach(function(t){var e=Bi[t];ms.prototype[e.getterName]=function(){return this.tech_?this.tech_[e.getterName]():(this[e.privateName]=this[e.privateName]||new e.ListClass,this[e.privateName])}}),ms.players={};var gs=g.navigator;ms.prototype.options_={techOrder:br.defaultTechOrder_,html5:{},flash:{},inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings","resizeManager"],language:gs&&(gs.languages&&gs.languages[0]||gs.userLanguage||gs.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media."},["ended","seeking","seekable","networkState","readyState"].forEach(function(t){ms.prototype[t]=function(){return this.techGet_(t)}}),ps.forEach(function(t){ms.prototype["handleTech"+zt(t)+"_"]=function(){return this.trigger(t)}}),Xt.registerComponent("Player",ms);var ys="plugin",vs="activePlugins_",_s={},bs=function(t){return _s.hasOwnProperty(t)},Ts=function(t){return bs(t)?_s[t]:void 0},Ss=function(t,e){t[vs]=t[vs]||{},t[vs][e]=!0},ks=function(t,e,i){var r=(i?"before":"")+"pluginsetup";t.trigger(r,e),t.trigger(r+":"+e.name,e)},Cs=function(n,s){return s.prototype.name=n,function(){ks(this,{name:n,plugin:s,instance:null},!0);for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];var r=new(Function.prototype.bind.apply(s,[null].concat([this].concat(e))));return this[n]=function(){return r},ks(this,r.getEventHash()),r}},Es=function(){function s(t){if(y(this,s),this.constructor===s)throw new Error("Plugin must be sub-classed; not directly instantiated.");this.player=t,Vt(this),delete this.trigger,Wt(this,this.constructor.defaultState),Ss(t,this.name),this.dispose=Ot(this,this.dispose),t.on("dispose",this.dispose)}return s.prototype.version=function(){return this.constructor.VERSION},s.prototype.getEventHash=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return t.name=this.name,t.plugin=this.constructor,t.instance=this,t},s.prototype.trigger=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return Tt(this.eventBusEl_,t,this.getEventHash(e))},s.prototype.handleStateChanged=function(t){},s.prototype.dispose=function(){var t=this.name,e=this.player;this.trigger("dispose"),this.off(),e.off("dispose",this.dispose),e[vs][t]=!1,this.player=this.state=null,e[t]=Cs(t,_s[t])},s.isBasic=function(t){var e="string"==typeof t?Ts(t):t;return"function"==typeof e&&!s.prototype.isPrototypeOf(e.prototype)},s.registerPlugin=function(t,e){if("string"!=typeof t)throw new Error('Illegal plugin name, "'+t+'", must be a string, was '+("undefined"==typeof t?"undefined":v(t))+".");if(bs(t))f.warn('A plugin named "'+t+'" already exists. You may want to avoid re-registering plugins!');else if(ms.prototype.hasOwnProperty(t))throw new Error('Illegal plugin name, "'+t+'", cannot share a name with an existing player method!');if("function"!=typeof e)throw new Error('Illegal plugin for "'+t+'", must be a function, was '+("undefined"==typeof e?"undefined":v(e))+".");var i,r,n;return _s[t]=e,t!==ys&&(s.isBasic(e)?ms.prototype[t]=(i=t,r=e,n=function(){ks(this,{name:i,plugin:r,instance:null},!0);var t=r.apply(this,arguments);return Ss(this,i),ks(this,{name:i,plugin:r,instance:t}),t},Object.keys(r).forEach(function(t){n[t]=r[t]}),n):ms.prototype[t]=Cs(t,e)),e},s.deregisterPlugin=function(t){if(t===ys)throw new Error("Cannot de-register base plugin.");bs(t)&&(delete _s[t],delete ms.prototype[t])},s.getPlugins=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:Object.keys(_s),i=void 0;return t.forEach(function(t){var e=Ts(t);e&&((i=i||{})[t]=e)}),i},s.getPluginVersion=function(t){var e=Ts(t);return e&&e.VERSION||""},s}();Es.getPlugin=Ts,Es.BASE_PLUGIN_NAME=ys,Es.registerPlugin(ys,Es),ms.prototype.usingPlugin=function(t){return!!this[vs]&&!0===this[vs][t]},ms.prototype.hasPlugin=function(t){return!!bs(t)};var ws=function(t){return 0===t.indexOf("#")?t.slice(1):t};function As(t,i,e){var r=As.getPlayer(t);if(r)return i&&f.warn('Player "'+t+'" is already initialised. Options will not be applied.'),e&&r.ready(e),r;var n="string"==typeof t?nt("#"+ws(t)):t;if(!I(n))throw new TypeError("The element or ID supplied is not valid. (videojs)");p.body.contains(n)||f.warn("The element supplied is not included in the DOM"),i=i||{},As.hooks("beforesetup").forEach(function(t){var e=t(n,Gt(i));E(e)&&!Array.isArray(e)?i=Gt(i,e):f.error("please return an object in beforesetup hooks")});var s=Xt.getComponent("Player");return r=new s(n,i,e),As.hooks("setup").forEach(function(t){return t(r)}),r}if(As.hooks_={},As.hooks=function(t,e){return As.hooks_[t]=As.hooks_[t]||[],e&&(As.hooks_[t]=As.hooks_[t].concat(e)),As.hooks_[t]},As.hook=function(t,e){As.hooks(t,e)},As.hookOnce=function(i,t){As.hooks(i,[].concat(t).map(function(e){return function t(){return As.removeHook(i,t),e.apply(void 0,arguments)}}))},As.removeHook=function(t,e){var i=As.hooks(t).indexOf(e);return!(i<=-1)&&(As.hooks_[t]=As.hooks_[t].slice(),As.hooks_[t].splice(i,1),!0)},!0!==g.VIDEOJS_NO_DYNAMIC_STYLE&&x()){var Ls=nt(".vjs-styles-defaults");if(!Ls){Ls=Lt("vjs-styles-defaults");var Ps=nt("head");Ps&&Ps.insertBefore(Ls,Ps.firstChild),Pt(Ls,"\n      .video-js {\n        width: 300px;\n        height: 150px;\n      }\n\n      .vjs-fluid {\n        padding-top: 56.25%\n      }\n    ")}}At(1,As),As.VERSION=d,As.options=ms.prototype.options_,As.getPlayers=function(){return ms.players},As.getPlayer=function(t){var e=ms.players,i=void 0;if("string"==typeof t){var r=ws(t),n=e[r];if(n)return n;i=nt("#"+r)}else i=t;if(I(i)){var s=i,a=s.player,o=s.playerId;if(a||e[o])return a||e[o]}},As.getAllPlayers=function(){return Object.keys(ms.players).map(function(t){return ms.players[t]}).filter(Boolean)},As.players=ms.players,As.getComponent=Xt.getComponent,As.registerComponent=function(t,e){br.isTech(e)&&f.warn("The "+t+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),Xt.registerComponent.call(Xt,t,e)},As.getTech=br.getTech,As.registerTech=br.registerTech,As.use=function(t,e){Tr[t]=Tr[t]||[],Tr[t].push(e)},Object.defineProperty(As,"middleware",{value:{},writeable:!1,enumerable:!0}),Object.defineProperty(As.middleware,"TERMINATOR",{value:kr,writeable:!1,enumerable:!0}),As.browser=ye,As.TOUCH_ENABLED=ge,As.extend=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=function(){t.apply(this,arguments)},r={};for(var n in"object"===("undefined"==typeof e?"undefined":v(e))?(e.constructor!==Object.prototype.constructor&&(i=e.constructor),r=e):"function"==typeof e&&(i=e),function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":v(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.super_=e)}(i,t),r)r.hasOwnProperty(n)&&(i.prototype[n]=r[n]);return i},As.mergeOptions=Gt,As.bind=Ot,As.registerPlugin=Es.registerPlugin,As.plugin=function(t,e){return f.warn("videojs.plugin() is deprecated; use videojs.registerPlugin() instead"),Es.registerPlugin(t,e)},As.getPlugins=Es.getPlugins,As.getPlugin=Es.getPlugin,As.getPluginVersion=Es.getPluginVersion,As.addLanguage=function(t,e){var i;return t=(""+t).toLowerCase(),As.options.languages=Gt(As.options.languages,((i={})[t]=e,i)),As.options.languages[t]},As.log=f,As.createTimeRange=As.createTimeRanges=be,As.formatTime=Yr,As.setFormatTime=function(t){Xr=t},As.resetFormatTime=function(){Xr=Gr},As.parseUrl=Je,As.isCrossOrigin=ei,As.EventTarget=Dt,As.on=_t,As.one=St,As.off=bt,As.trigger=Tt,As.xhr=Ci,As.TextTrack=Oi,As.AudioTrack=xi,As.VideoTrack=Ii,["isEl","isTextNode","createEl","hasClass","addClass","removeClass","toggleClass","setAttributes","getAttributes","emptyEl","appendContent","insertContent"].forEach(function(t){As[t]=function(){return f.warn("videojs."+t+"() is deprecated; use videojs.dom."+t+"() instead"),at[t].apply(null,arguments)}}),As.computedStyle=A,As.dom=at,As.url=ii;var Os=e(function(t,e){var i,c,r,n,h;i=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,c=/^([^\/;?#]*)(.*)$/,r=/(?:\/|^)\.(?=\/)/g,n=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,h={buildAbsoluteURL:function(t,e,i){if(i=i||{},t=t.trim(),!(e=e.trim())){if(!i.alwaysNormalize)return t;var r=h.parseURL(t);if(!r)throw new Error("Error trying to parse base URL.");return r.path=h.normalizePath(r.path),h.buildURLFromParts(r)}var n=h.parseURL(e);if(!n)throw new Error("Error trying to parse relative URL.");if(n.scheme)return i.alwaysNormalize?(n.path=h.normalizePath(n.path),h.buildURLFromParts(n)):e;var s=h.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");if(!s.netLoc&&s.path&&"/"!==s.path[0]){var a=c.exec(s.path);s.netLoc=a[1],s.path=a[2]}s.netLoc&&!s.path&&(s.path="/");var o={scheme:s.scheme,netLoc:n.netLoc,path:null,params:n.params,query:n.query,fragment:n.fragment};if(!n.netLoc&&(o.netLoc=s.netLoc,"/"!==n.path[0]))if(n.path){var u=s.path,l=u.substring(0,u.lastIndexOf("/")+1)+n.path;o.path=h.normalizePath(l)}else o.path=s.path,n.params||(o.params=s.params,n.query||(o.query=s.query));return null===o.path&&(o.path=i.alwaysNormalize?h.normalizePath(n.path):n.path),h.buildURLFromParts(o)},parseURL:function(t){var e=i.exec(t);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(t){for(t=t.split("").reverse().join("").replace(r,"");t.length!==(t=t.replace(n,"")).length;);return t.split("").reverse().join("")},buildURLFromParts:function(t){return t.scheme+t.netLoc+t.path+t.params+t.query+t.fragment}},t.exports=h}),xs=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Is=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t},Ds=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":v(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},Rs=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==("undefined"==typeof e?"undefined":v(e))&&"function"!=typeof e?t:e},Ms=function(){function t(){xs(this,t),this.listeners={}}return t.prototype.on=function(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e)},t.prototype.off=function(t,e){if(!this.listeners[t])return!1;var i=this.listeners[t].indexOf(e);return this.listeners[t].splice(i,1),-1<i},t.prototype.trigger=function(t){var e=this.listeners[t],i=void 0,r=void 0,n=void 0;if(e)if(2===arguments.length)for(r=e.length,i=0;i<r;++i)e[i].call(this,arguments[1]);else for(n=Array.prototype.slice.call(arguments,1),r=e.length,i=0;i<r;++i)e[i].apply(this,n)},t.prototype.dispose=function(){this.listeners={}},t.prototype.pipe=function(e){this.on("data",function(t){e.push(t)})},t}(),Us=function(e){function i(){xs(this,i);var t=Rs(this,e.call(this));return t.buffer="",t}return Ds(i,e),i.prototype.push=function(t){var e=void 0;for(this.buffer+=t,e=this.buffer.indexOf("\n");-1<e;e=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)},i}(Ms),Ns=function(t){for(var e=t.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),i={},r=e.length,n=void 0;r--;)""!==e[r]&&((n=/([^=]*)=(.*)/.exec(e[r]).slice(1))[0]=n[0].replace(/^\s+|\s+$/g,""),n[1]=n[1].replace(/^\s+|\s+$/g,""),n[1]=n[1].replace(/^['"](.*)['"]$/g,"$1"),i[n[0]]=n[1]);return i},Bs=function(e){function i(){xs(this,i);var t=Rs(this,e.call(this));return t.customParsers=[],t}return Ds(i,e),i.prototype.push=function(t){var e=void 0,i=void 0;if(0!==(t=t.replace(/^[\u0000\s]+|[\u0000\s]+$/g,"")).length)if("#"===t[0]){for(var r=0;r<this.customParsers.length;r++)if(this.customParsers[r].call(this,t))return;if(0===t.indexOf("#EXT"))if(t=t.replace("\r",""),e=/^#EXTM3U/.exec(t))this.trigger("data",{type:"tag",tagType:"m3u"});else{if(e=/^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(t))return i={type:"tag",tagType:"inf"},e[1]&&(i.duration=parseFloat(e[1])),e[2]&&(i.title=e[2]),void this.trigger("data",i);if(e=/^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"targetduration"},e[1]&&(i.duration=parseInt(e[1],10)),void this.trigger("data",i);if(e=/^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"totalduration"},e[1]&&(i.duration=parseInt(e[1],10)),void this.trigger("data",i);if(e=/^#EXT-X-VERSION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"version"},e[1]&&(i.version=parseInt(e[1],10)),void this.trigger("data",i);if(e=/^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(t))return i={type:"tag",tagType:"media-sequence"},e[1]&&(i.number=parseInt(e[1],10)),void this.trigger("data",i);if(e=/^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(t))return i={type:"tag",tagType:"discontinuity-sequence"},e[1]&&(i.number=parseInt(e[1],10)),void this.trigger("data",i);if(e=/^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(t))return i={type:"tag",tagType:"playlist-type"},e[1]&&(i.playlistType=e[1]),void this.trigger("data",i);if(e=/^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"byterange"},e[1]&&(i.length=parseInt(e[1],10)),e[2]&&(i.offset=parseInt(e[2],10)),void this.trigger("data",i);if(e=/^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(t))return i={type:"tag",tagType:"allow-cache"},e[1]&&(i.allowed=!/NO/.test(e[1])),void this.trigger("data",i);if(e=/^#EXT-X-MAP:?(.*)$/.exec(t)){if(i={type:"tag",tagType:"map"},e[1]){var n=Ns(e[1]);if(n.URI&&(i.uri=n.URI),n.BYTERANGE){var s=n.BYTERANGE.split("@"),a=s[0],o=s[1];i.byterange={},a&&(i.byterange.length=parseInt(a,10)),o&&(i.byterange.offset=parseInt(o,10))}}this.trigger("data",i)}else if(e=/^#EXT-X-STREAM-INF:?(.*)$/.exec(t)){if(i={type:"tag",tagType:"stream-inf"},e[1]){if(i.attributes=Ns(e[1]),i.attributes.RESOLUTION){var u=i.attributes.RESOLUTION.split("x"),l={};u[0]&&(l.width=parseInt(u[0],10)),u[1]&&(l.height=parseInt(u[1],10)),i.attributes.RESOLUTION=l}i.attributes.BANDWIDTH&&(i.attributes.BANDWIDTH=parseInt(i.attributes.BANDWIDTH,10)),i.attributes["PROGRAM-ID"]&&(i.attributes["PROGRAM-ID"]=parseInt(i.attributes["PROGRAM-ID"],10))}this.trigger("data",i)}else{if(e=/^#EXT-X-MEDIA:?(.*)$/.exec(t))return i={type:"tag",tagType:"media"},e[1]&&(i.attributes=Ns(e[1])),void this.trigger("data",i);if(e=/^#EXT-X-ENDLIST/.exec(t))this.trigger("data",{type:"tag",tagType:"endlist"});else if(e=/^#EXT-X-DISCONTINUITY/.exec(t))this.trigger("data",{type:"tag",tagType:"discontinuity"});else{if(e=/^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(t))return i={type:"tag",tagType:"program-date-time"},e[1]&&(i.dateTimeString=e[1],i.dateTimeObject=new Date(e[1])),void this.trigger("data",i);if(e=/^#EXT-X-KEY:?(.*)$/.exec(t))return i={type:"tag",tagType:"key"},e[1]&&(i.attributes=Ns(e[1]),i.attributes.IV&&("0x"===i.attributes.IV.substring(0,2).toLowerCase()&&(i.attributes.IV=i.attributes.IV.substring(2)),i.attributes.IV=i.attributes.IV.match(/.{8}/g),i.attributes.IV[0]=parseInt(i.attributes.IV[0],16),i.attributes.IV[1]=parseInt(i.attributes.IV[1],16),i.attributes.IV[2]=parseInt(i.attributes.IV[2],16),i.attributes.IV[3]=parseInt(i.attributes.IV[3],16),i.attributes.IV=new Uint32Array(i.attributes.IV))),void this.trigger("data",i);if(e=/^#EXT-X-START:?(.*)$/.exec(t))return i={type:"tag",tagType:"start"},e[1]&&(i.attributes=Ns(e[1]),i.attributes["TIME-OFFSET"]=parseFloat(i.attributes["TIME-OFFSET"]),i.attributes.PRECISE=/YES/.test(i.attributes.PRECISE)),void this.trigger("data",i);if(e=/^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-out-cont"},e[1]?i.data=e[1]:i.data="",void this.trigger("data",i);if(e=/^#EXT-X-CUE-OUT:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-out"},e[1]?i.data=e[1]:i.data="",void this.trigger("data",i);if(e=/^#EXT-X-CUE-IN:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-in"},e[1]?i.data=e[1]:i.data="",void this.trigger("data",i);this.trigger("data",{type:"tag",data:t.slice(4)})}}}else this.trigger("data",{type:"comment",text:t.slice(1)})}else this.trigger("data",{type:"uri",uri:t})},i.prototype.addParser=function(t){var e=this,i=t.expression,r=t.customType,n=t.dataParser,s=t.segment;"function"!=typeof n&&(n=function(t){return t}),this.customParsers.push(function(t){if(i.exec(t))return e.trigger("data",{type:"custom",data:n(t),customType:r,segment:s}),!0})},i}(Ms),js=function(e){function i(){xs(this,i);var t=Rs(this,e.call(this));t.lineStream=new Us,t.parseStream=new Bs,t.lineStream.pipe(t.parseStream);var n=t,s=[],a={},o=void 0,u=void 0,l={AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},c=0;return t.manifest={allowCache:!0,discontinuityStarts:[],segments:[]},t.parseStream.on("data",function(e){var i=void 0,r=void 0;({tag:function(){({"allow-cache":function(){this.manifest.allowCache=e.allowed,"allowed"in e||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange:function(){var t={};"length"in e&&((a.byterange=t).length=e.length,"offset"in e||(this.trigger("info",{message:"defaulting offset to zero"}),e.offset=0)),"offset"in e&&((a.byterange=t).offset=e.offset)},endlist:function(){this.manifest.endList=!0},inf:function(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),0<e.duration&&(a.duration=e.duration),0===e.duration&&(a.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=s},key:function(){e.attributes?"NONE"!==e.attributes.METHOD?e.attributes.URI?(e.attributes.METHOD||this.trigger("warn",{message:"defaulting key method to AES-128"}),u={method:e.attributes.METHOD||"AES-128",uri:e.attributes.URI},"undefined"!=typeof e.attributes.IV&&(u.iv=e.attributes.IV)):this.trigger("warn",{message:"ignoring key declaration without URI"}):u=null:this.trigger("warn",{message:"ignoring key declaration without attribute list"})},"media-sequence":function(){isFinite(e.number)?this.manifest.mediaSequence=e.number:this.trigger("warn",{message:"ignoring invalid media sequence: "+e.number})},"discontinuity-sequence":function(){isFinite(e.number)?(this.manifest.discontinuitySequence=e.number,c=e.number):this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+e.number})},"playlist-type":function(){/VOD|EVENT/.test(e.playlistType)?this.manifest.playlistType=e.playlistType:this.trigger("warn",{message:"ignoring unknown playlist type: "+e.playlist})},map:function(){o={},e.uri&&(o.uri=e.uri),e.byterange&&(o.byterange=e.byterange)},"stream-inf":function(){this.manifest.playlists=s,this.manifest.mediaGroups=this.manifest.mediaGroups||l,e.attributes?(a.attributes||(a.attributes={}),Is(a.attributes,e.attributes)):this.trigger("warn",{message:"ignoring empty stream-inf attributes"})},media:function(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||l,e.attributes&&e.attributes.TYPE&&e.attributes["GROUP-ID"]&&e.attributes.NAME){var t=this.manifest.mediaGroups[e.attributes.TYPE];t[e.attributes["GROUP-ID"]]=t[e.attributes["GROUP-ID"]]||{},i=t[e.attributes["GROUP-ID"]],(r={default:/yes/i.test(e.attributes.DEFAULT)}).default?r.autoselect=!0:r.autoselect=/yes/i.test(e.attributes.AUTOSELECT),e.attributes.LANGUAGE&&(r.language=e.attributes.LANGUAGE),e.attributes.URI&&(r.uri=e.attributes.URI),e.attributes["INSTREAM-ID"]&&(r.instreamId=e.attributes["INSTREAM-ID"]),e.attributes.CHARACTERISTICS&&(r.characteristics=e.attributes.CHARACTERISTICS),e.attributes.FORCED&&(r.forced=/yes/i.test(e.attributes.FORCED)),i[e.attributes.NAME]=r}else this.trigger("warn",{message:"ignoring incomplete or missing media group"})},discontinuity:function(){c+=1,a.discontinuity=!0,this.manifest.discontinuityStarts.push(s.length)},"program-date-time":function(){"undefined"==typeof this.manifest.dateTimeString&&(this.manifest.dateTimeString=e.dateTimeString,this.manifest.dateTimeObject=e.dateTimeObject),a.dateTimeString=e.dateTimeString,a.dateTimeObject=e.dateTimeObject},targetduration:function(){!isFinite(e.duration)||e.duration<0?this.trigger("warn",{message:"ignoring invalid target duration: "+e.duration}):this.manifest.targetDuration=e.duration},totalduration:function(){!isFinite(e.duration)||e.duration<0?this.trigger("warn",{message:"ignoring invalid total duration: "+e.duration}):this.manifest.totalDuration=e.duration},start:function(){e.attributes&&!isNaN(e.attributes["TIME-OFFSET"])?this.manifest.start={timeOffset:e.attributes["TIME-OFFSET"],precise:e.attributes.PRECISE}:this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"})},"cue-out":function(){a.cueOut=e.data},"cue-out-cont":function(){a.cueOutCont=e.data},"cue-in":function(){a.cueIn=e.data}}[e.tagType]||function(){}).call(n)},uri:function(){a.uri=e.uri,s.push(a),!this.manifest.targetDuration||"duration"in a||(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),a.duration=this.manifest.targetDuration),u&&(a.key=u),a.timeline=c,o&&(a.map=o),a={}},comment:function(){},custom:function(){e.segment?(a.custom=a.custom||{},a.custom[e.customType]=e.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[e.customType]=e.data)}})[e.type].call(n)}),t}return Ds(i,e),i.prototype.push=function(t){this.lineStream.push(t)},i.prototype.end=function(){this.lineStream.push("\n")},i.prototype.addParser=function(t){this.parseStream.addParser(t)},i}(Ms),Fs=function(t){var e,i=t.attributes,r=t.segments,n={attributes:(e={NAME:i.id,AUDIO:"audio",SUBTITLES:"subs",RESOLUTION:{width:i.width,height:i.height},CODECS:i.codecs,BANDWIDTH:i.bandwidth},e["PROGRAM-ID"]=1,e),uri:"",endList:"static"===(i.type||"static"),timeline:i.periodIndex,resolvedUri:"",targetDuration:i.duration,segments:r,mediaSequence:r.length?r[0].number:1};return i.contentProtection&&(n.contentProtection=i.contentProtection),n},Hs=function(t){return!!t&&"object"===("undefined"==typeof t?"undefined":v(t))},Vs=function r(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return e.reduce(function(e,i){return Object.keys(i).forEach(function(t){Array.isArray(e[t])&&Array.isArray(i[t])?e[t]=e[t].concat(i[t]):Hs(e[t])&&Hs(i[t])?e[t]=r(e[t],i[t]):e[t]=i[t]}),e},{})},qs=function(t,e){return/^[a-z]+:/i.test(e)?e:(/\/\//i.test(t)||(t=Os.buildAbsoluteURL(g.location.href,t)),Os.buildAbsoluteURL(t,e))},Ws=function(t){var e=t.baseUrl,i=void 0===e?"":e,r=t.source,n=void 0===r?"":r,s=t.range,a=void 0===s?"":s,o={uri:n,resolvedUri:qs(i||"",n)};if(a){var u=a.split("-"),l=parseInt(u[0],10),c=parseInt(u[1],10);o.byterange={length:c-l,offset:l}}return o},zs=function(t,e){for(var i,r,n,s,a,o,u,l,c,h,d,p,f=t.type,m=void 0===f?"static":f,g=t.minimumUpdatePeriod,y=void 0===g?0:g,v=t.media,_=void 0===v?"":v,b=t.sourceDuration,T=t.timescale,S=void 0===T?1:T,k=t.startNumber,C=void 0===k?1:k,E=t.periodIndex,w=[],A=-1,L=0;L<e.length;L++){var P=e[L],O=P.d,x=P.r||0,I=P.t||0;A<0&&(A=I),I&&A<I&&(A=I);var D=void 0;if(x<0){var R=L+1;R===e.length?"dynamic"===m&&0<y&&0<_.indexOf("$Number$")?(r=A,n=O,void 0,s=(i=t).NOW,a=i.clientOffset,o=i.availabilityStartTime,u=i.timescale,l=void 0===u?1:u,c=i.start,h=void 0===c?0:c,d=i.minimumUpdatePeriod,p=(s+a)/1e3+(void 0===d?0:d)-(o+h),D=Math.ceil((p*l-r)/n)):D=(b*S-A)/O:D=(e[R].t-A)/O}else D=x+1;for(var M=C+w.length+D,U=C+w.length;U<M;)w.push({number:U,duration:O/S,time:A,timeline:E}),A+=O,U++}return w},Gs=function(t){return t.reduce(function(t,e){return t.concat(e)},[])},Xs=function(t){if(!t.length)return[];for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},Ys={static:function(t){var e=t.duration,i=t.timescale,r=void 0===i?1:i,n=t.sourceDuration;return{start:0,end:Math.ceil(n/(e/r))}},dynamic:function(t){var e=t.NOW,i=t.clientOffset,r=t.availabilityStartTime,n=t.timescale,s=void 0===n?1:n,a=t.duration,o=t.start,u=void 0===o?0:o,l=t.minimumUpdatePeriod,c=void 0===l?0:l,h=t.timeShiftBufferDepth,d=void 0===h?1/0:h,p=(e+i)/1e3,f=r+u,m=p+c-f,g=Math.ceil(m*s/a),y=Math.floor((p-f-d)*s/a),v=Math.floor((p-f)*s/a);return{start:Math.max(0,y),end:Math.min(g,v)}}},$s=function(t){var o,e=t.type,i=void 0===e?"static":e,r=t.duration,n=t.timescale,s=void 0===n?1:n,a=t.sourceDuration,u=Ys[i](t),l=function(t,e){for(var i=[],r=t;r<e;r++)i.push(r);return i}(u.start,u.end).map((o=t,function(t,e){var i=o.duration,r=o.timescale,n=void 0===r?1:r,s=o.periodIndex,a=o.startNumber;return{number:(void 0===a?1:a)+t,duration:i/n,timeline:s,time:e*i}}));if("static"===i){var c=l.length-1;l[c].duration=a-r/s*c}return l},Ks=/\$([A-z]*)(?:(%0)([0-9]+)d)?\$/g,Qs=function(t,e){return t.replace(Ks,(s=e,function(t,e,i,r){if("$$"===t)return"$";if("undefined"==typeof s[e])return t;var n=""+s[e];return"RepresentationID"===e?n:(r=i?parseInt(r,10):1)<=n.length?n:""+new Array(r-n.length+1).join("0")+n}));var s},Js=function(i,t){var e,r,n={RepresentationID:i.id,Bandwidth:i.bandwidth||0},s=i.initialization,a=void 0===s?{sourceURL:"",range:""}:s,o=Ws({baseUrl:i.baseUrl,source:Qs(a.sourceURL,n),range:a.range});return(r=t,(e=i).duration||r?e.duration?$s(e):zs(e,r):[{number:e.startNumber||1,duration:e.sourceDuration,time:0,timeline:e.periodIndex}]).map(function(t){n.Number=t.number,n.Time=t.time;var e=Qs(i.media||"",n);return{uri:e,timeline:t.timeline,duration:t.duration,resolvedUri:qs(i.baseUrl||"",e),map:o,number:t.number}})},Zs="INVALID_NUMBER_OF_PERIOD",ta="DASH_EMPTY_MANIFEST",ea="DASH_INVALID_XML",ia="NO_BASE_URL",ra="SEGMENT_TIME_UNSPECIFIED",na="UNSUPPORTED_UTC_TIMING_SCHEME",sa=function(u,t){var e=u.duration,i=u.segmentUrls,r=void 0===i?[]:i;if(!e&&!t||e&&t)throw new Error(ra);var n=r.map(function(t){return i=t,r=(e=u).baseUrl,n=e.initialization,a=Ws({baseUrl:r,source:(s=void 0===n?{}:n).sourceURL,range:s.range}),(o=Ws({baseUrl:r,source:i.media,range:i.mediaRange})).map=a,o;var e,i,r,n,s,a,o}),s=void 0;return e&&(s=$s(u)),t&&(s=zs(u,t)),s.map(function(t,e){if(n[e]){var i=n[e];return i.timeline=t.timeline,i.duration=t.duration,i.number=t.number,i}}).filter(function(t){return t})},aa=function(t){var e=t.baseUrl,i=t.initialization,r=void 0===i?{}:i,n=t.sourceDuration,s=t.timescale,a=void 0===s?1:s,o=t.indexRange,u=void 0===o?"":o,l=t.duration;if(!e)throw new Error(ia);var c=Ws({baseUrl:e,source:r.sourceURL,range:r.range}),h=Ws({baseUrl:e,source:e,range:u});if(h.map=c,l){var d=$s(t);d.length&&(h.duration=d[0].duration,h.timeline=d[0].timeline)}else n&&(h.duration=n/a,h.timeline=0);return h.number=0,[h]},oa=function(t){var e=t.attributes,i=t.segmentInfo,r=void 0,n=void 0;if(i.template?(n=Js,r=Vs(e,i.template)):i.base?(n=aa,r=Vs(e,i.base)):i.list&&(n=sa,r=Vs(e,i.list)),!n)return{attributes:e};var s=n(r,i.timeline);if(r.duration){var a=r,o=a.duration,u=a.timescale,l=void 0===u?1:u;r.duration=o/l}else s.length?r.duration=s.reduce(function(t,e){return Math.max(t,Math.ceil(e.duration))},0):r.duration=0;return{attributes:r,segments:s}},ua=function(t,e){return Xs(t.childNodes).filter(function(t){return t.tagName===e})},la=function(t){return t.textContent.trim()},ca=function(t){var e=/P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(t);if(!e)return 0;var i=e.slice(1),r=i[0],n=i[1],s=i[2],a=i[3],o=i[4],u=i[5];return 31536e3*parseFloat(r||0)+2592e3*parseFloat(n||0)+86400*parseFloat(s||0)+3600*parseFloat(a||0)+60*parseFloat(o||0)+parseFloat(u||0)},ha={mediaPresentationDuration:function(t){return ca(t)},availabilityStartTime:function(t){return/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e=t)&&(e+="Z"),Date.parse(e)/1e3;var e},minimumUpdatePeriod:function(t){return ca(t)},timeShiftBufferDepth:function(t){return ca(t)},start:function(t){return ca(t)},width:function(t){return parseInt(t,10)},height:function(t){return parseInt(t,10)},bandwidth:function(t){return parseInt(t,10)},startNumber:function(t){return parseInt(t,10)},timescale:function(t){return parseInt(t,10)},duration:function(t){var e=parseInt(t,10);return isNaN(e)?ca(t):e},d:function(t){return parseInt(t,10)},t:function(t){return parseInt(t,10)},r:function(t){return parseInt(t,10)},DEFAULT:function(t){return t}},da=function(t){return t&&t.attributes?Xs(t.attributes).reduce(function(t,e){var i=ha[e.name]||ha.DEFAULT;return t[e.name]=i(e.value),t},{}):{}};var pa,fa,ma={"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},ga=function(t,i){return i.length?Gs(t.map(function(e){return i.map(function(t){return qs(e,la(t))})})):t},ya=function(t){var e=ua(t,"SegmentTemplate")[0],i=ua(t,"SegmentList")[0],r=i&&ua(i,"SegmentURL").map(function(t){return Vs({tag:"SegmentURL"},da(t))}),n=ua(t,"SegmentBase")[0],s=i||e,a=s&&ua(s,"SegmentTimeline")[0],o=i||n||e,u=o&&ua(o,"Initialization")[0],l=e&&da(e);l&&u?l.initialization=u&&da(u):l&&l.initialization&&(l.initialization={sourceURL:l.initialization});var c={template:l,timeline:a&&ua(a,"S").map(function(t){return da(t)}),list:i&&Vs(da(i),{segmentUrls:r,initialization:da(u)}),base:n&&Vs(da(n),{initialization:da(u)})};return Object.keys(c).forEach(function(t){c[t]||delete c[t]}),c},va=function(t){return t.reduce(function(t,e){var i=da(e),r=ma[i.schemeIdUri];if(r){t[r]={attributes:i};var n=ua(e,"cenc:pssh")[0];if(n){var s=la(n),a=s&&function(t){for(var e=g.atob(t),i=new Uint8Array(e.length),r=0;r<e.length;r++)i[r]=e.charCodeAt(r);return i}(s);t[r].pssh=a}}return t},{})},_a=function(p,f,m){return function(t){var e=da(t),i=ga(f,ua(t,"BaseURL")),r=ua(t,"Role")[0],n={role:da(r)},s=Vs(p,e,n),a=va(ua(t,"ContentProtection"));Object.keys(a).length&&(s=Vs(s,{contentProtection:a}));var o,u,l,c=ya(t),h=ua(t,"Representation"),d=Vs(m,c);return Gs(h.map((o=s,u=i,l=d,function(t){var e=ua(t,"BaseURL"),i=ga(u,e),r=Vs(o,da(t)),n=ya(t);return i.map(function(t){return{segmentInfo:Vs(l,n),attributes:Vs(r,{baseUrl:t})}})})))}},ba=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=e.manifestUri,r=void 0===i?"":i,n=e.NOW,s=void 0===n?Date.now():n,a=e.clientOffset,o=void 0===a?0:a,u=ua(t,"Period");if(1!==u.length)throw new Error(Zs);var l,c,h=da(t),d=ga([r],ua(t,"BaseURL"));return h.sourceDuration=h.mediaPresentationDuration||0,h.NOW=s,h.clientOffset=o,Gs(u.map((l=h,c=d,function(t,e){var i=ga(c,ua(t,"BaseURL")),r=da(t),n=Vs(l,r,{periodIndex:e}),s=ua(t,"AdaptationSet"),a=ya(t);return Gs(s.map(_a(n,i,a)))})))},Ta=function(t){if(""===t)throw new Error(ta);var e=(new g.DOMParser).parseFromString(t,"application/xml"),i=e&&"MPD"===e.documentElement.tagName?e.documentElement:null;if(!i||i&&0<i.getElementsByTagName("parsererror").length)throw new Error(ea);return i},Sa=function(t,e){return function(t){var e;if(!t.length)return{};var i=t[0].attributes,r=i.sourceDuration,n=i.minimumUpdatePeriod,s=void 0===n?0:n,a=t.filter(function(t){var e=t.attributes;return"video/mp4"===e.mimeType||"video"===e.contentType}).map(Fs),o=t.filter(function(t){var e=t.attributes;return"audio/mp4"===e.mimeType||"audio"===e.contentType}),u=t.filter(function(t){var e=t.attributes;return"text/vtt"===e.mimeType||"text"===e.contentType}),l={allowCache:!0,discontinuityStarts:[],segments:[],endList:!0,mediaGroups:(e={AUDIO:{},VIDEO:{}},e["CLOSED-CAPTIONS"]={},e.SUBTITLES={},e),uri:"",duration:r,playlists:a,minimumUpdatePeriod:1e3*s};return o.length&&(l.mediaGroups.AUDIO.audio=o.reduce(function(t,e){var i,r,n,s,a,o=e.attributes.role&&e.attributes.role.value||"main",u=e.attributes.lang||"",l="main";return u&&(l=e.attributes.lang+" ("+o+")"),t[l]&&t[l].playlists[0].attributes.BANDWIDTH>e.attributes.bandwidth||(t[l]={language:u,autoselect:!0,default:"main"===o,playlists:[(i=e,n=i.attributes,s=i.segments,a={attributes:(r={NAME:n.id,BANDWIDTH:n.bandwidth,CODECS:n.codecs},r["PROGRAM-ID"]=1,r),uri:"",endList:"static"===(n.type||"static"),timeline:n.periodIndex,resolvedUri:"",targetDuration:n.duration,segments:s,mediaSequence:s.length?s[0].number:1},n.contentProtection&&(a.contentProtection=n.contentProtection),a)],uri:""}),t},{})),u.length&&(l.mediaGroups.SUBTITLES.subs=u.reduce(function(t,e){var i,r,n,s,a=e.attributes.lang||"text";return t[a]||(t[a]={language:a,default:!1,autoselect:!1,playlists:[(i=e,n=i.attributes,s=i.segments,"undefined"==typeof s&&(s=[{uri:n.baseUrl,timeline:n.periodIndex,resolvedUri:n.baseUrl||"",duration:n.sourceDuration,number:0}],n.duration=n.sourceDuration),{attributes:(r={NAME:n.id,BANDWIDTH:n.bandwidth},r["PROGRAM-ID"]=1,r),uri:"",endList:"static"===(n.type||"static"),timeline:n.periodIndex,resolvedUri:n.baseUrl||"",targetDuration:n.duration,segments:s,mediaSequence:s.length?s[0].number:1})],uri:""}),t},{})),l}(ba(Ta(t),e).map(oa))},ka=function(t){return function(t){var e=ua(t,"UTCTiming")[0];if(!e)return null;var i=da(e);switch(i.schemeIdUri){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":i.method="HEAD";break;case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":i.method="GET";break;case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":i.method="DIRECT",i.value=Date.parse(i.value);break;case"urn:mpeg:dash:utc:http-ntp:2014":case"urn:mpeg:dash:utc:ntp:2014":case"urn:mpeg:dash:utc:sntp:2014":default:throw new Error(na)}return i}(Ta(t))},Ca={toUnsigned:function(t){return t>>>0}},Ea=Ca.toUnsigned,wa=Object.freeze({default:Ca,__moduleExports:Ca,toUnsigned:Ea}),Aa=(wa&&Ca||wa).toUnsigned;pa=function(t,e){var i,r,n,s,a,o=[];if(!e.length)return null;for(i=0;i<t.byteLength;)r=Aa(t[i]<<24|t[i+1]<<16|t[i+2]<<8|t[i+3]),n=fa(t.subarray(i+4,i+8)),s=1<r?i+r:t.byteLength,n===e[0]&&(1===e.length?o.push(t.subarray(i+8,s)):(a=pa(t.subarray(i+8,s),e.slice(1))).length&&(o=o.concat(a))),i=s;return o};fa=function(t){var e="";return e+=String.fromCharCode(t[0]),e+=String.fromCharCode(t[1]),e+=String.fromCharCode(t[2]),e+=String.fromCharCode(t[3])};var La=function(t){return pa(t,["moov","trak"]).reduce(function(t,e){var i,r,n,s,a;return(i=pa(e,["tkhd"])[0])?(r=i[0],s=Aa(i[n=0===r?12:20]<<24|i[n+1]<<16|i[n+2]<<8|i[n+3]),(a=pa(e,["mdia","mdhd"])[0])?(n=0===(r=a[0])?12:20,t[s]=Aa(a[n]<<24|a[n+1]<<16|a[n+2]<<8|a[n+3]),t):null):null},{})},Pa=function(n,t){var e,i,r;return e=pa(t,["moof","traf"]),i=[].concat.apply([],e.map(function(r){return pa(r,["tfhd"]).map(function(t){var e,i;return e=Aa(t[4]<<24|t[5]<<16|t[6]<<8|t[7]),i=n[e]||9e4,(pa(r,["tfdt"]).map(function(t){var e,i;return e=t[0],i=Aa(t[4]<<24|t[5]<<16|t[6]<<8|t[7]),1===e&&(i*=Math.pow(2,32),i+=Aa(t[8]<<24|t[9]<<16|t[10]<<8|t[11])),i})[0]||1/0)/i})})),r=Math.min.apply(null,i),isFinite(r)?r:0},Oa={H264_STREAM_TYPE:27,ADTS_STREAM_TYPE:15,METADATA_STREAM_TYPE:21},xa=Oa.H264_STREAM_TYPE,Ia=Oa.ADTS_STREAM_TYPE,Da=Oa.METADATA_STREAM_TYPE,Ra=Object.freeze({default:Oa,__moduleExports:Oa,H264_STREAM_TYPE:xa,ADTS_STREAM_TYPE:Ia,METADATA_STREAM_TYPE:Da}),Ma=function(){this.init=function(){var s={};this.on=function(t,e){s[t]||(s[t]=[]),s[t]=s[t].concat(e)},this.off=function(t,e){var i;return!!s[t]&&(i=s[t].indexOf(e),s[t]=s[t].slice(),s[t].splice(i,1),-1<i)},this.trigger=function(t){var e,i,r,n;if(e=s[t])if(2===arguments.length)for(r=e.length,i=0;i<r;++i)e[i].call(this,arguments[1]);else{for(n=[],i=arguments.length,i=1;i<arguments.length;++i)n.push(arguments[i]);for(r=e.length,i=0;i<r;++i)e[i].apply(this,n)}},this.dispose=function(){s={}}}};Ma.prototype.pipe=function(e){return this.on("data",function(t){e.push(t)}),this.on("done",function(t){e.flush(t)}),e},Ma.prototype.push=function(t){this.trigger("data",t)},Ma.prototype.flush=function(t){this.trigger("done",t)};var Ua=Ma,Na=Object.freeze({default:Ua,__moduleExports:Ua}),Ba=function(t,e){var i=1;for(e<t&&(i=-1);4294967296<Math.abs(e-t);)t+=8589934592*i;return t},ja=function t(e){var i,r;t.prototype.init.call(this),this.type_=e,this.push=function(t){t.type===this.type_&&(void 0===r&&(r=t.dts),t.dts=Ba(t.dts,r),t.pts=Ba(t.pts,r),i=t.dts,this.trigger("data",t))},this.flush=function(){r=i,this.trigger("done")},this.discontinuity=function(){i=r=void 0}};ja.prototype=new(Na&&Ua||Na);var Fa={TimestampRolloverStream:ja,handleRollover:Ba},Ha=Fa.TimestampRolloverStream,Va=Fa.handleRollover,qa=Object.freeze({default:Fa,__moduleExports:Fa,TimestampRolloverStream:Ha,handleRollover:Va}),Wa=Ra&&Oa||Ra,za=function(t){var e=31&t[1];return e<<=8,e|=t[2]},Ga=function(t){return!!(64&t[1])},Xa=function(t){var e=0;return 1<(48&t[3])>>>4&&(e+=t[4]+1),e},Ya=function(t){switch(t){case 5:return"slice_layer_without_partitioning_rbsp_idr";case 6:return"sei_rbsp";case 7:return"seq_parameter_set_rbsp";case 8:return"pic_parameter_set_rbsp";case 9:return"access_unit_delimiter_rbsp";default:return null}},$a={parseType:function(t,e){var i=za(t);return 0===i?"pat":i===e?"pmt":e?"pes":null},parsePat:function(t){var e=Ga(t),i=4+Xa(t);return e&&(i+=t[i]+1),(31&t[i+10])<<8|t[i+11]},parsePmt:function(t){var e={},i=Ga(t),r=4+Xa(t);if(i&&(r+=t[r]+1),1&t[r+5]){var n;n=3+((15&t[r+1])<<8|t[r+2])-4;for(var s=12+((15&t[r+10])<<8|t[r+11]);s<n;){var a=r+s;e[(31&t[a+1])<<8|t[a+2]]=t[a],s+=5+((15&t[a+3])<<8|t[a+4])}return e}},parsePayloadUnitStartIndicator:Ga,parsePesType:function(t,e){switch(e[za(t)]){case Wa.H264_STREAM_TYPE:return"video";case Wa.ADTS_STREAM_TYPE:return"audio";case Wa.METADATA_STREAM_TYPE:return"timed-metadata";default:return null}},parsePesTime:function(t){if(!Ga(t))return null;var e=4+Xa(t);if(e>=t.byteLength)return null;var i,r=null;return 192&(i=t[e+7])&&((r={}).pts=(14&t[e+9])<<27|(255&t[e+10])<<20|(254&t[e+11])<<12|(255&t[e+12])<<5|(254&t[e+13])>>>3,r.pts*=4,r.pts+=(6&t[e+13])>>>1,r.dts=r.pts,64&i&&(r.dts=(14&t[e+14])<<27|(255&t[e+15])<<20|(254&t[e+16])<<12|(255&t[e+17])<<5|(254&t[e+18])>>>3,r.dts*=4,r.dts+=(6&t[e+18])>>>1)),r},videoPacketContainsKeyFrame:function(t){for(var e=4+Xa(t),i=t.subarray(e),r=0,n=0,s=!1;n<i.byteLength-3;n++)if(1===i[n+2]){r=n+5;break}for(;r<i.byteLength;)switch(i[r]){case 0:if(0!==i[r-1]){r+=2;break}if(0!==i[r-2]){r++;break}for(n+3!==r-2&&"slice_layer_without_partitioning_rbsp_idr"===Ya(31&i[n+3])&&(s=!0);1!==i[++r]&&r<i.length;);n=r-2,r+=3;break;case 1:if(0!==i[r-1]||0!==i[r-2]){r+=3;break}"slice_layer_without_partitioning_rbsp_idr"===Ya(31&i[n+3])&&(s=!0),n=r-2,r+=3;break;default:r+=3}return i=i.subarray(n),r-=n,n=0,i&&3<i.byteLength&&"slice_layer_without_partitioning_rbsp_idr"===Ya(31&i[n+3])&&(s=!0),s}},Ka=$a.parseType,Qa=$a.parsePat,Ja=$a.parsePmt,Za=$a.parsePayloadUnitStartIndicator,to=$a.parsePesType,eo=$a.parsePesTime,io=$a.videoPacketContainsKeyFrame,ro=Object.freeze({default:$a,__moduleExports:$a,parseType:Ka,parsePat:Qa,parsePmt:Ja,parsePayloadUnitStartIndicator:Za,parsePesType:to,parsePesTime:eo,videoPacketContainsKeyFrame:io}),no=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],so=function(t){return t[0]<<21|t[1]<<14|t[2]<<7|t[3]},ao={parseId3TagSize:function(t,e){var i=t[e+6]<<21|t[e+7]<<14|t[e+8]<<7|t[e+9];return(16&t[e+5])>>4?i+20:i+10},parseAdtsSize:function(t,e){var i=(224&t[e+5])>>5,r=t[e+4]<<3;return 6144&t[e+3]|r|i},parseType:function(t,e){return t[e]==="I".charCodeAt(0)&&t[e+1]==="D".charCodeAt(0)&&t[e+2]==="3".charCodeAt(0)?"timed-metadata":!0&t[e]&&240==(240&t[e+1])?"audio":null},parseSampleRate:function(t){for(var e=0;e+5<t.length;){if(255===t[e]&&240==(246&t[e+1]))return no[(60&t[e+2])>>>2];e++}return null},parseAacTimestamp:function(t){var e,i,r;e=10,64&t[5]&&(e+=4,e+=so(t.subarray(10,14)));do{if((i=so(t.subarray(e+4,e+8)))<1)return null;if("PRIV"===String.fromCharCode(t[e],t[e+1],t[e+2],t[e+3])){r=t.subarray(e+10,e+i+10);for(var n=0;n<r.byteLength;n++)if(0===r[n]){if("com.apple.streaming.transportStreamTimestamp"===unescape(function(t,e,i){var r,n="";for(r=e;r<i;r++)n+="%"+("00"+t[r].toString(16)).slice(-2);return n}(r,0,n))){var s=r.subarray(n+1),a=(1&s[3])<<30|s[4]<<22|s[5]<<14|s[6]<<6|s[7]>>>2;return a*=4,a+=3&s[7]}break}}e+=10,e+=i}while(e<t.byteLength);return null}},oo=ao.parseId3TagSize,uo=ao.parseAdtsSize,lo=ao.parseType,co=ao.parseSampleRate,ho=ao.parseAacTimestamp,po=Object.freeze({default:ao,__moduleExports:ao,parseId3TagSize:oo,parseAdtsSize:uo,parseType:lo,parseSampleRate:co,parseAacTimestamp:ho}),fo=ro&&$a||ro,mo=po&&ao||po,go=(qa&&Fa||qa).handleRollover,yo={};yo.ts=fo,yo.aac=mo;var vo=188,_o=function(t,e,i){for(var r,n,s,a,o=0,u=vo,l=!1;u<t.byteLength;)if(71!==t[o]||71!==t[u])o++,u++;else{switch(r=t.subarray(o,u),yo.ts.parseType(r,e.pid)){case"pes":n=yo.ts.parsePesType(r,e.table),s=yo.ts.parsePayloadUnitStartIndicator(r),"audio"===n&&s&&(a=yo.ts.parsePesTime(r))&&(a.type="audio",i.audio.push(a),l=!0)}if(l)break;o+=vo,u+=vo}for(o=(u=t.byteLength)-vo,l=!1;0<=o;)if(71!==t[o]||71!==t[u])o--,u--;else{switch(r=t.subarray(o,u),yo.ts.parseType(r,e.pid)){case"pes":n=yo.ts.parsePesType(r,e.table),s=yo.ts.parsePayloadUnitStartIndicator(r),"audio"===n&&s&&(a=yo.ts.parsePesTime(r))&&(a.type="audio",i.audio.push(a),l=!0)}if(l)break;o-=vo,u-=vo}},bo=function(t,e,i){for(var r,n,s,a,o,u,l,c=0,h=vo,d=!1,p={data:[],size:0};h<t.byteLength;)if(71!==t[c]||71!==t[h])c++,h++;else{switch(r=t.subarray(c,h),yo.ts.parseType(r,e.pid)){case"pes":if(n=yo.ts.parsePesType(r,e.table),s=yo.ts.parsePayloadUnitStartIndicator(r),"video"===n&&(s&&!d&&(a=yo.ts.parsePesTime(r))&&(a.type="video",i.video.push(a),d=!0),!i.firstKeyFrame)){if(s&&0!==p.size){for(o=new Uint8Array(p.size),u=0;p.data.length;)l=p.data.shift(),o.set(l,u),u+=l.byteLength;yo.ts.videoPacketContainsKeyFrame(o)&&(i.firstKeyFrame=yo.ts.parsePesTime(o),i.firstKeyFrame.type="video"),p.size=0}p.data.push(r),p.size+=r.byteLength}}if(d&&i.firstKeyFrame)break;c+=vo,h+=vo}for(c=(h=t.byteLength)-vo,d=!1;0<=c;)if(71!==t[c]||71!==t[h])c--,h--;else{switch(r=t.subarray(c,h),yo.ts.parseType(r,e.pid)){case"pes":n=yo.ts.parsePesType(r,e.table),s=yo.ts.parsePayloadUnitStartIndicator(r),"video"===n&&s&&(a=yo.ts.parsePesTime(r))&&(a.type="video",i.video.push(a),d=!0)}if(d)break;c-=vo,h-=vo}},To=function(t){var e={pid:null,table:null},i={};for(var r in function(t,e){for(var i,r=0,n=vo;n<t.byteLength;)if(71!==t[r]||71!==t[n])r++,n++;else{switch(i=t.subarray(r,n),yo.ts.parseType(i,e.pid)){case"pat":e.pid||(e.pid=yo.ts.parsePat(i));break;case"pmt":e.table||(e.table=yo.ts.parsePmt(i))}if(e.pid&&e.table)return;r+=vo,n+=vo}}(t,e),e.table){if(e.table.hasOwnProperty(r))switch(e.table[r]){case Wa.H264_STREAM_TYPE:i.video=[],bo(t,e,i),0===i.video.length&&delete i.video;break;case Wa.ADTS_STREAM_TYPE:i.audio=[],_o(t,e,i),0===i.audio.length&&delete i.audio}}return i},So=function(t,e){var i,r;return(r=(i=t)[0]==="I".charCodeAt(0)&&i[1]==="D".charCodeAt(0)&&i[2]==="3".charCodeAt(0)?function(t){for(var e,i=!1,r=0,n=null,s=null,a=0,o=0;3<=t.length-o;){switch(yo.aac.parseType(t,o)){case"timed-metadata":if(t.length-o<10){i=!0;break}if((a=yo.aac.parseId3TagSize(t,o))>t.length){i=!0;break}null===s&&(e=t.subarray(o,o+a),s=yo.aac.parseAacTimestamp(e)),o+=a;break;case"audio":if(t.length-o<7){i=!0;break}if((a=yo.aac.parseAdtsSize(t,o))>t.length){i=!0;break}null===n&&(e=t.subarray(o,o+a),n=yo.aac.parseSampleRate(e)),r++,o+=a;break;default:o++}if(i)return null}if(null===n||null===s)return null;var u=9e4/n;return{audio:[{type:"audio",dts:s,pts:s},{type:"audio",dts:s+1024*r*u,pts:s+1024*r*u}]}}(t):To(t))&&(r.audio||r.video)?(function(t,e){if(t.audio&&t.audio.length){var i=e;"undefined"==typeof i&&(i=t.audio[0].dts),t.audio.forEach(function(t){t.dts=go(t.dts,i),t.pts=go(t.pts,i),t.dtsTime=t.dts/9e4,t.ptsTime=t.pts/9e4})}if(t.video&&t.video.length){var r=e;if("undefined"==typeof r&&(r=t.video[0].dts),t.video.forEach(function(t){t.dts=go(t.dts,r),t.pts=go(t.pts,r),t.dtsTime=t.dts/9e4,t.ptsTime=t.pts/9e4}),t.firstKeyFrame){var n=t.firstKeyFrame;n.dts=go(n.dts,r),n.pts=go(n.pts,r),n.dtsTime=n.dts/9e4,n.ptsTime=n.dts/9e4}}}(r,e),r):null};var ko=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Co=function(){function r(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,i){return e&&r(t.prototype,e),i&&r(t,i),t}}(),Eo=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==("undefined"==typeof e?"undefined":v(e))&&"function"!=typeof e?t:e},wo=function(){var t=[[[],[],[],[],[]],[[],[],[],[],[]]],e=t[0],i=t[1],r=e[4],n=i[4],s=void 0,a=void 0,o=void 0,u=[],l=[],c=void 0,h=void 0,d=void 0,p=void 0,f=void 0;for(s=0;s<256;s++)l[(u[s]=s<<1^283*(s>>7))^s]=s;for(a=o=0;!r[a];a^=c||1,o=l[o]||1)for(d=(d=o^o<<1^o<<2^o<<3^o<<4)>>8^255&d^99,f=16843009*u[h=u[c=u[n[r[a]=d]=a]]]^65537*h^257*c^16843008*a,p=257*u[d]^16843008*d,s=0;s<4;s++)e[s][a]=p=p<<24^p>>>8,i[s][d]=f=f<<24^f>>>8;for(s=0;s<5;s++)e[s]=e[s].slice(0),i[s]=i[s].slice(0);return t},Ao=null,Lo=function(){function c(t){ko(this,c),Ao||(Ao=wo()),this._tables=[[Ao[0][0].slice(),Ao[0][1].slice(),Ao[0][2].slice(),Ao[0][3].slice(),Ao[0][4].slice()],[Ao[1][0].slice(),Ao[1][1].slice(),Ao[1][2].slice(),Ao[1][3].slice(),Ao[1][4].slice()]];var e=void 0,i=void 0,r=void 0,n=void 0,s=void 0,a=this._tables[0][4],o=this._tables[1],u=t.length,l=1;if(4!==u&&6!==u&&8!==u)throw new Error("Invalid aes key size");for(n=t.slice(0),s=[],this._key=[n,s],e=u;e<4*u+28;e++)r=n[e-1],(e%u==0||8===u&&e%u==4)&&(r=a[r>>>24]<<24^a[r>>16&255]<<16^a[r>>8&255]<<8^a[255&r],e%u==0&&(r=r<<8^r>>>24^l<<24,l=l<<1^283*(l>>7))),n[e]=n[e-u]^r;for(i=0;e;i++,e--)r=n[3&i?e:e-4],s[i]=e<=4||i<4?r:o[0][a[r>>>24]]^o[1][a[r>>16&255]]^o[2][a[r>>8&255]]^o[3][a[255&r]]}return c.prototype.decrypt=function(t,e,i,r,n,s){var a=this._key[1],o=t^a[0],u=r^a[1],l=i^a[2],c=e^a[3],h=void 0,d=void 0,p=void 0,f=a.length/4-2,m=void 0,g=4,y=this._tables[1],v=y[0],_=y[1],b=y[2],T=y[3],S=y[4];for(m=0;m<f;m++)h=v[o>>>24]^_[u>>16&255]^b[l>>8&255]^T[255&c]^a[g],d=v[u>>>24]^_[l>>16&255]^b[c>>8&255]^T[255&o]^a[g+1],p=v[l>>>24]^_[c>>16&255]^b[o>>8&255]^T[255&u]^a[g+2],c=v[c>>>24]^_[o>>16&255]^b[u>>8&255]^T[255&l]^a[g+3],g+=4,o=h,u=d,l=p;for(m=0;m<4;m++)n[(3&-m)+s]=S[o>>>24]<<24^S[u>>16&255]<<16^S[l>>8&255]<<8^S[255&c]^a[g++],h=o,o=u,u=l,l=c,c=h},c}(),Po=function(){function t(){ko(this,t),this.listeners={}}return t.prototype.on=function(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e)},t.prototype.off=function(t,e){if(!this.listeners[t])return!1;var i=this.listeners[t].indexOf(e);return this.listeners[t].splice(i,1),-1<i},t.prototype.trigger=function(t){var e=this.listeners[t];if(e)if(2===arguments.length)for(var i=e.length,r=0;r<i;++r)e[r].call(this,arguments[1]);else for(var n=Array.prototype.slice.call(arguments,1),s=e.length,a=0;a<s;++a)e[a].apply(this,n)},t.prototype.dispose=function(){this.listeners={}},t.prototype.pipe=function(e){this.on("data",function(t){e.push(t)})},t}(),Oo=function(e){function i(){ko(this,i);var t=Eo(this,e.call(this,Po));return t.jobs=[],t.delay=1,t.timeout_=null,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":v(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(i,e),i.prototype.processJob_=function(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null},i.prototype.push=function(t){this.jobs.push(t),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))},i}(Po),xo=function(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24},Io=function(t,e,i){var r=new Int32Array(t.buffer,t.byteOffset,t.byteLength>>2),n=new Lo(Array.prototype.slice.call(e)),s=new Uint8Array(t.byteLength),a=new Int32Array(s.buffer),o=void 0,u=void 0,l=void 0,c=void 0,h=void 0,d=void 0,p=void 0,f=void 0,m=void 0;for(o=i[0],u=i[1],l=i[2],c=i[3],m=0;m<r.length;m+=4)h=xo(r[m]),d=xo(r[m+1]),p=xo(r[m+2]),f=xo(r[m+3]),n.decrypt(h,d,p,f,a,m),a[m]=xo(a[m]^o),a[m+1]=xo(a[m+1]^u),a[m+2]=xo(a[m+2]^l),a[m+3]=xo(a[m+3]^c),o=h,u=d,l=p,c=f;return s},Do=function(){function u(t,e,i,r){ko(this,u);var n=u.STEP,s=new Int32Array(t.buffer),a=new Uint8Array(t.byteLength),o=0;for(this.asyncStream_=new Oo,this.asyncStream_.push(this.decryptChunk_(s.subarray(o,o+n),e,i,a)),o=n;o<s.length;o+=n)i=new Uint32Array([xo(s[o-4]),xo(s[o-3]),xo(s[o-2]),xo(s[o-1])]),this.asyncStream_.push(this.decryptChunk_(s.subarray(o,o+n),e,i,a));this.asyncStream_.push(function(){var t;r(null,(t=a).subarray(0,t.byteLength-t[t.byteLength-1]))})}return u.prototype.decryptChunk_=function(e,i,r,n){return function(){var t=Io(e,i,r);n.set(t,e.byteOffset)}},Co(u,null,[{key:"STEP",get:function(){return 32e3}}]),u}(),Ro=function(t,e){return/^[a-z]+:/i.test(e)?e:(/\/\//i.test(t)||(t=Os.buildAbsoluteURL(g.location.href,t)),Os.buildAbsoluteURL(t,e))},Mo=As.mergeOptions,Uo=As.log,No=function(n,s){["AUDIO","SUBTITLES"].forEach(function(t){for(var e in n.mediaGroups[t])for(var i in n.mediaGroups[t][e]){var r=n.mediaGroups[t][e][i];s(r,t,e,i)}})},Bo=function(t,e){var i=Mo(t,{}),r=i.playlists[e.uri];if(!r)return null;if(r.segments&&e.segments&&r.segments.length===e.segments.length&&r.mediaSequence===e.mediaSequence)return null;var n=Mo(r,e);r.segments&&(n.segments=function(t,e,i){var r=e.slice();i=i||0;for(var n=Math.min(t.length,e.length+i),s=i;s<n;s++)r[s-i]=Mo(t[s],r[s-i]);return r}(r.segments,e.segments,e.mediaSequence-r.mediaSequence)),n.segments.forEach(function(t){var e,i;e=t,i=n.resolvedUri,e.resolvedUri||(e.resolvedUri=Ro(i,e.uri)),e.key&&!e.key.resolvedUri&&(e.key.resolvedUri=Ro(i,e.key.uri)),e.map&&!e.map.resolvedUri&&(e.map.resolvedUri=Ro(i,e.map.uri))});for(var s=0;s<i.playlists.length;s++)i.playlists[s].uri===e.uri&&(i.playlists[s]=n);return i.playlists[e.uri]=n,i},jo=function(t){for(var e=t.playlists.length;e--;){var i=t.playlists[e];(t.playlists[i.uri]=i).resolvedUri=Ro(t.uri,i.uri),i.id=e,i.attributes||(i.attributes={},Uo.warn("Invalid playlist STREAM-INF detected. Missing BANDWIDTH attribute."))}},Fo=function(e){No(e,function(t){t.uri&&(t.resolvedUri=Ro(e.uri,t.uri))})},Ho=function(t,e){var i=t.segments[t.segments.length-1];return e&&i&&i.duration?1e3*i.duration:500*(t.targetDuration||10)},Vo=function(n){function s(t,e,i){y(this,s);var r=b(this,n.call(this));if(r.srcUrl=t,r.hls_=e,r.withCredentials=i,!r.srcUrl)throw new Error("A non-empty playlist URL is required");return r.state="HAVE_NOTHING",r.on("mediaupdatetimeout",function(){"HAVE_METADATA"===r.state&&(r.state="HAVE_CURRENT_METADATA",r.request=r.hls_.xhr({uri:Ro(r.master.uri,r.media().uri),withCredentials:r.withCredentials},function(t,e){if(r.request)return t?r.playlistRequestError(r.request,r.media().uri,"HAVE_METADATA"):void r.haveMetadata(r.request,r.media().uri)}))}),r}return _(s,n),s.prototype.playlistRequestError=function(t,e,i){this.request=null,i&&(this.state=i),this.error={playlist:this.master.playlists[e],status:t.status,message:"HLS playlist request error at URL: "+e,responseText:t.responseText,code:500<=t.status?4:2},this.trigger("error")},s.prototype.haveMetadata=function(t,e){var i=this;this.request=null,this.state="HAVE_METADATA";var r=new js;r.push(t.responseText),r.end(),r.manifest.uri=e,r.manifest.attributes=r.manifest.attributes||{};var n=Bo(this.master,r.manifest);this.targetDuration=r.manifest.targetDuration,n?(this.master=n,this.media_=this.master.playlists[r.manifest.uri]):this.trigger("playlistunchanged"),this.media().endList||(g.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=g.setTimeout(function(){i.trigger("mediaupdatetimeout")},Ho(this.media(),!!n))),this.trigger("loadedplaylist")},s.prototype.dispose=function(){this.stopRequest(),g.clearTimeout(this.mediaUpdateTimeout)},s.prototype.stopRequest=function(){if(this.request){var t=this.request;this.request=null,t.onreadystatechange=null,t.abort()}},s.prototype.media=function(i){var r=this;if(!i)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);var n=this.state;if("string"==typeof i){if(!this.master.playlists[i])throw new Error("Unknown playlist URI: "+i);i=this.master.playlists[i]}var t=!this.media_||i.uri!==this.media_.uri;if(this.master.playlists[i.uri].endList)return this.request&&(this.request.onreadystatechange=null,this.request.abort(),this.request=null),this.state="HAVE_METADATA",this.media_=i,void(t&&(this.trigger("mediachanging"),this.trigger("mediachange")));if(t){if(this.state="SWITCHING_MEDIA",this.request){if(Ro(this.master.uri,i.uri)===this.request.url)return;this.request.onreadystatechange=null,this.request.abort(),this.request=null}this.media_&&this.trigger("mediachanging"),this.request=this.hls_.xhr({uri:Ro(this.master.uri,i.uri),withCredentials:this.withCredentials},function(t,e){if(r.request){if(t)return r.playlistRequestError(r.request,i.uri,n);r.haveMetadata(e,i.uri),"HAVE_MASTER"===n?r.trigger("loadedmetadata"):r.trigger("mediachange")}})}},s.prototype.pause=function(){this.stopRequest(),g.clearTimeout(this.mediaUpdateTimeout),"HAVE_NOTHING"===this.state&&(this.started=!1),"SWITCHING_MEDIA"===this.state?this.media_?this.state="HAVE_METADATA":this.state="HAVE_MASTER":"HAVE_CURRENT_METADATA"===this.state&&(this.state="HAVE_METADATA")},s.prototype.load=function(t){var e=this;g.clearTimeout(this.mediaUpdateTimeout);var i=this.media();if(t){var r=i?i.targetDuration/2*1e3:5e3;this.mediaUpdateTimeout=g.setTimeout(function(){return e.load()},r)}else this.started?i&&!i.endList?this.trigger("mediaupdatetimeout"):this.trigger("loadedplaylist"):this.start()},s.prototype.start=function(){var r=this;this.started=!0,this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(t,e){if(r.request){if(r.request=null,t)return r.error={status:e.status,message:"HLS playlist request error at URL: "+r.srcUrl,responseText:e.responseText,code:2},"HAVE_NOTHING"===r.state&&(r.started=!1),r.trigger("error");var i=new js;return i.push(e.responseText),i.end(),r.state="HAVE_MASTER",i.manifest.uri=r.srcUrl,i.manifest.playlists?(r.master=i.manifest,jo(r.master),Fo(r.master),r.trigger("loadedplaylist"),void(r.request||r.media(i.manifest.playlists[0]))):(r.master={mediaGroups:{AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},uri:g.location.href,playlists:[{uri:r.srcUrl,id:0}]},r.master.playlists[r.srcUrl]=r.master.playlists[0],r.master.playlists[0].resolvedUri=r.srcUrl,r.master.playlists[0].attributes=r.master.playlists[0].attributes||{},r.haveMetadata(e,r.srcUrl),r.trigger("loadedmetadata"))}})},s}(As.EventTarget),qo=As.createTimeRange,Wo=function(t,e,i){var r,n;return"undefined"==typeof e&&(e=t.mediaSequence+t.segments.length),e<t.mediaSequence?0:(r=function(t,e){var i=0,r=e-t.mediaSequence,n=t.segments[r];if(n){if("undefined"!=typeof n.start)return{result:n.start,precise:!0};if("undefined"!=typeof n.end)return{result:n.end-n.duration,precise:!0}}for(;r--;){if("undefined"!=typeof(n=t.segments[r]).end)return{result:i+n.end,precise:!0};if(i+=n.duration,"undefined"!=typeof n.start)return{result:i+n.start,precise:!0}}return{result:i,precise:!1}}(t,e)).precise?r.result:(n=function(t,e){for(var i=0,r=void 0,n=e-t.mediaSequence;n<t.segments.length;n++){if("undefined"!=typeof(r=t.segments[n]).start)return{result:r.start-i,precise:!0};if(i+=r.duration,"undefined"!=typeof r.end)return{result:r.end-i,precise:!0}}return{result:-1,precise:!1}}(t,e)).precise?n.result:r.result+i},zo=function(t,e,i){if(!t)return 0;if("number"!=typeof i&&(i=0),"undefined"==typeof e){if(t.totalDuration)return t.totalDuration;if(!t.endList)return g.Infinity}return Wo(t,e,i)},Go=function(t,e,i){var r=0;if(i<e){var n=[i,e];e=n[0],i=n[1]}if(e<0){for(var s=e;s<Math.min(0,i);s++)r+=t.targetDuration;e=0}for(var a=e;a<i;a++)r+=t.segments[a].duration;return r},Xo=function(t){if(!t.segments.length)return 0;for(var e=t.segments.length-1,i=t.segments[e].duration||t.targetDuration,r=i+2*t.targetDuration;e--&&!(r<=(i+=t.segments[e].duration)););return Math.max(0,e)},Yo=function(t,e,i){if(!t||!t.segments)return null;if(t.endList)return zo(t);if(null===e)return null;e=e||0;var r=i?Xo(t):t.segments.length;return Wo(t,t.mediaSequence+r,e)},$o=function(t){return t-Math.floor(t)==0},Ko=function(t,e){if($o(e))return e+.1*t;for(var i=e.toString().split(".")[1].length,r=1;r<=i;r++){var n=Math.pow(10,r),s=e*n;if($o(s)||r===i)return(s+t)/n}},Qo=Ko.bind(null,1),Jo=Ko.bind(null,-1),Zo=function(t){return t.excludeUntil&&t.excludeUntil>Date.now()},tu=function(t){return t.excludeUntil&&t.excludeUntil===1/0},eu=function(t){var e=Zo(t);return!t.disabled&&!e},iu=function(t,e){return e.attributes&&e.attributes[t]},ru=function(t,e){if(1===t.playlists.length)return!0;var i=e.attributes.BANDWIDTH||Number.MAX_VALUE;return 0===t.playlists.filter(function(t){return!!eu(t)&&(t.attributes.BANDWIDTH||0)<i}).length},nu={duration:zo,seekable:function(t,e){var i=e||0,r=Yo(t,e,!0);return null===r?qo():qo(i,r)},safeLiveIndex:Xo,getMediaInfoForTime:function(t,e,i,r){var n=void 0,s=void 0,a=t.segments.length,o=e-r;if(o<0){if(0<i)for(n=i-1;0<=n;n--)if(s=t.segments[n],0<(o+=Jo(s.duration)))return{mediaIndex:n,startTime:r-Go(t,i,n)};return{mediaIndex:0,startTime:e}}if(i<0){for(n=i;n<0;n++)if((o-=t.targetDuration)<0)return{mediaIndex:0,startTime:e};i=0}for(n=i;n<a;n++)if(s=t.segments[n],(o-=Qo(s.duration))<0)return{mediaIndex:n,startTime:r+Go(t,i,n)};return{mediaIndex:a-1,startTime:e}},isEnabled:eu,isDisabled:function(t){return t.disabled},isBlacklisted:Zo,isIncompatible:tu,playlistEnd:Yo,isAes:function(t){for(var e=0;e<t.segments.length;e++)if(t.segments[e].key)return!0;return!1},isFmp4:function(t){for(var e=0;e<t.segments.length;e++)if(t.segments[e].map)return!0;return!1},hasAttribute:iu,estimateSegmentRequestTime:function(t,e,i){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:0;return iu("BANDWIDTH",i)?(t*i.attributes.BANDWIDTH-8*r)/e:NaN},isLowestEnabledRendition:ru},su=As.xhr,au=As.mergeOptions,ou=function(){return function t(e,r){e=au({timeout:45e3},e);var i=t.beforeRequest||As.Hls.xhr.beforeRequest;if(i&&"function"==typeof i){var n=i(e);n&&(e=n)}var s=su(e,function(t,e){var i=s.response;!t&&i&&(s.responseTime=Date.now(),s.roundTripTime=s.responseTime-s.requestTime,s.bytesReceived=i.byteLength||i.length,s.bandwidth||(s.bandwidth=Math.floor(s.bytesReceived/s.roundTripTime*8*1e3))),e.headers&&(s.responseHeaders=e.headers),t&&"ETIMEDOUT"===t.code&&(s.timedout=!0),t||s.aborted||200===e.statusCode||206===e.statusCode||0===e.statusCode||(t=new Error("XHR Failed with a response of: "+(s&&(i||s.responseText)))),r(t,s)}),a=s.abort;return s.abort=function(){return s.aborted=!0,a.apply(s,arguments)},s.uri=e.uri,s.requestTime=Date.now(),s}},uu=function(t,e){var i=t.toString(16);return"00".substring(0,2-i.length)+i+(e%2?" ":"")},lu=function(t){return 32<=t&&t<126?String.fromCharCode(t):"."},cu=function(i){var r={};return Object.keys(i).forEach(function(t){var e=i[t];ArrayBuffer.isView(e)?r[t]={bytes:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength}:r[t]=e}),r},hu=function(t){var e=t.byterange||{length:1/0,offset:0};return[e.length,e.offset,t.resolvedUri].join(",")},du=function(t){for(var e=Array.prototype.slice.call(t),i="",r=0;r<e.length/16;r++)i+=e.slice(16*r,16*r+16).map(uu).join("")+" "+e.slice(16*r,16*r+16).map(lu).join("")+"\n";return i},pu=Object.freeze({createTransferableMessage:cu,initSegmentId:hu,hexDump:du,tagDump:function(t){var e=t.bytes;return du(e)},textRanges:function(t){var e,i,r="",n=void 0;for(n=0;n<t.length;n++)r+=(i=n,(e=t).start(i)+"-"+e.end(i)+" ");return r}}),fu=1/30,mu=function(t,e){var i=[],r=void 0;if(t&&t.length)for(r=0;r<t.length;r++)e(t.start(r),t.end(r))&&i.push([t.start(r),t.end(r)]);return As.createTimeRanges(i)},gu=function(t,i){return mu(t,function(t,e){return t-fu<=i&&i<=e+fu})},yu=function(t,e){return mu(t,function(t){return e<=t-fu})},vu=function(t){var e=[];if(!t||!t.length)return"";for(var i=0;i<t.length;i++)e.push(t.start(i)+" => "+t.end(i));return e.join(", ")},_u=function(t){for(var e=[],i=0;i<t.length;i++)e.push({start:t.start(i),end:t.end(i)});return e},bu=function(t,e,i){var r=void 0,n=void 0;if(i&&i.cues)for(r=i.cues.length;r--;)(n=i.cues[r]).startTime<=e&&n.endTime>=t&&i.removeCue(n)},Tu=function(t){return isNaN(t)||Math.abs(t)===1/0?Number.MAX_VALUE:t},Su=function(t,e,i){var n=g.WebKitDataCue||g.VTTCue;if(e&&e.forEach(function(t){var e=t.stream;this.inbandTextTracks_[e].addCue(new n(t.startTime+this.timestampOffset,t.endTime+this.timestampOffset,t.text))},t),i){var s=Tu(t.mediaSource_.duration);if(i.forEach(function(t){var r=t.cueTime+this.timestampOffset;t.frames.forEach(function(t){var e,i=new n(r,r,t.value||t.url||t.data||"");i.frame=t,i.value=t,e=i,Object.defineProperties(e.frame,{id:{get:function(){return As.log.warn("cue.frame.id is deprecated. Use cue.value.key instead."),e.value.key}},value:{get:function(){return As.log.warn("cue.frame.value is deprecated. Use cue.value.data instead."),e.value.data}},privateData:{get:function(){return As.log.warn("cue.frame.privateData is deprecated. Use cue.value.data instead."),e.value.data}}}),this.metadataTrack_.addCue(i)},this)},t),t.metadataTrack_&&t.metadataTrack_.cues&&t.metadataTrack_.cues.length){for(var r=t.metadataTrack_.cues,a=[],o=0;o<r.length;o++)r[o]&&a.push(r[o]);var u=a.reduce(function(t,e){var i=t[e.startTime]||[];return i.push(e),t[e.startTime]=i,t},{}),l=Object.keys(u).sort(function(t,e){return Number(t)-Number(e)});l.forEach(function(t,e){var i=u[t],r=Number(l[e+1])||s;i.forEach(function(t){t.endTime=r})})}}},ku="undefined"!=typeof window?window:{},Cu="undefined"==typeof Symbol?"__target":Symbol(),Eu="application/javascript",wu=ku.BlobBuilder||ku.WebKitBlobBuilder||ku.MozBlobBuilder||ku.MSBlobBuilder,Au=ku.URL||ku.webkitURL||Au&&Au.msURL,Lu=ku.Worker;function Pu(n,s){return function(t){var e=this;if(!s)return new Lu(n);if(Lu&&!t){var i=Du(s.toString().replace(/^function.+?{/,"").slice(0,-1));return this[Cu]=new Lu(i),function(t,e){if(!t||!e)return;var i=t.terminate;t.objURL=e,t.terminate=function(){t.objURL&&Au.revokeObjectURL(t.objURL),i.call(t)}}(this[Cu],i),this[Cu]}var r={postMessage:function(t){e.onmessage&&setTimeout(function(){e.onmessage({data:t,target:r})})}};s.call(r),this.postMessage=function(t){setTimeout(function(){r.onmessage({data:t,target:e})})},this.isThisThread=!0}}if(Lu){var Ou,xu=Du("self.onmessage = function () {}"),Iu=new Uint8Array(1);try{(Ou=new Lu(xu)).postMessage(Iu,[Iu.buffer])}catch(t){Lu=null}finally{Au.revokeObjectURL(xu),Ou&&Ou.terminate()}}function Du(e){try{return Au.createObjectURL(new Blob([e],{type:Eu}))}catch(t){var i=new wu;return i.append(e),Au.createObjectURL(i.getBlob(type))}}var Ru=new Pu("./transmuxer-worker.worker.js",function(ie,t){var re=this;!function(){var o,e,i,n,s,r,t,a,u,l,c,h,d,p,f,m,g,y,v,_,b,T,S,k,C,E,w,A,L,P,O,x,I,D,R,M,U,N,B,j,F="undefined"!=typeof ie?ie:"undefined"!=typeof global?global:"undefined"!=typeof re?re:{},H="undefined"!=typeof ie?ie:"undefined"!=typeof F?F:"undefined"!=typeof re?re:{},V=Math.pow(2,32)-1;!function(){var t;if(T={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],smhd:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],styp:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[]},"undefined"!=typeof Uint8Array){for(t in T)T.hasOwnProperty(t)&&(T[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);S=new Uint8Array(["i".charCodeAt(0),"s".charCodeAt(0),"o".charCodeAt(0),"m".charCodeAt(0)]),C=new Uint8Array(["a".charCodeAt(0),"v".charCodeAt(0),"c".charCodeAt(0),"1".charCodeAt(0)]),k=new Uint8Array([0,0,0,1]),E=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),w=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),A={video:E,audio:w},O=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),P=new Uint8Array([0,0,0,0,0,0,0,0]),x=new Uint8Array([0,0,0,0,0,0,0,0]),I=x,D=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),R=x,L=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}}(),o=function(t){var e,i,r=[],n=0;for(e=1;e<arguments.length;e++)r.push(arguments[e]);for(e=r.length;e--;)n+=r[e].byteLength;for(i=new Uint8Array(n+8),new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,i.byteLength),i.set(t,4),e=0,n=8;e<r.length;e++)i.set(r[e],n),n+=r[e].byteLength;return i},e=function(){return o(T.dinf,o(T.dref,O))},i=function(t){return o(T.esds,new Uint8Array([0,0,0,0,3,25,0,0,0,4,17,64,21,0,6,0,0,0,218,192,0,0,218,192,5,2,t.audioobjecttype<<3|t.samplingfrequencyindex>>>1,t.samplingfrequencyindex<<7|t.channelcount<<3,6,1,2]))},f=function(t){return o(T.hdlr,A[t])},p=function(t){var e=new Uint8Array([0,0,0,0,0,0,0,2,0,0,0,3,0,1,95,144,t.duration>>>24&255,t.duration>>>16&255,t.duration>>>8&255,255&t.duration,85,196,0,0]);return t.samplerate&&(e[12]=t.samplerate>>>24&255,e[13]=t.samplerate>>>16&255,e[14]=t.samplerate>>>8&255,e[15]=255&t.samplerate),o(T.mdhd,e)},d=function(t){return o(T.mdia,p(t),f(t.type),r(t))},s=function(t){return o(T.mfhd,new Uint8Array([0,0,0,0,(4278190080&t)>>24,(16711680&t)>>16,(65280&t)>>8,255&t]))},r=function(t){return o(T.minf,"video"===t.type?o(T.vmhd,L):o(T.smhd,P),e(),g(t))},t=function(t,e){for(var i=[],r=e.length;r--;)i[r]=v(e[r]);return o.apply(null,[T.moof,s(t)].concat(i))},a=function(t){for(var e=t.length,i=[];e--;)i[e]=c(t[e]);return o.apply(null,[T.moov,l(4294967295)].concat(i).concat(u(t)))},u=function(t){for(var e=t.length,i=[];e--;)i[e]=_(t[e]);return o.apply(null,[T.mvex].concat(i))},l=function(t){var e=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,2,0,1,95,144,(4278190080&t)>>24,(16711680&t)>>16,(65280&t)>>8,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return o(T.mvhd,e)},m=function(t){var e,i,r=t.samples||[],n=new Uint8Array(4+r.length);for(i=0;i<r.length;i++)e=r[i].flags,n[i+4]=e.dependsOn<<4|e.isDependedOn<<2|e.hasRedundancy;return o(T.sdtp,n)},g=function(t){return o(T.stbl,y(t),o(T.stts,R),o(T.stsc,I),o(T.stsz,D),o(T.stco,x))},y=function(t){return o(T.stsd,new Uint8Array([0,0,0,0,0,0,0,1]),"video"===t.type?M(t):U(t))},M=function(t){var e,i=t.sps||[],r=t.pps||[],n=[],s=[];for(e=0;e<i.length;e++)n.push((65280&i[e].byteLength)>>>8),n.push(255&i[e].byteLength),n=n.concat(Array.prototype.slice.call(i[e]));for(e=0;e<r.length;e++)s.push((65280&r[e].byteLength)>>>8),s.push(255&r[e].byteLength),s=s.concat(Array.prototype.slice.call(r[e]));return o(T.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(65280&t.width)>>8,255&t.width,(65280&t.height)>>8,255&t.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,19,118,105,100,101,111,106,115,45,99,111,110,116,114,105,98,45,104,108,115,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o(T.avcC,new Uint8Array([1,t.profileIdc,t.profileCompatibility,t.levelIdc,255].concat([i.length]).concat(n).concat([r.length]).concat(s))),o(T.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])))},U=function(t){return o(T.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,(65280&t.channelcount)>>8,255&t.channelcount,(65280&t.samplesize)>>8,255&t.samplesize,0,0,0,0,(65280&t.samplerate)>>8,255&t.samplerate,0,0]),i(t))},h=function(t){var e=new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,(4278190080&t.id)>>24,(16711680&t.id)>>16,(65280&t.id)>>8,255&t.id,0,0,0,0,(4278190080&t.duration)>>24,(16711680&t.duration)>>16,(65280&t.duration)>>8,255&t.duration,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,(65280&t.width)>>8,255&t.width,0,0,(65280&t.height)>>8,255&t.height,0,0]);return o(T.tkhd,e)},v=function(t){var e,i,r,n,s,a;return e=o(T.tfhd,new Uint8Array([0,0,0,58,(4278190080&t.id)>>24,(16711680&t.id)>>16,(65280&t.id)>>8,255&t.id,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0])),s=Math.floor(t.baseMediaDecodeTime/(V+1)),a=Math.floor(t.baseMediaDecodeTime%(V+1)),i=o(T.tfdt,new Uint8Array([1,0,0,0,s>>>24&255,s>>>16&255,s>>>8&255,255&s,a>>>24&255,a>>>16&255,a>>>8&255,255&a])),92,"audio"===t.type?(r=b(t,92),o(T.traf,e,i,r)):(n=m(t),r=b(t,n.length+92),o(T.traf,e,i,r,n))},c=function(t){return t.duration=t.duration||4294967295,o(T.trak,h(t),d(t))},_=function(t){var e=new Uint8Array([0,0,0,0,(4278190080&t.id)>>24,(16711680&t.id)>>16,(65280&t.id)>>8,255&t.id,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return"video"!==t.type&&(e[e.length-1]=0),o(T.trex,e)},j=function(t,e){var i=0,r=0,n=0,s=0;return t.length&&(void 0!==t[0].duration&&(i=1),void 0!==t[0].size&&(r=2),void 0!==t[0].flags&&(n=4),void 0!==t[0].compositionTimeOffset&&(s=8)),[0,0,i|r|n|s,1,(4278190080&t.length)>>>24,(16711680&t.length)>>>16,(65280&t.length)>>>8,255&t.length,(4278190080&e)>>>24,(16711680&e)>>>16,(65280&e)>>>8,255&e]},B=function(t,e){var i,r,n,s;for(e+=20+16*(r=t.samples||[]).length,i=j(r,e),s=0;s<r.length;s++)n=r[s],i=i.concat([(4278190080&n.duration)>>>24,(16711680&n.duration)>>>16,(65280&n.duration)>>>8,255&n.duration,(4278190080&n.size)>>>24,(16711680&n.size)>>>16,(65280&n.size)>>>8,255&n.size,n.flags.isLeading<<2|n.flags.dependsOn,n.flags.isDependedOn<<6|n.flags.hasRedundancy<<4|n.flags.paddingValue<<1|n.flags.isNonSyncSample,61440&n.flags.degradationPriority,15&n.flags.degradationPriority,(4278190080&n.compositionTimeOffset)>>>24,(16711680&n.compositionTimeOffset)>>>16,(65280&n.compositionTimeOffset)>>>8,255&n.compositionTimeOffset]);return o(T.trun,new Uint8Array(i))},N=function(t,e){var i,r,n,s;for(e+=20+8*(r=t.samples||[]).length,i=j(r,e),s=0;s<r.length;s++)n=r[s],i=i.concat([(4278190080&n.duration)>>>24,(16711680&n.duration)>>>16,(65280&n.duration)>>>8,255&n.duration,(4278190080&n.size)>>>24,(16711680&n.size)>>>16,(65280&n.size)>>>8,255&n.size]);return o(T.trun,new Uint8Array(i))},b=function(t,e){return"audio"===t.type?N(t,e):B(t,e)};var q={ftyp:n=function(){return o(T.ftyp,S,k,S,C)},mdat:function(t){return o(T.mdat,t)},moof:t,moov:a,initSegment:function(t){var e,i=n(),r=a(t);return(e=new Uint8Array(i.byteLength+r.byteLength)).set(i),e.set(r,i.byteLength),e}},W=function(){this.init=function(){var s={};this.on=function(t,e){s[t]||(s[t]=[]),s[t]=s[t].concat(e)},this.off=function(t,e){var i;return!!s[t]&&(i=s[t].indexOf(e),s[t]=s[t].slice(),s[t].splice(i,1),-1<i)},this.trigger=function(t){var e,i,r,n;if(e=s[t])if(2===arguments.length)for(r=e.length,i=0;i<r;++i)e[i].call(this,arguments[1]);else{for(n=[],i=arguments.length,i=1;i<arguments.length;++i)n.push(arguments[i]);for(r=e.length,i=0;i<r;++i)e[i].apply(this,n)}},this.dispose=function(){s={}}}};W.prototype.pipe=function(e){return this.on("data",function(t){e.push(t)}),this.on("done",function(t){e.flush(t)}),e},W.prototype.push=function(t){this.trigger("data",t)},W.prototype.flush=function(t){this.trigger("done",t)};var z=W,G=function t(){t.prototype.init.call(this),this.captionPackets_=[],this.ccStreams_=[new Q(0,0),new Q(0,1),new Q(1,0),new Q(1,1)],this.reset(),this.ccStreams_.forEach(function(t){t.on("data",this.trigger.bind(this,"data")),t.on("done",this.trigger.bind(this,"done"))},this)};(G.prototype=new z).push=function(t){var e,i,r;if("sei_rbsp"===t.nalUnitType&&(4===(e=function(t){for(var e=0,i={payloadType:-1,payloadSize:0},r=0,n=0;e<t.byteLength&&128!==t[e];){for(;255===t[e];)r+=255,e++;for(r+=t[e++];255===t[e];)n+=255,e++;if(n+=t[e++],!i.payload&&4===r){i.payloadType=r,i.payloadSize=n,i.payload=t.subarray(e,e+n);break}e+=n,n=r=0}return i}(t.escapedRBSP)).payloadType&&(i=181!==(r=e).payload[0]?null:49!=(r.payload[1]<<8|r.payload[2])?null:"GA94"!==String.fromCharCode(r.payload[3],r.payload[4],r.payload[5],r.payload[6])?null:3!==r.payload[7]?null:r.payload.subarray(8,r.payload.length-1))))if(t.dts<this.latestDts_)this.ignoreNextEqualDts_=!0;else{if(t.dts===this.latestDts_&&this.ignoreNextEqualDts_)return this.numSameDts_--,void(this.numSameDts_||(this.ignoreNextEqualDts_=!1));this.captionPackets_=this.captionPackets_.concat(function(t,e){var i,r,n,s,a=[];if(!(64&e[0]))return a;for(r=31&e[0],i=0;i<r;i++)s={type:3&e[2+(n=3*i)],pts:t},4&e[n+2]&&(s.ccData=e[n+3]<<8|e[n+4],a.push(s));return a}(t.pts,i)),this.latestDts_!==t.dts&&(this.numSameDts_=0),this.numSameDts_++,this.latestDts_=t.dts}},G.prototype.flush=function(){this.captionPackets_.length?(this.captionPackets_.forEach(function(t,e){t.presortIndex=e}),this.captionPackets_.sort(function(t,e){return t.pts===e.pts?t.presortIndex-e.presortIndex:t.pts-e.pts}),this.captionPackets_.forEach(function(t){t.type<2&&this.dispatchCea608Packet(t)},this),this.captionPackets_.length=0,this.ccStreams_.forEach(function(t){t.flush()},this)):this.ccStreams_.forEach(function(t){t.flush()},this)},G.prototype.reset=function(){this.latestDts_=null,this.ignoreNextEqualDts_=!1,this.numSameDts_=0,this.activeCea608Channel_=[null,null],this.ccStreams_.forEach(function(t){t.reset()})},G.prototype.dispatchCea608Packet=function(t){this.setsChannel1Active(t)?this.activeCea608Channel_[t.type]=0:this.setsChannel2Active(t)&&(this.activeCea608Channel_[t.type]=1),null!==this.activeCea608Channel_[t.type]&&this.ccStreams_[(t.type<<1)+this.activeCea608Channel_[t.type]].push(t)},G.prototype.setsChannel1Active=function(t){return 4096==(30720&t.ccData)},G.prototype.setsChannel2Active=function(t){return 6144==(30720&t.ccData)};var X={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,304:174,305:176,306:189,307:191,308:8482,309:162,310:163,311:9834,312:224,313:160,314:232,315:226,316:234,317:238,318:244,319:251,544:193,545:201,546:211,547:218,548:220,549:252,550:8216,551:161,552:42,553:39,554:8212,555:169,556:8480,557:8226,558:8220,559:8221,560:192,561:194,562:199,563:200,564:202,565:203,566:235,567:206,568:207,569:239,570:212,571:217,572:249,573:219,574:171,575:187,800:195,801:227,802:205,803:204,804:236,805:210,806:242,807:213,808:245,809:123,810:125,811:92,812:94,813:95,814:124,815:126,816:196,817:228,818:214,819:246,820:223,821:165,822:164,823:9474,824:197,825:229,826:216,827:248,828:9484,829:9488,830:9492,831:9496},Y=function(t){return null===t?"":(t=X[t]||t,String.fromCharCode(t))},$=[4352,4384,4608,4640,5376,5408,5632,5664,5888,5920,4096,4864,4896,5120,5152],K=function(){for(var t=[],e=15;e--;)t.push("");return t},Q=function t(e,i){t.prototype.init.call(this),this.field_=e||0,this.dataChannel_=i||0,this.name_="CC"+(1+(this.field_<<1|this.dataChannel_)),this.setConstants(),this.reset(),this.push=function(t){var e,i,r,n,s;if((e=32639&t.ccData)!==this.lastControlCode_){if(4096==(61440&e)?this.lastControlCode_=e:e!==this.PADDING_&&(this.lastControlCode_=null),r=e>>>8,n=255&e,e!==this.PADDING_)if(e===this.RESUME_CAPTION_LOADING_)this.mode_="popOn";else if(e===this.END_OF_CAPTION_)this.clearFormatting(t.pts),this.flushDisplayed(t.pts),i=this.displayed_,this.displayed_=this.nonDisplayed_,this.nonDisplayed_=i,this.startPts_=t.pts;else if(e===this.ROLL_UP_2_ROWS_)this.topRow_=13,this.mode_="rollUp";else if(e===this.ROLL_UP_3_ROWS_)this.topRow_=12,this.mode_="rollUp";else if(e===this.ROLL_UP_4_ROWS_)this.topRow_=11,this.mode_="rollUp";else if(e===this.CARRIAGE_RETURN_)this.clearFormatting(t.pts),this.flushDisplayed(t.pts),this.shiftRowsUp_(),this.startPts_=t.pts;else if(e===this.BACKSPACE_)"popOn"===this.mode_?this.nonDisplayed_[14]=this.nonDisplayed_[14].slice(0,-1):this.displayed_[14]=this.displayed_[14].slice(0,-1);else if(e===this.ERASE_DISPLAYED_MEMORY_)this.flushDisplayed(t.pts),this.displayed_=K();else if(e===this.ERASE_NON_DISPLAYED_MEMORY_)this.nonDisplayed_=K();else if(e===this.RESUME_DIRECT_CAPTIONING_)this.mode_="paintOn";else if(this.isSpecialCharacter(r,n))s=Y((r=(3&r)<<8)|n),this[this.mode_](t.pts,s),this.column_++;else if(this.isExtCharacter(r,n))"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[14]=this.displayed_[14].slice(0,-1),s=Y((r=(3&r)<<8)|n),this[this.mode_](t.pts,s),this.column_++;else if(this.isMidRowCode(r,n))this.clearFormatting(t.pts),this[this.mode_](t.pts," "),this.column_++,14==(14&n)&&this.addFormatting(t.pts,["i"]),1==(1&n)&&this.addFormatting(t.pts,["u"]);else if(this.isOffsetControlCode(r,n))this.column_+=3&n;else if(this.isPAC(r,n)){var a=$.indexOf(7968&e);a!==this.row_&&(this.clearFormatting(t.pts),this.row_=a),1&n&&-1===this.formatting_.indexOf("u")&&this.addFormatting(t.pts,["u"]),16==(16&e)&&(this.column_=4*((14&e)>>1)),this.isColorPAC(n)&&14==(14&n)&&this.addFormatting(t.pts,["i"])}else this.isNormalChar(r)&&(0===n&&(n=null),s=Y(r),s+=Y(n),this[this.mode_](t.pts,s),this.column_+=s.length)}else this.lastControlCode_=null}};Q.prototype=new z,Q.prototype.flushDisplayed=function(t){var e=this.displayed_.map(function(t){return t.trim()}).join("\n").replace(/^\n+|\n+$/g,"");e.length&&this.trigger("data",{startPts:this.startPts_,endPts:t,text:e,stream:this.name_})},Q.prototype.reset=function(){this.mode_="popOn",this.topRow_=0,this.startPts_=0,this.displayed_=K(),this.nonDisplayed_=K(),this.lastControlCode_=null,this.column_=0,this.row_=14,this.formatting_=[]},Q.prototype.setConstants=function(){0===this.dataChannel_?(this.BASE_=16,this.EXT_=17,this.CONTROL_=(20|this.field_)<<8,this.OFFSET_=23):1===this.dataChannel_&&(this.BASE_=24,this.EXT_=25,this.CONTROL_=(28|this.field_)<<8,this.OFFSET_=31),this.PADDING_=0,this.RESUME_CAPTION_LOADING_=32|this.CONTROL_,this.END_OF_CAPTION_=47|this.CONTROL_,this.ROLL_UP_2_ROWS_=37|this.CONTROL_,this.ROLL_UP_3_ROWS_=38|this.CONTROL_,this.ROLL_UP_4_ROWS_=39|this.CONTROL_,this.CARRIAGE_RETURN_=45|this.CONTROL_,this.RESUME_DIRECT_CAPTIONING_=41|this.CONTROL_,this.BACKSPACE_=33|this.CONTROL_,this.ERASE_DISPLAYED_MEMORY_=44|this.CONTROL_,this.ERASE_NON_DISPLAYED_MEMORY_=46|this.CONTROL_},Q.prototype.isSpecialCharacter=function(t,e){return t===this.EXT_&&48<=e&&e<=63},Q.prototype.isExtCharacter=function(t,e){return(t===this.EXT_+1||t===this.EXT_+2)&&32<=e&&e<=63},Q.prototype.isMidRowCode=function(t,e){return t===this.EXT_&&32<=e&&e<=47},Q.prototype.isOffsetControlCode=function(t,e){return t===this.OFFSET_&&33<=e&&e<=35},Q.prototype.isPAC=function(t,e){return t>=this.BASE_&&t<this.BASE_+8&&64<=e&&e<=127},Q.prototype.isColorPAC=function(t){return 64<=t&&t<=79||96<=t&&t<=127},Q.prototype.isNormalChar=function(t){return 32<=t&&t<=127},Q.prototype.addFormatting=function(t,e){this.formatting_=this.formatting_.concat(e);var i=e.reduce(function(t,e){return t+"<"+e+">"},"");this[this.mode_](t,i)},Q.prototype.clearFormatting=function(t){if(this.formatting_.length){var e=this.formatting_.reverse().reduce(function(t,e){return t+"</"+e+">"},"");this.formatting_=[],this[this.mode_](t,e)}},Q.prototype.popOn=function(t,e){var i=this.nonDisplayed_[this.row_];i+=e,this.nonDisplayed_[this.row_]=i},Q.prototype.rollUp=function(t,e){var i=this.displayed_[14];i+=e,this.displayed_[14]=i},Q.prototype.shiftRowsUp_=function(){var t;for(t=0;t<this.topRow_;t++)this.displayed_[t]="";for(t=this.topRow_;t<14;t++)this.displayed_[t]=this.displayed_[t+1];this.displayed_[14]=""},Q.prototype.paintOn=function(){};var J={CaptionStream:G,Cea608Stream:Q},Z={H264_STREAM_TYPE:27,ADTS_STREAM_TYPE:15,METADATA_STREAM_TYPE:21},tt=function(t,e){var i=1;for(e<t&&(i=-1);4294967296<Math.abs(e-t);)t+=8589934592*i;return t},et=function t(e){var i,r;t.prototype.init.call(this),this.type_=e,this.push=function(t){t.type===this.type_&&(void 0===r&&(r=t.dts),t.dts=tt(t.dts,r),t.pts=tt(t.pts,r),i=t.dts,this.trigger("data",t))},this.flush=function(){r=i,this.trigger("done")},this.discontinuity=function(){i=r=void 0}};et.prototype=new z;var it,rt=et,nt=function(t,e,i){var r,n="";for(r=e;r<i;r++)n+="%"+("00"+t[r].toString(16)).slice(-2);return n},st=function(t,e,i){return decodeURIComponent(nt(t,e,i))},at=function(t){return t[0]<<21|t[1]<<14|t[2]<<7|t[3]},ot={TXXX:function(t){var e;if(3===t.data[0]){for(e=1;e<t.data.length;e++)if(0===t.data[e]){t.description=st(t.data,1,e),t.value=st(t.data,e+1,t.data.length).replace(/\0*$/,"");break}t.data=t.value}},WXXX:function(t){var e;if(3===t.data[0])for(e=1;e<t.data.length;e++)if(0===t.data[e]){t.description=st(t.data,1,e),t.url=st(t.data,e+1,t.data.length);break}},PRIV:function(t){var e,i;for(e=0;e<t.data.length;e++)if(0===t.data[e]){t.owner=(i=t.data,unescape(nt(i,0,e)));break}t.privateData=t.data.subarray(e+1),t.data=t.privateData}};(it=function(t){var e,u={debug:!(!t||!t.debug),descriptor:t&&t.descriptor},l=0,c=[],h=0;if(it.prototype.init.call(this),this.dispatchType=Z.METADATA_STREAM_TYPE.toString(16),u.descriptor)for(e=0;e<u.descriptor.length;e++)this.dispatchType+=("00"+u.descriptor[e].toString(16)).slice(-2);this.push=function(t){var e,i,r,n,s;if("timed-metadata"===t.type)if(t.dataAlignmentIndicator&&(h=0,c.length=0),0===c.length&&(t.data.length<10||t.data[0]!=="I".charCodeAt(0)||t.data[1]!=="D".charCodeAt(0)||t.data[2]!=="3".charCodeAt(0)))u.debug;else if(c.push(t),h+=t.data.byteLength,1===c.length&&(l=at(t.data.subarray(6,10)),l+=10),!(h<l)){for(e={data:new Uint8Array(l),frames:[],pts:c[0].pts,dts:c[0].dts},s=0;s<l;)e.data.set(c[0].data.subarray(0,l-s),s),s+=c[0].data.byteLength,h-=c[0].data.byteLength,c.shift();i=10,64&e.data[5]&&(i+=4,i+=at(e.data.subarray(10,14)),l-=at(e.data.subarray(16,20)));do{if((r=at(e.data.subarray(i+4,i+8)))<1)return;if((n={id:String.fromCharCode(e.data[i],e.data[i+1],e.data[i+2],e.data[i+3]),data:e.data.subarray(i+10,i+r+10)}).key=n.id,ot[n.id]&&(ot[n.id](n),"com.apple.streaming.transportStreamTimestamp"===n.owner)){var a=n.data,o=(1&a[3])<<30|a[4]<<22|a[5]<<14|a[6]<<6|a[7]>>>2;o*=4,o+=3&a[7],n.timeStamp=o,void 0===e.pts&&void 0===e.dts&&(e.pts=n.timeStamp,e.dts=n.timeStamp),this.trigger("timestamp",n)}e.frames.push(n),i+=10,i+=r}while(i<l);this.trigger("data",e)}}}).prototype=new z;var ut,lt,ct,ht=it,dt=rt;(ut=function(){var n=new Uint8Array(188),s=0;ut.prototype.init.call(this),this.push=function(t){var e,i=0,r=188;for(s?((e=new Uint8Array(t.byteLength+s)).set(n.subarray(0,s)),e.set(t,s),s=0):e=t;r<e.byteLength;)71!==e[i]||71!==e[r]?(i++,r++):(this.trigger("data",e.subarray(i,r)),i+=188,r+=188);i<e.byteLength&&(n.set(e.subarray(i),0),s=e.byteLength-i)},this.flush=function(){188===s&&71===n[0]&&(this.trigger("data",n),s=0),this.trigger("done")}}).prototype=new z,(lt=function(){var r,n,s,a;lt.prototype.init.call(this),(a=this).packetsWaitingForPmt=[],this.programMapTable=void 0,r=function(t,e){var i=0;e.payloadUnitStartIndicator&&(i+=t[i]+1),"pat"===e.type?n(t.subarray(i),e):s(t.subarray(i),e)},n=function(t,e){e.section_number=t[7],e.last_section_number=t[8],a.pmtPid=(31&t[10])<<8|t[11],e.pmtPid=a.pmtPid},s=function(t,e){var i,r;if(1&t[5]){for(a.programMapTable={video:null,audio:null,"timed-metadata":{}},i=3+((15&t[1])<<8|t[2])-4,r=12+((15&t[10])<<8|t[11]);r<i;){var n=t[r],s=(31&t[r+1])<<8|t[r+2];n===Z.H264_STREAM_TYPE&&null===a.programMapTable.video?a.programMapTable.video=s:n===Z.ADTS_STREAM_TYPE&&null===a.programMapTable.audio?a.programMapTable.audio=s:n===Z.METADATA_STREAM_TYPE&&(a.programMapTable["timed-metadata"][s]=n),r+=5+((15&t[r+3])<<8|t[r+4])}e.programMapTable=a.programMapTable}},this.push=function(t){var e={},i=4;if(e.payloadUnitStartIndicator=!!(64&t[1]),e.pid=31&t[1],e.pid<<=8,e.pid|=t[2],1<(48&t[3])>>>4&&(i+=t[i]+1),0===e.pid)e.type="pat",r(t.subarray(i),e),this.trigger("data",e);else if(e.pid===this.pmtPid)for(e.type="pmt",r(t.subarray(i),e),this.trigger("data",e);this.packetsWaitingForPmt.length;)this.processPes_.apply(this,this.packetsWaitingForPmt.shift());else void 0===this.programMapTable?this.packetsWaitingForPmt.push([t,i,e]):this.processPes_(t,i,e)},this.processPes_=function(t,e,i){i.pid===this.programMapTable.video?i.streamType=Z.H264_STREAM_TYPE:i.pid===this.programMapTable.audio?i.streamType=Z.ADTS_STREAM_TYPE:i.streamType=this.programMapTable["timed-metadata"][i.pid],i.type="pes",i.data=t.subarray(e),this.trigger("data",i)}}).prototype=new z,lt.STREAM_TYPES={h264:27,adts:15},(ct=function(){var d=this,r={data:[],size:0},n={data:[],size:0},s={data:[],size:0},a=function(t,e,i){var r,n,s=new Uint8Array(t.size),a={type:e},o=0,u=0;if(t.data.length&&!(t.size<9)){for(a.trackId=t.data[0].pid,o=0;o<t.data.length;o++)n=t.data[o],s.set(n.data,u),u+=n.data.byteLength;var l,c,h;l=s,(c=a).packetLength=6+(l[4]<<8|l[5]),c.dataAlignmentIndicator=0!=(4&l[6]),192&(h=l[7])&&(c.pts=(14&l[9])<<27|(255&l[10])<<20|(254&l[11])<<12|(255&l[12])<<5|(254&l[13])>>>3,c.pts*=4,c.pts+=(6&l[13])>>>1,c.dts=c.pts,64&h&&(c.dts=(14&l[14])<<27|(255&l[15])<<20|(254&l[16])<<12|(255&l[17])<<5|(254&l[18])>>>3,c.dts*=4,c.dts+=(6&l[18])>>>1)),c.data=l.subarray(9+l[8]),r="video"===e||a.packetLength<=t.size,(i||r)&&(t.size=0,t.data.length=0),r&&d.trigger("data",a)}};ct.prototype.init.call(this),this.push=function(i){({pat:function(){},pes:function(){var t,e;switch(i.streamType){case Z.H264_STREAM_TYPE:case Z.H264_STREAM_TYPE:t=r,e="video";break;case Z.ADTS_STREAM_TYPE:t=n,e="audio";break;case Z.METADATA_STREAM_TYPE:t=s,e="timed-metadata";break;default:return}i.payloadUnitStartIndicator&&a(t,e,!0),t.data.push(i),t.size+=i.data.byteLength},pmt:function(){var t={type:"metadata",tracks:[]},e=i.programMapTable;null!==e.video&&t.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+e.video,codec:"avc",type:"video"}),null!==e.audio&&t.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+e.audio,codec:"adts",type:"audio"}),d.trigger("data",t)}})[i.type]()},this.flush=function(){a(r,"video"),a(n,"audio"),a(s,"timed-metadata"),this.trigger("done")}}).prototype=new z;var pt={PAT_PID:0,MP2T_PACKET_LENGTH:188,TransportPacketStream:ut,TransportParseStream:lt,ElementaryStream:ct,TimestampRolloverStream:dt,CaptionStream:J.CaptionStream,Cea608Stream:J.Cea608Stream,MetadataStream:ht};for(var ft in Z)Z.hasOwnProperty(ft)&&(pt[ft]=Z[ft]);var mt,gt=pt,yt=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];(mt=function(){var l;mt.prototype.init.call(this),this.push=function(t){var e,i,r,n,s,a,o=0,u=0;if("audio"===t.type)for(l?(n=l,(l=new Uint8Array(n.byteLength+t.data.byteLength)).set(n),l.set(t.data,n.byteLength)):l=t.data;o+5<l.length;)if(255===l[o]&&240==(246&l[o+1])){if(i=2*(1&~l[o+1]),e=(3&l[o+3])<<11|l[o+4]<<3|(224&l[o+5])>>5,a=9e4*(s=1024*(1+(3&l[o+6])))/yt[(60&l[o+2])>>>2],r=o+e,l.byteLength<r)return;if(this.trigger("data",{pts:t.pts+u*a,dts:t.dts+u*a,sampleCount:s,audioobjecttype:1+(l[o+2]>>>6&3),channelcount:(1&l[o+2])<<2|(192&l[o+3])>>>6,samplerate:yt[(60&l[o+2])>>>2],samplingfrequencyindex:(60&l[o+2])>>>2,samplesize:16,data:l.subarray(o+7+i,r)}),l.byteLength===r)return void(l=void 0);u++,l=l.subarray(r)}else o++},this.flush=function(){this.trigger("done")}}).prototype=new z;var vt,_t,bt,Tt=mt,St=function(r){var n=r.byteLength,s=0,a=0;this.length=function(){return 8*n},this.bitsAvailable=function(){return 8*n+a},this.loadWord=function(){var t=r.byteLength-n,e=new Uint8Array(4),i=Math.min(4,n);if(0===i)throw new Error("no bytes available");e.set(r.subarray(t,t+i)),s=new DataView(e.buffer).getUint32(0),a=8*i,n-=i},this.skipBits=function(t){var e;t<a||(t-=a,t-=8*(e=Math.floor(t/8)),n-=e,this.loadWord()),s<<=t,a-=t},this.readBits=function(t){var e=Math.min(a,t),i=s>>>32-e;return 0<(a-=e)?s<<=e:0<n&&this.loadWord(),0<(e=t-e)?i<<e|this.readBits(e):i},this.skipLeadingZeros=function(){var t;for(t=0;t<a;++t)if(0!=(s&2147483648>>>t))return s<<=t,a-=t,t;return this.loadWord(),t+this.skipLeadingZeros()},this.skipUnsignedExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.skipExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.readUnsignedExpGolomb=function(){var t=this.skipLeadingZeros();return this.readBits(t+1)-1},this.readExpGolomb=function(){var t=this.readUnsignedExpGolomb();return 1&t?1+t>>>1:-1*(t>>>1)},this.readBoolean=function(){return 1===this.readBits(1)},this.readUnsignedByte=function(){return this.readBits(8)},this.loadWord()};(_t=function(){var i,r,n=0;_t.prototype.init.call(this),this.push=function(t){var e;for(r?((e=new Uint8Array(r.byteLength+t.data.byteLength)).set(r),e.set(t.data,r.byteLength),r=e):r=t.data;n<r.byteLength-3;n++)if(1===r[n+2]){i=n+5;break}for(;i<r.byteLength;)switch(r[i]){case 0:if(0!==r[i-1]){i+=2;break}if(0!==r[i-2]){i++;break}for(n+3!==i-2&&this.trigger("data",r.subarray(n+3,i-2));1!==r[++i]&&i<r.length;);n=i-2,i+=3;break;case 1:if(0!==r[i-1]||0!==r[i-2]){i+=3;break}this.trigger("data",r.subarray(n+3,i-2)),n=i-2,i+=3;break;default:i+=3}r=r.subarray(n),i-=n,n=0},this.flush=function(){r&&3<r.byteLength&&this.trigger("data",r.subarray(n+3)),r=null,n=0,this.trigger("done")}}).prototype=new z,bt={100:!0,110:!0,122:!0,244:!0,44:!0,83:!0,86:!0,118:!0,128:!0,138:!0,139:!0,134:!0},(vt=function(){var i,r,n,s,a,o,_,e=new _t;vt.prototype.init.call(this),(i=this).push=function(t){"video"===t.type&&(r=t.trackId,n=t.pts,s=t.dts,e.push(t))},e.on("data",function(t){var e={trackId:r,pts:n,dts:s,data:t};switch(31&t[0]){case 5:e.nalUnitType="slice_layer_without_partitioning_rbsp_idr";break;case 6:e.nalUnitType="sei_rbsp",e.escapedRBSP=a(t.subarray(1));break;case 7:e.nalUnitType="seq_parameter_set_rbsp",e.escapedRBSP=a(t.subarray(1)),e.config=o(e.escapedRBSP);break;case 8:e.nalUnitType="pic_parameter_set_rbsp";break;case 9:e.nalUnitType="access_unit_delimiter_rbsp"}i.trigger("data",e)}),e.on("done",function(){i.trigger("done")}),this.flush=function(){e.flush()},_=function(t,e){var i,r=8,n=8;for(i=0;i<t;i++)0!==n&&(n=(r+e.readExpGolomb()+256)%256),r=0===n?r:n},a=function(t){for(var e,i,r=t.byteLength,n=[],s=1;s<r-2;)0===t[s]&&0===t[s+1]&&3===t[s+2]?(n.push(s+2),s+=2):s++;if(0===n.length)return t;e=r-n.length,i=new Uint8Array(e);var a=0;for(s=0;s<e;a++,s++)a===n[0]&&(a++,n.shift()),i[s]=t[a];return i},o=function(t){var e,i,r,n,s,a,o,u,l,c,h,d,p,f=0,m=0,g=0,y=0,v=1;if(i=(e=new St(t)).readUnsignedByte(),n=e.readUnsignedByte(),r=e.readUnsignedByte(),e.skipUnsignedExpGolomb(),bt[i]&&(3===(s=e.readUnsignedExpGolomb())&&e.skipBits(1),e.skipUnsignedExpGolomb(),e.skipUnsignedExpGolomb(),e.skipBits(1),e.readBoolean()))for(h=3!==s?8:12,p=0;p<h;p++)e.readBoolean()&&_(p<6?16:64,e);if(e.skipUnsignedExpGolomb(),0===(a=e.readUnsignedExpGolomb()))e.readUnsignedExpGolomb();else if(1===a)for(e.skipBits(1),e.skipExpGolomb(),e.skipExpGolomb(),o=e.readUnsignedExpGolomb(),p=0;p<o;p++)e.skipExpGolomb();if(e.skipUnsignedExpGolomb(),e.skipBits(1),u=e.readUnsignedExpGolomb(),l=e.readUnsignedExpGolomb(),0===(c=e.readBits(1))&&e.skipBits(1),e.skipBits(1),e.readBoolean()&&(f=e.readUnsignedExpGolomb(),m=e.readUnsignedExpGolomb(),g=e.readUnsignedExpGolomb(),y=e.readUnsignedExpGolomb()),e.readBoolean()&&e.readBoolean()){switch(e.readUnsignedByte()){case 1:d=[1,1];break;case 2:d=[12,11];break;case 3:d=[10,11];break;case 4:d=[16,11];break;case 5:d=[40,33];break;case 6:d=[24,11];break;case 7:d=[20,11];break;case 8:d=[32,11];break;case 9:d=[80,33];break;case 10:d=[18,11];break;case 11:d=[15,11];break;case 12:d=[64,33];break;case 13:d=[160,99];break;case 14:d=[4,3];break;case 15:d=[3,2];break;case 16:d=[2,1];break;case 255:d=[e.readUnsignedByte()<<8|e.readUnsignedByte(),e.readUnsignedByte()<<8|e.readUnsignedByte()]}d&&(v=d[0]/d[1])}return{profileIdc:i,levelIdc:r,profileCompatibility:n,width:Math.ceil((16*(u+1)-2*f-2*m)*v),height:(2-c)*(l+1)*16-2*g-2*y}}}).prototype=new z;var kt,Ct={H264Stream:vt,NalByteStream:_t};(kt=function(){var o=new Uint8Array,u=0;kt.prototype.init.call(this),this.setTimestamp=function(t){u=t},this.parseId3TagSize=function(t,e){var i=t[e+6]<<21|t[e+7]<<14|t[e+8]<<7|t[e+9];return(16&t[e+5])>>4?i+20:i+10},this.parseAdtsSize=function(t,e){var i=(224&t[e+5])>>5,r=t[e+4]<<3;return 6144&t[e+3]|r|i},this.push=function(t){var e,i,r,n,s=0,a=0;for(o.length?(n=o.length,(o=new Uint8Array(t.byteLength+n)).set(o.subarray(0,n)),o.set(t,n)):o=t;3<=o.length-a;)if(o[a]!=="I".charCodeAt(0)||o[a+1]!=="D".charCodeAt(0)||o[a+2]!=="3".charCodeAt(0))if(!0&o[a]&&240==(240&o[a+1])){if(o.length-a<7)break;if((s=this.parseAdtsSize(o,a))>o.length)break;r={type:"audio",data:o.subarray(a,a+s),pts:u,dts:u},this.trigger("data",r),a+=s}else a++;else{if(o.length-a<10)break;if((s=this.parseId3TagSize(o,a))>o.length)break;i={type:"timed-metadata",data:o.subarray(a,a+s)},this.trigger("data",i),a+=s}e=o.length-a,o=0<e?o.subarray(a):new Uint8Array}}).prototype=new z;var Et,wt,At,Lt,Pt,Ot,xt,It,Dt,Rt,Mt,Ut,Nt,Bt,jt,Ft=kt,Ht=[33,16,5,32,164,27],Vt=[33,65,108,84,1,2,4,8,168,2,4,8,17,191,252],qt=function(t){for(var e=[];t--;)e.push(0);return e},Wt={96000:[Ht,[227,64],qt(154),[56]],88200:[Ht,[231],qt(170),[56]],64000:[Ht,[248,192],qt(240),[56]],48000:[Ht,[255,192],qt(268),[55,148,128],qt(54),[112]],44100:[Ht,[255,192],qt(268),[55,163,128],qt(84),[112]],32000:[Ht,[255,192],qt(268),[55,234],qt(226),[112]],24000:[Ht,[255,192],qt(268),[55,255,128],qt(268),[111,112],qt(126),[224]],16000:[Ht,[255,192],qt(268),[55,255,128],qt(268),[111,255],qt(269),[223,108],qt(195),[1,192]],12000:[Vt,qt(268),[3,127,248],qt(268),[6,255,240],qt(268),[13,255,224],qt(268),[27,253,128],qt(259),[56]],11025:[Vt,qt(268),[3,127,248],qt(268),[6,255,240],qt(268),[13,255,224],qt(268),[27,255,192],qt(268),[55,175,128],qt(108),[112]],8000:[Vt,qt(268),[3,121,16],qt(47),[7]]},zt=(Et=Wt,Object.keys(Et).reduce(function(t,e){return t[e]=new Uint8Array(Et[e].reduce(function(t,e){return t.concat(e)},[])),t},{})),Gt=(wt=function(t){return 9e4*t},At=function(t,e){return t*e},Lt=function(t){return t/9e4},Pt=function(t,e){return t/e},function(t,e){return wt(Pt(t,e))}),Xt=function(t,e){return At(Lt(t),e)},Yt=Ct.H264Stream,$t=["audioobjecttype","channelcount","samplerate","samplingfrequencyindex","samplesize"],Kt=["width","height","profileIdc","levelIdc","profileCompatibility"];Rt=function(t){return t[0]==="I".charCodeAt(0)&&t[1]==="D".charCodeAt(0)&&t[2]==="3".charCodeAt(0)},Bt=function(t,e){var i;if(t.length!==e.length)return!1;for(i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0},jt=function(t){var e,i=0;for(e=0;e<t.length;e++)i+=t[e].data.byteLength;return i},(xt=function(n,s){var a=[],o=0,e=0,l=0,c=1/0;s=s||{},xt.prototype.init.call(this),this.push=function(e){Mt(n,e),n&&$t.forEach(function(t){n[t]=e[t]}),a.push(e)},this.setEarliestDts=function(t){e=t-n.timelineStartInfo.baseMediaDecodeTime},this.setVideoBaseMediaDecodeTime=function(t){c=t},this.setAudioAppendStart=function(t){l=t},this.flush=function(){var t,e,i,r;0!==a.length&&(t=this.trimAdtsFramesByEarliestDts_(a),n.baseMediaDecodeTime=Nt(n,s.keepOriginalTimestamps),this.prefixWithSilence_(n,t),n.samples=this.generateSampleTable_(t),i=q.mdat(this.concatenateFrameData_(t)),a=[],e=q.moof(o,[n]),r=new Uint8Array(e.byteLength+i.byteLength),o++,r.set(e),r.set(i,e.byteLength),Ut(n),this.trigger("data",{track:n,boxes:r})),this.trigger("done","AudioSegmentStream")},this.prefixWithSilence_=function(t,e){var i,r,n,s,a=0,o=0,u=0;if(e.length&&(i=Gt(t.baseMediaDecodeTime,t.samplerate),r=Math.ceil(9e4/(t.samplerate/1024)),l&&c&&(a=i-Math.max(l,c),u=(o=Math.floor(a/r))*r),!(o<1||45e3<u))){for((n=zt[t.samplerate])||(n=e[0].data),s=0;s<o;s++)e.splice(s,0,{data:n});t.baseMediaDecodeTime-=Math.floor(Xt(u,t.samplerate))}},this.trimAdtsFramesByEarliestDts_=function(t){return n.minSegmentDts>=e?t:(n.minSegmentDts=1/0,t.filter(function(t){return t.dts>=e&&(n.minSegmentDts=Math.min(n.minSegmentDts,t.dts),n.minSegmentPts=n.minSegmentDts,!0)}))},this.generateSampleTable_=function(t){var e,i,r=[];for(e=0;e<t.length;e++)i=t[e],r.push({size:i.data.byteLength,duration:1024});return r},this.concatenateFrameData_=function(t){var e,i,r=0,n=new Uint8Array(jt(t));for(e=0;e<t.length;e++)i=t[e],n.set(i.data,r),r+=i.data.byteLength;return n}}).prototype=new z,(Ot=function(o,u){var e,i,l=0,c=[],h=[];u=u||{},Ot.prototype.init.call(this),delete o.minPTS,this.gopCache_=[],this.push=function(t){Mt(o,t),"seq_parameter_set_rbsp"!==t.nalUnitType||e||(e=t.config,o.sps=[t.data],Kt.forEach(function(t){o[t]=e[t]},this)),"pic_parameter_set_rbsp"!==t.nalUnitType||i||(i=t.data,o.pps=[t.data]),c.push(t)},this.flush=function(){for(var t,e,i,r,n,s;c.length&&"access_unit_delimiter_rbsp"!==c[0].nalUnitType;)c.shift();if(0===c.length)return this.resetStream_(),void this.trigger("done","VideoSegmentStream");if(t=this.groupNalsIntoFrames_(c),(i=this.groupFramesIntoGops_(t))[0][0].keyFrame||((e=this.getGopForFusion_(c[0],o))?(i.unshift(e),i.byteLength+=e.byteLength,i.nalCount+=e.nalCount,i.pts=e.pts,i.dts=e.dts,i.duration+=e.duration):i=this.extendFirstKeyFrame_(i)),h.length){var a;if(!(a=u.alignGopsAtEnd?this.alignGopsAtEnd_(i):this.alignGopsAtStart_(i)))return this.gopCache_.unshift({gop:i.pop(),pps:o.pps,sps:o.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),c=[],this.resetStream_(),void this.trigger("done","VideoSegmentStream");Ut(o),i=a}Mt(o,i),o.samples=this.generateSampleTable_(i),n=q.mdat(this.concatenateNalData_(i)),o.baseMediaDecodeTime=Nt(o,u.keepOriginalTimestamps),this.trigger("processedGopsInfo",i.map(function(t){return{pts:t.pts,dts:t.dts,byteLength:t.byteLength}})),this.gopCache_.unshift({gop:i.pop(),pps:o.pps,sps:o.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),c=[],this.trigger("baseMediaDecodeTime",o.baseMediaDecodeTime),this.trigger("timelineStartInfo",o.timelineStartInfo),r=q.moof(l,[o]),s=new Uint8Array(r.byteLength+n.byteLength),l++,s.set(r),s.set(n,r.byteLength),this.trigger("data",{track:o,boxes:s}),this.resetStream_(),this.trigger("done","VideoSegmentStream")},this.resetStream_=function(){Ut(o),i=e=void 0},this.getGopForFusion_=function(t){var e,i,r,n,s,a=1/0;for(s=0;s<this.gopCache_.length;s++)r=(n=this.gopCache_[s]).gop,o.pps&&Bt(o.pps[0],n.pps[0])&&o.sps&&Bt(o.sps[0],n.sps[0])&&(r.dts<o.timelineStartInfo.dts||-1e4<=(e=t.dts-r.dts-r.duration)&&e<=45e3&&(!i||e<a)&&(i=n,a=e));return i?i.gop:null},this.extendFirstKeyFrame_=function(t){var e;return!t[0][0].keyFrame&&1<t.length&&(e=t.shift(),t.byteLength-=e.byteLength,t.nalCount-=e.nalCount,t[0][0].dts=e.dts,t[0][0].pts=e.pts,t[0][0].duration+=e.duration),t},this.groupNalsIntoFrames_=function(t){var e,i,r=[],n=[];for(e=r.byteLength=0;e<t.length;e++)"access_unit_delimiter_rbsp"===(i=t[e]).nalUnitType?(r.length&&(r.duration=i.dts-r.dts,n.push(r)),(r=[i]).byteLength=i.data.byteLength,r.pts=i.pts,r.dts=i.dts):("slice_layer_without_partitioning_rbsp_idr"===i.nalUnitType&&(r.keyFrame=!0),r.duration=i.dts-r.dts,r.byteLength+=i.data.byteLength,r.push(i));return n.length&&(!r.duration||r.duration<=0)&&(r.duration=n[n.length-1].duration),n.push(r),n},this.groupFramesIntoGops_=function(t){var e,i,r=[],n=[];for(r.byteLength=0,r.nalCount=0,r.duration=0,r.pts=t[0].pts,r.dts=t[0].dts,n.byteLength=0,n.nalCount=0,n.duration=0,n.pts=t[0].pts,n.dts=t[0].dts,e=0;e<t.length;e++)(i=t[e]).keyFrame?(r.length&&(n.push(r),n.byteLength+=r.byteLength,n.nalCount+=r.nalCount,n.duration+=r.duration),(r=[i]).nalCount=i.length,r.byteLength=i.byteLength,r.pts=i.pts,r.dts=i.dts,r.duration=i.duration):(r.duration+=i.duration,r.nalCount+=i.length,r.byteLength+=i.byteLength,r.push(i));return n.length&&r.duration<=0&&(r.duration=n[n.length-1].duration),n.byteLength+=r.byteLength,n.nalCount+=r.nalCount,n.duration+=r.duration,n.push(r),n},this.generateSampleTable_=function(t,e){var i,r,n,s,a,o=e||0,u=[];for(i=0;i<t.length;i++)for(s=t[i],r=0;r<s.length;r++)a=s[r],(n={size:0,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0,degradationPriority:0}}).dataOffset=o,n.compositionTimeOffset=a.pts-a.dts,n.duration=a.duration,n.size=4*a.length,n.size+=a.byteLength,a.keyFrame&&(n.flags.dependsOn=2),o+=n.size,u.push(n);return u},this.concatenateNalData_=function(t){var e,i,r,n,s,a,o=0,u=t.byteLength,l=t.nalCount,c=new Uint8Array(u+4*l),h=new DataView(c.buffer);for(e=0;e<t.length;e++)for(n=t[e],i=0;i<n.length;i++)for(s=n[i],r=0;r<s.length;r++)a=s[r],h.setUint32(o,a.data.byteLength),o+=4,c.set(a.data,o),o+=a.data.byteLength;return c},this.alignGopsAtStart_=function(t){var e,i,r,n,s,a,o,u;for(s=t.byteLength,a=t.nalCount,o=t.duration,e=i=0;e<h.length&&i<t.length&&(r=h[e],n=t[i],r.pts!==n.pts);)n.pts>r.pts?e++:(i++,s-=n.byteLength,a-=n.nalCount,o-=n.duration);return 0===i?t:i===t.length?null:((u=t.slice(i)).byteLength=s,u.duration=o,u.nalCount=a,u.pts=u[0].pts,u.dts=u[0].dts,u)},this.alignGopsAtEnd_=function(t){var e,i,r,n,s,a,o;for(e=h.length-1,i=t.length-1,s=null,a=!1;0<=e&&0<=i;){if(r=h[e],n=t[i],r.pts===n.pts){a=!0;break}r.pts>n.pts?e--:(e===h.length-1&&(s=i),i--)}if(!a&&null===s)return null;if(0===(o=a?i:s))return t;var u=t.slice(o),l=u.reduce(function(t,e){return t.byteLength+=e.byteLength,t.duration+=e.duration,t.nalCount+=e.nalCount,t},{byteLength:0,duration:0,nalCount:0});return u.byteLength=l.byteLength,u.duration=l.duration,u.nalCount=l.nalCount,u.pts=u[0].pts,u.dts=u[0].dts,u},this.alignGopsWith=function(t){h=t}}).prototype=new z,Mt=function(t,e){"number"==typeof e.pts&&(void 0===t.timelineStartInfo.pts&&(t.timelineStartInfo.pts=e.pts),void 0===t.minSegmentPts?t.minSegmentPts=e.pts:t.minSegmentPts=Math.min(t.minSegmentPts,e.pts),void 0===t.maxSegmentPts?t.maxSegmentPts=e.pts:t.maxSegmentPts=Math.max(t.maxSegmentPts,e.pts)),"number"==typeof e.dts&&(void 0===t.timelineStartInfo.dts&&(t.timelineStartInfo.dts=e.dts),void 0===t.minSegmentDts?t.minSegmentDts=e.dts:t.minSegmentDts=Math.min(t.minSegmentDts,e.dts),void 0===t.maxSegmentDts?t.maxSegmentDts=e.dts:t.maxSegmentDts=Math.max(t.maxSegmentDts,e.dts))},Ut=function(t){delete t.minSegmentDts,delete t.maxSegmentDts,delete t.minSegmentPts,delete t.maxSegmentPts},Nt=function(t,e){var i,r=t.minSegmentDts;return e||(r-=t.timelineStartInfo.dts),i=t.timelineStartInfo.baseMediaDecodeTime,i+=r,i=Math.max(0,i),"audio"===t.type&&(i*=t.samplerate/9e4,i=Math.floor(i)),i},(Dt=function(t,e){this.numberOfTracks=0,this.metadataStream=e,"undefined"!=typeof t.remux?this.remuxTracks=!!t.remux:this.remuxTracks=!0,this.pendingTracks=[],this.videoTrack=null,this.pendingBoxes=[],this.pendingCaptions=[],this.pendingMetadata=[],this.pendingBytes=0,this.emittedTracks=0,Dt.prototype.init.call(this),this.push=function(t){return t.text?this.pendingCaptions.push(t):t.frames?this.pendingMetadata.push(t):(this.pendingTracks.push(t.track),this.pendingBoxes.push(t.boxes),this.pendingBytes+=t.boxes.byteLength,"video"===t.track.type&&(this.videoTrack=t.track),void("audio"===t.track.type&&(this.audioTrack=t.track)))}}).prototype=new z,Dt.prototype.flush=function(t){var e,i,r,n,s=0,a={captions:[],captionStreams:{},metadata:[],info:{}},o=0;if(this.pendingTracks.length<this.numberOfTracks){if("VideoSegmentStream"!==t&&"AudioSegmentStream"!==t)return;if(this.remuxTracks)return;if(0===this.pendingTracks.length)return this.emittedTracks++,void(this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0))}for(this.videoTrack?(o=this.videoTrack.timelineStartInfo.pts,Kt.forEach(function(t){a.info[t]=this.videoTrack[t]},this)):this.audioTrack&&(o=this.audioTrack.timelineStartInfo.pts,$t.forEach(function(t){a.info[t]=this.audioTrack[t]},this)),1===this.pendingTracks.length?a.type=this.pendingTracks[0].type:a.type="combined",this.emittedTracks+=this.pendingTracks.length,r=q.initSegment(this.pendingTracks),a.initSegment=new Uint8Array(r.byteLength),a.initSegment.set(r),a.data=new Uint8Array(this.pendingBytes),n=0;n<this.pendingBoxes.length;n++)a.data.set(this.pendingBoxes[n],s),s+=this.pendingBoxes[n].byteLength;for(n=0;n<this.pendingCaptions.length;n++)(e=this.pendingCaptions[n]).startTime=e.startPts-o,e.startTime/=9e4,e.endTime=e.endPts-o,e.endTime/=9e4,a.captionStreams[e.stream]=!0,a.captions.push(e);for(n=0;n<this.pendingMetadata.length;n++)(i=this.pendingMetadata[n]).cueTime=i.pts-o,i.cueTime/=9e4,a.metadata.push(i);a.metadata.dispatchType=this.metadataStream.dispatchType,this.pendingTracks.length=0,this.videoTrack=null,this.pendingBoxes.length=0,this.pendingCaptions.length=0,this.pendingBytes=0,this.pendingMetadata.length=0,this.trigger("data",a),this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0)},(It=function(r){var n,s,a=this,i=!0;It.prototype.init.call(this),r=r||{},this.baseMediaDecodeTime=r.baseMediaDecodeTime||0,this.transmuxPipeline_={},this.setupAacPipeline=function(){var e={};(this.transmuxPipeline_=e).type="aac",e.metadataStream=new gt.MetadataStream,e.aacStream=new Ft,e.audioTimestampRolloverStream=new gt.TimestampRolloverStream("audio"),e.timedMetadataTimestampRolloverStream=new gt.TimestampRolloverStream("timed-metadata"),e.adtsStream=new Tt,e.coalesceStream=new Dt(r,e.metadataStream),e.headOfPipeline=e.aacStream,e.aacStream.pipe(e.audioTimestampRolloverStream).pipe(e.adtsStream),e.aacStream.pipe(e.timedMetadataTimestampRolloverStream).pipe(e.metadataStream).pipe(e.coalesceStream),e.metadataStream.on("timestamp",function(t){e.aacStream.setTimestamp(t.timeStamp)}),e.aacStream.on("data",function(t){"timed-metadata"!==t.type||e.audioSegmentStream||(s=s||{timelineStartInfo:{baseMediaDecodeTime:a.baseMediaDecodeTime},codec:"adts",type:"audio"},e.coalesceStream.numberOfTracks++,e.audioSegmentStream=new xt(s,r),e.adtsStream.pipe(e.audioSegmentStream).pipe(e.coalesceStream))}),e.coalesceStream.on("data",this.trigger.bind(this,"data")),e.coalesceStream.on("done",this.trigger.bind(this,"done"))},this.setupTsPipeline=function(){var i={};(this.transmuxPipeline_=i).type="ts",i.metadataStream=new gt.MetadataStream,i.packetStream=new gt.TransportPacketStream,i.parseStream=new gt.TransportParseStream,i.elementaryStream=new gt.ElementaryStream,i.videoTimestampRolloverStream=new gt.TimestampRolloverStream("video"),i.audioTimestampRolloverStream=new gt.TimestampRolloverStream("audio"),i.timedMetadataTimestampRolloverStream=new gt.TimestampRolloverStream("timed-metadata"),i.adtsStream=new Tt,i.h264Stream=new Yt,i.captionStream=new gt.CaptionStream,i.coalesceStream=new Dt(r,i.metadataStream),i.headOfPipeline=i.packetStream,i.packetStream.pipe(i.parseStream).pipe(i.elementaryStream),i.elementaryStream.pipe(i.videoTimestampRolloverStream).pipe(i.h264Stream),i.elementaryStream.pipe(i.audioTimestampRolloverStream).pipe(i.adtsStream),i.elementaryStream.pipe(i.timedMetadataTimestampRolloverStream).pipe(i.metadataStream).pipe(i.coalesceStream),i.h264Stream.pipe(i.captionStream).pipe(i.coalesceStream),i.elementaryStream.on("data",function(t){var e;if("metadata"===t.type){for(e=t.tracks.length;e--;)n||"video"!==t.tracks[e].type?s||"audio"!==t.tracks[e].type||((s=t.tracks[e]).timelineStartInfo.baseMediaDecodeTime=a.baseMediaDecodeTime):(n=t.tracks[e]).timelineStartInfo.baseMediaDecodeTime=a.baseMediaDecodeTime;n&&!i.videoSegmentStream&&(i.coalesceStream.numberOfTracks++,i.videoSegmentStream=new Ot(n,r),i.videoSegmentStream.on("timelineStartInfo",function(t){s&&(s.timelineStartInfo=t,i.audioSegmentStream.setEarliestDts(t.dts))}),i.videoSegmentStream.on("processedGopsInfo",a.trigger.bind(a,"gopInfo")),i.videoSegmentStream.on("baseMediaDecodeTime",function(t){s&&i.audioSegmentStream.setVideoBaseMediaDecodeTime(t)}),i.h264Stream.pipe(i.videoSegmentStream).pipe(i.coalesceStream)),s&&!i.audioSegmentStream&&(i.coalesceStream.numberOfTracks++,i.audioSegmentStream=new xt(s,r),i.adtsStream.pipe(i.audioSegmentStream).pipe(i.coalesceStream))}}),i.coalesceStream.on("data",this.trigger.bind(this,"data")),i.coalesceStream.on("done",this.trigger.bind(this,"done"))},this.setBaseMediaDecodeTime=function(t){var e=this.transmuxPipeline_;this.baseMediaDecodeTime=t,s&&(s.timelineStartInfo.dts=void 0,s.timelineStartInfo.pts=void 0,Ut(s),s.timelineStartInfo.baseMediaDecodeTime=t,e.audioTimestampRolloverStream&&e.audioTimestampRolloverStream.discontinuity()),n&&(e.videoSegmentStream&&(e.videoSegmentStream.gopCache_=[],e.videoTimestampRolloverStream.discontinuity()),n.timelineStartInfo.dts=void 0,n.timelineStartInfo.pts=void 0,Ut(n),e.captionStream.reset(),n.timelineStartInfo.baseMediaDecodeTime=t),e.timedMetadataTimestampRolloverStream&&e.timedMetadataTimestampRolloverStream.discontinuity()},this.setAudioAppendStart=function(t){s&&this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(t)},this.alignGopsWith=function(t){n&&this.transmuxPipeline_.videoSegmentStream&&this.transmuxPipeline_.videoSegmentStream.alignGopsWith(t)},this.push=function(t){if(i){var e=Rt(t);e&&"aac"!==this.transmuxPipeline_.type?this.setupAacPipeline():e||"ts"===this.transmuxPipeline_.type||this.setupTsPipeline(),i=!1}this.transmuxPipeline_.headOfPipeline.push(t)},this.flush=function(){i=!0,this.transmuxPipeline_.headOfPipeline.flush()},this.resetCaptions=function(){this.transmuxPipeline_.captionStream&&this.transmuxPipeline_.captionStream.reset()}}).prototype=new z;var Qt={Transmuxer:It,VideoSegmentStream:Ot,AudioSegmentStream:xt,AUDIO_PROPERTIES:$t,VIDEO_PROPERTIES:Kt},Jt={generator:q,Transmuxer:Qt.Transmuxer,AudioSegmentStream:Qt.AudioSegmentStream,VideoSegmentStream:Qt.VideoSegmentStream},Zt=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},te=function(){function r(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,i){return e&&r(t.prototype,e),i&&r(t,i),t}}(),ee=function(){function e(t){Zt(this,e),this.options=t||{},this.init()}return te(e,[{key:"init",value:function(){var t;this.transmuxer&&this.transmuxer.dispose(),this.transmuxer=new Jt.Transmuxer(this.options),(t=this.transmuxer).on("data",function(t){var e=t.initSegment;t.initSegment={data:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength};var i=t.data;t.data=i.buffer,H.postMessage({action:"data",segment:t,byteOffset:i.byteOffset,byteLength:i.byteLength},[t.data])}),t.captionStream&&t.captionStream.on("data",function(t){H.postMessage({action:"caption",data:t})}),t.on("done",function(t){H.postMessage({action:"done"})}),t.on("gopInfo",function(t){H.postMessage({action:"gopInfo",gopInfo:t})})}},{key:"push",value:function(t){var e=new Uint8Array(t.data,t.byteOffset,t.byteLength);this.transmuxer.push(e)}},{key:"reset",value:function(){this.init()}},{key:"setTimestampOffset",value:function(t){var e=t.timestampOffset||0;this.transmuxer.setBaseMediaDecodeTime(Math.round(9e4*e))}},{key:"setAudioAppendStart",value:function(t){this.transmuxer.setAudioAppendStart(Math.ceil(9e4*t.appendStart))}},{key:"flush",value:function(t){this.transmuxer.flush()}},{key:"resetCaptions",value:function(){this.transmuxer.resetCaptions()}},{key:"alignGopsWith",value:function(t){this.transmuxer.alignGopsWith(t.gopsToAlignWith.slice())}}]),e}();new function(t){t.onmessage=function(t){"init"===t.data.action&&t.data.options?this.messageHandlers=new ee(t.data.options):(this.messageHandlers||(this.messageHandlers=new ee),t.data&&t.data.action&&"init"!==t.data.action&&this.messageHandlers[t.data.action]&&this.messageHandlers[t.data.action](t.data))}}(re)}()}),Mu=function(t){return/mp4a\.\d+.\d+/i.test(t)},Uu=function(t){return/avc1\.[\da-f]+/i.test(t)},Nu=function(t){return t.map(function(t){return t.replace(/avc1\.(\d+)\.(\d+)/i,function(t,e,i){return"avc1."+("00"+Number(e).toString(16)).slice(-2)+"00"+("00"+Number(i).toString(16)).slice(-2)})})},Bu=function(n){function s(t,e){y(this,s);var i=b(this,n.call(this,As.EventTarget));i.timestampOffset_=0,i.pendingBuffers_=[],i.bufferUpdating_=!1,i.mediaSource_=t,i.codecs_=e,i.audioCodec_=null,i.videoCodec_=null,i.audioDisabled_=!1,i.appendAudioInitSegment_=!0,i.gopBuffer_=[],i.timeMapping_=0,i.safeAppend_=11<=As.browser.IE_VERSION;var r={remux:!1,alignGopsAtEnd:i.safeAppend_};return i.codecs_.forEach(function(t){Mu(t)?i.audioCodec_=t:Uu(t)&&(i.videoCodec_=t)}),i.transmuxer_=new Ru,i.transmuxer_.postMessage({action:"init",options:r}),i.transmuxer_.onmessage=function(t){return"data"===t.data.action?i.data_(t):"done"===t.data.action?i.done_(t):"gopInfo"===t.data.action?i.appendGopInfo_(t):void 0},Object.defineProperty(i,"timestampOffset",{get:function(){return this.timestampOffset_},set:function(t){"number"==typeof t&&0<=t&&(this.timestampOffset_=t,this.appendAudioInitSegment_=!0,this.gopBuffer_.length=0,this.timeMapping_=0,this.transmuxer_.postMessage({action:"setTimestampOffset",timestampOffset:t}))}}),Object.defineProperty(i,"appendWindowStart",{get:function(){return(this.videoBuffer_||this.audioBuffer_).appendWindowStart},set:function(t){this.videoBuffer_&&(this.videoBuffer_.appendWindowStart=t),this.audioBuffer_&&(this.audioBuffer_.appendWindowStart=t)}}),Object.defineProperty(i,"updating",{get:function(){return!!(this.bufferUpdating_||!this.audioDisabled_&&this.audioBuffer_&&this.audioBuffer_.updating||this.videoBuffer_&&this.videoBuffer_.updating)}}),Object.defineProperty(i,"buffered",{get:function(){var t=null,e=null,i=0,r=[],n=[];if(!this.videoBuffer_&&!this.audioBuffer_)return As.createTimeRange();if(!this.videoBuffer_)return this.audioBuffer_.buffered;if(!this.audioBuffer_)return this.videoBuffer_.buffered;if(this.audioDisabled_)return this.videoBuffer_.buffered;if(0===this.videoBuffer_.buffered.length&&0===this.audioBuffer_.buffered.length)return As.createTimeRange();for(var s=this.videoBuffer_.buffered,a=this.audioBuffer_.buffered,o=s.length;o--;)r.push({time:s.start(o),type:"start"}),r.push({time:s.end(o),type:"end"});for(o=a.length;o--;)r.push({time:a.start(o),type:"start"}),r.push({time:a.end(o),type:"end"});for(r.sort(function(t,e){return t.time-e.time}),o=0;o<r.length;o++)"start"===r[o].type?2===++i&&(t=r[o].time):"end"===r[o].type&&1===--i&&(e=r[o].time),null!==t&&null!==e&&(n.push([t,e]),e=t=null);return As.createTimeRanges(n)}}),i}return _(s,n),s.prototype.data_=function(t){var e=t.data.segment;e.data=new Uint8Array(e.data,t.data.byteOffset,t.data.byteLength),e.initSegment=new Uint8Array(e.initSegment.data,e.initSegment.byteOffset,e.initSegment.byteLength),function(t,e,i){var r=e.player_;if(i.captions&&i.captions.length)for(var n in t.inbandTextTracks_||(t.inbandTextTracks_={}),i.captionStreams)if(!t.inbandTextTracks_[n]){r.tech_.trigger({type:"usage",name:"hls-608"});var s=r.textTracks().getTrackById(n);t.inbandTextTracks_[n]=s||r.addRemoteTextTrack({kind:"captions",id:n,label:n},!1).track}i.metadata&&i.metadata.length&&!t.metadataTrack_&&(t.metadataTrack_=r.addRemoteTextTrack({kind:"metadata",label:"Timed Metadata"},!1).track,t.metadataTrack_.inBandMetadataTrackDispatchType=i.metadata.dispatchType)}(this,this.mediaSource_,e),this.pendingBuffers_.push(e)},s.prototype.done_=function(t){"closed"!==this.mediaSource_.readyState?this.processPendingSegments_():this.pendingBuffers_.length=0},s.prototype.createRealSourceBuffers_=function(){var r=this,n=["audio","video"];n.forEach(function(e){if(r[e+"Codec_"]&&!r[e+"Buffer_"]){var i=null;if(r.mediaSource_[e+"Buffer_"])(i=r.mediaSource_[e+"Buffer_"]).updating=!1;else{var t=e+'/mp4;codecs="'+r[e+"Codec_"]+'"';i=function(t,e){var i=t.addSourceBuffer(e),r=Object.create(null);r.updating=!1,r.realBuffer_=i;var n=function(e){"function"==typeof i[e]?r[e]=function(){return i[e].apply(i,arguments)}:"undefined"==typeof r[e]&&Object.defineProperty(r,e,{get:function(){return i[e]},set:function(t){return i[e]=t}})};for(var s in i)n(s);return r}(r.mediaSource_.nativeMediaSource_,t),r.mediaSource_[e+"Buffer_"]=i}r[e+"Buffer_"]=i,["update","updatestart","updateend"].forEach(function(t){i.addEventListener(t,function(){if("audio"!==e||!r.audioDisabled_)return"updateend"===t&&(r[e+"Buffer_"].updating=!1),n.every(function(t){return!("audio"!==t||!r.audioDisabled_)||(e===t||!r[t+"Buffer_"]||!r[t+"Buffer_"].updating)})?r.trigger(t):void 0})})}})},s.prototype.appendBuffer=function(t){if(this.bufferUpdating_=!0,this.audioBuffer_&&this.audioBuffer_.buffered.length){var e=this.audioBuffer_.buffered;this.transmuxer_.postMessage({action:"setAudioAppendStart",appendStart:e.end(e.length-1)})}this.videoBuffer_&&this.transmuxer_.postMessage({action:"alignGopsWith",gopsToAlignWith:function(t,e,i){if(!e||!t.length)return[];var r=Math.ceil(9e4*(e.currentTime()-i+3)),n=void 0;for(n=0;n<t.length&&!(t[n].pts>r);n++);return t.slice(n)}(this.gopBuffer_,this.mediaSource_.player_,this.timeMapping_)}),this.transmuxer_.postMessage({action:"push",data:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength},[t.buffer]),this.transmuxer_.postMessage({action:"flush"})},s.prototype.appendGopInfo_=function(t){this.gopBuffer_=function(t,e,i){if(!e.length)return t;if(i)return e.slice();for(var r=e[0].pts,n=0;n<t.length&&!(t[n].pts>=r);n++);return t.slice(0,n).concat(e)}(this.gopBuffer_,t.data.gopInfo,this.safeAppend_)},s.prototype.remove=function(t,e){if(this.videoBuffer_&&(this.videoBuffer_.updating=!0,this.videoBuffer_.remove(t,e),this.gopBuffer_=function(t,e,i,r){for(var n=Math.ceil(9e4*(e-r)),s=Math.ceil(9e4*(i-r)),a=t.slice(),o=t.length;o--&&!(t[o].pts<=s););if(-1===o)return a;for(var u=o+1;u--&&!(t[u].pts<=n););return u=Math.max(u,0),a.splice(u,o-u+1),a}(this.gopBuffer_,t,e,this.timeMapping_)),!this.audioDisabled_&&this.audioBuffer_&&(this.audioBuffer_.updating=!0,this.audioBuffer_.remove(t,e)),bu(t,e,this.metadataTrack_),this.inbandTextTracks_)for(var i in this.inbandTextTracks_)bu(t,e,this.inbandTextTracks_[i])},s.prototype.processPendingSegments_=function(){var t={video:{segments:[],bytes:0},audio:{segments:[],bytes:0},captions:[],metadata:[]};t=this.pendingBuffers_.reduce(function(t,e){var i=e.type,r=e.data,n=e.initSegment;return t[i].segments.push(r),t[i].bytes+=r.byteLength,t[i].initSegment=n,e.captions&&(t.captions=t.captions.concat(e.captions)),e.info&&(t[i].info=e.info),e.metadata&&(t.metadata=t.metadata.concat(e.metadata)),t},t),this.videoBuffer_||this.audioBuffer_||(0===t.video.bytes&&(this.videoCodec_=null),0===t.audio.bytes&&(this.audioCodec_=null),this.createRealSourceBuffers_()),t.audio.info&&this.mediaSource_.trigger({type:"audioinfo",info:t.audio.info}),t.video.info&&this.mediaSource_.trigger({type:"videoinfo",info:t.video.info}),this.appendAudioInitSegment_&&(!this.audioDisabled_&&this.audioBuffer_&&(t.audio.segments.unshift(t.audio.initSegment),t.audio.bytes+=t.audio.initSegment.byteLength),this.appendAudioInitSegment_=!1);var e=!1;this.videoBuffer_&&t.video.bytes?(t.video.segments.unshift(t.video.initSegment),t.video.bytes+=t.video.initSegment.byteLength,this.concatAndAppendSegments_(t.video,this.videoBuffer_),Su(this,t.captions,t.metadata)):!this.videoBuffer_||!this.audioDisabled_&&this.audioBuffer_||(e=!0),!this.audioDisabled_&&this.audioBuffer_&&this.concatAndAppendSegments_(t.audio,this.audioBuffer_),this.pendingBuffers_.length=0,e&&this.trigger("updateend"),this.bufferUpdating_=!1},s.prototype.concatAndAppendSegments_=function(t,e){var i=0,r=void 0;if(t.bytes){r=new Uint8Array(t.bytes),t.segments.forEach(function(t){r.set(t,i),i+=t.byteLength});try{e.updating=!0,e.appendBuffer(r)}catch(t){this.mediaSource_.player_&&this.mediaSource_.player_.error({code:-3,type:"APPEND_BUFFER_ERR",message:t.message,originalError:t})}}},s.prototype.abort=function(){this.videoBuffer_&&this.videoBuffer_.abort(),!this.audioDisabled_&&this.audioBuffer_&&this.audioBuffer_.abort(),this.transmuxer_&&this.transmuxer_.postMessage({action:"reset"}),this.pendingBuffers_.length=0,this.bufferUpdating_=!1},s}(As.EventTarget),ju=function(e){function i(){y(this,i);var s=b(this,e.call(this)),t=void 0;for(t in s.nativeMediaSource_=new g.MediaSource,s.nativeMediaSource_)t in i.prototype||"function"!=typeof s.nativeMediaSource_[t]||(s[t]=s.nativeMediaSource_[t].bind(s.nativeMediaSource_));return s.duration_=NaN,Object.defineProperty(s,"duration",{get:function(){return this.duration_===1/0?this.duration_:this.nativeMediaSource_.duration},set:function(t){(this.duration_=t)===1/0||(this.nativeMediaSource_.duration=t)}}),Object.defineProperty(s,"seekable",{get:function(){return this.duration_===1/0?As.createTimeRanges([[0,this.nativeMediaSource_.duration]]):this.nativeMediaSource_.seekable}}),Object.defineProperty(s,"readyState",{get:function(){return this.nativeMediaSource_.readyState}}),Object.defineProperty(s,"activeSourceBuffers",{get:function(){return this.activeSourceBuffers_}}),s.sourceBuffers=[],s.activeSourceBuffers_=[],s.updateActiveSourceBuffers_=function(){if(s.activeSourceBuffers_.length=0,1===s.sourceBuffers.length){var t=s.sourceBuffers[0];return t.appendAudioInitSegment_=!0,t.audioDisabled_=!t.audioCodec_,void s.activeSourceBuffers_.push(t)}for(var i=!1,r=!0,e=0;e<s.player_.audioTracks().length;e++){var n=s.player_.audioTracks()[e];if(n.enabled&&"main"!==n.kind){r=!(i=!0);break}}s.sourceBuffers.forEach(function(t,e){if(t.appendAudioInitSegment_=!0,t.videoCodec_&&t.audioCodec_)t.audioDisabled_=i;else if(t.videoCodec_&&!t.audioCodec_)t.audioDisabled_=!0,r=!1;else if(!t.videoCodec_&&t.audioCodec_&&(t.audioDisabled_=e?r:!r,t.audioDisabled_))return;s.activeSourceBuffers_.push(t)})},s.onPlayerMediachange_=function(){s.sourceBuffers.forEach(function(t){t.appendAudioInitSegment_=!0})},s.onHlsReset_=function(){s.sourceBuffers.forEach(function(t){t.transmuxer_&&t.transmuxer_.postMessage({action:"resetCaptions"})})},s.onHlsSegmentTimeMapping_=function(e){s.sourceBuffers.forEach(function(t){return t.timeMapping_=e.mapping})},["sourceopen","sourceclose","sourceended"].forEach(function(t){this.nativeMediaSource_.addEventListener(t,this.trigger.bind(this))},s),s.on("sourceopen",function(t){var e=p.querySelector('[src="'+s.url_+'"]');e&&(s.player_=As(e.parentNode),s.player_.tech_.on("hls-reset",s.onHlsReset_),s.player_.tech_.on("hls-segment-time-mapping",s.onHlsSegmentTimeMapping_),s.player_.audioTracks&&s.player_.audioTracks()&&(s.player_.audioTracks().on("change",s.updateActiveSourceBuffers_),s.player_.audioTracks().on("addtrack",s.updateActiveSourceBuffers_),s.player_.audioTracks().on("removetrack",s.updateActiveSourceBuffers_)),s.player_.on("mediachange",s.onPlayerMediachange_))}),s.on("sourceended",function(t){for(var e=Tu(s.duration),i=0;i<s.sourceBuffers.length;i++){var r=s.sourceBuffers[i],n=r.metadataTrack_&&r.metadataTrack_.cues;n&&n.length&&(n[n.length-1].endTime=e)}}),s.on("sourceclose",function(t){this.sourceBuffers.forEach(function(t){t.transmuxer_&&t.transmuxer_.terminate()}),this.sourceBuffers.length=0,this.player_&&(this.player_.audioTracks&&this.player_.audioTracks()&&(this.player_.audioTracks().off("change",this.updateActiveSourceBuffers_),this.player_.audioTracks().off("addtrack",this.updateActiveSourceBuffers_),this.player_.audioTracks().off("removetrack",this.updateActiveSourceBuffers_)),this.player_.el_&&(this.player_.off("mediachange",this.onPlayerMediachange_),this.player_.tech_.off("hls-reset",this.onHlsReset_),this.player_.tech_.off("hls-segment-time-mapping",this.onHlsSegmentTimeMapping_)))}),s}return _(i,e),i.prototype.addSeekableRange_=function(t,e){var i=void 0;if(this.duration!==1/0)throw(i=new Error("MediaSource.addSeekableRange() can only be invoked when the duration is Infinity")).name="InvalidStateError",i.code=11,i;(e>this.nativeMediaSource_.duration||isNaN(this.nativeMediaSource_.duration))&&(this.nativeMediaSource_.duration=e)},i.prototype.addSourceBuffer=function(t){var n,e,i=void 0,r=(n={type:"",parameters:{}},e=t.trim().split(";"),n.type=e.shift().trim(),e.forEach(function(t){var e=t.trim().split("=");if(1<e.length){var i=e[0].replace(/"/g,"").trim(),r=e[1].replace(/"/g,"").trim();n.parameters[i]=r}}),n);if(/^(video|audio)\/mp2t$/i.test(r.type)){var s=[];r.parameters&&r.parameters.codecs&&(s=r.parameters.codecs.split(","),s=(s=Nu(s)).filter(function(t){return Mu(t)||Uu(t)})),0===s.length&&(s=["avc1.4d400d","mp4a.40.2"]),i=new Bu(this,s),0!==this.sourceBuffers.length&&(this.sourceBuffers[0].createRealSourceBuffers_(),i.createRealSourceBuffers_(),this.sourceBuffers[0].audioDisabled_=!0)}else i=this.nativeMediaSource_.addSourceBuffer(t);return this.sourceBuffers.push(i),i},i}(As.EventTarget),Fu=0;As.mediaSources={};var Hu=function(t,e){var i=As.mediaSources[t];if(!i)throw new Error("Media Source not found (Video.js)");i.trigger({type:"sourceopen",swfId:e})},Vu=function(){return!!g.MediaSource&&!!g.MediaSource.isTypeSupported&&g.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"')},qu=function(){if(this.MediaSource={open:Hu,supportsNativeMediaSources:Vu},Vu())return new ju;throw new Error("Cannot use create a virtual MediaSource for this video")};qu.open=Hu,qu.supportsNativeMediaSources=Vu;var Wu={createObjectURL:function(t){var e=void 0;return t instanceof ju?(e=g.URL.createObjectURL(t.nativeMediaSource_),t.url_=e):t instanceof ju?(e="blob:vjs-media-source/"+Fu,Fu++,As.mediaSources[e]=t,e):(e=g.URL.createObjectURL(t),t.url_=e)}};As.MediaSource=qu,As.URL=Wu;var zu=As.mergeOptions,Gu=function(t,e){for(var a=zu(t,{duration:e.duration,minimumUpdatePeriod:e.minimumUpdatePeriod}),i=0;i<e.playlists.length;i++){var r=Bo(a,e.playlists[i]);r&&(a=r)}return No(e,function(t,e,i,r){if(t.playlists&&t.playlists.length){var n=t.playlists[0].uri,s=Bo(a,t.playlists[0]);s&&((a=s).mediaGroups[e][i][r].playlists[0]=a.playlists[n])}}),a},Xu=function(s){function a(t,e,i,r){y(this,a);var n=b(this,s.call(this));if(n.hls_=e,n.withCredentials=i,!t)throw new Error("A non-empty playlist URL or playlist is required");return n.on("minimumUpdatePeriod",function(){n.refreshXml_()}),n.on("mediaupdatetimeout",function(){n.refreshMedia_()}),"string"==typeof t?(n.srcUrl=t,n.state="HAVE_NOTHING",b(n)):(n.masterPlaylistLoader_=r,n.state="HAVE_METADATA",n.started=!0,n.media(t),g.setTimeout(function(){n.trigger("loadedmetadata")},0),n)}return _(a,s),a.prototype.dispose=function(){this.stopRequest(),g.clearTimeout(this.mediaUpdateTimeout)},a.prototype.stopRequest=function(){if(this.request){var t=this.request;this.request=null,t.onreadystatechange=null,t.abort()}},a.prototype.media=function(t){if(!t)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);var e=this.state;if("string"==typeof t){if(!this.master.playlists[t])throw new Error("Unknown playlist URI: "+t);t=this.master.playlists[t]}var i=!this.media_||t.uri!==this.media_.uri;this.state="HAVE_METADATA",i&&(this.media_&&this.trigger("mediachanging"),this.media_=t,this.refreshMedia_(),"HAVE_MASTER"!==e&&this.trigger("mediachange"))},a.prototype.pause=function(){this.stopRequest(),"HAVE_NOTHING"===this.state&&(this.started=!1)},a.prototype.load=function(){this.started?this.trigger("loadedplaylist"):this.start()},a.prototype.parseMasterXml=function(){var s=Sa(this.masterXml_,{manifestUri:this.srcUrl,clientOffset:this.clientOffset_});s.uri=this.srcUrl;for(var t=0;t<s.playlists.length;t++){var e="placeholder-uri-"+t;s.playlists[t].uri=e,s.playlists[e]=s.playlists[t]}return No(s,function(t,e,i,r){if(t.playlists&&t.playlists.length){var n="placeholder-uri-"+e+"-"+i+"-"+r;t.playlists[0].uri=n,s.playlists[n]=t.playlists[0]}}),jo(s),Fo(s),s},a.prototype.start=function(){var i=this;this.started=!0,this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(t,e){if(i.request){if(i.request=null,t)return i.error={status:e.status,message:"DASH playlist request error at URL: "+i.srcUrl,responseText:e.responseText,code:2},"HAVE_NOTHING"===i.state&&(i.started=!1),i.trigger("error");i.masterXml_=e.responseText,e.responseHeaders&&e.responseHeaders.date?i.masterLoaded_=Date.parse(e.responseHeaders.date):i.masterLoaded_=Date.now(),i.syncClientServerClock_(i.onClientServerClockSync_.bind(i))}})},a.prototype.syncClientServerClock_=function(r){var n=this,s=ka(this.masterXml_);return null===s?(this.clientOffset_=this.masterLoaded_-Date.now(),r()):"DIRECT"===s.method?(this.clientOffset_=s.value-Date.now(),r()):void(this.request=this.hls_.xhr({uri:Ro(this.srcUrl,s.value),method:s.method,withCredentials:this.withCredentials},function(t,e){if(n.request){if(t)return n.clientOffset_=n.masterLoaded_-Date.now(),r();var i=void 0;i="HEAD"===s.method?e.responseHeaders&&e.responseHeaders.date?Date.parse(e.responseHeaders.date):n.masterLoaded_:Date.parse(e.responseText),n.clientOffset_=i-Date.now(),r()}}))},a.prototype.onClientServerClockSync_=function(){var t=this;this.master=this.parseMasterXml(),this.state="HAVE_MASTER",this.trigger("loadedplaylist"),this.media_||this.media(this.master.playlists[0]),g.setTimeout(function(){t.trigger("loadedmetadata")},0),this.master.minimumUpdatePeriod&&g.setTimeout(function(){t.trigger("minimumUpdatePeriod")},this.master.minimumUpdatePeriod)},a.prototype.refreshXml_=function(){var r=this;this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(t,e){if(r.request){if(r.request=null,t)return r.error={status:e.status,message:"DASH playlist request error at URL: "+r.srcUrl,responseText:e.responseText,code:2},"HAVE_NOTHING"===r.state&&(r.started=!1),r.trigger("error");r.masterXml_=e.responseText;var i=r.parseMasterXml();r.master=Gu(r.master,i),g.setTimeout(function(){r.trigger("minimumUpdatePeriod")},r.master.minimumUpdatePeriod)}})},a.prototype.refreshMedia_=function(){var t=this,e=void 0,i=void 0;this.masterPlaylistLoader_?(e=this.masterPlaylistLoader_.master,i=this.masterPlaylistLoader_.parseMasterXml()):(e=this.master,i=this.parseMasterXml());var r=Gu(e,i);r?(this.masterPlaylistLoader_?this.masterPlaylistLoader_.master=r:this.master=r,this.media_=r.playlists[this.media_.uri]):this.trigger("playlistunchanged"),this.media().endList||(this.mediaUpdateTimeout=g.setTimeout(function(){t.trigger("mediaupdatetimeout")},Ho(this.media(),!!r))),this.trigger("loadedplaylist")},a}(As.EventTarget),Yu=function(t){return As.log.debug?As.log.debug.bind(As,"VHS:",t+" >"):function(){}};function $u(){}var Ku=function(){function n(t,e,i,r){y(this,n),this.callbacks_=[],this.pendingCallback_=null,this.timestampOffset_=0,this.mediaSource=t,this.processedAppend_=!1,this.type_=i,this.mimeType_=e,this.logger_=Yu("SourceUpdater["+i+"]["+e+"]"),"closed"===t.readyState?t.addEventListener("sourceopen",this.createSourceBuffer_.bind(this,e,r)):this.createSourceBuffer_(e,r)}return n.prototype.createSourceBuffer_=function(t,e){var i=this;this.sourceBuffer_=this.mediaSource.addSourceBuffer(t),this.logger_("created SourceBuffer"),e&&(e.trigger("sourcebufferadded"),this.mediaSource.sourceBuffers.length<2)?e.on("sourcebufferadded",function(){i.start_()}):this.start_()},n.prototype.start_=function(){var e=this;this.started_=!0,this.onUpdateendCallback_=function(){var t=e.pendingCallback_;e.pendingCallback_=null,e.logger_("buffered ["+vu(e.buffered())+"]"),t&&t(),e.runCallback_()},this.sourceBuffer_.addEventListener("updateend",this.onUpdateendCallback_),this.runCallback_()},n.prototype.abort=function(t){var e=this;this.processedAppend_&&this.queueCallback_(function(){e.sourceBuffer_.abort()},t)},n.prototype.appendBuffer=function(t,e){var i=this;this.processedAppend_=!0,this.queueCallback_(function(){i.sourceBuffer_.appendBuffer(t)},e)},n.prototype.buffered=function(){return this.sourceBuffer_?this.sourceBuffer_.buffered:As.createTimeRanges()},n.prototype.remove=function(t,e){var i=this;this.processedAppend_&&this.queueCallback_(function(){i.logger_("remove ["+t+" => "+e+"]"),i.sourceBuffer_.remove(t,e)},$u)},n.prototype.updating=function(){return!this.sourceBuffer_||this.sourceBuffer_.updating||this.pendingCallback_},n.prototype.timestampOffset=function(t){var e=this;return"undefined"!=typeof t&&(this.queueCallback_(function(){e.sourceBuffer_.timestampOffset=t}),this.timestampOffset_=t),this.timestampOffset_},n.prototype.queueCallback_=function(t,e){this.callbacks_.push([t.bind(this),e]),this.runCallback_()},n.prototype.runCallback_=function(){var t=void 0;!this.updating()&&this.callbacks_.length&&this.started_&&(t=this.callbacks_.shift(),this.pendingCallback_=t[1],t[0]())},n.prototype.dispose=function(){this.sourceBuffer_.removeEventListener("updateend",this.onUpdateendCallback_),this.sourceBuffer_&&"open"===this.mediaSource.readyState&&this.sourceBuffer_.abort()},n}(),Qu={GOAL_BUFFER_LENGTH:30,MAX_GOAL_BUFFER_LENGTH:60,GOAL_BUFFER_LENGTH_RATE:1,BANDWIDTH_VARIANCE:1.2,BUFFER_LOW_WATER_LINE:0,MAX_BUFFER_LOW_WATER_LINE:30,BUFFER_LOW_WATER_LINE_RATE:1},Ju=2,Zu=-101,tl=-102,el=function(t){var e,i,r={};return t.byterange&&(r.Range=(e=t.byterange,i=e.offset+e.length-1,"bytes="+e.offset+"-"+i)),r},il=function(t){t.forEach(function(t){t.abort()})},rl=function(t,e){return e.timedout?{status:e.status,message:"HLS request timed-out at URL: "+e.uri,code:Zu,xhr:e}:e.aborted?{status:e.status,message:"HLS request aborted at URL: "+e.uri,code:tl,xhr:e}:t?{status:e.status,message:"HLS request errored at URL: "+e.uri,code:Ju,xhr:e}:null},nl=function(a,o,u){var l=[],c=0;return function(t,e){if(t&&(il(a),l.push(t)),(c+=1)===a.length){if(e.endOfAllRequests=Date.now(),0<l.length){var i=l.reduce(function(t,e){return e.code>t.code?e:t});return u(i,e)}return e.encryptedBytes?(n=e,s=u,(r=o).addEventListener("message",function t(e){if(e.data.source===n.requestId){r.removeEventListener("message",t);var i=e.data.decrypted;return n.bytes=new Uint8Array(i.bytes,i.byteOffset,i.byteLength),s(null,n)}}),void r.postMessage(cu({source:n.requestId,encrypted:n.encryptedBytes,key:n.key.bytes,iv:n.key.iv}),[n.encryptedBytes.buffer,n.key.bytes.buffer])):u(null,e)}var r,n,s}},sl=function(n,s){return function(t){var e,i,r;return n.stats=As.mergeOptions(n.stats,(i=(e=t).target,(r={bandwidth:1/0,bytesReceived:0,roundTripTime:Date.now()-i.requestTime||0}).bytesReceived=e.loaded,r.bandwidth=Math.floor(r.bytesReceived/r.roundTripTime*8*1e3),r)),!n.stats.firstBytesReceivedAt&&n.stats.bytesReceived&&(n.stats.firstBytesReceivedAt=Date.now()),s(t,n)}},al=function(t,e,i,r,n,s){var a,o,u,l,c=[],h=nl(c,i,s);if(r.key){var d=t(As.mergeOptions(e,{uri:r.key.resolvedUri,responseType:"arraybuffer"}),(a=r,o=h,function(t,e){var i=e.response,r=rl(t,e);if(r)return o(r,a);if(16!==i.byteLength)return o({status:e.status,message:"Invalid HLS key at URL: "+e.uri,code:Ju,xhr:e},a);var n=new DataView(i);return a.key.bytes=new Uint32Array([n.getUint32(0),n.getUint32(4),n.getUint32(8),n.getUint32(12)]),o(null,a)}));c.push(d)}if(r.map&&!r.map.bytes){var p=t(As.mergeOptions(e,{uri:r.map.resolvedUri,responseType:"arraybuffer",headers:el(r.map)}),(u=r,l=h,function(t,e){var i=e.response,r=rl(t,e);return r?l(r,u):0===i.byteLength?l({status:e.status,message:"Empty HLS segment content at URL: "+e.uri,code:Ju,xhr:e},u):(u.map.bytes=new Uint8Array(e.response),l(null,u))}));c.push(p)}var f,m,g=t(As.mergeOptions(e,{uri:r.resolvedUri,responseType:"arraybuffer",headers:el(r)}),(f=r,m=h,function(t,e){var i,r=e.response,n=rl(t,e);return n?m(n,f):0===r.byteLength?m({status:e.status,message:"Empty HLS segment content at URL: "+e.uri,code:Ju,xhr:e},f):(f.stats={bandwidth:(i=e).bandwidth,bytesReceived:i.bytesReceived||0,roundTripTime:i.roundTripTime||0},f.key?f.encryptedBytes=new Uint8Array(e.response):f.bytes=new Uint8Array(e.response),m(null,f))}));return g.addEventListener("progress",sl(r,n)),c.push(g),function(){return il(c)}},ol={videoCodec:"avc1",videoObjectTypeIndicator:".4d400d",audioProfile:"2"},ul=function(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",i={codecCount:0};return i.codecCount=e.split(",").length,i.codecCount=i.codecCount||2,(t=/(^|\s|,)+(avc[13])([^ ,]*)/i.exec(e))&&(i.videoCodec=t[2],i.videoObjectTypeIndicator=t[3]),i.audioProfile=/(^|\s|,)+mp4a.[0-9A-Fa-f]+\.([0-9A-Fa-f]+)/i.exec(e),i.audioProfile=i.audioProfile&&i.audioProfile[2],i},ll=function(t,e,i){return t+"/"+e+'; codecs="'+i.filter(function(t){return!!t}).join(", ")+'"'},cl=function(t,e){var i,r,n=(i=e).segments&&i.segments.length&&i.segments[0].map?"mp4":"mp2t",s=(r=e.attributes||{}).CODECS?ul(r.CODECS):ol,a=e.attributes||{},o=!0,u=!1;if(!e)return[];if(t.mediaGroups.AUDIO&&a.AUDIO){var l=t.mediaGroups.AUDIO[a.AUDIO];if(l)for(var c in o=!(u=!0),l)if(!l[c].uri&&!l[c].playlists){o=!0;break}}u&&!s.audioProfile&&(o||(s.audioProfile=function(t,e){if(!t.mediaGroups.AUDIO||!e)return null;var i=t.mediaGroups.AUDIO[e];if(!i)return null;for(var r in i){var n=i[r];if(n.default&&n.playlists)return ul(n.playlists[0].attributes.CODECS).audioProfile}return null}(t,a.AUDIO)),s.audioProfile||(As.log.warn("Multiple audio tracks present but no audio codec string is specified. Attempting to use the default audio codec (mp4a.40.2)"),s.audioProfile=ol.audioProfile));var h={};s.videoCodec&&(h.video=""+s.videoCodec+s.videoObjectTypeIndicator),s.audioProfile&&(h.audio="mp4a.40."+s.audioProfile);var d=ll("audio",n,[h.audio]),p=ll("video",n,[h.video]),f=ll("video",n,[h.video,h.audio]);return u?!o&&h.video?[p,d]:o||h.video?[f,d]:[d,d]:h.video?[f]:[d]},hl=function(t,e){var i;return t&&(i=g.getComputedStyle(t))?i[e]:""},dl=function(t,r){var n=t.slice();t.sort(function(t,e){var i=r(t,e);return 0===i?n.indexOf(t)-n.indexOf(e):i})},pl=function(t,e){var i=void 0,r=void 0;return t.attributes.BANDWIDTH&&(i=t.attributes.BANDWIDTH),i=i||g.Number.MAX_VALUE,e.attributes.BANDWIDTH&&(r=e.attributes.BANDWIDTH),i-(r=r||g.Number.MAX_VALUE)},fl=function(t,e,i){if(!t||!e)return!1;var r=i===t.segments.length;return t.endList&&"open"===e.readyState&&r},ml=function(t){return"number"==typeof t&&isFinite(t)},gl=function(i){function r(t){y(this,r);var e=b(this,i.call(this));if(!t)throw new TypeError("Initialization settings are required");if("function"!=typeof t.currentTime)throw new TypeError("No currentTime getter specified");if(!t.mediaSource)throw new TypeError("No MediaSource specified");return e.bandwidth=t.bandwidth,e.throughput={rate:0,count:0},e.roundTrip=NaN,e.resetStats_(),e.mediaIndex=null,e.hasPlayed_=t.hasPlayed,e.currentTime_=t.currentTime,e.seekable_=t.seekable,e.seeking_=t.seeking,e.duration_=t.duration,e.mediaSource_=t.mediaSource,e.hls_=t.hls,e.loaderType_=t.loaderType,e.startingMedia_=void 0,e.segmentMetadataTrack_=t.segmentMetadataTrack,e.goalBufferLength_=t.goalBufferLength,e.sourceType_=t.sourceType,e.state_="INIT",e.checkBufferTimeout_=null,e.error_=void 0,e.currentTimeline_=-1,e.pendingSegment_=null,e.mimeType_=null,e.sourceUpdater_=null,e.xhrOptions_=null,e.activeInitSegmentId_=null,e.initSegments_={},e.decrypter_=t.decrypter,e.syncController_=t.syncController,e.syncPoint_={segmentIndex:0,time:0},e.syncController_.on("syncinfoupdate",function(){return e.trigger("syncinfoupdate")}),e.mediaSource_.addEventListener("sourceopen",function(){return e.ended_=!1}),e.fetchAtBuffer_=!1,e.logger_=Yu("SegmentLoader["+e.loaderType_+"]"),Object.defineProperty(e,"state",{get:function(){return this.state_},set:function(t){t!==this.state_&&(this.logger_(this.state_+" -> "+t),this.state_=t)}}),e}return _(r,i),r.prototype.resetStats_=function(){this.mediaBytesTransferred=0,this.mediaRequests=0,this.mediaRequestsAborted=0,this.mediaRequestsTimedout=0,this.mediaRequestsErrored=0,this.mediaTransferDuration=0,this.mediaSecondsLoaded=0},r.prototype.dispose=function(){this.state="DISPOSED",this.pause(),this.abort_(),this.sourceUpdater_&&this.sourceUpdater_.dispose(),this.resetStats_()},r.prototype.abort=function(){"WAITING"===this.state?(this.abort_(),this.state="READY",this.paused()||this.monitorBuffer_()):this.pendingSegment_&&(this.pendingSegment_=null)},r.prototype.abort_=function(){this.pendingSegment_&&this.pendingSegment_.abortRequests(),this.pendingSegment_=null},r.prototype.error=function(t){return"undefined"!=typeof t&&(this.error_=t),this.pendingSegment_=null,this.error_},r.prototype.endOfStream=function(){this.ended_=!0,this.pause(),this.trigger("ended")},r.prototype.buffered_=function(){return this.sourceUpdater_?this.sourceUpdater_.buffered():As.createTimeRanges()},r.prototype.initSegment=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!t)return null;var i=hu(t),r=this.initSegments_[i];return e&&!r&&t.bytes&&(this.initSegments_[i]=r={resolvedUri:t.resolvedUri,byterange:t.byterange,bytes:t.bytes}),r||t},r.prototype.couldBeginLoading_=function(){return this.playlist_&&(this.sourceUpdater_||this.mimeType_&&"INIT"===this.state)&&!this.paused()},r.prototype.load=function(){if(this.monitorBuffer_(),this.playlist_){if(this.syncController_.setDateTimeMapping(this.playlist_),"INIT"===this.state&&this.couldBeginLoading_())return this.init_();!this.couldBeginLoading_()||"READY"!==this.state&&"INIT"!==this.state||(this.state="READY")}},r.prototype.init_=function(){return this.state="READY",this.sourceUpdater_=new Ku(this.mediaSource_,this.mimeType_,this.loaderType_,this.sourceBufferEmitter_),this.resetEverything(),this.monitorBuffer_()},r.prototype.playlist=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(t){var i=this.playlist_,r=this.pendingSegment_;this.playlist_=t,this.xhrOptions_=e,this.hasPlayed_()||(t.syncInfo={mediaSequence:t.mediaSequence,time:0});var n=i?i.id:null;if(this.logger_("playlist update ["+n+" => "+t.id+"]"),this.trigger("syncinfoupdate"),"INIT"===this.state&&this.couldBeginLoading_())return this.init_();if(i&&i.uri===t.uri){var s=t.mediaSequence-i.mediaSequence;this.logger_("live window shift ["+s+"]"),null!==this.mediaIndex&&(this.mediaIndex-=s),r&&(r.mediaIndex-=s,0<=r.mediaIndex&&(r.segment=t.segments[r.mediaIndex])),this.syncController_.saveExpiredSegmentInfo(i,t)}else null!==this.mediaIndex&&this.resyncLoader()}},r.prototype.pause=function(){this.checkBufferTimeout_&&(g.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=null)},r.prototype.paused=function(){return null===this.checkBufferTimeout_},r.prototype.mimeType=function(t,e){this.mimeType_||(this.mimeType_=t,this.sourceBufferEmitter_=e,"INIT"===this.state&&this.couldBeginLoading_()&&this.init_())},r.prototype.resetEverything=function(){this.ended_=!1,this.resetLoader(),this.remove(0,this.duration_()),this.trigger("reseteverything")},r.prototype.resetLoader=function(){this.fetchAtBuffer_=!1,this.resyncLoader()},r.prototype.resyncLoader=function(){this.mediaIndex=null,this.syncPoint_=null,this.abort()},r.prototype.remove=function(t,e){this.sourceUpdater_&&this.sourceUpdater_.remove(t,e),bu(t,e,this.segmentMetadataTrack_)},r.prototype.monitorBuffer_=function(){this.checkBufferTimeout_&&g.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=g.setTimeout(this.monitorBufferTick_.bind(this),1)},r.prototype.monitorBufferTick_=function(){"READY"===this.state&&this.fillBuffer_(),this.checkBufferTimeout_&&g.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=g.setTimeout(this.monitorBufferTick_.bind(this),500)},r.prototype.fillBuffer_=function(){if(!this.sourceUpdater_.updating()){this.syncPoint_||(this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_()));var t=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);if(t)fl(this.playlist_,this.mediaSource_,t.mediaIndex)?this.endOfStream():(t.mediaIndex!==this.playlist_.segments.length-1||"ended"!==this.mediaSource_.readyState||this.seeking_())&&((t.timeline!==this.currentTimeline_||null!==t.startOfSegment&&t.startOfSegment<this.sourceUpdater_.timestampOffset())&&(this.syncController_.reset(),t.timestampOffset=t.startOfSegment),this.loadSegment_(t))}},r.prototype.checkBuffer_=function(t,e,i,r,n,s){var a=0,o=void 0;t.length&&(a=t.end(t.length-1));var u=Math.max(0,a-n);if(!e.segments.length)return null;if(u>=this.goalBufferLength_())return null;if(!r&&1<=u)return null;if(null===s)return i=this.getSyncSegmentCandidate_(e),this.generateSegmentInfo_(e,i,null,!0);if(null!==i){var l=e.segments[i];return o=l&&l.end?l.end:a,this.generateSegmentInfo_(e,i+1,o,!1)}if(this.fetchAtBuffer_){var c=nu.getMediaInfoForTime(e,a,s.segmentIndex,s.time);i=c.mediaIndex,o=c.startTime}else{var h=nu.getMediaInfoForTime(e,n,s.segmentIndex,s.time);i=h.mediaIndex,o=h.startTime}return this.generateSegmentInfo_(e,i,o,!1)},r.prototype.getSyncSegmentCandidate_=function(t){var e=this;if(-1===this.currentTimeline_)return 0;var i=t.segments.map(function(t,e){return{timeline:t.timeline,segmentIndex:e}}).filter(function(t){return t.timeline===e.currentTimeline_});return i.length?i[Math.min(i.length-1,1)].segmentIndex:Math.max(t.segments.length-1,0)},r.prototype.generateSegmentInfo_=function(t,e,i,r){if(e<0||e>=t.segments.length)return null;var n=t.segments[e];return{requestId:"segment-loader-"+Math.random(),uri:n.resolvedUri,mediaIndex:e,isSyncRequest:r,startOfSegment:i,playlist:t,bytes:null,encryptedBytes:null,timestampOffset:null,timeline:n.timeline,duration:n.duration,segment:n}},r.prototype.abortRequestEarly_=function(t){if(this.hls_.tech_.paused()||!this.xhrOptions_.timeout||!this.playlist_.attributes.BANDWIDTH)return!1;if(Date.now()-(t.firstBytesReceivedAt||Date.now())<1e3)return!1;var e=this.currentTime_(),i=t.bandwidth,r=this.pendingSegment_.duration,n=nu.estimateSegmentRequestTime(r,i,this.playlist_,t.bytesReceived),s=function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1;return((t.length?t.end(t.length-1):0)-e)/i}(this.buffered_(),e,this.hls_.tech_.playbackRate())-1;if(n<=s)return!1;var a=function(t){var e=t.master,i=t.currentTime,r=t.bandwidth,n=t.duration,s=t.segmentDuration,a=t.timeUntilRebuffer,o=t.currentTimeline,u=t.syncController,l=e.playlists.filter(function(t){return!nu.isIncompatible(t)}),c=l.filter(nu.isEnabled);c.length||(c=l.filter(function(t){return!nu.isDisabled(t)}));var h=c.filter(nu.hasAttribute.bind(null,"BANDWIDTH")).map(function(t){var e=u.getSyncPoint(t,n,o,i)?1:2;return{playlist:t,rebufferingImpact:nu.estimateSegmentRequestTime(s,r,t)*e-a}}),d=h.filter(function(t){return t.rebufferingImpact<=0});return dl(d,function(t,e){return pl(e.playlist,t.playlist)}),d.length?d[0]:(dl(h,function(t,e){return t.rebufferingImpact-e.rebufferingImpact}),h[0]||null)}({master:this.hls_.playlists.master,currentTime:e,bandwidth:i,duration:this.duration_(),segmentDuration:r,timeUntilRebuffer:s,currentTimeline:this.currentTimeline_,syncController:this.syncController_});if(a){var o=n-s-a.rebufferingImpact,u=.5;return s<=fu&&(u=1),!a.playlist||a.playlist.uri===this.playlist_.uri||o<u?!1:(this.bandwidth=a.playlist.attributes.BANDWIDTH*Qu.BANDWIDTH_VARIANCE+1,this.abort(),this.trigger("earlyabort"),!0)}},r.prototype.handleProgress_=function(t,e){this.pendingSegment_&&e.requestId===this.pendingSegment_.requestId&&!this.abortRequestEarly_(e.stats)&&this.trigger("progress")},r.prototype.loadSegment_=function(t){this.state="WAITING",this.pendingSegment_=t,this.trimBackBuffer_(t),t.abortRequests=al(this.hls_.xhr,this.xhrOptions_,this.decrypter_,this.createSimplifiedSegmentObj_(t),this.handleProgress_.bind(this),this.segmentRequestFinished_.bind(this))},r.prototype.trimBackBuffer_=function(t){var e,i,r,n,s=(e=this.seekable_(),i=this.currentTime_(),r=this.playlist_.targetDuration||10,n=void 0,n=e.length&&0<e.start(0)&&e.start(0)<i?e.start(0):i-30,Math.min(n,i-r));0<s&&this.remove(0,s)},r.prototype.createSimplifiedSegmentObj_=function(t){var e=t.segment,i={resolvedUri:e.resolvedUri,byterange:e.byterange,requestId:t.requestId};if(e.key){var r=e.key.iv||new Uint32Array([0,0,0,t.mediaIndex+t.playlist.mediaSequence]);i.key={resolvedUri:e.key.resolvedUri,iv:r}}return e.map&&(i.map=this.initSegment(e.map)),i},r.prototype.segmentRequestFinished_=function(t,e){if(this.mediaRequests+=1,e.stats&&(this.mediaBytesTransferred+=e.stats.bytesReceived,this.mediaTransferDuration+=e.stats.roundTripTime),this.pendingSegment_){if(e.requestId===this.pendingSegment_.requestId){if(t)return this.pendingSegment_=null,this.state="READY",t.code===tl?void(this.mediaRequestsAborted+=1):(this.pause(),t.code===Zu?(this.mediaRequestsTimedout+=1,this.bandwidth=1,this.roundTrip=NaN,void this.trigger("bandwidthupdate")):(this.mediaRequestsErrored+=1,this.error(t),void this.trigger("error")));this.bandwidth=e.stats.bandwidth,this.roundTrip=e.stats.roundTripTime,e.map&&(e.map=this.initSegment(e.map,!0)),this.processSegmentResponse_(e)}}else this.mediaRequestsAborted+=1},r.prototype.processSegmentResponse_=function(t){var e=this.pendingSegment_;e.bytes=t.bytes,t.map&&(e.segment.map.bytes=t.map.bytes),e.endOfAllRequests=t.endOfAllRequests,this.handleSegment_()},r.prototype.handleSegment_=function(){var t=this;if(this.pendingSegment_){var e=this.pendingSegment_,i=e.segment,r=this.syncController_.probeSegmentInfo(e);"undefined"==typeof this.startingMedia_&&r&&(r.containsAudio||r.containsVideo)&&(this.startingMedia_={containsAudio:r.containsAudio,containsVideo:r.containsVideo});var n,s,a,o=(n=this.loaderType_,s=this.startingMedia_,a=r,"main"===n&&s&&a?a.containsAudio||a.containsVideo?s.containsVideo&&!a.containsVideo?"Only audio found in segment when we expected video. We can't switch to audio only from a stream that had video. To get rid of this message, please add codec information to the manifest.":!s.containsVideo&&a.containsVideo?"Video found in segment when we expected only audio. We can't switch to a stream with video from an audio only stream. To get rid of this message, please add codec information to the manifest.":null:"Neither audio nor video found in segment.":null);if(o)return this.error({message:o,blacklistDuration:1/0}),void this.trigger("error");if(e.isSyncRequest)return this.trigger("syncinfoupdate"),this.pendingSegment_=null,void(this.state="READY");null!==e.timestampOffset&&e.timestampOffset!==this.sourceUpdater_.timestampOffset()&&(this.sourceUpdater_.timestampOffset(e.timestampOffset),this.trigger("timestampoffset"));var u,l,c,h,d,p,f,m,g,y,v,_=this.syncController_.mappingForTimeline(e.timeline);if(null!==_&&this.trigger({type:"segmenttimemapping",mapping:_}),this.state="APPENDING",i.map){var b=hu(i.map);if(!this.activeInitSegmentId_||this.activeInitSegmentId_!==b){var T=this.initSegment(i.map);this.sourceUpdater_.appendBuffer(T.bytes,function(){t.activeInitSegmentId_=b})}}e.byteLength=e.bytes.byteLength,"number"==typeof i.start&&"number"==typeof i.end?this.mediaSecondsLoaded+=i.end-i.start:this.mediaSecondsLoaded+=i.duration,this.logger_((l=(u=e).segment,c=l.start,h=l.end,d=u.playlist,p=d.mediaSequence,f=d.id,m=d.segments,g=void 0===m?[]:m,y=u.mediaIndex,v=u.timeline,["appending ["+y+"] of ["+p+", "+(p+g.length)+"] from playlist ["+f+"]","["+c+" => "+h+"] in timeline ["+v+"]"].join(" "))),this.sourceUpdater_.appendBuffer(e.bytes,this.handleUpdateEnd_.bind(this))}else this.state="READY"},r.prototype.handleUpdateEnd_=function(){if(!this.pendingSegment_)return this.state="READY",void(this.paused()||this.monitorBuffer_());var t=this.pendingSegment_,e=t.segment,i=null!==this.mediaIndex;(this.pendingSegment_=null,this.recordThroughput_(t),this.addSegmentMetadataCue_(t),this.state="READY",this.mediaIndex=t.mediaIndex,this.fetchAtBuffer_=!0,this.currentTimeline_=t.timeline,this.trigger("syncinfoupdate"),e.end&&this.currentTime_()-e.end>3*t.playlist.targetDuration)?this.resetEverything():(i&&this.trigger("bandwidthupdate"),this.trigger("progress"),fl(t.playlist,this.mediaSource_,t.mediaIndex+1)&&this.endOfStream(),this.paused()||this.monitorBuffer_())},r.prototype.recordThroughput_=function(t){var e=this.throughput.rate,i=Date.now()-t.endOfAllRequests+1,r=Math.floor(t.byteLength/i*8*1e3);this.throughput.rate+=(r-e)/++this.throughput.count},r.prototype.addSegmentMetadataCue_=function(t){if(this.segmentMetadataTrack_){var e=t.segment,i=e.start,r=e.end;if(ml(i)&&ml(r)){bu(i,r,this.segmentMetadataTrack_);var n=g.WebKitDataCue||g.VTTCue,s={bandwidth:t.playlist.attributes.BANDWIDTH,resolution:t.playlist.attributes.RESOLUTION,codecs:t.playlist.attributes.CODECS,byteLength:t.byteLength,uri:t.uri,timeline:t.timeline,playlist:t.playlist.uri,start:i,end:r},a=new n(i,r,JSON.stringify(s));a.value=s,this.segmentMetadataTrack_.addCue(a)}}},r}(As.EventTarget),yl=new Uint8Array("\n\n".split("").map(function(t){return t.charCodeAt(0)})),vl=function(t){return String.fromCharCode.apply(null,t)},_l=function(r){function n(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};y(this,n);var i=b(this,r.call(this,t,e));return i.mediaSource_=null,i.subtitlesTrack_=null,i}return _(n,r),n.prototype.buffered_=function(){if(!this.subtitlesTrack_||!this.subtitlesTrack_.cues.length)return As.createTimeRanges();var t=this.subtitlesTrack_.cues,e=t[0].startTime,i=t[t.length-1].startTime;return As.createTimeRanges([[e,i]])},n.prototype.initSegment=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(!t)return null;var i=hu(t),r=this.initSegments_[i];if(e&&!r&&t.bytes){var n=yl.byteLength+t.bytes.byteLength,s=new Uint8Array(n);s.set(t.bytes),s.set(yl,t.bytes.byteLength),this.initSegments_[i]=r={resolvedUri:t.resolvedUri,byterange:t.byterange,bytes:s}}return r||t},n.prototype.couldBeginLoading_=function(){return this.playlist_&&this.subtitlesTrack_&&!this.paused()},n.prototype.init_=function(){return this.state="READY",this.resetEverything(),this.monitorBuffer_()},n.prototype.track=function(t){return"undefined"==typeof t||(this.subtitlesTrack_=t,"INIT"===this.state&&this.couldBeginLoading_()&&this.init_()),this.subtitlesTrack_},n.prototype.remove=function(t,e){bu(t,e,this.subtitlesTrack_)},n.prototype.fillBuffer_=function(){var t=this;this.syncPoint_||(this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_()));var e=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);if(e=this.skipEmptySegments_(e)){if(null===this.syncController_.timestampOffsetForTimeline(e.timeline)){return this.syncController_.one("timestampoffset",function(){t.state="READY",t.paused()||t.monitorBuffer_()}),void(this.state="WAITING_ON_TIMELINE")}this.loadSegment_(e)}},n.prototype.skipEmptySegments_=function(t){for(;t&&t.segment.empty;)t=this.generateSegmentInfo_(t.playlist,t.mediaIndex+1,t.startOfSegment+t.duration,t.isSyncRequest);return t},n.prototype.handleSegment_=function(){var e=this;if(this.pendingSegment_&&this.subtitlesTrack_){this.state="APPENDING";var t=this.pendingSegment_,i=t.segment;if("function"!=typeof g.WebVTT&&this.subtitlesTrack_&&this.subtitlesTrack_.tech_){var r=function(){e.handleSegment_()};return this.state="WAITING_ON_VTTJS",this.subtitlesTrack_.tech_.one("vttjsloaded",r),void this.subtitlesTrack_.tech_.one("vttjserror",function(){e.subtitlesTrack_.tech_.off("vttjsloaded",r),e.error({message:"Error loading vtt.js"}),e.state="READY",e.pause(),e.trigger("error")})}i.requested=!0;try{this.parseVTTCues_(t)}catch(t){return this.error({message:t.message}),this.state="READY",this.pause(),this.trigger("error")}if(this.updateTimeMapping_(t,this.syncController_.timelines[t.timeline],this.playlist_),t.isSyncRequest)return this.trigger("syncinfoupdate"),this.pendingSegment_=null,void(this.state="READY");t.byteLength=t.bytes.byteLength,this.mediaSecondsLoaded+=i.duration,t.cues.length&&this.remove(t.cues[0].endTime,t.cues[t.cues.length-1].endTime),t.cues.forEach(function(t){e.subtitlesTrack_.addCue(t)}),this.handleUpdateEnd_()}else this.state="READY"},n.prototype.parseVTTCues_=function(e){var t=void 0,i=!1;"function"==typeof g.TextDecoder?t=new g.TextDecoder("utf8"):(t=g.WebVTT.StringDecoder(),i=!0);var r=new g.WebVTT.Parser(g,g.vttjs,t);if(e.cues=[],e.timestampmap={MPEGTS:0,LOCAL:0},r.oncue=e.cues.push.bind(e.cues),r.ontimestampmap=function(t){return e.timestampmap=t},r.onparsingerror=function(t){As.log.warn("Error encountered when parsing cues: "+t.message)},e.segment.map){var n=e.segment.map.bytes;i&&(n=vl(n)),r.parse(n)}var s=e.bytes;i&&(s=vl(s)),r.parse(s),r.flush()},n.prototype.updateTimeMapping_=function(t,e,i){var r=t.segment;if(e)if(t.cues.length){var n=t.timestampmap,s=n.MPEGTS/9e4-n.LOCAL+e.mapping;if(t.cues.forEach(function(t){t.startTime+=s,t.endTime+=s}),!i.syncInfo){var a=t.cues[0].startTime,o=t.cues[t.cues.length-1].startTime;i.syncInfo={mediaSequence:i.mediaSequence+t.mediaIndex,time:Math.min(a,o-r.duration)}}}else r.empty=!0},n}(gl),bl=function(t,e){for(var i=t.cues,r=0;r<i.length;r++){var n=i[r];if(e>=n.adStartTime&&e<=n.adEndTime)return n}return null},Tl=So,Sl=[{name:"VOD",run:function(t,e,i,r,n){if(i!==1/0){return{time:0,segmentIndex:0}}return null}},{name:"ProgramDateTime",run:function(t,e,i,r,n){if(!t.datetimeToDisplayTime)return null;var s=e.segments||[],a=null,o=null;n=n||0;for(var u=0;u<s.length;u++){var l=s[u];if(l.dateTimeObject){var c=l.dateTimeObject.getTime()/1e3+t.datetimeToDisplayTime,h=Math.abs(n-c);if(null!==o&&o<h)break;o=h,a={time:c,segmentIndex:u}}}return a}},{name:"Segment",run:function(t,e,i,r,n){var s=e.segments||[],a=null,o=null;n=n||0;for(var u=0;u<s.length;u++){var l=s[u];if(l.timeline===r&&"undefined"!=typeof l.start){var c=Math.abs(n-l.start);if(null!==o&&o<c)break;(!a||null===o||c<=o)&&(o=c,a={time:l.start,segmentIndex:u})}}return a}},{name:"Discontinuity",run:function(t,e,i,r,n){var s=null;if(n=n||0,e.discontinuityStarts&&e.discontinuityStarts.length)for(var a=null,o=0;o<e.discontinuityStarts.length;o++){var u=e.discontinuityStarts[o],l=e.discontinuitySequence+o+1,c=t.discontinuities[l];if(c){var h=Math.abs(n-c.time);if(null!==a&&a<h)break;(!s||null===a||h<=a)&&(a=h,s={time:c.time,segmentIndex:u})}}return s}},{name:"Playlist",run:function(t,e,i,r,n){return e.syncInfo?{time:e.syncInfo.time,segmentIndex:e.syncInfo.mediaSequence-e.mediaSequence}:null}}],kl=function(e){function i(){y(this,i);var t=b(this,e.call(this));return t.inspectCache_=void 0,t.timelines=[],t.discontinuities=[],t.datetimeToDisplayTime=null,t.logger_=Yu("SyncController"),t}return _(i,e),i.prototype.getSyncPoint=function(t,e,i,r){var n=this.runStrategies_(t,e,i,r);return n.length?this.selectSyncPoint_(n,{key:"time",value:r}):null},i.prototype.getExpiredTime=function(t,e){if(!t||!t.segments)return null;var i=this.runStrategies_(t,e,t.discontinuitySequence,0);if(!i.length)return null;var r=this.selectSyncPoint_(i,{key:"segmentIndex",value:0});return 0<r.segmentIndex&&(r.time*=-1),Math.abs(r.time+Go(t,r.segmentIndex,0))},i.prototype.runStrategies_=function(t,e,i,r){for(var n=[],s=0;s<Sl.length;s++){var a=Sl[s],o=a.run(this,t,e,i,r);o&&(o.strategy=a.name,n.push({strategy:a.name,syncPoint:o}))}return n},i.prototype.selectSyncPoint_=function(t,e){for(var i=t[0].syncPoint,r=Math.abs(t[0].syncPoint[e.key]-e.value),n=t[0].strategy,s=1;s<t.length;s++){var a=Math.abs(t[s].syncPoint[e.key]-e.value);a<r&&(r=a,i=t[s].syncPoint,n=t[s].strategy)}return this.logger_("syncPoint for ["+e.key+": "+e.value+"] chosen with strategy ["+n+"]: [time:"+i.time+", segmentIndex:"+i.segmentIndex+"]"),i},i.prototype.saveExpiredSegmentInfo=function(t,e){for(var i=e.mediaSequence-t.mediaSequence-1;0<=i;i--){var r=t.segments[i];if(r&&"undefined"!=typeof r.start){e.syncInfo={mediaSequence:t.mediaSequence+i,time:r.start},this.logger_("playlist refresh sync: [time:"+e.syncInfo.time+", mediaSequence: "+e.syncInfo.mediaSequence+"]"),this.trigger("syncinfoupdate");break}}},i.prototype.setDateTimeMapping=function(t){if(!this.datetimeToDisplayTime&&t.segments&&t.segments.length&&t.segments[0].dateTimeObject){var e=t.segments[0].dateTimeObject.getTime()/1e3;this.datetimeToDisplayTime=-e}},i.prototype.reset=function(){this.inspectCache_=void 0},i.prototype.probeSegmentInfo=function(t){var e=t.segment,i=t.playlist,r=void 0;return(r=e.map?this.probeMp4Segment_(t):this.probeTsSegment_(t))&&this.calculateSegmentTimeMapping_(t,r)&&(this.saveDiscontinuitySyncInfo_(t),i.syncInfo||(i.syncInfo={mediaSequence:i.mediaSequence+t.mediaIndex,time:e.start})),r},i.prototype.probeMp4Segment_=function(t){var e=t.segment,i=La(e.map.bytes),r=Pa(i,t.bytes);return null!==t.timestampOffset&&(t.timestampOffset-=r),{start:r,end:r+e.duration}},i.prototype.probeTsSegment_=function(t){var e=Tl(t.bytes,this.inspectCache_),i=void 0,r=void 0;return e?(e.video&&2===e.video.length?(this.inspectCache_=e.video[1].dts,i=e.video[0].dtsTime,r=e.video[1].dtsTime):e.audio&&2===e.audio.length&&(this.inspectCache_=e.audio[1].dts,i=e.audio[0].dtsTime,r=e.audio[1].dtsTime),{start:i,end:r,containsVideo:e.video&&2===e.video.length,containsAudio:e.audio&&2===e.audio.length}):null},i.prototype.timestampOffsetForTimeline=function(t){return"undefined"==typeof this.timelines[t]?null:this.timelines[t].time},i.prototype.mappingForTimeline=function(t){return"undefined"==typeof this.timelines[t]?null:this.timelines[t].mapping},i.prototype.calculateSegmentTimeMapping_=function(t,e){var i=t.segment,r=this.timelines[t.timeline];if(null!==t.timestampOffset)r={time:t.startOfSegment,mapping:t.startOfSegment-e.start},this.timelines[t.timeline]=r,this.trigger("timestampoffset"),this.logger_("time mapping for timeline "+t.timeline+": [time: "+r.time+"] [mapping: "+r.mapping+"]"),i.start=t.startOfSegment,i.end=e.end+r.mapping;else{if(!r)return!1;i.start=e.start+r.mapping,i.end=e.end+r.mapping}return!0},i.prototype.saveDiscontinuitySyncInfo_=function(t){var e=t.playlist,i=t.segment;if(i.discontinuity)this.discontinuities[i.timeline]={time:i.start,accuracy:0};else if(e.discontinuityStarts&&e.discontinuityStarts.length)for(var r=0;r<e.discontinuityStarts.length;r++){var n=e.discontinuityStarts[r],s=e.discontinuitySequence+r+1,a=n-t.mediaIndex,o=Math.abs(a);if(!this.discontinuities[s]||this.discontinuities[s].accuracy>o){var u=void 0;u=a<0?i.start-Go(e,t.mediaIndex,n):i.end+Go(e,t.mediaIndex+1,n),this.discontinuities[s]={time:u,accuracy:o}}}},i}(As.EventTarget),Cl=new Pu("./decrypter-worker.worker.js",function(t,e){var i,s,h,r,n,d,p,g,a,l,y,o,u=this;i="undefined"!=typeof t?t:"undefined"!=typeof global?global:"undefined"!=typeof u?u:{},s="undefined"!=typeof t?t:"undefined"!=typeof i?i:"undefined"!=typeof u?u:{},h=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},r=function(){function r(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,i){return e&&r(t.prototype,e),i&&r(t,i),t}}(),n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==("undefined"==typeof e?"undefined":v(e))&&"function"!=typeof e?t:e},d=function(){var t=[[[],[],[],[],[]],[[],[],[],[],[]]],e=t[0],i=t[1],r=e[4],n=i[4],s=void 0,a=void 0,o=void 0,u=[],l=[],c=void 0,h=void 0,d=void 0,p=void 0,f=void 0;for(s=0;s<256;s++)l[(u[s]=s<<1^283*(s>>7))^s]=s;for(a=o=0;!r[a];a^=c||1,o=l[o]||1)for(d=(d=o^o<<1^o<<2^o<<3^o<<4)>>8^255&d^99,f=16843009*u[h=u[c=u[n[r[a]=d]=a]]]^65537*h^257*c^16843008*a,p=257*u[d]^16843008*d,s=0;s<4;s++)e[s][a]=p=p<<24^p>>>8,i[s][d]=f=f<<24^f>>>8;for(s=0;s<5;s++)e[s]=e[s].slice(0),i[s]=i[s].slice(0);return t},p=null,g=function(){function c(t){h(this,c),p||(p=d()),this._tables=[[p[0][0].slice(),p[0][1].slice(),p[0][2].slice(),p[0][3].slice(),p[0][4].slice()],[p[1][0].slice(),p[1][1].slice(),p[1][2].slice(),p[1][3].slice(),p[1][4].slice()]];var e=void 0,i=void 0,r=void 0,n=void 0,s=void 0,a=this._tables[0][4],o=this._tables[1],u=t.length,l=1;if(4!==u&&6!==u&&8!==u)throw new Error("Invalid aes key size");for(n=t.slice(0),s=[],this._key=[n,s],e=u;e<4*u+28;e++)r=n[e-1],(e%u==0||8===u&&e%u==4)&&(r=a[r>>>24]<<24^a[r>>16&255]<<16^a[r>>8&255]<<8^a[255&r],e%u==0&&(r=r<<8^r>>>24^l<<24,l=l<<1^283*(l>>7))),n[e]=n[e-u]^r;for(i=0;e;i++,e--)r=n[3&i?e:e-4],s[i]=e<=4||i<4?r:o[0][a[r>>>24]]^o[1][a[r>>16&255]]^o[2][a[r>>8&255]]^o[3][a[255&r]]}return c.prototype.decrypt=function(t,e,i,r,n,s){var a=this._key[1],o=t^a[0],u=r^a[1],l=i^a[2],c=e^a[3],h=void 0,d=void 0,p=void 0,f=a.length/4-2,m=void 0,g=4,y=this._tables[1],v=y[0],_=y[1],b=y[2],T=y[3],S=y[4];for(m=0;m<f;m++)h=v[o>>>24]^_[u>>16&255]^b[l>>8&255]^T[255&c]^a[g],d=v[u>>>24]^_[l>>16&255]^b[c>>8&255]^T[255&o]^a[g+1],p=v[l>>>24]^_[c>>16&255]^b[o>>8&255]^T[255&u]^a[g+2],c=v[c>>>24]^_[o>>16&255]^b[u>>8&255]^T[255&l]^a[g+3],g+=4,o=h,u=d,l=p;for(m=0;m<4;m++)n[(3&-m)+s]=S[o>>>24]<<24^S[u>>16&255]<<16^S[l>>8&255]<<8^S[255&c]^a[g++],h=o,o=u,u=l,l=c,c=h},c}(),a=function(){function t(){h(this,t),this.listeners={}}return t.prototype.on=function(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e)},t.prototype.off=function(t,e){if(!this.listeners[t])return!1;var i=this.listeners[t].indexOf(e);return this.listeners[t].splice(i,1),-1<i},t.prototype.trigger=function(t){var e=this.listeners[t];if(e)if(2===arguments.length)for(var i=e.length,r=0;r<i;++r)e[r].call(this,arguments[1]);else for(var n=Array.prototype.slice.call(arguments,1),s=e.length,a=0;a<s;++a)e[a].apply(this,n)},t.prototype.dispose=function(){this.listeners={}},t.prototype.pipe=function(e){this.on("data",function(t){e.push(t)})},t}(),l=function(e){function i(){h(this,i);var t=n(this,e.call(this,a));return t.jobs=[],t.delay=1,t.timeout_=null,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":v(e)));t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(i,e),i.prototype.processJob_=function(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null},i.prototype.push=function(t){this.jobs.push(t),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))},i}(a),y=function(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24},o=function(){function u(t,e,i,r){h(this,u);var n=u.STEP,s=new Int32Array(t.buffer),a=new Uint8Array(t.byteLength),o=0;for(this.asyncStream_=new l,this.asyncStream_.push(this.decryptChunk_(s.subarray(o,o+n),e,i,a)),o=n;o<s.length;o+=n)i=new Uint32Array([y(s[o-4]),y(s[o-3]),y(s[o-2]),y(s[o-1])]),this.asyncStream_.push(this.decryptChunk_(s.subarray(o,o+n),e,i,a));this.asyncStream_.push(function(){var t;r(null,(t=a).subarray(0,t.byteLength-t[t.byteLength-1]))})}return u.prototype.decryptChunk_=function(e,i,r,n){return function(){var t=function(t,e,i){var r=new Int32Array(t.buffer,t.byteOffset,t.byteLength>>2),n=new g(Array.prototype.slice.call(e)),s=new Uint8Array(t.byteLength),a=new Int32Array(s.buffer),o=void 0,u=void 0,l=void 0,c=void 0,h=void 0,d=void 0,p=void 0,f=void 0,m=void 0;for(o=i[0],u=i[1],l=i[2],c=i[3],m=0;m<r.length;m+=4)h=y(r[m]),d=y(r[m+1]),p=y(r[m+2]),f=y(r[m+3]),n.decrypt(h,d,p,f,a,m),a[m]=y(a[m]^o),a[m+1]=y(a[m+1]^u),a[m+2]=y(a[m+2]^l),a[m+3]=y(a[m+3]^c),o=h,u=d,l=p,c=f;return s}(e,i,r);n.set(t,e.byteOffset)}},r(u,null,[{key:"STEP",get:function(){return 32e3}}]),u}(),new function(t){t.onmessage=function(t){var n=t.data,e=new Uint8Array(n.encrypted.bytes,n.encrypted.byteOffset,n.encrypted.byteLength),i=new Uint32Array(n.key.bytes,n.key.byteOffset,n.key.byteLength/4),r=new Uint32Array(n.iv.bytes,n.iv.byteOffset,n.iv.byteLength/4);new o(e,i,r,function(t,e){var i,r;s.postMessage((i={source:n.source,decrypted:e},r={},Object.keys(i).forEach(function(t){var e=i[t];ArrayBuffer.isView(e)?r[t]={bytes:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength}:r[t]=e}),r),[e.buffer])})}}(u)}),El=function(t,e){t.abort(),t.pause(),e&&e.activePlaylistLoader&&(e.activePlaylistLoader.pause(),e.activePlaylistLoader=null)},wl=function(t,e){(e.activePlaylistLoader=t).load()},Al={AUDIO:function(u,l){return function(){var t=l.segmentLoaders[u],e=l.mediaTypes[u],i=l.blacklistCurrentPlaylist;El(t,e);var r=e.activeTrack(),n=e.activeGroup(),s=(n.filter(function(t){return t.default})[0]||n[0]).id,a=e.tracks[s];if(r!==a){for(var o in As.log.warn("Problem encountered loading the alternate audio track.Switching back to default."),e.tracks)e.tracks[o].enabled=e.tracks[o]===a;e.onTrackChanged()}else i({message:"Problem encountered loading the default audio track."})}},SUBTITLES:function(r,n){return function(){var t=n.segmentLoaders[r],e=n.mediaTypes[r];As.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track."),El(t,e);var i=e.activeTrack();i&&(i.mode="disabled"),e.onTrackChanged()}}},Ll={AUDIO:function(t,e,i){if(e){var r=i.tech,n=i.requestOptions,s=i.segmentLoaders[t];e.on("loadedmetadata",function(){var t=e.media();s.playlist(t,n),(!r.paused()||t.endList&&"none"!==r.preload())&&s.load()}),e.on("loadedplaylist",function(){s.playlist(e.media(),n),r.paused()||s.load()}),e.on("error",Al[t](t,i))}},SUBTITLES:function(t,e,i){var r=i.tech,n=i.requestOptions,s=i.segmentLoaders[t],a=i.mediaTypes[t];e.on("loadedmetadata",function(){var t=e.media();s.playlist(t,n),s.track(a.activeTrack()),(!r.paused()||t.endList&&"none"!==r.preload())&&s.load()}),e.on("loadedplaylist",function(){s.playlist(e.media(),n),r.paused()||s.load()}),e.on("error",Al[t](t,i))}},Pl=function(e,i){return function(t){return t.attributes[e]===i}},Ol=function(e){return function(t){return t.resolvedUri===e}},xl={AUDIO:function(t,e){var i,r,n=e.hls,s=e.sourceType,a=e.segmentLoaders[t],o=e.requestOptions.withCredentials,u=e.master,l=u.mediaGroups,c=u.playlists,h=e.mediaTypes[t],d=h.groups,p=h.tracks,f=e.masterPlaylistLoader;for(var m in l[t]&&0!==Object.keys(l[t]).length||(l[t]={main:{default:{default:!0}}}),l[t]){d[m]||(d[m]=[]);var g=c.filter(Pl(t,m));for(var y in l[t][m]){var v=l[t][m][y];g.filter(Ol(v.resolvedUri)).length&&delete v.resolvedUri;var _=void 0;if(_=v.resolvedUri?new Vo(v.resolvedUri,n,o):v.playlists&&"dash"===s?new Xu(v.playlists[0],n,o,f):null,v=As.mergeOptions({id:y,playlistLoader:_},v),Ll[t](t,v.playlistLoader,e),d[m].push(v),"undefined"==typeof p[y]){var b=new As.AudioTrack({id:y,kind:(i=v,r=void 0,r=i.default?"main":"alternative",i.characteristics&&0<=i.characteristics.indexOf("public.accessibility.describes-video")&&(r="main-desc"),r),enabled:!1,language:v.language,default:v.default,label:y});p[y]=b}}}a.on("error",Al[t](t,e))},SUBTITLES:function(t,e){var i=e.tech,r=e.hls,n=e.sourceType,s=e.segmentLoaders[t],a=e.requestOptions.withCredentials,o=e.master.mediaGroups,u=e.mediaTypes[t],l=u.groups,c=u.tracks,h=e.masterPlaylistLoader;for(var d in o[t])for(var p in l[d]||(l[d]=[]),o[t][d])if(!o[t][d][p].forced){var f=o[t][d][p],m=void 0;if("hls"===n?m=new Vo(f.resolvedUri,r,a):"dash"===n&&(m=new Xu(f.playlists[0],r,a,h)),f=As.mergeOptions({id:p,playlistLoader:m},f),Ll[t](t,f.playlistLoader,e),l[d].push(f),"undefined"==typeof c[p]){var g=i.addRemoteTextTrack({id:p,kind:"subtitles",enabled:!1,language:f.language,label:p},!1).track;c[p]=g}}s.on("error",Al[t](t,e))},"CLOSED-CAPTIONS":function(t,e){var i=e.tech,r=e.master.mediaGroups,n=e.mediaTypes[t],s=n.groups,a=n.tracks;for(var o in r[t])for(var u in s[o]||(s[o]=[]),r[t][o]){var l=r[t][o][u];if(l.instreamId.match(/CC\d/)&&(s[o].push(As.mergeOptions({id:u},l)),"undefined"==typeof a[u])){var c=i.addRemoteTextTrack({id:l.instreamId,kind:"captions",enabled:!1,language:l.language,label:u},!1).track;a[u]=c}}}},Il={AUDIO:function(i,r){return function(){var t=r.mediaTypes[i].tracks;for(var e in t)if(t[e].enabled)return t[e];return null}},SUBTITLES:function(i,r){return function(){var t=r.mediaTypes[i].tracks;for(var e in t)if("showing"===t[e].mode)return t[e];return null}}},Dl=function(e){["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(function(t){xl[t](t,e)});var i=e.mediaTypes,t=e.masterPlaylistLoader,r=e.tech,n=e.hls;["AUDIO","SUBTITLES"].forEach(function(t){var s,a,o,u,l,c;i[t].activeGroup=(s=t,a=e,function(e){var t=a.masterPlaylistLoader,i=a.mediaTypes[s].groups,r=t.media();if(!r)return null;var n=null;return r.attributes[s]&&(n=i[r.attributes[s]]),n=n||i.main,"undefined"==typeof e?n:null===e?null:n.filter(function(t){return t.id===e.id})[0]||null}),i[t].activeTrack=Il[t](t,e),i[t].onGroupChanged=(o=t,u=e,function(){var t=u.segmentLoaders,e=t[o],i=t.main,r=u.mediaTypes[o],n=r.activeTrack(),s=r.activeGroup(n),a=r.activePlaylistLoader;El(e,r),s&&(s.playlistLoader?(e.resyncLoader(),wl(s.playlistLoader,r)):a&&i.resetEverything())}),i[t].onTrackChanged=(l=t,c=e,function(){var t=c.segmentLoaders,e=t[l],i=t.main,r=c.mediaTypes[l],n=r.activeTrack(),s=r.activeGroup(n),a=r.activePlaylistLoader;El(e,r),s&&(s.playlistLoader?(a!==s.playlistLoader&&(e.track&&e.track(n),e.resetEverything()),wl(s.playlistLoader,r)):i.resetEverything())})});var s=i.AUDIO.activeGroup(),a=(s.filter(function(t){return t.default})[0]||s[0]).id;i.AUDIO.tracks[a].enabled=!0,i.AUDIO.onTrackChanged(),t.on("mediachange",function(){["AUDIO","SUBTITLES"].forEach(function(t){return i[t].onGroupChanged()})});var o=function(){i.AUDIO.onTrackChanged(),r.trigger({type:"usage",name:"hls-audio-change"})};for(var u in r.audioTracks().addEventListener("change",o),r.remoteTextTracks().addEventListener("change",i.SUBTITLES.onTrackChanged),n.on("dispose",function(){r.audioTracks().removeEventListener("change",o),r.remoteTextTracks().removeEventListener("change",i.SUBTITLES.onTrackChanged)}),r.clearTracks("audio"),i.AUDIO.tracks)r.audioTracks().addTrack(i.AUDIO.tracks[u])},Rl=function(){var e={};return["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(function(t){e[t]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:$u,activeTrack:$u,onGroupChanged:$u,onTrackChanged:$u}}),e},Ml=void 0,Ul=["mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaBytesTransferred"],Nl=function(t){return this.audioSegmentLoader_[t]+this.mainSegmentLoader_[t]},Bl=function(d){function p(t){y(this,p);var e=b(this,d.call(this)),i=t.url,r=t.withCredentials,n=t.tech,s=t.bandwidth,a=t.externHls,o=t.useCueTags,u=t.blacklistDuration,l=t.enableLowInitialPlaylist,c=t.sourceType;if(!i)throw new Error("A non-empty playlist URL is required");Ml=a,e.withCredentials=r,e.tech_=n,e.hls_=n.hls,e.sourceType_=c,e.useCueTags_=o,e.blacklistDuration=u,e.enableLowInitialPlaylist=l,e.useCueTags_&&(e.cueTagsTrack_=e.tech_.addTextTrack("metadata","ad-cues"),e.cueTagsTrack_.inBandMetadataTrackDispatchType=""),e.requestOptions_={withCredentials:e.withCredentials,timeout:null},e.mediaTypes_=Rl(),e.mediaSource=new As.MediaSource,e.mediaSource.addEventListener("sourceopen",e.handleSourceOpen_.bind(e)),e.seekable_=As.createTimeRanges(),e.hasPlayed_=function(){return!1},e.syncController_=new kl(t),e.segmentMetadataTrack_=n.addRemoteTextTrack({kind:"metadata",label:"segment-metadata"},!1).track,e.decrypter_=new Cl;var h={hls:e.hls_,mediaSource:e.mediaSource,currentTime:e.tech_.currentTime.bind(e.tech_),seekable:function(){return e.seekable()},seeking:function(){return e.tech_.seeking()},duration:function(){return e.mediaSource.duration},hasPlayed:function(){return e.hasPlayed_()},goalBufferLength:function(){return e.goalBufferLength()},bandwidth:s,syncController:e.syncController_,decrypter:e.decrypter_,sourceType:e.sourceType_};return e.masterPlaylistLoader_="dash"===e.sourceType_?new Xu(i,e.hls_,e.withCredentials):new Vo(i,e.hls_,e.withCredentials),e.setupMasterPlaylistLoaderListeners_(),e.mainSegmentLoader_=new gl(As.mergeOptions(h,{segmentMetadataTrack:e.segmentMetadataTrack_,loaderType:"main"}),t),e.audioSegmentLoader_=new gl(As.mergeOptions(h,{loaderType:"audio"}),t),e.subtitleSegmentLoader_=new _l(As.mergeOptions(h,{loaderType:"vtt"}),t),e.setupSegmentLoaderListeners_(),Ul.forEach(function(t){e[t+"_"]=Nl.bind(e,t)}),e.logger_=Yu("MPC"),e.masterPlaylistLoader_.load(),e}return _(p,d),p.prototype.setupMasterPlaylistLoaderListeners_=function(){var r=this;this.masterPlaylistLoader_.on("loadedmetadata",function(){var t=r.masterPlaylistLoader_.media(),e=1.5*r.masterPlaylistLoader_.targetDuration*1e3;ru(r.masterPlaylistLoader_.master,r.masterPlaylistLoader_.media())?r.requestOptions_.timeout=0:r.requestOptions_.timeout=e,t.endList&&"none"!==r.tech_.preload()&&(r.mainSegmentLoader_.playlist(t,r.requestOptions_),r.mainSegmentLoader_.load()),Dl({sourceType:r.sourceType_,segmentLoaders:{AUDIO:r.audioSegmentLoader_,SUBTITLES:r.subtitleSegmentLoader_,main:r.mainSegmentLoader_},tech:r.tech_,requestOptions:r.requestOptions_,masterPlaylistLoader:r.masterPlaylistLoader_,hls:r.hls_,master:r.master(),mediaTypes:r.mediaTypes_,blacklistCurrentPlaylist:r.blacklistCurrentPlaylist.bind(r)}),r.triggerPresenceUsage_(r.master(),t);try{r.setupSourceBuffers_()}catch(t){return As.log.warn("Failed to create SourceBuffers",t),r.mediaSource.endOfStream("decode")}r.setupFirstPlay(),r.trigger("selectedinitialmedia")}),this.masterPlaylistLoader_.on("loadedplaylist",function(){var t=r.masterPlaylistLoader_.media();if(!t){r.excludeUnsupportedVariants_();var e=void 0;return r.enableLowInitialPlaylist&&(e=r.selectInitialPlaylist()),e||(e=r.selectPlaylist()),r.initialMedia_=e,void r.masterPlaylistLoader_.media(r.initialMedia_)}if(r.useCueTags_&&r.updateAdCues_(t),r.mainSegmentLoader_.playlist(t,r.requestOptions_),r.updateDuration(),r.tech_.paused()||r.mainSegmentLoader_.load(),!t.endList){var i=function(){var t=r.seekable();0!==t.length&&r.mediaSource.addSeekableRange_(t.start(0),t.end(0))};if(r.duration()!==1/0){r.tech_.one("durationchange",function t(){r.duration()===1/0?i():r.tech_.one("durationchange",t)})}else i()}}),this.masterPlaylistLoader_.on("error",function(){r.blacklistCurrentPlaylist(r.masterPlaylistLoader_.error)}),this.masterPlaylistLoader_.on("mediachanging",function(){r.mainSegmentLoader_.abort(),r.mainSegmentLoader_.pause()}),this.masterPlaylistLoader_.on("mediachange",function(){var t=r.masterPlaylistLoader_.media(),e=1.5*r.masterPlaylistLoader_.targetDuration*1e3;ru(r.masterPlaylistLoader_.master,r.masterPlaylistLoader_.media())?r.requestOptions_.timeout=0:r.requestOptions_.timeout=e,r.mainSegmentLoader_.playlist(t,r.requestOptions_),r.mainSegmentLoader_.load(),r.tech_.trigger({type:"mediachange",bubbles:!0})}),this.masterPlaylistLoader_.on("playlistunchanged",function(){var t=r.masterPlaylistLoader_.media();r.stuckAtPlaylistEnd_(t)&&(r.blacklistCurrentPlaylist({message:"Playlist no longer updating."}),r.tech_.trigger("playliststuck"))}),this.masterPlaylistLoader_.on("renditiondisabled",function(){r.tech_.trigger({type:"usage",name:"hls-rendition-disabled"})}),this.masterPlaylistLoader_.on("renditionenabled",function(){r.tech_.trigger({type:"usage",name:"hls-rendition-enabled"})})},p.prototype.triggerPresenceUsage_=function(t,e){var i=t.mediaGroups||{},r=!0,n=Object.keys(i.AUDIO);for(var s in i.AUDIO)for(var a in i.AUDIO[s]){i.AUDIO[s][a].uri||(r=!1)}r&&this.tech_.trigger({type:"usage",name:"hls-demuxed"}),Object.keys(i.SUBTITLES).length&&this.tech_.trigger({type:"usage",name:"hls-webvtt"}),Ml.Playlist.isAes(e)&&this.tech_.trigger({type:"usage",name:"hls-aes"}),Ml.Playlist.isFmp4(e)&&this.tech_.trigger({type:"usage",name:"hls-fmp4"}),n.length&&1<Object.keys(i.AUDIO[n[0]]).length&&this.tech_.trigger({type:"usage",name:"hls-alternate-audio"}),this.useCueTags_&&this.tech_.trigger({type:"usage",name:"hls-playlist-cue-tags"})},p.prototype.setupSegmentLoaderListeners_=function(){var s=this;this.mainSegmentLoader_.on("bandwidthupdate",function(){var t=s.selectPlaylist(),e=s.masterPlaylistLoader_.media(),i=s.tech_.buffered(),r=i.length?i.end(i.length-1)-s.tech_.currentTime():0,n=s.bufferLowWaterLine();(!e.endList||s.duration()<Qu.MAX_BUFFER_LOW_WATER_LINE||t.attributes.BANDWIDTH<e.attributes.BANDWIDTH||n<=r)&&s.masterPlaylistLoader_.media(t),s.tech_.trigger("bandwidthupdate")}),this.mainSegmentLoader_.on("progress",function(){s.trigger("progress")}),this.mainSegmentLoader_.on("error",function(){s.blacklistCurrentPlaylist(s.mainSegmentLoader_.error())}),this.mainSegmentLoader_.on("syncinfoupdate",function(){s.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("timestampoffset",function(){s.tech_.trigger({type:"usage",name:"hls-timestamp-offset"})}),this.audioSegmentLoader_.on("syncinfoupdate",function(){s.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("ended",function(){s.onEndOfStream()}),this.mainSegmentLoader_.on("earlyabort",function(){s.blacklistCurrentPlaylist({message:"Aborted early because there isn't enough bandwidth to complete the request without rebuffering."},120)}),this.mainSegmentLoader_.on("reseteverything",function(){s.tech_.trigger("hls-reset")}),this.mainSegmentLoader_.on("segmenttimemapping",function(t){s.tech_.trigger({type:"hls-segment-time-mapping",mapping:t.mapping})}),this.audioSegmentLoader_.on("ended",function(){s.onEndOfStream()})},p.prototype.mediaSecondsLoaded_=function(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)},p.prototype.load=function(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()},p.prototype.fastQualityChange_=function(){var t=this.selectPlaylist();t!==this.masterPlaylistLoader_.media()&&(this.masterPlaylistLoader_.media(t),this.mainSegmentLoader_.resetLoader())},p.prototype.play=function(){if(!this.setupFirstPlay()){this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_()&&this.load();var t=this.tech_.seekable();return this.tech_.duration()===1/0&&this.tech_.currentTime()<t.start(0)?this.tech_.setCurrentTime(t.end(t.length-1)):void 0}},p.prototype.setupFirstPlay=function(){var t=this,e=this.masterPlaylistLoader_.media();if(!e||this.tech_.paused()||this.hasPlayed_())return!1;if(!e.endList){var i=this.seekable();if(!i.length)return!1;if(As.browser.IE_VERSION&&0===this.tech_.readyState())return this.tech_.one("loadedmetadata",function(){t.trigger("firstplay"),t.tech_.setCurrentTime(i.end(0)),t.hasPlayed_=function(){return!0}}),!1;this.trigger("firstplay"),this.tech_.setCurrentTime(i.end(0))}return this.hasPlayed_=function(){return!0},this.load(),!0},p.prototype.handleSourceOpen_=function(){try{this.setupSourceBuffers_()}catch(t){return As.log.warn("Failed to create Source Buffers",t),this.mediaSource.endOfStream("decode")}if(this.tech_.autoplay()){var t=this.tech_.play();"undefined"!=typeof t&&"function"==typeof t.then&&t.then(null,function(t){})}this.trigger("sourceopen")},p.prototype.onEndOfStream=function(){var t=this.mainSegmentLoader_.ended_;this.mediaTypes_.AUDIO.activePlaylistLoader&&(t=!this.mainSegmentLoader_.startingMedia_||this.mainSegmentLoader_.startingMedia_.containsVideo?t&&this.audioSegmentLoader_.ended_:this.audioSegmentLoader_.ended_),t&&this.mediaSource.endOfStream()},p.prototype.stuckAtPlaylistEnd_=function(t){if(!this.seekable().length)return!1;var e=this.syncController_.getExpiredTime(t,this.mediaSource.duration);if(null===e)return!1;var i=Ml.Playlist.playlistEnd(t,e),r=this.tech_.currentTime(),n=this.tech_.buffered();if(!n.length)return i-r<=.1;var s=n.end(n.length-1);return s-r<=.1&&i-s<=.1},p.prototype.blacklistCurrentPlaylist=function(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=arguments[1],r=void 0;if(r=e.playlist||this.masterPlaylistLoader_.media(),i=i||e.blacklistDuration||this.blacklistDuration,!r){this.error=e;try{return this.mediaSource.endOfStream("network")}catch(t){return this.trigger("error")}}var n=1===this.masterPlaylistLoader_.master.playlists.filter(eu).length;return n?(As.log.warn("Problem encountered with the current HLS playlist. Trying again since it is the final playlist."),this.tech_.trigger("retryplaylist"),this.masterPlaylistLoader_.load(n)):(r.excludeUntil=Date.now()+1e3*i,this.tech_.trigger("blacklistplaylist"),this.tech_.trigger({type:"usage",name:"hls-rendition-blacklisted"}),t=this.selectPlaylist(),As.log.warn("Problem encountered with the current HLS playlist."+(e.message?" "+e.message:"")+" Switching to another playlist."),this.masterPlaylistLoader_.media(t))},p.prototype.pauseLoading=function(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()},p.prototype.setCurrentTime=function(t){var e=gu(this.tech_.buffered(),t);return this.masterPlaylistLoader_&&this.masterPlaylistLoader_.media()&&this.masterPlaylistLoader_.media().segments?e&&e.length?t:(this.mainSegmentLoader_.resetEverything(),this.mainSegmentLoader_.abort(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.resetEverything(),this.audioSegmentLoader_.abort()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.resetEverything(),this.subtitleSegmentLoader_.abort()),void this.load()):0},p.prototype.duration=function(){return this.masterPlaylistLoader_?this.mediaSource?this.mediaSource.duration:Ml.Playlist.duration(this.masterPlaylistLoader_.media()):0},p.prototype.seekable=function(){return this.seekable_},p.prototype.onSyncInfoUpdate_=function(){var t=void 0,e=void 0;if(this.masterPlaylistLoader_){var i=this.masterPlaylistLoader_.media();if(i){var r=this.syncController_.getExpiredTime(i,this.mediaSource.duration);if(null!==r&&0!==(t=Ml.Playlist.seekable(i,r)).length){if(this.mediaTypes_.AUDIO.activePlaylistLoader){if(i=this.mediaTypes_.AUDIO.activePlaylistLoader.media(),null===(r=this.syncController_.getExpiredTime(i,this.mediaSource.duration)))return;if(0===(e=Ml.Playlist.seekable(i,r)).length)return}e?e.start(0)>t.end(0)||t.start(0)>e.end(0)?this.seekable_=t:this.seekable_=As.createTimeRanges([[e.start(0)>t.start(0)?e.start(0):t.start(0),e.end(0)<t.end(0)?e.end(0):t.end(0)]]):this.seekable_=t,this.logger_("seekable updated ["+vu(this.seekable_)+"]"),this.tech_.trigger("seekablechanged")}}}},p.prototype.updateDuration=function(){var e=this,t=this.mediaSource.duration,i=Ml.Playlist.duration(this.masterPlaylistLoader_.media()),r=this.tech_.buffered(),n=function t(){e.mediaSource.duration=i,e.tech_.trigger("durationchange"),e.mediaSource.removeEventListener("sourceopen",t)};0<r.length&&(i=Math.max(i,r.end(r.length-1))),t!==i&&("open"!==this.mediaSource.readyState?this.mediaSource.addEventListener("sourceopen",n):n())},p.prototype.dispose=function(){var r=this;this.decrypter_.terminate(),this.masterPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),["AUDIO","SUBTITLES"].forEach(function(t){var e=r.mediaTypes_[t].groups;for(var i in e)e[i].forEach(function(t){t.playlistLoader&&t.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose()},p.prototype.master=function(){return this.masterPlaylistLoader_.master},p.prototype.media=function(){return this.masterPlaylistLoader_.media()||this.initialMedia_},p.prototype.setupSourceBuffers_=function(){var t,e=this.masterPlaylistLoader_.media();if(e&&"open"===this.mediaSource.readyState){if((t=cl(this.masterPlaylistLoader_.master,e)).length<1)return this.error="No compatible SourceBuffer configuration for the variant stream:"+e.resolvedUri,this.mediaSource.endOfStream("decode");this.configureLoaderMimeTypes_(t),this.excludeIncompatibleVariants_(e)}},p.prototype.configureLoaderMimeTypes_=function(t){var e=1<t.length&&-1===t[0].indexOf(",")&&t[0]!==t[1]?new As.EventTarget:null;this.mainSegmentLoader_.mimeType(t[0],e),t[1]&&this.audioSegmentLoader_.mimeType(t[1],e)},p.prototype.excludeUnsupportedVariants_=function(){this.master().playlists.forEach(function(t){t.attributes.CODECS&&g.MediaSource&&g.MediaSource.isTypeSupported&&!g.MediaSource.isTypeSupported('video/mp4; codecs="'+t.attributes.CODECS.replace(/avc1\.(\d+)\.(\d+)/i,function(t){return Nu([t])[0]})+'"')&&(t.excludeUntil=1/0)})},p.prototype.excludeIncompatibleVariants_=function(t){var i=2,r=null,e=void 0;t.attributes.CODECS&&(e=ul(t.attributes.CODECS),r=e.videoCodec,i=e.codecCount),this.master().playlists.forEach(function(t){var e={codecCount:2,videoCodec:null};t.attributes.CODECS&&(e=ul(t.attributes.CODECS)),e.codecCount!==i&&(t.excludeUntil=1/0),e.videoCodec!==r&&(t.excludeUntil=1/0)})},p.prototype.updateAdCues_=function(t){var e=0,i=this.seekable();i.length&&(e=i.start(0)),function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;if(t.segments)for(var r=i,n=void 0,s=0;s<t.segments.length;s++){var a=t.segments[s];if(n||(n=bl(e,r+a.duration/2)),n){if("cueIn"in a){n.endTime=r,n.adEndTime=r,r+=a.duration,n=null;continue}if(r<n.endTime){r+=a.duration;continue}n.endTime+=a.duration}else if("cueOut"in a&&((n=new g.VTTCue(r,r+a.duration,a.cueOut)).adStartTime=r,n.adEndTime=r+parseFloat(a.cueOut),e.addCue(n)),"cueOutCont"in a){var o,u,l=a.cueOutCont.split("/").map(parseFloat);o=l[0],u=l[1],(n=new g.VTTCue(r,r+a.duration,"")).adStartTime=r-o,n.adEndTime=n.adStartTime+u,e.addCue(n)}r+=a.duration}}(t,this.cueTagsTrack_,e)},p.prototype.goalBufferLength=function(){var t=this.tech_.currentTime(),e=Qu.GOAL_BUFFER_LENGTH,i=Qu.GOAL_BUFFER_LENGTH_RATE,r=Math.max(e,Qu.MAX_GOAL_BUFFER_LENGTH);return Math.min(e+t*i,r)},p.prototype.bufferLowWaterLine=function(){var t=this.tech_.currentTime(),e=Qu.BUFFER_LOW_WATER_LINE,i=Qu.BUFFER_LOW_WATER_LINE_RATE,r=Math.max(e,Qu.MAX_BUFFER_LOW_WATER_LINE);return Math.min(e+t*i,r)},p}(As.EventTarget),jl=function t(e,i,r){y(this,t);var n,s,a,o=e.masterPlaylistController_.fastQualityChange_.bind(e.masterPlaylistController_);if(i.attributes.RESOLUTION){var u=i.attributes.RESOLUTION;this.width=u.width,this.height=u.height}this.bandwidth=i.attributes.BANDWIDTH,this.id=r,this.enabled=(n=e.playlists,s=i.uri,a=o,function(t){var e=n.master.playlists[s],i=tu(e),r=eu(e);return"undefined"==typeof t?r:(t?delete e.disabled:e.disabled=!0,t===r||i||(a(),t?n.trigger("renditionenabled"):n.trigger("renditiondisabled")),t)})},Fl=["seeking","seeked","pause","playing","error"],Hl=function(){function a(t){var e=this;y(this,a),this.tech_=t.tech,this.seekable=t.seekable,this.consecutiveUpdates=0,this.lastRecordedTime=null,this.timer_=null,this.checkCurrentTimeTimeout_=null,this.logger_=Yu("PlaybackWatcher"),this.logger_("initialize");var i=function(){return e.monitorCurrentTime_()},r=function(){return e.techWaiting_()},n=function(){return e.cancelTimer_()},s=function(){return e.fixesBadSeeks_()};this.tech_.on("seekablechanged",s),this.tech_.on("waiting",r),this.tech_.on(Fl,n),this.tech_.on("canplay",i),this.dispose=function(){e.logger_("dispose"),e.tech_.off("seekablechanged",s),e.tech_.off("waiting",r),e.tech_.off(Fl,n),e.tech_.off("canplay",i),e.checkCurrentTimeTimeout_&&g.clearTimeout(e.checkCurrentTimeTimeout_),e.cancelTimer_()}}return a.prototype.monitorCurrentTime_=function(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&g.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=g.setTimeout(this.monitorCurrentTime_.bind(this),250)},a.prototype.checkCurrentTime_=function(){if(this.tech_.seeking()&&this.fixesBadSeeks_())return this.consecutiveUpdates=0,void(this.lastRecordedTime=this.tech_.currentTime());if(!this.tech_.paused()&&!this.tech_.seeking()){var t=this.tech_.currentTime(),e=this.tech_.buffered();if(this.lastRecordedTime===t&&(!e.length||t+.1>=e.end(e.length-1)))return this.techWaiting_();5<=this.consecutiveUpdates&&t===this.lastRecordedTime?(this.consecutiveUpdates++,this.waiting_()):t===this.lastRecordedTime?this.consecutiveUpdates++:(this.consecutiveUpdates=0,this.lastRecordedTime=t)}},a.prototype.cancelTimer_=function(){this.consecutiveUpdates=0,this.timer_&&(this.logger_("cancelTimer_"),clearTimeout(this.timer_)),this.timer_=null},a.prototype.fixesBadSeeks_=function(){var t=this.tech_.seeking(),e=this.seekable(),i=this.tech_.currentTime(),r=void 0;t&&this.afterSeekableWindow_(e,i)&&(r=e.end(e.length-1));t&&this.beforeSeekableWindow_(e,i)&&(r=e.start(0)+.1);return"undefined"!=typeof r&&(this.logger_("Trying to seek outside of seekable at time "+i+" with seekable range "+vu(e)+". Seeking to "+r+"."),this.tech_.setCurrentTime(r),!0)},a.prototype.waiting_=function(){if(!this.techWaiting_()){var t=this.tech_.currentTime(),e=this.tech_.buffered(),i=gu(e,t);return i.length&&t+3<=i.end(0)?(this.cancelTimer_(),this.tech_.setCurrentTime(t),this.logger_("Stopped at "+t+" while inside a buffered region ["+i.start(0)+" -> "+i.end(0)+"]. Attempting to resume playback by seeking to the current time."),void this.tech_.trigger({type:"usage",name:"hls-unknown-waiting"})):void 0}},a.prototype.techWaiting_=function(){var t=this.seekable(),e=this.tech_.currentTime();if(this.tech_.seeking()&&this.fixesBadSeeks_())return!0;if(this.tech_.seeking()||null!==this.timer_)return!0;if(this.beforeSeekableWindow_(t,e)){var i=t.end(t.length-1);return this.logger_("Fell out of live window at time "+e+". Seeking to live point (seekable end) "+i),this.cancelTimer_(),this.tech_.setCurrentTime(i),this.tech_.trigger({type:"usage",name:"hls-live-resync"}),!0}var r=this.tech_.buffered(),n=yu(r,e);if(this.videoUnderflow_(n,r,e))return this.cancelTimer_(),this.tech_.setCurrentTime(e),this.tech_.trigger({type:"usage",name:"hls-video-underflow"}),!0;if(0<n.length){var s=n.start(0)-e;return this.logger_("Stopped at "+e+", setting timer for "+s+", seeking to "+n.start(0)),this.timer_=setTimeout(this.skipTheGap_.bind(this),1e3*s,e),!0}return!1},a.prototype.afterSeekableWindow_=function(t,e){return!!t.length&&e>t.end(t.length-1)+.1},a.prototype.beforeSeekableWindow_=function(t,e){return!!(t.length&&0<t.start(0)&&e<t.start(0)-.1)},a.prototype.videoUnderflow_=function(t,e,i){if(0===t.length){var r=this.gapFromVideoUnderflow_(e,i);if(r)return this.logger_("Encountered a gap in video from "+r.start+" to "+r.end+". Seeking to current time "+i),!0}return!1},a.prototype.skipTheGap_=function(t){var e=this.tech_.buffered(),i=this.tech_.currentTime(),r=yu(e,i);this.cancelTimer_(),0!==r.length&&i===t&&(this.logger_("skipTheGap_:","currentTime:",i,"scheduled currentTime:",t,"nextRange start:",r.start(0)),this.tech_.setCurrentTime(r.start(0)+fu),this.tech_.trigger({type:"usage",name:"hls-gap-skip"}))},a.prototype.gapFromVideoUnderflow_=function(t,e){for(var i=function(t){if(t.length<2)return As.createTimeRanges();for(var e=[],i=1;i<t.length;i++){var r=t.end(i-1),n=t.start(i);e.push([r,n])}return As.createTimeRanges(e)}(t),r=0;r<i.length;r++){var n=i.start(r),s=i.end(r);if(e-n<4&&2<e-n)return{start:n,end:s}}return null},a}(),Vl={errorInterval:30,getSource:function(t){return t(this.tech({IWillNotUseThisInPlugins:!0}).currentSource_)}},ql=function(t){!function e(i,t){var r=0,n=0,s=As.mergeOptions(Vl,t);i.ready(function(){i.trigger({type:"usage",name:"hls-error-reload-initialized"})});var a=function(){n&&i.currentTime(n)},o=function(t){null!=t&&(n=i.duration()!==1/0&&i.currentTime()||0,i.one("loadedmetadata",a),i.src(t),i.trigger({type:"usage",name:"hls-error-reload"}),i.play())},u=function(){if(Date.now()-r<1e3*s.errorInterval)i.trigger({type:"usage",name:"hls-error-reload-canceled"});else{if(s.getSource&&"function"==typeof s.getSource)return r=Date.now(),s.getSource.call(i,o);As.log.error("ERROR: reloadSourceOnError - The option getSource must be a function!")}},l=function t(){i.off("loadedmetadata",a),i.off("error",u),i.off("dispose",t)};i.on("error",u),i.on("dispose",l),i.reloadSourceOnError=function(t){l(),e(i,t)}}(this,t)},Wl={PlaylistLoader:Vo,Playlist:nu,Decrypter:Do,AsyncStream:Oo,decrypt:Io,utils:pu,STANDARD_PLAYLIST_SELECTOR:function(){return function(t,e,i,r){var n=t.playlists.map(function(t){var e,i;return e=t.attributes.RESOLUTION&&t.attributes.RESOLUTION.width,i=t.attributes.RESOLUTION&&t.attributes.RESOLUTION.height,{bandwidth:t.attributes.BANDWIDTH||g.Number.MAX_VALUE,width:e,height:i,playlist:t}});dl(n,function(t,e){return t.bandwidth-e.bandwidth});var s=(n=n.filter(function(t){return!nu.isIncompatible(t.playlist)})).filter(function(t){return nu.isEnabled(t.playlist)});s.length||(s=n.filter(function(t){return!nu.isDisabled(t.playlist)}));var a=s.filter(function(t){return t.bandwidth*Qu.BANDWIDTH_VARIANCE<e}),o=a[a.length-1],u=a.filter(function(t){return t.bandwidth===o.bandwidth})[0],l=a.filter(function(t){return t.width&&t.height});dl(l,function(t,e){return t.width-e.width});var c=l.filter(function(t){return t.width===i&&t.height===r});o=c[c.length-1];var h=c.filter(function(t){return t.bandwidth===o.bandwidth})[0],d=void 0,p=void 0,f=void 0;h||(p=(d=l.filter(function(t){return t.width>i||t.height>r})).filter(function(t){return t.width===d[0].width&&t.height===d[0].height}),o=p[p.length-1],f=p.filter(function(t){return t.bandwidth===o.bandwidth})[0]);var m=f||h||u||s[0]||n[0];return m?m.playlist:null}(this.playlists.master,this.systemBandwidth,parseInt(hl(this.tech_.el(),"width"),10),parseInt(hl(this.tech_.el(),"height"),10))},INITIAL_PLAYLIST_SELECTOR:function(){var t=this.playlists.master.playlists.filter(nu.isEnabled);return dl(t,function(t,e){return pl(t,e)}),t.filter(function(t){return ul(t.attributes.CODECS).videoCodec})[0]||null},comparePlaylistBandwidth:pl,comparePlaylistResolution:function(t,e){var i=void 0,r=void 0;return t.attributes.RESOLUTION&&t.attributes.RESOLUTION.width&&(i=t.attributes.RESOLUTION.width),i=i||g.Number.MAX_VALUE,e.attributes.RESOLUTION&&e.attributes.RESOLUTION.width&&(r=e.attributes.RESOLUTION.width),i===(r=r||g.Number.MAX_VALUE)&&t.attributes.BANDWIDTH&&e.attributes.BANDWIDTH?t.attributes.BANDWIDTH-e.attributes.BANDWIDTH:i-r},xhr:ou()};["GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BANDWIDTH_VARIANCE"].forEach(function(e){Object.defineProperty(Wl,e,{get:function(){return As.log.warn("using Hls."+e+" is UNSAFE be sure you know what you are doing"),Qu[e]},set:function(t){As.log.warn("using Hls."+e+" is UNSAFE be sure you know what you are doing"),"number"!=typeof t||t<0?As.log.warn("value of Hls."+e+" must be greater than or equal to 0"):Qu[e]=t}})});var zl=function(t){if(/^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i.test(t))return"hls";return/^application\/dash\+xml/i.test(t)?"dash":null},Gl=function(t,e){for(var i=e.media(),r=-1,n=0;n<t.length;n++)if(t[n].id===i.uri){r=n;break}t.selectedIndex_=r,t.trigger({selectedIndex:r,type:"change"})};Wl.canPlaySource=function(){return As.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder.")};var Xl=function(t){if("dash"===t.options_.sourceType){var e=As.players[t.tech_.options_.playerId];if(e.eme){var i=function(t,e,i){if(!t)return t;var r={};for(var n in t)r[n]={audioContentType:'audio/mp4; codecs="'+i.attributes.CODECS+'"',videoContentType:'video/mp4; codecs="'+e.attributes.CODECS+'"'},e.contentProtection&&e.contentProtection[n]&&e.contentProtection[n].pssh&&(r[n].pssh=e.contentProtection[n].pssh),"string"==typeof t[n]&&(r[n].url=t[n]);return As.mergeOptions(t,r)}(t.source_.keySystems,t.playlists.media(),t.masterPlaylistController_.mediaTypes_.AUDIO.activePlaylistLoader.media());i&&(e.currentSource().keySystems=i)}}};Wl.supportsNativeHls=function(){var e=p.createElement("video");if(!As.getTech("Html5").isSupported())return!1;return["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"].some(function(t){return/maybe|probably/i.test(e.canPlayType(t))})}(),Wl.supportsNativeDash=!!As.getTech("Html5").isSupported()&&/maybe|probably/i.test(p.createElement("video").canPlayType("application/dash+xml")),Wl.supportsTypeNatively=function(t){return"hls"===t?Wl.supportsNativeHls:"dash"===t&&Wl.supportsNativeDash},Wl.isSupported=function(){return As.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder.")};var Yl=function(s){function a(t,e,i){y(this,a);var r=b(this,s.call(this,e,i.hls));if(e.options_&&e.options_.playerId){var n=As(e.options_.playerId);n.hasOwnProperty("hls")||Object.defineProperty(n,"hls",{get:function(){return As.log.warn("player.hls is deprecated. Use player.tech_.hls instead."),e.trigger({type:"usage",name:"hls-player-access"}),r}}),n.vhs=r,n.dash=r}if(r.tech_=e,r.source_=t,r.stats={},r.ignoreNextSeekingEvent_=!1,r.setOptions_(),r.options_.overrideNative&&(e.featuresNativeVideoTracks||e.featuresNativeAudioTracks))throw new Error("Overriding native HLS requires emulated tracks. See https://git.io/vMpjB");return r.on(p,["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],function(t){var e=p.fullscreenElement||p.webkitFullscreenElement||p.mozFullScreenElement||p.msFullscreenElement;e&&e.contains(r.tech_.el())&&r.masterPlaylistController_.fastQualityChange_()}),r.on(r.tech_,"seeking",function(){this.ignoreNextSeekingEvent_?this.ignoreNextSeekingEvent_=!1:this.setCurrentTime(this.tech_.currentTime())}),r.on(r.tech_,"error",function(){this.masterPlaylistController_&&this.masterPlaylistController_.pauseLoading()}),r.on(r.tech_,"play",r.play),r}return _(a,s),a.prototype.setOptions_=function(){var e=this;this.options_.withCredentials=this.options_.withCredentials||!1,"number"!=typeof this.options_.blacklistDuration&&(this.options_.blacklistDuration=300),"number"!=typeof this.options_.bandwidth&&(this.options_.bandwidth=4194304),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&4194304===this.options_.bandwidth,["withCredentials","bandwidth"].forEach(function(t){"undefined"!=typeof e.source_[t]&&(e.options_[t]=e.source_[t])}),this.bandwidth=this.options_.bandwidth},a.prototype.src=function(t,e){var r=this;t&&(this.setOptions_(),this.options_.url=this.source_.src,this.options_.tech=this.tech_,this.options_.externHls=Wl,this.options_.sourceType=zl(e),this.masterPlaylistController_=new Bl(this.options_),this.playbackWatcher_=new Hl(As.mergeOptions(this.options_,{seekable:function(){return r.seekable()}})),this.masterPlaylistController_.on("error",function(){As.players[r.tech_.options_.playerId].error(r.masterPlaylistController_.error)}),this.masterPlaylistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):Wl.STANDARD_PLAYLIST_SELECTOR.bind(this),this.masterPlaylistController_.selectInitialPlaylist=Wl.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.masterPlaylistController_.masterPlaylistLoader_,this.mediaSource=this.masterPlaylistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get:function(){return this.masterPlaylistController_.selectPlaylist},set:function(t){this.masterPlaylistController_.selectPlaylist=t.bind(this)}},throughput:{get:function(){return this.masterPlaylistController_.mainSegmentLoader_.throughput.rate},set:function(t){this.masterPlaylistController_.mainSegmentLoader_.throughput.rate=t,this.masterPlaylistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get:function(){return this.masterPlaylistController_.mainSegmentLoader_.bandwidth},set:function(t){this.masterPlaylistController_.mainSegmentLoader_.bandwidth=t,this.masterPlaylistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get:function(){var t=1/(this.bandwidth||1),e=void 0;return e=0<this.throughput?1/this.throughput:0,Math.floor(1/(t+e))},set:function(){As.log.error('The "systemBandwidth" property is read-only')}}}),Object.defineProperties(this.stats,{bandwidth:{get:function(){return r.bandwidth||0},enumerable:!0},mediaRequests:{get:function(){return r.masterPlaylistController_.mediaRequests_()||0},enumerable:!0},mediaRequestsAborted:{get:function(){return r.masterPlaylistController_.mediaRequestsAborted_()||0},enumerable:!0},mediaRequestsTimedout:{get:function(){return r.masterPlaylistController_.mediaRequestsTimedout_()||0},enumerable:!0},mediaRequestsErrored:{get:function(){return r.masterPlaylistController_.mediaRequestsErrored_()||0},enumerable:!0},mediaTransferDuration:{get:function(){return r.masterPlaylistController_.mediaTransferDuration_()||0},enumerable:!0},mediaBytesTransferred:{get:function(){return r.masterPlaylistController_.mediaBytesTransferred_()||0},enumerable:!0},mediaSecondsLoaded:{get:function(){return r.masterPlaylistController_.mediaSecondsLoaded_()||0},enumerable:!0},buffered:{get:function(){return _u(r.tech_.buffered())},enumerable:!0},currentTime:{get:function(){return r.tech_.currentTime()},enumerable:!0},currentSource:{get:function(){return r.tech_.currentSource_},enumerable:!0},currentTech:{get:function(){return r.tech_.name_},enumerable:!0},duration:{get:function(){return r.tech_.duration()},enumerable:!0},master:{get:function(){return r.playlists.master},enumerable:!0},playerDimensions:{get:function(){return r.tech_.currentDimensions()},enumerable:!0},seekable:{get:function(){return _u(r.tech_.seekable())},enumerable:!0},timestamp:{get:function(){return Date.now()},enumerable:!0},videoPlaybackQuality:{get:function(){return r.tech_.getVideoPlaybackQuality()},enumerable:!0}}),this.tech_.one("canplay",this.masterPlaylistController_.setupFirstPlay.bind(this.masterPlaylistController_)),this.masterPlaylistController_.on("selectedinitialmedia",function(){var i,t;t=(i=r).playlists,i.representations=function(){return t.master.playlists.filter(function(t){return!tu(t)}).map(function(t,e){return new jl(i,t,t.uri)})},Xl(r)}),this.on(this.masterPlaylistController_,"progress",function(){this.tech_.trigger("progress")}),this.on(this.masterPlaylistController_,"firstplay",function(){this.ignoreNextSeekingEvent_=!0}),this.tech_.ready(function(){return r.setupQualityLevels_()}),this.tech_.el()&&this.tech_.src(As.URL.createObjectURL(this.masterPlaylistController_.mediaSource)))},a.prototype.setupQualityLevels_=function(){var i=this,t=As.players[this.tech_.options_.playerId];t&&t.qualityLevels&&(this.qualityLevels_=t.qualityLevels(),this.masterPlaylistController_.on("selectedinitialmedia",function(){var e,t;e=i.qualityLevels_,(t=i).representations().forEach(function(t){e.addQualityLevel(t)}),Gl(e,t.playlists)}),this.playlists.on("mediachange",function(){Gl(i.qualityLevels_,i.playlists)}))},a.prototype.play=function(){this.masterPlaylistController_.play()},a.prototype.setCurrentTime=function(t){this.masterPlaylistController_.setCurrentTime(t)},a.prototype.duration=function(){return this.masterPlaylistController_.duration()},a.prototype.seekable=function(){return this.masterPlaylistController_.seekable()},a.prototype.dispose=function(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.masterPlaylistController_&&this.masterPlaylistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),s.prototype.dispose.call(this)},a}(As.getComponent("Component")),$l={name:"videojs-http-streaming",VERSION:"1.0.0",canHandleSource:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=As.mergeOptions(As.options,e);return $l.canPlayType(t.type,i)},handleSource:function(t,e){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},r=As.mergeOptions(As.options,i);return e.hls=new Yl(t,e,r),e.hls.xhr=ou(),e.hls.src(t.src,t.type),e.hls},canPlayType:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=As.mergeOptions(As.options,e).hls.overrideNative,r=zl(t);return r&&(!Wl.supportsTypeNatively(r)||i)?"maybe":""}};return"undefined"!=typeof As.MediaSource&&"undefined"!=typeof As.URL||(As.MediaSource=qu,As.URL=Wu),qu.supportsNativeMediaSources()&&As.getTech("Html5").registerSourceHandler($l,0),As.HlsHandler=Yl,As.HlsSourceHandler=$l,As.Hls=Wl,As.use||As.registerComponent("Hls",Wl),As.options.hls=As.options.hls||{},As.registerPlugin?As.registerPlugin("reloadSourceOnError",ql):As.plugin("reloadSourceOnError",ql),As});
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
new file mode 100644
index 0000000..3612073
--- /dev/null
+++ b/src/environments/environment.prod.ts
@@ -0,0 +1,3 @@
+export const environment = {
+  production: true
+};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
new file mode 100644
index 0000000..7b4f817
--- /dev/null
+++ b/src/environments/environment.ts
@@ -0,0 +1,16 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+export const environment = {
+  production: false
+};
+
+/*
+ * For easier debugging in development mode, you can import the following file
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
+ *
+ * This import should be commented out in production mode because it will have a negative impact
+ * on performance if an error is thrown.
+ */
+// import 'zone.js/dist/zone-error';  // Included with Angular CLI.
diff --git a/src/favicon.ico b/src/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517
GIT binary patch
literal 5430
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

literal 0
HcmV?d00001

diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..5df7a8f
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>NgOne</title>
+  <base href="/">
+
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="favicon.ico">
+</head>
+<body>
+  <app-root></app-root>
+</body>
+
+<script>
+  window.net = window.parent.net||{};
+  window.net.doUpload = function(){
+    console.log("*********");
+  }
+</script>
+</html>
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..c7b673c
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,12 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+  enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+  .catch(err => console.error(err));
diff --git a/src/polyfills.ts b/src/polyfills.ts
new file mode 100644
index 0000000..aa665d6
--- /dev/null
+++ b/src/polyfills.ts
@@ -0,0 +1,63 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ *      file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/guide/browser-support
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js';  // Run `npm install --save classlist.js`.
+
+/**
+ * Web Animations `@angular/platform-browser/animations`
+ * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
+ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
+ */
+// import 'web-animations-js';  // Run `npm install --save web-animations-js`.
+
+/**
+ * By default, zone.js will patch all possible macroTask and DomEvents
+ * user can disable parts of macroTask/DomEvents patch by setting following flags
+ * because those flags need to be set before `zone.js` being loaded, and webpack
+ * will put import in the top of bundle, so user need to create a separate file
+ * in this directory (for example: zone-flags.ts), and put the following flags
+ * into that file, and then add the following code before importing zone.js.
+ * import './zone-flags.ts';
+ *
+ * The flags allowed in zone-flags.ts are listed here.
+ *
+ * The following flags will work for all browsers.
+ *
+ * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
+ * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
+ * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+ *
+ *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
+ *  with the following flag, it will bypass `zone.js` patch for IE/Edge
+ *
+ *  (window as any).__Zone_enable_cross_context_check = true;
+ *
+ */
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js/dist/zone';  // Included with Angular CLI.
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
diff --git a/src/styles.scss b/src/styles.scss
new file mode 100644
index 0000000..90d4ee0
--- /dev/null
+++ b/src/styles.scss
@@ -0,0 +1 @@
+/* You can add global styles to this file, and also import other style files */
diff --git a/src/test.ts b/src/test.ts
new file mode 100644
index 0000000..1631789
--- /dev/null
+++ b/src/test.ts
@@ -0,0 +1,20 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/zone-testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+declare const require: any;
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
diff --git a/tsconfig.app.json b/tsconfig.app.json
new file mode 100644
index 0000000..565a11a
--- /dev/null
+++ b/tsconfig.app.json
@@ -0,0 +1,18 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "./out-tsc/app",
+    "types": []
+  },
+  "files": [
+    "src/main.ts",
+    "src/polyfills.ts"
+  ],
+  "include": [
+    "src/**/*.ts"
+  ],
+  "exclude": [
+    "src/test.ts",
+    "src/**/*.spec.ts"
+  ]
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..b4f6b3c
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,27 @@
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "baseUrl": "./",
+    "outDir": "./dist/out-tsc",
+    "sourceMap": true,
+    "declaration": false,
+    "downlevelIteration": true,
+    "experimentalDecorators": true,
+    "module": "esnext",
+    "moduleResolution": "node",
+    "emitDecoratorMetadata": true,
+    "importHelpers": true,
+    "target": "es2015",
+    "typeRoots": [
+      "node_modules/@types"
+    ],
+    "lib": [
+      "es2018",
+      "dom"
+    ]
+  },
+  "angularCompilerOptions": {
+    "fullTemplateTypeCheck": true,
+    "strictInjectionParameters": true
+  }
+}
diff --git a/tsconfig.spec.json b/tsconfig.spec.json
new file mode 100644
index 0000000..6400fde
--- /dev/null
+++ b/tsconfig.spec.json
@@ -0,0 +1,18 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "./out-tsc/spec",
+    "types": [
+      "jasmine",
+      "node"
+    ]
+  },
+  "files": [
+    "src/test.ts",
+    "src/polyfills.ts"
+  ],
+  "include": [
+    "src/**/*.spec.ts",
+    "src/**/*.d.ts"
+  ]
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 0000000..f0adae9
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,92 @@
+{
+  "extends": "tslint:recommended",
+  "rules": {
+    "array-type": false,
+    "arrow-parens": false,
+    "deprecation": {
+      "severity": "warning"
+    },
+    "component-class-suffix": true,
+    "contextual-lifecycle": true,
+    "directive-class-suffix": true,
+    "directive-selector": [
+      true,
+      "attribute",
+      "app",
+      "camelCase"
+    ],
+    "component-selector": [
+      true,
+      "element",
+      "app",
+      "kebab-case"
+    ],
+    "import-blacklist": [
+      true,
+      "rxjs/Rx"
+    ],
+    "interface-name": false,
+    "max-classes-per-file": false,
+    "max-line-length": [
+      true,
+      140
+    ],
+    "member-access": false,
+    "member-ordering": [
+      true,
+      {
+        "order": [
+          "static-field",
+          "instance-field",
+          "static-method",
+          "instance-method"
+        ]
+      }
+    ],
+    "no-consecutive-blank-lines": false,
+    "no-console": [
+      true,
+      "debug",
+      "info",
+      "time",
+      "timeEnd",
+      "trace"
+    ],
+    "no-empty": false,
+    "no-inferrable-types": [
+      true,
+      "ignore-params"
+    ],
+    "no-non-null-assertion": true,
+    "no-redundant-jsdoc": true,
+    "no-switch-case-fall-through": true,
+    "no-use-before-declare": true,
+    "no-var-requires": false,
+    "object-literal-key-quotes": [
+      true,
+      "as-needed"
+    ],
+    "object-literal-sort-keys": false,
+    "ordered-imports": false,
+    "quotemark": [
+      true,
+      "single"
+    ],
+    "trailing-comma": false,
+    "no-conflicting-lifecycle": true,
+    "no-host-metadata-property": true,
+    "no-input-rename": true,
+    "no-inputs-metadata-property": true,
+    "no-output-native": true,
+    "no-output-on-prefix": true,
+    "no-output-rename": true,
+    "no-outputs-metadata-property": true,
+    "template-banana-in-box": true,
+    "template-no-negated-async": true,
+    "use-lifecycle-interface": true,
+    "use-pipe-transform-interface": true
+  },
+  "rulesDirectory": [
+    "codelyzer"
+  ]
+}
\ No newline at end of file
-- 
2.21.0